NEWS for Version 1.8 (2018-07-27)

NEWS for Version 1.8 (2018-07-27)

Postby hbuhrmester » 27.07.2018, 18:20

NEWS for Version 1.8 (2018-07-27)
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 ):

    1. 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.

    2. 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.


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:

Last edited by hbuhrmester on 09.08.2018, 13:39, edited 1 time in total.
Reason: Corrected wsusoffline/exclude/ExcludeListISO-w60-x86.txt to wsusoffline/exclude/ExcludeListUSB-w60-x86.txt in the description of known differences
hbuhrmester
 
Posts: 525
Joined: 11.10.2013, 20:59

Return to Linux

Who is online

Users browsing this forum: No registered users and 5 guests