Numbered patches from 1.7.8-Jumbo-5 to 1.7.8-Jumbo-7

Patch Author Status and Description
0005-sybasease-be.diff JimF Patch for BE systems and sybasease
0004-solaris-problems.diff JimF Patch for Solaris. I am not 100% sure about this one. It would be nice to have someone validate this is needed, or at least that the LDFLAGS does not cause any problems
0003-Remove-spurious-TAB-from-Makefile.-Emacs-pukes-on-it.patch magnum This has got to be the most trivial patch ever.
0002-md5-gen-init-fixagain.diff JimF Fixed worse behavior in prior md5-gen-29 patch. Init is done each time at startup, but we use a static variable in -enc-utf8 mode, to set triple length of the value
0001-Move-options-parsing-so-enc-list-works.patch magnum Fixes –enc=LIST and adds two greek encodings while at it.

Numbered patches from 1.7.8-Jumbo-5 to 1.7.8-Jumbo-6-RC5

Back to Contributed patches for John the Ripper

There are several 'sets' of patches. The oldest ones are from 1.7.8-jumbo-5 to 1.7.8-jumbo-6RC1. The second set of patches is what was done between 1.7.8-jumbo-6RC1 and 1.7.8-jumbo-6RC2 and so on.

These are just here for reference; use 1.7.8-Jumbo-6-RC5 (or newer) instead. These patches take us from 1.7.8-jumbo-6-rc3 to jumbo-6-rc5.

Patch Author Status and Description
0003-md5-gen-29-utf8-and-oracle.diff JimF fix for benchmark failing on md5_gen(29) under -test -enc=utf8
portability fix to oracle format (moving a var to block start)
0002-minor-documentation-fix.patch magnum slight changes to doc/ENCODINGS
0001-generic-fix.diff JimF Status: added 2011-09-20, relevant.
Apply to jumbo-6-rc3. Gets 'make generic' to work, by building 2 files differently in the BENCHMARK project
Patch Author Status and Description
john-1.7.8-jumbo-6-RC3.diff.gz john-1.7.8-jumbo-5-to-6-RC3.diff.gz JimF, magnum, David Jones, Solar Status: added 2011-09-20, temporary.
Includes -RC2, 10 numbered post-RC2 patches (using 0010-md5_gen_29_fix-3a), reverts john-1.7.8-jumbo-6-rc2-external-events.diff, adds portions of john_1.7.8.jumbo6.plugin.diff, and minor changes by Solar. If you test this (especially on non-Linux), please report on john-dev.

It is a rollup of all numbered patched Numbered patches from 1.7.8-Jumbo-5 to 1.7.8-Jumbo-7 (minus the one pulled), the pkzip format, the trip-code format, and several changes to encodings not posted, and a new 'thin' raw-md5u format, and all numbered patches (0001 to 0017) that happened since jumbo-6rc1, and the 10 patches from jumbo-rc2, AND the runtime format loading code.

These are just here for reference; use 1.7.8-Jumbo-6-RC5 (or newer) instead. These patches take us from 1.7.8-jumbo-6-rc2 to jumbo-6-rc3.

