-
Notifications
You must be signed in to change notification settings - Fork 1
/
ChangeLog
2075 lines (1445 loc) · 84.1 KB
/
ChangeLog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
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.
* src/pkgreqs.cpp (inherited_requirement): New inline function.
(requirement): Use it; adapt to propagate release archive format and
compression type fields, in addition to version fields, when resolving
"%" wildcard matches within the template for the resultant tarname.
(pkgAssociateName): New public function; implement it for use by...
* src/pkgname.cpp (pkgResolvedName): ...this new inline function.
(pkgXmlNode::SourceArchiveName): Use it; adapt to accept a category
selector, so it may resolve source or licence tarnames on demand.
* src/pkgbase.h (pkgXmlNode::SourceArchiveName): Modify declaration;
add category selector argument to support source/licence choice.
2011-10-02 Keith Marshall <keithmarshall@users.sourceforge.net>
Facilitate downloads using diverse cache directories.
* src/pkgbase.h (pkgActionItem::DownloadSingleArchive): New private
method; declare it; it handles the download for a single named archive
file, and stores it in a specifed cache directory.
* src/pkginet.cpp (pkgActionItem::DownloadSingleArchive): Implement
it; factor its code from the original implementation within...
(pkgActionItem::DownloadArchiveFiles): ...this; adapt to use it.
2011-10-02 Keith Marshall <keithmarshall@users.sourceforge.net>
Establish cache directory for source archive downloads.
* src/mkpath.h (pkgSourceArchivePath): New function; declare it.
* src/mkpath.c (pkgSourceArchivePath): Implement it.
2011-08-30 Keith Marshall <keithmarshall@users.sourceforge.net>
Support archive extraction to arbitrary destination without install.
* src/pkgproc.h (pkgArchiveProcessor::ExtractFile): New virtual
helper method for use, as core helper, by derived classes; declare it.
(pkgArchiveProcessor::CreateExtractionDirectory): Likewise.
(pkgTarArchiveProcessor): Declare overloaded default constructor.
(pkgTarArchiveExtractor): New class definition; it is derived from
pkgTarArchiveProcessor.
* src/tarproc.cpp (pkgArchiveProcessor::ExtractFile): Implement it.
(pkgArchiveProcessor::CreateExtractionDirectory): Likewise.
(pkgTarArchiveExtractor): Implement constructor, together with...
(pkgTarArchiveExtractor::ProcessDirectory): ...this method, and also...
(pkgTarArchiveExtractor::ProcessDataStream): ...this one; these are
declared as abstract, in the pkgTarArchiveProcessor base class.
(pkgTarArchiveInstaller::ProcessDirectory): Simplify; it now delegates
directory creation to pkgArchiveProcessor::CreateExtractionDirectory.
(pkgTarArchiveInstaller::ProcessDataStream): Simplify; delegate file
handling to pkgArchiveProcessor::ExtractFile, as appropriate.
2011-08-30 Keith Marshall <keithmarshall@users.sourceforge.net>
Make --download-only and --print-uris imply --reinstall.
* src/pkgopts.h (OPTION_PRINT_URIS): Adjust definition.
(OPTION_DNLOAD_ONLY, OPTION_DOWNLOAD_ONLY): Likewise.
2011-08-07 Keith Marshall <keithmarshall@users.sourceforge.net>
Implement --download-only and --print-uris options.
* src/pkgopts.h (OPTION_DOWNLOAD_ONLY, OPTION_PRINT_URIS):
New manifest constants, identifying flag bits; define them.
(OPTION_DNLOAD_ONLY): Likewise; an alias for OPTION_DOWNLOAD_ONLY.
* src/pkgbase.h (pkgActionItem::PrintURI): New private method.
* src/pkginet.cpp: Implement it.
* src/clistub.c (options): Add "download-only" and "print-uris".
(help_text): Document them.
* src/pkgexec.cpp (pkgActionItem::Execute): Process them.
2011-07-29 Keith Marshall <keithmarshall@users.sourceforge.net>
mingw-get-0.3-mingw32-alpha-2.1 released.
* configure.ac (AC_INIT): Adjust version number.
* srcdist-doc/NEWS.in: Updated; document bugs fixed.
* All files (r0-3-alpha-2-1): Tag assigned.
2011-07-29 Keith Marshall <keithmarshall@users.sourceforge.net>
Adopt tar.xz as default package archive format.
* Makefile.in (TARZIP, TAREXT): New macros; define them.
(bindist, licdist, srcdist): Use them in place of hardcoded tar.gz
(maintainer-clean): Expunge tar files of any compression format.
2011-07-27 Keith Marshall <keithmarshall@users.sourceforge.net>
Correct handling of release status in requirements specifications.
* src/debug.h (DEBUG_TRACE_DEPENDENCIES): New tracing hook; define it.
* src/pkgexec.cpp (pkgActionItem::SelectIfMostRecentFit): Use it; add
function entry/exit tracing report hooks.
* src/pkgdeps.cpp (pkgXmlDocument::ResolveDependencies): Likewise;
also add internal trace point reporting, which may also require...
(show_required): ...this new static inline DEBUG_INVOKED function.
* src/pkgreqs.cpp (requirement): Propagate release status and release
reference index fields from requirer, when package version requirement
is specified by a '%' token, and no explicit release status override
is included in the requirement specification.
* src/pkgspec.cpp (is_wildcard_spec): New static inline helper.
(pkgSpecs::VersionComparator): Use it to identify any package version
specification which may require the extension of a wildcard match, to
span the package version and release status fields; also add tracing
hooks, triggered on DEBUG_TRACE_DEPENDENCIES, to facilitate debugging.
2011-06-18 Keith Marshall <keithmarshall@users.sourceforge.net>
Avoid accidental RCS keyword substitutions.
* Makefile.in (DOLLAR): New macro; define it.
(readme.txt, readme.txt.in): Use it, where unexpanded RCS Id keyword
matching is intended.
2011-06-18 Keith Marshall <keithmarshall@users.sourceforge.net>
Mercurial support revisited.
* .cvsignore (.hgtags): Add to CVS untracked list.
2011-06-18 Keith Marshall <keithmarshall@users.sourceforge.net>
Update readme.txt ID tag-line to track NEWS rather than README.
* Makefile.in (readme.txt.in): New rule; implement it.
(readme.txt.tag): Likewise; this implements the tag-line tracking.
(readme.txt): Rule redefined in terms of the preceding pair.
2011-06-17 Keith Marshall <keithmarshall@users.sourceforge.net>
mingw-get-0.3-mingw32-alpha-2 released.
* configure.ac (AC_INIT): Adjust version number.
* srcdist-doc/NEWS.in: Updated; document new features and bugs fixed.
* All files (r0-3-alpha-2): Tag assigned.
2011-06-15 Keith Marshall <keithmarshall@users.sourceforge.net>
Add internal documentation for --reinstall option.
* src/clistub.c (help_text): Add description for "--reinstall".
2011-06-14 Keith Marshall <keithmarshall@users.sourceforge.net>
Support use of Mercurial within a CVS working copy.
* .cvsignore (.hg, .hgignore): Don't have CVS track these.
2011-06-13 Keith Marshall <keithmarshall@users.sourceforge.net>
Implement --reinstall option.
* src/pkgopts.h (OPTION_REINSTALL): New macro; define it.
(OPTION_GENERIC, OPTION_SHIFT_MASK): Likewise.
(OPTION_EXTRA_FLAGS): New field; declare it.
* src/clistub.c (options): Add "reinstall".
(OPTION_GENERIC): Use it where appropriate; within its scope...
(OPTION_STORAGE_CLASS): Improve descriptive comments; add handling for
default case of flag type options requiring an alignment shift.
* src/pkgexec.cpp: Remove previous "always reinstall" kludge.
(pkgOptionSelected, PKG_OPTION_REINSTALL): Remove obsolete macros.
(pkgActionItem::Execute): Check for "upgrade" request on any package
which is already up to date; report this state, otherwise...
[OPTION_REINSTALL || ACTION_UPGRADE]: Mark package as "removed", to
avoid bail-out on "package already installed", when calling...
(pkgInstall): ...this.
2011-06-12 Keith Marshall <keithmarshall@users.sourceforge.net>
Don't require -vv to report progress of update operation.
* src/pkgbind.cpp (pkgRepository::GetPackageList): Eliminate all
basename() calls; `dname' already tells us what it should return.
[update]: Report progress, irrespective of verbosity setting.
2011-06-11 Keith Marshall <keithmarshall@users.sourceforge.net>
Fix MinGW-Bug #3313806.
* src/pkginfo/pkginfo.l (CMS_KEYWORDS): Do not match them within the
PACKAGE_NAME field; this avoids misinterpretation as a release status
qualifier when intended as part of the package name, as in msys-cvs.
2011-06-07 Keith Marshall <keithmarshall@users.sourceforge.net>
Provisional correction for MinGW-Bug #3309438.
* src/debug.h [DEBUGLEVEL == 0]: Provide defaults for...
(DEBUG_ENABLED, DEBUG_REQUEST): ...these macros.
* src/tarproc.cpp (pkgTarArchiveInstaller::ProcessDirectory):
(pkgTarArchiveInstaller::ProcessDataStream): Use DEBUG_REQUEST to
enable runtime trace activation for previous compile time choices.
2011-05-30 Keith Marshall <keithmarshall@users.sourceforge.net>
mingw-get-0.3-mingw32-alpha-1 released.
* configure.ac (AC_INIT): Adjust version number.
* srcdist-doc/NEWS.in: Updated; document new features.
* All files (r0-3-alpha-1): Tag assigned.
2011-05-30 Keith Marshall <keithmarshall@users.sourceforge.net>
Support assignment of DEBUGLEVEL at configure time.
* configure.ac (DEBUGLEVEL): Declare as a precious variable, using
AC_ARG_VAR; also declare with AC_SUBST, to ensure it is initialised.
* Makefile.in (DEBUGLEVEL): Let AC_SUBST assign it.
2011-05-29 Keith Marshall <keithmarshall@users.sourceforge.net>
Work around bugs in MinGW and GNU getopt_long_only() implementations.
* src/getopt.c: New file; this is a free-standing replacement for any
implementation provided by system libraries. We will always use this
to ensure correct operation irrespective of system bugs; (different
bug manifestations have been identified in the stock MinGW and GNU
implementations).
* Makefile.in (mingw-get.EXEEXT): Use it.
* src/clistub.c (options): Remove redundant declaration of `-v' as a
long form option.
2011-05-29 Keith Marshall <keithmarshall@users.sourceforge.net>
Implement user selection of traceable features at run-time.
* src.pkgopts.h (OPTION_VERBOSE_MAX): New macro; define it.
* src/debug.h (DEBUG_ENABLED): New macro; define it.
(DEBUG_REQUEST, DEBUG_REQUEST_FLAGS, DEBUG_TRACE_DYNAMIC): Likewise.
* src/clistub.c (main) [--trace]: Don't make it available unless...
[DEBUG_ENABLED(DEBUG_TRACE_DYNAMIC)]: ...this is set (at compile-time).
[--verbose]: Limit to OPTION_VERBOSE_MAX, using...
(atmost): ...this new macro; define it.
(options): Declare `-v' as both long and short form, pending bug fix
in MinGW's getopt_long_only() implementation.
* src/pkginet.cpp (pkgInternetAgent::OpenURL): Use DEBUG_REQUEST.
(pkgInternetLzmaStreamingAgent::TransferData): Likewise.
(pkgInternetStreamingAgent::TransferData): Likewise.
(pkgInternetStreamingAgent::Get): Likewise.
* src/pkgunst.cpp (pkgActionItem::SetAuthorities): Use DEBUG_REQUEST.
(pkg_rmdir, pkg_unlink): Likewise.
* src/sysroot.cpp (pkgXmlDocument::LoadSystemMap): Use DEBUG_REQUEST.
2011-05-21 Keith Marshall <keithmarshall@users.sourceforge.net>
Implement protocol for processing global program options.
* src/pkgopts.h: New file.
* src/climain.cpp (cli_setopts): New function; implement it.
(pkgOptions): Likewise.
* src/clistub.c (xatoi): New function; implement it.
(cli_setargv): New inline helper function; implement it.
(main): Use it. Also incorporate implementation of...
(parsed_options): New structure; it accommodates...
(verbose, trace): New options; interpret them, and...
(help_text): ...document them.
* src/pkgbind.cpp (pkgRepository::GetPackageList): Make catalogue
loading notifications and progress reports conditional on...
[OPTION_VERBOSE > 1]: ...this.
2011-05-18 Keith Marshall <keithmarshall@users.sourceforge.net>
Augment known development status keywords and accept CMS labels.
* src/pkginfo/pkginfo.l (CMS_KEYWORDS): Define new provisional list;
add transitional state scanner rule and code to interpret them.
(STATUS_KEYWORDS): Add "pre" and "rc" to existing list; modify scanner
code to maintain consistency with CMS_KEYWORDS processing; also extend
this coding strategy to other rules.
* src/pkginfo/driver.c (spec): Strip initial '$' token from displayed
field values; (we expect it only for a CMS_KEYWORDS field value).
* src/pkgreqs.cpp (pkgSpecs::GetTarName): Remove any initial '$' token
from PACKAGE_RELEASE_STATUS field, when performing reverse of tarname
decomposition transformation.
2011-05-18 Keith Marshall <keithmarshall@users.sourceforge.net>
Correct omission from 2011-02-18 commit.
* src/tarproc.cpp (Copyright Notice): Add 2011 as year of release.
2011-05-14 Keith Marshall <keithmarshall@users.sourceforge.net>
mingw-get-0.2-mingw32-alpha-4 released.
* configure.ac (AC_INIT): Adjust version number.
* srcdist-doc/NEWS.in: Updated; add bug-fix/feature descriptions.
* All files (r0-2-alpha-4): Tag assigned.
2011-05-12 Keith Marshall <keithmarshall@users.sourceforge.net>
Fix MinGW-Bug #3297660 (reported by Chris Sutcliffe).
* src/pkgbase.h (pkgActionItem::SetAuthorities): Return unsigned long.
(pkgActionItem::HasAttribute): New inline method; implement it.
* src/pkgtask.h (ACTION_DOWNLOAD, ACTION_DOWNLOAD_OK): New macros.
* src/pkginet.cpp (pkgActionItem::DownloadArchiveFiles):
[ACTION_DOWNLOAD]: Assert it at commencement of each package download;
clear it again, on successful download completion.
* src/pkginst.cpp (pkgtask.h): #include it.
(pkgInstall) [ACTION_DOWNLOAD]: Don't proceed with installation when
set; this indicates failed download; diagnose it.
* src/pkgunst.cpp (pkgRemove) [ACTION_DOWNLOAD && ACTION_UPGRADE]:
Don't proceed with pre-emptive removal when both set; this indicates
failed download of replacement package; diagnose it.
2011-05-12 Keith Marshall <keithmarshall@users.sourceforge.net>
Fix MinGW-Bug #3295526 (reported by Charles Wilson).
* src/pkgunst.cpp (sys/stat.h): #include it; we need it for...
(pkg_unlink): ...chmod( file, S_IWRITE ), emulating `rm -f' semantics.
2011-05-12 Keith Marshall <keithmarshall@users.sourceforge.net>
Diagnose and aggressively retry failed download connections.
* src/debug.h (DEBUG_TRACE_INTERNET_REQUESTS): New macro; define it.
* src/pkginet.cpp (debug.h): #include it.
(pkgDownloadMeter): New abstract class; declare it and implement its
default (non-abstract) data and methods; derive...
(pkgDownloadMeterTTY): ...this new class from it; implement it...
(pkgInternetStreamingAgent::Get): ...and instantiate it (naively for
now), as associated pkgDownloadMeter object; add tracing diagnostic.
(pkgInternetAgent::OpenURL): Don't inline it; move implementation out
of line; add retry loops to aggressively retry failed connections.
(pkgInternetAgent::QueryContentLength): New method; implement it.
(pkgInternetStreamingAgent::TransferData): Avoid Microsoft specific
data type `DWORD'; prefer equivalent standard `unsigned long'. Add
tracing diagnostic. Remove progress diagnostic; replace it with an
`Update' request to associated pkgDownloadMeter.
(pkgInternetLzmaStreamingAgent::GetRawData): Avoid `DWORD' data type.
(pkgInternetLzmaStreamingAgent::TransferData): Likewise; add tracing
diagnostic on failure.
2011-03-31 Keith Marshall <keithmarshall@users.sourceforge.net>
mingw-get-0.2-mingw32-alpha-3 released.
* configure.ac (AC_INIT): Adjust version number.
* srcdist-doc/NEWS.in: Updated; add bug-fix description.
* All files (r0-2-alpha-3): Tag assigned.
2011-03-30 Keith Marshall <keithmarshall@users.sourceforge.net>
Provisional handling for http proxy authentication.
(Adapted from patch by Scott Michel <pingbak@users.sourceforge.net>)
(ref: MinGW-Patch #3158453)
* src/pkginet.cpp: Several format/layout adjustments; add comments.
Eliminate several instances of Microsoft specific typedef nastiness.
(dmh_dialogue_context): New macro; kludge definition to support...
(pkgInternetAgent::OpenURL) [HTTP_STATUS_PROXY_AUTH_REQ]: Detect
and handle it.
2011-03-30 Keith Marshall <keithmarshall@users.sourceforge.net>
Expand macros in path names for files and directories to be removed.
* src/pkgunst.cpp (pkgRemove): Format sysroot as a template, so...
(pkg_rmdir, pkg_unlink): ...are able to use mkpath() to construct the
full path name for each file or directory to be removed.
2011-03-29 Keith Marshall <keithmarshall@users.sourceforge.net>
Correct defective activation logic for some debugging hooks.
* src/pkgunst.cpp (pkg_rmdir, pkg_unlink) [DEBUG_INVOKE_IF]:
(pkgActionItem::SetAuthorities) [DEBUG_INVOKE_IF]: Use bit-wise `&'
operator, not `&&', to evaluate DEBUGLEVEL state.
2011-03-22 Keith Marshall <keithmarshall@users.sourceforge.net>
Avoid Unicode hyphens in generated ASCII document files.
* Makefile.in (NROFF): New macro; define it to invoke `nroff -Tascii'.
(%.dist, readme.txt): Use it to ensure that output is pure ASCII.
2011-03-15 Keith Marshall <keithmarshall@users.sourceforge.net>
mingw-get-0.2-mingw32-alpha-2 released.
* configure.ac (AC_INIT): Adjust version number.
* srcdist-doc/NEWS.in: Updated; add bug-fix description.
* All files (r0-2-alpha-2): Tag assigned.
2011-03-15 Keith Marshall <keithmarshall@users.sourceforge.net>
Fix MinGW-Bug 3212246.
* src/keyword.c (has_keyword): Avoid incrementing the comparison
pointers when a significant character in one string is not matched in
the other; previously the pointers were left pointing one character to
the right of the mismatch, and this was overlooked if the mismatch
occurred at the rightmost character in both strings.
2011-03-12 Keith Marshall <keithmarshall@users.sourceforge.net>
mingw-get-0.2-mingw32-alpha-1 released.
* configure.ac (AC_INIT): Set version number; correct capitalisation
in URI reference to bug reporting instructions.
* srcdist-doc/NEWS.in: Confirm release date.
[bug reporting]: Remove redundant paragraph; the information is
provided, via reference to mingw.org. in the README and INSTALL files.
* All files (r0-2-alpha-1): Tag assigned.
2011-03-12 Keith Marshall <keithmarshall@users.sourceforge.net>
* srcdist-doc/INSTALL.in [building]: Qualify liblzma.a requirement;
add earliest acceptable snapshot release date.
2011-03-11 Keith Marshall <keithmarshall@users.sourceforge.net>
Remove unused 7zip and boost source code from CVS trunk.
* 7z: Directory and all content removed.
* boost: Likewise.
2011-03-11 Keith Marshall <keithmarshall@users.sourceforge.net>
Refactor and update existing installation and usage instructions.
* src/clistub.c (help_text): Updated.
* srcdist-doc: New directory.
* README: Deleted; its content refactored into...
* srcdist-doc/README.in srcdist-doc/INSTALL.in srcdist-doc/NEWS.in:
...these new template files, updated for current development state.
* srcdist-doc/gendoc.sed.in: New sed script; it directs formatting of
generated text files derived from the srcdist-doc templates.
* Makefile.in (SRCDIST_SUBDIRS): Add srcdist-doc.
(SRCDIST_FILES): Add NEWS and INSTALL.
(srcdist-doc): New build rule to generate README, NEWS and INSTALL.
(srcdist, licdist): Adjust path to locate them.
(readme.txt): New build rule to generate on-line package description.
(dist): Require it.
(distclean): Don't remove Makefile...
(maintainer-clean): ...but do it here instead. Also remove generated
README, NEWS and INSTALL, the autom4te cache, and all distributable
zip files, in addition to tarballs, for the current version.
2011-02-27 Keith Marshall <keithmarshall@users.sourceforge.net>
Initial implementation for "remove" feature.
* src/pkgbase.h: Update copyright notice; add current year.
(pkgActionItem::SetPrimary): New inline public method; declare it.
(pkgActionItem::SetAuthorities): New public method; declare it.
* src/pkgtask.h (ACTION_PREFLIGHT, ACTION_REMOVE_OK): New defines.
* src/pkgproc.h: Update copyright notice; add current year.
(pkgManifest::GetSysRootReference): New public method; declare it.
(pkgManifest::GetRoot): New inline method; declare and implement it.
(pkgManifest::DetachSysRoot): Argument type changed to const char*.
(pkgRemove): New extern "C" function; declare it.
* src/pkgexec.cpp (pkgActionItem::SetPrimary): Implement it, and...
(pkgXmlDocument::Schedule): ...use it to promote actions on all user
specified packages, as listed on the command line, to primary status.
(pkgActionItem::Execute): Repeatedly invoke...
(pkgActionItem::SetAuthorities): ...this; incorporate call of...
(pkgActionItem::DownloadArchiveFiles): ...this, within the loop, so
that we retry failed downloads at least a second time.
[ACTION_REMOVE]: Delete stub; invoke pkgRemove().
* src/pkgunst.cpp: New file.
(pkgActionItem::SetAuthorities): Implement it.
(pkgManifest::GetSysRootReference): Implement it.
(pkgManifest::DetachSysRoot): Implement it per new declaration.
(pkgRemove): Implement it.
* Makefile.in (CORE_DLL_OBJECTS): Add pkgunst.OBJEXT
2011-02-26 Keith Marshall <keithmarshall@users.sourceforge.net>
Work-around for improper stderr buffering in MSYS mintty and rxvt.
(Merged from r0-1-alpha-5 branch).
* src/dmh.cpp (dmhTypeTTY::emit_and_flush): New private method.
(dmhTypeTTY::printf, dmhTypeTTY::notify): Use it to force an fflush()
after each output record is written to stderr.
* README: Update as appropriate.
2011-02-18 Keith Marshall <keithmarshall@users.sourceforge.net>
Tidy up some debugging hooks.
* src/debug.h (DEBUG_INVOKED): New macro; define it.
(DEBUG_INVOKE_IF): Likewise; this takes arguments providing for
conditional invocation of code when DEBUGLEVEL is non-zero; make it
expand to nothing, when DEBUGLEVEL is zero.
(DEBUG_TRACE_INIT): Redefined macro; value changed to 0x0010.
(DEBUG_TRACE_TRANSACTIONS, DEBUG_SUPPRESS_INSTALLATION):
(DEBUG_UPDATE_INVENTORY): New macros; define them.
* src/tarproc.cpp (pkgTarArchiveInstaller::ProcessDirectory):
(pkgTarArchiveInstaller::ProcessDataStream): Refactor debugging hooks;
implement them in terms of DEBUGLEVEL, with reference to...
(DEBUG_SUPPRESS_INSTALLATION, DEBUG_UPDATE_INVENTORY): ...these.
2011-02-15 Keith Marshall <keithmarshall@users.sourceforge.net>
Make package version comparisons more robust.
Fixes an issue reported by Chris Sutcliffe: previously, version
comparisons were evaluated solely on the basis of differences in the
package version field itself. Henceforth, if this field compares as
equal, then the comparison is extended to also consider differences
between development phase qualifiers, and, if these too compare as
equal, to differences in the target subsystem version fields.
* src/pkginfo/pkginfo.h (pkgSpecs::VersionComparator): New private
method; declare it.