OSDN Git Service

* aclocal.m4: Change path m4/missing.m4 to build-aux/m4/missing.m4.
[mingw/mingw-get.git] / ChangeLog
index 269a836..314fc88 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,490 @@
+2012-08-02  Earnie Boyd  <earnie@users.sourceforge.net>
+
+       Find missing.m4 in build-aux/m4 directory.
+
+       * aclocal.m4: Change path  m4/missing.m4 to build-aux/m4/missing.m4.
+
+2012-07-31  Earnie Boyd  <earnie@users.sourceforge.net>
+
+       Move .cvsignore to .gitignore.
+
+       * .cvsignore: Remove.
+       * .gitignore: New file.
+
+2012-07-13  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Disable globbing of command line arguments.
+
+       * src/clistub.c (_CRT_glob): Define and initialise to zero; we don't
+       need globbing, and it may cause case transliteration of case-sensitive
+       action keywords, when a file system entity with a case-insensitively
+       matching name exists.
+
+2012-06-02  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Refactor API to facilitate implementation of GUI ListView hooks.
+
+       * src/pkgkeys.h (title_key, description_key): Declare them.
+       * src/pkgkeys.c (title_key, description_key): Define them; relocate...
+       * src/pkgshow.cpp (pkgDirectoryViewer::EmitDescription): ...from here.
+       (pkgXmlDocument::CalalogueAllPackages): New public method; factor...
+       (pkgXmlDocument::DisplayPackageInfo): ...from here, whence use it.
+       (pkgDirectoryViewerEngine::EnumerateComponents): New private method;
+       implement as a concrete method of this abstract base class; factor...
+       (pkgDirectoryViewer::Dispatch): ...from original inline implementation
+       within this method of the concrete derived class, whence use it.
+       (pkgDirectoryViewerEngine, pkgDirectory): Factor class declarations...
+       * src/pkglist.h: ...into this new header file; include it.
+
+       * src/pkgbase.h (pkgDirectory): Add forward class declaration.
+       (pkgXmlDocument::CatalogueAllPackages): Declare it.
+
+2012-05-02  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Update help text to document package version selection capability.
+
+       * src/clistub.c (help_text): Add description of command line syntax
+       which may be used to specify an alternative to the default package
+       version selection, for install and upgrade actions.
+
+2012-05-01  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Support options set by preferences assigned within profile.xml
+
+       * xml/profile.xml (preferences): New element; add defaults.
+
+       * src/pkgopts.h (OPTION_ASSIGNED_FLAGS, OPTION_DESKTOP_ARGS):
+       (OPTION_START_MENU_ARGS): New enumerated constants; define them.
+       (OPTION_DESKTOP, OPTION_START_MENU): New manifest constants.
+       (OPTION_ASSIGNED, mark_option_as_set): New macros; define them.
+       (pkgOpts::GetValue, pkgOpts::GetString): Restrict look-up index to
+       least significant 12-bits of full-range index value.
+       (pkgOpts::IsSet): New inline method; implement it.
+
+       * src/clistub.c (main): Reimplement --desktop and --start-menu
+       options; each now becomes an OPTION_GENERIC optarg string store.
+       (set_script_hook): Function no longer used; delete it; delegate to...
+       * src/pkgbase.h (pkgXmlDocument::EstablishPreferences): ...this new
+       method; declare it, providing its implementation in...
+       * src/pkgopts.cpp: ...this new file; invoke it...
+       * src/climain.cpp (climain): ...here.
+
+       * Makefile.in (CORE_DLL_OBJECTS): Add pkgopts.$OBJEXT
+
+2012-04-30  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Correct sequence of installation/removal progress reporting.
+
+       * src/pkgunst.cpp (pkgRemove): Delay output of "removing package ..."
+       message, until after pre-remove hooks have run; this ensures that any
+       output from the pre-remove hook scripts appears in correct sequence.
+
+       * src/pkginst.cpp (pkgInstall): Likewise, for "installing package ..."
+       message, in relation to pre-install hooks.
+
+2012-04-26  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       mingw-get-0.5-beta-20120426-1 released.
+
+       * configure.ac (AC_INIT): Version number updated.
+       * srcdist-doc/NEWS.in: Updated; bug-fix notifications added.
+       * All files (r0-5-beta-20120426-1): Tag assigned.
+
+2012-04-25  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Interim work-around for MinGW-Bug #3520864.
+
+       * src/pkgdeps.cpp (pkgXmlDocument::ResolveDependencies):
+       [DEBUG_TRACE_DEPENDENCIES]: Add request flags to messages reporting
+       the scheduling of installation activities.
+
+       * src/pkgexec.cpp (pkgXmlDocument::Schedule): Add temporary diagnostic
+       hooks to confirm request flags; bracket them with #if 0 ... #endif.
+       [ACTION_PRIMARY && pre-scheduled request]: Don't trash request flags
+       when updating the pre-existing action item data.
+
+2012-04-23  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Fix MinGW-Bug #3520488
+
+       * src/pkgexec.cpp (action_code): Check for, and reject NULL pointer
+       passed as action request string; also reject ambiguous abbreviations.
+
+       * src/climain.cpp (climain): Discriminate between NULL pointer and
+       other forms of invalid action keyword matching failures.
+
+2012-04-16  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       mingw-get-0.5-beta-20120416-1 released.
+
+       * configure.ac (AC_INIT): Version number updated.
+       (YEARS_OF_ISSUE): 2012 added.
+
+       * srcdist-doc/NEWS.in: Updated; release notes added.
+       * All files (r0-5-beta-20120416-1): Tag assigned.
+
+2012-04-16  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Assign icon to temporary GUI executable file.
+
+       * icons/pkgicon.ico: New file, shamelessly copied from synaptic.
+
+       * configure.ac: Add identification for windres; propagate it to...
+       * Makefile.in: ...here; use it to compile object from icon files...
+       (srcdir/icons) [%.ico]: ...from this new vpath location.
+       (gui.exe): Link to compiled icon's object file.
+       (SRCDIST_SUBDIRS): Add icons directory.
+
+2012-04-15  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Ensure that package removal requests are correctly scheduled.
+
+       * src/pkgdeps.cpp (pkgXmlDocument::Schedule) [ACTION_REMOVE]: Schedule
+       as a distinct case, when the installed version is not the most recent
+       available release; consideration of this distinct case was previously
+       erroneously overlooked.
+
+2012-04-15  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Correct scheduling of new prerequisites when upgrading.
+
+       * src/pkgdeps.cpp (pkgXmlDocument::ResolveDependencies):
+       [ACTION_UPGRADE && ACTION_PRIMARY]: Don't exclude scheduling for this
+       case of a prerequisite with no previously installed version; it may be
+       a delegated primary requirement of a meta-package.
+
+2012-04-15  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Don't require subsystem within user specified version bounds.
+
+       * src/pkgdeps.cpp (pkgActionItem::ApplyBounds): Automatically consider
+       "*" wild-card matches for subsystem, if user doesn't specify it.
+
+2012-04-09  Charles Wilson  <mingw@cwilson.fastmail.fm>
+
+       Fix missing include.
+
+       * src/pkgdeps.cpp (pkgopts.h): Include unconditionally; do not rely...
+       (debug.h) [DEBUG_TRACE_DYNAMIC]: ...on this, for indirect inclusion.
+
+2012-04-07  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Correct a srcdist package construction defect.
+
+       * Makefile.in (srcdist) [for SRCDIST_SUBDIRS]: Use...
+       (mkinstalldirs): ...this, to create package image directories.
+
+2012-04-06  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Add scripting hooks to support creation of MS-Windows shortcuts.
+
+       * src/clistub.c (progname): New static variable with file scope; it
+       replaces former automatic variable, of same name, in main() function.
+       (set_script_hook): New static function; implement it, and call it...
+       (main) [--desktop, --start-menu]: ...from here, to interpret these new
+       command line options; they are propagated to scripts via...
+       (MINGW_GET_DESKTOP_HOOK, MINGW_GET_START_MENU_HOOK): ...these new
+       internally assigned environment variables.
+       (help_text): Document --desktop and --start-menu.
+
+       * scripts/libexec/setup.lua scripts/libexec/wsh.lua: New lua module
+       files; they implement a lua scripting API; they delegate requests to
+       the Windows Scripting Host, via either of this pair of...
+       * scripts/libexec/shlink.js: ...new script to create shortcuts, or...
+       * scripts/libexec/unlink.js: ...its complement, to remove them.
+       * Makefile.in (SRCDIST_SUBDIRS): Integrate them; enumerate them in...
+       (scripts_srcdir, LIBEXEC_SCRIPTS): ...these new macros; use to...
+       (install): ...install them.
+
+2012-04-06  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Initialise $LUA_PATH to locate mingw-get specific scripts.
+
+       * src/pkgexec.cpp (lua_path_init): New static inline function.
+       (pkgXmlNode::DispatchScript): Call it on first time invocation, per...
+       [lua_path_setup == false]: ...this static function local variable.
+
+2012-04-01  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Support installation of releases other than latest available.
+
+       * src/pkgbase.h (pkgActionItem::ApplyBounds): New method; declare it.
+
+       * src/pkgdeps.cpp (pkgActionItem::ApplyBounds): Implement it.
+       (pkgXmlDocument::Schedule): Use it to interpret user specified version
+       bounds, and apply them to scheduled action items.  Having used...
+       (get_version_bounds): ...this new static inline function...
+       ...to acquire any user specified version bounds, check that they can
+       be honoured, before scheduling any action; delegate diagnostics to...
+       (dmh_notify_no_match): ...this new local helper function, to report
+       when they can't, and to indicate viable alternatives.
+
+2012-03-26  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Rework previously inadequate solution for MinGW-Bug #3424406
+
+       * src/pkgtask.h: Update copyright notice for current year.
+       (ACTION_MAY_SELECT): New manifest constant for use as flag; define it.
+       * src/pkgexec.cpp (pkgActionItem::SelectIfMostRecentFit): Assign it.
+
+       * src/pkgdeps.cpp (STATIC_INLINE): New macro; define it.
+       (ACTION_RECURSIVE_REINSTALL, ACTION_RECURSIVE_UPGRADE):
+       (ACTION_RECURSIVE_REPLACE): New action code constants; define them.
+       (with_flags): Original macro deleted; replace it with...
+       (with_request_flags): ...this new static inline function.
+       (if_noref, if_match, if_alias, with_download, promote): New static
+       inline functions; they replace original macros of the same names.
+       (is_recursive_action): Function no longer used; delete it.
+       (action_class): New static inline function; implement and use it...
+       (pkgXmlDocument::ResolveDependencies): ...here, to identify scheduling
+       requirements for packages which are already installed; depends on...
+       (request_mode): ...this new automatic variable; it augments and...
+       (recursive_mode): ...replaces this one; rename it accordingly.
+       (viable): Automatic variable no longer used; delete it.
+       [DEBUG_REQUEST & DEBUG_TRACE_DEPENDENCIES]: Emit notification for
+       scheduled installation.
+       (pkgXmlDocument::Schedule): Add an implied...
+       (ACTION_REMOVE): ...when scheduling a reinstallation.
+
+2012-03-13  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Address reinstallation issues per MinGW-Bugs #3416013 and #3424406
+
+       * src/pkgexec.cpp (reinstall_action_scheduled): New inline function.
+       (pkgActionItem::Execute): Use it to identify cases where...
+       [--reinstall]: ...implicit package removal is required, and also to
+       facilitate improved progress reporting in such cases.
+
+       * src/pkgdeps.cpp (is_recursive_action): New inline function.
+       (pkgXmlDocument::ResolveDependencies): Use it in tandem with...
+       (recursive_mode): ...this new automatic variable, so as to handle...
+       [meta-package dependency]: ...implicit recursion, to extend the scope
+       of the current action to the first level of non-meta dependency.
+       [install --reinstall]: ...reinstall original version of nominated
+       package, ignoring any available upgrade; extend scope of operation...
+       [install --reinstall --recursive]: ...to all prerequisite packages.
+       [upgrade --reinstall]: ...upgrade nominated package if possible; if no
+       upgrade available, reinstall current version; extend scope...
+       [upgrade --reinstall --recursive]: ...to all prerequisites.
+       (pkgXmlDocument::Schedule): Partially revert 2012-03-05 change;
+       reimplement selectively; never promote...
+       [install, install --reinstall]: ...these operations to become...
+       [upgrade]: ...this, even if available; issue diagnostic instead.
+
+2012-03-12  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Rationalise implementation and usage of --all-related option.
+
+       * src/pkgopts.h: Update copyright notice; add year 2012.
+       (OPTION_RECURSIVE, OPTION_ALL_RELATED): New constants; define them.
+       (pkgOpts::SetFlags): New method; declare and implement it inline.
+
+       * src/clistub.c: Update copyright notice; add year 2012.
+       (options) [recursive, all-related]: Redefine in terms of...
+       (OPTION_RECURSIVE, OPTION_ALL_RELATED): ...these.
+       (help_text): Update appropriately.
+
+       * src/climain.cpp: Update copyright notice; add year 2012.
+       (climain) [all-related]: Associate its use exclusively with...
+       (source, licence): ...these package processing operations; use...
+       (pkgOptions::SetFlags): ...this, to propagate its effect.
+
+2012-03-12  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Don't report failed downloads in respect of virtual packages.
+
+       * src/pkginet.cpp (pkgActionItem::DownloadArchiveFiles): Clear...
+       [ACTION_DOWNLOAD]: ...this status flag for any package identified as
+       a meta-package; this corrects a further regression introduced with the
+       2011-11-09 update, whereby pending download requests for such virtual
+       packages were not cancelled, resulting in failure to install due to
+       failed downloads, when no download is actually required.
+
+2012-03-05  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Don't suppress implied downloads for top-level actions.
+
+       * src/pkgdeps.cpp: Update copyright notice for new year.
+       (pkgXmlDocument::Schedule) [!OPTION_PRINT_URIS]: Ensure that...
+       [ACTION_DOWNLOAD]: ...this is enabled, when scheduling an install or
+       an upgrade action for a package specified as a command line argument;
+       this corrects a regression introduced on 2011-11-09, which resulted in
+       ACTION_DOWNLOAD being enabled only for second tier dependent actions.
+
+2012-02-20  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Copyright notice updates.
+
+       * Makefile.in: Add 2012 as year of republication.
+       * src/pkgbase.h src/sysroot.cpp src/pkgexec.cpp: Likewise.
+       * src/rites.c src/pkginst.cpp src/pkgunst.cpp: Likewise.
+
+2012-02-20  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Fix ill-advised optimisation in $APPROOT environment lookup.
+
+       * src/rites.c (approot_path): Don't save result of getenv() lookup
+       across calls; the environment may have been moved in the interim,
+       making the original result invalid on any subsequent call.  Also,
+       prefer MS-Windows style (with backslashes) for default.
+       (pkgLastRites): Report full path name for lastrites.exe, on execl()
+       failure, rather than only the path relative to $APPROOT.
+
+2012-02-20  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Propagate sysroot path settings to scripts via the environment.
+
+       * src/pkgbase.h (PKG_PUTENV_FLAGS_MASK): New constant; it maps...
+       (PKG_PUTENV_DIRSEP_MSW, PKG_PUTENV_DIRSEP_POSIX): ...these flags...
+       (PKG_PUTENV_SCAN_VARNAME, PKG_PUTENV_NAME_TOUPPER): ...and these;
+       they are used to specify optional behavioural choices for...
+       (pkgPutEnv): ...this new function; declare it.
+
+       * src/sysroot.cpp (pkgPutEnv): Implement it.
+       (pkgXmlDocument::LoadSystemMap): Use it to add $SUBSYSTEM_SYSROOT path
+       specifications to the environment, for each named subsystem associated
+       with the active system map.
+
+       * src/pkgexec.cpp (pkgActionItem::Execute): Invoke pkgPutEnv() prior
+       to processing of each package install, upgrade, or remove action, so
+       as to update environment variable $SYSROOT to represent the sysroot
+       path for each package processed, during execution of script hooks.
+
+2012-02-17  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Implement hooks to support lua scripting interface.
+
+       * Makefile.in (LIBS): Add -llua.
+
+       * src/pkgbase.h (pkgXmlNode::InvokeScript): New method; declare it
+       as private, and provide overloaded public inline API implementation.
+       (pkgXmlNode::DispatchScript): New private method; declare it.
+
+       * src/pkgexec.cpp (pkgXmlNode::InvokeScript): Implement it.
+       (pkgXmlNode::DispatchScript): Likewise; it directs InvokeScript to...
+       (pkgInvokeScript): ...this new static function; implement it.
+
+       * src/pkginst.cpp (pkgInstall): Call InvokeScript as appropriate.
+       * src/pkgunst.cpp (pkgRemove): Likewise.
+
+2011-11-24  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Avoid implicit cast warnings; reported by Robert Hartmann.
+
+       * src/dmh.h (DMH_BEGIN_DIGEST): Explicitly cast to uint16_t.
+       (DMH_END_DIGEST): Likewise.
+
+2011-11-09  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Avoid unnecessary downloads for already installed packages.
+
+       * src/pkginet.cpp (pkgActionItem::DownloadSingleArchive): Require
+       external scheduling of ACTION_DOWNLOAD; cancel the scheduled request
+       on completion, or when not required due to pre-existing local copy.
+
+       * src/climain.cpp (pkgActionItem::GetSourceArchive): Must always be
+       prepared to download the associated archive; enable ACTION_DOWNLOAD.
+
+       * src/pkgexec.cpp (pkgActionItem::Schedule) [OPTION_REINSTALL]:
+       May need to download the archive, even when the requested package was
+       previously installed; schedule ACTION_DOWNLOAD to enable this.
+
+       * src/pkgdeps.cpp (promote): Macro redefined in terms of...
+       (with_flags, with_download): ...these new macros; implement and...
+       (pkgXmlDocument::ResolveDependencies): ...use them to enable/schedule
+       ACTION_DOWNLOAD only when expected that it may be necessary.
+
+2011-11-06  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Fix packaging anomalies for source and licence distributions.
+
+       * Makefile.in (licdist): Link README from ${CURDIR}, not from '..'.
+       (srcdist): Explicitly link pkginfo.c from ${CURDIR} to src/pkginfo,
+       rather than as implied prerequisite; this avoids a bogus attempt to
+       link srcdist-doc into src/pkginfo.
+
+2011-11-06  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Bump version number for subsequent CVS snapshots.
+
+       * configure.ac (AC_INIT): Set version to 0.4-alpha-1.1cvs
+
+2011-11-06  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       mingw-get-0.4-mingw32-alpha-1 released.
+
+       * configure.ac (AC_INIT): Adjust version number.
+       * srcdist-doc/NEWS.in: Updated; document new features and bugs fixed.
+       * All files (r0-4-alpha-1): Tag assigned.
+
+2011-11-04  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Don't upgrade installed DLL components to incompatible version.
+       Provide clearer diagnostics for failed requests on implied packages.
+
+       * src/pkgdeps.cpp (is_abi_compatible): New static inline function.
+       (pkgXmlDocument::ResolveDependencies) [is_installed]: Use it.
+       (pkgXmlDocument::ResolveDependencies) [DEBUG_TRACE_DEPENDENCIES]:
+       Clean up and improve diagnostic message content and formatting.
+       (pkgXmlDocument::Schedule) [(upgrade || remove) && ! installed]:
+       Downgrade diagnostic to WARNING, for implicitly specified component
+       packages; provide additional explanatory diagnostics.
+
+       * src/pkgspec.cpp (pkgSpecs::VersionComparator):
+       * src/pkgexec.cpp (pkgActionItem::SelectIfMostRecentFit):
+       [DEBUG_TRACE_DEPENDENCIES]: Eliminate diagnostic noise.
+
+2011-10-11  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Fix --download-only vs. --reinstall conflict.
+
+       * src/pkgexec.cpp (pkgActionItem::Execute) [OPTION_DOWNLOAD_ONLY]:
+       Test for explicit inequality, rather than equality to zero; since the
+       2011-08-30 update, which made --download-only also imply --reinstall,
+       it will test as non-zero when --reinstall is specified, even though
+       --download-only is not.
+
+2011-10-07  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Add support for non-specific upgrade of all installed packages.
+
+       * src/pkgbase.h (pkgXmlDocument::RescheduleInstalledPackages):
+       New public method; declare it.
+
+       * src/pkgdeps.cpp (pkgXmlDocument::RescheduleInstalledPackages):
+       Implement it.
+
+       * src/climain.cpp (climain) [ACTION_UPGRADE && argc < 2]: Invoke
+       pkgXmlDocument::RescheduleInstalledPackages() to schedule the upgrade
+       request for all packages currently registered as installed.
+
+2011-10-06  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Implement "source" and "licence" operations.
+
+       * src/pkgopts.h (OPTION_ALL_DEPS): New option code; define it.
+       * src/clistub.c (main): Associate it with...
+       (all-related, recursive): ...these synonymous option names...
+       (options): ...defined within this local structured array.
+       (help_text): Document them; also document "source" and "licence" as
+       new operations which may be specified on the command line.
+
+       * src/pkgtask.h (action_source, action_licence): Enumerate them.
+       (ACTION_SOURCE, ACTION_LICENCE): Define their manifest values, and...
+       * src/pkgexec.cpp (action_name): ...associate with operation names.
+
+       * src/pkgbase.h (pkgActionItem::GetScheduledSourceArchives):
+       (pkgActionItem::GetSourceArchive, pkgXmlDocument::GetSourceArchive):
+       New public methods; declare them for external implementation.
+       (pkgXmlDocument::GetScheduledSourceArchives): New public method;
+       implement it as inline.
+
+       * src/climain.cpp (pkgProcessedArchives): New pointer to stack of...
+       (pkgArchiveNameList): ...this new locally defined class; implement it.
+       (pkgActionItem::GetSourceArchive, pkgXmlDocument::GetSourceArchive):
+       (pkgActionItem::GetScheduledSourceArchives): Implement them.
+       (climain): Add invocation hooks.
+
 2011-10-04  Keith Marshall  <keithmarshall@users.sourceforge.net>
 
        Establish mapping from release tarname to source tarname.