Patch Author Status and Description
0010-md5_gen_29_fix-3a.diff JimF Status: Added 2011-09-19. Found an issue in the md5_gen(29) format. The 'thin' raw-md5u was working properly, but the underlying 'thin' format was allowing overly long passwords to corrupt adjacent hashes (in SSE builds).
NOTE, reworked the unicode length fix. Now, it should properly 'honor' the length field of the number of unicode chars we can HAVE in the password. Also changed raw_md5u_fmt to use the length given by the md5_gen_fmt.
Also made changes to properly handle saltless hashes which have user name, or 'fields' in them.
0009-md5_gen-benchmark-problems.diff JimF Status: Added 2011-09-19. Salt length change fix done before (to eliminate allocated buffer overwrite from the null byte), caused non-salted hashes to have a 1 byte long salt. The only side effect seemed to be in bench testing. The speed shown was 150% what it should have been, but in real testing, the proper speed was seen (and all passwords were found).
0008-options.encoding_7_bit-options.ascii.patch magnum Status: Added 2011-09-16. Cosmetic (variable names)
0007-UTF-16BE-inline-byte-swapping-for-arch-endianness.patch magnum Status: Added 2011-09-16. Avoid double byte-swapping in some cases when converting to UTF-16
0006-legacy-function-names-fixed-in-unicode.-ch.patch magnum Status: Added 2011-09-16. Cosmetic: old-style function names fixed in unicode.[ch]
0005-NETNTLM-NETNTLMv2-NETLMv2-MSCHAPv2-OMP-scaling.patch magnum Status: Added 2011-09-16. OMP performance scaling fixes for NETNTLM, NETNTLMv2, NETLMv2 and MSCHAPv2.
0004-Bugfix-in-unicode.c-affected-sapG-on-big-endian.-Rel.patch magnum Status: Added 2011-09-16. Bugfix in unicode.c affected sapG on big-endian. Related fixes to SybaseASE and Oracle.
0003-Performance-patch-for-mskrb5-including-a-non-OpenSSL.patch magnum Status: Added 2011-09-15. Performance patch for mskrb5 (40-50% boost here), including non-OpenSSL RC4 and much better OMP scaling.
0002-rules-dupe-removal-1.diff JimF Status: Added 2011-09-15.
This patch improves the performance of the duplicate rule removal code (substantially). This was a O(n^2) time algorithm before, now it is a hash table that is O(n) in time. Also, added logic to properly deal with rpp codes in the rule-rejection code inside of rules.rules_reject() function.
Apply patch to jumbo-6-RC2, after all other numbered patches.
0001-md5gen-screen-output-changes.diff JimF Status: Added 2011-09-14.
This patch fixes some textual output issues. Fixed is md5-gen 'thin' algorithm names. Also a small change in config loading when .include section was not found.
Apply patch to jumbo-6-RC2.
Patch Author Status and Description
john-1.7.8-jumbo-6-RC2.diff.gz

john-1.7.8-jumbo-6RC2-3.tar.gz
magnum JimF Solar Status: Added 2011-09-13 (JimF).
This is Jumbo-6 RC2. It is a rollup of all numbered patched Numbered patches from 1.7.8-Jumbo-5 to 1.7.8-Jumbo-7 (minus the one pulled), the pkzip format, the trip-code format, and several changes to encodings not posted, and a new 'thin' raw-md5u format, and all numbered patches (0001 to 0017) that happened since jumbo-6rc1.

Installation instructions: Patch -p1 this patch right over john-1.7.8-jumbo-5, or use the tarball.

These are just here for reference; use 1.7.8-Jumbo-6-RC2 (or newer) instead. These patches take us from 1.7.8-jumbo-6-rc1 to jumbo-6-rc2.

Patch Author Status and Description
0017-config-missing-include-2.diff JimF Status: Added 2011-09-13, currently relevant.
Including of a config [section] include, was not listing any error, when including a section that could not be found.
0016-Sybase-bug-in-cmp_one-was-using-strncmp-for-binary-d.patch magnum Status: Added 2011-09-13, currently relevant.
Fixed a false-positive bug in SybaseASE. It compared the binaries using strncmp, which will regard DE00ADBABEBEEF and DE00123456CAFE the same…
0015-md5_gen-raw-md5u-more-Unicode-fixes.patch magnum Status: Added 2011-09-13, currently relevant.
Finally fixes max length for UTF-8 → Unicode conversions in md5_gen
0014-Sybase-proper-Unicode-converson.patch magnum Status: Added 2011-09-12, currently relevant.
I just noticed the SybaseASE format used “dumb” UCS-2 conversion so I added full support for codepages and UTF-8
0013-Enable-UTF-8-and-codepage-encoding-for-rar_fmt.patch magnum Status: Added 2011-09-11, currently relevant.
I just noticed the rar format used “dumb” UCS-2 conversion so I added full support for codepages and UTF-8
0012-md5_gen-encoding-support-and-move-thick-rawmd5u-to-u.patch magnum Status: Added 2011-09-11, currently relevant.
This patch makes md5_gen encoding-aware when doing Unicode conversions. This also warranted moving the old “thick” raw-md5-unicode format to unused/ in favor of the “thin” raw-md5u one.
0011-pkzip-rewrite-fix-2.diff

