+2010-09-10 Charles Wilson <mingw@cwilson.fastmail.fm>
+
+ Fix "mingw-get deletes itself" bug in last rites handling.
+
+ * README: Add new release notes.
+
+ * configure.ac: Bump version to 0.1-alpha-4.
+
+ * src/dmh.h: If __cplusplus, include <exception> and
+ declare dmh_exception class.
+
+ * src/dmh.cpp (class dmh_exception): Implement.
+ (abort_if_fatal): If DMH_FATAL, throw dmh_exception rather
+ than calling exit().
+
+ * src/climain.cpp (climain): Wrap entry function body in try/
+ catch block. If dmh_exception is caught, return EXIT_FAILURE.
+
+ * src/clistub.c (main): Capture return value of climain(). If
+ non-zero, perform last rites and return EXIT_FAILURE.
+
+2010-08-30 Keith Marshall <keithmarshall@users.sourceforge.net>
+
+ mingw-get-0.1-mingw32-alpha-3 released.
+
+ * README: Add new release notes.
+
+ * All files (r0-1-alpha-3): Tag assigned.
+
+2010-08-27 Keith Marshall <keithmarshall@users.sourceforge.net>
+
+ Add runtime hooks to support self-upgrade for future releases.
+
+ * src/rites.c: New file; compile it free-standing, to provide...
+ (lastrites.exe): ...this helper application for context clean-up;
+ alternatively, use it as an include file, with pre-definition of...
+ (IMPLEMENT_INITIATION_RITES): ...this, to implement...
+ (pkgInitRites, pkgLastRites): ...these inline functions.
+
+ * src/clistub.c (main) [argc > 1]: Use them.
+ (progname): New local variable within `main'; set it once, then use it
+ instead of repeated references to `basename(*argv)' in diagnostics.
+ (MINGW_GET_DLL, MINGW_GET_GUI): Relocate to `src/rites.c'.
+
+ * src/debug.h (DEBUG_INHIBIT_RITES_OF_PASSAGE):
+ (DEBUG_FAIL_FILE_RENAME_RITE, DEBUG_FAIL_FILE_UNLINK_RITE): New
+ defines; they facilitate debugging of the src/rites.c code.
+
+ * Makefile.in (lastrites$EXEEXT): New target; build as prerequisite...
+ (all): ...of this primary target.
+ (install, install-strip): Install it.
+ (SRCDIST_FILES): Remove install-sh; it is now included in...
+ (build-aux): ...this directory; add it to...
+ (SRCDIST_SUBDIRS): ...this.
+
+2010-08-24 Keith Marshall <keithmarshall@users.sourceforge.net>
+
+ Set default sysroots relative to mingw-get installation directory.
+
+ * xml/profile.xml (system-map) [name == default]: For each of...
+ [subsystem == mingw32]: ...set sysroot path to value of %R macro...
+ [subsystem == msys]: ...and to its %R/msys/1.0 subdirectory.
+
+2010-08-19 Keith Marshall <keithmarshall@users.sourceforge.net>
+
+ Some dependency resolver enhancements and bug fixes.
+
+ * src/pkgbase.h (pkgXmlNode::GetContainerAttribute): New method;
+ declare it.
+
+ * src/pkgdeps.cpp (pkgXmlNode::GetContainerAttribute): Implement it;
+ it is used to retrieve package name attributes from the containing
+ 'package' element, when given a pointer to a 'release' element by...
+ (assert_unmatched, assert_installed): ...these new static functions.
+ (pkgXmlDocument::Schedule): Use them to reconstruct and register
+ dependency reference data for previously installed packages which are
+ no longer included in the distribution manifest.
+ (pkgXmlDocument::ResolveDependencies): Fix a block nesting error;
+ catch and diagnose unresolved dependencies; don't look beyond the XML
+ document root node, (tinyxml error not caught?), when searching for
+ requirements specified on container nodes.
+
+2010-08-17 Keith Marshall <keithmarshall@users.sourceforge.net>
+
+ Improve scheduling of package processing requests.
+
+ * src/pkgexec.cpp (pkgXmlDocument::Schedule): Inspect entire `actions'
+ list, when checking for duplicate package processing requests; decline
+ to schedule any such duplicate, or any request which lacks a package
+ association.
+
+2010-08-15 Keith Marshall <keithmarshall@users.sourceforge.net>
+
+ Lay foundation for selective compilation of debugging code.
+
+ * src/debug.h: New file...
+ * src/sysroot.cpp: Include it.
+ (pkgXmlDocument::LoadSystemMap): Make debugging output conditional...
+ [DEBUGLEVEL & DEBUG_TRACE_INIT]: ...on this new debugging state.
+
+2010-08-15 Keith Marshall <keithmarshall@users.sourceforge.net>
+
+ * src/pkgkeys.h: Typo in comment: file was previously identified as
+ pkgkeys.c; corrected.
+
+2010-08-13 Keith Marshall <keithmarshall@users.sourceforge.net>
+
+ Improve diagnostics for invalid references to non-release XML nodes.
+
+ * src/pkgkeys.h (value_unknown): New global string; declare it.
+ * src/pkgkeys.c (value_unknown): Implement it.
+
+ * src/pkgname.cpp (pkgArchiveName): Identify XML element type when
+ diagnosing references to elements of types other than release; use...
+ (value_unknown): ...this, as appropriate.
+
+2010-08-12 Keith Marshall <keithmarshall@users.sourceforge.net>
+
+ Guard against a potential buffer overrun.
+
+ * src/pkgreqs.cpp (pkgSpecs::SetProperty): Allocate an additional
+ byte to accommodate an extra field separator, when inserting a new
+ data value into a previously empty field.
+
+2010-07-27 Cesar Strauss <cestrauss@gmail.com>
+
+ Handle the GNU long name tar header format.
+
+ * src/pkgproc.h (TAR_ENTITY_TYPE_GNU_LONGNAME): New manifest constant;
+ define it.
+ (pkgTarArchiveProcessor::EntityDataAsString): New protected method;
+ declare and...
+ * src/tarproc.cpp: ...implement it.
+ (pkgTarArchiveProcessor::Process): Before building the entry pathname,
+ check for a GNU long name type header; when found, read pathname from
+ the entry data area, before fetching the following header, from which
+ to retrieve the associated entity data.
+
+2010-06-24 Keith Marshall <keithmarshall@users.sourceforge.net>
+
+ Work around an autoconf bug (reported by Stefano Sabatini).
+
+ * Makefile.in (VPATH): Use @top_srcdir@ instead of ${srcdir}; current
+ autoconf incorrectly elides references to @srcdir@ and ${srcdir} when
+ substituting within a VPATH specification for building `in-source'.
+ Also, prefer colons to blanks as path name separators, for improved
+ portability to non-GNU implementations of make; (recommendation by
+ Ralf Wildenhues).
+
+2010-06-24 Keith Marshall <keithmarshall@users.sourceforge.net>
+
+ Include alias search, when matching component package name.
+
+ * src/keyword.c (has_keyword): Rearrange argument declarations for
+ more natural order; update all callers accordingly. Simplify; compare
+ keyword to be matched with each successive candidate from match-list,
+ character-by-character and in-place, so avoiding memory allocation
+ for any local duplicate of the passed match-list; thus...
+ (safe_strdup): ...this static function no longer required; delete it.
+ (string.h): No references remain; do not include it.
+
+ * src/pkgfind.cpp (pkgXmlNode::FindPackageByName): Augment component
+ package name matching to include potential matches of the look-up name
+ with trailing component name stripped off, when that matches the class
+ name of an identified component package, and the initial substring of
+ the look-up name, after stripping, matches any specified alias name
+ for the containing package.
+
+2010-06-10 Keith Marshall <keithmarshall@users.sourceforge.net>
+
+ Address FIXME relating to identification of distributable files.
+
+ * install-sh: Move to...
+ * build-aux: ...this new directory.
+
+ * Makefile.in (PACKAGE_DISTVERSION): Modify `sed' edit sequence; make
+ it depend on, and ensure that it incorporates the expansion of...
+ (PACKAGE_SUBSYSTEM): ...this new macro; defined as substitution of...
+ (host_os): ...this autoconf variable, set by...
+
+ * configure.ac (AC_CANONICAL_HOST): ...this; add it, requiring...
+ (AC_CONFIG_AUX_DIR): ...`build-aux' directory reference, providing...
+
+ * build-aux/config.guess, build-aux/config.sub: ...these new standard
+ files; import them from the standard `build-aux' repository.
+
+2010-05-17 Keith Marshall <keithmarshall@users.sourceforge.net>
+
+ Bump version for next release cycle.
+
+ * configure.ac (AC_INIT): Bump version suffix to alpha-3.
+
+2010-05-17 Keith Marshall <keithmarshall@users.sourceforge.net>
+
+ mingw-get-0.1-mingw32-alpha-2 released.
+
+ * README: Add new release notes.
+
+ * xml/profile.xml: Update to use default referencing for...
+ (package-list.xml.lzma): ...this repository master catalogue.
+
+ * All files (r0-1-alpha-2): Tag assigned.
+
+2010-05-12 Keith Marshall <keithmarshall@users.sourceforge.net>
+
+ Make provision to protect user's profile settings during upgrade.
+
+ * Makefile.in (install): Remove `profile.xml'; replace it with...
+ (install-profile): ...this new prerequisite installation goal; it
+ renames the installed copy of `profile.xml' as `defaults.xml', within
+ the installed package image.
+
+ * src/pkgkeys.h (defaults_key): New key; declare it.
+ * src/pkgkeys.c: Some cosmetic formatting (tabulation) adjustments.
+ (defaults_key): Implement it; it refers to the `defaults.xml' file.
+
+ * src/climain.cpp (climain): Check `profile_key' for accessibility of
+ the `profile.xml' file; if [! R_OK] emit a diagnostic warning, fall
+ back on `defaults_key', and attempt to load configuration from the
+ distributed `defaults.xml' file.
+
+2010-05-11 Keith Marshall <keithmarshall@users.sourceforge.net>
+
+ Add preliminary support for future `-reinstall' option.
+
+ * src/pkgexec.cpp (pkgActionItem::Execute) [ACTION_INSTALL]: Force
+ installation if `-reinstall' option is selected, overriding state of
+ any prior installation; temporarily assume that this option is always
+ selected, to permit proper `upgrade' operation in the absence of any
+ functional `uninstall' capability, and pending implementation of a
+ mechanism for interpreting user specified options.
+
+2010-05-11 Keith Marshall <keithmarshall@users.sourceforge.net>
+
+ Correct handling for "%R" macro in relative sysroot path specs.
+
+ * src/tarproc.cpp (pkgTarArchiveProcessor): In constructor, expand the
+ sysroot path specification a second time, to capture the effect of any
+ embedded macros, before computing the recorded `sysroot_len' value.
+
+2010-05-05 Keith Marshall <keithmarshall@users.sourceforge.net>
+
+ Handle "%" wildcard matches in package and subsystem version strings.
+
+ * src/pkgbase.h (pkgSpecs): Forward declare it.
+ (pkgActionItem::~pkgActionItem): Declare explicit destructor.
+ (pkgActionItem::SetRequirements): Add extra `pkgSpecs*' argument;
+ update references, passing additional argument in...
+
+ * src/pkgdeps.cpp (pkgXmlDocument::ResolveDependencies): ...this.
+
+ * src/pkgexec.cpp (pkgActionItem::~pkgActionItem): Implement it.
+ (pkgActionItem::SetRequirements): Delete obsolete implementation.
+
+ * src/pkginfo/pkginfo.h: Update copyright notice; add year 2010.
+ (pkgSpecs::GetTarName): New public method; declare it.
+ (pkgSpecs::SetProperty): New private method; declare it.
+ (pkgSpecs::SetPackageName): New inline method; implement it.
+ (pkgSpecs::SetPackageVersion, pkgSpecs::SetPackageBuild): Likewise.
+ (pkgSpecs::SetSubSystemName, pkgSpecs::SetSubSystemVersion): Likewise.
+ (pkgSpecs::SetSubSystemBuild, pkgSpecs::SetReleaseStatus): Likewise.
+ (pkgSpecs::SetReleaseIndex, pkgSpecs::SetComponentClass): Likewise.
+ (pkgSpecs::SetComponentVersion, pkgSpecs::SetPackageFormat): Likewise.
+ (pkgSpecs::SetCompressionType): Likewise.
+
+ * src/pkginfo/pkginfo.l: Update copyright notice; add year 2010.
+ (TRANS): Interpret "%" as wildcard in version string matches.
+
+ * src/pkgreqs.cpp: New file.
+ (pkgActionItem::SetRequirements): Reimplement per new declaration;
+ it now always allocates heap memory for requirements specifications.
+ (pkgSpecs::GetTarName, pkgSpecs::SetProperty): Implement them.
+
+ * Makefile.in (CORE_DLL_OBJECTS): Add `pkgreqs.$(OBJEXT)'.
+
+2010-04-30 Keith Marshall <keithmarshall@users.sourceforge.net>
+
+ Revert 2010-04-04 refactoring of tarproc.cpp and tarinst.cpp
+
+ * src/tarinst.cpp: File removed; its content merged into...
+ * src/tarproc.cpp: ...this; it cannot be cleanly separated out.
+
+ * Makefile.in (tarinst.$OBJEXT): Remove reference.
+
+2010-04-29 Keith Marshall <keithmarshall@users.sourceforge.net>
+
+ Handle "*" wildcard matches in package and subsystem version strings.
+
+ * src/vercmp.h (pkgVersionInfo::version_string): New private member
+ variable; it stores a pointer to a dynamically allocated local copy of
+ the invariant `version' argument, to facilitate correct parsing.
+ (pkgVersionInfo::build_string): Likewise; it provides similar handling
+ for the invariant `build' argument.
+ (pkgVersionInfo::Free): New private inline method; it provides a NULL
+ pointer safe wrapper, calling the C library `free()' function, (since
+ some implementations are believed to be unsafe); it is used by...
+ (pkgVersionInfo::~pkgVersionInfo): ...this new inline destructor, to
+ release the memory allocated by the constructor, for `version_string'
+ and `build_string'.
+
+ * src/vercmp.cpp (pkgVersionInfo::pkgVersionInfo): Allocate memory for
+ `version_string' and `build_string', as required; populate it.
+ Explicitly handle "*" as a `match anything' wildcard...
+ (pkgVersionInfo::Compare): ...matching it as `equal' to everything.
+
+2010-04-18 Keith Marshall <keithmarshall@users.sourceforge.net>
+
+ Correct omission from configure script prerequisite checks.
+
+ * aclocal.m4 (MINGW_AC_OUTPUT): New macro; it wraps AC_OUTPUT itself,
+ adding a trap to force an abort if any preceding prerequisite check
+ was handled by MINGW_AC_ASSERT_MISSING.
+
+ * configure.ac: Qualify package component types, in prerequisite
+ checks handled by MINGW_AC_ASSERT_MISSING; invoke MINGW_AC_OUTPUT
+ in place of AC_OUTPUT.
+
+2010-04-17 Keith Marshall <keithmarshall@users.sourceforge.net>
+
+ Add configure script checks for prerequisite library headers.
+ (Thanks to Cesar Strauss for proposing a rudimentary implementation).
+
+ * aclocal.m4: New file; it does no more than include...
+ * m4/missing.m4: ...this; new file incorporated from build-aux module.
+
+ * configure.ac: Add AC_CHECK_HEADER assertions for...
+ (zlib.h, bzlib.h, lzma.h): ...these; invoke MINGW_AC_ASSERT_MISSING in
+ respect of each failing assertion.
+
+2010-04-17 Keith Marshall <keithmarshall@users.sourceforge.net>
+
+ Case-insensitive subsystem name matching revisited.
+
+ * src/pkgfind.cpp (pkgXmlDocument::FindPackageByName): Use...
+ (subsystem_strcmp): ...this to match subsystem names, instead of...
+ (match_if_explicit): ...this.
+
+2010-04-15 Keith Marshall <keithmarshall@users.sourceforge.net>
+
+ Enable recursive processing of repository package lists.
+
+ * src/pkgbase.h (pkgXmlDocument::SyncRepository): Make it public.
+
+ * src/pkgbind.cpp (pkgRepository): New locally defined and implemented
+ class; it facilitates recursive loading and parsing of package lists,
+ replacing much of the original non-recursive functionality within...
+ (pkgXmlDocument::BindRepositories): ...this; use it.
+
+2010-04-04 Keith Marshall <keithmarshall@users.sourceforge.net>
+
+ Implement installer function; use per-package file manifests.
+
+ * src/pkgproc.h (pkgManifest): New class; declare it.
+ (pkgArchiveProcessor::origin): New protected member variable.
+ (pkgArchiveProcessor::sysroot_len): New protected member variable.
+ (pkgArchiveProcessor::installed): Type changed to `pkgManifest *'.
+ (pkgTarArchiveInstaller::Process): Declare specialisation hook.
+ (pkgTarArchiveInstaller::UpdateInstallationManifest): Disused member
+ function; remove redundant declaration from class definition.
+ (pkgInstall): New generalised installation function; declare it.
+ (pkgRegister): New function; declare it.
+
+ * src/pkginst.cpp: New file.
+ (pkgManifest, pkgInstall, pkgRegister): Implement them.
+
+ * src/pkgexec.cpp (pkgActionItem::Execute): Use `pkgInstall' in place
+ of stub formerly provided here.
+
+ * src/pkgkeys.h (manifest_key, reference_key): New keys; declare them.
+ * src/pkgkeys.c (manifest_key, reference_key): Implement them.
+
+ * src/tarproc.cpp: Code refactored.
+ (pkgTarArchiveProcessor::sysroot_len): Initialise it.
+ (pkgTarArchiveProcessor::origin): Initialise it.
+ (pkgTarArchiveProcessor::installed): Initialise; associate it with a
+ pkgManifest class entity, and populate this as appropriate.
+ (pkgTarArchiveProcessor::~pkgTarArchiveProcessor): Add explicit clean
+ up of linked `pkgManifest *' entity referenced by `installed'.
+ (pkgTarArchiveProcessor::Process) [TAR_ENTITY_TYPE_DIRECTORY]: Add
+ braces to demarcate localised inner scope of string scan for removal
+ of trailing directory name separators; (thanks to Cesar Strauss for
+ reporting invalid local pointer declaration error in GCC >= 4.4).
+ (pkgTarArchiveInstaller::UpdateInstallationManifest): Deleted.
+ (pkgTarArchiveInstaller::pkgTarArchiveInstaller): Factor out.
+ (pkgTarArchiveInstaller::ProcessDirectory): Likewise.
+ (pkgTarArchiveInstaller::ProcessDataStream): Likewise.
+ (commit_saved_entity): Likewise.
+
+ * src/tarinst.cpp: New file; it implements...
+ (pkgTarArchiveInstaller::Process): ...this new specialisation
+ of the original pkgTarArchiveProcessor::Process method...
+ (pkgTarArchiveInstaller::pkgTarArchiveInstaller): ...and this
+ refactored code, abstracted from src/tarproc.cpp and modified to
+ use the pkgManifest class for installation tracking.
+ (pkgTarArchiveInstaller::ProcessDirectory): Likewise.
+ (pkgTarArchiveInstaller::ProcessDataStream): Likewise.
+ (commit_saved_entity): Relocated from src/tarproc.cpp.
+
+ * Makefile.in (CORE_DLL_OBJECTS): Add...
+ (pkginst.OBJEXT, tarinst.OBJEXT): ...these new object files.
+
+2010-03-31 Keith Marshall <keithmarshall@users.sourceforge.net>
+
+ Guard against NULL pointer dereferences in tinyxml code.
+
+ * src/pkgbase.h (pkgXmlNode::GetName): Verify `this' pointer is
+ non-NULL, before invoking the underlying tinyxml method.
+ (pkgXmlNode::GetParent, pkgXmlNode::GetChildren): Likewise.
+ (pkgXmlNode::GetNext, pkgXmlNode::GetPropVal): Likewise.
+ (pkgXmlNode::AddChild, pkgXmlNode::DeleteChild): Likewise.
+ (pkgXmlNode::GetDocumentRoot): Likewise.
+ (pkgXmlNode::IsElementOfType): Likewise.
+
+2010-03-28 Cesar Strauss <cestrauss@gmail.com>
+
+ Avoid running InternetAttemptConnect in pkgInternetAgent
+ constructor, since it is called during DLL initialisation.
+
+ * src/pkginet.cpp (pkgInternetAgent::pkgInternetAgent): Move the
+ InternetAttemptConnect call from constructor...
+ (pkgInternetAgent::OpenURL): ...to here.
+
+2010-03-23 Keith Marshall <keithmarshall@users.sourceforge.net>
+
+ Automate object code dependency tracking.
+
+ * Makefile.in (DEPFLAGS): New macro; define it.
+ (%.OBJEXT: %.c, %.OBJEXT: %.cpp): Add dependency generator commands...
+ (%.d): ...to create these dependency maps; `sinclude' them, and...
+ (clean): ...remove them.
+
+ * .cvsignore (*.d): Add wild card template to match them.
+
+2010-03-22 Keith Marshall <keithmarshall@users.sourceforge.net>
+
+ Support case insensitive matching for file and subsystem names.
+
+ * src/pkgbase.h (safe_strcmp): New inline function; it provides NULL
+ argument safe comparison of strings, returning the boolean inverse of
+ the `strcmp' result, using either case-sensitive or case-insensitive
+ semantics; derive it from...
+ (match_if_explicit): ...this; redefine as macro; invoke `safe_strcmp'
+ using explicitly case-sensitive semantics.
+ (subsystem_strcmp): New macro; it invokes `safe_strcmp' with either
+ case-sensitive or case-insensitive semantics, depending on...
+ (CASE_INSENSITIVE_SUBSYSTEMS): ...this new context selection macro; it
+ fixes the choice between case-sensitive and case-insensitive matching
+ semantics for any given implementation, at compile time.
+ (pkg_strcmp): New macro; it invokes `safe_strcmp' with either
+ case-sensitive or case-insensitive semantics, depending on...
+ (CASE_INSENSITIVE_FILESYSTEM): ...this new context selection macro; it
+ fixes the choice between case-sensitive and case-insensitive matching
+ semantics for any given implementation, at compile time.
+
+ * src/sysroot.cpp (pkgXmlNode::GetSysRoot): Use `subsystem_strcmp'.
+
+2010-03-02 Keith Marshall <keithmarshall@users.sourceforge.net>
+
+ Add preliminary support for virtual packages.
+
+ * src/pkgkeys.h (yes_value, no_value): Redefine as aliases...
+ (value_yes, value_no): ...for these new global strings; declare them.
+ (value_none, value_virtual): New global strings; declare them.
+
+ * src/pkgkeys.c (yes_value, no_value): Rename...
+ (value_yes, value_no): ...to implement these, respectively.
+ (value_none, value_virtual): Implement them.
+
+ * src/pkgname.cpp (pkgXmlNode::ArchiveName): Check containing package
+ node for `class' attribute set to `value_virtual'; if present, always
+ return the effective `tarname' property as `value_none'.
+
+ * src/pkginet.cpp (pkgActionItem::DownloadArchiveFiles): For packages
+ with an effective `tarname' of `value_none', do not download anything.
+
+ * src/pkgexec.cpp (pkgActionItem::Execute): For packages with an
+ effective `tarname' of `value_none', do not invoke any tar archive
+ processing function.
+
+2010-03-02 Keith Marshall <keithmarshall@users.sourceforge.net>
+
+ Don't write installation records for unavailable packages.
+
+ * src/tarproc.cpp (pkgTarArchiveInstaller): In constructor, ensure
+ archive is ready for processing, before initialising an installation
+ manifest record.
+
+2010-03-02 Keith Marshall <keithmarshall@users.sourceforge.net>
+
+ Rationalise path identification for XML file locations.
+
+ * src/sysroot.cpp (pkgXmlDocument::LoadSystemMap): Use `xmlfile()'
+ function to locate `sysroot' map file; free memory when done.
+ (pkgXmlDocument::UpdateSystemMap): Likewise.
+ (sigpath): Static global variable disused; delete it.
+
+2010-03-01 Keith Marshall <keithmarshall@users.sourceforge.net>
+
+ Extend package name search to include component packages.
+
+ * src/pkgfind.cpp (pkgHasMatchingName): Remove; fold it into...
+ (pkgXmlNode::FindPackageByName): ...this; augment to extend search
+ within package definition elements, seeking a potential match on an
+ included component package name or component class-implied name.
+
+ * src/pkgkeys.h (class_key): New global string constant; declare it.
+ * src/pkgkeys.c (class_key): Implement it.
+
+2010-02-16 Keith Marshall <keithmarshall@users.sourceforge.net>
+
+ Bump version for next release cycle.
+
+ * configure.ac (AC_INIT): Bump version suffix to alpha-2.
+
+2010-02-16 Keith Marshall <keithmarshall@users.sourceforge.net>
+
+ mingw-get-0.1-mingw32-alpha-1 released.
+
+2010-02-16 Keith Marshall <keithmarshall@users.sourceforge.net>
+
+ Prepare initial package release.
+
+ * README: New file; use it to source release notes.
+
+ * Makefile.in (SRCDIST_FILES): Use ...
+ (LICENCE_FILES): ...this new macro; define it.
+ (licdist): New build goal; implement it.
+ (bindist): Require it; add alternative `zip' format package.
+
+ * xml/profile.xml (repository): Set default `package-index' name.
+ (system-map): Normalise spelling for default `sysroot' path names.
+
+2010-02-10 Keith Marshall <keithmarshall@users.sourceforge.net>
+
+ Add directory/file records in installation manifests.
+
+ * src/pkgkeys.h (dirname_key, filename_key): New strings; declare...
+ * src/pkgkeys.c (dirname_key, filename_key): ...and implement them.
+
+ * src/pkgproc.h (pkgArchiveProcessor::installed): New class member
+ variable; declare it.
+ (pkgTarArchiveInstaller::UpdateInstallationManifest): New method;
+ declare it.
+
+ * src/tarproc.cpp: Miscellaneous comment updates.
+ (pkgTarArchiveInstaller): In constructor...
+ (pkgTarArchiveInstaller::installed): ...use new member variable...
+ (pkgArchiveProcessor::installed): ...inherited from this.
+ (pkgTarArchiveInstaller::UpdateInstallationManifest): Implement and...
+ (pkgTarArchiveInstaller::ProcessDataStream): ...use it.
+ (pkgTarArchiveInstaller::ProcessDirectory): Likewise.
+
2010-02-06 Keith Marshall <keithmarshall@users.sourceforge.net>
Work around a deficiency in Microsoft's stat() implementation.