+2020-06-19 Keith Marshall <keith@users.osdn.me>
+
+ Force "C" linkage for setup key definitions.
+
+ * src/setup.cpp (uri_key, mirror_key, value_none): Wrap them...
+ (BEGIN_C_DECLS, END_C_DECLS): ...between these.
+
+2020-06-19 Keith Marshall <keith@users.osdn.me>
+
+ Support all-static linking with recent GCC versions.
+
+ * Makefile.in (LDFLAGS): Add "-static" unconditionally.
+ (LIBS, SETUP_TOOL_LIBS): Remove all "-Wl,-Bstatic" and "-Wl,-Bdynamic"
+ references; the latter, in particular, appears to induce dynamic
+ linking of libstdc++-6.dll, overriding "--static-libstdc++".
+
+2020-06-12 Keith Marshall <keith@users.osdn.me>
+
+ Use XML templates to adapt to download host changes.
+
+ * configure.ac (MINGW_PACKAGE_DIST_URL): Update to OSDN host URL.
+
+ * xml/profile.xml: Rename it as...
+ * xml/profile.xml.in: ...this; replace hard-coded repository URL...
+ (%PACKAGE_LIST_URL%/%F.xml.lzma): ...this template.
+
+ * xml/setup.xml: Likewise, rename it as...
+ * xml/setup.xml.in: ...this, with corresponding URL update.
+
+ * Makefile.in (install-profile): Modify procedure, using...
+ (%.xml: %.xml.in): ...this new pattern rule, to generate installed XML
+ files, from source templates.
+
+ * src/setup.rc (STRINGTABLE) <ID_DOWNLOAD_HOST_URI>: Remove trailing
+ "?download" qualifier.
+
+2020-06-11 Keith Marshall <keith@users.osdn.me>
+
+ Discontinue formal use of the build-aux submodule.
+
+ * .gitmodules .hgsub: Files are obsolete; delete them.
+ * .gitignore .hgignore (build-aux): Add to SCM exclusion list.
+
+ * aclocal.m4 (build_aux_prefix): New macro; define it. This provides
+ a mechanism for informally locating an external, separately maintained
+ implementation of the requisite "build-aux" module; use it in...
+ (aux_include): ...this new macro; define, and use it, to access those
+ "build-aux" M4 macros which are required at configure generation time.
+ (MINGW_AC_CONFIG_AUX_DIR, MINGW_AC_CONFIG_AUX_DIRS): New macros;
+ define them. Together, they implement a replacement for the standard
+ AC_CONFIG_AUX_DIR macro, but offering extended path search capability,
+ at configure run time, in addition to defining...
+ (buildauxdir): ...this new AC_SUBST variable.
+
+ * configure.ac (build_alias): Define it using...
+ (ac_aux_dir): ...this autoconf path reference, defined by using...
+ (MINGW_AC_CONFIG_AUX_DIR): ...this, instead of...
+ (AC_CONFIG_AUX_DIR): ...this.
+
+ * Makefile.in (buildauxdir): Use it, for M4 file references.
+
+2020-06-02 Keith Marshall <keith@users.osdn.me>
+
+ Do not use .hgtags for repository tag tracking.
+
+ * .hgtags: Delete file; it serves no purpose within a git repository,
+ and may actually interfere with tag inheritance, when cloning from git
+ into hg.
+
+2017-09-05 Keith Marshall <keith@users.osdn.me>
+
+ mingw-get-0.6.3-mingw32-pre-20170905-1 posted on OSDN.net
+
+ * All files (r0-6-3-beta-20170905-1): Tag assigned.
+
+2017-09-04 Keith Marshall <keith@users.osdn.me>
+
+ Improve probability of establishing successful URL connections.
+
+ * src/pkginet.cpp (pkgInternetAgent::OpenURL): Add...
+ (INTERNET_FLAG_KEEP_CONNECTION, INTERNET_FLAG_IGNORE_CERT_CN_INVALID)
+ (INTERNET_FLAG_IGNORE_CERT_DATE_INVALID, INTERNET_FLAG_PRAGMA_NOCACHE)
+ (INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTPS)
+ (INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTP): ...these flags, when calling
+ the InternetOpenUrl() function.
+
+2017-09-01 Keith Marshall <keith@users.osdn.me>
+
+ Increment version for first OSDN hosted release.
+
+ * VERSION.m4 (VERSION_PATCH): Increment to 3; thus...
+ (__VERSION__): ...this is auto-incremented to 0.6.3
+
+2013-11-26 Keith Marshall <keithmarshall@users.sourceforge.net>
+
+ Conflate name and class columns in GUI package list.
+
+ * src/pkglist.cpp (AppWindowMaker::InitPackageListView): Remove...
+ <ID_PKGTYPE_COLUMN_HEADING>: ...column with this heading; add its width
+ allocation to the original pixel count alloted for the width of...
+ <ID_PKGNAME_COLUMN_HEADING>: ...this column.
+ (pkgListViewMaker::UpdateItem): Conflate content of original name and
+ class columns into first column; renumber successive columns.
+
+2013-10-18 Keith Marshall <keithmarshall@users.sourceforge.net>
+
+ Don't attempt to resolve dependencies for unidentified packages.
+
+ * src/pkgdeps.cpp (pkgXmlDocument::ResolveDependencies):
+ [selected == NULL]: Current dependency is unresolved; do not make any
+ recursive call for this unidentified requirement. This avoids posting
+ misleading "can't get 'tarname' for non-release element <<<unknown>>>"
+ diagnostic messages, where the subsequent "unresolved dependency"
+ message is sufficient; include dmhmsgs.h, and add...
+ (PKGMSG_SPECIFICATION_ERROR): ...this preamble instead.
+
+2013-10-18 Keith Marshall <keithmarshall@users.sourceforge.net>
+
+ Implement foundation for future NLS enabled diagnostics.
+
+ * src/dmhmsgs.h: New file; it declares the NLS capable DMH interface.
+ * src/dmhmsgs.c: New file; it implements rudimentary NLS hooks, (but
+ currently does not direct them to any NLS provider), together with an
+ initial subset of a default (compiled in) message catalogue.
+
+ * Makefile.in (CORE_DLL_OBJECTS): Add dmhmsgs.$OBJEXT
+
+ * src/pkgname.cpp (pkgArchiveName): Modify diagnostics, to use...
+ (PKGMSG_SPECIFICATION_ERROR): ...this dmhmsgs.h declared message.
+
+2013-10-15 Keith Marshall <keithmarshall@users.sourceforge.net>
+
+ Add automated build time configuration management.
+
+ * Makefile.in (Makefile): Add regeneration rules, depending on...
+ (VERSION.m4, configure.ac, aclocal.m4, missing.m4, makeopts.m4):
+ ...these, if modified by the package maintainer, directed via...
+ (config.status, configure): ...these, regenerated as required.
+
+2013-10-04 Keith Marshall <keithmarshall@users.sourceforge.net>
+
+ mingw-get-0.6.2-mingw32-beta-20131004-1 released.
+
+ * VERSION.m4 (VERSION_PATCH): Increment it.
+ * srcdist-doc/NEWS.in: Release notes updated.
+ * All files (r0-6-2-beta-20131004-1): Tag assigned.
+
+2013-10-03 Keith Marshall <keithmarshall@users.sourceforge.net>
+
+ Propagate RELEASE_CLASS setting from mingw-get-setup.
+
+ * configure.ac (CLI_RELEASE_CLASS, GUI_RELEASE_CLASS): Adopt...
+ (RELEASE_CLASS) [defined]: ...this as default value.
+
+2013-10-02 Keith Marshall <keithmarshall@users.sourceforge.net>
+
+ Support group affiliation with component package granularity.
+
+ * src/pkglist.cpp (pkgXmlNode::IsVisibleClass): Make it synonymous
+ with IsVisibleGroupMember(); this is a temporary adjustment, pending
+ the planned implementation of component class visibility filtering.
+ (pkgListViewMaker::Dispatch): Defer consideration of visibility until
+ traversal of component package directories, except in the particular
+ case of packages which lack defined components.
+
+2013-10-01 Keith Marshall <keithmarshall@users.sourceforge.net>
+
+ Correct processing of package group associations.
+
+ * src/pkgtree.cpp (AppWindowMaker::IsPackageGroupAffiliate): Iterate
+ over "affiliate_key" elements in FindNextAssociate() calls; original
+ implementation was incorrectly iterating over "group_key" elements.
+
+2013-09-21 Keith Marshall <keithmarshall@users.sourceforge.net>
+
+ Reorder controls within "Apply Changes" dialogue.
+
+ * src/guimain.rc (IDD_APPLY_APPROVE): Move definition of the "Okay to
+ proceed?" GROUPBOX, and its contained PUSHBUTTONs, to the top; we want
+ it to get the default focus.
+
+2013-09-21 Keith Marshall <keithmarshall@users.sourceforge.net>
+
+ Reimplement wsh.lua in C/C++; (cf. MinGW-Bug #2057).
+
+ * src/pkgexec.cpp (LUA_INLINE): New function attribute definition.
+ (init_lua_path): Use it, reproducing the original function attributes.
+ (lua_isstringarg): New LUA_INLINE helper function; implement it.
+ (lua_wsh_libexec_path): New function; it implements wsh.libexec_path
+ (lua_wsh_execute): New function; it implements wsh.execute
+ (luaload_wsh): New function; it wraps references to lua_wsh_execute()
+ and lua_wsh_libexec_path() to provide the wsh module implementation.
+ (pkgXmlNode::DispatchScript): Preload it into the Lua interpreter.
+
+ * scripts/libexec/setup.lua (M.argwrap): New method; implement it.
+ (M.shlink, M.unlink): Use it to collect their arguments into a single
+ string, to be passed as the command to be invoked by wsh.execute
+
+ * scripts/libexec/wsh.lua: File is no longer required; delete it.
+ * Makefile.in (LIBEXEC_SCRIPTS): Remove reference to it.
+
+2013-09-20 Keith Marshall <keithmarshall@users.sourceforge.net>
+
+ Establish default preferences for GUI; (cf. MinGW-Feature #2036)
+
+ * src/pkgbase.h (pkgXmlDocument::EstablishPreferences): Adjust its
+ prototype; add argument identifying prospective client classification.
+
+ * src/pkgopts.cpp (client_key): New XML property keyword; define it.
+ (pkgXmlDocument::EstablishPreferences): Implement filter, based on new
+ client classification argument, to restrict preference selection to a
+ matching client class specification.
+
+ * src/climain.cpp (dbase.EstablishPreferences): Filter on class "cli".
+ * src/guiexec.cpp (pkgData->EstablishPreferences): Likewise, on "gui".
+
+ * xml/profile.xml (preferences): Add client="cli" attribute for the
+ existing specification; add another for client="gui".
+
+2013-09-20 Keith Marshall <keithmarshall@users.sourceforge.net>
+
+ Force canonical comparison of shell links; (cf. MinGW-Bug #2054)
+
+ * scripts/libexec/unlink.js [FileExists(filename) && (chklink != "")]:
+ The value of 'chklink' may not be canonical; instantiate an (unsaved)
+ link reference from it, then compare the canonicalized reference from
+ within it, to the reference within 'filename', thus avoiding possible
+ lexical mismatch between canonical and non-canonical forms.
+
+2013-09-19 Keith Marshall <keithmarshall@users.sourceforge.net>
+
+ Correct LUA_PATH assignment for GUI; (cf. MinGW-Bug #2052)
+
+ * src/pkgexec.cpp (LUA_LIBEXEC_PATH): New manifest string; define it.
+ (init_lua_path) <LUA_PATH>: Use it; add guimain.exe app directory.
+
+2013-09-19 Keith Marshall <keithmarshall@users.sourceforge.net>
+
+ Handle meta-package removal correctly; (cf. MinGW-Bug #2051)
+
+ * src/pkgunst.cpp (pkgRemove) [archive == none]: Ensure the pending
+ action flag is cleared; previously this was done during manifest clean
+ up, and since a meta-package has no manifest, it was overlooked.
+
+2013-09-10 Keith Marshall <keithmarshall@users.sourceforge.net>
+
+ mingw-get-0.6.1-mingw32-beta-20130910-1 released.
+
+ * srcdist-doc/NEWS.in: Release notes updated.
+ * All files (r0-6-1-beta-20130910-1): Tag assigned.
+
+2013-09-10 Keith Marshall <keithmarshall@users.sourceforge.net>
+
+ Fix MinGW-Bug #2026.
+
+ * src/dmhguix.cpp (DMH_PTY_GUARDBYTES): New manifest constant.
+ (dmhTypePTY::printf) [buffer full]: Use it; it defines a reserved byte
+ count, at end of buffer, where expansion or scroll out is triggered;
+ use memcpy() for scroll out, but avoid overlapping regions.
+ (dmhTypePTY::printf) [output == '\r']: Handle it.
+
+ * src/tarproc.cpp (create_output_stream): Improve diagnostic messages;
+ discriminate between file collision and other privilege violations.
+ (pkgArchiveProcessor::ExtractFile): Don't return a zero status code,
+ when the output stream could not be successfully opened, so that...
+ (pkgTarArchiveInstaller::ProcessDataStream): ...we may avoid writing a
+ spurious manifest entry here.
+
+2013-09-06 Keith Marshall <keithmarshall@users.sourceforge.net>
+
+ Update version, pre-empting subsequent release.
+
+ * VERSION.m4 (VERSION_PATCH): Bump from zero to 1.
+
+2013-09-04 Keith Marshall <keithmarshall@users.sourceforge.net>
+
+ mingw-get-0.6.0-mingw32-beta-20130904-1 released.
+
+ * srcdist-doc/NEWS.in srcdist-doc/README.in: Release notes updated.
+ * srcdist-doc/INSTALL.in: Installation instructions updated.
+ * All files (r0-6-0-beta-20130904-1): Tag assigned.
+
+2013-08-26 Keith Marshall <keithmarshall@users.sourceforge.net>
+
+ Implement retry throttling for failed internet connections.
+
+ * src/pkginet.h (INTERNET_RETRY_ATTEMPTS): New macro; define it.
+ (INTERNET_RETRY_INTERVAL, INTERNET_DELAY_FACTOR): Likewise.
+
+ * src/pkginet.cpp (INTERNET_RETRY_REQUESTER): New typedef.
+ (pkgInternetAgent::connection_delay, pkgInternetAgent::delay_factor):
+ (pkgInternetAgent::retries, pkgInternetAgent::retry_interval): New
+ private member variables; declare them.
+ (pkgInternetAgent::OpenURL): Use them; they must be initialised by...
+ (pkgInternetAgent::SetRetryOptions): ...this new method; implement it.
+ (pkgActionItem::DownloadSingleArchive): Invoke it.
+ (pkgXmlDocument::SyncRepository): Likewise.
+
+2013-08-24 Keith Marshall <keithmarshall@users.sourceforge.net>
+
+ Reassign default URL for download of setup tool components.
+
+ * aclocal.m4 (PACKAGE_DIST_DOMAIN, PACKAGE_DIST_DIR): New precious
+ variables; declare them as such, and assign default values by using...
+ (MINGW_AC_PACKAGE_DIST_URL): ...this new macro; implement it.
+
+ * configure.ac (MINGW_AC_PACKAGE_DIST_URL): Use it.
+ * Makefile.in (TAG_SCRIPT): Capture assigned URL; substitute it...
+ (PACKAGE_DIST_URL): ...for this replacement text marker...
+ * src/setup.rc (ID_DOWNLOAD_HOST_URI): ...here.
+
+2013-08-21 Keith Marshall <keithmarshall@users.sourceforge.net>
+
+ Simplify guimain.exe duplicate instance prevention.
+
+ * src/guimain.cpp (WinMain): Delegate requisite checking to...
+ (WTK::RaiseAppWindow): ...this external toolkit function.
+
+2013-08-13 Keith Marshall <keithmarshall@users.sourceforge.net>
+
+ Install licence as standard setup component.
+
+ * src/guimain.h src/setup.rc (ID_PACKAGE_GUI_DISTNAME): Macro
+ no longer required; delete definition.
+
+ * src/setup.cpp (pkgSetup::DoFirstTimeInstallation):
+ <pkgSetupAction> [ID_PACKAGE_GUI_DISTNAME]: Delete reference.
+ <pkgSetupAction> [ID_PACKAGE_BASE_DISTNAME]: Update reference; repeat
+ to explicitly address each of "bin", "gui", and "lic" components.
+
+ * Makefile.in (TAG_SCRIPT) [PACKAGE_GUI_DISTNAME]: Delete reference.
+ (TAG_SCRIPT) [PACKAGE_BASE_DISTNAME]: Redefine as template.
+
+2013-08-13 Keith Marshall <keithmarshall@users.sourceforge.net>
+
+ More dialogue box adjustments.
+
+ * src/guimain.rc: Generally clean up white-space distribution.
+ (All dialogue templates): Use WS_TABSTOP consistently.
+
+2013-08-13 Keith Marshall <keithmarshall@users.sourceforge.net>
+
+ Circumvent Windows-7 "Program Compatibility Assistant" misbehaviour.
+
+ * src/manifest.rc (assembly) <compatibility>: Add <supportedOS>
+ declarations for each of Vista, Win7, and (tentatively) Win8.
+
+2013-07-30 Keith Marshall <keithmarshall@users.sourceforge.net>
+
+ Minor modification to "about" dialogue dismissal button.
+
+ * src/guimain.rc (IDD_HELP_ABOUT) <DEFPUSHBUTTON>: Change label text
+ to "Dismiss"; add WS_TABSTOP style.
+
+2013-07-30 Keith Marshall <keithmarshall@users.sourceforge.net>
+
+ Match "about" dialogue caption to main window.
+
+ * src/guimain.rc (IDM_HELP_ABOUT) <MENUITEM>: Match it to...
+ (IDD_HELP_ABOUT) <CAPTION>: ...this; make it representative of...
+ (ID_MAIN_WINDOW_CAPTION): ...this.
+
+2013-07-30 Keith Marshall <keithmarshall@users.sourceforge.net>
+
+ Implement "icon legend" display as "help" menu item.
+
+ * src/guimain.rc (IDM_HELP_LEGEND): Make menu item active; define
+ template for the dialogue box which it is to call out.
+
+ * src/guiexec.cpp (AppWindowMaker::OnCommand) [IDM_HELP_LEGEND]: New
+ case handler; implement dialogue box call out, as a variation on...
+ [IDM_HELP_ABOUT]: ...this; modify it accordingly.
+
+2013-07-30 Keith Marshall <keithmarshall@users.sourceforge.net>
+
+ Avoid discarding pending changes when catalogue is updated.
+
+ * src/guimain.h (IDD_CONFIRMATION): New manifest constant; define it.
+ (AppWindowMaker::ConfirmActionDialogue): New static method; declare it.
+ (AppWindowMaker::ConfirmActionRequest): New method; declare it.
+
+ * src/guimain.rc (IDD_CONFIRMATION): Implement new dialogue template.
+
+ * src/guiexec.cpp (pkgConfirmAction, pkgConfirmActionClient): New
+ static variables; they are used as pseudo-arguments, together with...
+ (DIALOGUE_DISPATCH, DIALOGUE_RESPONSE, DIALOGUE_CHKSTATE): ...these
+ new macros; define them; they facilitate the implementation of...
+ (AppWindowMaker::ConfirmActionDialogue): ...this; implement it.
+ (AppWindowMaker::ConfirmActionRequest): Implement it; use it...
+ (AppWindowMaker::OnCommand) [IDM_REPO_UPDATE]: ...here, and...
+
+ * src/pkgdata.cpp (AppWindowMaker::OnClose): ...here.
+
+2013-07-26 Keith Marshall <keithmarshall@users.sourceforge.net>
+
+ Make a minor GUI layout adjustment.
+
+ * src/pkgview.cpp (VSASH_INIT_POS): Increment from 0.30 to 0.35; this
+ sets the initial height of the package list pane to be 35% of the main
+ window height, which, at the default initial window size, neatly fits
+ the entire "Basic Setup" package group, without scrolling, on my
+ 1366x768 pixel Win7-VM display.
+
+2013-07-25 Keith Marshall <keithmarshall@users.sourceforge.net>
+
+ Implement setup tool installer "plugin".
+
+ * src/setup.h (SETUP_HOOK_RUN_INSTALLER): Define request code.
+
+ * src/dllhook.cpp (run_basic_system_installer): Implement handler...
+ (setup_hook) [SETUP_HOOK_RUN_INSTALLER]: ...and invoke it.
+ (setup_hook) [default]: Collect diagnostics in common message digest.
+ (AppWindowMaker::SetupHookInvoked): Define and initialise it; in this
+ context, which does not conflict with prior definition in guimain.exe,
+ it must always remain true.
+
+ * src/setup.cpp (SetupTool) [constructor]: Invoke...
+ (SetupTool::DispatchSetupHookRequest): ...this, on user's request...
+ (SETUP_HOOK_RUN_INSTALLER): ...with this action code; this replaces...
+ (SetupTool::RunInstalledProgram): ...one reference instance for this
+ external program fork, leaving only one such reference remaining;
+ declare it to be "inline".
+
+ * Makefile.in (GUIMAIN_LIB_OBJECTS): New macro; define it. It
+ abstracts a subset of the object modules originally enumerated...
+ (GUIMAIN_OBJECTS): ...here, whence use it; also incorporate into...
+ (SETUP_DLL_OBJECTS): ...this.
+ (SETUP_DLL_LIBS): Make it equivalent to...
+ (GUIMAIN_LIBS): ...this.
+ (mingw-get-setup-0.dll): Use...
+ (GUI_LDFLAGS): ...this, to specify linking options, rather than...
+ (LDFLAGS): ...this.
+
2013-07-25 Keith Marshall <keithmarshall@users.sourceforge.net>
Add "Basic Setup" as a built-in standard package group.