OSDN Git Service

Implement rudimentary dependency resolver.
[mingw/mingw-get.git] / ChangeLog
1 2010-01-26  Keith Marshall  <keithmarshall@users.sourceforge.net>
2
3         Implement rudimentary dependency resolver.
4
5         * src/pkgdeps.cpp: New file.
6
7         * Makefile.in (CORE_DLL_OBJECTS): Add pkgdeps.$(OBJEXT) reference;
8         establish header file dependencies.
9
10         * src/pkgbase.h (to_remove, to_install, selection_types): New enum.
11         (pkgActionItem::selection): Extend it to store as enumerated pair...
12         (pkgActionItem::SelectPackage): New inline method; assign them.
13         (pkgActionItem::Selection): New inline method; retrieve them.
14         (pkgXmlNode::GetInstallationRecord): New method; declare it.
15
16         * src/pkgexec.cpp (pkgActionItem): In constructor...
17         (selection): ...initialise both references in enumerated pair.
18         (pkgActionItem::GetReference): Use `Selection()' method.
19         (pkgActionItem::SelectIfMostRecent): Ditto; also correct logic for
20         making selection, and assign to `to_install' element.
21         (pkgXmlDocument::Schedule): Don't update `request'.
22         (pkgActionItem::Execute): Implement as stub.
23
24         * src/pkginet.cpp (pkgActionItem::DownloadArchiveFiles): Use new
25         `Selection()' method.
26
27         * src/pkgkeys.h (yes_value, no_value): Declare new string constants.
28         * src/pkgkeys.c (yes_value, no_value): Implement them.
29
30         * src/vercmp.cpp: Update copyright notice.
31         (pkgVersionInfo::operator<=): Bug fix; must test for `<', but had `>'.
32
33 2010-01-23  Keith Marshall  <keithmarshall@users.sourceforge.net>
34
35         Avoid segmentation faults when processing invalid data streams.
36
37         * src/pkgstrm.h: Update copyright notice.
38         (pkgArchiveStream::IsReady): New pure virtual method.
39         (pkgRawArchiveStream::IsReady): Provide inline implementation.
40         (pkgGzipArchiveStream::IsReady): Likewise.
41         (pkgBzipArchiveStream::IsReady): Likewise.
42         (pkgLzmaArchiveStream::IsReady): Likewise.
43         (pkgXzArchiveStream::IsReady): Likewise.
44
45         * src/pkgstrm.cpp: Update copyright notice.
46         (pkgLzmaArchiveStream, pkgXzArchiveStream) [fd == -1]: Decline to
47         perform any form of read or decode processing.
48
49         * src/pkginet.cpp (pkgInternetLzmaStreamingAgent): Use `fd = -2' as
50         pseudo-descriptor for the pkgLzmaArchiveStream derived component of
51         this internet data streaming class.
52
53 2010-01-23  Keith Marshall  <keithmarshall@users.sourceforge.net>
54
55         Require liblzma >= liblzma-4.999.9beta_20091209-3-mingw32-dev
56
57         * src/pkgstrm.h (LZMA_API_STATIC): Remove definition and associated
58         comment; it was required to permit, (but not to enforce), linking to
59         the static liblzma.a library, with earlier beta releases, but this
60         anomaly has now been corrected.
61
62 2010-01-22  Keith Marshall  <keithmarshall@users.sourceforge.net>
63
64         Remove zlib sources from trunk.
65         (Application builders should use free standing implementation of
66          zlib, from MinGW's package distribution page on SourceForge).
67
68 2010-01-22  Keith Marshall  <keithmarshall@users.sourceforge.net>
69
70         Remove bzip2 sources from trunk.
71         (Application builders should use free standing implementation of
72          bzip2, from MinGW's package distribution page on SourceForge).
73
74 2010-01-22  Keith Marshall  <keithmarshall@users.sourceforge.net>
75
76         Add subsystem specific sysroot mapping facility.
77
78         * src/pkghash.c: New file; required by...
79         * src/sysroot.cpp: New file; it implements...
80         (pkgXmlDocument::LoadSystemMap, pkgXmlNode::GetSysRoot): New methods.
81
82         * src/pkgbase.h: Update copyright notice.
83         (pkgXmlDocument::LoadSystemMap): Declare it.
84         (pkgXmlDocument::AddDeclaration): New inline method.
85         (pkgXmlDocument::SetRoot, pkgXmlDocument::Save): Likewise.
86         (pkgXmlNode::GetSysRoot): Declare it.
87         (pkgXmlNode::GetDocumentRoot): New inline method.
88         (pkgXmlNode::AddChild, pkgXmlNode::DeleteChild): Likewise.
89
90         * src/climain.cpp: Update copyright notice.
91         (climain): Invoke pkgXmlDocument::LoadSystemMap() as required.
92
93         * Makefile.in (CORE_DLL_OBJECTS): Add ...
94         (pkghash.$(OBJEXT), sysroot.$(OBJEXT)): ...these; upate dependencies.
95         (DEBUGLEVEL): New macro; define it.
96         (CPPFLAGS): Use it.
97
98 2010-01-16  Keith Marshall  <keithmarshall@users.sourceforge.net>
99
100         Assign standardised keys for XML database lookup.
101
102         * src/pkgkeys.h: New file; provide public key declarations.
103         * src/pkgkeys.c: New file; implement them.
104
105         * src/pkgbind.cpp: Use them; update copyright notice.
106         * src/pkgexec.cpp, src/pkgfind.cpp, src/pkginet.cpp: Likewise.
107         * src/pkgname.cpp, src/pkgspec.cpp: Likewise.
108
109         * Makfile.in (CORE_DLL_OBJECTS): Add pkgkeys.$(OBJEXT); update all
110         dependencies accordingly.
111
112 2010-01-08  Keith Marshall  <keithmarshall@users.sourceforge.net>
113
114         Add CLI version reporting option.
115
116         * configure.ac: Update copyright notice for new year.
117         (COPYRIGHT_HOLDER): New AC_SUBST variable; define it.
118         (YEARS_OF_ISSUE): New AC_SUBST variable; define it.
119         (AC_CONFIG_FILES): Add `version.c'; source it from...
120
121         * version.c.in: ...this new file.
122
123         * Makefile.in: Update copyright notice for new year.
124         (mingw-get$(EXEEXT)): Add dependency on `version.$(OBJEXT)'.
125         (distclean): Add `version.c'.
126
127         * configure: Regenerated.
128
129         * src/clistub.c: Update copyright notice for new year.
130         (options): New array of `struct option'; define and use it as the
131         reference for `argv' parsing with `getopt_long_only()'.
132
133 2009-12-17  Keith Marshall  <keithmarshall@users.sourceforge.net>
134
135         Add CLI support for "update" action.
136
137         * src/pkgtask.h (ACTION_UPDATE): Define it, derived from...
138         (action_update): ...this new entry in anonymous enumeration.
139         
140         * src/pkgexec.cpp (action_name): Add "update" keyword identification.
141
142         * src/pkgbase.h: Typo in comment; s/xwXmlDocument/wxXmlDocument/.
143         (pkgXmlDocument::BindRepositories): Add `force_update' parameter...
144         * src/pkgbind.cpp (pkgXmlDocument::BindRepositories): Use it to...
145         (pkgXmlDocument::SyncRepository): ...invoke this method when passed as
146         a `true' flag, in addition to (as previously) first time reference.
147
148         * src/climain.cpp (climain): Interpret "update" keyword for...
149         [ACTION_UPDATE]: ...passing state as `force_update' parameter to...
150         (pkgXmlDocument::BindRepositories): ...this method, then...
151         [!ACTION_UPDATE]: Follow with normal action processing.
152
153 2009-12-16  Keith Marshall  <keithmarshall@users.sourceforge.net>
154
155         Add status checking for Internet URL connections.
156
157         * src/pkginet.cpp (pkgInternetAgent::QueryStatus): New method.
158         (pkgInternetStreamingAgent::Get): Use it; set `dl_status' as return
159         value, deferring failure diagnostics to callers, i.e. to...
160         (pkgXmlDocument::SyncRepositories): ...this, and to...
161         (pkgActionItem::DownloadArchiveFiles): ...this.
162
163 2009-11-23  Keith Marshall  <keithmarshall@users.sourceforge.net>
164
165         Add package download and repository synchronisation machinery.
166
167         * src/pkgstrm.h: New header file.
168
169         * src/pkgbind.cpp, src/pkginet.cpp, src/pkgstrm.cpp,
170         src/pkgfind.cpp, src/pkgname.cpp, src/keyword.c: New files.
171         * Makefile.in (CORE_DLL_OBJECTS): Add build goals for them.
172
173         * xml: New directory.
174
175         * src/climain.cpp (climain): Establish repository bindings from...
176         * xml/profile.xml: ...this new configuration file.
177
178 2009-11-16  Keith Marshall  <keithmarshall@users.sourceforge.net>
179
180         Add XML database bindings and preliminary action executive for CLI.
181
182         * src/pkgbase.h, src/pkgtask.h,
183         src/mkpath.h, src/vercmp.h: New header files.
184
185         * src/climain.cpp, src/pkgexec.cpp, src/pkgspec.cpp,
186         src/mkpath.c, src/vercmp.cpp, src/xmlfile.c: New files.
187
188         * Makefile.in (CORE_DLL_OBJECTS): Define initial set of files...
189         (mingw-get-0.dll): ...build them into this new DLL target; add it...
190         (all): ...as prerequisite for this primary build goal.
191
192 2009-11-12  Keith Marshall  <keithmarshall@users.sourceforge.net>
193
194         Avoid some potential GCC warnings.
195
196         * src/clistub.c: Include process.h for `execv' prototype...
197         (main): Cast `argv' to appropriately matched type when calling it.
198
199         * src/pkginfo/driver.c: Include stdlib.h for `free' prototype.
200
201 2009-11-11  Keith Marshall  <keithmarshall@users.sourceforge.net>
202
203         Create diagnostic message handler for CLI usage.
204
205         * src/dmh.h: New header file; it defines the public interface.
206         * src/dmh.cpp: New file; it implements the message handler.
207
208 2009-11-05  Keith Marshall  <keithmarshall@users.sourceforge.net>
209
210         Correct some identified TinyXML issues.
211
212         * tinyxml/tinyxml.h (IsWhiteSpace): Add FIXME annotation to flag
213         probable redundancy of checks for '\n' and '\r'.
214         * tinyxml/tinyxmlparser.cpp: Revert John E's 2008-08-09 change; remove
215         all such redundancies in IsWhiteSpace() calls throughout.
216
217         * tinyxml/tinyxml.cpp (TiXmlAttribute::SetDoubleValue): Correct format
218         specification in sprintf()/snprintf() calls; "%lf" is invalid; replace
219         with "%f".
220
221 2009-10-31  Keith Marshall  <keithmarshall@users.sourceforge.net>
222
223         Add CLI loader stub.
224
225         * src/clistub.c: New file.
226         * Makefile.in: Add build rule for it; build as...
227         (mingw-get.exe): ...this; also add to...
228         (clean): ...this goal.
229
230 2009-10-31  Keith Marshall  <keithmarshall@users.sourceforge.net>
231
232         Set up build mechanism.
233
234         * configure.ac, Makefile.in: New files.
235         * .cvsignore (configure, autom4te.cache): Add to ignored files.
236
237 2009-10-30  Keith Marshall  <keithmarshall@users.sourceforge.net>
238
239         Add GPL-v3 licensing terms.
240
241         * COPYING: New file, sourced from gnu.org.
242
243 2009-10-12  Keith Marshall  <keithmarshall@users.sourceforge.net>
244
245         Add pkginfo implementation.
246
247         * src, src/pkginfo: New directories.
248         * src/pkginfo/pkginfo.h, src/pkginfo/pkginfo.l: New files.
249         * src/pkginfo/driver.c: New file.
250
251 2009-10-12  Keith Marshall  <keithmarshall@users.sourceforge.net>
252
253         Create tdm-branch.
254
255         * All files (tdm-branch): Assign new branch tag.
256         * All top-level files: Remove from trunk.
257         * ChangeLog: New file.