Allow GLOB_NOMATCH, which also occurs if the leading dir does not exist.
[oweals/opkg-lede.git] / ChangeLog.ipkg
1 2006-05-30 pigi ( pigi@frumar.it)
2         * Version update to 0.99.163
3         * Fixed a bug in GNU_TAR_EXTENSION of unarchive.c. This fix #1666
4
5 2006-05-04 pigi ( pigi@frumar.it)
6         * Fixed a little bug in makefile that inhibit the compilation from .tar.gz ( missing intercept dir )
7
8 2006-04-20 pigi ( pigi@frumar.it)
9         * Version update to 0.99.162
10         * Fixed a bad bug introduced in .160 that was blocking the install of a package
11
12 2006-04-18 pigi ( pigi@frumar.it)
13         * Version update to 0.99.161
14
15 2006-04-18 pigi ( pigi@frumar.it)
16         * Another little fix for the  upgrade part.Now alse the prerm and postrm scripts gets deleted before upgrading.
17           wishing this fix the last troubles in upgrade part.
18         * Fix for #1585 after the bug introduced with the modify for offline root. ( Again )
19
20 2006-03-30 pigi ( pigi@frumar.it)
21         * Activated the patch from Gunter@ohrner.net  for the md5 check of package
22         * Another change in the upgrade part, to handle the ghosts files from an upgraded package
23
24 2006-03-30 pigi ( pigi@frumar.it)
25         * Version update to 0.99.160
26         * Fix for #1585 after the bug introduced with the modify for offline root.
27         * Patch from Gunter@ohrner.net  that fix a memory leak
28         * Not yet activated, but inserted a patch from Gunter@ohrner.net  for the md5 check of package
29
30 2006-02-06 pigi ( pigi@frumar.it)
31         * Version update to 0.99.159
32         * Another change in the upgrade part, to handle the ghosts files from an upgraded package
33         *         Now it should be ok. Thanks to pb_ for pointing out where to look at.
34
35 2006-02-02 pigi ( pigi@frumar.it)
36         * Version update to 0.99.158
37         * Modified the way upgrade handle the removing of a package, to be sure that ipkg doesn't break busybox upgrade
38         *          this should fix #1503
39         
40 2006-01-30 pigi ( pigi@frumar.it)
41         * applied patch from pb_ for speed up things in boot ( to avoid multiple configure execution )
42         * applied patch from <r.schwebel@pengutronix.de> for 100+ filenames in tar file ( again )!
43         * applied patch from <r.schwebel@pengutronix.de> to avoid trouble in offlineroot installations.
44  
45 2006-01-22 pigi ( pigi@frumar.it)
46         * Version update to 0.99.157
47
48 2006-01-17 pigi ( pigi@frumar.it)
49         * Added a check to avoid reading feed files with several options. This should fix #1458 and speed up a lot of executions.
50
51 2006-01-12 pigi ( pigi@frumar.it)
52         * Version update to 0.99.156
53         * Fixed a length problem for strncpy when "Installing" option added. This fix bug #1456. Thanks to hrw for signaling
54
55 2005-12-15 pigi ( pigi@frumar.it)
56         * Version update to 0.99.155
57         * Added a function to remove the package that is being upgraded.
58         * Fixed a problem when installing by hand. Now ipkg knows that a package has been selected by hand, 
59         *       and, if every check returns ok, it install the wanted package, instead of selecting one from feed.
60         *       Moreover, now downgrade should works again.
61         * Fixed the "Replaces" bug. Now ipkg is able to replace a package also if it doesn't conflict.
62         * Other minor changes in debug options
63
64 2005-09-15 pigi ( pigi@frumar.it)
65         * Version update to 0.99.154
66         * Corrected a problem when removing a package, caused by an off by one alignement with the "Provides:" String
67         * Patched for the "depends:" bug introduced after the "Provides:" fix. This fix #1393
68         * Added a little fix for an off-by-one error in checking for depends.
69
70 2005-07-29 pigi ( pigi@frumar.it)
71         * Applied a patch for the GNU tar compatibility . Now ipkg can handle filenames > 100 char.
72
73 2005-07-29 pigi ( pigi@frumar.it)
74         * Version update to 0.99.153
75         * Fixed a problem with Provides:. Now ipkg is able to install foo when foo is provided by bar, and is able to determine the best candidate based on 
76         * package name. This also fix #1328
77
78 2005-07-06 pigi ( pigi@frumar.it)
79         * Version update to 0.99.152
80         * Fixed a length problem for strncpy after "Downgrading" option added. This fix bug #1373. Thanks to steven.scholz@imc-berlin.de for signaling
81
82 2005-06-16 pigi ( pigi@frumar.it)
83         * Version update to 0.99.151
84         * Fixed a missing check for null pointers . This fix bug #1358
85
86 2005-06-05 pigi ( pigi@frumar.it)
87         * Version update to 0.99.150
88         * Added the -force-downgrade option to allow the downgrade of a package
89
90 2005-05-11 pigi ( pigi@frumar.it)
91         * Version update to 0.99.149
92         * Added the possibility to choice the ipkglibdir from configure ( --with-libipkgdir )
93
94 2005-04-10 pigi ( pigi@frumar.it)
95         * Version update to 0.99.148
96
97 2005-04-09 pigi ( pigi@frumar.it)
98         * Found a bug in output from error_list. Now every error is printed, also if the functions don't return an error.
99         * Added a patch to Makefile from Robert Schwebel <r.schwebel@pengutronix.de>, cleaning things  a bit. Thanks to Schwebel
100
101 2005-03-30 pigi ( pigi@frumar.it)
102         * Version update to 0.99.147
103         * Found a bug in ipkg_install when freeing a cursor 
104
105 2005-03-28 pigi ( pigi@frumar.it)
106         * Version update to 0.99.146
107         * Modified the ipkg_error messaging to collect all the messages at the end of the program
108
109 2005-03-26 pigi ( pigi@frumar.it)
110         * Little bug in message when "depends broken" 
111
112 2005-03-14 pigi ( pigi@frumar.it)
113         * Version update to 0.99.145
114         * Found a bug in ipkg remove when a package was depending in itself and ipkg where asked to "-recursive"
115           This fix bug # 1301
116         * A very little beautify in args.c
117
118 2005-03-07 pigi ( pigi@frumar.it)
119         * Added the check for md5 in resolv_conf_file. Now ipkg ask for confirmation only it the files differ
120
121 2005-02-22 pigi ( pigi@frumar.it)
122         * Version update to 0.99.144
123         * A little fix suggested by drw in ipkg_conf.c
124         * Changed the ipkg.h to be build in automake for oe mechanism . This will enhance the building phase 
125           by honouring the lib hierarchy choose by users
126         * Changes in automake to honour the new building mechanism
127
128 2005-02-20 pigi ( pigi@frumar.it)
129         * Version update to 0.99.143
130         * libipkg.h: reverting the previous modify
131         * ipkg_conf.c: fixing a probable bug in list_dir that fix problems with opie-packagemanager ( tanks to drw for signaling)
132
133 2005-02-20 pigi ( pigi@frumar.it)
134         * libipkg.h: added some define to fix the broken external interface after 0.99.139 and lists_dir
135
136 2005-02-17 pigi ( pigi@frumar.it)
137         * pkg_depends.c: applied patch from rjt@cambridgebroadband.com to remove some c99ism 
138
139 2005-02-06 pigi ( pigi@frumar.it)
140         * Version update to 0.99.142
141         * Fixed the definition of full_write and full_read as per bug #1280
142
143 2005-02-06 pigi ( pigi@frumar.it)
144         * Version update to 0.99.141
145         * Added space in ipkg_message to give more readible messages
146         * Corrected a problem when creating the directories in pkg_dest_init
147
148 2005-02-05 pigi ( pigi@frumar.it)
149         * Version update to 0.99.140
150         * Fixed the bug in ipkg_conf for a wrong pointer.
151
152 2005-02-05 pigi ( pigi@frumar.it)
153         * Version update to 0.99.139
154         * Fixed the "replaces" problem  reported by pb_. Now ipkg is able to resolve a "replace/conflict" reference
155         * Added the possibility to keep the lists file in a different location. Fullfill enh #1276
156
157 2005-02-02 pigi ( pigi@frumar.it)
158         * Fixed the problem for SW_DEINSTALL in remove. Fix #1274
159         * Fixed the problem issued from florian. This also fix the bug #520 HardLink are now supported
160
161 2005-01-18 pigi ( pigi@frumar.it)
162         * Version update to 0.99.138
163         * libbb.h: patch for the uclib 
164
165 2005-01-14 pigi ( pigi@frumar.it)
166         * ipkg_install.c: applied patch from rjt@cambridgebroadband.com to remove some c99ism 
167
168 2005-01-14 jamey ( jamey@handhelds.org )
169         * pkg_hash.c: applied patch from Jean Tourrilhes to allow default
170           arch to be different than host arch
171         
172 2005-01-10 pigi ( pigi@frumar.it)
173         * Version update to 0.99.137
174         * fixed a little, but annoying bug when writing the status file.
175
176 2005-01-10 pigi ( pigi@frumar.it)
177         * Version update to 0.99.136
178         * Lot of memory leak fixes from Benjamin Pineau <ben@zouh.org>
179         * Fix for the Provides, that weren't able to "protect" their dependants while removing. 
180           Now the remove should be safer.
181         * removed the replace.h stuff from automake .ac/.in files. This should align to oe
182
183 2005-01-06 pigi ( pigi@frumar.it)
184         * Version update to 0.99.135 
185         * Various fix for dependencies in control files
186
187 2005-01-06 pigi ( pigi@frumar.it)
188         * Version update to 0.99.134-1 for fixing a problem with cvs tag on previous version
189
190 2005-01-06 pigi ( pigi@frumar.it)
191         * Version update to 0.99.134
192         * Added a new option for listing only the installed packages. Asked by pb_ but really important
193         * Little modification to autoconfigure.sh 
194         * removed fileutils dependencies that has disappeared from 0.8 in control-cl.in  control-unstripped.in libipkg-control.in  
195
196 2004-11-18 pigi ( pigi@frumar.it)
197         * Version update to 0.99.133
198         * Fix for preserve date and time when extracting a package. Thanks to <trevor.pering@intel.com>
199
200 2004-10-07 pigi ( pigi@frumar.it)
201         * Version update to 0.99.132
202         * Little fix on available blocks calculation. Thanks to seved.torstendahl@netinsight.se for founding it.
203         * this fix #1259
204
205 2004-09-20 pigi ( pigi@frumar.it)
206         * Version update to 0.99.131
207         * Added a lot of debug info in DEBUG2
208         * Added a check in ipkg_install.c to permit replacing of existing file when installing a package
209         * from a file ( not an upgrade ) when ipkg find a file clash but the owner of the package is the 
210         * same. That should fix the #1246
211
212 2004-09-02 pigi ( pigi@frumar.it)
213         * Version update to 0.99.130
214         * Added patch from pb_ for bug #1251. A lot of thanks to Phil
215
216 2004-09-02 pigi ( pigi@frumar.it)
217         * Some changes on output messages to be a little bit clear
218
219 2004-09-01 pigi ( pigi@frumar.it)
220         * Applied patches from pb_ (bug #1244)
221         * Added EXTRADIST = ipkg.c and others in Makefile.am as in ipkg.0.99.xxx.tar.gz the ipkg.c was missing. ( 
222           reported by odvard12@yahoo.com )
223         * Version update to 0.99.129
224
225 2004-08-19 Florian <florian.boor@kernelconcepts.de>
226         * Version update to 0.99.128
227         * libipkg.c, ipkg_cmd.c: Fixed return value zero if installation
228           failed. Changed text because failing to install a package
229           is not necessarily a bug :-)
230         * Makefile.in, libbb/Makefile.in: Removed autogenerated files.
231
232 2004-08-18 Florian <florian.boor@kernelconcepts.de>
233         * Two more fixed memory leaks.  Contributed by Nils Faerber.
234
235 2004-08-17 Florian <florian.boor@kernelconcepts.de>
236         * Fix to avoid major memory leak due to multiple initialising
237           of hash tables. Contributed by Nils Faerber.
238
239 2004-07-20  pigi ( pigi@frumar.it)
240         * configure.ac: updated to 0.99.127
241         * Applied patch from tmbinc@elitedvb.net (Felix Domke)  to fix some problems when in use on platforms
242         * different from arm. Fixes big #1234
243 2004-06-15  pigi ( pigi@frumar.it)
244         * configure.ac: updated to 0.99.126
245 2004-06-12 florian <florian.boor@kernelconcepts.de>
246         * Makefile.am: Added some missing headers to the list.
247         * libipkg.pc.in: Fixed hardcoded prefix... tsts
248 2004-06-12 pigi ( pigi@frumar.it)
249         * pb_ patch for setuid bit in unarchive
250 2004-06-05 pigi ( pigi@frumar.it)
251         * configure.ac: updated to 0.99.125
252         * modified almost all reference to xregexec in fnmatch ( as adviced by zap).
253           This should fix every problem with strange character in package name when using regex in functions
254           ( as per info_status_cmd or remove ). #1220
255 2004-05-21 pigi ( pigi@frumar.it)
256         * configure.ac: updated to 0.99.124
257         * import the kergoth patch for Makefile.am to fix the linking problems on arch <> arm
258         * added the ipkg remove <regexp> feature.
259         * fixed the ipkg usage message, 'cause in "ifdef LIBIPKG" we don't have the ipkg info field version.
260         * added the message "No package removed" if no package has been removed. This to avoid misunderstanding
261           with the successfully done message at the exit of execution.
262 2004-05-16 pigi ( pigi@frumar.it)
263         * configure.ac: updated to 0.99.122-3
264         * Anothere little fix. Added the version number in control.in. This should fix definitelly the problem with dependencies
265 2004-05-16 pigi ( pigi@frumar.it)
266         * configure.ac: updated to 0.99.122-2
267         * New subrelease released to correct the problem for dependencies (libipkg >= 0.99.122-1) in ipkg control file
268 2004-05-14 pigi ( pigi@frumar.it)
269         * configure.ac: updated to 0.99.122-1
270         * needed for a recompilation with the libtool updated. This could fix the #1209 created by my old libtool version
271         * cleaned the cvs dir by removing the really unneeded busybox directory
272 2004-05-10 pigi ( pigi@frumar.it)
273         * configure.ac: updated to 0.99.122
274         * pb_, cworth and I discussed a bit on ipkg output to users. We agreed on removing some confusing
275         * messages, moving them to a debug level of verbosity.
276         * I do added also some message to user indicating the phase ipkg is in, and a global ending message
277         * informing the user for the status of operation.
278         * This fixes the #1206, and hopefully does not introduce others ;-) 
279 2004-05-03 pigi ( pigi@frumar.it)
280         * configure.ac: updated to 0.99.121
281         * reenoo__ found a problem with depend lines > 1023, and pb fixed it. Thanks to both,
282         * This should fix #1204.
283 2004-04-08 pigi ( pigi@frumar.it)
284         * configure.ac: updated to 0.99.120
285         * pb found another one. The configure cmd now will set the correct values in status file
286         * #1196 fixed
287 2004-04-07 pigi ( pigi@frumar.it)
288         * configure.ac: updated to 0.99.119
289         * pb found another one. Commiting his patch, elegant as usual :) 
290 2004-03-29 jamey ( jamey@handhelds.org)
291         * configure.ac: updated to 0.99.118
292 2004-03-29 pigi ( pigi@frumar.it)
293         * pb_ asked me to have a command to change the status of a package betwenn installed and unpacked.
294           and I did it.
295         * I' ve also included the fix for the empty lists as for bug # 1136 reported and suggested by k.vangelder@chello.nl 
296 2004-03-17 pigi ( pigi@frumar.it)
297         *  Added the implement for Essential in status file. This is needed to avoid the unintentional remove
298            of essential packages. In effect the command "ipkg remove ipkg" worked without problems, but then
299            it was difficult to reinstall. This fix the bug # 867
300 2004-03-15 jamey <jamey@handhelds.org>
301         * configure.ac: updated to 0.99.117
302 2004-03-10 pigi ( pigi@frumar.it)
303         *  Added the check for *alloc in every source. I needed to modify some function ehre and there
304            to check the return values from function allocating memory, but hopefully it should be all right now.
305         *  Added the check for at least a package for remove ( it was removing everithing if no pkgname followed the
306            remove option.
307 2004-03-09 pigi ( pigi@frumar.it)
308         *  Added a flag to disble the checking of directories when the command does not need to 
309            read anything from there. Fix bug #1096
310 2004-03-09 pigi ( pigi@frumar.it)
311         *  Changes to correct the behaviour of verbosity. Now the "0" works, and the "1" is again 
312            the default.
313            This fixes the bug #1099
314 2004-03-07 pigi ( pigi@frumar.it)
315         *  Minimal changes for a clean compile in libipkg.c ( so we can close the bug# 1119 )
316 2004-03-03 pigi ( pigi@frumar.it)
317         * Missing \n in Size and Source Fields.
318 2004-03-03 pigi ( pigi@frumar.it)
319         * Florian noticed a free missiing in ipkg_cmd.c ( should sleep more at night ) 
320           it was in an (almost) unsed part of the code ( old code ) but, just in case...
321         * Changed a comment in pkg.c ( it was in italian ) and added a bit of explain in 
322           pkg_formatted_field
323 2004-03-02 jamey <jamey@handhelds.org>
324         * configure.ac: updated to 0.99.116
325         * pkg.h: from Pigi: pkg_formatted_info and pkg_formatted_field now allocate the strings they fill in
326         * pkg.c, ipkg_cmd.c: from Pigi: updated to the new pkg.h interface 
327 2004-02-29 florian <florian.boor@kernelconcepts.de>
328         pkg.c: Pigi and me poked around a little bit and located the cause of
329                latest segfault. strncat is not used correctly in pkg_formatted_info
330                    and pkg_formatted_field. I added a fix to the only section that
331                    triggered the bug and increased a buffer size.
332                    BUT: There are many similar bugs remaining!
333 2004-02-24 jamey <jamey@handhelds.org>
334         * configure.ac: updated to 0.99.115
335         * ipkg_cmd.c: segv caught by pigi: buffer freed in loop but used on next iterations.  bug squashed.
336         * user.c: realloc question buffer if it is too short so that messages are not truncated.
337 2004-02-20 jamey <jamey@handhelds.org>
338         * configure.ac: updated to 0.99.114
339         * libbb/unarchive.c: patch from pigi@frumar.it: fix erroneous invalid header checksum message
340 2004-02-19 jamey <jamey.hicks@hp.com>
341         * configure.ac: update to 0.99.113
342         * libipkg.c: patch from drw to fix ipkg list
343 2004-02-19 florian <florian.boor@kernelconcepts.de>
344         * Some minor changes to make code compile on more compilers.
345 2004-02-14 jamey <jamey.hicks@hp.com>
346         * configure.ac: updated to 0.99.112
347         * libbb/unarchive.c: copied in oldgnu tar compatibility mode from latest busybox.
348 2004-02-13 jamey <jamey.hicks@hp.com>
349         * configure.ac: updated to 0.99.111
350         * pkg.c: wim delvaux's patch for status file in other destinations
351 2004-01-23 florian <florian.boor@kernelconcepts.de>
352         * Applied Dan's patch that adds a package download command to
353           libipkg.      
354 2004-01-20 florian <florian.boor@kernelconcepts.de>
355         * Applied Dan's changes to work incuded from a C++ app. 
356 2004-01-15 jamey
357         * configure.ac: updated to 0.99.110
358         * libipkg.c: added default callbacks for output
359         * ipkg_conf.c: default verbosity to 1
360 2004-01-12 jamey
361         * configure.ac: updated to 0.99.109
362         * ipkg_install.c: fix potential segv sprintf_alloc with fewer args than required by format string (yay valgrind)
363         * sprintf_alloc.c: add null pointer checking
364 2004-01-12 jamey
365         * configure.ac: updated to 0.99.108
366         * Makefile.am, familiar/: use ipkg-cl as default executable, install as ipkg via update-alternatives
367 2004-01-12 jamey
368         * configure.ac: updated to 0.99.107
369         * void_list.c: check for null data
370         * pkg.c: check for null pointers
371 2003-12-23 florian <florian.boor@kernelconcepts.de>
372         * Added void* parameter to some callbacks. 
373
374 2003-12-02 florian <florian.boor@kernelconcepts.de>
375         * Added familiar/ipkg-cl.control.in, which is a prototype of
376           control file for ipkg-cl package creation.
377 2003-12-01 florian <florian.boor@kernelconcepts.de>
378         * added ipkg command line tool using libipkg, binary is known as ipkg-cl
379         * ipkg-frontend.c: source for this tool
380         * libbb/Makefile.am: Removed changing of CFLAGS, this avoids a nasty warning.
381         * Makefile.am: Same fix and addition of new target creating ipkg-cl.
382         * removed ltmain.sh, libtool which seem to be created by autostuff
383         
384 2003-12-01 jamey
385         * configure.ac: updated to 0.99.106
386         * pkg.c, ipkg_conf.c: check for null pointers (null pkg->dest in particular)
387 2003-11-11 jamey
388         * configure.ac: updated to 0.99.105
389         * ipkg_conf.c: added verbosity option to conf file
390 2003-11-11 jamey
391         * configure.ac: updated to 0.99.104
392         * ipkg_install.c: removed spurious calls to fflush, remove obsolete maintainer scripts on upgrade
393         * ipkg_remove.c: remove unused function: remove_conffiles
394 2003-11-11 jamey
395         * configure.ac: updated to 0.99.103
396         * libipkg.pc.in, configure.ac: pkgconfig for libipkg
397         * ipkg_conf.c, pkg.c: check for error on fopen
398         * pkg_hash.c: reduced verbosity
399         * libtool: arm-linux-strip does not support --strip-debug on .a files
400 2003-11-10 jamey
401         * configure.ac: updated to 0.99.102
402         * ipkg_cmd.c: compute architecture_priority of packages in database before doing download command
403         * conffile.c file_util.[ch] ipkg_install.c: better separation of installation root filenames and actual filenames
404         * pkg.h: added prototype for pkg_free_installed_files
405 2003-11-10 jamey
406         * configure.ac: updated to 0.99.101
407         * libipkg changes
408         * generate .list files from file_hash
409 2003-11-05 jamey
410         * configure.ac: updated to 0.99.100
411         * ipkg_install.c: fix segv: was passing conflictee->parent instead of conflictee
412 2003-10-08 jamey
413         * configure.ac: updated to 0.99.99
414         * ipkg_install.c: use the root_dir after stripping off offline_root prefix
415 2003-10-08 jamey
416         * configure.ac: updated to 0.99.98
417         * pkg_hash.c: fixed segv if replaced_by->len was 0
418         * ipkg_cmd.c: ipkg remove with no arguments will remove non-user leaf packages
419         * ipkg_remove.[ch]: export pkg_has_installed_dependents
420         * pkg_depends.c: add pkg->parent to pkg->provides
421         * ipkg_install.c: strip offline_root prefix off of conffile name so comparing the md5sums should work
422         * pkg.c: missing comma added
423 2003-10-01 jamey
424         * configure.ac: updated to 0.99.97
425         * ipkg_cmd.c: added whatdependsrec command to show what recursively depends on a package or packages
426         * pkg_vec.[ch]: added pkg_vec_clear_marks and pkg_vec_mark_if_matches
427         * args.c: usage string updated
428 2003-09-28 jamey
429         * configure.ac: updated to 0.99.96
430         * ipkg_conf.c: adjusted verbosity
431         * ipkg_install.c: only remove replacee if it is also conflicted, per debian standard
432         * pkg_depends.c: only add to replaced_by if it also conflicts, per debian standard
433                 added pkg_provides, pkg_replaces, pkg_conflicts
434         * pkg_hash.c: adjusted verbosity                  
435 2003-09-28 jamey
436         * configure.ac: updated to 0.99.95
437         * args.[ch], ipkg_cmd.c, ipkg_conf.[ch], ipkg_download.c, ipkg_install.c, ipkg_remove.c, pkg.[ch]:
438            Implemented -test mode for ipkg.
439 2003-09-28 jamey
440         * configure.ac: updated to 0.99.94
441         * pkg_hash.c: fix pkg_hash_fetch_best_installation_candidate so
442         that one can install another provider of an installed package name
443 2003-09-26 jamey
444         * configure.ac: updated to 0.99.93
445         * ipkg_install.c: corrected message level depending on conf->force_depend
446         * ipkg_conf.c: check for duplicate src entries
447         * nv_pair_list.[ch]: added nv_pair_list_find
448 2003-09-16 jamey
449         * configure.ac: updated to 0.99.92
450         * pkg_depends.c: some paranoia to try to avoid segv
451         * void_list.c: silenced message about elt not being found
452 2003-09-11 jamey
453         * configure.ac: updated to 0.99.91
454         * pkg_depends.c: added pkg_depend_str to fetch right kind of dependence string based on dependence index
455                          Use this in add_unresolved_dep.
456         * pkg_depends.h: declaration of pkg_depend_str
457 2003-08-22 11:02  jamey
458         * configure.ac: updated to 0.99.90
459         * str_list.[ch]: added str_list_alloc(), added str_list_remove_elt()
460         * void_list.[ch]: added void_list_remove_elt()
461         * pkg_parse.c: added parsing of Source field
462         * pkg_hash.c: updated old_pkg->installed_files list when setting file owner if it was previously owned by old_pkg
463         * pkg_extract.c: use installed_file list if it exists in pkg_extract_data_file_names_to_file
464         * pkg.[ch]: added pkg_write_filelist() and pkg_write_changed_filelists()
465         * ipkg_remove.c: do not call ipkg_conf_write_status_files from ipkg_remove
466         * ipkg_install.c: use ipkg_write_filelist()
467         * ipgk_cmd.c: after writing status file, write any changed pkg filelists
468 2003-08-20 11:02  jamey
469         * configure.ac: updated to 0.99.89
470         * pkg.c: print Source field in pkg_print_info
471 2003-08-06 18:34  jamey
472         * configure.ac: updated to 0.99.88
473         * pkg_hash: bug 942, declare internal induction variable
474         * ipkg_cmd.c, ipkg_conf.[ch], pkg_src.[ch], pkg_src_list.[ch]: bug 604, support Packages.gz
475 2003-08-06 18:34  jamey
476         * configure.ac: updated to 0.99.87
477         * pkg.c: remove extra printing of Suggests field
478         * pkg_vec.c: merge Status field only from current database, rest of Package info from Packages files
479         * pkg_depends.c: print info about recommendations as Notice instead of DEBUG
480 2003-07-11 18:34  jamey
481         * configure.ac: updated to 0.99.86
482         * ipkg.h, ipkg_cmd.c, ipkg_configure.c, ipkg_install.c, ipkg_remove.c: only write status file if something changed.
483 2003-07-11 18:34  jamey
484         * configure.ac: updated to 0.99.85
485         * pkg.c, pkg.h, pkg_depends.c, pkg_depends.h, pkg_parse.c: bug 885:
486           add recommends and suggests
487         * args.c, ipkg_cmd.c, ipkg_cmd.h: add ipkg configure command
488         * pkg_vec.c: apply patch for bug 883
489 2003-05-11 Jamey Hicks <jamey@handhelds.org>
490         * configure.ac: updated to 0.99.84
491         * pkg.c, ipkg-compare-versions.c: fix problem where . and - were not treated as separators in version comparison
492 2003-04-11 Jamey Hicks <jamey@handhelds.org>
493         * configure.ac: updated to 0.99.83
494         * ipkg_install.c: use pkg->installed_size instead of pkg->size
495         * ipkg_cmd.c, ipkg_conf.c: put lists under offline_root if specified
496 2003-04-11 Jamey Hicks <jamey@handhelds.org>
497         * configure.ac: updated to 0.99.82
498         * pkg_hash.c: ignore Replaces directive when a package replaces itself
499 2003-04-10 Jamey Hicks <jamey@handhelds.org>
500         * configure.ac: updated to 0.99.81
501         * pkg.c: clear state_want and state_flags for any uninstallable package
502 2003-04-10 Jamey Hicks <jamey@handhelds.org>
503         * configure.ac: updated to 0.99.80
504         * pkg.c: pkg_merge was intermingling depends and predepends from
505                 old and new pkg, and was ignoring conflicts and replaces 
506         * pkg_depends.c: cleaned up interface to parseDepends
507 2003-04-07 Jamey Hicks <jamey@handhelds.org>
508         * configure.ac: updated to 0.99.79
509         * pkg_hash.c: default architecture to host_cpu if unspecified
510         * ipkg_install.c, ipkg_download.c: refuse to install package with no architecture
511 2003-04-07 Jamey Hicks <jamey@handhelds.org>
512         * configure.ac: updated to 0.99.78
513         * args.[ch], ipkg_conf.[ch]: added query_all (-A)
514         * ipkg_cmd.c: finished implementing whatdepends, whatrequires, whatprovides, and whatconflicts
515 2003-04-03 Jamey Hicks <jamey@handhelds.org>
516         * configure.ac: updated to 0.99.77
517         * ipkg_cmd.c: implemented whatdepends
518         * ipkg_conf.c: fixed typo
519 2003-04-03 Jamey Hicks <jamey@handhelds.org>
520         * configure.ac: updated to 0.99.76
521         * args.c: was zeroing args structure too late
522         * ipkg_conf.c: test for existence of /etc/ipkg.conf before trying to load it
523 2003-04-03 Jamey Hicks <jamey@handhelds.org>
524         * configure.ac: updated to 0.99.75
525         * familiar/rules: update postinst only to generate ipaqarch.conf if none exists
526         * args.[ch]: added -t or --tmp-dir option to specify tmp-dir
527 2003-04-03 Jamey Hicks <jamey@handhelds.org>
528         * configure.ac: updated to 0.99.74
529         * ipkg_cmd.c: avoid segv by only calling xregfree after xregcomp was called
530         * pkg_hash.c: prefer pkgs that are marked hold/prefer, next
531         abstract pkgs that are installed, next latest pkg if one provider,
532         give up if multiple providers are acceptable -- let user decide
533 2003-04-03 Jamey Hicks <jamey@handhelds.org>
534         * configure.ac: updated to 0.99.73
535         * pkg_hash.c: remove latest_installed heuristic because it prevents upgrades.
536 2003-04-03 Jamey Hicks <jamey@handhelds.org>
537         * configure.ac: updated to 0.99.72
538         * pkg_hash.c: check for unresolved packages (apkg->provided_by->len == 0), better messages.
539 2003-04-03 Jamey Hicks <jamey@handhelds.org>
540         * configure.ac: updated to 0.99.71
541         * pkg.c: Added pkg_name_version_and_architecture_compare and abstract_pkg_name_compare
542         * ipkg_cmd.c: allow multiple fields for info and status command.
543         Allow posix regexp's for package name in status, info, and list
544         commands.
545         * pkg_remove.c: fixed type error
546         * xregex.h: added xregfree
547         * pkg_hash.c: Provides functionality seems to be working again
548 2003-04-02 Jamey Hicks <jamey@handhelds.org>
549         * configure.ac: updated to 0.99.70
550         * args.c, args.h, ipkg_conf.c, ipkg_conf.h, ipkg_install.c: implemented nodeps option
551         * pkg_vec.[ch]: added [abstract_]pkg_vec_{contains,sort}
552         * pkg.c: print which script not being run in offline root mode
553 2003-04-02 Jamey Hicks <jamey@handhelds.org>
554         * configure.ac: updated to 0.99.69
555         * pkg_vec.c: compare architecture to architecture, not to name
556         * ipkg_utils.c: do not exit, instead return NULL
557         * ipkg_install.c: do not exit, instead return -EINVAL
558         * ipkg_download.c: make sure to set pkg dest
559         * ipkg_cmd.c: notice instead of info for writing status file message
560 2003-04-02 Jamey Hicks <jamey@handhelds.org>
561         * configure.ac: updated to 0.99.68
562         * pkg_vec.c, pkg_depends.c: pkg_t's are the same if they have same name, version, and architecture 
563 2003-04-01 Jamey Hicks <jamey@handhelds.org>
564         * configure.ac: updated to 0.99.67
565         * ipkg_install.c: one last check for supported architecture in ipkg_install_pkg
566         * pkg.c: make pkg_print_field less fragile by using strcasecmp,
567         added support to print Conflicts
568         * pkg_hash.c: if multiple candidates with right architecture
569         satisfy constraint_fcn, return latest version
570         * ipkg_cmd.c: when verbosity > 1, show if conffiles have been
571         modified in info command
572         * hash_table.c, hash_table.h: count number of elements in hash
573         tables
574         * file_util.c: explicitly use unsigned char
575         * conffile.c: more debugging info
576 2003-04-01 Jamey Hicks <jamey@handhelds.org>
577         * configure.ac: updated to 0.99.66
578         * pkg_depends.c: fixed what seemed to be glaring deficiency in version_constraints_satisfied
579         * pkg_hash.c: more debug info
580         * pkg_parse.c, pkg.c: added Installed-Time as field saved to status file
581 2003-04-01 Jamey Hicks <jamey@handhelds.org>
582         * configure.ac: updated to 0.99.65
583         * ipkg_cmd.c, ipkg_conf.c: applied ipkg dest installation patch from Ben Lau <benlau@linux.org.hk>
584         * ipkg_cmd.c: fixed probably segv when using offline_root, fixed problem installing from local file.
585         * ipkg_conf.c: 
586           - Do not add default architectures if ipkg configuration files include architecture definitions.
587           - Look for /etc/ipkg/*.conf under offline root if using offline root mode
588         * void_list.h: added void_list_empty()
589         * nv_pair_list.h: added nv_pair_list_empty()
590 2003-03-28 14:30  Jamey Hicks <jamey@handhelds.org> 
591         * configure.ac: 0.99.64
592         * pkg_hash.c: change fprintf stderr to ipkg_message
593         * pkg.h: added SF_MARKED and abstract_pkg_t state_flag field
594         * pkg.c: include Provides, Replaces, and Architecture in status
595         file
596         * ipkg_remove.c: make sure to print each dependent package only
597         once
598         * ipkg_message.h: added IPKG_DEBUG2
599         * ipkg_install.c: modify message and level depending on
600         force_depends
601         * ipkg_cmd.c: call pkg_info_preinstall_check before any
602         install/upgrade/remove action
603         * ChangeLog, autoconfigure.sh, includes.h,
604         ipkg_conf.c, ipkg_remove.c, pkg.c, pkg.h, update-alternatives,
605         xregex.h: applied kergoth's update-alternatives patch
606         * ipkg_cmd.c, ipkg_remove.c: remove maybe_broken_removal... which
607         was an expensive no-op; before removing package, make sure that
608         nothing is installed that depends on the apkgs **provided** by a
609         package
610         * pkg.h: mark for future cleanup
611         * ChangeLog: 0.99.62, adds architecture priority, better handling
612         of file obsolescence and package replacements in progress
613 2003-03-27 18:26  jamey
614         * autoconfigure.sh: accidentally committed /usr/local/bin calls
615         * ipkg_conf.c: needed a strdup, set default verbosity back to 0
616         * familiar/postinst: default architecture priorities
617         * Makefile.in, autoconfigure.sh, ipkg_cmd.c, ipkg_conf.c, pkg.c:
618         both name and value in nv_pair_list must be actual strings
619         * pkg_hash.c: do not try to invoke NULL constraint_fcn
620         * ipkg_install.c: added file_hash_{set,get}_file_owner, created
621         check_downgrade
622         * ipkg_conf.c, ipkg_conf.h, ipkg_remove.c, pkg.c, pkg_hash.c,
623         pkg_hash.h: added file_hash_{set,get}_file_owner
624         * hash_table.c: check for key already being present in
625         hash_table_insert
626         * configure.ac: update to 0.99.63
627         * ipkg_hash_test.c: update due to new prototypes
628         * ipkg_conf.c: missed a conversion from str_list to nv_pair_list
629         * ipkg_install.c: minor tweaks
630         * pkg.c, pkg.h: added pkg_info_preinstall_check to update
631         pkg->arch_priority
632         * pkg_depends.c, pkg_depends.h: use constrained
633         pkg_hash_fetch_best_installation_candidate in
634         pkg_hash_fetch_unsatisfied_dependencies
635         * pkg_hash.c, pkg_hash.h, ipkg_cmd.c, ipkg_upgrade.c: split
636         pkg_hash_fetch_best_installation_candidate into a by name and a
637         constrained version
638         * ipkg_install.c: block SIGINT while doing core of package
639         installation (single package)
640         * ipkg_conf.c, ipkg_conf.h: support for architecture priority
641         * pkg_depends.c: cleanup, reindent
642         * pkg.c, pkg.h: support for architecture_priority
643         * ipkg_cmd.c: installed SIGINT handler when upgrading or removing,
644         support for architecture_priority
645         * pkg_hash.c: added support for architecture priority, reindented
646         * pkg_vec.c: minor cleanup
647 2003-03-24  Jamey Hicks <jamey@handhelds.org>
648         * configure.ac: updated to 0.99.61
649         * familiar/postinst: mkdir -p /etc/ipkg
650 2003-03-24  Jamey Hicks <jamey@handhelds.org>
651         * configure.ac: updated to 0.99.61
652         * ipkg_conf.c: read configuration from all *.conf files in /etc/ipkg/
653         * familiar/postinst: create /etc/ipkg/*.conf according to platform ipkg is installed on
654 2003-03-20  Jamey Hicks <jamey@handhelds.org>
655         * configure.ac: updated to 0.99.60
656         * various: added support for package architectures
657         * configure.ac: do not test for malloc
658 2003-03-17  Aman Gupta <ipkg@themastermind1.net>
659         * configure.ac: updated to 0.99.59
660         * args.c: show all verbosity levels in usage info
661         * args.h: changed default verbosity level to 1
662         * ipkg_cmd.c: ipkg_multiple_files_scan() was useless, switch to using 
663         ipkg_prepare_url_for_install()
664         * ipkg_install.c: fix --force-reinstall
665         * ipkg_remove.c: stop removing of modified conffiles
666 2003-03-04  Jamey Hicks <jamey@handhelds.org>
667         * configure.ac: updated to 0.99.56
668         * ipkg_message.c: show error messages by default
669         * ipkg_message.h: protect against multiple inclusion
670         * conffile.[ch]: switch to ipkg_message, added conf argument to conffile_has_been_modified
671         * ipkg.h: move EXTENSION macros here
672         * pkg_depends.c: minor cleanup
673         * pkg.h: added prefer and obsolete flags
674         * pkg.c: parse and unparse SF_PREFER and SF_OBSOLETE
675         * ipkg_install.[ch]: 
676           - added {pkg,name}_mark_dependencies_for_installation, 
677           - added conf argument to conffile_has_been_modified 
678           - missing ifdef IPKG_DEBUG_NO_TMP_CLEANUP
679         * ipkg_remove.c: added conf argument to conffile_has_been_modified
680         * ipkg_download.c: added ipkg_prepare_for_install
681 2003-03-01  Jamey Hicks <jamey@handhelds.org>
682         * configure.ac: updated to 0.99.55
683         * ipkg.h: wrap #if 0 around definition of of IPKG_DEBUG_NO_TMP_CLEANUP
684 2003-03-01  Jamey Hicks <jamey@handhelds.org>
685         * configure.ac: updated to 0.99.54
686         * ipkg_install.c: make old package SW_DEINSTALL during ipkg installation
687         * ipkg_cmd.[ch]: added some code to install packages marked SW_INSTALL, but have not enabled this code yet.
688 2003-03-01  Jamey Hicks <jamey@handhelds.org>
689         * configure.ac: updated to 0.99.53
690         * pkg_depends.c: let SW_INSTALL satisfy dependences (instead of SS_INSTALL)
691 2003-03-01  Daniele Nicolodi <daniele@grinta.net>       
692         * ipkg_install.c: indentation fixes and finish switch to message
693         facility
694         * ipkg_cmd.c: indentation fixes, switch to message facility and
695         some code cleanup
696         * ipkg_message.c (ipkg_message): check for a NULL *conf parameter
697         * ipkg_message.h: renamed IPKG_ERR in IPKG_ERROR
698 2003-02-28  Jamey Hicks <jamey@handhelds.org> (patch from Daniele Nicolodi <daniele@grinta.net>)
699         * configure.ac: incremented version to 0.99.5
700         * ipkg_message.[ch]: added message facility
701         * args.[ch]: verbosity control
702         * ipkg_conf.[ch]: verbosity control
703         * ipkg_install.c: switch to using message factility
704 2003-02-28  Jamey Hicks <jamey@handhelds.org>
705         * configure.ac: incremented version to 0.99.51
706         * ipkg_cmd.c: added ipkg_statisfy_all_dependences, called after
707         install/upgrade of packages to handle packages that were split and
708         no longer provide all the resources they used to provide.
709 2003-02-27  Jamey Hicks <jamey@handhelds.org>
710         * configure.ac: incremented version to 0.99.50
711         * ipkg_cmd.c: write out status after doing an upgrade
712 2003-02-27  Jamey Hicks <jamey@handhelds.org> (another patch from pb)
713         * configure.ac: incremented version to 0.99.49
714         * pkg_parse.c, pkg.c: do not treat deb revision specially
715 2003-02-27  Jamey Hicks <jamey@handhelds.org> (another patch from pb)
716         * configure.ac: incremented version number to 0.99.48
717         * args.c: added help for ipkg flags sub-command
718         * ipkg_cmd.c: added ipkg_flag_cmd, do not upgrade package marked hold
719         * ipkg_install.c: do not remove obsolesced files if old_pkg is flagged noprune
720         * ipkg_remove.c: pkg->state_flag is a bitvector now
721         * pkg.c: pkg->state_flag is a bitvector now
722         * pkg.h: pkg->state_flag is a bitvector now
723 2003-02-27  Jamey Hicks <jamey@handhelds.org> (another patch from pb)
724         * configure.ac: incremented version number to 0.99.47
725         * pkg.c: refix "uninstalled package has NULL tmp_unpack_dir"
726         * pkg_hash.c: 
727 2003-02-27  Aman Gupta <oz@themastermind1.net> (another patch from pb_)
728         * configure.ac: incremented version number to 0.99.46
729         * pkg.c: fix "uninstalled package has NULL tmp_unpack_dir"
730 2003-02-24  Jamey Hicks <jamey@handhelds.org> (per patch from Philip Blundell <pb@handhelds.org>)
731         * configure.ac: incremented version to 0.99.45
732         * file_util.c: include space for null in line_size
733         * ipkg_cmd.c: sigint handler while configuring packages
734         * ipkg_install.c: state_status != SS_INSTALLED and != SS_UNPACKED
735         * ipkg_remove.c: missing i++
736         * pkg.c: do not run scripts in offline_root mode
737         * pkg_depends.c: every package provides itself
738         * pkg_hash.c: better handling of packges provided by multiple providers
739 2003-02-24  Jamey Hicks <jamey@handhelds.org>
740         * configure.ac: incremented version number to 0.99.44
741         * args.c: added doc for -force-overwrite
742 2002-11-26  Jamey Hicks <jamey@handhelds.org>
743         * configure.ac: incremented version number to 0.99.43
744         * ipkg_install.c: completely skip the space check when -force_space asserted
745 2002-11-23  Jamey Hicks <jamey@handhelds.org>
746         * configure.ac: incremented version number to 0.99.42
747         * args.c: missed one spot checking for -force_space or -force-space    
748 2002-11-23  Jamey Hicks <jamey@handhelds.org>
749         * configure.ac: incremented version number to 0.99.41
750         * ipkg_install.c: added -force_space option to override out of space check
751 2002-11-23  Aman Gupta  <oz@themastermind1.net>
752         * configure.ac: incremented version number to 0.99.40
753         * ipkg_configure.c: updated to match new text output format
754         * ipkg_install.c: updated to new text output format
755                           fixed problems where ipks installed from file or
756                           http were being installed over newer ipks of the
757                           same name
758         * ipkg_remove.c: updated to new text output format
759                          made ipkg remove do what ipkg purge originally did,
760                          by having it remove conffiles, and status entries for
761                          ipks that are removed. ipkg_purge now calls
762                          ipkg_remove
763 2002-11-22  Jamey Hicks <jamey.hicks@hp.com>
764         * configure.ac: incremented version number to 0.99.39
765         * applied patches from Aman Gupta for better handling of dests
766 2002-11-??  Jamey Hicks <jamey.hicks@hp.com>
767         * configure.ac: incremented version number to 0.99.38
768 2002-11-07  Jamey Hicks <jamey.hicks@hp.com>
769         * configure.ac: incremented version number to 0.99.37
770         * hash_table.[ch]: moved internals of hash_tables out of pkg_hash.c
771         * pkg_hash.c: moved internals of hash_tables out of pkg_hash.c
772 2002-10-29  Jamey Hicks <jamey.hicks@hp.com>
773         * configure.ac: incremented version number to 0.99.37
774         * ipkg_cmd.c: ipkg_upgrade_cmd now installs uninstalled packages
775                       instead of getting a segv 
776 2002-10-29  Jamey Hicks <jamey.hicks@hp.com>
777         * configure.ac: incremented version number to 0.99.36
778         * changed verbose_get to verbose_wget as documented
779 2002-08-08  Jamey Hicks <jamey.hicks@hp.com>
780         * configure.ac: incremented version number to 0.99.34
781         * ipkg_cmd.c: fixed problem stringifying HOST_CPU
782         * Makefile.am: helped fix problem stringifying HOST_CPU
783 2002-08-08  Jamey Hicks <jamey.hicks@hp.com>
784         * configure.ac: incremented version number to 0.99.33
785         * ipkg_cmd.c, args.c: added print-architecture and print-installation-architecture commands
786         * Makefile.am: added defines for HOST_CPU and BUILD_CPU to CFLAGS and package: target
787 2002-08-08  Jamey Hicks <jamey.hicks@hp.com>
788         * configure.ac: incremented version number to 0.99.32
789         * pkg.c: removed chroot breakage 
790 2002-08-07  Jamey Hicks <jamey.hicks@hp.com>
791         * configure.ac: incremented version number to 0.99.31
792         * other: applied multiple providers patch from philip blundell
793         * ipkg_cmd.c: implemented compare_versions cmd
794 2002-07-25  Jamey Hicks <jamey.hicks@hp.com>
795         * configure.ac: incremented version number to 0.99.30
796         * ipkg_conf.c: added offline_root_pre_script_cmd and offline_root_post_script_cmd
797         * pkg.c: execute scripts in chroot'ed environment running
798         pre_script_cmd and post_script_cmd before and after the pkg script. 
799 2002-07-24  Jamey Hicks <jamey.hicks@hp.com>
800         * configure.ac: incremented version number to 0.99.29
801         * pkg.c: fixed a segv when printing Replaces field
802 2002-07-24  Jamey Hicks <jamey.hicks@hp.com>
803         * configure.ac: incremented version number to 0.99.28
804         * ipkg_cmd.c: merged functionality from ipkg_install_cmd into
805         ipkg_upgrade_cmd with an eye towards unifying these two commands. 
806         * ipkg_install.c: installing a package that replaces other
807         packages removes them first.  (Upgrade does not do replacements automatically).
808         * ipkg_remove.c: ipkg_remove_pkg will remove a package with
809         installed dependents if state_flag == SF_REPLACE.
810 2002-07-24  Jamey Hicks <jamey.hicks@hp.com>
811         * configure.ac: incremented version number to 0.99.27
812 2002-07-23  Jamey Hicks <jamey.hicks@hp.com>
813         * configure.ac: incremented version number to 0.99.26
814         * renamed pkg_vec_init/pkg_vec_deinit to pkg_vec_alloc/pkg_vec_free
815         * started implementation of Replaces
816 2002-07-22  Jamey Hicks <jamey.hicks@hp.com>
817         * configure.ac: incremented version number to 0.99.25
818         * many cleanups trying to regain stability
819 2002-07-22  Jamey Hicks <jamey.hicks@hp.com>
820         * configure.ac: incremented version number to 0.99.24
821         * various files: trying to stomp a segv in conflicts checking.  
822 2002-07-17  Jamey Hicks <jamey.hicks@hp.com>
823         * configure.ac: incremented version number to 0.99.23
824         * ipkg_remove.c: do not do recursive removal if force-depends is
825           specified
826         * other-files: other cleanups to reduce code clutter
827 2002-07-16  Jamey Hicks <jamey.hicks@hp.com>
828         * configure.ac: incremented version number to 0.99.22
829         * user.[ch]: moved user interaction procedure here
830         * args.[ch], ipkg_conf.[ch]: added force_removal_of_dependent_packages
831         * pkg.h: added state_status to abstract_pkg_t
832         * ipkg_remove.c: If package has installed dependents, then only
833         remove if force_removal_of_dependent_packages is asserted in
834         ipkg.conf or on command line.  Will add user interaction option later.
835 2002-07-16  Jamey Hicks <jamey.hicks@hp.com>
836         * configure.ac: incremented version number to 0.99.21 after
837         applying dependent removal and conflicts patch.
838         
839 2002-07-14  Jamey Hicks <jamey.hicks@hp.com>
840         
841         * configure.ac: incremented version number to 0.99.20
842         * ipkg_download.c: removed useless -N flag from wget 
843         * update-alternatives: 'head -1' -> 'head -n 1', no sort -k 2 for busybox
844         
845 2002-07-15  Karthikeyan K  <karthik@innvo.com>
846         
847         * ipkg_remove.c (ipkg_remove_dependant_pkgs): removed setting the 
848         dependencies_checked variable in the while loop b4 actually checking
849         the dependencies of that package.
850         * ipkg_cmd.c (ipkg_multiple_files_scan): added check for ".ipk" and
851         ".deb" extension, so that no caching is attempted on  arguments that
852         are not local files
853         * pkg_depends.c (pkg_hash_fetch_conflicts): while returning NULL,
854         casted to (pkg_vec_t *) to compile without warnings
855
856 2002-07-12  Abhaya Shenoy  <abhaya@innvo.com>
857         
858         * pkg_depends.c (pkg_hash_fetch_conflicts): use new abstract_pkg_vec
859         structure in checking provided_by
860
861 2002-07-07  Jamey Hicks <jamey.hicks@hp.com>
862         
863         * configure.ac: incremented version number to 0.99.18
864         * fixed a segv due to type error in provides support
865         
866 2002-07-07  Jamey Hicks <jamey.hicks@hp.com>
867         
868         * configure.ac: incremented version number to 0.99.17
869         * updated provides support so that installed provider is preferred to
870           uninstalled provider
871
872 2002-07-05  Abhaya Shenoy  <abhaya@innvo.com>
873         
874         * pkg_depends.c (pkg_hash_fetch_conflicts): check for conflicts
875         found before returning
876
877 2002-07-04  Abhaya Shenoy  <abhaya@innvo.com>
878         * ipkg_install.c (check_conflicts_for): new function to call
879         pkg_hash_fetch_conflicts and print offending packages
880         (ipkg_install_pkg): added call to check_conflicts_for
881         * pkg.c (pkg_merge): provides from oldpkg should be given
882         priority
883         (pkg_init): init of conflicts, conflicts_count fields
884         * pkg.h (struct pkg): added fields conflicts_str, conflicts,
885         conflicts_count
886         * pkg_depends.c (pkg_hash_fetch_conflicts): new function to check
887         for conflicts
888         (buildConflicts): new function to set up the conflicts in the pkg
889         struct
890         * pkg_depends.h: added new type CONFLICTS to depend_type enum
891         * pkg_hash.c (hash_insert_pkg): added call to buildConflicts
892         * pkg_parse.c (pkg_parse_raw): added parsing of Conflicts
893
894 2002-07-04  Karthikeyan K  <karthik@innvo.com>
895         
896         * ipkg_cmd.c (ipkg_multiple_files_scan): new function to handle installation
897         of already downloaded files
898         (ipkg_install_cmd): added call to ipkg_multiple_files_scan
899         (ipkg_remove_cmd): added call to possible_broken_removal_of_packages
900         * ipkg_install.c (ipkg_install_pkg): added check to remove redundant upgrade
901         when a package to be installed is already installed as a dependancy of
902         another
903         * ipkg_remove.c (possible_broken_removal_of_packages): new fnuction 
904         to check that all packages can be removed, before actually starting to
905         remove them
906         (ipkg_remove_dependant_pkgs): new function to remove dependant packages
907         (ipkg_remove_pkg): added call to ipkg_remove_dependant_pkgs
908         * pkg.c (abstract_pkg_init): initialized dependencies_checked
909         * pkg_hash.c (pkg_hash_dump): added more information to hash dump
910         
911 2002-07-03  Jamey Hicks <jamey.hicks@hp.com>
912         
913         * configure.ac: incremented version number to 0.99.16
914         * ipkg_install.c: defensive programming in case pkg contains no Size: clause
915         
916 2002-07-02  Jamey Hicks <jamey.hicks@hp.com>
917         
918         * configure.ac: incremented version number to 0.99.15
919         * pkg_depends.c: check for provided_by when fetching unsatisfied dependencies
920         
921 2002-07-02  Jamey Hicks <jamey.hicks@hp.com>
922         * configure.ac: incremented version number to 0.99.14
923         * pkg_hash.c: if abstract pkg is provided_by, then return pkg vec
924           of first package that provides it.
925                 
926 2002-06-17  Jamey Hicks <jamey.hicks@hp.com>
927         
928         * configure.ac: incremented version number to 0.99.12
929         * args.h, ipkg_conf.h, ipkg_install.c: Added force_overwrite
930         option.  When this is asserted, ipkg will overwrite files that
931         have no owner or that belong to other packages.
932         * ipkg_conf.c, ipkg_dest.c: Update status file atomically, keeping
933         old copy of status file if cannot update new status file.  Applied
934         patch from Jukka Santala for this fix.
935         
936 2002-03-16  Carl Worth  <cworth@east.isi.edu>
937
938         * configure.ac: Incremented version number to 0.99.9-1.
939
940         * RELEASE_NOTES: Added release notes for 0.99.9-1.
941         
942 2002-03-15  Carl Worth  <cworth@east.isi.edu>
943
944         * configure.ac: Incremented version number to 0.99.9.
945
946         * RELEASE_NOTES: Added release notes for 0.99.9.
947
948         * Makefile.am (bin_PROGRAMS): Install update-alternatives as well.
949
950         * familiar/rules (binary-arch): Mv all of /bin to /usr/bin
951
952         * configure.ac: Incremented version number to 0.99.8.
953
954         * RELEASE_NOTES: Added release notes for 0.99.8.
955
956         * familiar/rules (binary-arch): Fixed to use "make install-strip"
957         rather than "make install" and a strip command.
958
959         * ipkg_cmd.c (ipkg_install_cmd): Moved an error message up from
960         ipkg_install_by_name, (eventually all error messages should come
961         up out of what will become libipkg, (pkg.c, ipkg_install.c, etc.)
962         and into ipkg_cmd.c and friends).
963         (ipkg_upgrade_pkg): Pushed downgrade check down into
964         ipkg_install_by_name so that "ipkg install foo" will do the
965         downgrade check.
966
967         * ipkg.h: Rename some ipkg_error_t error codes to be more
968         consistent.
969
970         * ipkg_install.c (resolve_conffiles): Added missing removal of
971         backed-up modified conffiles, (which led to bizarre, bogus
972         conffile prompting the next time the package was upgraded).
973         (user_prefers_old_conffile): Fixed reversed arguments to diff in
974         interactive conffiles prompting.
975         (ipkg_install_by_name): Fixed "ipkg install foo" to never
976         downgrade foo, (just like "ipkg upgrade foo").
977
978         * familiar/rules: Added installation of
979         /usr/share/doc/ipkg/copyright file. Fixed so that ipkg.conf goes
980         to /etc, not /usr/etc, (but still keep binary in /usr/bin not
981         /bin). Changed name of installed binary from ipkg-unstable to
982         ipkg.
983
984         * familiar/control.in (Package): Changed package name from
985         ipkg-unstable to ipkg.
986
987         * pkg_parse.c (parseVersion): Fixed to ignore whitespace at
988         beginning of version string.
989         (pkg_parse_raw): Fixed segfault if a package record list ends with
990         a package paragraph without a final blank line.
991
992         * ipkg_install.c (check_data_file_clashes): Improved wording of
993         file clash error message.
994
995         * ipkg_download.c (ipkg_download_pkg): Fixed segfault if package
996         has no src, (occurs if package had benn installed locally, then
997         was removed (but not purged), then tried to reinstall eithout it
998         existing in any /usr/lib/ipkg/lists/* file).
999
1000         * etc/ipkg.conf: Added a default ipkg.conf to the distribution.
1001
1002 2002-03-13  Carl Worth  <cworth@east.isi.edu>
1003
1004         * configure.ac: Incremented version to 0.99.7.
1005
1006         * RELEASE_NOTES: Added release notes for 0.99.7.
1007
1008         * pkg.c (pkg_run_script): Added support to export
1009         IPKG_OFFLINE_ROOT. This is really a nasty hack as it means scripts
1010         need to be modified to check IPKG_OFFLINE_ROOT. I'd really prefer
1011         coming up with a good, reliable chroot system. But for now this
1012         will let update-alternatives work, (which already does examine
1013         IPKG_OFFLINE_ROOT).
1014         (pkg_run_script): Added missing brace.
1015
1016         * ipkg_conf.c (ipkg_conf_init): Reworked significantly to properly
1017         set up the pkg_dest_list stuff to account for offline_root.
1018
1019         * args.c (args_parse): Added support for -force_defaults in
1020         addition to -force-defaults, etc. as I kept mistyping these
1021         somehow.
1022
1023 2002-03-12  Carl Worth  <cworth@east.isi.edu>
1024
1025         * configure.ac: Incremented version to 0.99.6.
1026
1027         * RELEASE_NOTES: Added release notes for 0.99.6.
1028
1029         * ipkg_download.c (ipkg_download): Fixed bug in handling of
1030         "file://" URLs.
1031
1032         * ipkg.c (main): Fixed to abort if ipkg_conf_init fails.
1033
1034         * ipkg_conf.c (ipkg_conf_init): Fixed to complain if given an
1035         unknown dest.
1036
1037         * pkg.c (pkg_print_field): Fixed several fields to not print if
1038         NULL, (Architecture. Maintainer, Size, Filename, Description)
1039
1040         * args.c (args_parse): Fixed bug that was always setting
1041         force_removal_of_essentail_packages (yikes!).
1042
1043         * configure.ac: Incremented version to 0.99.5.
1044
1045         * RELEASE_NOTES: Added release notes for 0.99.5.
1046
1047         * familiar/rules (binary-arch): Added strip back in in preparation
1048         of non-unstable release of ipkg.
1049
1050         * str_util.c (str_starts_with): Added convenience function.
1051
1052         * pkg_extract.c (pkg_extract_data_file_names_to_file): Fixed
1053         filenames in *.list files to be compatible with dpkg and the old
1054         ipkg, (no prefix of "." for example).
1055
1056         * pkg.c (pkg_run_script): Added export of PKG_ROOT for the benefit
1057         of maintainer scripts.
1058
1059         * ipkg_remove.c (ipkg_remove_pkg): Complain and abort if user
1060         attempts to remove an essential package, (also inform them of the
1061         force option if they insist).
1062
1063         * ipkg_install.c (ipkg_install_pkg): Added message about whether
1064         installing or upgrading.
1065
1066         * ipkg_download.c (ipkg_download): Added support for "file://"
1067         URLs, (untested).
1068         (ipkg_download): Added support for wget proxy options.
1069
1070         * ipkg_conf.c (ipkg_conf_init): Added proxy support to ipkg_conf,
1071         (http_proxy, ftp_proxy, no_proxy, proxy_user, and proxy_passwd).
1072
1073         * ipkg_cmd.c (ipkg_upgrade_pkg): Moved Upgrading message from
1074         ipkg_upgrade_cmd to ipkg_install_pkg.
1075
1076         * args.c (args_parse): Added new option
1077         -force-removal-of-essential-packages, (which is intentionally
1078         painful to type and not listed in usage. It should not be used
1079         often).
1080
1081 2002-03-11  Carl Worth  <cworth@east.isi.edu>
1082
1083         * configure.ac: Incremented version to 0.99.3.
1084
1085         * RELEASE_NOTES: Added release notes for 0.99.3.
1086
1087         * pkg_depends.c (pkg_hash_fetch_unsatisfied_dependencies): Fixed
1088         to avoid infinite loop in the case of a circular dependency.
1089
1090         * configure.ac: Incremented version to 0.99.2.
1091
1092         * RELEASE_NOTES: Added release notes for 0.99.2.
1093
1094         * familiar/rules: Commented out strip, (temporary until this beast
1095         is deemed more stable).
1096
1097         * xsystem.c (xsystem): Cleaned up error message, (missing
1098         newline).
1099
1100         * pkg.c (pkg_merge): Made pkg_merge a NOP if oldpkg == newpkg.
1101         (pkg_print_field): Don't print MD5sum field if NULL.
1102
1103         * ipkg_install.c (satisfy_dependencies_for): Now returns error
1104         status if one or more of the dependencies fail to install cleanly.
1105         (unpack_pkg_control_files): Fixed to not tack on a bunch of
1106         NULL-valued conffiles entries if non-NULL conffiles already
1107         exist. This fixed the errant prompting for unmodified conffiles
1108         during -force-reinstall.
1109         (unpack_pkg_control_files): Cleaned up conffile filenames to not
1110         have ugly things like "///" inside them.
1111
1112         * ipkg_download.c (ipkg_download): Cleaned up error message.
1113         (ipkg_download): Now uses new file_move function.
1114         (ipkg_download_pkg): Created new function, (from old code in ipkg_install).
1115
1116         * ipkg_cmd.c (ipkg_download_cmd): Added new "ipkg download"
1117         command.
1118
1119         * file_util.c (file_move): Created file_move, (from code that had
1120         been in ipkg_download).
1121         (file_copy): Added error message on failure.
1122
1123         * conffile.c (conffile_has_been_modified): Eliminated crash if
1124         conffile_has_been_modified is called with conffile->value == NULL.
1125
1126 2002-03-09  Carl Worth  <cworth@east.isi.edu>
1127
1128         * RELEASE_NOTES: Added release notes for 0.99.1
1129
1130         * configure.ac: Incremented version to 0.99.1
1131
1132         * pkg_hash.c (pkg_hash_pkg_owning_file): Fixed to actually return
1133         NULL if no package owns a file.
1134
1135         * pkg.c (pkg_get_installed_files): Added installed_files_ref_cnt
1136         to pkg_t to prevent pkg->installed_files from being freed from an
1137         inner loop while still being used by an outer loop, (which was
1138         happening).
1139
1140         * pkg_hash.c (pkg_hash_pkg_owning_file): Moved this function in
1141         from pkg_dest.c. Also, updated it to use pkg_get_installed rather
1142         than mucking around inside /usr/lib/ipkg and globbing for *.list
1143         files.
1144         (pkg_hash_fetch_best_installation_candidate): Fixed to only return
1145         a package that actually could be installed, (ie. it must have
1146         either a local_filename or a non-NULL src from which it could be
1147         downloaded). This prevents a segfault during "ipkg upgrade".
1148
1149         * pkg.c (pkg_get_installed_files): Fixed to not do strange things
1150         to filenames such as: "//./bin/sh"
1151
1152         * ipkg_cmd.c (ipkg_files_cmd): Added pkg_free_installed_files to
1153         conserve a bit of memory.
1154         (ipkg_search_cmd): Updated to use pkg_get_installed rather than
1155         mucking around inside /usr/lib/ipkg and globbing for *.list files.
1156
1157         * pkg.c (pkg_free_installed_files): Added this function to free up
1158         memory from pkg_get_installed_files.
1159
1160         * ipkg_conf.c (ipkg_conf_set_option): Added force_reinstall option
1161         to allow reinstallation of an installed package.
1162
1163         * args.c (args_parse): Added -force-reinstall option to enable
1164         reinstallation of an installed package.
1165
1166         * busybox-0.60.2/ar.c (ar_main): Updated unarchive call to track
1167         prototype change.
1168
1169         * busybox-0.60.2/libbb/unarchive.c (free_header_ar): Added
1170         function to plug memory leak.
1171
1172         * ipkg_install.c (check_data_file_clashes): Fixed crash if no
1173         package can be found owning the pre-existing file.
1174
1175         * pkg_dest.c (pkg_dest_deinit): Fixed bug that pkg_dest was
1176         holding on to freed data rather than making a local copy.
1177
1178         * pkg_depends.c (freeDepends): Fixed crash when pkg->depends is NULL.
1179
1180         * RELEASE_NOTES: Added release notes for 0.98.0 and 0.99.0.
1181
1182         * busybox-0.60.2/libbb/unarchive.c (extract_archive): Fixed
1183         bug. Always alloc memory for full_name so we don't free data that
1184         we shouldn't.
1185         (unarchive): Updated to accept a free_headers function pointer as
1186         a counterpart to get_headers, to eliminate memory leaks.
1187         (free_header_tar): Implemented cleanup function as counterpart to
1188         get_header_tar, to eliminate memory leaks.
1189         (deb_extract): Added several calls to free_header_tar to eliminate
1190         memory leaks.
1191
1192         * str_util.c (str_dup_safe): Added convenience function. Like
1193         strdup, but safe to use on a NULL pointer.
1194
1195         * pkg_vec.c (pkg_vec_insert): Updated to use new pkg.c:pkg_merge
1196         rather than marry_two_packages. With this change the free(pkg) is
1197         now here rather than one level deeper. Eventually, I want to get
1198         this free(pkg) up and out of pkg_hash_insert.
1199
1200         * pkg_parse.c (parseDependsString): Fixed bug walking off the end
1201         of the raw buffer looking for a character that isspace().
1202         (parseConffiles): Fixed big bug parsing Conffiles field where all
1203         conffiles appear on the same line.
1204
1205         * pkg_hash.c (pkg_hash_add_from_file): Plugged memory leak of data
1206         allocated deep down in read_raw_pkgs_from_file.
1207
1208         * pkg_depends.c (pkg_hash_fetch_unsatisfied_dependencies): Plugged
1209         memory leak, (missing pkg_vec_deinit).
1210         (freeDepends): Added this function as the counterpart to
1211         buildDepends. Getting closer to chasing down all memory leaks.
1212         (depend_deinit): Added this function as the counterpart to
1213         depend_init. Getting closer to chasing down all memory leaks.
1214         (parseDepends): plugged memory leak of pkg_name.
1215
1216         * pkg.c (pkg_deinit): Added pkg_deinit to take care of freeing any
1217         memory owned by a pkg_t.
1218         (pkg_init_from_file): This function was 100% broken, (missing
1219         rewind).
1220         (pkg_merge): Moved pkg_merge here from
1221         pkg_vec.c:marry_two_packages. Started work to make it
1222         non-destructive, (not finished).
1223         (pkg_print_info): Added Status and Essential fields to
1224         pkg_print_info.
1225         (pkg_print_status): Fixed pkg_print_status to work whether or not
1226         the package is installed.
1227
1228         * ipkg_utils.c (read_raw_pkgs_from_file): Moved fclose out of
1229         read_raw_pkgs_from_stream and into this function where it belongs,
1230         (since the fopen occurs here).
1231         (trim_alloc): Fixed trim to not free data passed in. Changed the
1232         name to make it obvious that it is allocating memory.
1233
1234         * ipkg_install.c (ipkg_install_from_file): Fixed to be more robust
1235         to the fact that hash_insert_pkg sometimes frees the data that I
1236         pass into it (!).
1237         (satisfy_dependencies_for): Cosmetic change to messages.
1238         (satisfy_dependencies_for): Now sets the dest on to-be-installed
1239         packages, so that the state_want flag can be written to a status
1240         file if necessary.
1241         (satisfy_dependencies_for): Added pkg_vec_deinit to plug memory
1242         leak.
1243         (ipkg_install_pkg): Added "run ipkg update?" hint to error
1244         message.
1245         (backup_modified_conffiles): Made more robust to the case that a
1246         conffile has disappeared.
1247         (install_maintainer_scripts): Fixed bug that was installing
1248         maintainer scripts as libFoopostinst rather than
1249         libFoo.postinst. This was preventing postinst scripts from being
1250         executed.
1251         (cleanup_temporary_files): Added missing closedir to plug a memory
1252         leak.
1253
1254         * ipkg_download.c (ipkg_download): Cosmetic change to error
1255         messages.
1256
1257         * ipkg_conf.c (ipkg_conf_parse_file): Plugged some small memory
1258         leaks.
1259         (ipkg_conf_set_option): Changed configuration options from
1260         force-depends, force-defaults to force_depdends, force_defaults to
1261         be compatible with old ipkg.conf files.
1262         (ipkg_conf_set_option): Fixed bug in parsing options.
1263         (ipkg_conf_write_status_files): Fixed to list all interesting
1264         packages, (any with non-default state), in status file rather than
1265         just installed files.
1266         (ipkg_conf_write_status_files): Plugged a memory leak.
1267
1268         * ipkg_cmd.c (ipkg_status_cmd): Changed "ipkg status" to use
1269         pkg_print_info so it is much more verbose, (includes fields such
1270         as Maintainer, etc. that are merged in from the lists files).
1271
1272         * ipkg.h (IPKG_DEBUG_NO_TMP_CLEANUP): Added compile-time option to
1273         preserve temporary files for easier debugging.
1274
1275         * file_util.c (file_md5sum_alloc): cosmetic changes to variable
1276         names.
1277         
1278         * ipkg_conf.c (ipkg_conf_init): Added support for offline_root
1279         configuration file option.
1280
1281         * args.c (args_init): Added support for -o, -offline,
1282         -offline-root command-line arguments. (Although they don't really
1283         have any effect yet).
1284
1285         * ipkg_install.c (ipkg_install_pkg): Changed back to marking
1286         package as installed before postinst, (the pkg_run_script wanted
1287         to find the scripts in /usr/lib/ipkg/info). Actually, it could
1288         probably find the script in either place at this point so maybe it
1289         doesn't really matter.
1290
1291 2002-03-07  Carl Worth  <cworth@east.isi.edu>
1292
1293         * ipkg_install.c (ipkg_install_pkg): Changed to only mark package
1294         as installed after running ipkg_configure, (to run the postinst
1295         script).
1296
1297         * RELEASED ipkg-unstable 0.99.0
1298
1299         * Updated all instances of "XXX" in the code to indicate one of
1300         the following categories:
1301         XXX: BUG: This is a bug that needs to be fixed.
1302         XXX: QUESTION: Implementation approach is uncertain here.
1303         XXX: CLEANUP: Suggestion on how the code could be cleaned up.
1304         XXX: FEATURE: Comment describes a useful feature request.
1305         
1306         * pkg.c (pkg_print_status): Added the Depends field to package
1307         paragraphs in the status file, ("ipkg remove" will need this).
1308
1309         * ipkg_install.c (satisfy_dependencies_for): Fixed "ipkg install"
1310         to not complain several times about "Package foo already
1311         installed" when doing large recursive installs.
1312         (ipkg_install_pkg): "ipkg install foo" for an installed package
1313         will now check and install any missing dependencies before exiting
1314         with "Package foo is alrady installed."
1315
1316 2002-03-06  Carl Worth  <cworth@east.isi.edu>
1317
1318         * pkg_dest.c (pkg_dest_pkg_owning_file_alloc): Moved this function
1319         here from ipkg_install.c. Also plugged a memory leak in it with
1320         globfree.
1321
1322         * pkg.c (pkg_remove_installed_files_list): Fixed bug that
1323         prevented package.list file from ever being removed during "ipkg
1324         remove".
1325
1326         * ipkg_remove.c (remove_data_files_and_list): Fixed noisy and
1327         spurious warnings about non-empty directories. "ipkg remove"
1328         should now only say anything if a directory that was solely
1329         provided by that package is non-empty.
1330
1331         * ipkg_cmd.c (ipkg_install_pending_cmd): Plugged memory leak with
1332         globfree.
1333
1334         * ipkg_install.c: *Many* fixes to enable "ipkg upgrade" to more or
1335         less work. Primarily fixing file clash identification and conffile
1336         handling/resolution. "ipkg upgrade" has now worked correctly on
1337         several test cases!
1338
1339         * ipkg_install.c (unpack_pkg_control_files): Now initializes
1340         conffiles list from the contents of conffiles control file,
1341         (leaves md5sum calculation until the actual conffiles are
1342         extracted later).
1343         (ipkg_install_pkg): Separated backup_modified_conffiles and
1344         check_data_file_clashes into separate functions.
1345         (preinst_configure): Simplified this function pushing its old
1346         logic into pkg.c:pkg_run_script.
1347         (backup_modified_conffiles): Added backup of any conffiles that
1348         are new as of this upgrade.
1349         (check_data_file_clashes): First real implementation of
1350         check_data_file_clashes.
1351         (resolve_conffiles): First real implementation of
1352         resolve_conffiles.
1353         (backup_make_backup): Added this and a few other functions to
1354         abstract backup creation/removal.
1355         (find_pkg_owning_file): Added this function.
1356         
1357         * pkg_extract.c (pkg_extract_data_files_to_dir): Fixed args to
1358         deb_extract so that existing files will be overwritten, (and any
1359         other error messages will no longer be suppressed).
1360
1361         * pkg.c (pkg_print_status): Added Conffiles field to
1362         pkg_print_status.
1363         (pkg_print_field): Fixed crash when printing NULL Conffiles
1364         values.
1365         (pkg_get_conffile): Fixed crash if pkg_get_conffile called with a
1366         NULL pkg.
1367         (pkg_run_script): Made pkg_run_script smart enough to run scripts
1368         for uninstalled packages, (from
1369         <pkg_tmp_unpack_dir>/<script_name>), as well as for isntalled
1370         packages, (from <dest_info_dir>/<pkg_name>.<script_name>
1371
1372         * str_util.c (str_tolower): Added convenience function.
1373         (str_toupper): Added convenience function.
1374
1375         * nv_pair.c (nv_pair_init): Fixed crash from calling nv_pair_init
1376         with NULL value.
1377
1378         * pkg.c (pkg_init_from_file): Fixed bug -- forgot to close file.
1379
1380         * file_util.c (file_md5sum_alloc): Convenience wrapper around
1381         md5_stream as ripped out of busybox. This function takes care of
1382         file open/close and does the bin2hex conversion of the md5sum.
1383
1384         * conffile.c (conffile_has_been_modified): Implemented this
1385         function for real now that we have md5sum capability.
1386
1387         * md5.c (md5_stream): Sucked in md5sum calculation code from
1388         busybox, (it wasn't part of libbb, so I just copied the files
1389         straight in and ripped out uninteresting functions such as
1390         md5sum_main, etc.)
1391
1392 2002-03-05  Carl Worth  <cworth@east.isi.edu>
1393
1394         * pkg.c (pkg_print_field): Added support for printing Conffiles
1395         field.
1396
1397         * ipkg_install.c (remove_obsolesced_files): With the fixed
1398         pkg_get_installed_files_list from below, this function now seems
1399         to work!
1400         (ipkg_install_pkg): Fixed to mark old package as uninstalled after
1401         upgrading.
1402
1403         * pkg.c (pkg_get_installed_files_list): Fixed so that it's
1404         possible to get an "installed_files" list even from an uninstalled
1405         package, (it pulls the list of data files straight out of the
1406         package).
1407
1408         * ipkg_cmd.c (ipkg_upgrade_cmd): Fixed ipkg_upgrade to not choke
1409         if asked to upgrade an un-installed package.
1410         (ipkg_upgrade_pkg): Fixed printing of version numbers.
1411
1412         * file_util.c (file_mkdir_hier): Abstracted call to libbb
1413         make_directory into new file_mkdir_hier. At this point, the only
1414         calls into libbb are isolated in file_util and pkg_extract. This
1415         will make it easier if we ever decide to directly incorporate that
1416         code or rewrite it.
1417
1418         * pkg_extract.c (pkg_extract_data_files_to_dir): Abstracted all
1419         calls to deb_extract in several new pkg_extract functions.
1420
1421 2002-03-04  Carl Worth  <cworth@east.isi.edu>
1422
1423         * ipkg_conf.c (ipkg_conf_init): Added support to ipkg_conf to
1424         pickup command-line arguments for "force-defaults" and
1425         "force-depends". Things set on the command-line should take
1426         precedence over things found in the configuration file.
1427
1428         * ipkg_cmd.c (ipkg_search_cmd): Fixed formatting of "ipkg search"
1429         output.
1430
1431         * pkg_depends.c (pkg_hash_fetch_unsatisfied_dependencies):
1432         Re-added fix to set *unresolved to NULL if depends is NULL.
1433
1434         * xregex.c (xregexec): Removed useless error messages from NOMATCH
1435         calls to regexec.
1436
1437         * ipkg_install.c (satisfy_dependencies_for): Added support for new
1438         "unresolved" argument in
1439         pkg_hash_fetch_unsatisfied_dependencies. Cleaned up warning/error
1440         messages.
1441
1442         * ipkg_cmd.c (ipkg_search_cmd): Implemented first-cut of "ipkg search".
1443
1444         * pkg_depends.c (pkg_hash_fetch_unsatisfied_dependencies): Fixed
1445         to set *unresolved to NULL if depends is NULL.
1446
1447 2002-03-01  Carl Worth  <cworth@east.isi.edu>
1448
1449         * RELEASED ipkg-unstable 0.98.0
1450
1451         * ipkg_configure.c (ipkg_configure): Added flushing of stdout,
1452         (here and in a few other modules).
1453
1454         * file_util.c (file_copy): Implemented this function here as one
1455         step toward isolating the calls into libbb functions. Updated old
1456         copy_file calls to file_copy in both ipkg_download.c and
1457         ipkg_install.c.
1458
1459         * ipkg_install.c, ipkg_remove.c: Demoted several "XXX" comments to
1460         DPKG_INCOMPATIBILITY as I really don't intend on addressing them
1461         any time soon, (if ever).
1462
1463         * ipkg_cmd.c (ipkg_files_cmd): Fixed "ipkg files" from crashing on
1464         uninstalled packages.
1465
1466         * familiar/rules: Added support for easy building of an
1467         ipkg.ipk. The version number and the architecture are
1468         automatically sucked in correctly from autoconf magic, (even when
1469         cross-compiling). Maybe autoconf will start paying off with
1470         benefits rather than pain, (finally!).
1471
1472         * configure.ac: Removed MEMCMP and STAT checks which were breaking
1473         cross-compilation.
1474
1475         * ipkg_cmd.c (ipkg_upgrade_pkg): BIG bugfix: Package version
1476         comparison was sign-reversed, (hence it would never upgrade).
1477
1478 2002-02-28  Carl Worth  <cworth@east.isi.edu>
1479
1480         * ipkg_download.c (ipkg_download): Changed from
1481         system("/bin/cp",...) to copy_file(...)
1482
1483         * replace/strndup.c: Implemented an (untested) replacement for
1484         strndup.
1485
1486         * configure.ac: Added AC_CANONICAL_HOST to automatically set the
1487         correct architecture type in the ipkg control file.
1488
1489         * configure.ac: Changed version number to 0.98.0 in preparation
1490         for alpha release.
1491
1492         * familiar/rules: Added support for easy building of an ipkg.ipk.
1493
1494 2002-02-27  Carl Worth  <cworth@east.isi.edu>
1495
1496         * ipkg_install.c (ipkg_install_pkg): Fixed to abort on failed
1497         download.
1498
1499         * pkg.c (pkg_run_script): Fixed bug that was preventing any
1500         package maintainer scripts from running, (hence, they run now so
1501         running non-native offline no longer works until I figure out the
1502         chroot plans).
1503
1504         * TODO: Added rough outline of remaining features with a release
1505         schedule.
1506
1507         * pkg_parse.c (pkg_parse_raw): Added parsing of "MD5Sum" in
1508         addition to "MD5sum" to accomodate bug in old ipkg.
1509
1510         * void_list.c (void_list_remove): Added new remove function, (also
1511         adjusts a forward iterator). Required new list->pre_head member
1512         which was added to all sub-list types.
1513
1514         * pkg.c (pkg_init): Changed pkg->conffiles to be of the new
1515         conffile_list_t datatype.
1516         (pkg_remove_installed_files_list): Pulled this function into
1517         pkg.c, (from ipkg_remove.c), so the mallocs and frees would be in
1518         the same C file.
1519         (pkg_get_conffile): Added this convenience function.
1520
1521         * ipkg_remove.c: Fixed several bugs. ipkg_remove now actually
1522         works for simple packages!
1523
1524         * ipkg_install.c (ipkg_install_pkg): Don't re-install if a package
1525         is already installed.
1526         (ipkg_install_pkg): Fixed major bug that all of ipkg_install's
1527         work was always being unwound even when successful.
1528
1529         * ipkg_cmd.c (ipkg_files_cmd): Fixed to use
1530         pkg_get_installed_files_list rather than a private implementation
1531         that sifted through the file lists on disk.
1532
1533         * str_util.c (str_ends_with): Added this convenient function.
1534         (str_chomp): Another convenience.
1535
1536         * ipkg_conf.c: Moved chomp to str_util.c (str_chomp), since
1537         someone else wanted it too.
1538
1539 2002-02-26  Carl Worth  <cworth@east.isi.edu>
1540
1541         * pkg_parse.c (pkg_parse_raw): Added XXX requesting parsing of
1542         Conffiles: field along with a hint about how to store the data.
1543
1544         * conffile_list.c:  Added a little wrapper around nv_pair_list
1545
1546         * conffile.c: Added a little wrapper around nv_pair
1547
1548         * str_util.c (str_ends_with): New convenience function.
1549
1550         * str_list.c (str_list_remove): Plugged in remove function.
1551
1552         * void_list.c (void_list_remove): Added remove function, (handles
1553         updating of forward iterator).
1554
1555         * pkg.c (pkg_run_script): Changed to return return value of
1556         script.
1557
1558         * ipkg_remove.c: Fleshed out initial version of all ipkg_remove.c
1559         functions.
1560
1561         * ipkg_configure.c (ipkg_configure): Added check on return value
1562         of pkg_run script. Added comments about dpkg compliance.
1563
1564         * ipkg_cmd.c (ipkg_purge_cmd): Added ipkg_purge_cmd
1565
1566 2002-02-20  Carl Worth  <cworth@east.isi.edu>
1567
1568         * Added USC copyright statements, (and Compaq stubs as necessary)
1569
1570         * ipkg_install.c: At this point "ipkg install" on a simple
1571         package, (no scripts and no dependencies), works just fine. It
1572         might even do some of the script and dependency handling correctly
1573         too, but I haven't tested that yet. "ipkg install libc6" is a nice
1574         little test that should complete without any errors or
1575         warnings. Follow that up with "ipkg status" to see that it worked.
1576
1577         * pkg.c (pkg_run_script): Added convenience method for running
1578         package scripts.
1579
1580         * ipkg_install.c: Fixed several bugs:
1581         (unpack_pkg_control_files): control files now extract to the
1582         correct temporary directory.
1583         (ipkg_install_pkg): pkg->state_want is now properly set to SW_INSTALL
1584         (ipkg_install_pkg): status file now gets written after installation
1585         (cleanup_temporary_files): All temporary files are cleaned up.
1586
1587         * ipkg_configure.c (ipkg_configure): Fleshed out a very simple
1588         ipkg_configure, (simply runs "postinst configure"). Maybe it will
1589         need to be smarter at some point. Moved unwritten conffiles stuff
1590         back to ipkg_install.c.
1591
1592         * ipkg_conf.c (ipkg_conf_write_status_files): Moved this function
1593         from ipkg_utils to ipkg_conf since it needs access to the
1594         pkg_dest_list.
1595
1596         * pkg_vec.c (marry_two_packages): Added several missing fields,
1597         (state_want, state_flag, filename, local_filename, tmp_unpack_dir,
1598         md5sum, size, installed_size, priority, source, conffiles,
1599         isntalled_files, essential)
1600
1601 2002-02-19  Carl Worth  <cworth@east.isi.edu>
1602
1603         * ipkg_install.c: several little bug fixes. "ipkg install" will
1604         now actually install files from a package! There are still some
1605         bugs, (eg. postinst scripts are not called -- probably other
1606         things as well). But, it's coming together now.
1607
1608         * pkg_dest.c (pkg_dest_init): now creates all necessary directories
1609
1610         * ipkg_download.c (ipkg_download): Fixed misleading parameter name.
1611
1612         * ipkg_conf.c (ipkg_conf_deinit): Now cleans up tmd_dir on deinit
1613         ipkg.c: now calls ipkg_conf_deinit before exiting.
1614         (ipkg_conf_add_nv): Fixed to set default_dest when parsing first
1615         dest in ipkg.conf
1616
1617         * ipkg_cmd.c (ipkg_list_cmd): Fixed ugly bug in ipkg_list that led
1618         to infinite loops, segfaults, string corruption, and other bizarre
1619         behavior.
1620
1621         * Added many files as we are approaching the first functional ipkg
1622         implementation in C:
1623         file_util.c: convenience for testing if file_exists, reading files, etc.
1624         ipkg_configure.c: mostly just a stub so far
1625         ipkg_download.c: convenient function to download a file
1626         nv_pair.c: data structure to hold a name-value pair
1627         nv_pair_list.c: data structure to hold a list of nv_pair_t
1628         pkg_dest.c: data structure for everything a pkg destination wants
1629         pkg_dest_list.c: data structure to hold a list of pkg_dest_t
1630         pkg_extract.c: convenience functions for package extraction,
1631         (these function should encapsulate any libbb borrowings we perform
1632         -- although some slipped into other files already)
1633         pkg_src.c: everything you might need for a pkg src.
1634         pkg_src_list.c: data structure to hold a list of pkg_src_t
1635         str_list.c: data structure to hold a list of char *
1636         void_list.c: generic linked-list data structure and functions
1637         xsystem.c: wrapper around system() with error checking
1638
1639         * ipkg_remove.c: Just added some stubs. Nothing really works at
1640         all yet.
1641
1642         * ipkg_install.c: Large rework of ipkg_install. It's now close to
1643         actually being usable, (but it's not quite there yet). Revamped to
1644         match dpkg install order more closely, (with all the stubs in case
1645         we ever want to call all the scripts that dpkg does). Also updated
1646         to use a more recent deb_extract from libbb.
1647
1648         * ipkg_extract_test.c (main): Added support for a third arg, (the
1649         filename to extract to the buffer).
1650
1651         * ipkg_conf.c (ipkg_conf_init): Added several fields to
1652         ipkg_conf_t: pkg_src_list, pkg_dest_list ,
1653         restrict_to_default_dest, default_dest, tmp_dir, lists_dir,
1654         pending_dir, force_depends, and pkg_hash. There's still a bit of
1655         tension between options stored in the config file, (ipkg_conf_t),
1656         and command-line arguments, (args_t).
1657
1658         * ipkg_cmd.c: First version that is approaching usability. The
1659         following commands are more-or-less in place: "ipkg update", "ipkg
1660         list", "ipkg info", "ipkg status". While the rest are in various
1661         states of being partiallyy written or written but untested.
1662         (ipkg_upgrade_cmd): Added support for restricting to a dest.  Many
1663         other changes, largely involving plugging into the pkg_hash for
1664         real for the first time, and adding multiple dest support.
1665
1666         * ipkg.c: Added support for setting the dest on the command-line.
1667
1668         * args.c: Added support for IPKG_CONF_DIR environment variable and
1669         -f, -conf, and -conf-file options.
1670
1671         * configure.ac: Added lots of little bits suggested by autoscan.
1672
1673 2002-02-18  Carl Worth  <cworth@east.isi.edu>
1674
1675         * pkg_parse.c (pkg_parse_raw): Added parsing, (kinda ugly), for
1676         essential field.
1677         * pkg.c (pkg_print_field): Added the essential flag.
1678
1679         * pkg_vec.c (pkg_vec_insert): Fixed to use pkg_compare_versions to
1680         determine matching versions instead of a strcmp on the version
1681         string.
1682
1683 2002-02-15  Carl Worth  <cworth@east.isi.edu>
1684
1685         * pkg_parse.c (pkg_parse_raw): Updated to accept a pkg_src_t
1686
1687         * pkg.c (pkg_init): Added field to pkg_t: "pkg_src_t *src"
1688
1689         * pkg_hash.c (pkg_hash_add_from_file): Updated to accept a pkg_src_t
1690
1691         * pkg_parse.c (parseStatus): Modified to accept a pkg_t *
1692         (parseVersion): Added this function
1693         (pkg_parse_raw): Updated to accept a pkg_dest_t
1694         (pkg_parse_raw): Reworked the parsing to use a pkg_t rather than a
1695         slew of local variables.
1696         (pkg_parse_raw): Added support for about a dozen new pkg_t fields
1697
1698         * pkg.h: Updated for all pkg.c changes.
1699
1700         * pkg.c (pkg_new): Added pkg_new for convenient alloc'ing of a pkg_t.
1701         (pkg_init): Added several fields to pkg_t: dest, section,
1702         suggests, filename, local_filename, tmp_unpack_dir, md5sum, size,
1703         installed_size, priority, source, and conffiles.
1704         (): Moved buildPkg this function to pkg_parse
1705         (pkg_init_from_file): Added convenience function for filling a
1706         pkg_t from an actual package file.
1707         (pkg_print_info): Split print_pkg into both pkg_print_info and
1708         pkg_print_status.
1709         (pkg_print_field): Added pkg_print_field, (extremely ugly)
1710         (): Moved parseversion to pkg_parse where it belongs
1711         (pkg_version_str_alloc): Added, (complement of parse_version)
1712
1713         * pkg_depends.h: Added GPL blurb
1714         (PKG_DEPENDS_H): Added multiple include protection
1715
1716         * pkg_depends.c: Moved non-static prototypes to header file.
1717         Changed several locl-only functions to be static.
1718         Added function prototypes for static functions.
1719         (buildDepends): Removed unecessary cast of malloc return value.
1720
1721         * pkg_hash.h: Moved hash-related struct declarations to this file
1722         Rename pkg_fetch* to have consistent pkg_hash_fetch prefix.
1723         Added missing prototype for pkg_vec_fetch_by_name
1724
1725         * pkg_hash.c: (pkg_hash_add_from_file): Added support for setting
1726         the pkg_dest
1727         (pkg_hash_add_from_file): Moved buildDepends call to
1728         hash_insert_pkg
1729         (pkg_hash_fetch_installed_by_name_dest): Added this function to
1730         support pkg_dest
1731
1732         * ipkg_utils.h: Added GPL blurb
1733         (IPKG_UTILS_H): Added multiple include protection
1734
1735         * ipkg_utils.c:
1736         (read_raw_pkgs_from_file): broke read_raw_pkgs into
1737         read_raw_pkgs_from_file and read_raw-pkgs_from_stream
1738         (ipkg_write_status_file): Fixed return value
1739         (print_pkg_status): Moved this function to pkg.c:pkg_print_status
1740         (line_is_blank): Fixed const char handling
1741
1742 2002-02-08  Carl Worth  <cworth@east.isi.edu>
1743
1744         * pkg_parse.c: Fixed a bug in parsing the 3 state fields.
1745
1746 2002-02-06  Carl Worth  <cworth@east.isi.edu>
1747
1748         * pkg.c: Expanded pkg_status field to the full 3 fields: state_want,
1749         state_flag, and state_status.
1750
1751 2001-12-11  Carl Worth  <cworth@east.isi.edu>
1752
1753         * ipkg_conf.c: Now parses /etc/ipkg.conf, (and doesn't do anything
1754         with it).
1755
1756         * ipkg.c: Started work on ipkg main, (not much here yet).
1757
1758         * ipkg_cmd.h: Added a tiny thing to abstract top-level ipkg
1759         commands, (not finished).
1760
1761         * Set up autoconf and friends