pkzip-fixes-v3.diff

0011-pkzip-format-rewrite-2.diff

0011-pkzip-format-rewrite-1.diff

0009-j6-pkzip-fixed.diff
JimF Status: Added 2011-09-09, updated 2011-09-11, currently relevant.
Rewrite to the pkzip format (a previous patch to jumbo-6-rc1). This rewrite speeds up the format some, for the 2 byte checksum case, and speeds up a lot for the 1 byte case. The 'ascii' text file, and 'magic' signature checking code is still in pkzip format, but it is currently NOT being compiled in. It appears we can get good speed without trying those type tricks.

To apply, first apply all prior numbered patches below, then apply 0009-j6-pkzip-fixed.diff, then 0011-pkzip-format-rewrite-1.diff followed by 0011-pkzip-format-rewrite-2.diff and last pkzip-fixes-v3.diff, then 0011-pkzip-rewrite-fix-2.diff. Sorry for the mess, we'll be making a jumbo-6-RC2 soon.
pkzip-fixes-v3.diff includes fixes up to and including this post on john-dev.
0010-benchmark-changes-1.diff JimF Status: Added 2011-09-09, currently relevant.
Changes how benchmarking is done. Adds two new 'magic' values, -1000 and -1001 which act like 0 and -1, but smash the passwords, so that benchmarking does not call the format crypt_all/cmp_all functions with correct passwords.
Apply after all other numbered patchs. Only affects a couple of formats. ssh, pdf (and will affect pkzip when that format is released in updated form).
See the message thread with more discussion of this topic: here (NOTE, the -v3 patch on this thread is same as this patch, minus the ssh_fmt and pdf_fmt changes).
0009-N-reject-flag-reject-unless-length-N-is-supported.patch magnum Status: Added 2011-09-01, currently relevant.
Adds a new rule reject flag →N (reject unless length N is supported by format) as discussed here
0008-remove-CR-s-from-wordlist.c-log_event.patch magnum Status: Added 2011-08-31, currently relevant.
Removes a couple of erroneous CR's from wordlist logging
0007-Duplicate-Rules-Removal-2.diff-PULLED JimF Status: Added 2011-08-31, currently relevant.
This is a PoC, to reduce the rules.
This functionality is needed now, that we have .include [section] within the john.conf loading.
the location of the rules reduction is done in the 'rules_count' function. We first get a count (and possibly bail out due to a bad rule), and then reduce, and then get a count again. If the counts are different, we log that fact. Also logged are any dupe rules.
The rules are compared after they have been 'reduced' by dropping all no-op crap from them, with a call to rules_reject() with split == -1.
Version 2 of this patch, fixed a couple of bugs, changed the function interface of rules_remove_dups() and made it a public function (and put an extern in rules.h). This function may be useful for the ”.remove [section]” code.
0006-Fixes-two-ancient-incremental-mode-MPI-bugs.patch magnum Status: Added 2011-08-31, currently relevant.
Fixes ancient bugs (all the way back from Ryan Lim in 2003) in Incremental mode's MPI support. One bug made –inc in some cases miss a few very, very early candidates in a run. Also, resuming was buggy - we might have missed a (much larger) block of candidates there too.
0005-proper-config-filename-errors-1.diff JimF Status: Added 2011-08-31, currently relevant.
Outputs proper .conf file name when exiting john based upon errors.
Now that we load multiple .conf files (using the .include “filename”), we have to track the proper file name with each cfg_line item, and then in other parts of john, list the error (or when loading conf file data).
The right file is now output in conf loading, extern errors, Rules (or single) parsing errors, and md5_gen loading errors.
If a rules section can not be found, the 'master' john.conf file is still listed, since we do not know anything better. When an md5_gen(x+1000) is requested that is not found, we simply list 'unknown format', just like any other mis-spelled format name.
0004-update-to-config-changes.diff JimF Status: Added 2011-08-30, currently relevant.
Fixes path load problems in 0001_2 patch below.
0003-j6-pkzip-format-OMP-fixes-1.diff
0003-j6-pkzip-format-OMP-fixes-2.diff
JimF Status: Added 2011-08-29, currently relevant.
Fixed OMP issues and other issues in the pkzip format.
Sped up the pkzip format in several ways, in both OMP and non OMP builds.
Install after prior numbered patches into jumbo-6-RC1
To install, first install the 0003-j6-pkzip-format-OMP-fixes-1.diff, then install 0003-j6-pkzip-format-OMP-fixes-2.diff, which fixes some issues.
0001_2-j6-Config-changes-include-syntax-and-mingw-path-fixes.diff JimF Status: Added 2011-08-29, currently relevant.
Fixed a long standing bug in MSVC/Mingw which use \ chars in the argv[0], vs unix / chars.
Added the ability for john.conf file to include other .conf files.
The syntax is: .include “file” or .include <file> .include <file> is same as .include “$JOHN/file”
Added the ability for john.conf 'sections' to include other sections.
The syntax is: .include [List.Rules.appe_1num] This will end up replacing that line with all of the lines in the [List.Rules:appe_1num] section.
documentation is updated.
Within john.conf, .includes add several Inc:all sections, add 2 sections of extern:parallel, and 2 sections of extern:double.
Also removed the dumb16, dumb32 and 'generic' (md5-gen script data), and placed them into the run directory (outside of john.conf file).
Apply this patch to a CLEAN jumbo-6-rc1. This patch replaced the prior 0001 and 0002 patches.
Patch Author Status and Description
john-1.7.8-jumbo-6-RC1.diff.gz

