OSDN Git Service

Rationalise path identification for XML file locations.
[mingw/mingw-get.git] / ChangeLog
1 2010-03-02  Keith Marshall  <keithmarshall@users.sourceforge.net>
2
3         Rationalise path identification for XML file locations.
4
5         * src/sysroot.cpp (pkgXmlDocument::LoadSystemMap): Use `xmlfile()'
6         function to locate `sysroot' map file; free memory when done.
7         (pkgXmlDocument::UpdateSystemMap): Likewise.
8
9 2010-03-01  Keith Marshall  <keithmarshall@users.sourceforge.net>
10
11         Extend package name search to include component packages.
12
13         * src/pkgfind.cpp (pkgHasMatchingName): Remove; fold it into...
14         (pkgXmlNode::FindPackageByName): ...this; augment to extend search
15         within package definition elements, seeking a potential match on an
16         included component package name or component class-implied name.
17
18         * src/pkgkeys.h (class_key): New global string constant; declare it.
19         * src/pkgkeys.c (class_key): Implement it.
20
21 2010-02-16  Keith Marshall  <keithmarshall@users.sourceforge.net>
22
23         Bump version for next release cycle.
24
25         * configure.ac (AC_INIT): Bump version suffix to alpha-2.
26
27 2010-02-16  Keith Marshall  <keithmarshall@users.sourceforge.net>
28
29         mingw-get-0.1-mingw32-alpha-1 released.
30
31 2010-02-16  Keith Marshall  <keithmarshall@users.sourceforge.net>
32
33         Prepare initial package release.
34
35         * README: New file; use it to source release notes.
36
37         * Makefile.in (SRCDIST_FILES): Use ...
38         (LICENCE_FILES): ...this new macro; define it.
39         (licdist): New build goal; implement it.
40         (bindist): Require it; add alternative `zip' format package.
41
42         * src/profile (repository): Set default `package-index' name.
43         (system-map): Normalise spelling for default `sysroot' path names.
44
45 2010-02-10  Keith Marshall  <keithmarshall@users.sourceforge.net>
46
47         Add directory/file records in installation manifests.
48
49         * src/pkgkeys.h (dirname_key, filename_key): New strings; declare...
50         * src/pkgkeys.c (dirname_key, filename_key): ...and implement them.
51
52         * src/pkgproc.h (pkgArchiveProcessor::installed): New class member
53         variable; declare it.
54         (pkgTarArchiveInstaller::UpdateInstallationManifest): New method;
55         declare it.
56
57         * src/tarproc.cpp: Miscellaneous comment updates.
58         (pkgTarArchiveInstaller): In constructor...
59         (pkgTarArchiveInstaller::installed): ...use new member variable...
60         (pkgArchiveProcessor::installed): ...inherited from this.
61         (pkgTarArchiveInstaller::UpdateInstallationManifest): Implement and...
62         (pkgTarArchiveInstaller::ProcessDataStream): ...use it.
63         (pkgTarArchiveInstaller::ProcessDirectory): Likewise.
64
65 2010-02-06  Keith Marshall  <keithmarshall@users.sourceforge.net>
66
67         Work around a deficiency in Microsoft's stat() implementation.
68
69         * src/tarproc.cpp (pkgTarArchiveProcessor::ProcessDirectory): Don't
70         pass a `pathname' argument with trailing slashes; strip them off.
71
72 2010-02-06  Keith Marshall  <keithmarshall@users.sourceforge.net>
73
74         Add machinery for installation and packaging for distribution.
75
76         * install-sh: New file; source it from autoconf distribution.
77
78         * configure.ac (AC_PREFIX_DEFAULT): Assign it as `C:/MinGW'.
79         (AC_PROG_MKDIR_P, AC_PROG_INSTALL, AC_PROG_LN_S): Invoke these.
80         (STRIP): New output variable; use AC_CHECK_TOOL to define it.
81
82         * Makefile.in (abs_top_srcdir): Define to AC_SUBST value.
83         (PACKAGE_TARNAME, PACKAGE_VERSION): Define to AC_SUBST values.
84         (prefix, exec_prefix, bindir, libexecdir, localstatedir): Likewise.
85         (INSTALL, INSTALL_PROGRAM, INSTALL_SCRIPT, INSTALL_DATA): Likewise.
86         (STRIP): New macro; define it using AC_CHECK_TOOL substitution.
87         (mkinstalldirs): New macro; define it as AC_PROG_MKDIR_P result.
88         (LN_S): New macro; define it as AC_PROG_LN_S result.
89         (dist, srcdist, bindist): New build objectives; implement them.
90         (install, installdirs, install-strip, maintainer-clean): Likewise.
91         (SRCDIST_FILES, SRCDIST_SUBDIRS): New macros; define them.
92         (PACKAGE_DISTNAME, PACKAGE_DISTVERSION): Likewise.
93         (PACKAGE_DISTROOT, PACKAGE_ROOTVERSION): Likewise.
94         (PACKAGE_CONFIG_DIR): Likewise.
95
96 2010-02-02  Keith Marshall  <keithmarshall@users.sourceforge.net>
97
98         Implement package installer for tar archives.
99
100         * src/pkgexec.cpp (pkgXmlDocument::Execute): Replace existing
101         stub implementation of installer, using methods provided by...
102         * src/pkgproc.h, src/tarproc.cpp: ...these new files, with trap...
103         * src/pkgdeps.cpp (pkgXmlDocument::Schedule) [installed]: Add entry...
104         (pkgActionItem::Selection) [to_remove]: ...for this; use it to detect
105         `install' requests for packages which are aleady installed.
106
107         * Makefile.in (CORE_DLL_OBJECTS): Add tarproc.$(OBJEXT); specify
108         dependencies as appropriate.
109
110         * src/sysroot.cpp (pkgXmlDocument::LoadSystemMap): Don't commit
111         newly created `sysroot' mapping records to disk; defer to...
112         (pkgXmlDocument::UpdateSystemMap): ...this new method.
113         (sigpath): Make it a global variable, with file (static) scope.
114
115         * src/climain.cpp (pkgXmlDocument::UpdateSystemMap): Invoke it.
116
117         * src/pkgkeys.h (download_key, modified_key, source_key): New global
118         string variables; declare them, providing their implementations...
119         * src/pkgkeys.c (download_key, modified_key, source_key): ...here.
120         * src/pkgname.cpp (download_key, source_key): Use them.
121
122         * src/pkginet.cpp (pkgActionItem::ArchivePath): Delete; replace...
123         * src/mkpath.c (pkgArchivePath): ...with this free standing function.
124         * src/mkpath.h (pkgArchivePath): Declare its prototype.
125
126         * src/pkgbase.h (pkgActionItem::ArchivePath): Delete declaration.
127         (pkgXmlDocument): Add a default constructor; implement as `inline'.
128         (pkgXmlDocument::AddDeclaration): Use heap memory to allocate the new
129         declaration object, instead of `auto' variable, to avoid scope error.
130         (pkgXmlDocument::UpdateSystemMap): Declare it.
131
132 2010-01-26  Keith Marshall  <keithmarshall@users.sourceforge.net>
133
134         Implement rudimentary dependency resolver.
135
136         * src/pkgdeps.cpp: New file.
137
138         * Makefile.in (CORE_DLL_OBJECTS): Add pkgdeps.$(OBJEXT) reference;
139         establish header file dependencies.
140
141         * src/pkgbase.h (to_remove, to_install, selection_types): New enum.
142         (pkgActionItem::selection): Extend it to store as enumerated pair...
143         (pkgActionItem::SelectPackage): New inline method; assign them.
144         (pkgActionItem::Selection): New inline method; retrieve them.
145         (pkgXmlNode::GetInstallationRecord): New method; declare it.
146
147         * src/pkgexec.cpp (pkgActionItem): In constructor...
148         (selection): ...initialise both references in enumerated pair.
149         (pkgActionItem::GetReference): Use `Selection()' method.
150         (pkgActionItem::SelectIfMostRecent): Ditto; also correct logic for
151         making selection, and assign to `to_install' element.
152         (pkgXmlDocument::Schedule): Don't update `request'.
153         (pkgActionItem::Execute): Implement as stub.
154
155         * src/pkginet.cpp (pkgActionItem::DownloadArchiveFiles): Use new
156         `Selection()' method.
157
158         * src/pkgkeys.h (yes_value, no_value): Declare new string constants.
159         * src/pkgkeys.c (yes_value, no_value): Implement them.
160
161         * src/vercmp.cpp: Update copyright notice.
162         (pkgVersionInfo::operator<=): Bug fix; must test for `<', but had `>'.
163
164 2010-01-23  Keith Marshall  <keithmarshall@users.sourceforge.net>
165
166         Avoid segmentation faults when processing invalid data streams.
167
168         * src/pkgstrm.h: Update copyright notice.
169         (pkgArchiveStream::IsReady): New pure virtual method.
170         (pkgRawArchiveStream::IsReady): Provide inline implementation.
171         (pkgGzipArchiveStream::IsReady): Likewise.
172         (pkgBzipArchiveStream::IsReady): Likewise.
173         (pkgLzmaArchiveStream::IsReady): Likewise.
174         (pkgXzArchiveStream::IsReady): Likewise.
175
176         * src/pkgstrm.cpp: Update copyright notice.
177         (pkgLzmaArchiveStream, pkgXzArchiveStream) [fd == -1]: Decline to
178         perform any form of read or decode processing.
179
180         * src/pkginet.cpp (pkgInternetLzmaStreamingAgent): Use `fd = -2' as
181         pseudo-descriptor for the pkgLzmaArchiveStream derived component of
182         this internet data streaming class.
183
184 2010-01-23  Keith Marshall  <keithmarshall@users.sourceforge.net>
185
186         Require liblzma >= liblzma-4.999.9beta_20091209-3-mingw32-dev
187
188         * src/pkgstrm.h (LZMA_API_STATIC): Remove definition and associated
189         comment; it was required to permit, (but not to enforce), linking to
190         the static liblzma.a library, with earlier beta releases, but this
191         anomaly has now been corrected.
192
193 2010-01-22  Keith Marshall  <keithmarshall@users.sourceforge.net>
194
195         Remove zlib sources from trunk.
196         (Application builders should use free standing implementation of
197          zlib, from MinGW's package distribution page on SourceForge).
198
199 2010-01-22  Keith Marshall  <keithmarshall@users.sourceforge.net>
200
201         Remove bzip2 sources from trunk.
202         (Application builders should use free standing implementation of
203          bzip2, from MinGW's package distribution page on SourceForge).
204
205 2010-01-22  Keith Marshall  <keithmarshall@users.sourceforge.net>
206
207         Add subsystem specific sysroot mapping facility.
208
209         * src/pkghash.c: New file; required by...
210         * src/sysroot.cpp: New file; it implements...
211         (pkgXmlDocument::LoadSystemMap, pkgXmlNode::GetSysRoot): New methods.
212
213         * src/pkgbase.h: Update copyright notice.
214         (pkgXmlDocument::LoadSystemMap): Declare it.
215         (pkgXmlDocument::AddDeclaration): New inline method.
216         (pkgXmlDocument::SetRoot, pkgXmlDocument::Save): Likewise.
217         (pkgXmlNode::GetSysRoot): Declare it.
218         (pkgXmlNode::GetDocumentRoot): New inline method.
219         (pkgXmlNode::AddChild, pkgXmlNode::DeleteChild): Likewise.
220
221         * src/climain.cpp: Update copyright notice.
222         (climain): Invoke pkgXmlDocument::LoadSystemMap() as required.
223
224         * Makefile.in (CORE_DLL_OBJECTS): Add ...
225         (pkghash.$(OBJEXT), sysroot.$(OBJEXT)): ...these; upate dependencies.
226         (DEBUGLEVEL): New macro; define it.
227         (CPPFLAGS): Use it.
228
229 2010-01-16  Keith Marshall  <keithmarshall@users.sourceforge.net>
230
231         Assign standardised keys for XML database lookup.
232
233         * src/pkgkeys.h: New file; provide public key declarations.
234         * src/pkgkeys.c: New file; implement them.
235
236         * src/pkgbind.cpp: Use them; update copyright notice.
237         * src/pkgexec.cpp, src/pkgfind.cpp, src/pkginet.cpp: Likewise.
238         * src/pkgname.cpp, src/pkgspec.cpp: Likewise.
239
240         * Makfile.in (CORE_DLL_OBJECTS): Add pkgkeys.$(OBJEXT); update all
241         dependencies accordingly.
242
243 2010-01-08  Keith Marshall  <keithmarshall@users.sourceforge.net>
244
245         Add CLI version reporting option.
246
247         * configure.ac: Update copyright notice for new year.
248         (COPYRIGHT_HOLDER): New AC_SUBST variable; define it.
249         (YEARS_OF_ISSUE): New AC_SUBST variable; define it.
250         (AC_CONFIG_FILES): Add `version.c'; source it from...
251
252         * version.c.in: ...this new file.
253
254         * Makefile.in: Update copyright notice for new year.
255         (mingw-get$(EXEEXT)): Add dependency on `version.$(OBJEXT)'.
256         (distclean): Add `version.c'.
257
258         * configure: Regenerated.
259
260         * src/clistub.c: Update copyright notice for new year.
261         (options): New array of `struct option'; define and use it as the
262         reference for `argv' parsing with `getopt_long_only()'.
263
264 2009-12-17  Keith Marshall  <keithmarshall@users.sourceforge.net>
265
266         Add CLI support for "update" action.
267
268         * src/pkgtask.h (ACTION_UPDATE): Define it, derived from...
269         (action_update): ...this new entry in anonymous enumeration.
270         
271         * src/pkgexec.cpp (action_name): Add "update" keyword identification.
272
273         * src/pkgbase.h: Typo in comment; s/xwXmlDocument/wxXmlDocument/.
274         (pkgXmlDocument::BindRepositories): Add `force_update' parameter...
275         * src/pkgbind.cpp (pkgXmlDocument::BindRepositories): Use it to...
276         (pkgXmlDocument::SyncRepository): ...invoke this method when passed as
277         a `true' flag, in addition to (as previously) first time reference.
278
279         * src/climain.cpp (climain): Interpret "update" keyword for...
280         [ACTION_UPDATE]: ...passing state as `force_update' parameter to...
281         (pkgXmlDocument::BindRepositories): ...this method, then...
282         [!ACTION_UPDATE]: Follow with normal action processing.
283
284 2009-12-16  Keith Marshall  <keithmarshall@users.sourceforge.net>
285
286         Add status checking for Internet URL connections.
287
288         * src/pkginet.cpp (pkgInternetAgent::QueryStatus): New method.
289         (pkgInternetStreamingAgent::Get): Use it; set `dl_status' as return
290         value, deferring failure diagnostics to callers, i.e. to...
291         (pkgXmlDocument::SyncRepositories): ...this, and to...
292         (pkgActionItem::DownloadArchiveFiles): ...this.
293
294 2009-11-23  Keith Marshall  <keithmarshall@users.sourceforge.net>
295
296         Add package download and repository synchronisation machinery.
297
298         * src/pkgstrm.h: New header file.
299
300         * src/pkgbind.cpp, src/pkginet.cpp, src/pkgstrm.cpp,
301         src/pkgfind.cpp, src/pkgname.cpp, src/keyword.c: New files.
302         * Makefile.in (CORE_DLL_OBJECTS): Add build goals for them.
303
304         * xml: New directory.
305
306         * src/climain.cpp (climain): Establish repository bindings from...
307         * xml/profile.xml: ...this new configuration file.
308
309 2009-11-16  Keith Marshall  <keithmarshall@users.sourceforge.net>
310
311         Add XML database bindings and preliminary action executive for CLI.
312
313         * src/pkgbase.h, src/pkgtask.h,
314         src/mkpath.h, src/vercmp.h: New header files.
315
316         * src/climain.cpp, src/pkgexec.cpp, src/pkgspec.cpp,
317         src/mkpath.c, src/vercmp.cpp, src/xmlfile.c: New files.
318
319         * Makefile.in (CORE_DLL_OBJECTS): Define initial set of files...
320         (mingw-get-0.dll): ...build them into this new DLL target; add it...
321         (all): ...as prerequisite for this primary build goal.
322
323 2009-11-12  Keith Marshall  <keithmarshall@users.sourceforge.net>
324
325         Avoid some potential GCC warnings.
326
327         * src/clistub.c: Include process.h for `execv' prototype...
328         (main): Cast `argv' to appropriately matched type when calling it.
329
330         * src/pkginfo/driver.c: Include stdlib.h for `free' prototype.
331
332 2009-11-11  Keith Marshall  <keithmarshall@users.sourceforge.net>
333
334         Create diagnostic message handler for CLI usage.
335
336         * src/dmh.h: New header file; it defines the public interface.
337         * src/dmh.cpp: New file; it implements the message handler.
338
339 2009-11-05  Keith Marshall  <keithmarshall@users.sourceforge.net>
340
341         Correct some identified TinyXML issues.
342
343         * tinyxml/tinyxml.h (IsWhiteSpace): Add FIXME annotation to flag
344         probable redundancy of checks for '\n' and '\r'.
345         * tinyxml/tinyxmlparser.cpp: Revert John E's 2008-08-09 change; remove
346         all such redundancies in IsWhiteSpace() calls throughout.
347
348         * tinyxml/tinyxml.cpp (TiXmlAttribute::SetDoubleValue): Correct format
349         specification in sprintf()/snprintf() calls; "%lf" is invalid; replace
350         with "%f".
351
352 2009-10-31  Keith Marshall  <keithmarshall@users.sourceforge.net>
353
354         Add CLI loader stub.
355
356         * src/clistub.c: New file.
357         * Makefile.in: Add build rule for it; build as...
358         (mingw-get.exe): ...this; also add to...
359         (clean): ...this goal.
360
361 2009-10-31  Keith Marshall  <keithmarshall@users.sourceforge.net>
362
363         Set up build mechanism.
364
365         * configure.ac, Makefile.in: New files.
366         * .cvsignore (configure, autom4te.cache): Add to ignored files.
367
368 2009-10-30  Keith Marshall  <keithmarshall@users.sourceforge.net>
369
370         Add GPL-v3 licensing terms.
371
372         * COPYING: New file, sourced from gnu.org.
373
374 2009-10-12  Keith Marshall  <keithmarshall@users.sourceforge.net>
375
376         Add pkginfo implementation.
377
378         * src, src/pkginfo: New directories.
379         * src/pkginfo/pkginfo.h, src/pkginfo/pkginfo.l: New files.
380         * src/pkginfo/driver.c: New file.
381
382 2009-10-12  Keith Marshall  <keithmarshall@users.sourceforge.net>
383
384         Create tdm-branch.
385
386         * All files (tdm-branch): Assign new branch tag.
387         * All top-level files: Remove from trunk.
388         * ChangeLog: New file.