OSDN Git Service

Rework defective package build time-stamping logic.
[mingw/mingw-get.git] / srcdist-doc / NEWS.in
1 Release Notes
2 =============
3
4 $Id$
5
6 The information presented below describes the user visible changes
7 introduced with each release of mingw-get.  The online version of this
8 historical record is restricted to recent releases; the full history is
9 recorded in the NEWS file, which is included in the source code package.
10
11
12 mingw-get-0.5-mingw32-beta-20120426-1
13 -------------------------------------
14
15 Release date: 2012-04-26
16
17 This is an emergency bug-fix release; it provides an immediate interim
18 work-around for bug #3520864, circumventing a critical regression which
19 was introduced in mingw-get-0.5-mingw32-beta-20120416-1, and is thus a
20 mandatory upgrade for users who had previously upgraded to that version.
21
22 It also incorporates the correction for bug #3520488.
23
24
25 mingw-get-0.5-mingw32-beta-20120416-1
26 -------------------------------------
27
28 Release date: 2012-04-16
29
30 This milestone release marks the point at which the code base, for the
31 CLI implementation, is deemed to have progressed from alpha to beta
32 (or better) quality.  It corrects several packaging deficiencies within
33 the source code distribution, in addition to fixing two reported bugs;
34 it also adds several new features.
35
36 The following bugs are fixed by this release:--
37
38 - #3416013: --reinstall and dependent packages
39
40   Specifically, in the case of application of the --reinstall option to
41   meta-packages, previous releases would have no effect.  This is now
42   corrected, such that the --reinstall action is applied recursively to
43   each declared requirement of any meta-package, to the depth of the
44   first non-meta package in each requirement chain.
45
46 - #3424406: install --reinstall performs an upgrade
47
48   When performing the "install" action, with the --reinstall option,
49   previous releases would consider the availability of upgrades for the
50   package in question, promoting the "install" action to "upgrade" when
51   possible.  This anomaly has now been corrected; when specified with
52   the "install" action, the --reinstall option will cause reinstallation
53   of the originally installed version, ignoring available upgrades; (the
54   former behaviour remains available, by specifying the --reinstall
55   option together with the "upgrade" action).
56
57 The following new features have been implemented:--
58
59 - Forced installation of a specified (non-current) release.
60
61   The package name specified as the predicate of any "install" or
62   "upgrade" action may now be qualified by a version specification,
63   allowing the user to select any known version, (not necessarily the
64   most recently released), for installation.  In the case of any package
65   which has not been previously installed, the format is any of:
66
67 !    mingw-get install "package-name=version-spec"
68 !    mingw-get install "package-name<version-spec"
69 !    mingw-get install "package-name<=version-spec"
70 !    mingw-get install "package-name>=version-spec"
71 !    mingw-get install "package-name>version-spec"
72
73   while for any package which has been previously installed, and is to
74   be "rolled back" to an earlier release, the same forms are supported,
75   using the "upgrade" action in place of "install".
76
77   In each of the above command forms, "package-name" represents the
78   unqualified package name, as it would be specified in any regular
79   invocation of mingw-get, and "version-spec" is the selector for the
80   desired version; (in the case of an "=" qualifier, this must be an
81   exact match for the desired version, unless it ends with the "*" wild
82   card).  For example, if GCC has already been installed at version
83   4.6.2-1, (the most recent release at this time of writing), it may be
84   rolled back to the last version 4.5 release by:
85
86      mingw-get upgrade "gcc=4.5.*"
87
88   or by using an inequality specifier, to exclude gcc-4.6 and later:
89
90      mingw-get upgrade "gcc<4.6"
91
92   Note that, particularly in the case of the inequality qualifiers, the
93   argument must be quoted, to avoid interpretation of the inequality
94   operator as the shell's redirection operator.
95   
96   Also note that any explicit *inclusive* version range, such as:
97
98      mingw-get upgrade "gcc>4.5<4.6"
99
100   is permitted; however no white space is permitted, anywhere within the
101   qualified package specification.
102
103 - Support for package maintainer scripted installation hooks.
104
105   An embedded script interpreter, based on Lua version 5.2, has been
106   incorporated; this provides support for "pre-install", "post-install",
107   "pre-remove", and "post-remove" action hooks, which may be specified
108   by package maintainers, in the form of Lua scripts embedded within
109   "action" elements in any package's XML catalogue entry.
110
111   This capability is further supported by the provision of Lua modules,
112   providing a standardised mechanism for creation of MS-Windows shell
113   links, (a.k.a. shortcuts).
114
115 - New option: "--desktop"
116
117   Grants permission, to package maintainer specified scripts, to create
118   shortcuts on the user's desktop; alternatively, it may be specified as
119   --desktop=all-users, to make such shortcuts available to all users.
120
121 - New option: "--start-menu"
122
123   Grants permission, to package maintainer specified scripts, to create
124   shortcuts in the user's start menu; alternatively, it may be specified
125   as --start-menu=all-users, to make such shortcuts available in the
126   start menus of all users.
127
128
129 mingw-get-0.4-mingw32-alpha-1
130 -----------------------------
131
132 Release date: 2011-11-06
133
134 This release fixes a critical bug in the upgrade code, whereby an
135 existing DLL could be replaced by an alternative with an incompatible
136 ABI version, where the correct action is to install both concurrently.
137 As a critical bug-fix release, this is a strongly recommended upgrade
138 for all users.
139
140 In addition to this critical bug-fix, the following new features have
141 been implemented:--
142
143 - Modified action: "upgrade"
144
145   The "upgrade" request now supports anonymous upgrade of all currently
146   installed packages; in other words, the command:
147
148       $ mingw-get upgrade
149
150   issued without any additional package-name arguments, will cause
151   mingw-get to invoke the upgrade action in respect of each and every
152   package which is currently recorded as "installed", and for which an
153   upgrade is available.
154
155 - New action: "source"
156
157   Invoked by a command of the form:
158
159       $ mingw-get source package-name ...
160
161   requests mingw-get to download the source code archive for each named
162   package, and unpack it in the current working directory.
163
164 - New action: "licence"
165
166   Similar to "source", and invoked by a command of the form:
167
168       $ mingw-get licence package-name ...
169
170   requests mingw-get to download the licence packs for each named
171   package, once again unpacking them in the current working directory.
172
173 - New option: "--print-uris"
174
175   Used in conjunction with an "install", "source", or "licence" request,
176   causes mingw-get to print, on stdout, the URIs from whence the
177   packages needed to satisfy the request may be downloaded, without
178   otherwise completing the request; (nothing is actually downloaded,
179   unpacked, or installed).  This option causes the URIs to be printed
180   irrespective of the installation status of the named packages.
181
182 - New option: "--download-only"
183
184   Used with an "install", "upgrade", or "licence" request, causes
185   mingw-get to download any package archives which are necessary to
186   complete the specified action, provided they are not already present
187   within the package cache, but without unpacking or installing the
188   package content.  After completing the request, the requisite package
189   archives may be found in the mingw-get package cache
190
191       var/cache/mingw-get/packages
192
193   relative to mingw-get's own sysroot path.
194
195   Similarly, when used with the "source" request, the "--download-only"
196   option causes mingw-get to download any source package archives needed
197   to complete the request, (once again, provided they are not already
198   present in the download cache), but without unpacking them.  In this
199   case, after completing the request, the requisite source archives may
200   be found in the directory
201
202       var/cache/mingw-get/source
203
204   relative to the sysroot path.
205
206 - New option: "--all-related"
207
208   Used with the "source" or "licence" requests, this option extends the
209   scope of the request, causing mingw-get to also process the source or
210   licence packages associated with all runtime dependencies identified
211   for the packages named in the command.
212
213 ;--------8<-------------------- cut-line -------------------->8--------
214 ;
215 ; Any text added below the cut-line will be included in the README
216 ; file, which is to be included in the source distribution, but it
217 ; will be excluded from the readme.txt file, which is to be used to
218 ; add descriptive content on the SourceForge download page.
219 ;
220 ; Any lines, such as these, which begin with a semicolon in their
221 ; first column (not indented), will be excluded from both files.
222
223 mingw-get-0.3-mingw32-alpha-2.1
224 -------------------------------
225
226 Release date: 2011-07-29
227
228 This interim release corrects a critical defect in the version matching
229 code within mingw-get's dependency resolver, which resulted in failure
230 of wild card tokens in a requirements specification to match an actual
231 package version, where that version was qualified by a release status
232 descriptor, (such as "alpha", "beta", "pre", etc.)
233
234 Users may also note that the default package archive format has been
235 changed from tar.gz to tar.xz; (the alternative zip format archive for
236 the binary package is retained, for the convenience of first time users
237 who lack any tar archive extraction capability).
238
239 This release is a mandatory prerequisite upgrade for all users who may
240 wish to install and deploy the upcoming MinGW GCC-4.6 pre-release
241 packages using mingw-get.
242
243
244 mingw-get-0.3-mingw32-alpha-2
245 -----------------------------
246
247 Release date: 2011-06-17
248
249 This is primarily a bug fix release; it also provides some limited
250 additional functional capability.  All users are recommended to upgrade
251 to this release.
252
253 - Fixes MinGW-Bug #3309438; this release now supports dynamic selection
254   of all internally defined debugging trace options at run time, without
255   prejudice to normal operation.
256
257 - Fixes MinGW-Bug #3313806; CMS_KEYWORDS are no longer matched within
258   the package name field of a canonical package tarname.  Thus, packages
259   such as "msys-cvs" are now correctly identified again, while resolving
260   dependencies.
261
262 - The "mingw-get update" operation now emits "Update catalogue ..."
263   messages for each catalogue processed, irrespective of the verbosity
264   option setting.  This removes the requirement to specify the "-vv"
265   option to avoid protracted silent operation, which may have given
266   a false impression that the previous release had hung while
267   performing this operation.
268
269 - The "--reinstall" option is now formally supported; this release will
270   no longer behave as if this option is unconditionally specified; thus,
271   the command syntax:
272
273       $ mingw-get upgrade --reinstall <package-name>
274
275   is now required to force reinstallation of any package which has been
276   recorded as already installed.
277
278
279 mingw-get-0.3-mingw32-alpha-1
280 -----------------------------
281
282 Release date: 2011-05-30
283
284 - Augmented support for package development status identification;
285   packages may now be classified as alpha < beta < pre < rc < stable,
286   with implied development progression in this ranking order within any
287   release group identified by a common version number.
288
289 - Added support for identification of snapshot releases, using common
290   Content Management System (CMS) labels, (e.g. cvs, svn, hg, git), in
291   place of an alpha..stable classification.  Releases identified by any
292   CMS label are deemed to pre-date any alpha..stable release with the
293   same version number.
294
295 - Implemented protocol for processing command line options, (beyond the
296   limited scope of the "--help" and "--version" options, each of which
297   causes immediate program termination after interpretation).
298
299 - Reduced verbosity of progress reports; implemented "--verbose" ("-v")
300   option, (with levels from 0..3), to restore it.
301
302 - Added debug level support for conditional feature tracing.  Features
303   to be traced may now be selected by the user, at run time, by means of
304   a new "--trace" option; (however, the availability of this option, and
305   the range features which may be traced is selected at compile time).
306
307   It is anticipated that this "--trace" facility will be supported for
308   all future "alpha" and "beta" releases, but not for any officially
309   distributed "pre", "rc" or "stable" release.
310
311
312 mingw-get-0.2-mingw32-alpha-4
313 -----------------------------
314
315 Release date: 2011-05-14
316
317 - This is yet another bug-fix release; it addresses the issue
318   identified in MinGW-Bug&nbsp;3295526, so ensuring that mingw-get
319   always removes files it has installed, regardless of any read-only
320   attribute setting, (provided the user is sufficiently privileged).
321
322 - It also addresses the issue identified in MinGW-Bug&nbsp;3297660, so
323   ensuring that packages are not erroneously reported as "installed"
324   following a failed download, and that packages previously installed
325   are not removed during upgrade, when the replacement version has not
326   been successfully downloaded.
327
328 - This release also incorporates additional code to aggressively retry
329   failed internet requests, when attempting to download packages.  The
330   release has been compiled with internet request tracing diagnostics
331   enabled; it is hoped that this will permit users to provide more
332   useful information when reporting download problems.
333
334
335 mingw-get-0.2-mingw32-alpha-3
336 -----------------------------
337
338 Release date: 2011-03-31
339
340 - Another bug fix release; this corrects a defect whereby attempts to
341   remove files or directories during any "mingw-get&nbsp;remove&nbsp;..."
342   or "mingw-get&nbsp;upgrade&nbsp;..." operation would fail (silently),
343   when any macro is used in the sysroot specification, (such as the
344   use of "%R" in the default specification).
345
346 - Also included in this release is a preliminary attempt to accommodate
347   users who wish to run mingw-get when behind an authenticating proxy;
348   (ref: MinGW-Bug&nbsp;3147803).  Based on MinGW-Patch&nbsp;31584530,
349   this invokes Microsoft's standard pop-up dialogue to solicit entry
350   of the user's credentials, when requested by a proxy server.
351
352
353 mingw-get-0.2-mingw32-alpha-2
354 -----------------------------
355
356 Release date: 2011-03-15
357
358 - Fixes MinGW-Bug&nbsp;3212246; this was a serious bug which, under
359   certain specific conditions, could result in a package name alias
360   being matched to the wrong package, (e.g. autoconf2.5 resolved to
361   match the mingw32-autoconf2.1 package, instead of
362   mingw32-autoconf2.5).
363
364
365 mingw-get-0.2-mingw32-alpha-1
366 -----------------------------
367
368 Release date: 2011-03-12
369
370 - Added provisional support for removal of packages which have been
371   previously installed.  This is fully functional, but naive with respect
372   to dependencies; it will aggressively remove any package scheduled for
373   removal, even if this may break another (dependant) package.
374
375   A future release will address this naivety, performing more rigorous
376   dependency checking prior to progressing removals.  Meanwhile, should it
377   be discovered that removal of a package has broken any dependency, then
378   reinstallation of the dependant package should correct the situation.
379
380 - The upgrade operation now performs a removal of the currently installed
381   version of each package, prior to installing a replacement; this ensures
382   that obsolete artifacts from earlier versions do no accumulate within
383   the file system.
384
385   As with the remove operation, this implementation does not check that an
386   upgrade is compatible with dependant packages; this will be addressed in
387   a future release.
388
389 - Added preliminary support for the "list" operation.  This provides a
390   rudimentary mechanism for interrogating the package catalogue, and
391   displaying a list of available packages.
392
393 - Added preliminary support for the "show" operation.  As currently
394   implemented, this behaves as a synonym for "list"; as functionality
395   develops, the behaviours of these two operators may become distinct in
396   future releases.
397
398
399 mingw-get-0.1-mingw32-alpha-5.2
400 -------------------------------
401
402 Release date: 2011-02-26
403
404 - This is a further bug-fix release.  It provides a work-around for a
405   defect in the console I/O handling of MSYS mintty and MSYS rxvt, which
406   causes the stderr stream to appear to be inappropriately buffered within
407   either of these terminal emulators.  As such, it is a recommended upgrade
408   for users of either of these emulators; it offers no tangible benefit
409   to other users.
410
411
412 mingw-get-0.1-mingw32-alpha-5.1
413 -------------------------------
414
415 Release date: 2011-02-10
416
417 - This is a bug-fix release to correct a critical defect in the resolution
418   of dependencies, when performing an upgrade operation.  It also provides
419   more meaningful diagnostics when mingw-get is invoked without arguments,
420   and corrects some omissions from the source tarball.
421
422
423 mingw-get-0.1-mingw32-alpha-5
424 -----------------------------
425
426 Release date: 2010-10-29
427
428 - Improved self-upgrade support; it incorporates a work around to avoid
429   a potential race condition in mingw-get-inst; (c.f. MinGW bug 3075616);
430   mingw-get.exe and mingw-get-0.dll are renamed, (to move them out of the
431   way), only when performing an explicit upgrade of the mingw-get-bin
432   package itself.
433
434
435 mingw-get-0.1-mingw32-alpha-4
436 -----------------------------
437
438 Release date: 2010-09-10
439
440 - Fixes a bug in the earlier self-upgrade
441   functionality, where any runtime error "deleted" mingw-get.  (mingw-get
442   and its support file(s) were actually only renamed, but recovery was
443   difficult).  Now, "ordinary" errors such as bad command line arguments,
444   failed downloads, missing manifests, etc, will not cause this behavior.
445   However, a catastrophic operating system error may prevent the new
446   auto-recovery code from executing, leaving mingw-get in its "deleted"
447   (e.g. renamed) state.  If this occurs, simply do the following:
448
449 ; The initial exclamation marks, here, introduce a preformatted block
450 ; with absolute indentation; each is replaced by a space, on output.
451 ; (These comment lines -- with initial semicolon -- are not copied to
452 ;  the formatted output stream).
453 ;
454 !     $ cd /mingw
455 !     $ mv bin/mingw-get.exe~ bin/mingw-get.exe
456 !     $ mv libexec/mingw-get/mingw-get-0.dll~ \
457 !          libexec/mingw-get/mingw-get-0.dll
458
459 - Add --help|-h option
460
461
462 mingw-get-0.1-mingw32-alpha-3
463 -----------------------------
464
465 Release date: 2010-08-30
466
467 - There is no profile.xml file shipped with this release; users who
468   are installing for the first time are advised to copy the supplied
469   var/lib/mingw-get/data/defaults.xml configuration file prototype to
470   var/lib/mingw-get/data/profile.xml, which may then be customised as
471   required; (if no customisation is required, mingw-get can use the
472   defaults.xml file directly, but will warn that profile.xml does
473   not exist).
474
475 - Within defaults.xml, the %R macro has been formally adopted as the
476   mechanism for specifying the installation paths for both MinGW and
477   for MSYS; this binds the default installation paths for both MinGW
478   and MSYS to the installation directory of mingw-get itself, since
479   the absolute path to mingw-get.exe is identified as:
480
481       %R\bin\mingw-get.exe
482
483   with default base directory paths being defined for each of MinGW
484   and MSYS respectively as:
485
486 ; The initial exclamation marks, here, introduce a preformatted block
487 ; with absolute indentation; each is replaced by a space, on output.
488 ; (These comment lines -- with initial semicolon -- are not copied to
489 ;  the formatted output stream).
490 ;
491 !     %R\
492 !     %R\msys\1.0\
493
494   This arrangement makes it possible for users to choose installation
495   locations for both MinGW and MSYS, simply by making the choice of
496   where to install mingw-get, without any further need to create, or
497   to modify profile.xml, (although, to avoid warnings about a missing
498   profile.xml, users may prefer to copy or rename defaults.xml).  As
499   for previous releases, the recommended directory for installation is
500   C:\MinGW\, and this should not be changed without pressing reason; in
501   any event, users who insist on changing it should be aware that, if
502   they choose any installation directory which includes white space in
503   its absolute path name, their installation may not work correctly,
504   and such installations will not be supported by the MinGW Project.
505
506 - This release of mingw-get incorporates necessary infrastructure to
507   support future upgrades to itself, using its own internal upgrade 
508   facility.  This is the first release to support this capability;
509   however, the effect will not become apparent until upgrading to
510   the next release.
511
512
513 mingw-get-0.1-mingw32-alpha-2
514 -----------------------------
515
516 Release date: 2010-05-17
517
518 - The var/lib/mingw-get/data/profile.xml file is no longer included in
519   the distribution tarball, (or zipfile); instead, a prototype for this
520   file is provided as var/lib/mingw-get/data/defaults.xml
521
522 - The repository section of profile.xml may now omit any specific
523   reference to a named package-list catalogue, allowing mingw-get to
524   interrogate a default catalogue on the repository host.  Users who
525   have previously installed a modified profile.xml are advised to
526   incorporate changes to the repository definition from defaults.xml
527   into their profile.xml
528
529 - Users who do not wish to provide a customised profile.xml are advised
530   to copy or rename the provided defaults.xml file to profile.xml; this
531   remains the preferred name for the configuration file, and mingw-get
532   will look for it first.  If it cannot be found, mingw-get will issue
533   a warning, before looking for defaults.xml as an alternative.
534
535 - The structure of the repository catalogue has changed, to more readily
536   accommodate dynamic incremental distribution updates, without requiring
537   a corresponding update to mingw-get itself.  While this affects package
538   maintainers more than end users, such users are advised to perform a
539   regular `mingw-get update', at intervals of a few weeks, to capture
540   catalogue updates.
541
542 - As a consequence of the preceding change, the list of packages known
543   to mingw-get is no longer restricted, as it was previously; additional
544   or more up-to-date packages may become available from time to time, as
545   individual package maintainers add the appropriate manifests to the
546   online repository catalogue; use `mingw-get update' to capture such
547   new and updated packages.
548
549 At the time of this release, the packages recorded in the distribution
550 manifest remain as for the alpha-1 release.  With the improved handling
551 of manifests, additional (and more up-to-date) packages will be added
552 soon after this release, and will become immediately available to users,
553 on running `mingw-get update'.
554
555
556 mingw-get-0.1-mingw32-alpha-1
557 -----------------------------
558
559 Release date: 2010-02-16
560
561 This is the first alpha release of the next generation MinGW installer,
562 mingw-get; it provides a more readily extensible, and more configurable
563 alternative to the existing MinGW-5.1.x series of NSIS installers, for
564 installing MinGW packages.
565
566 $RCSfile$: end of file