Intended compatibility: WSUS Offline Update 11.4 and later
- The documentation of the Linux download scripts is organized more like the Linux documentation in the directory /usr/share/doc.
The file NEWS.txt replaces the former release_notes_[version].txt. It contains detailed information about the last five versions in reverse order.
The file changelog.txt replaces the former version-history.txt. It contains a summary of the changes for all versions in reverse order. - The file 70-synchronize-with-target.bash was replaced with a more elaborate script copy-to-target.bash.
The usage is:- Code: Select all
./copy-to-target.bash <update> <destination-directory> [<option> ...]
The update can be one of:- Code: Select all
all All Windows and Office updates, 32-bit and 64-bit
all-x86 All Windows and Office updates, 32-bit
all-win-x64 All Windows updates, 64-bit
all-ofc All Office updates, 32-bit and 64-bit
wxp Windows XP, 32-bit (ESR version only)
w2k3 Windows Server 2003, 32-bit (ESR version only)
w2k3-x64 Windows XP / Server 2003, 64-bit (ESR version only)
w60 Windows Vista / Server 2008, 32-bit
w60-x64 Windows Vista / Server 2008, 64-bit
w61 Windows 7, 32-bit
w61-x64 Windows 7 / Server 2008 R2, 64-bit
w62 Windows 8, 32-bit (ESR version only)
w62-x64 Windows 8 / Server 2012, 64-bit
w63 Windows 8.1, 32-bit
w63-x64 Windows 8.1 / Server 2012 R2, 64-bit
w100 Windows 10, 32-bit (current version only)
w100-x64 Windows 10 / Server 2016, 64-bit (current version only)
The available options for the update parameter are determined by the installed files wsusoffline/exclude/ExcludeListUSB-*.txt, which are meant for the Windows script CopyToTarget.cmd. There is a strict one-to-one relationship:- Code: Select all
Update Used exclude list
------ -----------------
all ExcludeListUSB-all.txt
all-x86 ExcludeListUSB-all-x86.txt
all-win-x64 ExcludeListUSB-all-x64.txt
all-ofc ExcludeListUSB-ofc.txt
wxp-x86 ExcludeListUSB-wxp-x86.txt (ESR version only)
w2k3 ExcludeListUSB-w2k3-x86.txt (ESR version only)
w2k3-x64 ExcludeListUSB-w2k3-x64.txt (ESR version only)
w60 ExcludeListUSB-w60-x86.txt
w60-x64 ExcludeListUSB-w60-x64.txt
w61 ExcludeListUSB-w61-x86.txt
w61-x64 ExcludeListUSB-w61-x64.txt
w62 ExcludeListUSB-w62-x86.txt (ESR version only)
w62-x64 ExcludeListUSB-w62-x64.txt
w63 ExcludeListUSB-w63-x86.txt
w63-x64 ExcludeListUSB-w63-x64.txt
w100 ExcludeListUSB-w100-x86.txt (current version only)
w100-x64 ExcludeListUSB-w100-x64.txt (current version only)
The Windows script CopyToTarget.cmd uses xcopy.exe, and the exclude lists had to be edited to work with rsync on Linux. Therefore, the Linux script now uses its own set of these files. Some files are also renamed to better match the names of the command-line parameters.
The destination directory is the directory, to which files are copied or hard-linked. It should be specified without a trailing slash, because otherwise rsync may create an additional directory within the destination directory.
The options are:- Code: Select all
-includesp Include service packs
-includecpp Include Visual C++ Runtime Libraries
-includedotnet Include .NET Frameworks
-includewddefs Include Windows Defender virus definitions for
the built-in Defender of Windows Vista and 7.
-includemsse Include Microsoft Security Essentials. The virus
definitions are also used for the built-in Defender
of Windows 8, 8.1 and 10.
-cleanup Tell rsync to delete obsolete files from included
directories. This does not delete excluded files
or directories.
-delete-excluded Tell rsync to delete obsolete files from included
directories and also all excluded files and
directories. Use this option with caution,
e.g. try it with the option -dryrun first.
-hardlink <dir> Create hard links instead of copying files. The link
directory should be specified with an absolute path,
otherwise it will be relative to the destination
directory. The link directory and the destination
directory must be on the same file system.
-dryrun Run rsync without copying or deleting
anything. This is useful for testing.
The operation "per language" is not supported, because it is not needed anymore. It was useful for Windows XP and Server 2003, because these Windows versions had localized updates. But all Windows versions since Vista have global/multilingual updates, and Office updates are all lumped together, with most updates in the ofc/glb directory.
There are two known differences in the results between the Windows script CopyToTarget.cmd and the new Linux script copy-to-target.bash ( see viewtopic.php?f=5&t=8258 ):- The original file wsusoffline/exclude/ExcludeListUSB-w60-x86.txt misses an entry for vcredist2017_x64.exe. This means, that this file is not excluded by the Windows script, if the update "w60" is selected.
- The file wsusoffline/client/bin/IfAdmin.cpp is only excluded by the Windows script CopyToTarget.cmd, if the option /includedotnet is not used. Then the file wsusoffline/exclude/ExcludeListISO-dotnet.txt is appended to the filter file. With xcopy.exe, the line "cpp\" matches both the directory "cpp" (as expected) and the source file "IfAdmin.cpp".
But the file IfAdmin.cpp is neither needed for download nor for installation, and it should always be excluded. It is only included in WSUS Offline Update, because the GPL demands, that the source code of all utilities should be made available somewhere.
- Internal changes
- The definition of the environment variables LINES and COLUMNS, and of the terminal colors was moved from the scripts update-generator.bash and download-updates.bash to the library messages.bash.
These variables are only used in the library messages.bash, and then they should be defined there. The library messages.bash also provides standard values for the global variables logfile and debug, to make the library more self-contained and suitable for other scripts. - Hashdeep errors while checking the integrity of existing files are now reported as errors, not as warnings.
Before each download run, the integrity of existing files is verified with hashdeep. As a forensic tool, hashdeep treats all changes to the examined directory as errors, including the manual removal of files.
There are rarely real problems at this point, and the fix is to delete the corresponding hashdeep files in the directory wsusoffline/client/md. They will be rebuilt on the next download run.
But this is actually the normal progress: The hashdeep files will be deleted and rebuilt after each download run anyway. Therefore, hashdeep errors for the verification of existing files were only reported as "warnings".
Hashdeep errors for existing files still increment an internal counter for runtime errors, and for consistency they are now reported as "errors". - Corrected the copyright year of the files error-counter.bash and rebuild-integrity-database.bash to "2018".
These files were added in 2018, but due to lazy copy-and-past the copyright was set to 2016-2018.
- The definition of the environment variables LINES and COLUMNS, and of the terminal colors was moved from the scripts update-generator.bash and download-updates.bash to the library messages.bash.
Downloads for Version 1.8 (2018-07-27)
The download links for this version are:
http://downloads.hartmut-buhrmester.de/sh-1.8.tgz
http://downloads.hartmut-buhrmester.de/ ... hashes.txt
http://downloads.hartmut-buhrmester.de/ ... report.pdf
http://downloads.hartmut-buhrmester.de/ ... llpage.png
The hashes for the archive sh-1.8.tgz are:
- Code: Select all
MD5: 12707176af8b50cb370f14b982164f9d
SHA-256: 0ab70bacbec548d7050450f55175d8194cfeb208d63f89731f672680970fcd18
Further Reading
The first three posts in the original topic A complete rewrite of the Linux scripts are still being updated, to point to the latest version: