The MinGW.org Installation Manager Tool
修订版 | 14f22fa3b84a6807ac7958c646237c994814028f (tree) |
---|---|
时间 | 2011-02-14 06:23:58 |
作者 | Keith Marshall <keithmarshall@user...> |
Commiter | Keith Marshall |
Merge from mingw-get-0.1-mingw32-alpha-5 bug-fix branch.
@@ -1,3 +1,51 @@ | ||
1 | +2011-02-13 Keith Marshall <keithmarshall@users.sourceforge.net> | |
2 | + | |
3 | + Merge from mingw-get-0.1-mingw32-alpha-5 bug-fix branch. | |
4 | + | |
5 | + * src/pkgdeps.cpp (pkgXmlDocument::ResolveDependencies): Promote | |
6 | + "install" action on new prerequisites, where a previously uninstalled | |
7 | + package is required to satisfy any "upgrade" dependency. | |
8 | + | |
9 | + * src/pkgexec.cpp (pkgActionList::Execute): Don't make misleading | |
10 | + claims concerning package removal. | |
11 | + | |
12 | + * src/pkgtask.h (STRICTLY_GT, STRICTLY_LT, ACTION_PRIMARY): Add one | |
13 | + level of parentheses around defining expressions. | |
14 | + | |
15 | +2011-02-10 Keith Marshall <keithmarshall@users.sourceforge.net> | |
16 | + | |
17 | + Publish mingw-get-0.0-mingw32-alpha-5.1 bug-fix release. | |
18 | + | |
19 | + * README: Updated to reflect changes. | |
20 | + | |
21 | +2011-02-08 Keith Marshall <keithmarshall@users.sourceforge.net> | |
22 | + | |
23 | + Improve diagnostics for failed GUI invocation. | |
24 | + | |
25 | + * src/guimain.cpp: New file; currently delivers only a diagnostic | |
26 | + stub, provided by Sze Howe Koh <axfangli@users.sourceforge.net>, to | |
27 | + pop-up a message block explaining why GUI mode cannot be invoked. | |
28 | + | |
29 | + * Makefile.in (GUI_LDFLAGS): New macro; it is required by... | |
30 | + (gui$EXEEXT): ...this new build rule; add to prerequisites of... | |
31 | + (all): ...this [default] build rule; redefine this in terms of... | |
32 | + (BIN_PROGRAMS, LIBEXEC_PROGRAMS, LIBEXEC_DATA): ...these new macros; | |
33 | + define them, and also use them as loop iterator objectives for... | |
34 | + (install, install_strip): ...these; also schedule them... | |
35 | + (clean): ...for removal by this. | |
36 | + | |
37 | + * src/clistub.c (Copyright): Add new year. | |
38 | + (main): Amend error message, if gui$EXEEXT doesn't start; make it | |
39 | + more intelligible to normal users. | |
40 | + | |
41 | +2011-02-07 Keith Marshall <keithmarshall@users.sourceforge.net> | |
42 | + | |
43 | + Correct omissions from packaged source tarball. | |
44 | + | |
45 | + * Makefile.in (Copyright): Add new year. | |
46 | + (SRCDIST_FILES): Add aclocal.m4 | |
47 | + (SRCDIST_SUBDIRS): Add m4 | |
48 | + | |
1 | 49 | 2011-01-05 Keith Marshall <keithmarshall@users.sourceforge.net> |
2 | 50 | |
3 | 51 | Reduce path names to base names, in some diagnostic message contexts. |
@@ -84,7 +132,7 @@ | ||
84 | 132 | |
85 | 133 | mingw-get-0.1-mingw32-alpha-5 released. |
86 | 134 | |
87 | - * configure.ac: Bump version to 0.1-alpha-5. | |
135 | + * configure.ac (AC_INIT): Bump version to 0.1-alpha-5. | |
88 | 136 | * README: Update release notes accordingly. |
89 | 137 | * All files (r0-1-alpha-5): Tag assigned. |
90 | 138 |
@@ -6,7 +6,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ | ||
6 | 6 | PACKAGE_VERSION = @PACKAGE_VERSION@ |
7 | 7 | |
8 | 8 | # Written by Keith Marshall <keithmarshall@users.sourceforge.net> |
9 | -# Copyright (C) 2009, 2010, MinGW Project | |
9 | +# Copyright (C) 2009, 2010, 2011, MinGW Project | |
10 | 10 | # |
11 | 11 | # |
12 | 12 | # Makefile template for mingw-get |
@@ -63,7 +63,11 @@ CORE_DLL_OBJECTS = climain.$(OBJEXT) pkgshow.$(OBJEXT) \ | ||
63 | 63 | tinyxml.$(OBJEXT) tinyxmlparser.$(OBJEXT) \ |
64 | 64 | tinystr.$(OBJEXT) tinyxmlerror.$(OBJEXT) |
65 | 65 | |
66 | -all: pkginfo$(EXEEXT) mingw-get$(EXEEXT) mingw-get-0.dll lastrites$(EXEEXT) | |
66 | +BIN_PROGRAMS = pkginfo$(EXEEXT) mingw-get$(EXEEXT) | |
67 | +LIBEXEC_PROGRAMS = gui$(EXEEXT) lastrites$(EXEEXT) | |
68 | +LIBEXEC_DATA = mingw-get-0.dll | |
69 | + | |
70 | +all: $(BIN_PROGRAMS) $(LIBEXEC_PROGRAMS) $(LIBEXEC_DATA) | |
67 | 71 | |
68 | 72 | pkginfo$(EXEEXT): driver.$(OBJEXT) pkginfo.$(OBJEXT) |
69 | 73 | $(CC) -o $@ $(CFLAGS) $(LDFLAGS) $+ |
@@ -71,6 +75,11 @@ pkginfo$(EXEEXT): driver.$(OBJEXT) pkginfo.$(OBJEXT) | ||
71 | 75 | mingw-get$(EXEEXT): clistub.$(OBJEXT) version.$(OBJEXT) |
72 | 76 | $(CXX) -o $@ $(CXXFLAGS) $(LDFLAGS) $+ |
73 | 77 | |
78 | +GUI_LDFLAGS = -mwindows $(LDFLAGS) | |
79 | + | |
80 | +gui$(EXEEXT): guimain.$(OBJEXT) | |
81 | + $(CXX) -o $@ $(CXXFLAGS) $(GUI_LDFLAGS) $+ | |
82 | + | |
74 | 83 | lastrites$(EXEEXT): rites.$(OBJEXT) |
75 | 84 | $(CC) -o $@ $(CFLAGS) $(LDFLAGS) $+ |
76 | 85 |
@@ -118,28 +127,35 @@ installdirs: | ||
118 | 127 | $(mkinstalldirs) ${PACKAGE_CONFIG_DIR} |
119 | 128 | |
120 | 129 | install: installdirs install-profile |
121 | - $(INSTALL_PROGRAM) pkginfo$(EXEEXT) ${bindir} | |
122 | - $(INSTALL_PROGRAM) mingw-get$(EXEEXT) ${bindir} | |
123 | - $(INSTALL_PROGRAM) lastrites$(EXEEXT) ${libexecdir}/${PACKAGE_TARNAME} | |
124 | - $(INSTALL_DATA) mingw-get-0.dll ${libexecdir}/${PACKAGE_TARNAME} | |
130 | + for image in $(BIN_PROGRAMS); do \ | |
131 | + $(INSTALL_PROGRAM) $$image ${bindir}; \ | |
132 | + done | |
133 | + for image in $(LIBEXEC_PROGRAMS); do \ | |
134 | + $(INSTALL_PROGRAM) $$image ${libexecdir}/${PACKAGE_TARNAME}; \ | |
135 | + done | |
136 | + for image in $(LIBEXEC_DATA); do \ | |
137 | + $(INSTALL_DATA) $$image ${libexecdir}/${PACKAGE_TARNAME}; \ | |
138 | + done | |
125 | 139 | |
126 | 140 | install-profile: |
127 | 141 | $(INSTALL_DATA) ${srcdir}/xml/profile.xml \ |
128 | 142 | ${PACKAGE_CONFIG_DIR}/defaults.xml |
129 | 143 | |
130 | 144 | install-strip: install |
131 | - $(STRIP) ${bindir}/pkginfo$(EXEEXT) | |
132 | - $(STRIP) ${bindir}/mingw-get$(EXEEXT) | |
133 | - $(STRIP) ${libexecdir}/${PACKAGE_TARNAME}/lastrites$(EXEEXT) | |
134 | - $(STRIP) ${libexecdir}/${PACKAGE_TARNAME}/mingw-get-0.dll | |
145 | + for image in $(BIN_PROGRAMS); do \ | |
146 | + $(STRIP) ${bindir}/$$image; \ | |
147 | + done | |
148 | + for image in $(LIBEXEC_PROGRAMS) $(LIBEXEC_DATA); do \ | |
149 | + $(STRIP) ${libexecdir}/${PACKAGE_TARNAME}/$$image; \ | |
150 | + done | |
135 | 151 | |
136 | 152 | # Packaging and distribution... |
137 | 153 | # |
138 | 154 | LICENCE_FILES = README COPYING |
139 | 155 | SRCDIST_FILES = $(LICENCE_FILES) ChangeLog \ |
140 | - configure.ac configure Makefile.in version.c.in | |
156 | + aclocal.m4 configure.ac configure Makefile.in version.c.in | |
141 | 157 | |
142 | -SRCDIST_SUBDIRS = build-aux src src/pkginfo tinyxml xml | |
158 | +SRCDIST_SUBDIRS = build-aux m4 src src/pkginfo tinyxml xml | |
143 | 159 | |
144 | 160 | # The names of distributed pacakge archive files incorporate version |
145 | 161 | # information, derived from PACKAGE_VERSION; this is decomposed, so that |
@@ -197,7 +213,7 @@ srcdist: pkginfo.c | ||
197 | 213 | # Workspace clean-up... |
198 | 214 | # |
199 | 215 | clean: |
200 | - rm -f *.$(OBJEXT) *.d *.dll pkginfo$(EXEEXT) mingw-get$(EXEEXT) | |
216 | + rm -f *.$(OBJEXT) *.d *.dll $(BIN_PROGRAMS) $(LIBEXEC_PROGRAMS) | |
201 | 217 | |
202 | 218 | distclean: clean |
203 | 219 | rm -f config.* version.c Makefile |
@@ -28,6 +28,12 @@ User Visible Changes for mingw-get-0.1-mingw32-alpha-5 | ||
28 | 28 | way), only when performing an explicit upgrade of the mingw-get-bin |
29 | 29 | package itself. |
30 | 30 | |
31 | +- The follow-up release, designated as mingw-get-0.1-mingw32-alpha-5.1, | |
32 | + is a bug-fix release to correct a critical defect in the resolution of | |
33 | + dependencies, when performing an upgrade operation. It also provides | |
34 | + more meaningful diagnostics when mingw-get is invoked without arguments, | |
35 | + and corrects some omissions from the source tarball. | |
36 | + | |
31 | 37 | |
32 | 38 | =============================================== |
33 | 39 |
@@ -64,8 +70,10 @@ User Visible Changes for mingw-get-0.1-mingw32-alpha-4 | ||
64 | 70 | |
65 | 71 | - Add --help|-h option |
66 | 72 | |
73 | + | |
67 | 74 | =============================================== |
68 | 75 | |
76 | + | |
69 | 77 | Release Notes for mingw-get-0.1-mingw32-alpha-3 |
70 | 78 | |
71 | 79 | Preamble |
@@ -3,7 +3,7 @@ | ||
3 | 3 | # $Id$ |
4 | 4 | # |
5 | 5 | # Written by Keith Marshall <keithmarshall@users.sourceforge.net> |
6 | -# Copyright (C) 2009, 2010, MinGW Project | |
6 | +# Copyright (C) 2009, 2010, 2011, MinGW Project | |
7 | 7 | # |
8 | 8 | # |
9 | 9 | # Configuration script for mingw-get |
@@ -4,7 +4,7 @@ | ||
4 | 4 | * $Id$ |
5 | 5 | * |
6 | 6 | * Written by Keith Marshall <keithmarshall@users.sourceforge.net> |
7 | - * Copyright (C) 2009, 2010, MinGW Project | |
7 | + * Copyright (C) 2009, 2010, 2011, MinGW Project | |
8 | 8 | * |
9 | 9 | * |
10 | 10 | * Initiation stub for command line invocation of mingw-get |
@@ -302,8 +302,9 @@ int main( int argc, char **argv ) | ||
302 | 302 | /* If we get to here, then the GUI could not be started... |
303 | 303 | * Issue a diagnostic message, before abnormal termination. |
304 | 304 | */ |
305 | - fprintf( stderr, "%s: %S: unable to start application; status = %d\n", | |
306 | - progname, MINGW_GET_GUI, status | |
305 | + fprintf( stderr, | |
306 | + "%s: %S: unable to start GUI; helper program not installed\n", | |
307 | + progname, MINGW_GET_GUI | |
307 | 308 | ); |
308 | 309 | return EXIT_FATAL; |
309 | 310 | } |
@@ -0,0 +1,58 @@ | ||
1 | +/* | |
2 | + * guimain.cpp | |
3 | + * | |
4 | + * $Id$ | |
5 | + * | |
6 | + * Written by Keith Marshall <keithmarshall@users.sourceforge.net> | |
7 | + * Derived from stub by Sze Howe Koh <axfangli@users.sourceforge.net> | |
8 | + * Copyright (C) 2011, MinGW Project | |
9 | + * | |
10 | + * | |
11 | + * Implementation of the GUI main program function, which is invoked | |
12 | + * by the command line start-up stub when invoked without arguments. | |
13 | + * Alternatively, it may be invoked directly from a desktop shortcut, | |
14 | + * a launch bar shortcut or a menu entry. In any of these cases, it | |
15 | + * causes mingw-get to run as a GUI process. | |
16 | + * | |
17 | + * | |
18 | + * This is free software. Permission is granted to copy, modify and | |
19 | + * redistribute this software, under the provisions of the GNU General | |
20 | + * Public License, Version 3, (or, at your option, any later version), | |
21 | + * as published by the Free Software Foundation; see the file COPYING | |
22 | + * for licensing details. | |
23 | + * | |
24 | + * Note, in particular, that this software is provided "as is", in the | |
25 | + * hope that it may prove useful, but WITHOUT WARRANTY OF ANY KIND; not | |
26 | + * even an implied WARRANTY OF MERCHANTABILITY, nor of FITNESS FOR ANY | |
27 | + * PARTICULAR PURPOSE. Under no circumstances will the author, or the | |
28 | + * MinGW Project, accept liability for any damages, however caused, | |
29 | + * arising from the use of this software. | |
30 | + * | |
31 | + */ | |
32 | +#include <windows.h> | |
33 | + | |
34 | +int APIENTRY WinMain | |
35 | +( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) | |
36 | +{ | |
37 | + /* FIXME: this implementation is a stub, adapted from sample code | |
38 | + * provided by Sze Howe Koh <axfangli@users.sourceforge.net>. It | |
39 | + * does no more than display a message box indicating that GUI mode | |
40 | + * is not yet supported, and directing users to use the CLI version | |
41 | + * instead. Ultimately, this will be replaced by a functional GUI | |
42 | + * implementation. | |
43 | + */ | |
44 | + MessageBox( NULL, | |
45 | + "The GUI for mingw-get is not yet available.\n" | |
46 | + "Please use the command line version; for instructions,\n" | |
47 | + "invoke\n\n" | |
48 | + | |
49 | + " mingw-get --help\n\n" | |
50 | + | |
51 | + "at your preferred CLI prompt.", | |
52 | + "Feature Unavailable", | |
53 | + MB_ICONWARNING | |
54 | + ); | |
55 | + return 0; | |
56 | +} | |
57 | + | |
58 | +/* $RCSfile$: end of file */ |
@@ -167,6 +167,7 @@ const char *pkgXmlNode::GetContainerAttribute( const char *key, const char *sub | ||
167 | 167 | |
168 | 168 | void |
169 | 169 | pkgXmlDocument::ResolveDependencies( pkgXmlNode* package, pkgActionItem* rank ) |
170 | +# define promote( request, action ) (((request) & (~ACTION_MASK)) | action ) | |
170 | 171 | { |
171 | 172 | /* For the specified "package", (nominally a "release"), identify its |
172 | 173 | * prerequisites, (as specified by "requires" tags), and schedule actions |
@@ -291,14 +292,19 @@ pkgXmlDocument::ResolveDependencies( pkgXmlNode* package, pkgActionItem* rank ) | ||
291 | 292 | rank = Schedule( fallback, wanted, rank ); |
292 | 293 | } |
293 | 294 | |
294 | - else if( (request & ACTION_MASK) == ACTION_INSTALL ) | |
295 | + else if( ((request & ACTION_MASK) == ACTION_INSTALL) | |
295 | 296 | /* |
296 | 297 | * The required package is not installed... |
297 | - * When performing an installation, we must schedule it | |
298 | + * When performing an installation, ... | |
299 | + */ | |
300 | + || ((request & (ACTION_PRIMARY | ACTION_INSTALL)) == ACTION_INSTALL) ) | |
301 | + /* | |
302 | + * or when this is a new requirement of a package | |
303 | + * which is being upgraded, then we must schedule it | |
298 | 304 | * for installation now; (we may simply ignore it, if |
299 | 305 | * we are performing a removal). |
300 | 306 | */ |
301 | - rank = Schedule( request, wanted, rank ); | |
307 | + rank = Schedule( promote( request, ACTION_INSTALL ), wanted, rank ); | |
302 | 308 | |
303 | 309 | /* Regardless of the action scheduled, we must recursively |
304 | 310 | * consider further dependencies of the resolved prerequisite; |
@@ -4,7 +4,7 @@ | ||
4 | 4 | * $Id$ |
5 | 5 | * |
6 | 6 | * Written by Keith Marshall <keithmarshall@users.sourceforge.net> |
7 | - * Copyright (C) 2009, 2010, MinGW Project | |
7 | + * Copyright (C) 2009, 2010, 2011, MinGW Project | |
8 | 8 | * |
9 | 9 | * |
10 | 10 | * Implementation of package management task scheduler and executive. |
@@ -401,7 +401,9 @@ void pkgActionItem::Execute() | ||
401 | 401 | * manifest structure has been specified and implemented. |
402 | 402 | */ |
403 | 403 | if( current->Selection( to_remove ) != NULL ) |
404 | - dmh_printf( " removing %s\n", current->Selection( to_remove )->GetPropVal( tarname_key, value_unknown )); | |
404 | + dmh_printf( " FIXME:pkgRemove<stub>:not removing %s\n", | |
405 | + current->Selection( to_remove )->GetPropVal( tarname_key, value_unknown ) | |
406 | + ); | |
405 | 407 | } |
406 | 408 | |
407 | 409 | if( (current->flags & ACTION_INSTALL) == ACTION_INSTALL ) |
@@ -5,7 +5,7 @@ | ||
5 | 5 | * $Id$ |
6 | 6 | * |
7 | 7 | * Written by Keith Marshall <keithmarshall@users.sourceforge.net> |
8 | - * Copyright (C) 2009, 2010, MinGW Project | |
8 | + * Copyright (C) 2009, 2010, 2011, MinGW Project | |
9 | 9 | * |
10 | 10 | * |
11 | 11 | * This header provides manifest definitions for the action codes, |
@@ -54,10 +54,10 @@ enum | ||
54 | 54 | #define ACTION_SHOW (unsigned long)(action_show) |
55 | 55 | #define ACTION_UPDATE (unsigned long)(action_update) |
56 | 56 | |
57 | -#define STRICTLY_GT ACTION_MASK + 1 | |
58 | -#define STRICTLY_LT STRICTLY_GT << 1 | |
57 | +#define STRICTLY_GT (ACTION_MASK + 1) | |
58 | +#define STRICTLY_LT (STRICTLY_GT << 1) | |
59 | 59 | |
60 | -#define ACTION_PRIMARY STRICTLY_LT << 1 | |
60 | +#define ACTION_PRIMARY (STRICTLY_LT << 1) | |
61 | 61 | |
62 | 62 | #ifndef EXTERN_C |
63 | 63 | # ifdef __cplusplus |