john-1.7.8-jumbo-6-RC1.tar.gz
magnum JimF Solar Status: Added 2011-08-25 (JimF).
This is Jumbo-6 RC1. It is a rollup of all numbered patches below (minus the one pulled), the pkzip format, the trip-code format, and several changes to encodings not posted, and a new 'thin' raw-md5u format.

Installation instructions: Patch -p1 this patch right over john-1.7.8-jumbo-5, or use the tarball.

These are just here for reference; These are the original patches taking us from 1.7.8-jumbo-5 to 1.7.8-jumbo-6-rc1

Patch Author Status and Description
0039-NT-self-tests-for-encodings-that-have-u-umlaut.patch magnum Status: Added 2011-08-25. Apply after the other numbered patches.
Self test tweaks for NT
0038-thin-raw-md5u.patch magnum Status: Added 2011-08-25. Apply after the other numbered patches.
Raw-md5-unicode format, “thin” version (named raw-md4u)
0037-trip_fmt-added-as-plugin.patch Solar Status: Added 2011-08-25. Apply after the other numbered patches.
Trip format rebased to Jumbo (as a plugin), uploaded by magnum
0036-refactoring-of-unicode-names-update-docs-update-comm.patch magnum Status: Added 2011-08-25. Apply after the other numbered patches.
Refactoring of unicode names, update docs, update comments
0035-Encoding-support-upper-lower-casing-for-non-Unicode-.patch magnum Status: Added 2011-08-25. Apply after the other numbered patches.
Encoding support (upper/lower casing) for non-Unicode formats and Single mode.
0034-Convert-reported-usernames-too-according-to-AlwaysRe.patch magnum Status: Added 2011-08-24. Apply after the other numbered patches.
Enhancement of 0027 functionality: UTF-8 output of usernames too
0033-Another-bugfix-for-0026-did-not-work-at-all-with-std.patch magnum Status: Added 2011-08-24. Apply after the other numbered patches.
Bugfix for 0026, wordlist mode did not work at all when not using mem buffer
0032-Dumb16-32-restore-fixes-and-formatting-in-john.conf.patch magnum Status: Added 2011-08-23. Apply after the other numbered patches.
Hopefully the last update for Dumb16/Dumb32. They would not resume correctly as the stored state was UTF-8. Added UTF8→UTF32 conversion in restore() and fixed indentation while at it (which made this patch quite a bit larger).
0031-Fixes-a-bug-in-encoding-aware-uppercasing-some-valgr.patch magnum/JimF Status: Added 2011-08-23. Apply after the other numbered patches.
Fixes a bug in codepage-aware uppercasing, as well as a number of issues found with valgrind.
0030-Fix-for-mkdumb16.pl-and-Dumb16-32-external-modes.patch magnum Status: Added 2011-08-22. Apply after the other numbered patches.
Dumb16 and Dumb32 external modes (patch 0004) missed defining a lot of characters that are part of ranges, due to a parsing miss.
0029-Bugfix-for-0026-Hung-at-end-of-file-when-not-using-m.patch magnum Status: Added 2011-08-22. Apply after the other numbered patches.
Bugfix for 0026: when not using memory buffer, we failed to break out of the outer loop.
jumbo5-pkzip-format-1.patch

jumbo5-pkzip-format-2.patch
JimF Status: Added 2011-08-18 (and accidentally removed from wiki for a couple of days). Apply after 1.7.8 Jumbo-5.
PKZIP encryption format. This format adds full support for pkzip encrypted 'old' legacy format encryption. It also adds to the zip2john program, so it can produce hashes.
To apply, first patch with #1 then #2. #2 is an update (adds compression type, to be able to handle imploded or stored files).
If #1 had been installed earlier, then simply patch in #2.
0028-fix-for-0027.patch

0027-Optionally-report-store-Unicode-plaintexts-as-UTF-8-.patch
magnum Status: Added 2011-08-21. Apply after the other numbered patches.
Adds a couple of new options to john.conf (all of them default off):
* LogCrackedPasswords: Write cracked passwords to the log file (default is just the user name)
* AlwaysReportUTF8: Always report (to screen and log) cracked passwords as UTF-8, regardless of input encoding.
* UnicodeStoreUTF8: Always store Unicode (UTF-16) passwords as UTF-8 in john.pot, regardless of input encoding.
* CPstoreUTF8: Always store non-Unicode formats as UTF-8, regardless of input encoding.

0028 fixes a bug in 0027.
0026-Const-fixes-wordlist-fix2.patch JimF Status: Added 2011-08-20. Apply after the other numbered patches.
Enhancement to patch 24. Also adds 'const' qualifier to many char * values, so we KNOW they are not changed.
Now, wordlist, in memcache, read from file, read from stdin, read from pipe, all work properly, read a 'FULL' line, properly remove dupes, and truncate to line length.
There are some nuances depending upon if there are rules or not.
Also, several portability issues also corrected in other parts of john.
0025-Fixed-wordlist.c-bug-enable-pointer-copy.patch magnum Status: Added 2011-08-19. Apply after the other numbered patches.
This finally fixes what the pulled 0018 should have fixed. The truncation is wrong when using rules though, but that is fixed with the above 0026 patch.
0024-Encoding-fixes-S-now-works-for-non-ascii.patch magnum Status: Added 2011-08-19. Apply after the other numbered patches.
This fixes encoding support for the S rule command (shift toggling).
0023-Encoding-fixes-T-now-works-enabling-rules-NT-for-enc.patch magnum Status: Added 2011-08-19. Apply after the other numbered patches.
This fixes encoding support for the t/TN rule commands (case toggling). We thought that would be in place automagically once we fixed lower/upper but a little more was needed. Now, finally, the –rules:NT trick works for non-ASCII.
0022-various-bug-fixes-and-muting-of-compiler-warnings.patch magnum Status: Added 2011-08-19. Apply after the other numbered patches.
A couple minor bug fixes that seemingly had no effect. And got rid of a compiler warning (for icc)
0021-j5-Minor-fixes-to-2-formats.patch JimF Status: Added 2011-08-18. Apply after the other numbered patches.
A couple of formats had the same named non-static variables. Changed to static to avoid BAD unexpected behavior.
0020-Choose-what-type-to-benchmark-with-crypt-3-using-sub.patch magnum Status: Added 2011-08-18. Apply after the other numbered patches.
This patch enables –subformat use for the generic crypt(3) format. See mailing list announcement.
0019-DMD5-improved-a-little.patch magnum Status: Added 2011-08-18. Apply after the other numbered patches.
I tried to make DMD5 a “real” format with self test and non-hardcoded input files. I think I got it working but to be honest I have no idea what this format is for so it's more or less untested (except with the former hard-coded example, which became the self-test). Parsing is still very crude, to say the least. Maybe there is (or could be) an md5_gen mode for this instead.
0018 PULLED, FAULTY magnum Status: Added 2011-08-17. Do not use. Do not apply this patch, instead use 0025.
This was supposed to fix an old bug in wordlist mode that prevented us from just copying a pointer instead of copying a string after preloading wordlist to memory and using rules (see –mem-file-size option. Hint: use –mem=0). The performance boost is huge for quick formats, way over 50% seen.
0017-Character-classes-tweaks.patch magnum Status: Added 2011-08-17. Apply after the other numbered patches.
Tweaks and bug fixes for encodings.
john-1.7.8-trip-1.diff Solar Designer Status: currently relevant, PoC. This patch adds support for cracking DES-based tripcodes, but it is currently almost unoptimized (uses the non-bitslice DES implementation, does not group candidate passwords by crypt(3) salts).
0016-jumbo5-mssql-sse2-pot-fix.patch JimF Status: Added 2011-08-16. Apply after the other numbered patches.
The prior 0014 patch, caused SSE builds of MSSQL to not store proper passwords into the john.pot file.
0015-Add-best-effort-vowel-matching-to-cmpt_cp.pl-and-JtR.02.patch magnum Status: Added 2011-08-16. Apply after the other numbered patches.
This adds (best-effort) vowel/consonant matching for non-english characters. See mailing list announcement.
0014-j5-encoding-fixes.patch.gz JimF Status: Added 2011-08-15. Apply after the other numbered patches.
Fixes for encoding. Added a 'third' type of Unicode encoding. Now there is WinOLD (XP), WinNew (Vista+) and Unicode.org
The 3 unicode types can be loaded at runtime. Right now, it will select Winold if mssql format is used, or unicode.org otherwise. But later testing may find that WinNew may be a choice for many MS formats.
mssql was failing on BE systems when -encode= was used
oracle was not finding all values stored in the john.pot file (now it works in a manner like was done with mssql).
0013-field-sep-tab-is-now-parsed-as-TAB-character.patch magnum Status: Added 2011-08-15. Apply after the other numbered patches.
A field separator of “tab” (literally) will now be parsed as the TAB character
0012-rawMD5unicode-encoding-support.patch magnum Status: Added 2011-08-15. Apply after the other numbered patches.
Fix for full codepage support for raw-md5-unicode.
0011-mssql05-FMT_CASE.patch magnum Status: Added 2011-08-14. Apply after the other numbered patches.
Sets FMT_CASE for the mssql05 format, for some reason it was missing.
0010-60-boost-for-NT_fmt-when-using-a-codepage.patch magnum Status: Added 2011-08-14. Apply after the other numbered patches.
This mitigates most of the speed drop in NT format when using a codepage encoding (i.e –encoding=xx where xx is not UTF-8). Codepages now run faster than UTF-8, which is expected.
0009-mscash-fixes-for-0007.patch magnum Status: Added 2011-08-14. Apply after 0008. This fixes another bug in the 0007 patch.
0008-Fixes-for-0007.patch magnum Status: Added 2011-08-13. Apply after 0007. This fixes a couple of bugs in the 0007 patch.
0007-jumbo5-encoding-enhancements-1.patch.gz JimF Status: Added 2011-08-12. Apply to 1.7.8 Jumbo-5 (after all other numbered Jumbo5 patches).
Added new 'rules'. ?o (match control chars) ?y (match valid chars for a CP)
Added encodings for: cp1252, cp850, cp858, cp866, cp437, cp737, iso-8859-15
The encodings now always have the #defines, so all of the setting in rules.c is cut and paste, and will later be easier to change to an array of same data structures.
Added additional data loading (from the CP's) in rules.c, for 'p', 'w', 's', 'd'. ('o' and 'Y' are 'new' data).
Fixed issue in rawMD5unicode_fmt_plug.c caused by new encodings, and invalid characters within them.
Update to 1.2 of cmpt_cp.pl (code page code generator). Requires ./src/unused/UnicodeData.txt file to be 'added'.
Fixed bug in NT format and msCash1, where a U+0080 character in the password, would cause improper processing.
Fixed some missing casing from Unicodedata.txt file (type Nl and So can be cased).
Added new UCS2 casing from WinXP/MSSQL-2000 testing data.
0006-jumbo5-fixes-memleaks-porting-non-hash-formats-1.patch
0006a.patch
0006b.patch
JimF Status: Added 2011-08-12. Apply to 1.7.8 Jumbo-5 (after all other numbered J5 patches).
This patch handles many portability issues in the non-hash formats (pdf/zip/rar/ssh).
It adds a local stdbool.h
it puts variable declaration at the top of a block.
fixes memory leaks in a couple formats. pdf format still does not free 5 strings, but that number does not grow, it is simply the last object not getting cleaned up.
fixed an invalid memory read problem in pdf (using proper sized static buffer in salt).
removed #if defs in john.c keeping this from running on MSVC (the memory read issue in pdf was one of the main problems)

The 0006a.patch should be applied. It changes some #defines from MSC_VER into !GNUC
The 0006b.patch file should only be installed if there are 'problems' with stdbool.h. This patch comments out the system stdbool, and only uses the local version in john. Solaris 'may' need this patch.

Thus, proper patching, is the full patch, followed by 0006a.patch. Then 'possibly' 0006b.patch IF there are stdbool.h build problems.
0005-User-defined-character-classes.patch magnum Status: Added 2011-08-11. Apply to 1.7.8 Jumbo-5. This adds user-defined character classes. The patch does not rely on previous ones, in fact it will probably apply to older Jumbos too.
0004-Dumb16-UCS-2-and-Dumb32-Unicode-external-modes-added.patch.gz magnum Status: Added 2011-08-08. Apply to 1.7.7-jumbo-5 or later (for UTF-8→Unicode support). This patch does not rely on previous ones. It adds two external modes to john.conf, for narrowing in on a codepage for Unicode hashes, or for experimenting/debugging or just understanding how mindbogglingly huge the Unicode space is when brute forcing:
* Dumb16 tries all allocated codepoints in the UCS-2 part of Unicode 6.0 (there are 15801 of them) and outputs them as UTF-8.
* Dumb32 tries all allocated codepoints in Unicode 6.0 (there are 23296 of them) and outputs them as UTF-8.
For Unicode formats (like NT), use with -enc=utf8 (or just -utf8 for John versions from 1.7.7 Jumbo-5 and prior to 1.7.8 Jumbo-5). For 8-bit formats (hashes actually made from UTF-8) you don't need such options and in this case you can use these modes with much older versions of JtR.
0003-Show-OMP-in-usage-output-if-enabled.patch magnum Status: Added 2011-08-05. Apply to 1.7.8-jumbo-5. This just adds “_omp” to the version string so you can identify an OMP enabled build. The same was already true for MPI (and if you enable both, it will show as _mpi+omp). This patch does not rely on previous ones.
0002-Rev-2-Bugfixes-for-stdin-and-pipe.patch magnum Status: Updated 2011-08-04. Apply to 1.7.8-jumbo-5. This fixes bugs in wordlist.c that made –stdin effectively a synonym to –pipe, and fixes a bug in –pipe
This patch needs the 0001 patch below applied before it, to fix the problem for MPI builds.
0001-v2-reinstate-nCurLine-for-MPI.patch magnum Status: Replaced 2011-08-04. Apply to 1.7.8-jumbo-5. This simplifies wordlist.c, unifying MPI and non-MPI code.