2001-02-20  Ian Peters  <itp@ximian.com>

	* gui-init.c: comment out the file logging stuff until I do it
	right

2001-02-20  Vladimir Vukicevic  <vladimir@ximian.com>

	* gui-glade.c, gui-html.c: Added beta warning to about page and
	main screen.

	* gui-html.c: Oops. Put back black links that were taken out
	in previous commit.  Non-package-related links are still blue,
	though.

2001-02-19  Joe Shaw  <joe@ximian.com>

	* gui-html.c (rc_gui_show_executive_summary): Fix a bug where when
	you were on an unsubscribed channel's about page and went to the
	summary the title bar changed but the content didn't.

2001-02-19  Vladimir Vukicevic  <vladimir@ximian.com>

	* gui-html.c, gui-util.c: commented out install local package

2001-02-19  Joe Shaw  <joe@ximian.com>

	* gui-html.c (rc_gui_show_executive_summary): Sensitize File menu
	options.

	* gui-init.c (main): Don't do the registration stuff for the beta.

2001-02-16  Vladimir Vukicevic  <vladimir@ximian.com>

	* gui-html.c: Some HTML loving throughout, equalizing margins on
	text vs. non-text pages.

	* gui-install.c, gui-install.h: Moved rc_gui_verify_installed_packages
	into here; also use new verification stuff from rc-deps-util

	* gui-util.c, gui-util.h: Removed old verify stuff

2001-02-14  Joe Shaw  <joe@ximian.com>

	* gui-download.c: Change some text.

	* gui-init.c (content_area_init): Connect the link_clicked signal to
	the register_html widget.

	* gui-util.c: Change DEFAULT_HOST_ROOT to red-carpet.ximian.com:8000

2001-02-14  Ian Peters  <itp@ximian.com>

	* Makefile.am: some RPMLIB_LIBS loving

2001-02-13  Vladimir Vukicevic  <vladimir@ximian.com>

	* gui-install.c: ewpz. FALSE != TRUE

2001-02-12  Vladimir Vukicevic  <vladimir@ximian.com>
	
	* gui-util.c, gui-util.h: New function to set sensitivity for
	most of menubar.

	* gui-install.c: Call aforementioned menu bar

2001-02-12  Joe Shaw  <joe@ximian.com>

	* gui-install.c (dependency_confirm): Only count requested_pkgs if
	we are doing a removal. Otherwise, just count removed_pkgs.

2001-02-12  Joe Shaw  <joe@ximian.com>

	* gui-install.c (dependency_confirm): Consolidate install_confirm and
	remove_confirm into dependency_confirm, as they were almost, but not
	quite, completely identical. If we're removing more than 6 packages
	(a fairly arbitrary number...) then pop up a warning dialog saying
	that might not be the smartest idea.
	(gui_install_packages, gui_remove_packages): Call dependency_confirm.

2001-02-10  Joe Shaw  <joe@ximian.com>

	* gui-download.c (gtk_progress_sucks_my_ass): Added. Workaround for
	GtkProgress stupidity.
	(rc_gui_set_progress_install): Fix a (null) in the HTML. Call
	gtk_progress_sucks_my_ass on the progress bars during the
	PROGRESS_WAIT_FOR_IT step. This fixes the crashes after installing or
	removing when using a theme.
	(rc_gui_set_progress_remove): Call gtk_progress_sucks_my_ass as
	above.

2001-02-09  Ian Peters  <itp@ximian.com>

	* gui-html.c (rc_gui_render_dependencies): add some padding in the
	event of no summary when we display deps

	* gui-init.c: remove the show_beta_page or whatever

2001-02-09  Vladimir Vukicevic  <vladimir@ximian.com>

	* gui-html.c: Put a small summary with non-working anchor links
	at the top of the dependencies page.

	* e-splash.c: Disable close in the dialog (can still be hidden
	by clicking in it)

2001-02-09  Ian Peters  <itp@ximian.com>

	* gui-download.c (size_request): removed
	(size_allocate): added.  Connected to the download_html widget,
	sizes the progress bar passed as data as appropriate
	(rc_gui_init_install_page): get rid of the size-request connect on
	the progress bars, connect to the size-allocate of the
	download_html to size the progress bars correctly

	Note: to work correctly this requires my patch to gtk+, but gtk+
	is what was broken, not us, so bite me world

2001-02-07  Joe Shaw  <joe@ximian.com>

	* gui-html.c (rc_gui_render_dependencies, rc_gui_render_updats_html,
	rc_gui_show_executive_summary): Make space non-blocking in the 
	"N Packages" and "N updates".

	* gui-register.c: Added a TYPE_CHECK_BOXES. Redid the questions and
	layout again. Remove #if 0ed code.

2001-02-07  Joe Shaw  <joe@ximian.com>

	* gui-register.c: Rewritten. It's cleaner and less code now. Uses the
	new questions.

2001-02-07  Joe Shaw  <joe@ximian.com>

	* gui-channel.c: Removed all references to channel->other_updates as
	it wasn't being used and was just sucking up memory.

	* gui-download.c: Fixed the jumpy progress bars once and for all, I
	hope. It will jump a little bit at the start of the first transaction,
	but that should be it. There's no avoiding it.
	(rc_gui_set_progress_install, rc_gui_set_progress_remove): Ditch the
	calls to gtk_widget_set_usize.
	(rc_gui_init_install_page): Connect to the size-request signals of the
	progress bars.
	(size_request): Added.

	* gui-util.c (rc_package_get_highest_importance): Handle the case in
	which the importance passed may not be parsed correctly or whatever.
	We'll set the importance to RC_IMPORTANCE_MINOR and throw a warning.
	(rc_gui_split_by_package_importance): Don't disqualify updates if
	their importance is RC_IMPORTANCE_INVALID (which will never happen now
	anyway).

2001-02-06  Joe Shaw  <joe@ximian.com>

	* gui-html.c: Replace all occurrances of NUM_SECTIONS with
	RC_IMPORTANCE_LAST.

	* gui-util.c (rc_package_get_highest_importance): Remove some
	references to RC_IMPORTANCE_NEW and RC_IMPORTANCE_MAX.
	(rc_gui_split_by_package_importance): g_new0() with RC_IMPORTANCE_LAST
	for the number, not RC_IMPORTANCE_MAX.

2001-02-06  Ian Peters  <itp@ximian.com>

	* gui-channel.c: get rid of the gtk_html_private_calc_scrollbar stuff

	* gui-glade.c: lose the gtk_html_private_calc_scrollbar stuff
	(exit_clicked): gtk_exit instead of rc_quit

	* gui-html.c: drop the gtk_html_private_calc_scrollbar stuff

	* gui-init.c: purge the gtk_html_private_calc_scrollbar stuff
	(rc_maybe_do_cache_stuff): make this guy take int, void * so we
	can on_exit it
	(main): on_exit rc_maybe_do_cache_stuff
	(rc_quit): removed

	* gui-register.c: excise the gtk_html_private_calc_scrollbar stuff

	* gui-uri.c: expunge the gtk_html_private_calc_scrollbar stuff

	* gui-util.c: obliterate the gtk_html_private_calc_scrollbar stuff

2001-02-06  Vladimir Vukicevic  <vladimir@ximian.com>

	* gui-glade.c, gui-html.c, gui-install.c, gui-util.c, gui-util.h:
	Add verify installed packages.

	* gui-glade.c, gui-util.c, gui-util.h: Add callbacks and
	necessary bits for install local packages.

2001-02-06  Joe Shaw  <joe@ximian.com>

	* gui-download.c (rc_gui_set_progress_install,
	rc_gui_set_progress_remove): Fix the jumpy progress bar problem.

	* gui-install.c (download_files): Reset the total progress bar text
	before we do a download. After cancelling a download there was stale
	text there when a transfer was done again.

	* gui-init.c (cancel_clicked_cb): Only pause unpaused transfers, and
	keep a list of them so they can be resumed.
	(cancel_no_clicked): Resume the transfers paused by clicking on cancel.
	Previously, if you paused a transfer, and then clicked cancel, RC would
	spew a few warnings and then resume all of the transfers when you
	clicked on "No." This fixes that.
	(content_area_init): Cleanup a warning.

2001-02-06  Ian Peters  <itp@ximian.com>

	* gui-channel.c (rc_gui_channel_update_package_lists): stop doing
	our own query here, it's completely unnecessary

	* gui-init.c (main): call rc_gui_query_system_packages immediately
	after initialize_packman

	* gui-install.c (install_dependency_check): don't do our own
	system query here, instead use appinfo->system_packages
	(gui_install_packages): call rc_gui_query_system_packages after
	installing things
	(gui_install_packages): don't do our own query, use the appinfo
	(gui_remove_packages): call rc_gui_query_system_packages after
	removing things

	* gui.h: store the system_packages, an RCPackageSList, in the
	appinfo struct

	* gui-util.h (rc_gui_query_system_packages): added

	* gui-util.c (rc_gui_query_system_packages): added.  Refreshes the
	system_packages slist in the appinfo.  used at startup and after
	successful installation/removal of packages.

2001-02-05  Joe Shaw  <joe@ximian.com>

	* gui-install.c (verify_packages): Try to fix the broken size of the
	failed verification dialog.

2001-02-05  Joe Shaw  <joe@ximian.com>

	* gui-channel.c (rc_gui_channel_show, channel_refresh_clicked): Hide 
	package_vbox instead of package_html.

	* gui-glade.c (rc_scroll_html_widget_new): Allow selection in the HTML
	widgets.

	* gui-html.c (rc_gui_render_dependencies): Don't show the "Old Version"
	header in the main group when we're doing a remove.
	(rc_gui_render_info_html): Hide package_vbox instead of package_html.
	Set the action html after the info page is rendered.
	(rc_gui_render_package_info_html): Split out the window close thingy
	so that scrolling problem thingy doesn't happen.
	(rc_gui_show_executive_summary): Hide package_vbox instead of
	package_html.

	* gui-init.c (content_area_init): Don't hide the package_html. We're
	just going to make it invisible in the glade.

	* gui-register.c: Rework the page a bit.

	* gui-uri.c (rc_gui_handle_update_uri): Hide package_vbox instead of
	package_html.

2001-02-02  Joe Shaw  <joe@ximian.com>

	* Happy Groundhog Day. Apparently, today he saw his shadow and we'll
	have 6 weeks more winter. According to my friend, it is snowing pretty
	hard in Ohio, which would seem to confirm the groundhog's predictions.
	I, however, am beginning to think they just make this shit up. I mean,
	if it's all snowy, then it's probably cloudy. And if it's cloudy, then
	the sun isn't shining. And if the sun isn't shining, then the
	groundhog doesn't HAVE a shadow, which he, thus, cannot see. QED. So,
	I'm thinking this is all a hoax, and that they waste all this time
	covering it in the media, and make movies about it starring Bill
	Murray and Annie McDowell, when in reality it's all one big money 
	sinkhole, like a Hallmark holiday (Sweetness Day? WTF?), and that
	someone very smart and old and diabolical is making a ton of money. 
	Suck. And Bill Murray too, cause he did that movie and they show it on
	TV a lot around Christmas time... which is funny cause it's about
	Groundhog Day.

	* gui-channel.c (channel_refresh_clicked): Reset the progress bars to
	0 before we start the transfer, so if we lag in the connection it isn't
	set to 100%. Hide the total progress bar, as it isn't relevent here
	(we're only downloading one file).

	* gui-init.c (summary_refresh_clicked): Refetch the pretty names on
	a refresh.
	(rc_gui_fetch_all_icons): Fix a ton of failed assertions when
	refreshing because the splash screen isn't around anymore.

2001-01-30  Vladimir Vukicevic  <vladimir@ximian.com>

	* Makefile.am, e-splash.c, e-splash.h, gui-channel.c,
	gui-html.c, gui-init.c, gui.h: Add stuff to have a new
	pretty splash screen.

2001-01-30  Ian Peters  <itp@ximian.com>

	* gui-install.c (remove_confirm): sensitize the Ok button

	* gui-init.c (rc_gui_channel_list_fetch): make mirroring actually
	work...

	* gui-html.c (rc_gui_render_dependencies): change Required
	Installations to Necessary Installations

2001-01-30  Vladimir Vukicevic  <vladimir@ximian.com>

	* gui-install.c: Free the resolutons after we're done

2001-01-29  Vladimir Vukicevic  <vladimir@ximian.com>

	* gui-html.c: Add an extra f to the bgcolor of the channels pages to
	make it white

	* gui-channel.c, gui-channel.h: refresh the package updates after
	each subscribe/unsubscribe.

2001-01-29  Joe Shaw  <joe@ximian.com>

	* gui-dowload.h: Add a new progress status, PROGRESS_WAIT_FOR_IT
	which will indicate a just-about-finished transaction.

	* gui-download.c (rc_gui_set_progress_install,
	rc_gui_set_progress_remove): Handle PROGRESS_WAIT_FOR_IT and change
	the semantics of PROGRESS_FINISHED a little. Hide the progress bar
	when we're done to illustrate more that we're finished.

	* gui-install.c (gui_install_packages, gui_remove_packages): Set state
	to PROGRESS_WAIT_FOR_IT as soon as the transaction is done and
	PROGRESS_FINISHED after we've re-rendered the package listings in the
	"background".

2001-01-29  Joe Shaw  <joe@ximian.com>

	* gui-init.c (cancel_yes_clicked): Renamed and moved from
	gui-install.c
	(cancel_clicked_cb): Pause the current transfer.
	(cancel_no_clicked): Resume the current transfer.
	(content_area_init): Change call to cancel_yes_clicked, add call to
	cancel_no_clicked.

	* gui-install.c (cancel_transfer): moved to gui-init.c.
	(verify_packages): while (gtk_events_pending()) gtk_main_iteration();
	so that the verify icon draws before it starts to actually do the
	verification.

2001-01-29  Joe Shaw  <joe@ximian.com>

	* cache.c (gui_cache_override_cache_name_func): Added.
	(gui_cache_fresh, gui_cache_add, gui_cache_get): Use the override
	func if supplied.

	* gui-init.c (rc_gui_fetch_pretty_names): Make the inability to
	fetch the pretty names file non-fatal.
	(rc_maybe_do_cache_stuff): Remove the cache files if the user has
	caching turned off.

	* gui-install.c (make_filename): Make the url parameter a const char *
	(gui_install_packages): Override the name function before downloading
	packages, and then reset it when we're done.

	* gui-prefs.c (gui_prefs_get_cache_info): Set the clear_on_startup
	and clear_on_exit pointers (if provided) when we have the cache
	disabled.
	(on_gui_show_pretty_names_toggled): Handle new option for whether or
	not the user wants pretty names.

	* gui-transfer.c (gui_transfer_set_cache): Added. Allows the cache
	to be enabled or disabled on a per-transfer basis.
	(file_done_cb): Honor the nocache flag. Remove some #if 0 code.

	* gui-util.c (rc_gui_get_pretty_name): Added.

	* gui-html.c: Replaced all references of rc_pretty_name_lookup with
	rc_gui_get_pretty_name and added conditionals based on user preferences
	to use rc_package_slist_sort_by_name instead of
	rc_package_slist_sort_by_pretty_name.

2001-01-29  Ian Peters  <itp@ximian.com>

	* gui-html.c (rc_gui_render_installed_html): if no packages are
	installed, display an appropriate message.  Fix a typo
	(rc_gui_render_available_html): set the background color correctly
	if we have no packages from this channel uninstalled

2001-01-29  Ian Peters  <itp@ximian.com>

	* gui-html.c: don't show the pretty package name in the info box,
	do show the pretty package name in the summary, valign the summary
	to top

2001-01-29  Ian Peters  <itp@ximian.com>

	* Makefile.am: include RPMLIB_CFLAGS and RPMLIB_LIBS where
	appropriate

2001-01-29  Vladimir Vukicevic  <vladimir@ximian.com>

	* gui-prefs.c: default to clear on startup

	* gui-init.c, gui.h: compile before committing.

	* gui-uri.c: fix warning

	* cache.c, gui-channel.c, gui-glade.c, gui-init.c,
	gui-prefs.c, gui-prefs.h, gui-trasfer.c: prefs for
	clearing pkg cache on startup/quit

	* gui-install.c, gui-html.c: sort on pretty names
	
	* gui-init.c, gui.h: rc_quit()
	
	* gui-glade.c: call rc_quit()
	
	* gui-install.c: Fix sprintf format string.

	* gui-install.c: Update dependancy failures for conflicts.

	* gui-html.c: Render conflict deps failures. Quite ugly.

	* gui-install.c: Oops. Compile before checking in.
	Compile before checking in. Compile before checking in.

	* gui-install.c: Check for abort from dependency code
	and display appropriate dialog box.

2001-01-29  Ian Peters  <itp@ximian.com>

	* gui-html.c: change "Requested Packages" to "Requested
	Installations" or "Requested Removals", as appropriate

2001-01-29  Ian Peters  <itp@ximian.com>

	* gui-html.c (rc_gui_render_yellow_bar): use the font_color, duh

2001-01-29  Vladimir Vukicevic  <vladimir@ximian.com>

	* gui-init.c: Download pretty names.

	* gui-html.c, gui-install.c: Use pretty names.

2001-01-29  Ian Peters  <itp@ximian.com>

	* gui-html.c (render_packges): add a valign=top

2001-01-29  Ian Peters  <itp@ximian.com>

	* gui-html.c: make the package resolution screen use the
	now-common layout, some changes to rc_gui_render_yellow_bar to
	make it usable, etc.

2001-01-29  Vladimir Vukicevic  <vladimir@ximian.com>

	* gui-uri.c: fix the select all/select none semantics with
	5 different select and unselect functions.

2001-01-28  Ian Peters  <itp@ximian.com>

	* gui-html.c (rc_gui_show_channel_page): add valign=top, font
	size=+1 to the channel names

2001-01-28  Vladimir Vukicevic  <vladimir@ximian.com>

	* gui-uri.c: Fix Select All/Select None to sensitize the activate
	button.

2001-01-28  Ian Peters  <itp@ximian.com>

	* gui-html.c: changed a whole lot of GUI stuff around.  Added
	rc_gui_render_yellow_bar, factored out some common code between
	summary, updates, available, and installed, etc etc.  No time for
	a good ChangeLog :-(

2001-01-28  Vladimir Vukicevic  <vladimir@ximian.com>

	* gui-html.c: Oops, get rid of an unnecessary variable that was set
	and then iterated across random memory.

	* gui-html.c: Render the RDF news stuff differently, using extended
	RDF syntax.

	* gui-install.c: Minor compilation cleanup

	* gui-rdf.c, gui-rdf.h: Add extra RDF fields for summary, icon,
	date, etc.  These are all namespaced in a rc: namespace (or should be),
	so other simple rdf parses should just ignore these.
	
2001-01-28  Vladimir Vukicevic  <vladimir@ximian.com>	
	
	* gui-html.c: Put back rounded corners on some pages.

	* gui-html.c: Put back some text at the top of each page; change
	some things to have a white background instead of gray.

	* gui-html.c: Again, dangit. Increment count, or we're lame.

	* gui-html.c: Oops, fix code path for 0 updates.

	* gui-html.c: Lots of changes. Changed individual chan update
	page to be like executive summary.  This crashes gtkhtml.
	Changed text at top of each page, then got rid of text completely.
	Changed action buttons to be real gtk buttons.
	Changed i button to close the info view if you select the i button
	of the package that's being viewed.

	* gui-uri.c: Updates for i button info hiding.

	* gui-util.c: Major memory leak fix; free the package after querying it.

2001-01-26  Vladimir Vukicevic  <vladimir@helixcode.com>

	* gui-html.c, gui-install.c: Better printing of dep failures.
	This is ugly.
	
2001-01-26  Joe Shaw  <joe@ximian.com>

	* gui-html.c (rc_gui_show_about, rc_gui_show_news,
	rc_gui_show_featured_page, rc_gui_show_channel_page): Render before 
	switching pages.

	* gui-transfer.c (gui_transfer): Add the transfer to the list of
	current transfers regardless of whether or not we're getting headers
	or data.
	(file_done_cb): Remove from the list of transfers regardless of
	anything. At all. Ever.

	* gui-uri.c (rc_gui_handle_updater_uri): Display a "please wait"
	page while loading from a web URI.

2001-01-26  Joe Shaw  <joe@ximian.com>

	* gui-init.c (rc_gui_shortcut_selected): Don't do anything if the
	button pressed isn't button 1. Originally I was just bailing out if
	the item number was < 0, but selecting it with right click just didn't
	feel right.

2001-01-26  Ian Peters  <itp@ximian.com>

	* gui-html.c (rc_gui_render_installed_html): adjust the column
	widths, less room for the name and more room for the version
	(rc_gui_render_available_html): and here also.  basically the cvs
	snapshots taught us that version strings get long fast.

2001-01-25  Joe Shaw  <joe@ximian.com>

	* gui-html.c (rc_gui_render_dependencies): Tiny little rendering fix 
	to the HTML now that gtkhtml obeys the <td height=%d> tag.

2001-01-25  Ian Peters  <itp@ximian.com>

	* gui-uri.c (rc_gui_handle_uri): call rc_gui_show_channel_page
	instead of rc_gui_show_subscribed_page or
	rc_gui_show_unsubcribed_page

	* gui-html.h: removed rc_gui_show_subscribed_page and
	rc_gui_show_unsubsribed_page prototypes, added
	rc_gui_show_channel_page

	* gui-html.c (rc_gui_render_updates_html): get rid of unneeded
	colspan arg
	(rc_gui_render_available_html): get rid of unneeded colspan arg.
	Add missing <br>
	(rc_gui_show_executive_summary): add some missing <br> tags
	(rc_gui_show_channel_page): added, replaces
	rc_gui_show_(un)subscribed_page, since the code was almost
	identical but each had its own subtle bugs

2001-01-25  Joe Shaw  <joe@ximian.com>

	* gui-download.c (rc_gui_set_progress_install, 
	rc_gui_set_progress_remove): Inform the user when an installation
	or removal has finished.

2001-01-24  Joe Shaw  <joe@ximian.com>

	* gui-download.c (rc_gui_set_progress_install, 
	rc_gui_set_progress_remove): Only show the single progress bar when
	we're downloading.
	(rc_gui_init_install_page): Show the widgets after creating them.

	* gui-html.c (rc_gui_render_updates_html, rc_gui_render_installed_html,
	rc_gui_render_available_html, rc_gui_set_action_html): Show the
	search entry widget after creating it.
	(rc_gui_html_object_requested): Do a gtk_widget_show on the 
	GtkHTMLEmbedded container instead of a show_all.

	* gui-register.c (rc_gui_register): Show the widgets before adding
	them to be embedded.

2001-01-24  Joe Shaw  <joe@ximian.com>

	* gui.h: Removed BUILD define. It's done by configure now.

	* gui-html.c (rc_gui_show_about): New layout. Only display the build
	if it is defined.

2001-01-24  Joe Shaw  <joe@ximian.com>

	* gui-init.c (main): Call show_beta_window() sooner.

	* gui-install.c (dependency_failure): Added.

	* gui-html.c (rc_gui_render_dependency_failure): Added.

2001-01-24  Joe Shaw  <joe@ximian.com>

	* gui-channel.c (rc_gui_channel_fetch_all_data): Reset the progress
	to 0 before downloading.

	* gui-init.c (show_beta_window): Show the disclaimer dialog thingy.
	(main): Call show_beta_window.

	* gui-register.c (apply_registration): Don't require the user to
	fill in the software field.

2001-01-24  Ian Peters  <itp@ximian.com>

	* gui-html.c (rc_gui_show_executive_summary): renamed the Ximian
	GNOME channel to Ximian GNOME Desktop.  Take the user to the about
	page instead of directly subscribing.

2001-01-24  Vladimir Vukicevic  <vladimir@helixcode.com>

	* gui-uri.c: Handle relative image URLs in the gtkhtml image loader.

2001-01-24  Joe Shaw  <joe@ximian.com>

	* gui-html.c (render_packages): Do a shallow copy of the package list
	before sorting it, as rc_package_slist_sort_by_name can (and usually
	does) change the address of the first node, which screws up the
	package list if you abort at the dependency page. When we're done,
	we shallowly free it.
	(rc_gui_render_available_html): Removed some #if 0ed code.

2001-01-23  Joe Shaw  <joe@ximian.com>

	* gui-download.c (button_state): Removed.
	(rc_gui_set_progress_install, rc_gui_set_progress_remove): Don't call
	button_state anymore.

	* gui-html.c (rc_gui_render_updates_html): Fix link color. Use a more
	efficient method for getting the updates.
	(rc_gui_show_subscribed_page): Say "update" if there is one update.
	(rc_gui_show_executive_summary): Format for 80 columns.

2001-01-23  Vladimir Vukicevic  <vladimir@helixcode.com>

	* gui-html.c: g_package_slist_sort_by_name all package lists
	before displaying

2001-01-23  Ian Peters  <itp@ximian.com>

	* gui-html.c (rc_gui_show_executive_summary): add an &nbsp; to the
	first column of the new exec summary to avaoid a rendering bug

2001-01-23  Vladimir Vukicevic  <vladimir@helixcode.com>

	* gui-html.c: New executive summary page

	* gui-install.c: I want
	(g-slist-find-custom requestd_pkgs pkg
		(lambda (a b) (not (package-spec-equal a b))))
	(Added package_spec_not_equal)


2001-01-23  Joe Shaw  <joe@ximian.com>

	* gui-util.c (rc_gui_set_error_box): Fix the "main is usually a 
	function" warning because Ian was making fun of me. Fix a GtkHTML
	casting warning.

2001-01-23  Joe Shaw  <joe@ximian.com>

	* gui-html.c (rc_gui_render_updates_html): Fix a problem where the
	footer wasn't being updated properly.

	* gui-init.c (rc_gui_fetch_icon): Don't do the local file icon hack
	thingy if you're not root. Fixes Mothra #113.

	* gui-util.c (format_size): Use strict decimal formatting instead of
	significant digits. I find it rather amusing how the printf man page
	claims to use sig figs and then blatantly contradicts them. Fixes
	Mothra #114. And Jacob, you suck.

2001-01-23  Joe Shaw  <joe@ximian.com>

	* gui-html.c (rc_gui_show_subscribed_page): Show the description of
	the channel here as well.
	(rc_gui_show_executive_summary): Change the wording because there is
	no longer a channel bar.

2001-01-23  Vladimir Vukicevic  <vladimir@helixcode.com>

	* gui-install.c: Use new librc dumping functions

2001-01-23  Vladimir Vukicevic  <vladimir@helixcode.com>

	* gui-install.c: glib bites us in the ass. g_slist_find_custom takes
	CompareFunc which has strcmp semantics, why, I don't know.  This
	is unlike g_hash_table_new, which takes a CompareFunc with == 
	semantics. Two !'s fix lots of issues here, from the duplication of 
	files (installing foo, also need to install foo), to not 
	removing/installing additional deps. I want a ternary computer.

2001-01-22  Joe Shaw  <joe@ximian.com>

	* gui-html.c (render_updates_html): Fixed a problem where the header
	wasn't being rendered when you didn't have any packages installed from
	that channel.

2001-01-22  Joe Shaw  <joe@ximian.com>

	* gui-channel.c (rc_gui_channel_show): Don't set the action HTML
	here, as it is done in rc_gui_render_{updates|info}_html. This keeps
	the Update Now! button from flickering on and eliminates redundant
	function calls.
	(notebook_page_switched): Call rc_gui_render_updates_html if the
	page being switched to is the updates page. This is kind of hackish,
	but it fixes the problem of the Update Now! button popping up when it
	shouldn't.

	* gui-html.c (rc_gui_render_info_html): Call rc_gui_set_action_html
	here.

2001-01-22  Joe Shaw  <joe@ximian.com>

	* cache.c (gui_cache_get_filename): Added.
	(gui_cache_fresh, gui_cache_get, gui_cache_add): Use
	gui_cache_get_filename. Code reuse is good.
	(gui_cache_add): Create the cache directory 0755 instead of 0644.
	
	* gui-init.c (populate_channel_list): removed (it was #if 0ed out)
	(rc_gui_fetch_icon): Save the icon to the local disk and replace the
	normal URL with with a file URL to improve performance. SOPTIMIZE!
	(rc_gui_channel_list_fetch): Fix a warning surrounding the new distro
	compare stuff.
	(main): Fix some warnings surrounding the log file.

	* gui-install.c (make_filename): Save packages to
	/var/cache/redcarpet/packages instead of /var/lib/redcarpet/packages.
	Create the directory mode 0755 instead of 0644.

	* gui-transfer.c (file_done_cb): Don't free the filename after a
	transfer is completed. That's useful info!
	(gui_transfer_destroy): Free the filename here.

2001-01-22  Ian Peters  <itp@helixcode.com>

	* gui-init.c (rc_gui_channel_list_fetch): g_slist_find_custom on
	channel->distro_target instead of a simple strcmp

2001-01-22  Joe Shaw  <joe@ximian.com>

	* gui-init.c (populate_navigation_bar): Disable featured channels for
	now.

2001-01-22  Joe Shaw  <joe@ximian.com>

	* gui-channel.c (rc_gui_channel_update_package_lists): Fix a call
	to rc_gui_error_box() that was using the old syntax.

	* gui-download.c (rc_gui_set_progress_install): Count the total
	number of packages seperately for each step.

	* gui-install.c (install_dependency_check, remove_dependency_check): 
	Make an error encountered during the dependency resolution retryable.
	(verify_packages): Fix a warning.
	(install_packages, gui_remove_packages): Handle fatal errors correctly.
	Fixes Mothra #112.

2001-01-19  Joe Shaw  <joe@ximian.com>

	* gui-channel.c (rc_gui_channel_fetch_all_data): Throw up an error box
	if a channel's info cannot be downloaded.

	* gui-download.c (rc_gui_set_progress_install): Correctly show the
	number of files to be downloaded and installed when downloading
	seperate gpg files.

	* gui-init.c: Removed a bunch of code that was not used anymore.
	(main): Do not require the user to register if he is not root.

	* gui-install.c (verify_packages): Display something in the log when
	the verification passes. Fixes a bug where the worst status was
	being reported -completely- wrong. I'm a dork. Fixes mothra #109.

	* gui-log-display.c (window_destroyed): Disconnect the signals from
	the log so we're not calling frivolous signal handlers and passing
	around garbage data.
	(rc_gui_log_display): Associate the clist with its window.

2001-01-19  Ian Peters  <itp@helixcode.com>

	* gui-util.c (rc_gui_section_icon_name): s/SECTION_/RC_SECTION_/
	(rc_gui_split_by_package_category): s/SECTION_/RC_SECTION_/

	* gui-html.c (rc_gui_render_installed_html):
	s/SECTION_/RC_SECTION_/

2001-01-18  Ian Peters  <itp@helixcode.com>

	* gui-install.c (install_dependency_check): remove packman from
	call to rc_dep_resolution_new
	(remove_dependency_check): ditto

	* gui-init.c: added a poptOption table with display-level and
	log-level options
	(initialize_packman): added a call to rc_dep_set_packman
	(main): open and set a log_file if possible in
	/var/log/redcarpet/session.log

2001-01-18  Joe Shaw  <joe@ximian.com>

	* gui-util.c (rc_gui_error_box): Fix some HTML love so that the
	header lines up against the icon.

2001-01-18  Ian Peters  <itp@helixcode.com>

	* gui-channel.c (rc_find_best_package): moved in from
	rc-channel.c.  Change call to rc_package_spec_compare to
	rc_packman_version_compare

	* gui-html.c (rc_gui_render_updates_html): change call to
	rc_package_spec_compare to rc_packman_version_compare
	(rc_gui_show_executive_summary): ditto

	* gui-install.c (install_dependency_check): add appinfo->pman to
	call to rc_dep_resolution_new.  change call to
	rc_package_compare_func to rc_package_spec_equal
	(remove_dependency_check): ditto on both

	* gui-util.c (rc_package_get_highest_importance): moved in from
	rc-package.c, change call to rc_package_spec_compare to
	rc_packman_version_compare

2001-01-17  Joe Shaw  <joe@ximian.com>

	* gui-util.c (rc_gui_error_box): Allow the user to select the text
	on the error box.

2001-01-17  Joe Shaw  <joe@ximian.com>

	* gui-init.c (initialize_packman): Fix call to rc_error_box that
	still used the old arguments. Fatal errors will now say that they are
	fatal.

2001-01-17  Joe Shaw  <joe@ximian.com>

	* gui-util.c (rc_gui_error_box): Fix a very rare corner case in which
	an error box wouldn't pop up if the startup window had not yet
	popped up.

2001-01-17  Joe Shaw  <joe@ximian.com>

	* gui-uri.c (rc_gui_html_download): Correctly handle unqualified URLs.

2001-01-17  Joe Shaw  <joe@ximian.com>

	* gui-install.c: Major cleanup.
	(install_dependency_check, remove_dependency_check): Show an error 
	dialog if the dependencies fail.
	(print_channel_hdr_line, print_channel_line, print_blank_channel_line,
	format_pkg_version, render_channel_pkgs, render_header_html,
	render_dependency_failure_html): Removed. All the HTML rendering is 
	now in gui-html.c.
	(install_confirm, remove_confirm): Remove unused variables and #if 0ed
	code.
	(install_packages, gui_remove_packages): Show an error dialog if the 
	transaction fails.
	(gui_install_packages): Clean up warnings.

	* gui-html.c (rc_gui_render_dependencies): Add rendering of the header
	to this function (was gui-install.c:render_header_html).

2001-01-17  Joe Shaw  <joe@ximian.com>

	* gui-html.c (rc_gui_render_dependencies): Change the icons from the
	monkeybutton to the packages with the arrow a la the channel toolbar
	thingy.

2001-01-17  Joe Shaw  <joe@ximian.com>

	* gui-download.c (rc_gui_set_progress_remove): Make the total progress
	work correctly for removal. Fixes Mothra #104.

	* gui-html.c (rc_gui_show_executive_summary, 
	rc_gui_render_updates_html): Don't show the "Update Now!" button if 
	there aren't any updates. Fixes Mothra #105

2001-01-17  Joe Shaw  <joe@ximian.com>

	* gui-glade.c (select_none_remove): Added. Fixes Mothra #101.

	* gui-util.c (rc_gui_set_select_item): Changed parameters

	* gui-html.c (rc_gui_render_updates_html, 
	rc_gui_render_available_html): Use new parameters.
	(rc_gui_render_installed_html): Allow unselecting of all packages.
	(rc_gui_set_action_html): Display the right icons for subscribed and
	unsubscribed channels in the title bar.
	(rc_gui_show_executive_summary): Fix a typo.

	* gui-init.c (content_area_init): Use new parameters.
	(sb_icon_cb): Show the right subscribed and unsubscribed icons in
	the navbar.

	* gui-uri.c (rc_gui_handle_updater_uri): Add new 
	"unselect_all_installed" URI.
	(unselect_all_installed): Implemented.

2001-01-16  Joe Shaw  <joe@ximian.com>

	* gui-glade.c: Removed some unused code.

	* gui-html.c (rc_gui_render_dependencies): Fix for Mothra #99; when
	removing packages and additional removals were being pulled in, the
	header wasn't going to the edge of the page.
	(rc_gui_render_installed_html, rc_gui_render_available_html): Improve
	the spacing here. Fixes Mothra #98.

2001-01-10  Joe Shaw  <joe@ximian.com>

	* *.[ch]: Ximianify.

2001-01-10  Joe Shaw  <joe@helixcode.com>

	* gui-html.c (rc_gui_set_action_html): Use new featured
	channels icon.

	* gui-init.c (sb_icon_cb): Use new featured channels icon.

2001-01-10  Joe Shaw  <joe@helixcode.com>

	* gui-html.c (rc_gui_render_dependencies): Make all text
	on the red bars white. REALLY fixes #91.

2001-01-10  Joe Shaw  <joe@helixcode.com>

	* gui-html.c (render_packages): Fix the spacing
	in the dependencies page.
	(rc_gui_render_dependencies): Make the removal text color black. Fixes
	Mothra #91.
	(rc_gui_render_updates_html): Fix spacing around the number of updates
	and the total size. Fixes Mothra #93.
	(rc_gui_set_action_html): Use the new news icon.
	(rc_gui_show_news_page): Fix the yellow bar and spacing of news items.
	Fixes Mothra #94.

	* gui-init.c (sb_icon_cb): So, this like has never worked
	since we switched to the navigation bar. "Oops". Anyway, made it parse
	the URIs and spit out the proper icon. This may need to be rethought
	when we add shortcuts to the navbar.

2001-01-09  Vladimir Vukicevic  <vladimir@helixcode.com>

	* gui-install.c: make it download packages from the
	right place, duh.

2001-01-06  Joe Shaw  <joe@helixcode.com>

	* gui-html.c: Fix some menu item sensitivity issues all
	over the place.

2001-01-05  Vladimir Vukicevic  <vladimir@helixcode.com>

	* cache.c, gui-channel.c,
	gui-glade.c, gui-html.c, gui-init.c,
	gui-install.c, gui-prefs.c,
	gui-rdf.c, gui-regestier.c,
	gui-transfer.c, gui-uri.c, mirror.c,
	subscription.c: use rc_debug instead of
	g_warning/g_print/fprintf/etc

2001-01-05  Joe Shaw  <joe@helixcode.com>

	* gui-install.c (rc_gui_channel_update_all): After a
	transaction, make sure we reset the update/install/remove lists on
	all the channels (if installed from summary) or only on the channel we
	updated from. This prevents the issue of clicking on "Update Now!"
	and having all of the packages you just updated show up in the deps
	screen.

2001-01-05  Joe Shaw  <joe@helixcode.com>

	* gui-html.c: Minor GUI love.

	* gui-init.c (rc_gui_news_fetch): Don't fetch the slashdot
	headlines anymore, get the red-carpet RDF file.

2001-01-04  Joe Shaw  <joe@helixcode.com>

	* gui-glade.c, gui-html.c: Shifted some stuff around.  Move along,
	move along.

2001-01-04  Vladimir Vukicevic  <vladimir@helixcode.com>

	* mirror.c, mirror.h: New function to figure out 
	the correct URL for a file in a channel (icon, html, etc.)

	* gui-html.c, gui-init.c: Use new function for
	channel icon

	* gui-html.h: Add missing prototype

2001-01-04  Ian Peters  <itp@helixcode.com>

	* gui-channel.c (rc_gui_channel_clear_data): shallow
	free the package lists in the GUIChannel, and don't much with the
	dep_table anymore

2001-01-04  Joe Shaw  <joe@helixcode.com>

	* gui-install.c (update_total_progress): A relic from the
	old transfer days, this was being passed a GUITransfer that was being
	(illegally) cast to a GnomeTransfer and was giving erroneous transfer
	results but never crashing. Anyway, this is fixed.

2001-01-04  Joe Shaw  <joe@helixcode.com>

	* gui-download.c: Some rendering fixes for the progress.
	Fixed up some text, too. Use new images.

	* gui-install.c (download_files): Set the progress bar to
	0% before downloading a file, so that in the event of a delay or a 404
	or something of that nature, it'll look better.

2001-01-03  Joe Shaw  <joe@helixcode.com>

	* gui-glade.c: Move a lot of the Glade callbacks into the
	.c file from the .h.
	(select_all_update, select_none_update, select_all_install,
	select_none_install): Implemented.

	* gui-html.c (render_packages, rc_gui_render_dependencies):
	New deps page implemented.
	(rc_gui_render_info_page, rc_gui_render_installed_page): Desensitize
	the select all/none items.
	(rc_gui_render_updates_html): (De)sensitize the	select all/none items
	as necessary. Remove the old yellow pill buttons.
	(rc_gui_render_available_html): Sensitize the items, remove the buttons
	(rc_gui_set_action_html): Fix a bug where the update now button wasn't
	being shown when it was supposed to and was being shown when it wasn't
	supposed to. Desensitize menu items when going to a summary-level page,
	like the summary, news, subscribed/unsubscribed/featured channels.

	* gui-init.c (content_area_init): Make sure only two items
	are shown and desensitize them when the application starts.

	* gui-install.c (install_confirm): Change the added_pkgs
	argument from a hash table to a channel list. Calls
	rc_gui_render_dependencies. The rest of the code is #if 0ed out. This
	function will be removed shortly.
	(gui_install_packages): call install_confirm() with added_pkgs (a
	RCChannelSList) instead of added_hash (a GHashTable).
	(remove_confirm): Call rc_gui_render_dependencies. The rest of the
	code is #if 0ed out. This function too will be removed shortly.

	* gui-uri.c (select_all_updates, unselect_all_updates,
	select_all_available, unselect_all_available): Make these not static
	as they are called from outside of the URI handler now. This should
	probably be cleaned up a little bit.

	* gui-util.c (rc_gui_set_select_item, 
	rc_gui_sensitize_select_items): Added. Just convenience functions for
	showing the right select all/none pair and sensitizing them,
	respectively.

2000-12-29  Joe Shaw  <joe@helixcode.com>

	* gui-util.c (rc_gui_format_size_with_nbsp): Implemented.
	Just puts a &nbsp; instead of a regular space in the file sizes so
	it doesn't look so bad when the window is really small.

	* gui-html.c (rc_gui_render_package_line): Use
	rc_gui_format_size_with_nbsp(). Make rendering work properly for people
	running as non-root.
	(rc_gui_set_action_html): Table rendering fixes.
	(rc_gui_render_installed_html): Ditto.
	(rc_gui_render_available_html): Ditto.
	(rc_gui_show_executive_summary): Use rc_gui_format_size_with_nbsp().

	* gui-install.c (render_channel_pkgs): Use
	rc_gui_format_size_with_nbsp().

2000-12-28  Joe Shaw  <joe@helixcode.com>

	* Makefile.am: Don't pull in the widgets/* widgets.

	* progress-canvas.[ch], gui-shortcut.[ch]: Ditch
	these.

	* gui-channel.c: Ditch add_to_bar(), remove_from_bar(), and
	move_within_tree(). Ditch all references to the summary menu item.
	Use convenience function to show/hide the correct refresh items. Use
	new rc_gui_set_action_html() semantics. Don't move between groups in
	the shortcut bar anymore when (un)subscribing.

	* gui-glade.c: Ditch callbacks for showing the shortcut bar
	and channel tree.

	* gui-html.c: Ditch references to summary menu item. Use
	convenience function for showing and hiding the refresh items.
	(rc_gui_render_package_line): Pass a pointer, not an integer, as part
	of the info URI when running as non-root. This was never converted
	over and was causing crashes.
	(rc_gui_set_action_html): New semantics and refactored. Instead of 
	taking an integer page_num, it takes an ActionType and an additional
	argument. This makes things a lot cleaner when dealing with the
	summary and adds support for correctly creating headers and footers
	for the news, featured, subscribed, and unsubscribed channels pages.
	(rc_gui_show_news_page, rc_gui_show_featured_page,
	rc_gui_show_subscribed_page, rc_gui_show_unsubscribed_page): New pages
	that render to the summary's HTML widget. These display the news and
	the various different channels. The channels pages need a little HTML
	loving, but they work.

	* gui-init.c: Ditch references to summary menu item and
	the show/hide shortcut/tree items. Use convenience function for 
	showing and hiding the refresh items. Ditch the tree macros.
	(populate_channel_list, populate_channel_tree): Removed.
	(populate_navigation_bar): Added. Uses much cleaner URI semantics to
	make the code a lot simpler. Creates one group "Navigation" and 5
	icons for each of the general application views (summary, news,
	featured, subscribed, unsubscribed). There is some #if 0ed out code
	for adding a "Shortcuts" group later so people can add their own
	neato little shortcuts.
	(rc_gui_news_fetch): Added. Fetches the RDF file from the server and
	passes it off to be parsed.
	(rc_gui_news_clear): Added. Clears out all the old news stuff.
	(rc_gui_shortcut_selected): Added; callback for clicking on something
	in the shortcut bar. It passes the URI off to the URI handler.
	(summary_refresh_clicked): Refetch the news. Not sure if this should
	be here seeing as there is a news refresh item... Also, don't try to
	repopulate the channel list (as it doesn't exist anymore)
	(news_refresh_clicked): Added. Refetches the news.

	* gui-install.c: Removed references to summary menu item. Use
	convenience functions to show/hide the right refresh items.

	* gui-register.c: Ditto.

	* gui-uri.c: Ditto.
	(rc_gui_handle_updater_uri): Added new handlers for going to the news,
	featured channels, subscribed channels, and unsubscribed channels
	pages. Added a "web" URI handler to fetch a web page and display it in
	the HTML widget. This is used for the news. Ah, the beginnings of the
	Red Carpet web browser.

	* gui-util.c: Change DEFAULT_HOST_ROOT to axon port 8000.
	(rc_gui_set_refresh_item): Convenience function to show the right
	refresh item and hide the wrong ones.

	* widgets: Removed. Since the shortcut-bar was moved into
	gal, we don't need any of these anymore.

2000-12-22  Vladimir Vukicevic  <vladimir@helixcode.com>

	* gui-channel.c, gui-channel.h: Ignore channel if the
	packageinfo can't be downloaded, instead of erroring out

	* gui-html.c: handle subscribed and unsubscribed info page
	paths correctly

	* subscription.c: Create the directory with mode 0755, not 0644

2000-12-15  Vladimir Vukicevic  <vladimir@helixcode.com>

	* gui-install.c: Hacked-up code to use
	new dependency stuff. Will need help later on.

	* gui-html.c: Use NUM_SECTIONS instead of
	magic number 5 to avoid crashes if the sections change.

	* gui-util.c: use RC_IMPORTANCE_MAX instead
	of another magic number 5.

	* gui.h: pull out NUM_SECTIONS magic define
	here, for lack of a better place.

2000-12-12  Joe Shaw  <joe@helixcode.com>

	* gui-html.c (render_updates_html): New page from Anna for
	when the user doesn't have any packages installed from a channel.

2000-12-11  Joe Shaw  <joe@helixcode.com>

	* gui-html.c (rc_gui_render_updates_html): In the case where
	there are no new updates, display nice text.
	(rc_gui_show_executive_summary): Put in nice layout and text by Anna 
	and Rachel, respectively. Closes Mothra #41.

	* gui-uri.c (rc_gui_handle_uri): Added a handler for
	"channel_name", which matches by channel name (surprise!). Added 
	compound URI support, so that you can do updater:uri1#updater:uri2 
	and they will all be executed in order.

2000-12-11  Joe Shaw  <joe@helixcode.com>

	* gui-html.c (rc_gui_render_package_line): Add a colspan for
	install/remove pages.
	(rc_gui_render_updates_html): Don't write the <html> tags to the
	stream; fixes a crash. Change the shade of yellow. Close out the
	<body> and <html> tags.
	(rc_gui_render_installed_html, rc_gui_render_available_html): Use the 
	curved corners; change layout a bit.
	(rc_gui_set_action_html): Use new icons, change layout.
	(rc_gui_show_executive_summary): Change layout. Show the update info
	for that package in the executive summary. Don't show non-urgent
	updates anymore.

2000-12-07  Joe Shaw  <joe@helixcode.com>

	* gui-channel.c (channel_refresh_clicked): Set the window to
	modal.

	* gui-glade.c (rc_gui_do_search): Cover more HTML widgets;
	don't crash. Clean up.

	* gui-init.c (download_channel_info): Hide/desensitize
	inappropriate widgets. Even those these don't show up, in the event of
	an error, we want to hide these anyway.
	(summary_refresh_clicked): Set the window to modal.

	* gui-register.c (rc_register): Hide/desensitize
	inappropriate widgets.

	* gui-init.c (rc_gui_channel_list_clear): Added. Clears and frees
	the channel list and channels.
	(summary_refresh_clicked): Refactored to work again.

2000-12-07  Joe Shaw  <joe@helixcode.com>

	* gui-init.c (main): Doh. DO get the mirrors and load the
	preferences before showing the registration page because, well, what if
	someone tries to get to the preferences there (Like Mr. Meeks did).

2000-12-07  Joe Shaw  <joe@helixcode.com>

	* gui-channel.c (rc_gui_channel_show): Fixed bug where going
	into an unsubscribed channel wouldn't show the unsubscribed HTML;
	rc_gui_render_info_html wasn't being called... as in, at all. Also
	fixed bug where subscribing/unsubscribing wouldn't do the right thing
	in the shortcut bar. Removed some #if 0ed code.

2000-12-07  Joe Shaw  <joe@helixcode.com>

	* gui-download.c (rc_gui_prepare_install_page): Change font
	size from +3 to +2.

	* gui-html.c (rc_gui_set_action_html): ditto.

	* gui-install.c (render_header_html): ditto.

	* gui-init.c (display_main_window): Move setting of the
	notebook tabs from here to content_area_init (they make more sense 
	there anyway). Move registration from here to main, as it was
	downloading channel info and THEN making you register.
	(main): Do registration after checking for root but before mirrors,
	preferences, packman initialization, and especially downloading channel
	info. *cough*

	* gui-register.c (apply_registration): Add case WHERE_OTHER 
	which I forgot before.
	(rc_register): Change font size form +3 to +2. Hide the main window and
	change the page to PAGE_CHANNELS after registration.

2000-12-07  Joe Shaw  <joe@helixcode.com>

	* gui-channel.c (channel_refresh_clicked): Show and hide the
	pause and resume buttons, respectively.

	* gui-init.c (content_area_init): Connect to the startup
	window's pause and resume buttons.
	(pause_clicked_cb, resume_clicked_cb): Handle the startup window's
	pause and resume buttons.
	(download_channel_info, summary_refresh_clicked): Show and hide the
	pause and resume buttons, respectively.

	* gui-glade.c (rc_gui_do_search): Fix that long standing
	search bug where if you searched for "fooba" on a page, went to a
	different page and searched for "fooba" and came back and searched for
	"fooba" it would say that there was no match. This bug was caused by
	a small change in the semantics of the searching in GtkHTML.

2000-12-07  Joe Shaw  <joe@helixcode.com>

	* gui-channel.c (channel_refresh_clicked): Bring up the
	download subwindow when refreshing a channel so that the user can't
	navigate the channel and crash things during long downloads.

	* gui-install.c (render_header_html): Header made to look
	like the rest in RC.

2000-12-07  Joe Shaw  <joe@helixcode.com>

	* gui-channel.c (rc_gui_channel_clear_data): #if 0ed out some
	code that was getting double freed. Removed freeing of the channel's
	dep_table as that is now done in rc_subchannel_slist_free.
	(rc_gui_channel_fetch_all_data): Remove call to
	rc_gui_channel_clear_data.
	(channel_refresh_clicked): Refactored a bit.

2000-12-06  Joe Shaw  <joe@helixcode.com>

	* Makefile.am: Add gui-log.[ch] and gui-log-display.[ch].

	* gui-download.c (rc_gui_set_progress_install): Made the info
	buttons hyperlinks.
	(rc_gui_get_install_type): Added, so you know if you're installing or
	removing.
	(html_color): Removed some #if 0ed code.

	* gui-html.c (set_action_html): Include an octothorpe in a
	font color tag where I forgot one before. Removed some #if 0ed code.
	(rc_gui_show_executive_summary): Don't show a channel if it doesn't
	have any updates in it.

	* gui-init.c (content_area_init): Initialize the log objects.
	(cancel_transfer): move to gui-install.c

	* gui-install.c (configure_step_cb, transaction_step_cb): 
	Write to the appropriate log.
	(download_files): Write to the download log.
	(verify_packages): Bring up an error box if the verification fails and
	abort the transaction. Write out to the verify log.
	(gui_install_packages): Reset the logs.
	(gui_remove_packages): Reset the logs.

	* gui-transfer.c (gui_transfer): Remove stale transfers left
	behind when a transfer failed.
	(file_info_cb, file_done_cb): Rework the way timers work so that you
	can get timer information from a finished transfer.

	* gui-uri.c (rc_gui_handle_uri): Wrap at 80 characters. Added
	URI handlers for download_log, verify_log, install_log, and remove_log.

	* gui-log.c: Added. Implements a simple logging object that
	can be written to, read from, and reset.

	* gui-log-display.c: Added. Displays windows of the logs.

2000-12-05  Joe Shaw  <joe@helixcode.com>

	* gui-download.c: Did some refactoring, removed #if 0ed code.
	Whee.
	(rc_gui_set_progress_remove): Added.

	* gui-init.c (main): 
	s/prepare_download_page/rc_gui_init_install_page

	* gui-install.c (gui_remove_packages): Rewritten. Still leaks
	a bit.

2000-12-04  Joe Shaw  <joe@helixcode.com>

	* gui-init.c (content_area_init): Connect to the delete_event
	of the small startup window as well.

	* gui-util.c (rc_gui_error_box): Change the HTML around to
	look like Anna's mockup (finally). Also hide and show the main window
	depending on whether the small window is up or not.

2000-12-04  Joe Shaw  <joe@helixcode.com>

	* gui-transfer.c (gui_transfer_get_error): Implemented.

	* gui-channel.c (rc_gui_channel_fetch_data): Use
	gui_transfer_get_error.
	(rc_gui_channel_update_package_lists): Make a failure to access the
	packaging system a non-fatal error.
	(rc_gui_channel_subscribe): clean up warning.

	* gui-init.c (rc_gui_channel_list_fetch): Use
	gui_transfer_get_error.
	(rc_gui_fetch_icon): Add error handling, using gui_transfer_get_error.
	If the operation is aborted, it will have a NULL icon.

	* gui-install.c (make_filename): Allow the user to retry
	creating the download directory, if aborted, it'll return a NULL
	filename.
	(gui_install_packages): Check for NULL filenames and bail out if
	we reach one.
	(download_files): Allow the user to abort a download if a file
	isn't found. Also, fix crash. Stupid GET_WIDGET/GTK_WIDGET...
	(rc_install_helper): Removed.

2000-12-01  Joe Shaw  <joe@helixcode.com>

	* gui-html.c (rc_gui_render_updates_html): Close the GtkHTML
	stream before calling rc_gui_render_packagesets_html. Opening a stream
	on an HTML widget with one that's already open causes a crash (or at
	least writing another <html> tag to it does).

	* gui-transfer.c (gui_transfer_destroy): Reset t->gt to NULL
	when the object is destroyed.
	(gui_transfer): Append transfer to list of current transfers if we're
	calling gnome_transfer_begin (and -NOT- when we call
	gnome_transfer_headers).
	(file_done_cb): If the cache is out of date and we need to make a real
	transfer, add transfer to list of current transfers then. This keeps 
	the current transfer list trimmed and keeps pausing of transfers from 
	crashing. Don't try to free the byte array if it's NULL; fixes failed
	assertion.

	* gui-install.c: Minor readability cleanup.

2000-12-01  Joe Shaw  <joe@helixcode.com>

	* gui.h: Add new enumerated type, ShortcutGroupType.

	* gui-channel.c (remove_from_bar): Add a second element of
	ShortcutGroupType. Remove an item from that group.
	(add_to_bar): Added. Does the opposite (surprise!) of remove_from_bar.
	(rc_gui_channel_subscribe, rc_gui_channel_unsubscribe): Reorder a bit;
	use add_to_bar.

	* gui-init.c (populate_channel_list): Use ShortcutGroupTypes
	instead of ints. Turn off featured channels for now and bring back
	unsubscribed channels.

2000-11-29  Joe Shaw  <joe@helixcode.com>

	* gui-init.c (rc_gui_fetch_icon): Bail out if there is no
	icon. Ye gods, don't crash!

2000-11-28  Joe Shaw  <joe@helixcode.com>

	* gui-transfer.c (file_done_cb): Don't free the data if
	t->data and data are equal. Fixes Mothra #80.

2000-11-28  Joe Shaw  <joe@helixcode.com>

	* gui-html.c: change "imageid" to "id" because of GtkHTML
	API changes.

	* gui-uri.c: ditto.

2000-11-21  Joe Shaw  <joe@helixcode.com>

	* gui-transfer.c (file_done_cb): Don't abort the transfer 
	because it really doesn't make any sense to. This was probably a 
	holdover from the old caching stuff in rc-transfer. Free the right 
	byte array. Quit from the main loop if we're supposed to be blocking. 
	This fixes broken transfers that hit the cache. Doh!

2000-11-21  Joe Shaw  <joe@helixcode.com>

	* Makefile.am: Added gui-transfer.[ch]. Removed
	rc-transfer.[ch].

	* gui-channel.c: Changed all rc-transfer calls to the
	equivalent gui-transfer calls.
	(rc_gui_channel_fetch_data): Drop the icons stuff, as this was badly
	broken before and in fact didn't do anything with them. Made a failure
	in parsing the XML a non-fatal error that can be retried.
	(rc_gui_channel_fetch_all_data): Got rid of the icons stuff.
	(rc_gui_channel_unsubscribe): Clean up some #if 0ed out code.
	(channel_refresh_clicked): Replace the icons stuff with equivalent
	calls.

	* gui-channel.h (GUIChannel): moved featured from here into
	RCChannel.

	* gui-glade.c: Removed header dependency on rc-transfer.h
	removed.

	* gui-init.c: Changed all rc-transfer calls to the
	equivalent gui-transfer calls. Removed DLPixbuf structures.
	(download_channel_info): Removed the b0rk3d icons stuff.
	(rc_gui_channel_list_fetch): Ditto. Removed all of the title_file stuff
	as it is no longer used.
	(populate_channel_list): The featured flag is in the RCChannel now, so
	access it there.
	(summary_refresh_clicked): Replace icons stuff.
	(rc_gui_fetch_icon): New function. It fetches the icon for a particular
	GUIChannel. Much of the code formerly in rc_gui_channel_list_fetch is
	now here, and it makes a lot more sense. The remainder of it is from
	rc_gui_fetch_all_icons.
	(rc_gui_fetch_all_icons): Change this function to simply stepping
	through the channels and calling rc_gui_fetch_icon on them.

	* gui-install.c: Changed all rc-transfer calls to the
	equivalent gui-transfer calls.

	* gui-prefs.c: Changed all rc-transfer calls to the
	equivalent gui-transfer calls.

	* gui-shortcut.c: Changed all rc-transfer calls to the
	equivalent gui-transfer calls.

	* gui-uri.c: Changed all rc-transfer calls to the equivalent
	gui-transfer calls.
	(render_html_cb): Connect to the file_data signal on the GUITransfer
	instead of the GnomeTransfer.
	(finish_html_cb, free_gui_transfer_cb): Connect to the file_done
	signal on the GUITransfer instead of the GnomeTransfer.

	* gui-util.c: Removed a header dependency on rc-transfer.h
	that wasn't needed. Added RCErrorData struct for the new dealing of
	error boxes.
	(rc_gui_error_box): Return a gboolean and take a new enumerated type
	RCError to specify whether the operation should allow a retry, abort
	the operation, or abort the application.
	(error_ok_clicked): Changed to take an RCErrorData.
	(error_cancel_clicked): Added for when a user cancels a retry error.

	* gui-util.h: Added RCError enumeration.

	* gui.h: Remove dependency on rc-transfer.h

	* mirror.c (update_mirrors): Change rc-transfer calls to
	equivalent gui-transfer calls.

2000-11-09  Joe Shaw  <joe@helixcode.com>

	* cache.c: Removed some archaic #if 0ed code.

	* gui-channel.c (rc_gui_channel_connect_signals): Make 
	static.
	(rc_gui_channel_disconnect_signals): Ditto.
	(rc_gui_channel_subscribe): Do not call remove_from_bar() because we
	don't have an unsubscribed shortcut bar.
	(move_within_tree): Added. Moves channels between the subscribed and
	unsubscribed groups.
	(rc_gui_channel_select): Added. This is now the way that you should
	switch between channels. Passing NULL to it means that we're not
	selecting any channel (only used for the summary right now).

	* gui-glade.c (show_shortcuts_clicked): Callback for when
	the "show shortcuts" is clicked in the menu. It shows/hides the
	shortcut bar and saves the setting.
	(show_tree_clicked): Ditto, except for the tree.
	(dont_show_clicked): Callback for when the "Don't show this message
	again" it clicked.

	* gui-html.c (rc_gui_render_installed_html): Add a blank
	after the last element of each category.
	(rc_gui_set_action_html): Try to get more consistent layout in the
	title bar when the channel is not subscribed to. Also close the
	stream as it was causing crashes with newer GtkHTMLs.
	(rc_gui_show_executive_summary): Set marginwidth and marginheight to 0
	instead of 1 to get rid of one pixel's worth of white space. Reworded
	some of the text.

	* gui-init.c: Define MAKE_LEAF and MAKE_ROOT (stolen from
	bug-buddy) for easy dealing with GtkCTree.
	(rc_setup_e_paned): Use hbox1 instead of vbox15.
	(begin_application): Broken up into many more functions.
	(initialize_packman): Bring up the packman structure.
	(download_channel_info): Download channel info and display it in the
	small dialog box.
	(display_main_window): Show the big window and set the buttons'
	initial state correctly.
	(content_area_init): Initialize and connect signals to the new
	download_html widget. Make the new CTree not ugly. Always show
	the new checkboxes in the view menu, and set them based on saved
	settings.
	(populate_channel_tree): New function, populates the channel tree.
	(populate_channel_list): Call populate_channel_tree. Perhaps this
	shouldn't be called here and instead be called wherever
	populate_channel_list() is called. Change "Unsubscribed Channels" to
	"Featured Channels". Because of this, the logic was changed a bit when
	adding channels to the shortcut bar. Do not call
	gtk_widget_show_all(vbox) as it will show the shortcut bar when it
	should be hidden. Instead, just show the shortcut bar and then show
	the vbox when appropriate elsewhere.
	(refresh_summary_clicked): Call rc_gui_channel_select(NULL) before
	showing the executive summary.

	* gui-install.c (make_filename): Changed make_filenames to
	only take one URL at a time.
	(install_dependency_check): Make requested_pkgs a pointer to an
	RCPackageSList, not a **.
	(configure_progress_cb, configure_step_cb, configure_done_cb,
	transaction_progress_cb, transaction_step_cb, transaction_done_cb):
	Shuffled around a bit.
	(download_files): Added with a large chunk from the old
	gui_install_packages(). Given a list of URLs to download from, a
	list of filenames to write to, and the total size, it downloads
	arbitrary files and saves them to disk, while updating the HTML
	display correctly.
	(verify_packages): Given a list of packages, this verifies the
	signatures using Ian's packman wrapper around RCVerification. Based
	upon user preferences, if the package cannot be verified, it will pop
	up a dialog asking if the user wants to continue. If it fails, it
	currently bombs out silently, so that'll need to be fixed. It also
	updates the HTML display correctly as it steps through.
	(install_packages): Code taken largely from the old rc_install_helper
	for connecting signals to RCPackman signals, running the transaction,
	etc.
	(rc_gui_channel_update_all): Pass in the current channel, to get rid
	of using gtk_object_{set|get}_data.
	(ok_clicked_cb): Simplified a great deal.
	(gui_install_packages): Step through the package list, get the sum of
	the sizes, get the URL and filename of the package, and optionally of
	the signature as well. Make calls download_files(), verify_packages(),
	and install_packages(), update the channel lists after an install,
	and cleanup after itself.

	* gui-prefs.c: Add SignatureConfig.
	(gui_prefs_get_signature_ask): Get a boolean on whether or not to 
	ask before installing.
	(gui_prefs_set_signature_ask): Set the boolean and save it.
	(on_sign_ask_enable_toggled): Signal that the property box has changed.
	(on_cache_enable_toggled): Desensitize the cache difference.

	* gui-shortcut.c (shortcut_terminate_transfer): Check to
	make sure rct is non-NULL. Free the channel list and reset it to NULL.
	(shortcut_summary): Get rid of the call to
	rc_gui_channel_disconnect_signals and setting appinfo->current_channel
	to NULL and instead call rc_gui_channel_select(NULL).
	(shortcut_channel): Gutted as most of this code was moved to the new
	function rc_gui_channel_select. In fact, pretty much all this does is
	terminate transfers and call rc_gui_channel_select.
	(rc_gui_tree_channel_selected): New function, selects either the
	summary or the appropriate channel to go to.

	* gui-uri.c (rc_gui_handle_uri): Call rc_gui_channel_select
	as appropriate for the updater:summary and updater:channel URIs.
	(render_html_cb): Cleaned up as ghas->html will always be defined; thus
	only call gtk_html_write().
	(finish_html_cb): Ditto. Also, don't end the HTML stream if we are
	dealing with an HTTP HEAD transfer.
	(free_rc_transfer_cb): Ditto.

	* gui-util.c (rc_gui_error_box): Hide the startup dialog
	and show the main window.

	* rc-transfer.c (file_info_cb): Just return if we are
	dealing with an HTTP HEAD request.
	(file_done_cb): If it is an HTTP HEAD transfer and the cache is fresh,
	get the data from the cache. If the transfer is aborted, don't return
	since we want to clean up after ourselves.
	(rc_transfer): Set the rct->url here, and call gnome_transfer_headers
	if it is an HTTP URL (as opposed to file).

	* gui-download.c: New file. It is responsible for the
	actual rendering of the HTML on the download page. This should probably
	be moved into gui-html.c at some point. I'll think about it.

	* Makefile.am: Build gui-download.[ch].

2000-11-09  Ian Peters  <itp@helixcode.com>

	* gui-install.c: Use rc_packman_get_features.  So this is
	now broken because we _transact takes an RCPackageSList, but since
	joe is rewriting gui-install I'm not worried.

2000-11-02  Ian Peters  <itp@helixcode.com>

	* gui-channel.c:
	(rc_gui_channel_update_package_lists): section is in the package not
	the spec now

	* gui-html.c:
	(rc_gui_render_installed_html): installed_size is in the package not
	the spec now
	(rc_gui_render_package_info_html): installed and installed_size are
	in the package, not the spec

	* gui-install.d:
	(install_dependency_check): to get our channel id, follow the pointer
	trail up to our parent
	(render_channel_pkgs): installed is in the package, not the spec
	(install_confirm): installed_size is in the package, not the spec

	* gui-util.c:
	(rc_gui_split_by_package_category): the section is in the package, not
	the spec

2000-11-02  Ian Peters  <itp@helixcode.com>

	* gui-install.c: fix some stale references to
	rc_relation_string [now rc_package_relation_to_string] and update->url
	[now update->package_url]

2000-11-01  Joe Shaw  <joe@helixcode.com>

	* gui-html.c (rc_gui_render_updates_html,
	rc_gui_render_available_html, rc_gui_render_installed_html): Reformat
	the text a bit so it's shorter and sweeter. I can't actually test how
	it looks right now though.

	* gui-uri.c (rc_gui_html_download): Don't deal with
	gtkhtml-stream at all; just use the standard gtkhtml functions.

	* rc-transfer.c (file_done_cb): Stopping the emission of
	the file_done signal in GNOME_TRANSFER_COMPLETE states caused HTML
	streams to not be closed, leaving incomplete images and leaked streams.
	Many thanks to Larry who followed all of the code paths to figure out 
	that it was our problem and not his problem. Heh. Anyway, I think this
	may cause a few issues with cancelled transfers, but I will look into
	that a little later. This fixes the problem Braford and Tuomas were 
	having, and I think it'll fix the problem I was having.

2000-10-29  Ian Peters  <itp@helixcode.com>

	* gui-glade.c: include e-[h]paned.h
	(rc_main_e_paned_new): to be called from the glade, create a new
	e_hpaned for the main notebook tab.

	* gui-init.c: include e-paned.h
	(rc_setup_e_paned): to be called after the glade is initialized,
	to move the secret widgets into the e-hpaned.
	(main): call rc_setup_e_paned right after rc_glade_init

2000-10-26  Joe Shaw  <joe@helixcode.com>

	* gui-install.c (gui_install_packages): I have an idea:
	let's NOT leak the entire package we're downloading. Also, write to
	the file with rc_write() instead of just write(). Closes Mothra #77.

2000-10-26  Vladimir Vukicevic  <vladimir@helixcode.com>

	* gui-install.c: Code to make it print prettier
	conflicts/unresolved bits.

2000-10-26  Joe Shaw  <joe@helixcode.com>

	* rc-transfer.c (rc_transfer): Don't say "Name Unresolved"
	if a gnome_transfer_begin() fails on a file URL. Heh. Instead say
	"File not found". Dum de dum.

2000-10-26  Joe Shaw  <joe@helixcode.com>

	* gui-install.c (install_confirm, remove_confirm): Show
	the buttons. Fixes the problem Jacob and Chris were seeing of no
	Next button after having failed dependencies.

2000-10-26  Joe Shaw  <joe@helixcode.com>

	* gui-util.c (rc_gui_error_box): Hide the cancel_dialog if
	it was up when we got an error, cause it'll cause a crash.

2000-10-26  Ian Peters  <itp@helixcode.com>

	* Makefile.am, test/Makefile.am, tools/Makefile.am: add
	-lutil to the link line

2000-10-26  Vladimir Vukicevic  <vladimir@helixcode.com>

	* gui-install.c: Preliminary real version of
	the unresolved deps/conflicts page. .. 

2000-10-25  Ian Peters  <itp@helixcode.com>

	* gui-html.c (rc_gui_render_package_info_html): wrap the
	description in <pre> tags, so that it lays out correctly

2000-10-25  Joe Shaw  <joe@helixcode.com>

	* gui-uti.c (rc_gui_html_download): A NULL URL is not an
	error condition.

2000-10-25  Joe Shaw  <joe@helixcode.com>

	* cache.c (gui_cache_fresh): It is hard being the dumbest
	person alive.

2000-10-25  Vladimir Vukicevic  <vladimir@helixcode.com>

	* gui-install.c: shoot me now

2000-10-25  Joe Shaw  <joe@helixcode.com>

	* gui-html.c (render_updates_html, render_available_html):
	Right-justify the Select All and Select None buttons.

2000-10-25  Vladimir Vukicevic  <vladimir@helixcode.com>

	* gui-init.c: go even harder to pretend that we're root,
	since /someone/ overloaded harder. ;-)

	* gui-install.c: Preliminary code to give a page if
	there are either unresolved packages or conflicts.. needs love.

	* gui-uri.c: Handle the pointers-as-strings correctly.
	Solaris borkedness doesn't hadle %p like linux/netbsd do, so
	we force the strtoul to always be base-16. This still needs
	to be 64-bit safe.

2000-10-25  Joe Shaw  <joe@helixcode.com>

	* gui-html.c (render_updates_html, render_available_html,
	render_installed_html, rc_gui_set_action_html): Changed the text at 
	the top to make more sense, added a legend for the checkbox icons, 
	and swapped the "Keyword Search" entry and "Select All/Select None" 
	buttons.
	(rc_gui_show_executive_summary): Move the header code out of here
	and into rc_gut_set_action_html where it belongs. Also, if you're
	not subscribed to any channels, it shouldn't show the "Update Now!"
	button. Fixes Mothra #74.

2000-10-24  Joe Shaw  <joe@helixcode.com>

	* gui-register.c (rc_gui_register): More niceness. Closes
	Mothra #37. HA!

2000-10-24  Joe Shaw  <joe@helixcode.com>

	* gui-html.c (render_avaialble_html): Did some stuff to the
	HTML. Still a WIP.

	* gui-register.c (rc_gui_register): Implemented Anna's new
	and gorgeous design. Still some issues to iron out, but it's there.

2000-10-24  Joe Shaw  <joe@helixcode.com>

	* gui-prefs.c: Added handlers for the new entry. Changed
	the gui_prefs_get_cache_info() call to include the difference allowed
	for the cache.

	* cache.c (gui_cache_fresh): Take the new cache difference
	into account when determining if the cache is fresh.
	(gui_cache_add): Updated for new API.
	(gui_cache_get): Ditto.

	* gui-install.c (gui_install_packages): Ditto.

	* rc-transfer.c (file_done_cb): Ditto.
	(file_info_cb): Ditto.

2000-10-24  Joe Shaw  <joe@helixcode.com>

	* gui-install.c (gui_remove_packages): Made removing packages
	use the GUI. This is a similar codepath to gui_install_packages, so
	they could probably be merged at some point.

2000-10-23  Vladimir Vukicevic  <vladimir@helixcode.com>

	* gui-channel.c: Don't show updates for packages
	which are held. (This could maybe get added to other_updates
	at some point..)

	* gui-install.c: Don't keep trying to uninstall
	packages if it's a conflict other than PACKAGE or PROVIDE.

2000-10-20  Vladimir Vukicevic  <vladimir@helixcode.com>

	* Reorganized gui.c. Added files (below), gave non-static functions
	rc_gui prefix. Some more cleanup will be needed to make everything
	use a similar namespace.

	* gui-glade.c: Fixed borked 3l33t r/\nd0|\/| ab00t b0x

	* gui-glade.c, gui-glade.h: Callbacks for
	widgets defined in Glade

	* subscription.c, subscription.h: Renamed to
	rc_gui,	use rc_gui_subscribe instead of rc_gui_channel_subscribe.
	(sim. for others)

2000-10-20  Joe Shaw  <joe@helixcode.com>

	* gui-install.c (gui_install_packages): Due to the ordering
	of the icons, call progress_canvas_set_inverted(!post_configure) 
	instead of post_configure.

	* progress-canvas.c (progess_canvas_set_inverted): Actually
	invert. Duh. This should fix the problems on RPM.

2000-10-20  Joe Shaw  <joe@helixcode.com>

	* mirror.c: #include gui-util.h to get rid of some warnings.

2000-10-20  Joe Shaw  <joe@helixcode.com>

	* gui-install.c (gui_install_packages): Show the pause
	and cancel buttons and hide the resume button. Pause wasn't showing
	up when you did an install for the nth time (n > 1) unless you did
	a channel refresh before then. Fixed.
	Set the main_notebook page to PAGE_CHANNELS, not PAGE_UPDATES (which
	isn't even a valid page for that notebook).
	(ok_clicked_cb): Remove the config_step_cb and transaction_step_cb
	callbacks. They weren't being removed previously, and there were
	leftover signal connections, so that you got n callbacks for n times
	of installing packages. It doesn't have any adverse affect, but that
	shouldn't be happening anyway.

	* gui-init.c (summary_refresh_clicked): show the pause
	button and hide the resume button. These wouldn't show up if you did
	a refresh after installing packages. Fixed.

2000-10-20  Vladimir Vukicevic  <vladimir@helixcode.com>

	* mirror.c: Fix small bug that caused mirrors
	to crash if you changed mirrors (don't modify internal
	Gurl ptr to path)

2000-10-20  Vladimir Vukicevic  <vladimir@helixcode.com>

	* Makefile.am: forgot gui-shortcut.h

	* gui-init.c: minor buglet that caused crashes on
	some distros in the check function

	* mirror.c: Added a #include of gui-util.h (get rid
	of warning)

2000-10-20  Joe Shaw  <joe@helixcode.com>

	* gui-html.c: Replaced the old "Available" button with the
	new "Install" button and the old "Installed" button with the new
	"Remove" button. Closes Mothra #66.

2000-10-20  Vladimir Vukicevic  <vladimir@helixcode.com>

	* gui.c: stupid pcl cvs mode. remove THIS
	file.

2000-10-20  Vladimir Vukicevic  <vladimir@helixcode.com>

	* gui-channel.c, gui-channel.h: GUIChannel and
	associated functions.

	* gui-html.c, gui-html.h: Functions which generate
	HTML for display. Also use rc_gui_html_download for info page.

	* gui-init.c: Main function, all initialization. Use
	rc_gui_channel_new for creating GUIChannels.

	* gui-register.c, gui-register.h: All registration
	stuff

	* gui-shortcut.c, gui-shortcut.h: Functions dealing
	with the shortcut bar

	* gui-uri.c, gui-uri.h: URI handling functions.
	Added rc_gui_html_download to download an URI to a specified HTML
	and/or Stream.

	* gui-util.c, gui-util.h: Misc. functions

	* gui.c: Removed

	* gui.h: Some common structs (AppInfo) and a few misc. common
	functions

	* mirror.c, rc-transfer.c, cache.c,
	  gui-install.c:
	Use rc_gui_* functs

	* Makefile.am: Updated to reflect new files

2000-10-19  Joe Shaw  <joe@helixcode.com>

	* gui.c: Move the packaging system initialization out of
	content_area_init where it makes no sense and into begin_application()
	after the main window is initialized. That way, we can pop up an error
	dialog and loop or fail depending on the severity of the error. w00p!
	Oh, closes Mothra #68.

2000-10-19  Ian Peters  <itp@helixcode.com>

	* gui.c (show_executive_summary): kill the hackish &nbsp;'s.
	GtkHTML will get fixed.

2000-10-19  Joe Shaw  <joe@helixcode.com>

	* gui.c: Added right-clicking to the shortcut bar.
	(shortcut_terminate_transfers): New function. Just split a chunk of
	code out of channel_selected and moved it into here.
	(shortcut_summary): New function. Shows the executive summary when
	left-clicked on in the shortcut bar or right-clicked and picked from
	a popup menu
	(shortcut_channel): New function. Shows the channel when left-clicked
	on in the shortcut bar or right-clicked and picked from a popup menu
	(shortcut_subscribe): New function. Subscribes to the channel when
	picked from a popup menu.
	(shortcut_unsubscribe): New function. Guess what it does?
	(channel_selected): Overhauled to handle right-clicking. Most of the
	old code was moved out into the aforementioned shortcut_* functions.
	(rc_registered): Changed "RedCarpet" to "red-carpet"
	(apply_registration): Changed "RedCarpet" to "red-carpet"
	(main): Changed "Red Carpet" to "red-carpet"

	* gui-prefs.c (proxy_config_save, gui_prefs_load): Set the
	prefix to "red-carpet" from "RedCarpet" (yes, there were two files
	being created). You'll lose your settings and have to reregister as
	a result of this, unless you move your RedCarpet

2000-10-19  Joe Shaw  <joe@helixcode.com>

	* gui.c (show_executive_summary): Replace the executive
	summary banner with something that looks more like the channel
	headings and makes it more clear that you're looking at the executive
	summary.

2000-10-19  Ian Peters  <itp@helixcode.com>

	* gui.c (about_clicked): add Anna to the about box

2000-10-19  Joe Shaw  <joe@helixcode.com>

	* gui.c (render_package_line_html): Pass the op parameter
	in. (Fixes a crash in the installed HTML page)
	(show_channel_info): Hide the package HTML. Fixes Mothra #65

2000-10-18  Vladimir Vukicevic  <vladimir@helixcode.com>

	* gui.c: Use images instead of check button widgets;
	depends on latest gtkhtml (will be in 0.7). Speed improvements.

2000-10-18  Joe Shaw  <joe@helixcode.com>

	* rc-transfer.c (rc_transfer_get_current_transfers): Changed
	to return a GSList of RCTransfers, not GnomeTransfers.
	(file_done_cb, rc_transfer_new): Changed to reflect new list.

	* gui-prefs.c (apply_proxy_settings): Changed to reflect
	new list.

	* gui.c (pause_clicked_cb, resume_clicked_cb): Changed
	to reflect new list.

	* gui-install.c (cancel_transfer): Moved into gui.c.
	(gui_install_packages): Removed signal connection to cancel_transfer.

	* gui.c (content_area_init): Added signal connection for
	cancel_transfer.
	(cancel_transfer): Moved here and rehashed. Before we were getting
	crashes when you would cancel transfers because I was an idiot. I am
	smarter now, and I realize that we can get the necessary transfer
	(there should only be one) by calling 
	rc_transfer_get_current_transfers. But, I need to get to data in the
	RCTransfer struct and not just the GnomeTransfer in it, so that
	explains the above changes.

2000-10-18  Joe Shaw  <joe@helixcode.com>

	* rc-transfer.h: Add offset to RCTransfer struct

	* rc-transfer.c (file_paused_cb): If we pause the transfer,
	set the offset to where we paused.
	(file_data_cb): subtract the offset from gnome_transfer_bytes() so we
	get accurate speed estimates from when the transfer was resumed.
	Yippee.

2000-10-18  Joe Shaw  <joe@helixcode.com>

	* gui-install.c (cancel_transfer): Handle cancelling of
	paused transfers.

	* rc-transfer.c (file_paused_cb): Fixed a bug in which the
	paused flag was not getting set if there wasn't a timer.

	* gui.c (load_html_image): Who would have thought that not
	passing file URIs through to gnome-transfer would have sped things up?
	I *KNOW*! Me neither! And did you know that the url variable being
	passed to open() should have been das_url instead of url? Wow.

2000-10-18  Joe Shaw  <joe@helixcode.com>

	* gui.c (channel_refresh_clicked, summary_refresh_clicked,
	begin_application): Hide the cancel button.
	(cancel_clicked_cb): Added. Simply gtk_widget_shows the cancel_dialog.
	(content_area_init): Connect to the cancel_button's clicked signal,
	and set the cancel_dialog to hide on close. Glade is br0k3d.
	(render_updates_html, render_available_html, render_installed_html):
	Show the new info.png file instead of the temporary "XXX" thing.
	(render_package_html): Show the new close.png instead of "Close".

	* progress-canvas.c (progress_canvas_hide_images,
	progress_canvas_show_images): Removed these short-lived functions, as
	they are not used anywhere.
	(progress_canvas_set_state): Removed the switching of the highlighting
	of inverted images.
	(progress_canvas_set_inverted): Actually switch the images if the
	inversion is changing. Because of this, it removes the necessity of
	what was being done (and why I removed the stuff) in
	progress_canvas_set_state. Closes Mothra #29.

	* rc-transfer.c (file_info_cb): Set rct->file_size before
	trying to hit the cache.
	(file_paused_cb): If the file is paused before it has size information,
	we don't want the total size to say -1, so we don't set the pause text.

	* rc-transfer.h: Added an aborted flag.

2000-10-17  Joe Shaw  <joe@helixcode.com>

	* gui.c (do_search): Pop up a dialog if the search results
	aren't found. Closes Mothra bug #49.

	* rc-transfer.c: Stop the occassional crashes. Duh.

2000-10-16  Joe Shaw  <joe@helixcode.com>

	* gui-install.c (gui_install_packages): If downloading a 
	package bails out, it should download properly now. Also gives more 
	useful info on what exactly is being downloaded. Also resets the 
	progress label to an empty string after it is done downloading

	* gui.c (fetch_all_icons): Correctly reset the progress
	meters after completing a file. Fixed a typo of the "single_progress"
	widget.
	(fetch_all_channel_data): Give more info on what channel is being
	downloaded, and also correctly reset progress meters.
	(summary_refresh_clicked): Properly reset the inverted state to FALSE
	and set the state to 0. Also display proper text. Also reset to empty
	when done.
	(show_executive_summary): Clarify some text and fixed a typo.
	(begin_application): Reorder some stuff so that things (inverted and
	state) are set on the download page before the download page is shown.
	Also provide more useful information on what is happening (there was
	none before).

	* progress-canvas.c: Removed some broken code that wasn't
	being used

	* rc-transfer.c (file_info_cb): Set up a timer.
	(file_data_cb): Restart the timer if the transfer was paused. Changed
	the layout of the progress bars so that a nicer looking format is
	shown. It shows shorter sizes (100k instead of 100000) and will display
	a speed if appropriate.
	(file_done_cb): Destroy the timer.
	(file_paused_cb): New function that stops the timer and sets a paused
	flag
	(rc_transfer_new): Connect to the file_paused signal.

	* rc-transfer.h: Add a timer and paused flag.

2000-10-16  Vladimir Vukicevic  <vladimir@helixcode.com>

	* gui.c, gui.h: Added code for both package
	sets and for image checkboxes, both turned off by ifdefs until
	such a time as we figure out how to integrate them correctly.

2000-10-14  Joe Shaw  <joe@helixcode.com>

	* gui.c (render_info_html): Hide the package info when the
	user goes to the info page. This makes sense to me.
	(show_executive_summary): Hide the package info when the user goes
	to the executive summary, because it shouldn't be shown when the user
	goes back to a channel (IMO).
	(channel_refresh_clicked): Hide the package info here too.

2000-10-14  Joe Shaw  <joe@helixcode.com>

	* gui.c (render_updates_html, render_available_html,
	render_installed_html): Add links to the new updater:info URI. Right
	now it is "XXX", but that will be replaced with an icon shortly.
	(render_package_html): New. This is what the URI handler calls to
	actually display the package info. It will pop up the HTML widget if
	it isn't there. There is a "Close" link that will close it (via a new
	updater:close URI). Closes Mothra #36.
	(handle_updater_uri): Add handlers for "info" and "close" as mentioned
	above.
	(content_area_init): Set appinfo->package_html, connect the 
	link_clicked signal, and hide the widget by default.

	* gui.h: Add appinfo->package_html.

2000-10-13  Joe Shaw  <joe@helixcode.com>

	* gui-install.c, gui-install.h,
	rc-transfer.c, rc-transfer.h: Added copyright
	and license info.

	* gui.c (select_all_available, unselect_all_available):
	Added. These handle selecting and unselecting all of the checkboxes in
	the available software page.
	(set_action_html): Show the "Select All" and "Select None" buttons if
	on the right page and the available_select bit is on.
	(handle_updater_uri): Add handlers for these.

2000-10-13  Joe Shaw  <joe@helixcode.com>

	* gui-install.c (make_filenames): Fixed a bug in which
	it was doing the if backwards (checking for !foo instead of foo)
	and causing a crash aside from putting the packages in the wrong
	place.
	(gui_install_packages): Check to see if we're using a mirror and
	the channel is allowed to be mirrored.

	* gui.c (get_host): Removed the mirroring stuff from here.
	It just doesn't work out.
	(fetch_channel_list): Fetch channels.xml.gz from the mirror if we
	have one. Fetch the title_file and icon_file from the mirror as well.
	(fetch_channel_data): Fetch the packageinfo.xml.gz file from the
	mirror if we're allowed to.
	(render_info_html): Fetch the info HTML from the mirror if we're
	allowed to.

	* mirror.c (merge_mirror_url_and_path): Convenience function
	for merging the path from a FQURL and the mirror URL.

	* rc-transfer.h: Removed the gzipped property from the
	RCTransfer struct.

	* rc-transfer.c (file_info_cb): Always tell the size to the
	cache functions (it would pass -1 if the file was gzipped)
	(rc_transfer): Remove some #if 0ed code that is no longer used because
	of the gzipping stuff
	(rc_transfer_gz): Removed.

2000-10-13  Vladimir Vukicevic  <vladimir@helixcode.com>

	* gui.c: Use new distro code to figure out which
	channels are relevant.

2000-10-11  Joe Shaw  <joe@helixcode.com>

	* Makefile.am: Add mirror.c and mirror.h to the source list

	* gui-prefs.c: Add handling for the mirror list.
	(gui_prefs_get_mirror_url): New function to get the mirror URL.

	* gui.c (get_host): Changed to handle mirrors. However, this
	combined with the way rc_build_url works, I don't think this is going
	to work. I need to think about it some more and get an RPM system to
	test on.
	(fetch_channel_list): If RC_ME_HARDER is set, it will fetch all
	channel data regardless of distribution.
	(clear_channel_data): Check to see if the dep_table is NULL before
	trying to destroy it, so we can avoid the failed assertion.
	(main): Call refresh_mirror_list so that the mirror list is displayed
	from the file saved in /var/lib/mirrors.xml if applicable.

	* mirror.c: Added. Handles mirroring stuff.

2000-10-06  Vladimir Vukicevic  <vladimir@helixcode.com>

	* gui-install.c: don't hide OK button, and fix
	package removes

2000-10-06  Ian Peters  <itp@helixcode.com>

	* gui-install.c
	(make_filenames): use the cache dir from gui-prefs, don't hardcode
	/var/cache/redcarpet
	(render_channel_pkgs): check that channel is valid before
	dereferencing it, and use generic icon and title if channel is NULL.
	NB: we need some kind of generic icon, art people?

2000-10-06  Joe Shaw  <joe@helixcode.com>

	* gui-install.c (update_channels): Always update all of the
	subscribe channel lists after doing an update of a single channel, as
	there may be (and in fact is likely to have) overlap.

	* gui.c: Set the default host to "axon.helixcode.com:8080"

2000-10-05  Vladimir Vukicevic  <vladimir@helixcode.com>

	* Makefile.am, test/Makefile.am, tools/Makefile.am:
	refer to top_builddir for libraries instead of top_srcidr

	* rc-transfer.c: no debug

2000-10-05  Ian Peters  <itp@helixcode.com>

	* gui-install.c:
	(print_channel_hdr_line): added.  Prints the header to a colorful block
	in the html.
	(print_channel_line): added.  prints a line of stuff.
	(print_channel_blank_line): added.  White space between colorful
	blocks.
	(format_pkg_version): added.  Hack to turn the version and release into
	something I can print on the screen.
	(render_channel_pkgs): fixed up to use the preceding functions.  Also,
	query the system to see if there was an older version of the package
	we're installing already on the system, and report that, so that it
	looks like an upgrade to the user (which it is).
	(install_confirm): fixicated to use the print_channel_foo functions and
	the render_channel_pkgs where appropriate.
	(ok_clicked_cb): disconnect the ok_clicked_cb callback correctly to
	avoid that nasty and slippery callback-buildup bug.

2000-10-05  Joe Shaw  <joe@helixcode.com>

	* gui-install.c (install_confirm): Disable menu items in
	the confirm page.
	(gui_install_packages): Disable menu items when downloading/installing
	the packages, and reenable them after finishing.
	(ok_clicked_cb): Moved the remainder of the sensitizing code into
	update_channels. Also fixed a bug where widgets were being desensitized
	when they should only have been hidden.
	(remove_confirm): Disable menu items in the confirm page.
	(gui_remove_packages): Disable menu items when removing the packages,
	and reenable them after finishing. Also go back to the channels/summary
	notebook page after finishing.

	* gui.c (do_search): Allow searches in the install/remove
	confirmation page.
	(show_channel_info): Sensitize the search menu item.
	(summary_refresh_clicked): Desensitize the search menu item and
	resensitize after the update is completed.
	(show_executive_summary): Remove the old #if 0ed out function. 
	(begin_application): Desensitize the search menu item and
	resensitize after the initial info is downloaded.

2000-10-05  Ian Peters  <itp@helixcode.com>

	* gui.c:
	(handle_update_uri): before you dereference a pointer, you must make
	sure that it is not NULL.

2000-10-04  Joe Shaw  <joe@helixcode.com>

	* gui-install.c (ok_clicked_cb): Moved the updating stuff
	out of here. Also made sure to hide/show the correct refresh menu item
	in addition to sensitizing them.
	(update_channels): Added. Contains the update stuff that was formerly
	in ok_clicked_cb.
	(gui_install_packages): Call update_channels after running the
	transaction.
	(gui_remove_packages): Call update_channels after running the
	transaction.

2000-10-04  Joe Shaw  <joe@helixcode.com>

	* gui-install.c (gui_install_packages): Set the channel data
	on the RCPackman object.
	(ok_clicked_cb): Get the channel data from the RCPackman and decide
	what page to send you back to (and handle appropriate menu items and
	updating of package info).

	* gui.c (begin_application): Hide the pause and resume
	buttons appropraitely.
	(summary_refresh_clicked): Call show_executive_summary (duh).
	(show_executive_summary): No longer static (it's called from
	gui-install.c).

2000-10-04  Joe Shaw  <joe@helixcode.com>

	* gui.c (do_search): Remove GtkHTML bug workaround, as it's
	fixed in HEAD.
	(show_executive_summary): Add a <br>

2000-10-04  Vladimir Vukicevic  <vladimir@helixcode.com>

	* cache.c, gui-install.c, gui.c,
	gui.h, rc-transfer.c: New error_box calls
	(now taking only a html fragment and a gboolean whether the
	error is fatal or not).

2000-10-02  Ian Peters  <itp@helixcode.com>

	* gui-install.c: scale the images to 36x36 to match the rest
	of joe's gui stuff.  Pull the header html code out to use in both
	_install and _remove.  Added some white space into install_confirm,
	to make it look better.  Worked in an ugly _remove because we need it,
	even though I'm going to end up merging that into _install because I
	can and should.

2000-10-02  Joe Shaw  <joe@helixcode.com>

	* gui.c: #include ctype.h
	(render_updates_html): Change width and height from
	36x36 to 24x24.
	(set_action_html): Added height and width tags to all of the images.
	(show_executive_summary): Overhaul.

	* gui.c (number_to_word): Handle numbers <= 0. I think I was
	on crack when I did this the first time.

2000-10-02  Ian Peters  <itp@helixcode.com>

	* gui-install.c: new gui a la anna, some other stuff of more
	importance than I am giving it in this Changelog because I am way tired

	* gui.c, gui.h: export format_size

2000-10-02  Joe Shaw  <joe@helixcode.com>

	* gui.c (fetch_all_channel_data): clear_channel_data before
	doing a fetch_channel_data so the refresh doesn't get the subchannels
	multiple times.

2000-10-02  Vladimir Vukicevic  <vladimir@helixcode.com>

	* gui.c (handle_update_uri): copy the list of available
	updates to the uberlist instead of just concat'ing it

2000-10-02  Joe Shaw  <joe@helixcode.com>

	* gui.c (render_updates_html, render_available_html,
	render_installed_html): Handle packages that don't have a release tag
	better. Also made them look nice and work better with non-root users.
	(set_action_html): Do not display any buttons at the bottom for
	non-root users except for Subscribe/Unsubscribe. Only show the "About"
	button in the bar at the top if the user is not subscribed to the
	channel.

2000-10-02  Joe Shaw  <joe@helixcode.com>

	* gui.c (display_link_bar): Remove this function.
	(render_info_html, render_updates_html, render_available_html,
	render_installed_html): Removed. All the _real functions renamed back
	to their regular counterparts. ie, we're no longer using iframes.
	(set_action_html): Also set the header HTML widget's stuff.

2000-10-01  Ian Peters  <itp@helixcode.com>

	* gui-install.c: clean up efficiency stuff, handle the url's
	after the change I suggested to vlad in the last commit.  Switch to a
	hash table for handling which packages came from where (much more
	efficient).  Other stuff.  This commit really needs to happen for joe
	right now.

2000-10-01  Joe Shaw  <joe@helixcode.com>

	* gui.c (disconnect_channel_signals): fix the crash.

2000-10-01  Vladimir Vukicevic  <vladimir@helixcode.com>

	* gui.c: Speedy hack.

2000-10-01  Joe Shaw  <joe@helixcode.com>

	* gui.c (render_updates_html_real): Create the search entry
	here instead of connect_channel_signals.
	(render_installed_html_real): Ditto.
	(render_available_html_real): Ditto.
	(disconnect_channel_signals): Check to see if the object is destroyed
	before destroying it.
	(show_executive_summary): Remove the #if 0 that no longer applies.
	(handle_update_uri): Soptimize this. Also added a new handler,
	"install_all", which will install all of the available updates in all
	subscribed channels.
	(set_action_html): change the URI from noop to install_all.

	* rc-transfer.c (file_done_cb): Stop the emission of the
	file_done signal so this function isn't called multiple times.

2000-09-30  Joe Shaw  <joe@helixcode.com>

	* gui.c: Remove the code Vlad added to hide the OK button
	during the initial download and move it to begin_application, because
	that is where it belongs.
	(show_channel_info): Add calls to set_action_html after setting the
	page, because the channel's signals aren't connected then. (This maybe
	should be changed. I'll think more about it)
	(set_action_html): Don't bail out if channel is NULL unless the page
	is the info page (because we need to check to see if we're subscribed).
	Also added a special case for page_num to be -1 to represent the
	executive summary. It's a noop right now.
	(install_all_clicked): removed.
	(show_executive_summary): make a call to set_action_html.
	(handle_update_uri): Added a noop URI

2000-09-29  Joe Shaw  <joe@helixcode.com>

	* gui.c: Remove the automatic call to set the action_html
	to PAGE_UPDATES. I thought I had fixed it before. Fixes bug #18.

2000-09-29  Vladimir Vukicevic  <vladimir@helixcode.com>

	* gui.c: Hide OK button during initial download

	* gui-install.c: Do the acrual install bits, show nice GUI.
	The progress bars are a little confused atm, but mostly look OK.

2000-09-29  Ian Peters  <itp@helixcode.com>

	* gui-install.c, gui-install.h: write a lot of the
	gui-install stuff, modulo downloading and installing.  Just the GUI,
	ma'am.  And it sucks because I hate gtkhtml and the GUI blows ass
	because I have no idea where I'm going with this.

2000-09-29  Joe Shaw  <joe@helixcode.com>

	* cache.c: Turn debugging on by default
	(gui_cache_fresh): Provide more info when checking on cache freshness.

	* rc-transfer.c (file_done_cb): Don't cache local file URLs
	because that's stupid.
	(file_info_cb): Don't try to do a cache lookup on local file URLs.

2000-09-29  Joe Shaw  <joe@helixcode.com>

	* gui.c (show_executive_summary): Cleaned up the summary
	bar near the top.
	(render_available_html_real): Fixed a bug that was causing crahses
	when a checkbox was clicked. Doh!
	(render_updates_html_real): Added a missing </td> tag.
	(render_available_html_real): Ditto.

	* gui.h: Removed mutex from the appinfo structure. Forgot to
	commit this last time. It's a relic from my threading fun.

2000-09-28  Joe Shaw  <joe@helixcode.com>

	* gui.c (apply_registration): Send email to 
	register@helixcode.com instead of joe@helixcode.com

2000-09-28  Joe Shaw  <joe@helixcode.com>

	* gui.h: New widget (action_html) for clicking on the
	big yellow pill buttons at the bottom.

	* gui.c (rc_scroll_html_widget_new): Always ignore the
	actual shadow specifier from the glade and set to to none, because the
	shadows always look like my butt.
	(qualified_url): New function. Checks to see if the URL is fully
	qualified; this is just to reduce some code duplication elsewhere in
	the file.
	(fetch_channel_list): Check to see if the URL specified in the
	channels.xml and handle correctly in both cases.
	(do_search): g_strdup the text being searched so we're not constantly
	peeking into the entry. Also work around a recently introduced GtkHTML
	bug. It still doesn't work quite right, but it's a little better now.
	(search_case_toggled): Free the text so we don't leak.
	(search_box_activated): Callback for typing a search query into the
	entry on the HTML page.
	(display_link_bar): New function that displays the link bar across the
	top which replaces the old tabs.
	(render_info_html): Changed to use iframe.
	(render_info_html_real): Added, and contains almost all of what
	render_info_html used to be.
	(render_updates_html): Uses the iframe.
	(render_updates_html_real): Contains most of what render_updates_html
	used to, and it's a little different GUI.
	(render_available_html): Uses the iframe.
	(render_available_html_real): Overhauled GUI
	(render_installed_html): Uses the iframe.
	(render_installed_html_real): Overhauled GUI
	(set_action_html): Changed from "set_head_html", but it does a lot of
	the same stuff (displays the yellow pill buttons).
	(connect_channel_signals): Create embedded entries for the search boxes
	in the updates, available software, and installed software pages.
	(disconnect_channel_signals): Destroy the search entries.
	(show_executive_summary): Large GUI changes.
	(load_html_image): If the URI being passed to this function is an
	updater URI, pass this on to handle_update_uri. This is necessary
	because we use iframes, and when you have an iframe, it emits a
	url_requested signal. This function is misnamed these days and should
	probably be changed to something else.
	(content_area_init): Assign the action_html widget to 
	appinfo->action_html.

2000-09-11  Vladimir Vukicevic  <vladimir@helixcode.com>

	* gui.c: Changed to use rc_build_url to handle relative/abs
	URLs correctly

2000-09-08  Vladimir Vukicevic  <vladimir@helixcode.com>

	* rc-transfer.c: Changed the file done callback so that
	it correctly quits the main loop even if there was an error.

2000-08-31  Ian Peters  <itp@helixcode.com>

	* gui-install.c: pretty much gutted this guy.  It was all
	crap anyway, and if you were really attached to the old one, there's
	always cvs.  This is to encourage me to actually do the rewrite,
	rather than sitting on my ass and watching the old one limp through
	the day.

2000-08-31  Vladimir Vukicevic  <vladimir@helixcode.com>

	* gui.c: Have it check if rcchannel->path starts
	with http: or ftp:, and if so, use that as the URL instead
	of trying to build one itself. (so the channel can live
	on another server.)

2000-08-30  Vladimir Vukicevic  <vladimir@helixcode.com>

	* gui.c: Made it use rcchannel->pkginfo_file instead of
	hardcoding in packageinfo.xml.gz, also use rc_subchannel_parse
	instead of rc_subchannel_parse_xml; also a change in
	install_all_clicked in an effort to try to get that working.

2000-08-24  Ian Peters  <itp@helixcode.com>

	* .cvsignore: added red-carpet

2000-08-24  Joe Shaw  <joe@helixcode.com>

	* gui.c (section_icon_name): Reordered to match the icons.

2000-08-24  Joe Shaw  <joe@helixcode.com>

	* pkginfo.c: Some warning cleanup around the code.
	(rc_subchannel_parse_xml): Change the way the categories are parsed.
	Now it expects to get a string that it looks up in the section table.
	This needs some testing with some XML generated from the new make_pkgs.

2000-08-24  Joe Shaw  <joe@helixcode.com>

	* gui.c (search_clicked): Added. Callback for when "Search" 
	is selected from the View menu.
	(search_close_clicked): Added. Callback for when "Close" is clicked on
	in the search dialog.
	(search_case_toggled): Added. Callback for when the case sensitive
	checkbox is toggled.
	(search_button_clicked): Added. Callback for when the "Search" button
	is clicked on in the search dialog.
	(do_search): Added. Determines what HTML widget we should be talking
	to and performs a GtkHTML search based on the text given and the case
	sensitivity. It will repeat the last search if it finds that the text
	and sensitivity are the same.
	(set_page): Changed from a macro into a function. This is
	so I can free up some search data, and gives us more flexibility with
	only minor overhead.
	(notebook_page_switched): Free up some search data
	(handle_update_uri): Added a searching URI handler.

	* gui.h (AppInfo): Added "last_search" and "case_sensitive" 
	fields for searching info.

2000-08-24  Ian Peters  <itp@helixcode.com>

	* cache.c, cache.h, gui-install.c,
	gui-install.h, gui.c, gui.h,
	subscription.c, subscription.h: updated for new
	include loving

	* helix-packman-helper.c, helix-packman-helper.h:
	removed.  these are so old it's laughable.

2000-10-20  Joe Shaw  <joe@helixcode.com>

	* gui-html.c (rc_gui_set_action_html): Swap the "Install" and
	"Remove" buttons. It just seemed more correct to have "Install" before
	"Remove".

2000-10-18  Joe Shaw  <joe@helixcode.com>

	* gui-install.c: Lots of changes. Also, the indentation all over
	the file was messed up, so it's fixed. #include mirror.h
	(split_channel_list, render_header_html): Make static
	(update_total_progress): Shows cumulative byte progress of the entire
	download. Fixes part of Mothra #45.
	(cancel_transfer): Callback to cancel transfer.
	(gui_install_packages): Get rid of the count of packages being
	downloaded. We're using size now. Configure the total progress bar
	with the total size, not the number of packages. Don't hide the
	OK button; instead show it and make it not sensitive. This keeps the
	whole canvas from jiggling like it used to. Also show the cancel
	button. In the loop, connect to the file_data signal of the transfer
	to update_total_progress. Handle cancelling of transfers. This fixes
	Mothra bugs #45 and #46. Also properly update the total_progress on
	cache hits (in which case we wouldn't be getting file_data signals).
	(config_step_cb): Reworked with Ian's patch; we now set up the config
	stuff at step 0 and don't do the finishing up at step "total".
	(transaction_step_cb): Fixed a bug where the single_progress was
	being set and not the total_progress. Also did the same stuff as
	config_step_cb. That is, setting the GUI up (labels, progress bars) at
	step 0 instead of at the end of the previous step. This makes things
	happy on both RPM and dpkg systems (which have opposite
	config/transactions).
	(rc_install_helper): Don't do any setup here (taken care of in
	config_step_cb and transaction_step_cb), except for resetting the
	progress bars with proper text. Also hide the new cancel_button.
	Move the finishing up stuff from config_step_cb to after
	rc_packman_transact.

2000-08-23  Joe Shaw  <joe@helixcode.com>

	* common.h: Reordered the enumeration of sections.

	* distro.c: Added some new fields for the installer. Safe to
	ignore for now.

	* gui.c (split_by_package_category): New. Splits the packages
	into categories. Whee.
	(render_installed_html, render_available_html): Changed a little bit
	to display the packages by category. There is a lot of duplicated
	code between these two functions, so I am going to try to merge them
	nicely soon. Commented out the old ones.

2000-08-22  Ian Peters  <itp@helixcode.com>

	* rc-md5.c, rc-md5.h, rc-md5-private.h: some code I grabbed
	out of dpkg to do md5sum of files, altered to use standard glib types.
	This doesn't handle endianness issues (the code is there but we need to
	check for that in configure), but works.  The only thing you should
	include is rc-md5.h, and all you should need to do is
	rc_md5(filename)

	* Makefile.am: add rc-md5* to the libredcarpet sources

	* common.h: add an md5sum field to the RCPackageUpdate struct,
	which contains the md5 sum as calculated by the rc_md5 function of the
	package in question.

	* common.c: free the md5sum when we free the RCPackageUpdate

	* pkginfo.c: get the md5sum out of the xml file

	* make_pkgs.c: calculate and add the md5sum to the generated xml
	file

	* add_update.c: calculate and add the md5sum to the xml file

2000-08-21  Vladimir Vukicevic  <vladimir@helixcode.com>

	* channel.c, gui.c, gui-install.c, rc-rpmman.c:
	added #includes and other minor things to fix warnings

	* common.h: added suggests and recommends fields in RCPackage

	* deps.c, deps.h: Additions and data structure changes
	to support returning debian recommends and suggests. These are
	returned as extra entries in the ResolutionResult, two SLists of
	PackageSuggests and PackageRecommends, respectively.

	* pkginfo.c: added code to parse suggests/recommends, also
	fixed a naughty memory leak/buglet that someone introduced.

	* rc-debman.c: uncommented the suggests/recommends code

	* test_deps.c: made it print the suggests/recommends stuff

2000-08-21  Ian Peters  <itp@geodesic.helixcode.com>

	* gui.c: fix the annoying wiggle in the install page.  Basically
	what I do is connect to the size-request signal on the progress bar,
	set_usize to its current allocation, so that it can't reduce size later
	when we stop showing text.  I disconnect the signal after the first
	time it's called, and voila.  I don't love it but it works.

2000-08-20  Vladimir Vukicevic  <vladimir@helixcode.com>

	* channel.c, channel.h, pkginfo.c, pkginfo.h: Write
	out data into a tmpfile if it's compressed (indicated by
	compressed_len arg) and let gnome-xml handle the uncompression

	* gui.c, softmgr.c, test_deps.c: Update for new xml
	calls. Also move the root host back to geodesic.

2000-08-19  Ian Peters  <itp@geodesic.helixcode.com>

	* gnome-transfer.c: s/g_io_add_watch/g_io_add_watch_full/, and bump
	down the priority level (so as not to compete with the canvas stuff)

2000-08-19  Jacob "Ulysses" Berkman  <jacob@helixcode.com>

	* gui.c (show_channel_info): don't animate the group change
	(rand_helper): 
	(randomize_authors): 
	(about_clicked): randomize the author order

2000-08-16  Vladimir Vukicevic  <vladimir@helixcode.com>

	* gui.c: Fixed colspan=4 in updates page to make it pretty

	* gui-install.c: Fixed bugs where a loop was getting break'd
	instead of continue'd; also where g_slist_remove_link was being
	used but the result wasn't set back to the list

	* deps.c: minor cruft

2000-08-14  Jacob "Ulysses" Berkman  <jacob@helixcode.com>

	* gui.c (begin_application): go 1 -> 2 -> 3 -> 4

2000-08-14  Joe Shaw  <joe@helixcode.com>

	* gui.c (render_info_html): #if 0 out a chunk of code that was
	causing pixbuf loader crashes that were happening occasionally.
	(set_head_html): Added marginwidth and marginheight so that things
	are aligned properly. Also commented out a little bit of stuff that
	was also causing pixbuf crashes.
	(show_executive_summary): Show nice, pretty background.

2000-08-14  Jacob "Ulysses" Berkman  <jacob@helixcode.com>

	* gui.c (main): if we aren't subscribed to anything, show the
	unsubscribed channel tab by default
	(sb_icon_cb): return the channel icon if the id is 0
	(channel_selected): show the exec summmary if this is the exec
	summary button

2000-08-13  Joe Shaw  <joe@helixcode.com>

	* progress-canvas.c (progress_canvas_set_state): Fixed a bug in
	which the inverted state was being ignored.

	* gui.c (rc_glade_init): Split out some of the code from the top of
	content_area_init and put it into this new function, rc_glade_init. It
	creates the appinfo global structure and also initializes the glade
	stuff so that calling progress_canvas_init before content_area_init
	works properly.
	(main): Added a call to rc_glade_init before progress_canvas_init.

	* gui.c (main): Reorder so that progress_canvas_init is called 
	before content_area_init.
	(content_area_init): Invert the configure and install icons for the
	progress canvas if the systems configure before installing (like RPM).

2000-08-12  Joe Shaw  <joe@helixcode.com>

	* common.h: Added a title background image to RCChannel.

	* channel.c (rc_channel_parse_xml): Parse the bgimage XML property

	* gui.c (render_updates_html): Don't display the select all and
	select none buttons if we're running as non-root.
	(set_head_html): Add a background image for the channel title.

	* common.c (rc_mkdir): Remove assertion that allows ~ in the
	path.

	* gui-prefs.c (gui_prefs_load): Use the user's home directory as
	defined in $HOME instead of using ~/.

	* gui.c (render_updates_html): Use colspan=4 so it renders
	correctly and spans the entire table.

	* gui (render_updates_html): Use the new images instead of plain
	text hyperlinks.
	(set_head_html): Use file URLs and get the files from the SHAREDIR,
	so they'll work when you make install them.

2000-08-12  Jacob "Ulysses" Berkman  <jacob@helixcode.com>

	* progress-canvas.c: use the b&w icons

2000-08-10  Joe Shaw  <joe@helixcode.com>

	* gnome-transfer.c: Changed the Z_BUFSIZE from 16384 to 32768,
	because it seems to be more reliable for highly compressed stuff.
	Beware! Magic!
	(gunzip): Correctly set the error if there is one (so we don't see
	HTTP/1.1 200 OK as the error. Bad Jacob!)

	* gui.c (render_updates_html): Overhauled so that it has checkboxes
	now.
	(updates_checkbox_toggled): Added. Adds the package to the queue of
	those to be installed when the user clicks "Update Now!"
	(select_all_updates, unselect_all_updates): Added. These do what you
	would think, they click all of the checkboxes for you.
	(set_head_html): Got rid of the "install" URI because of the change
	to the updates HTML setup. So, I also cleared things up by changing
	"installptr" to "install", "removeptr" to "remove" and added a new one
	for the new updates HTML, "update".
	(handle_updater_uri): Changed installptr and removeptr as described
	above, and added new handlers for "update", "select_all", and
	"unselect_all".

2000-08-10  Jacob "Ulysses" Berkman  <jacob@helixcode.com>

	* rc-rpmman.c (rc_rpmInstall): rename from rpmInstall

	* gui.c (check_for_root): set not_root if we are not showing
	the dialog box

	* progress-canvas.[ch]: add some api for reversing steps 2 and
	3 for itp.

2000-08-10  Joe Shaw  <joe@helixcode.com>

	* add-update.c: Added. It adds an update to a package in the
	packageinfo.xml file. Yippee.

	* Makefile.am: Added rules to build add_update.

	* pkginfo.c: Minor indentation fix. Nothing to see here. Move along
	now.

2000-08-08  Joe Shaw  <joe@helixcode.com>

	* make-pkgs.c (escape_string): Added. This changes all instances of
	the greater than character to &gt; and less than to &lt; so that the
	XML parser doesn't barf. It is modeled after g_strescape in glib.
	(main): Get the summary and description of the package from the
	package. Yippee. Also put in a not-lame description of the first
	"update".

2000-08-05  Joe Shaw  <joe@helixcode.com>

	* gui-install.c (install_do_install): Added robustness for failed
	transfers. It will attempt to retry the download until it succeeds.

	* gui.c (fetch_channel_list): Improved robustness for failed
	transfers.
	(fetch_channel_data): Ditto.
	(set_head_html): Fixed warnings.

	* rc-transfer.c: Fixed the indentation all over that Jacob once
	again broke. Everyone give Mr. Berkman a hand!
	(file_done_cb): If the transfer fails, free the data and unset the 
	data field on the RCTransfer object, resulting in returning NULL to 
	the caller to let it know that the transfer failed
	(auth_required_cb): Ditto.
	(rc_transfer): Improve output so that it tells you WHY the transfer
	failed.

2000-08-03  Joe Shaw  <joe@helixcode.com>

	* gui.c (render_updates_html): Remove the link to install updates
	from the main HTML widget.
	(render_installed_html): Ditto.
	(render_available_html): Ditto.
	(show_channel_info): Don't show the preferences tab if there is only
	one subchannel (since right now there are no other things to put on
	the preferences tab and it just looks dumb)

2000-08-03  Joe Shaw  <joe@helixcode.com>

	* gui-install.c: Fix the sensitivity of menu items during and post-
	install and remove.

2000-08-02  Joe Shaw  <joe@helixcode.com>

	* gui.c (set_head_html): Don't show the cute little buttons if
	you're not root.

2000-08-02  Joe Shaw  <joe@helixcode.com>

	* gui.c (set_head_html): Now takes a page number as an argument
	and displays a link image in the upper right-hand corner that does
	what you think it should do on that page. Eliminates nasty scrolling!
	(notebook_page_switched): New signal handler on the notebook that will
	update the head HTML widget when the page is switched.
	(subscribe_channel): Make a manual call to set_head_html.
	(unsubscribe_channel): Ditto.
	(connect_channel_signals): Connect the notebook handler for the
	channel
	(disconnect_channel_signals: Disconnect the aforementioned handler.
	(channel_selected): Manual call to set_head_html.
	(handle_update_uri): Added g_return_if_fails where needed, removed
	the "remove" URI because it's never used, call set_head_html manually
	when switching channels.
	(content_area_init): Set up a signal handler for "link_clicked" on
	the head HTML widget.

	* gui.h: Fixed a typo: MinorNobebookPage

2000-08-02  Ian Peters  <itp@helixcode.com>

	* gui-install.c (install_html_helper): don't display a channel in
	subscribed or unsubscribed if we don't actually need any packages from
	it

2000-08-02  Ian Peters  <itp@helixcode.com>

	* gui.c (render_info_html): clear the info html widget and print
	"Loading page..." until the page actually starts to load

2000-08-02  Ian Peters  <itp@helixcode.com>

	* gui-install.c (install_html_helper): close a <ul> tag I forgot

	* gui.h: appinfo now has a list of all of the transfers going on
	for a specific channel, instead of the broken cbinfo struct.

	* gui.c (render_html_cb): fix the prototype a bit, add some
	sanity to the size check
	(finish_html_cb): end the html stream with the right condition
	depending on what the status of the transfer was
	(free_rc_transfer_cb): walk the list of transfers going on in the
	channel, and remove ourselves if we're the transfer that just finished.
	(render_info_html): no longer our responsibility to handle removing
	dead transfers, no longer need to store the id of all of the callbacks
	we create, cbinfo crap, etc.  Make sure to add this transfer to the
	channel_transfers, however.
	(channel_selected): walk the list of channel transfers, killing all
	transfers related to the last channel before loading the current one
	(load_html_image): kill the cbinfo crap, just make sure to add the
	transfer we start to the list of channel transfers

2000-08-01  Joe Shaw  <joe@helixcode.com>

	* common.c (rc_mkdir): Don't bail out if we're talking about the
	user's home directory.

	* gui.c (fetch_channel_info): Fix refreshing for non-root users
	who subscribe to a channel for one session. Also added a little rant
	about it because that's the sort of mood I am in.
	(update_package_lists): gtk_exit(1) instead of return if we can't open
	the RPM database; let's face it, if you are on an RPM system and you
	can't read the RPM database, you're fucked and you might as well be
	thrown out of the application anyway.

2000-08-01  Jacob "Ulysses" Berkman  <jacob@helixcode.com>

	* gui.c (content_area_init): look for the .glade in the
	installed place.  If we can't find one we seg fault for some
	reason.  Will debug later.

2000-08-01  Ian Peters  <itp@helixcode.com>

	* rc-debman.c: changed some of the category mappings

	* gui-install.c: fix install with deps, the code sucks and I am in
	a bad mood and I hope it works perfectly because the code makes me
	sick.  BTW refreshing channels doesn't work correctly because it's not
	refreshing all of the channels, for some reason, and since we're now
	installing and removing from multiple channels... if you want to check
	it out, on the current testing server, try installing gnucash on
	debian from the helix gnome channel, it should pull things in from
	the debian channel.

2000-08-01  Jacob "Ulysses" Berkman  <jacob@helixcode.com>

	* Makefile.am: make it distcheck

	* gui.c: tiny memleak fix

	* gui.c (sb_icon_cb): ref the pixbuf before we add the new button

	* deps.c: remove some unused code

	* *.[ch]: fix a lot of warnings

2000-07-31  Joe Shaw  <joe@helixcode.com

	* gui.c (render_html_cb): Fixed a violated assertion that occurred
	when the size parameter coming in was 0.

2000-07-31  Jacob "Ulysses" Berkman  <jacob@helixcode.com>

	* gui.c: load the correct file:'s

	* gui.c: fix some crashes when (un)subscribing and get the
	.xml.gz

	* rc-transfer.c (file_info_cb): emit the signals by name
	instead of calling the gnome-transfer signal emittion functions
	which I am about to delete

	* progress-canvas.c: fix centering

	* gui.h: add an icon pixbuf

	* gui.c (on_set_base): set some data on the html widget which
	is our base.  There might be a better way to do this...
	(rc_scroll_html_widget_new): connect the set base signal up
	(sb_icon_cb): actually try to load an icon
	(fetch_all_icons): load all icons in the list we are passed.  If
	we get an icon and the pixbuf ** is non-NULL, load a pixbuf into
	there.  This is used to prime the cache and what not
	(fetch_channel_list): load certain icons into our icon list and
	fix the function calls to pass around the icon list
	(fetch_channel_data): pass around some icons
	(fetch_all_channel_data): pass around some icons
	(render_info_html): set up the base url.  Hmm, now that I think
	about it, this is probably broken for non-directory things.  Will
	fix at next commit...
	(render_updates_html): format this more readably
	(show_channel_info): add a check for RC_DEBUG_TABS
	(set_head_html): function which updates the header html widget for
	the currently selected channel
	(channel_selected): call set_head_html
	(populate_channel_list): change the url we passed to be the id
	(load_html_image): add support for the base url on an html widget
	and only add to the info list if this is for the info widget
	(check_for_root): don't do the dialog if we are 1337
	(begin_application): handle the icon stuff

	* common.h: add icon, logo, and bgcolor fields

	* common.c (rc_channel_free): free the icon, logo, and bgcolor

	* channel.c (rc_channel_parse_xml): get the icon, logo, and
	bgcolor of the channel from the xml

	* cache.c (c): add a macro so cache debugging is quieted

2000-07-31  Joe Shaw  <joe@helixcode.com>

	* softmgr.c (install_packages): Change the call to 
	deps_resolution_new to get it to build.

	* gui-install.c (gui_install_packages): Change the call to
	deps_resolution_new to get it to build. It doesn't work across
	channels anymore. Ian, I'm leaving that one to you to fix.

	* gui.c (install_all_clicked): Added. It installs all of the
	updates for all of the channels you're subscribed to and that have
	updates. This connects to the Next button on the executive summary.
	It is still a little broken, however.

	* test_deps.c: Removed an unterminated #if 1 to get it to build.

2000-07-31  Vladimir Vukicevic  <vladimir@helixcode.com> 

	* deps.c: Added two args to the deps_resoltuion_new function:
	a list of preferred channels and a list of other channels. The
	preferred channel list is a list of channels which should be checked
	before the current channel. The other channel list is a list of
	channels that should be searched after the current channel. The
	resulting RCPackage's will have the proper spec.channel ID set,
	assuming the RCChannel struct passed to parse_xml has the channel ID
	filled in correctly.

	* test_deps.c: Now an eeeeeeevil command line tool that doesn't
	have readline and tab completion. Ew! But it does seem to work nicely.

2000-07-31  Joe Shaw  <joe@helixcode.com>

	* *.[ch]: Changed licensing to GPL.

	* gnome-transfer.c: Added support for file:// URLs.

	* gui.c (render_installed_html, render_available_html): Show the
	correct icon when running as non-root.
	(show_executive_summary): Desensitize the Next button when there are
	no new updates in any channel.
	(load_html_image): Added handling of file:// URLs.

2000-07-31  Ian Peters  <itp@helixcode.com>

	* common.h: fritzed with the RCPackageSection enum a little

	* make_pkgs.c: write out the section into the packageinfo.xml

	* pkginfo.c (rc_subchannel_parse_xml): read the section out of the
	package tag

	* gui.c (various): convert the section enum to an icon, and display
	in the gui instead of the jobs button
	point the thing back to geodesic ;)

2000-07-31  Joe Shaw <joe@helixcode.com>

	* common.c (rc_package_spec_compare): Renamed to
	rc_package_spec_compare_name. Namespace collsions are bad, m'kay?
	(rc_package_get_highest_importance_from_current): Added. Compares
	a package with what you currently have installed and gives you the
	highest importance in the history.

	* gui.c: Move from geodesic back to construct.
	(split_by_package_importance): Abstracted out of render_updates_html,
	breaks up a list of packages into an array of packages that are
	sorted by importance.
	(number_to_word): Convert numbers less than 10 into words for nice
	formatting.
	(render_updates_html): Call split_by_package importance. Some
	formatting goodies, handle package importances correctly.
	(show_executive_summary): Change this around a bit. It looks nicer now.
	(main): Change the name of the program to "Red Carpet".

2000-07-31  Joe Shaw  <joe@helixcode.com>

	* gui.c: Removed #if 0'ed channel_unselected and channel_selected
	functions and renamed the channel_selected2 signal to channel_selected.
	(show_executive_summary): Make the title of the channel a link to the
	channel data. HTML rules.
	(content_area_init): Connect the "link_clicked" signal to the 
	executive summary HTML widget. Remove the #warning and #if 0'ed out
	signal handlers.

	* cache.c: Revert Ian's remove.

	* cache.h: REVERT IAN'S REMOVE

	* Makefile.am: REVERT REVERT! FOR THE LOVE OF GOD MAN, REVERT!!

2000-07-31  Ian Peters  <itp@helixcode.com>

	* cache.c, cache.h: removed

	* Makefile.am: no cache.[ch]

2000-07-31  Jacob "Ulysses" Berkman  <jacob@helixcode.com>

	* rc-transfer.c (rc_transfer): set data to a new byte array
	instead of setting to NULL, which would indicate that we shouldn't
	be saving the data

2000-07-31  Joe Shaw  <joe@helixcode.com>

	* common.c (rc_mkdir): Added. Given a path, it will create the
	directory specified and all of the children directories that do not
	exist. It is the equivalent to mkdir -p at the shell.

	* cache.c (gui_cache_add): Changed mkdir to rc_mkdir.

	* gui-install.c (gui_install_packages): Ditto.

	* subscription.c (save_subscriptions): Ditto.

	* gui.c (render_available_html): Made the image not an anchor.
	Oops.
	(show_executive_summary): Added a little loop that builds a list of
	subscribed channels so we can pop up a different HTML page when the
	user is subscribed to 0 channels.

2000-07-31  Ian Peters  <itp@helixcode.com>

	* gui-install.c (gui_remove_packages): changed the text to match
	the renamed buttons

2000-07-30  Ian Peters  <itp@helixcode.com>

	* common.h: added RCPackageSection enum, and one of those to
	RCPackageSpec

	* gui-install.c (gui_install_next_stage): use the progress canvas
	(gui_install_packages): do some feeble memory management

	* packman_test.c (main): print the section

	* rc-debman.c (rc_debman_query_helper): fill in the section field

	* rc-rpmman.c (rc_rpmman_read_header): fill in the section field
	(other functions): fill in the section

2000-07-30  Jacob "Ulysses" Berkman  <jacob@helixcode.com>

	* gui-prefs.c (gui_prefs_get_cache_info): actually return
	instead of nothing.  Joe, I know where you live.

2000-07-30  Joe Shaw  <joe@helixcode.com>

	* gui-prefs.c (gui_load_prefs): Use ~/.redcarpet instead of
	~/redcarpet/cache

	* gui.c (check_for_root): Create the message box here and don't
	use glade because it crashes on some systems (like my desktop)

2000-07-30  Joe Shaw  <joe@helixcode.com>

	* gui-install.c (gui_install_packages): g_return_if_fail if it
	is being run as non-root.
	(gui_remove_packages): Ditto. Also added some bold in the spiel it
	gives. It could definitely use some HTML lovin'.

	* gui.c (render_installed_html, render_available_html): Don't
	create or show the install/remove links or the package checkboxes if
	it is being run as non-root. Also some code beautification of the HTML
	monstrosity that exists in these two functions.
	(subscribe_channel, unsubscribe_channel): Don't make the call into
	subscription.c that does the actual file manipulation for
	subscriptions.
	(check_for_root): New function; checks to see if the user is root and
	sets appinfo->not_root appropriately.
	(begin_application): Call check_for_root.

	* gui-prefs (gui_prefs_load): Set the default cache path depending
	on whether or not the updater is being run as root.

2000-07-30  Ian Peters  <itp@helixcode.com>

	* gui-install.c (verify_ok_clicked_cb, verify_cancel_clicked_cb):
	Added (callbacks for the verify page buttons)
	(gui_remove_packages): now switches to the verify page, draws some
	pretty html describing the situation, and asks the user whether to go
	ahead or not.  Could probably use some HTML loving from joe or nat or
	whoever.

2000-07-30  Ian Peters  <itp@helixcode.com>

	* deps.c: include vlad's phone fix

	* gui-install.c (gui_remove_packages): wrote the remove-with-deps
	stuff.  It works, afaict, although there may be secret bugs lurking in
	the OR-deps packages.  It does, however, give the exact same results
	as apt-get remove for all of the packages I've tested it on, so...

	* rc-debman.c (rc_debman_query_helper): ease up on the Recommends:
	dependency, as it appears no other debian tools take these seriously.

2000-07-30  Joe Shaw  <joe@helixcode.com>

	* gui-install.c (ok_clicked_cb): This function was using the old
	method for switching between the download view and the channel view.
	This has been fixed and handling for menu item sensitivity when
	appropriate has been added.
	(gui_install_packages): Ditto.

	* gui.c: All over this file sensitizing and desensitizing menu
	items when they should be.

2000-07-30  Joe Shaw  <joe@helixcode.com>

	* cache.c: Change the cache dir to /var/cache/redcarpet. Also
	handle creating the directory if it doesn't exist.

	* gui-install.c: Create the /var/lib/redcarpet and
	/var/lib/redcarpet/packages if they don't exist.

	* gui-prefs.c: Change cache dir to /var/cache/redcarpet

	* subscription.c: Change lib dir to /var/lib/redcarpet and
	create the directory if it doesn't already exist.

2000-07-29  Joe Shaw  <joe@helixcode.com>

	* cache.c: Handle root HTTP files better ("/")

	* gui-install.c: Sanity-check hiding of the pause and resume
	buttons.

	* gui-prefs.c: Added handling for the new cache preferences page
	(gui_prefs_get_proxy_info): Nicely handle when parameters are NULL.
	(gui_prefs_get_cache_info): Added.

	* rc-transfer.c (file_info, file_done): Obey cache preferences

2000-07-29  Joe Shaw  <joe@helixcode.com>

	* cache.c: Basically rewritten to be a more generic file cache
	instead of just channel stuff. gui_cache_fresh tells whether or not
	the file on disk is good enough. gui_cache_add adds a file to the
	cache, gui_cache_get gets a file from the cache.

	* gnome-transfer.c: Added a last_modified field.
	(parse_http_header): Parse the Last-Modified header and put it into
	the last_modified field on the GnomeTransfer object. I may move this
	into the GnomeTransferHTTP struct on the GnomeTransferPrivate struct
	and provide an accessor function for it; I haven't decided yet.
	(parse_http_time, parse_month): Routines for parsing the Last-Modified
	header into a sane format like a time_t. All 3 formats required by
	the HTTP 1.1 spec are parsed.
	(http_read): Reordered a bit so it is handled better for aborted
	transfers.
	(gnome_transfer_emit_info, gnome_transfer_emit_data,
	gnome_transfer_emit_done): Functions to emit its respective signal.
	Useful when you want to trick your signal handlers (like we do in the
	cache).

	* rc-transfer.c: A lot of stuff related to caching stuff.

2000-07-29  Jacob "Ulysses" Berkman  <jacob@helixcode.com>

	* rc-transfer.c (file_data_cb): draw the progress bar

	* gui.h: remove the item_num, as this is completely useless,
	and add an shortcut model and a current channel

	* gui.c (fetch_all_channel_data): draw the progress indicator
	(remove_from_bar): function to remove a channel from the shortcut
	bar it is in
	(subscribe_channel): made it work with the shortcut bar
	(unsubscribe_channel): ditto
	(disconnect_channel_signals): let it take non-NULL channels, since
	we will be passing it the global current channel, which may be
	NULL
	(channel_selected2): disconnect the signals and some other
	shortcut bar cleanup
	(show_executive_summary): disconnect the channel signals
	(begin_application): make the progress canvas go

	* gui-install.c (gui_install_next_stage): draw the progress
	indicator

	* Makefile.am (INCLUDES): use datadir/redcarpet instead of
	datadir/helix-update

2000-07-29  Ian Peters  <itp@helixcode.com>

	* gui.c (render_installed_html): add border="no" to <img> tags, so
	that there's no annoying blue border
	(render_available_html): same
	Changed DEFAULT_HOST_ROOT to geodesic.helixcode.com, since I need to
	do a lot of changing of the channel layout, which is a pain to do on
	construct

2000-07-29  Ian Peters  <itp@helixcode.com>

	* common.h (struct _RCChannel): added distribution, major, minor
	fields.

	* common.c (rc_channel_free): free the distribution

	* channel.c (rc_channel_parse_xml): grab the distribution, major,
	minor attributes from the channel tag

	* gui.c: moved the notebook enums and the set_page macro to gui.h,
	since I need them in gui-install.c
	(fetch_channel_list): determine our distro type, use it to filter out
	which channels we display to the user.

	* gui.h: added the notebook enums and the set_page macro from gui.c

2000-07-29  Vladimir Vukicevic  <vladimir@helixcode.com>

	* deps.c, deps.h: Fixed conflicts (Dep vs. DepItem breakagae);
	added support for atomically replacing packages

	* test_deps.c: Rewritten to be an interactive (or scriptable) thing

2000-07-29  Joe Shaw  <joe@helixcode.com>

	* gnome-transfer.c (gnome_transfer_bytes): Show the bytes sent in
	the file, and not just in that session.

	* gui-install.c: Added proper hiding/showing of the pause and
	resume buttons.
	(gui_install_packges): Changed gtk_widget_show_all to gtk_widget_show.

	* gui.c (content_area_init): Moved the signal handler for
	the summary refresh menu item here from fetch_all_channel_data.
	(render_installed_html): Made the icons hyperlinks for toggling the
	checkbox.
	(render_available_html): Ditto.
	(channel_selected2): Added a hack that sets the last channel that
	was selected on the shortcut bar's model so that the signal handlers
	can be properly disconnected. This is because there is an absence of
	a unselected signal on the ESB, which sucks.
	(populate_channel_list): Correctly handle refreshing the executive
	summary. It will clear out the shortcut bar if it is already
	populated instead of duplicating all of the entries.
	(update_handle_uri): Added handlers "install_toggle" and 
	"remove_toggle" which will toggle the checkboxes on available and
	installed HTML tabs, respectively. Also plug a small leak.
	(pause_clicked_cb): Added. Pauses all currently running transfers.
	(resume_clicked_cb): Added. Resumes all currently paused transfers.
	(content_area_init): Added handlers for the pause and resume buttons.

	* rc-transfer.c: Added a hack to turn off the pause button for
	transfers that are using the gzip streams, because they don't like
	being paused one bit. Because of the way that paused transfers work,
	the gzip code will probably have to be moved out of GnomeTransfer and
	into a handler in the "file_data" callback, which makes more sense
	anyhow.

2000-07-29  Jacob "Ulysses" Berkman  <jacob@helixcode.com>

	* gui.[ch]: lots of cleanup for the shortcut bar, and use the
	global channel list everywhere

2000-07-28  Ian Peters  <itp@helixcode.com>

	* gui-install.c (ok_clicked_cb): pass the gui_install struct, and
	conditionally free all of the callbacks we add in gui_install_packages.
	This was the cause of the can't-install-twice-in-one-session bug.
	For the record, this was a bitch to debug.
	(gui_install_packages): conditionally connect a few of the callbacks,
	based on whether the underlying packman object supports the interface.

	* gui.c (populate_channel_list): fix the thinko about placing
	channels in subscribed/unsubscribed.

2000-07-28  Joe Shaw  <joe@helixcode.com>

	* gui.c: Move connection of the activate signal for the summary
	view's refresh into fetch_channel_list. This isn't the best place
	for it to be, but since we're probably going to be moving to a global
	channel list anyway, it may eventually be a moot point. What is a moot
	point now is trying to use it because Jacob broke stuff. Oh, also
	fixed some prototypes and stuff.

2000-07-28  Jacob "Ulysses" Berkman  <jacob@helixcode.com>

	* gui.c, gui.h, redcarpet.glade: hacks to work with the
	shortcut bar

2000-07-28  Joe Shaw  <joe@helixcode.com>

	* gui.c: Changed all references of "refresh_clicked" to
	"channel_refresh_clicked" and changed all references to the menu items
	and that function to the appropriate one depending on whether or not
	we're refreshing the channel or the summary. Also made sure that never
	are both items being shown.

2000-07-28  Ian Peters  <itp@helixcode.com>

	* gui.c (show_channel_info): reorder a lot of the shiz in this
	function, to make sure we show the tabs before we block on rendering
	the big html pages.

2000-07-28  Ian Peters  <itp@helixcode.com>

	* gui.c: include gtkhtml-private, call
	gtk_html_private_calc_scrollbars after ending html streams.  This is a
	hack that lewing suggested until gtkhtml gets fixed.  I know it's bad
	but it's necessary, for now.

2000-07-28  Jacob "Ulysses" Berkman  <jacob@helixcode.com>

	* gui.[ch]: new exec summary page tabification

2000-07-28  Ian Peters  <itp@helixcode.com>

	* gui-install.c (gui_install_next_stage): cleanup the progress bar
	fiddling.  No longer hide the widgets, just remove the label and set
	the value to 0.
	(ok_clicked_cb): comment out the three signal_disconnects, they were
	giving warnings, I don't think they're needed, and I'll remove them for
	good in a bit as long as nothing comes up.
	(gui_install_next_stage): clean up the state transitions

2000-07-28  Ian Peters  <itp@helixcode.com>

	* common.h (struct _RCChannel): removed the news_url element, added
	subs_url and unsubs_url for the web pages for subscribed and
	unsubscribed users, respectively

	* common.c (rc_channel_free): no more news_url, g_free the subs_url
	and unsubs_url

	* channel.c (rc_channel_parse_xml): don't grab the news_url from
	the xml, grab the subs_url and unsubs_url

	* gui.c (free_rc_transfer_cb): walk the list of callbacks in
	appinfo, removing those connected to the RCTransfer we are freeing,
	since those callbacks won't exist.  This should have been trivial but
	I managed to fuck it up by not thinking about the how a g_slist_remove
	invalidates the iter->next.  D'oh.
	(fetch_channel_data): set the subscription flag before checking the
	url, because we now have to check the correct one.  Cut out the
	commented code, added a note about only fetching and displaying the
	html when the user select the channel.  Select the correct url,
	subscribed vs. unsubscribed.
	(render_info_html): render the correct html, subscribed or
	unsubscribed.

2000-07-28  Joe Shaw  <joe@helixcode.com>

	* gui-install.c (gui_install_packages): Change call to
	rc_transfer_new to match updated API.

	* gui.c (fetch_channel_list): Change call to rc_transfer_new to
	match updated API. Loop the network attempt as long as there are
	errors getting the channel list.
	(fetch_channel_data): Change call to rc_transfer_new to match updated
	API.
	(render_info_html): Change call to rc_transfer_new to match updated
	API. Also change call to gtk_signal_disconnect to take a GnomeTransfer
	instead of a RCTransfer. 
	(load_html_image): ditto.
	(populate_channel_list): Removed CList row select/unselect signal
	connections.
	(content_area_init): Move them here.

2000-07-27  Ian Peters  <itp@helixcode.com>

	* gui.h: include rc-transfer.h.  Added a CBInfo, which is a struct
	where we keep information about the different callbacks we've added
	to do the loading of the info page, in case we get interrupted, and
	need to remove them.  Add one of these, along with a GtkHTMLStream, to
	the appinfo struct.

	* gui.c (finish_html_cb): if we are the info_html stream (checked
	against the one in the appinfo struct), we need to end the stream.
	(render_info_html): store the callbacks we add in CBInfo structs, added
	to a list in appinfo.  Store the stream in appinfo.  If necessary,
	remove previously existing callbacks, and close the previous stream.
	(load_html_image): store our added callbacks in appinfo

2000-07-27  Jacob "Ulysses" Berkman  <jacob@helixcode.com>

	* gui.c (rc_scroll_html_widget_new): use int1 as "put
	scrollbars" and int2 as "add a shadow"

2000-07-27  Joe Shaw  <joe@helixcode.com>

	* gui.c (error_ok_clicked): Added. Sets the main notebook page
	back to what it was previously and tries to continue. It is the
	responsibility of the function that called error_box to retry any
	broken behavior, if possible.
	(fetch_channel_list): If the fetching of the channel list fails, keep
	trying.
	(handle_update_uri): Added a new URI, updater:prefs_proxy, which will
	bring up the prefs dialog. For some reason, though, it can't get the
	prefs notebook out of the glade, so I can't explicitly set the tabs
	yet. Oh well...
	(content_area_init): Connect the link_clicked signal to the error
	HTML widget.

	* rc-transfer.c (file_done): Plug up a little leak.
	(auth_required): Pop up a nice error message with a link that allows
	the user to go right to the place where they need to fix their
	problem. HTML rules.

	* cache.c: Fix the build.

	* rc-transfer.c: Created a queue of the transfers that are going 
	on at any one time. 
	(rc_transfer_get_current_transfers): New function returns the queue.
	(file_done_cb): Put up an error box rather than g_erroring out of
	the app.
	(rc_transfer_new): Apply proxy settings to newly created trasfers.
	(auth_required_cb): Connected to the "auth_required" signal of
	GnomeTransfer to let the user know that his proxy settings are wrong.
	(rc_transfer, rc_transfer_gz): Changed the g_warnings into error_boxes.

	* gui-prefs.c (apply_proxy_settings): Reenabled. It gets a list
	of transfers from rc-transfer.c and then applies the proxy data to
	them.

	* gui.c: Changed the default host to
	construct.helixcode.com from just construct.
	(error_box) Moved the error box into the main window.
	Added a new element to the main notebook enum, 
	MAIN_NOTEBOOK_PAGE_ERROR. 

2000-07-27  Miguel de Icaza  <miguel@helixcode.com>

	* cache.c (gui_cache_channel_set_info): 

	* cache.h: Export helix_cache_prefix.

	* cache.c: Add config.h here.

2000-07-27  Jacob "Ulysses" Berkman  <jacob@helixcode.com>

	* gui.c (show_channel_info): turn off border on this notebook
	if there are no tabs
	(begin_application): use the new nootebook

	* gui.c (rc_scroll_html_widget_new): don't always put a
	vertical scroll bar
	(refresh_clicked): use the new notebook

	* rc-transfer.c (file_data_cb): call gnome_transfer_bytes()
	since we are now doing zipped files
	(rc_transfer_gz): wrapper for gnome_transfer_gz()

	* gui.c (fetch_channel_list): use the .gz stuff
	(fetch_channel_data): ditto

	* gnome-transfer.h: new function to unzip files

	* gnome-transfer.c: add support for gzipping
	(handle_http_statuscode): call _begin_offset_real() now
	(skip_string): util function for gzip header reading
	(read_gzip_header): read the gzip header file (from gnome-vfs)
	(gunzip): unzip some data, and emit the data signal when we have
	data
	(http_read): if we are unzipping, then unzip instead of emmitting
	a signal
	(http_read): if we are unzipping, then finish unzipping before we
	say we are done.  TODO: add an error state :)
	(ftp_data_read): if we are unzipping, then unzip instead of
	emmitting a signal
	(begin): turn this inside out
	(gnome_transfer_reset): clean up the gunzip stuff
	(gnome_transfer_begin_offset_real): new function which takes an
	unzip boolean
	(close_transfer): end the inflation

2000-07-27  Joe Shaw  <joe@helixcode.com>

	* gui.c (summary_clicked): Added. This (surprise!) takes you to
	the executive summary.
	(summary_refresh_clicked): Refreshes the executive summary when you
	click on the refresh menu item.
	(handle_update_uri): Added a handler for the summary URI, which does
	the same as summary_clicked above.

2000-07-27  Ian Peters  <itp@helixcode.com>

	* gui-install.c, gui-install.h: put these back (removed the
	wrong things by accident last time)

	* gui-transfer.c, gui-transfer.h: remove these

2000-07-27  Ian Peters  <itp@helixcode.com>

	* gui-transfer.c, gui-transfer.h: Removed.

	* rc-transfer.c, rc-transfer.h: new implementation of a simple
	way to transfer stuff easily with gui feedback.  This implementation
	features the ability to do multiple simultaneous transfers, block or
	non-block, and other nifty things.  I think it's better.

	* Makefile.am: link with rc-transfer.[ch], not gui-transfer.[ch].

	* gui-install.c (gui_install_next_stage): use progress_configure,
	don't make an adjustment by hand.  Other tweaks to the progress bars.
	Use rc-transfer also.
	(gui_install_packages): rc-transfer

	* gui-prefs.c: comment out some stuff until we figure out how to
	do the proxy stuff in the abscence of a single GnomeTransfer object
	like we had using gui-transfer.

	* gui.c: download using rc-transfer instead.  Stop using the
	wait window, use the main window instead.  Added three callbacks, and
	the ability to progressivily load info pages instead of blocking.
	It's nifty.  This is a really shitty changelog entry for such a large
	change, but it's late and I'm tired.  ;)

2000-07-27  Joe Shaw  <joe@helixcode.com>

	* common.c (rc_package_get_highest_importance): It was doing a
	backwards comparison. It also didn't handle the RC_IMPORTANCE_INVALID
	importance correctly.

	* gui.c: Mostly gutted show_updates and put into a new function
	called update_package_lists. This effectively makes the 3 lists
	model-view. You call show_updates to show them to the HTML widgets and
	you call update_package_lists to actually change them. They're
	stored on the GUIChannel object. This is necessary for the executive
	summary view.
	(get_packages_with_minimum): Added. Given a list of packages, it
	returns a new list with the ones that match or exceed a provided
	minimum importance.
	(show_executive_summary): First pass at the executive summary.

	* gui-install.c (gui_install_packages): Call update_package_lists
	before calling show_channel_info.

2000-07-26  Joe Shaw  <joe@helixcode.com>

	* gnome-transfer.c (http_read): Fixed a bug with pausing.

	* gui.c (clear_channel_data): Added. Cleans out a GUIChannel so
	that it can be refreshed.
	(fetch_channel_data): Plugged an enormous memory leak.
	(refresh_clicked): Added. Refreshes the current channel data.
	(exit_clicked): Changed to use gtk_exit instead of gtk_main_quit. This
	makes it work correctly when there are nested gtk_main loops like
	during transfer.
	(select_all_available, unselect_all_available): removed as it really
	doesn't make sense for a user to want to install -everything- in their
	channel, especially since packages are likely to conflict.
	(handle_update_uri): Removed calls to (un)select_all_available.
	(install_available_packages, uninstall_available_packages): Removed
	these as they are no longer used.

2000-07-26  Ian Peters  <itp@helixcode.com>

	* gui-install.c (gui_install_packages): move the call to
	show_channel_info from the ok_clicked callback to just after the
	rc_rpmman_install returns.  This makes the pause when regenerating
	the package html /much/ less noticable.

	* gui-install.c: wrote some structures and enums necessary for
	implementing a simple state machine which we use to step through the
	installation stages.
	(gui_install_next_stage): Added.  Step through the state machine,
	setting up the interface as appropriate.
	(jigger_the_ticker): Added.  Tiny little function to be used as a
	timeout for cycling the activity progress bar
	(config_progress_cb): Added.  Callback to update the progress bar as
	the configure step progresses.
	(pkg_progress_cb): Added.  Callback to update the progress bar as the
	per-package install step progresses.
	(pkg_installed_cb): changed to work with the new status struct.
	(install_done_cb): advance in the state machine.
	(configure_done_cb): Added.  Advance in the state machine.
	(gui_install_packages): Setup the new state structure, initialize the
	state machine, set it on its merry way.  Connect up all the new
	signals.

	* rc-packman.c: Added two new signals, config_progress and
	configure_done.
	(rc_packman_class_init): wire up the two new signals
	(rc_packman_query_interface): Added.  Fills in some boolean values
	describing the capabilities of the given packman object.
	(rc_packman_config_progress): emit the config_progress signal
	(rc_packman_package_progress, rc_packman_install_done): add some
	gtk_events_pending magic to keep things running smoothly
	(rc_packman_configure_done): Added.  Emit the configure_done signal

	* rc-packman.h: Added three new boolean flags to the packman
	struct, which describe the cababilities the packman offers.  Added the
	two new signals (see above)
	(rc_packman_query_interface): Added
	(rc_packman_config_progress): Added
	(rc_packman_configure_done): Added

	* rc-debman.c (rc_debman_install): emit the install_done signal
	correctly when we are done unpacking the packages.  Fix typo on the
	waitpid loop after execing the configure stage.  Emit the new
	configure_done signal after finishing the configure stage.
	(rc_debman_init): fill in the new interface description fields in the
	packman object.

	* rc-rpmman.c (showProgress): Make the rpmlib callback to emit the
	config_progress signal
	(rc_rpmman_init): fill in the new capability fields in the object

2000-07-26  Joe Shaw  <joe@helixcode.com>

	* gui-install.c (gui_install_packages): Resolve dependencies.
	Yay. Milestone 2.

	* gui.c (connect_channel_signals, disconnect_channel_signals):
	Removed sensitizing the toolbar buttons.
	(render_installed_html, render_available_html): Removed the embedded
	buttons and replaced them with HTML links.
	(available_checkbox_toggled, installed_checkbox_toggled): Commented
	out some code while I figure out how to duplicate their behavior as
	HTML links instead of widgets.
	(select_all_available, unselect_all_available): Changed semantics a
	bit to facilitate the switch from embedded widgets to HTML links.
	(handle_updater_uri): Expanded to handle removal of packages and
	subscribing and unsubscribing from channels.
	(subscribe_channel, unsubscribe_channel): Another abstraction so we
	don't have to update the code in so many places
	(sub_button_clicked, unsub_button_clicked): Call subscribe_channel and
	unsubscribe_channel as appropriate.
	(channel_selected, channel_unselected, populate_channel_list): Changed
 	for GtkCList.

2000-07-25  Jacob "Ulysses" Berkman  <jacob@helixcode.com>

	* pkginfo.c (rc_subchannel_parse_xml): NULL out stuff after we
	free it
	(rc_subchannel_parse_xml): do_cleanup() on success, not just
	errors

2000-07-26  Ian Peters  <itp@helixcode.com>

	* rc-rpmman.c (rc_rpmman_query_file): kill some now unused
	variables

	* common.c, common.h (rc_package_spec_compare): Added.
	strcmp on the name field of structs with a spec as the first entry
	(rc_package_update_slist_sort): use spec_compare to sort a list of
	package updates.
	(rc_package_slist_sort): use spec_compare to sort a list of packages.

	* gui.c (show_updates): use the new sort functions to sort the
	different panes

	* gui-install.c (ok_clicked_cb): disconnect some packman signals
	once the user clicks the ok button

2000-07-25  Joe Shaw  <joe@helixcode.com>

	* gui-install.c (ok_clicked_cb): Tell the view to refresh itself
	after an installation.

	* gui.c (html_load_cleanup): Added. Cleans up after a dynamic
	number of embedded widgets are added to an HTML widget.
	(render_updates_html): Plugged a leak and fixed some indentation.
	(available_checkbox_toggled, installed_checkbox_toggled): Added. These
	handle selecting a package from one of the lists in HTML.
	(install_available_packages, uninstall_available_packages): Plugged 
	a small leak in each of these.
	(render_installed_html, render_available_html): Queue up the 
	dynamically allocated classids for the checkboxes so they can be freed
	by html_load_cleanup. Also, use the package's summary instead of its
	description.
	(render_available_html): In the process of replacing the buttons with
	HTML links. Right now it's broken and will raise failed assertions,
	but it compiles and runs. More to come on this later.
	(show_updates): Get rid of the packman object here and use the one in
	appinfo instead. Change all references in this function. Don't
	destroy it at the end.

2000-07-25  Ian Peters  <itp@helixcode.com>

	* rc-rpmman.c: Fix a ton of memory leaks, fill in the pkg->summary
	and pkg->description fields.

	* rc-debman.c: fill in the pkg->summary and pkg->description
	fields.

	* packman_test.c: print out the summary and description fields on
	a query.

	* gui-install.c (gui_remove_packages): for now we'll just do the
	remove without any gui feedback, need to think about the right way to
	do this.

2000-07-25  Joe Shaw  <joe@helixcode.com>

	* gui-install.c (gui_remove_packages): Added a shell of a function

	* gui.c (show_channel_info): Remove static and move the prototype
	into gui.h.
	(render_installed_html): Added and filled out.
	(show_updates): Destroy the packman object we were leaking

2000-07-25  Ian Peters  <itp@helixcode.com>

	* rc-debman.c (rc_debman_install): rewrote this function.  Instead
	of unpacking the packages one fork at a time (which was slow as balls
	because of a) forking and b) dpkg reading the database), we instead
	unpack them in one call to dpkg.  To be able to send installed signals,
	I open a pipe between the forks, have dpkg write to the pipe instead
	of stdout, and parse the output of dpkg to determine when a package has
	been installed.  It's pretty slick.

2000-07-25  Joe Shaw  <joe@helixcode.com>

	* gui.c: Um, yeah. Try not to crash if the image file doesn't
	exist.

	* gui-transfer.c (gui_file): Fix indentation.

	* gui.c: Minor gui fixes. Now get the icon from disk.

	* rc-packman.c: Add g_return_if_fail and g_return_val_if_fail to
	just about every function in the file.

2000-07-25  Joe Shaw  <joe@helixcode.com>

	* gui.c (render_updates_html): Don't indent unnecessarily when
	listing the changes.

	* gui-install.c (ok_clicked_cb): Added. Callback for when the OK
	button is clicked in the transfer/installation progress page.
	(gui_install_packages): Minor changes to reflect the new layout.

	* gui.c (size_format): Use significant digits instead of a fixed
	precision for megabytes.
	(render_updates_html): Keep track and display the total size of the
	update. Also made the layout prettier.
	(render_available_html): New layout similar to render_updates_html,
	which makes it look a hell of a lot better too.

2000-07-25  Ian Peters  <itp@helixcode.com>

	* gui-install.c (gui_install_packages): moved some stuff out of
	helper functions and back into here.  Now correctly sets up the
	progressbars, format strings, etc etc.  The button is desensitized and
	sensitized correctly.  It doesn't look great yet, but it works.

	* gui-transfer.c (file_info): instead of setting up the progress
	adjustment in percentage mode, set up an adjustment from 0 to file
	size.  Makes a lot of the formatting a lot easier.

2000-07-25  Joe Shaw  <joe@helixcode.com>

	* gui.c (format_size): Added. Returns a nicely formatted file
	size string.
	(render_updates_html): New rendering stuff based on Nat's mockup
	(install_available_packages): Fixed so that it actually passes a valid
	list of packages.

2000-07-25  Jacob Berkman  <jacob@helixcode.com>

	* gui.c (rc_pixmap_button_new): function to make a nice pixmap
	button

	* rc-distman.c (rc_distman_new): add an #ifdef around the
	rc_rpmman_new() call

	* gui.c (main): call the new gui-prefs function name

	* gui-prefs.c (apply_proxy_settings): function to apply the
	settings to the gui's GnomeTransfer

	* gnome-transfer.c (gnome_transfer_proxy): if uri is NULL,
	assume we are resetting the proxy

	* gui-transfer.[ch] (gui_transfer_gnome_transfer): add an
	accessor function

2000-07-25  Ian Peters  <itp@helixcode.com>

	* gui-install.c: added lots of helper functions, cleaned up
	gui_install_packages, etc.  Now does a progressbar for the download as
	well.  Should work... <fingers crossed>

2000-07-25  Joe Shaw  <joe@helixcode.com>

	* gui.c (checkbox_toggled): Filled out. It takes a pointer to a
	list of packages and depending on the checkbox status, appends or
	removes from the list. It also sensitizes the install button depending
	on whether the list is empty.
	(select_all_available): Callback for a convenience button. Selects all
	available packages. It is passed an integer that represents the total
	number of buttons. It then extracts the checkbox widgets based on that
	info and sets them on.
	(unselect_all_available): Callback for a convenience button. Unselects
	all available packages. Works the same way as select_all_available.
	(install_available_packages): Callback for the install button.
	Basically calls gui_install_packages directly.
	(render_available_html): Added creation and signal handling for the 
	buttons for selecting and unselecting all packages and installing.

	* rc-distman.c (rc_distman_new): Now checks an environment
	variable, RC_PACKMAN_TYPE which can be either "dpkg" or "rpm" and
	will override the default setting for creating a packman object.

2000-07-25  Jacob Berkman  <jacob@helixcode.com>

	* gui.c: #include <config.h> like a good boy
	(main): load the proxy settings on startup

	* Makefile.am (gui_SOURCES): add gui-prefs.[ch]

	* gui.c (rc_scroll_html_widget_new): fix tyop

	* gui.h: export the appinfo struct, since GET_WIDGET needs it

2000-07-25  Ian Peters  <itp@helixcode.com>

	* gui-install.c (gui_install_packages): first pass at downloading
	and installing the correct packages.  It works, but downloading doesn't
	give any feedback, download's to /tmp instead of a red carpet specific
	dir, doesn't skip already downloaded files or partially downloaded
	files, ... so now I need to break gui-transfer a lot to get the
	functionality I need.

2000-07-26  Joe Shaw  <joe@helixcode.com>

	* gui-install.c (gui_install_packages): Get a GUIChannel as the
	first argument so we can figure out what path we need to fetch the
	packages from.

	* gui.c (html_link_clicked): Actually pick up the closure we were
	passing to it. Duh.
	(get_host): Export this function so we can use it in gui-install.c
	(handle_update_uri): Pass along a GUIChannel so we can give it to
	gui-install.c:gui_install_packages.

2000-07-25  Ian Peters  <itp@helixcode.com>

	* gui-install.c, gui-install.h (gui_install_packages): ok, joe
	actually gives me an RCPackageSList, not an RCPackageUpdateSList.
	Don't initialize a new packman object, use the global one we set up in
	gui.c.

	* gui.h: add a packman to the appinfo struct.

	* gui.c (content_area_init): initialize the packman

2000-07-25  Joe Shaw  <joe@helixcode.com>

	* gui.c: Added copyright info
	(handle_update_uri): Fixed the SList define (RCPackageSList instead
	of RCPackageUpdateSList)

2000-07-25  Ian Peters  <itp@helixcode.com>

	* gui-install.c, gui-install.h: added functions to do the
	installation in the gui with the pretty dialog and all

	* Makefile.am: added gui-install.[ch] to the gui sources

	* gui.c: added gui-install.h to includes

	* gui.h: include glade.h and gtkhtml.h, since we use them and can't
	depend on only being included by gui.c

	* rc-debman.c: every time we fork, we need to reset the SIGPIPE
	signal to SIG_DFL.  Finding this out sucked, and I'm really pissed at
	dpkg for not taking care of this itself.
	(rc_debman_install): remember the total number of packages to install,
	and pass this along when we emit the pkg_installed signal.

	* rc-packman.h, rc-packman.c: changed the pkg_installed signal
	to always report the total number of packages being installed, to make
	it easier to use a progress bar.  What a shitty api.  Updated the
	emission wrapper, marshaller, etc.

	* rc-rpmman.h, rc-rpmman.c: added an internal object variable
	to keep track of the number of packages installed and the number total
	in the transaction, and changed all calls to
	rc_packman_package_installed to match the changed signal.

2000-07-25  Joe Shaw  <joe@helixcode.com>

	* gui.c (rc_scroll_html_widget_new): Moved connection of the
	"url_requested" signal on the HTML widgets to here. Added connection
	of the "object_requested" signal on the HTML widgets here as well.
	(render_updates_html): Fixed the g_new0 here. Jacob was right.
	(render_available_html): Added. Displays the available packages to
	install in the channel and puts checkboxes there. Unfinished.
	(checkbox_toggled): Added. Unfinished.
	(show_updates): Use render_available_html.
	(handle_update_uri): Handle the update:install URI.
	(object_requested): Added. Puts embedded widgets on HTML widgets.
	(init_content_area): Do not connect to the "url_requested" signal here
	anymore.

2000-07-24  Jacob Berkman  <jacob@helixcode.com>

	* gui.c (rc_scroll_html_widget_new): add some border and
	shadow

2000-07-24  Joe Shaw  <joe@helixcode.com>

	* gui.c (sub_button_clicked): Fixed for new behavior.
	(unsub_button_clicked): Ditto.
	Also, Jacob broke indentation all over the file, so I'm cleaning up
	after his mess. *whistle*

	* subscription.c (gui_initialize_subscriptions): Don't freak out
	if the subscription file doesn't exist.

	* common.h (RCPackageUpdate): Added a time field that tells when
	the update was created.

	* gui.c (render_updates_html): Made prettier. Still needs work.
	(get_time_string): Added. Given a time_t it gives back a nicely
	formatted date string. Fixed a lot of indentation.

	* pkginfo.c (grab_packageupdateinfo_list): Pull the time parameter
	out of the XML.

2000-07-24  Jacob Berkman  <jacob@helixcode.com>

	* rc-packman.c (rc_packman_query_list): remove my question

	* gui.c (get_host): quick function to check an env variable
	for the host / path for the xml files until we have a GUI
	(rc_scroll_html_widget_new): custom widget callback to make a html
	widget in a scroll frame
	(error_box): use the custom widget
	(fetch_channel_list): use the get_host() func
	(fetch_channel_data): ditto
	(show_updates): call distman_new() again
	(content_area_init): use the libglade callback for html widget
	creation

	* gui-transfer.c (file_done): 
	(gui_transfer): instead of spinning on the mutex, make a new gtk loop

	* Makefile.am (gui_SOURCES): add e-scroll-frame.[ch] from
	evolution

2000-07-24  Joe Shaw  <joe@helixcode.com>

	* common.c: Added a new function, rc_package_get_highest_importance
	that when passed an RCPackage will return the highest importance in
	its history. We may want to move this into a different source file.

	* gui.c: Beautification and more features. Split off the rendering
	of the updates into a seperate function that orders them by importance.
	Performance on Debian-based systems is increased. Moved connection of
	the "link_clicked" signals on GtkHTML widgets into the function that
	is called when a channel is highlighted (and disconnected when
	unselected), allowing more flexibility for updater URIs. Hacked around
	GtkList lameness to correctly disconnect these signals when the
	channel changes as well.

2000-07-24  Ian Peters  <itp@helixcode.com>

	* rc-debman.c: cleaned up some more errors.  Commented some more
	code.  Got in touch with joeyh@debian.org and learned how to force
	debconf to go into non-interactive mode, which was my last /big/ worry
	about the debian support.

	* packman_test.c: fixed to compile with the error changes I made.

	* rc-packman.h, rc-packman.c, rc-debman.c, rc-rpmman.c:
	reworked slightly the way errors are handled, to make it more
	consistant and hopefully usable.  Now all errors are reported
	to the object internally, and the error code should be checked after
	every rc_packman call with rc_packman_get_error (and _get_reason, if
	necessary).  That's it.

	* softmgr-install.c: fixed the one! place in our code that checks
	errors so far.  Errm...

	* rc-rpmman.c: fixed joe's bug with the non-dup'ed strings.  I
	think.  I really need to get a new rh testing machine.

	* rc-packman.h, rc-packman.c: implemented a simple locking
	mechanism around some of the functions which may return control to the
	gtk main loop in the middle, as a safety precaution because I'm
	paranoid.  If the RC_PACKMAN_BUSY error is ever triggered we should
	probably look very carefully at what caused it.  Also got rid of the
	unused status enum.

2000-07-24  Joe Shaw  <joe@helixcode.com>

	* gui.c: More GUIfication. Displays 3 different lists of packages:
	available updates, installed packages, and available packages.

	* rc-rpmman.c (rc_rpmman_query_all): #if 0ed out a call to
	headerFree which was corrupting data in the RCPackage. Probably a
	string not getting strduped in there. I'll let Ian take care of it.

2000-07-24  Ian Peters  <itp@helixcode.com>

	* rc-packman.c: in all of the virtual functions, zero out the error
	fields (RC_PACKMAN_NONE and NULL), so that we'll know when they return
	where an error actually occured.  D'oh.

	* common.c (rc_mktmpdir): fix a slight oversight where we assumed
	the prefix ended in '/', leading to directory names like
	/tmpredcarpet-XXXXXX instead of /tmp/redcarpet-XXXXXX.

	* rc-packman.c: killed all of the rc_packman_fake_* functions.
	From now on, if you try to call a function which isn't implemented by a
	backend, you'll trigger an assertion, but since this is the kind of
	thing which should /never/ happen, it's a good idea.  Edited the init
	and class init functions appropriately.

2000-07-22  Jacob Berkman  <jacob@helixcode.com>

	* rc-distman.c (rc_distman_new): function that returns either
	an rpmman or debman depending on your distribution, so that no
	files really need to include rpmman.h or debman.h

	* test_deps.c (main): call distman_new

	* softmgr.c (main): call distman_new
	(main): initialize subchannels to NULL

	* softmgr-install.c (install_done): fix some #include lines

	* rc-packman.c (rc_packman_query_list): return pkgs instead of
	nothing... is this correct?  Please remove #warning after someone
	checks it

	* packman_test.c (main):

	* make_pkgs.c (main): call rc_distman_new() instead of
	specific packman and put RPM specific stuff in an #ifdef
	HAVE_LIBRPM

	* gui.c (main): only init gconf if gtkhtml was compiled with
	gconf
	s/rc-rpmman.h/rc-distman.h/

	* distro.c (linux_distro): move debian to the end, and fix
	caldera
	(read_file): convert '\n' and '-' to ' ' so that we can detect
	caldera's version more easily
	(rc_determine_distro): change the api so we get passed a struct *.
	If this struct is NULL, allocate a struct, else use the provided
	one.
	(rc_determine_distro): fix a couple of bugs by passing the right
	string

	* Makefile.am (gui_SOURCES): move distro.[ch] into
	libredcarpet
	(rpm_sources): conditionally link in rc-rpmman.[ch] depending on
	availability of librpm
	(libredcarpet_a_SOURCES): add distro.[ch] and rc-distman.[ch]
	(bin_PROGRAMS): remove vercmp from list of binaries

2000-07-22  Vladimir Vukicevic  <vladimir@helixcode.com>

	* deps.c, deps.h: New transaction-based API (only add,
	not remove, yet)

	* test_deps.c: Use new transactions

2000-07-21  Ian Peters  <itp@helixcode.com>

	* rc-packman.h, rc-packman.c: added _query_list and
	_query_file_list

	* make_pkgs.c: fixed to work with _query_file_list

2000-07-21  Jacob Berkman  <jacob@helixcode.com>

	* distro.c (rc_determine_distro): rewrite to determine the
	distro in one function.  Not fully debugged, but detects debian
	and turbolinux

	* gui.c (main): use the new distro func

2000-07-21  Ian Peters  <itp@helixcode.com>

	* common.c, common.h: added two new functions to deal with tmp
	directories

	* rc-debman.c: using the new tmp-dealing functions, baby, and some
	more comments and error checking

	* softmgr.c: dig those tmpdir-handling funcs, yeah!

	* packman_test.c: lots of changes to match the new api

2000-07-21  Vladimir Vukicevic  <vladimir@helixcode.com>

	* deps.c: Minor debug dump thing

	* make_pkgs.c: Ooops. epoch wasn't making it in for deps
	and provides.

	* packagespec.c: Minor changes in variable names (was
	trying to fix bug); made epoch == 0 a special thing which meant
	'ignore epoch -- match all' Note that it means that for both
	sides of the equation now -- i.e. a dep on epoch 3 will match
	epoch 0.

	* test_deps.c: got rid of _depends_, made things work :-)

	* 
2000-07-21  Ian Peters  <itp@helixcode.com>

	* rc-rpmman.c: update to new API (not very well tested, stupid db
	problems)

2000-07-20  Ian Peters  <itp@helixcode.com>

	* rc-packman.h, rc-packman.c: kill the _depends methods, query
	does it all now

	* rc-debman.c: kill the _depends methods, merge that functionality
	into query, clean up the resulting code.  Now simpler and faster.
	I'll do the rpmman next.

	* softmgr.c: fix to work with the new api (no depends, only query).
	I'll fix whatever breaks asap.

2000-07-20  Joe Shaw  <joe@helixcode.com>

	* Makefile.am: Added distro.[ch] to build.

	* gui.c: General minor goodness. Fixed some behavior stuff,
	can load images and clicking on HTML. Temporary distro stuff in
	there.

	* distro.c: Added.

	* distro.h: Added.

2000-07-20  Ian Peters  <itp@helixcode.com>

	* rc-debman.c: add a little bit of hackish magic to make this
	backend magically fast.  Wow.  Fast as shit.  Not perfect yet but
	incredible.  Also added some more comments.

2000-07-20  Vladimir Vukicevic  <vladimir@helixcode.com>

	* deps-private.h: Moved some stuff to deps.h relating to
	conflicts

	* deps.c, deps.h: Made things a LOT faster; I'm not doing a
	stupid linear search through sys pkgs now; report conflicts
	somewhat.

	* make_pkgs.c: Gave it an epoch

	* packagespec.c, packagespec.h: Changed names to
	rc_package_spec_*; don't use stupid vercmp on strings.

	* pkginfo.c: rc_package_spec change, xml stuff

	* softmgr.c: Changed rc_package_spec_*

	* test_deps.c: New API usage, a few minor tweaks for better
	testing

	* xml-util.c, xml-util.h: Changed the way the _default
	packages work (you specify a default now)

2000-07-20  Ian Peters  <itp@helixcode.com>

	* rc-debman.c: spin on waitpids, and watch for gtk events, to try
	and maintain interactivity as much as possible.  Clean up a few more
	memory leaks, and comment some of the more strange memory management
	issues so that no one gets confused (like I did).  Generally comment
	some more stuff.  Fix the very odd readline function, and some minor
	changes to deal with the changed semantics.

2000-07-19  Ian Peters  <itp@helixcode.com>

	* common.c: fix use of a possibly unitialized variable

	* rc-debman.c: fix a lot of memory leaks, especially in query_all.
	memprof is pretty cool.

	* rc-debman.c: cleaned up _install and _remove a lot, added some
	comments, cleaned up some memory leaks.  I'm sure there are more, I'll
	keep working at it.

	* make_pkgs.c, softmgr.c: use a debman, not an rpmman, since
	the debian backend is working and all of us rc hackers are debian users

	* packagespec.c: kill some unused variables from my last cleanup.

	* softmgr-install.c: print the names of files as it installs them
	(I don't know why this was taken out, but it's useful at least for our
	testing purposes)

	* Makefile.am: add rc-debman.* to the libredcarpet sources

2000-07-18  Ian Peters  <itp@helixcode.com>

	* packagespec.c: fix the highly broken behaviour of how it compares
	different versions.  The comparison used to be carried out by just
	creating a string out of the version and release, and passing it to the
	rpmlib vercmp function.  This doesn't work.  For example, when
	comparing imlib-base-1.9.8.1-helix2 with imlib-base-1.9.8-3, this
	scheme reported the second as the more recent version, becuase it
	compares 1 and 1, 9 and 9, 8 and 8, and then 1 and 3!!!  I have fixed
	this functionality by writing a function which takes the entire
	RCPackageSpec, instead of some gross hack of a string made with the
	elements, and compares the epoch, version, release fields one at a time
	as necessary.  It now works (and the debian backend is also working
	now too).  I'd like to make it clear that I still think that none of
	this code belongs here, as I've objected since it was first written.
	There's a reason each Packman backend is supposed to implement its own
	version	comparison function.  You can't depend on broken rpmlib
	behaviour everywhere you go.  Honestly, this was a lot of time wasted
	tracking down a bug which should never have had a chance to exist.

	* rc-debman.c: fix a segfault if the relation operator was not
	space separated from the version in the depends line, ie
	Depends: libfoo (>=1.2)
	Correctly make every package provide itself

	* rc-debman.c, rc-debman.h: first commit of (essentially
	totally working) debian backend.  In all seriousness I am very
	impressed with myself.  If I were the CEO of my company, I would give
	me a very large bonus.  Just something to think about.  ;)

	* rc-rpmman.c: fix some (cosmetic) misuses of g_strsplit

2000-07-17  Vladimir Vukicevic  <vladimir@helixcode.com>

	* deps.c: A little bit of cleanup, more to come soon.
	Speed also will come.

2000-07-18  Joe Shaw  <joe@helixcode.com>

	* gui-transfer.c (file_done): Print out the reason why the
	transfer failed.

	* gui.c: Mostly rewrote this. It's a lot cleaner now, although
	mildly less functional.

	* softmgr.c: Fixed typo in a comment.

	* suscription.c: Fixed indentation.

2000-07-17  Ian Peters  <itp@helixcode.com>

	* rc-rpmman.c: the rpm root now comes from the environment var
	RC_RPM_ROOT, and defaults to /, so that joe and I can stop having
	commit fights about where it belongs.

	* rc-rpmman.c: wrote a helper function to use in all three query
	variants to do the header reading -- code reuse is good, right?  Also,
	now correctly handle the epoch (this one was sort of my fault, but I
	was led astray by the massive stupidity of rpmlib so it's not really
	my fault)

2000-07-17  Vladimir Vukicevic  <vladimir@helixcode.com>

	* deps.c: grr, stupid channel ID == 0 stuff

	* deps.c: Fixed reverse deps to work again, yet more
	DepSList/Dep/DepItem breakage.

	* packagespec.c: Changed back thing I changed earlier (EITHER/OR)
	below.. I think doing it with just the spec is the right way.

2000-07-17  Ian Peters  <itp@helixcode.com>

	* rc-rpmman.c: fix the pus leak, kill some debug printf's

	* rc-rpmman.c: rewrote parse_versions to not suck, fixed "the bug",
	unfortunately I found out while hunting it that I'm leaking like a
	perforated bag of pus.  Time to fix it when I wake up again.

2000-07-17  Vladimir Vukicevic  <vladimir@helixcode.com>

	* make_pkgs.c: Inserted importance tag.

	* make_deps.c: RIP

	* deps.c: Oops, got rid of debugging spewage.

2000-07-17  Ian Peters  <itp@helixcode.com>

	* rc-rpmman.c: comments, cleanups, RPM_ROOTDIR fixed, memory leaks
	plugged... this is a shitty commit message

2000-07-17  Joe Shaw  <joe@helixcode.com>

	* softmgr-install.c, softmgr.c: Converted to new API. Whee.
	Fetches from construct as default again, also.

2000-07-17  Vladimir Vukicevic  <vladimir@helixcode.com>

	* deps.c, deps.h: bugs bugs bugs. Fixed yet another
	couple PackageDepSList/PackageDep/PackageDepItem SNAFU. Also
	exposed some debugging dump functions to the world.

	* test_deps.c: Fixed it so it'll do sys pkgs right.

2000-07-16  Vladimir Vukicevic  <vladimir@helixcode.com>

	* deps.c: minor fix for debugging

	* packagespec.c: Fix comparison to avoid epoch issue (maybe)
	Note, I changed the verify spec function to only check on name
	if EITHER the spec of the dep's version AND release fields are null.
	Previously it only checked name only if the spec was null.

	* pkginfo.c: Fixed bug where not all provisions were making
	it into the dep hash.

	* test_deps.c: Do a little more dumping of info.

2000-07-17  Ian Peters  <itp@helixcode.com>

	* rc-rpmman.c: kill the relation of 8 bug

	* helix-packman.c, helix-packman.h, helix-rpmman.h,
	helix-rpmman.c: remove (superseded by the rc- variants)

2000-07-16  Vladimir Vukicevic  <vladimir@helixcode.com>

	* make_pkgs.c: Added stuff to generate new XMLs with deps.
	It doesn't quite work, since rc_packman* is returning a relation
	of '8' in some deps, which is Not Good.

	* deps.c: Fixed debug printing tools. Everything seems to work now,
	at least in a basic test.

	* pkginfo.c, pkginfo.h: Fixed small bug where something wasn't
	getting init'd to NULL, also changed verify relation call. Got rid
	of including helix-packman in the header file.

	* test_deps.c: fixed small bugs to make it work.

2000-07-16  Joe Shaw  <joe@helixcode.com>

	* Makefile.am: Replaced helix-packman stuff with rc-packman stuff
	and added softmgr_LDFLAGS so that the right versions of db are linked
	in the right order for us Debian folk.

	* make_deps.c, make_pkgs.c: Converted the HelixPackman stuff
	to RCPackman. It builds, but I haven't tested it and I'm not sure
	if it works.

	* pkginfo.c (pkginfo_find_package_with_constraint): change call
	of rc_package_dep_verify_relation to 
	rc_package_dep_item_verify_relation.

2000-07-16  Vladimir Vukicevic  <vladimir@helixcode.com>

	* pkginfo.c: Fixed the #if 0 that was making the spec for
	RCPackage not get set to the latest version.

2000-07-16  Joe Shaw  <joe@helixcode.com>

	* rc-rpmman.c (rc_rpmman_depends_fill): Catch broken packages that
	have their REQUIREDVERSION tag set to NULL but set the count to 1.
	Also fixed a typo in the second parse_versions() call that should have
	been passing the versions variable instead of the verrels variable.
	Also added conditionals so that when the CONFLICTVERSION tag doesn't
	provide a release that it doesn't crash.

	* pkginfo.h: Removed typedefs for PackageInfo and
	PackageUpdateInfo as they no longer exist.

	* xml-util.c: Fixed infinite loop.

2000-07-16  Ian Peters  <itp@geodesic.helixcode.com>

	* rc-rpmman.c: fix the #define or RPMROOT or whatever

	* rc-rpmman.c: _depends and _depends_files now work

	* packman_test.c: added -d and -df to test _depends and
	_depends_files

	* rc-packman.c, rc-packman.h, rc-packman-private.h: changed
	the API a little after a talk with Joe, hacked on it a lot

	* rc-rpmman.c, rc-rpmman.h: rpm backend that implements the new
	API in rc-packman.  All that I've tested right now is the _query,
	_query_all, and _query_file methods, so use the rest at your own risk
	(I suspect that _install and _remove still work, but... and the
	_depends* methods probably don't yet).

	* packman_test.c: now tests the new rc-rpmman, but not completely
	ported over, so large parts are still #if 0'd.

2000-07-16  Vladimir Vukicevic  <vladimir@helixcode.com>

	* common.c, common.h: added rc_package_dep_new_with_item,
	to create a one-item dep easily. Added dep_table and subchannels
	entires to a RCChannel.

	* deps.c, deps.h, deps-private.h:
	-- UNTESTED: WILL MOST LIKELY SEND PORN TO PRESIDENT@WHITEHOUSE.GOV --
	You have been warned. Changed over all Helix* stuff to new RC API.
	Got rid of all XML parsing stuff (done in pkginfo now).
	Changed API's to take a RCChannel instead of separate lists.
	#if 0'd the debug dump stuff, haven't updated for new structs yet.
	These should be elsewhere anyway, probably.

	* packagespec.c, packagespec.h: Moved
	rc_package_dep_{item_}verify_relation here.

	* pkginfo.c, pkginfo.h: Changed XML code to parse
	deps from this file as well. The XML parsing function also
	takes a pointer to the RCChannel that it's parsing the XML for,
	so it can fill in data in there. Returns now an int. Use RC's.
	Updated find_package functions.

	* softmgr-transfer.c: Some intelligent stuff if emacs is
	the terminal. (no pretty printing)

	* softmgr.c: Added -n option to not actually install anything,
	added -h option to specify host (and optionally :port) to connect
	to. Default is still geodesic.

	* test_deps.c: Made it compile. Not tested.

	* xml-util.c, xml-util.h: Added functions to get
	gint32/guint32's from XML files easily.

2000-07-14  Ian Peters  <itp@helixcode.com>

	* common.h: make RCPackageRelation an enum

	* common.h: undo the RCPackageRelation change (don't ask)

2000-07-12  Joe Shaw  <joe@helixcode.com>

	* common.c: Make it build again

	* channel.c: Added a "last_update" field and parse it in the XML.
	Also parse the description and news_urls as well.

	* softmgr.h: Bumped debugging back up to level 6

	* helix-rpmman.c (helix_rpmman_verify): Added a function to a
	deprecated file that doesn't do what it's supposed to do. It makes the
	GUI go, so don't ask.
	Also set RPM_ROOTDIR to /cvs/redhat for my own system. Change it for
	your own systems as needed.

	* subscription.c: New file. Adds subscription routines.

	* cache.c: New file. Adds channel caching routines.

	* gui-transfer.c: New file, largely copied from softmgr-transfer.c.
	It updates GUI elements instead of text elements during transfers.

	* Makefile.am: Add the new files to it, and link db in the correct
	order for those of us who use Debian.

2000-07-11  Ian Peters  <itp@geodesic.helixcode.com>

	* common.c, common.h: the epoch field is a 32-bit int, not a
	string (well, it is for rpmlib and dpkg, at least, and that's all that
	I'm worried about)

	* rc-packman.c, rc-packman.h (rc_packman_slist_add_package):
	call _spec_init correctly, handle the new installed and installed_size
	parameters

	* common.c, common.h: changed the size field in RCPackageSpec
	to installed_size.  Added a boolean installed flag to the spec, and
	support for this to the init function.  Fixed the prototype for
	rc_package_spec_free to rc_package_spec_free_members.

	* rc-packman.c, rc-packman.h, rc-packman-private.h: first
	commit for the new packman object, which uses the "new" API we worked
	out.  Currently no working backends, so... ;)  The only thing that
	should ever use rc-packman-private.h is the backends, so in other words
	don't use it.

2000-07-07  Vladimir Vukicevic  <vladimir@helixcode.com>

	* deps.c (pkg_requires_process): Correctly check versions in
	packages that have already been provided. Also fixed sort-by-name
	to also sort by version if names are the same.

	* common.c (rc_package_dep_item_new): Fixed call to rc_package_
	spec_init.

2000-07-05  Ian Peters  <itp@helixcode.com>

	* common.c, common.h: added a size field to RCPackageSpec

2000-07-05  Joe Shaw  <joe@helixcode.com>

	* *.c: Replaced all occurances of PackageSpec with RCPackageSpec.

	* deps.c (deps_parse_xml): Changed initialization of spec.channel
	from NULL to 0.
	(suck_packman_dep): Convert the XML property to an integer.
	(packagerequires_compare): Added, fixed a broken comparison of
	PackageRequires as RCPackageSpecs.

	* packagespec.c: Removed deprecated functions packagespec_new and
	packagespec_destroy. Use rc_package_spec_init and rc_package_spec_free
	instead.

2000-07-05  Joe Shaw  <joe@helixcode.com>

	* Makefile.am: Rearranged so that both the backend stuff and the
	gnome-transfer stuff are built into their own static libraries, and
	each executable links against them.

	* common.h (RCPackageUpdate): Temporarily changed spec to be
	PackageSpec from RCPackageSpec until all the PackageSpecs in the code
	are moved to RCPackageSpec.

	* common.c (rc_package_update_free): Temporarily commented out
	freeing the package spec because it has been changed to a PackageSpec
	from RCPackageSpec temporarily.

	* pkginfo.c (free_pkgupdinfo): Removed deprecated function. Use
	rc_package_update_free instead.
	(pkgupdinfo_slist_free_data): Removed deprecated function. Use
	rc_package_update_slist_free instead.

	* *.c: Changed all references of PackageUpdateInfo to 
	RCPackageUpdate.

	* gui.c, redcarpet.glade: Added.

2000-07-05  Ian Peters  <itp@helixcode.com>

	* common.c, common.h: changed the API slightly 
	(s/rc_package_spec_free/rc_package_spec_free_members), to make it more
	clear that we can only free the members here, not the actual storage
	space

2000-07-03  Joe Shaw  <joe@helixcode.com>

	* pkginfo.c: Removed deprecated SubchannelInfo struct. Removed
	deprecated PackageImportance enum. Removed free_subchinfo function.

	* *.c: Changed all instances of SubchannelInfo to RCSubchannel.
	Changed all isntances of PackageImportance to RCPackageImportance.
	Also fixed up a few dangling GSLists to be RCChannelSLists and
	RCSubchannelSLists where appropriate.

	* *.c: Changed all instances of HELIX_PACKMAN_ANY,
	HELIX_PACKMAN_LESS, HELIX_PACKMAN_GREATER, and HELIX_PACKMAN_EQUAL
	to their new RC_RELATION_* equivalents and removed them from the
	helix-packman-helper.h file.

	* helix-rpmman.c: Added an RPM_ROOTDIR #define to make switching
	the RPM root easier for us lowly Debian users.

	* common.c: Added RCSubchannelSList and rc_subchannel_slist_free.

	* pkginfo.c: Removed deprecated subch_slist_free_data and
	subchinfo_list_destroy. Changed pkginfo_parse_xml to 
	rc_subchannel_parse_xml, converted subchannel stuff to RCSubchannel 
	and RCSubchannelSList.

	* softmgr.c: Changed subchannel lists from GSList to
	RCSubchannelSList, and pkginfo_parse_xml to rc_subchannel_parse_xml.

	* test_deps.c: ditto.

2000-07-02  Joe Shaw  <joe@helixcode.com>

	* softmgr-transfer.c: Fixed typo, added softmgr_transfer_free()
	to the header file

	* channel.c, channel.h, softmgr.c: Converted channel stuff
	to RCChannel

	* common.c: Added RCChannelSList and rc_channel_slist_free.

	* Makefile.am: Added common.[ch] to build process.

2000-06-30  Joe Shaw  <joe@helixcode.com>

	* url-util.c (g_url_new): Convert spaces in path names to "%20"
	as they should.

	* deps.c (pkg_requires_process): Removed the gboolean recurse
	parameter from the prototype that was keeping it from building.

2000-06-30  Vladimir Vukicevic  <vladimir@helixcode.com>

	* deps.c: Does the right thing with things that require a version
	that's about to be changed. Most of the core functionality is there now --
	just needs a lot of stress testing.

	* test_deps.c: Minor debugging changes.

2000-06-30  Ian Peters  <itp@helixcode.com>

	* common.h, common.c: common structure definitions and helper
	functions that we decided upon at our evening meeting.  It compiles, I
	don't yet know if it works, and nothing uses it yet, but people should
	begin moving their API's over to this code.

2000-06-29  Ian Peters  <itp@helixcode.com>

	* helix-packman-helper.c, helix-packman-helper.h,
	helix-rpmman.c: correctly handle version and release specific
	dependencies (rpm sticks these in the headers as version-release,
	unlike /everywhere/ else in the library...)

2000-06-29  Vladimir Vukicevic  <vladimir@helixcode.com>

	* pkginfo.c: installedsize and packagesize, no dashes

2000-06-29  Ian Peters  <itp@helixcode.com>

	* helix-rpmman.c: remove stupid debug printfs (it would be so neat
	if rpmlib were documented instead of making me guess and check)

	* helix-rpmman.c: whoops, fill in the size field in depends_files
	too (should there be a query_files that doesn't do depends?)

	* make_pkgs.c: updated to generate the packagesize and
	installedsize tags that Joe added

	* Makefile.am: remove -static from make_pkgs... when did I do that?

	* make_pkgs.c: make a dummy packageinfo.xml file given a bunch of
	packages.  Useful for setting up new channels quickly, although unlike
	make_deps, this tool probably won't be useful once the new build
	system is up and running.

	* helix-packman-helper.h, helix-packman-helper.c: added a size
	field to the HelixPackmanPackage struct, and associated functions

	* helix-rpmman.c: fill in the size field in queries

	* packman_test.c, deps.c: fix the slight api breakingness due
	to new size field

2000-06-29  Vladimir Vukicevic  <vladimir@helixcode.com>

	* deps.c, deps.h: API changes; see test_deps.c for
	example on how to use (or softmgr.c). Reformatting to make it 80-col
	pretty. Handles checking for things that provide something that's
	a wrong version now -- nothing is done about it yet, but it prints
	a warning message. Made some things a bit more happy for mem mgmt.

	* deps-private.h: New file; private structs and functs for deps.c

	* helix-packman-helper.c: Fixed issue where a package was
	depending EQUAL, but had a null release (occurs in our packages, say
	imlib and imlib-devel)

	* packagespec.c: Changed some comparison semantics; no loose
	matches are ever done now. (The extended versions of compare/equal
	might dissapear in the near future).

	* pkginfo.c, pkginfo.h: API changes; just a few renames.
	Also reads installed-size and package-size from XML file.

	* softmgr.c: Updated for API changes.

	* test_deps.c: Updated for API changes.

2000-06-28  Joe Shaw  <joe@helixcode.com>

	* helix-packman.c, helix-packman.h: Added a "pkg_progress"
	signal to be emitted whenever there is progress in package installation

	* helix-rpmman.c, helix-rpmman.h: Added emission of the
	pkg_progress signal.

	* softmgr-install.c: Added handling for the pkg_progress signal.

	* softmgr-transfer.c: Added pretty apt-get-like status handling
	during file transfers.

	* softmgr.c: Added copyright notice, changed how packages are
	downloaded (into a mktemped directory as opposed to individual mktemped
	files), handles when there are no valid packages to be installed in a
	sane manner.

2000-06-28  Ian Peters  <itp@helixcode.com>

	* helix-rpmman.c, helix-rpmman.h: added field to the object,
	now helix_rpmman_install properly reports which package just got
	installed in the sequence.  Yay.

	* softmgr.h, softmgr.c: quashed the debugging code, prettified
	the interface for demos to the higher ups.  Pretty much it's a lot like
	apt-get now.  Also now points to a thttpd server running on geodesic
	on port 7532, which points to /nfsb, so anyone can add channels etc...

2000-06-27  Ian Peters  <itp@helixcode.com>

	* helix-rpmman.c: #if 0'd out the logic to deal with file
	dependencies, now I just ignore them... I need to think more about
	what to do about these

	* make_deps.c: quick hack to generate dependencies.xml given a
	list of packages, using HelixPackman

	* Makefile.am: kill speed (vlad's request), add make_deps

	* helix-rpmman.c: packages provide themselves =, not any

2000-06-27  Vladimir Vukicevic  <vladimir@helixcode.com>

	* Makefile.am: got rid of pkginfo_test target

	* test_deps.c: Fixed spelling error; changed to not look
	at system installed pkgs for deps (for testing purposes). Change
	#if 0 to if 1 if desired.

	* deps.c: Fixed bug where a package wasn't being correctly
	found if the provision was under a different name.

	* pkginfo.c: A bit more debugging output (but only > 10)

2000-06-27  Joe Shaw  <joe@helixcode.com>

	* gnome-transfer.c: Removed debugging output

	* softmgr.c (main): removed an old #if 0'ed block of code.
	(install_packages): Actually check to see if dependencies are not
	resolved, and if they aren't, tell the user and abort.

	* channel.[ch]: Changed all references to GList to GSList for
	consistency with the rest of the application. Also reworked the API
	slightly.

	* softmgr.c: Replaced the old softmgr.c with this new one. It's
	the first pass at a command-line based client. It will download and
	install packages and all necessary dependencies.

	* softmgr-install.[ch], softmgr-transfer.[ch]: Added, as they
	go with the new client.

	* Makefile.am: Reworked a bit for the new client.

2000-06-27  Joe Shaw  <joe@helixcode.com>

	* deps.[ch]: s/dependa/depende. Sorry, I'm a spelling pedant. :)

	* deps.c (suck_packman_dep): Fixed leaking an XML property
	(operator)

	* helix-rpmman.c: We were leaking headers -everywhere-. They should
	all be plugged up now.
	(helix_rpmman_depends_	fill): Fixed memory corruption bug due to
	dangling arrays.

	* pkginfo.c (pkginfo_find_package_with_constraint): Fixed a bug
	where packages were not being found in subchannels.

	* test_deps.c: Fixed a minor leak.

	* softmgr.c: Updated for new API

2000-06-27  Ian Peters  <itp@helixcode.com>

	* test_deps.c: try to install packages it finds it needs...
	WARNING!!!!!!  Do not run this without thinking long and hard about
	what you are doing.  I suggest you run it as non-root first, and look
	at what it's attempting to do.  You have been warned.

2000-06-27  Vladimir Vukicevic  <vladimir@helixcode.com>

	* deps.c, src.deps.h: Mondo commit that makes everything work
	happily. Things which work: Checking if something's installed on
	the system. Checking in other subchannels for this same package
	(untested). Dependancies on provides that aren't the package
	name (i.e. dep on libgnome.so.32 will find gnome-libs). Useful
	output in the form of a ResolutionResult struct. Made it work with
	Ian's new API and structs. Solved world poverty. No debugging
	printfs. (Unless DEBUG > 10 -- BEWARE, LOTS of output. Like 150k+
	lines.) It doesn't know how to actually grab something from another
	channel (if specified in deps info). Things still broken: memory mgmt.
	It leaks. Uses 25MB on my system with all packages.

	* packagespec.c, packagespec.h: Modified equal/compare
	semantics. Now both have 'loose' variants.

	* helix-packman-helper.c, helix-packman-helper.h: Added verify
	relation function, which takes a dep and a spec.

	* test_deps.c: Does something useful now.

2000-06-27  Ian Peters  <itp@helixcode.com>

	* helix-packman.c, helix-packman.h: add virtual function to
	query dependencies of package files (non-installed)

	* helix-rpmman.c: implement above function for rpm backend

	* packman_test.c: added a "torture" test to experiment with query
	and depends, and a -fd flag to get dependency info from a file

	* helix-packman-helper.h: fix the broken HP_FILE_LIST_FREE macro

	* helix-rpmman.c: try again to handle stupid file depends

	* helix-rpmman.c: attempt to handle the stupid rpm file
	dependencies and get rid of them before returning, to make life easier
	on poor overworked vlad ;)

2000-06-26  Ian Peters  <itp@helixcode.com>

	* helix-rpmman.c: make every package provide itself (vlad wants
	this, and it can't hurt, so...)

	* helix-packman-helper.c, helix-packman-helper.h,
	change the names of some functions in helix-packman-helper to match
	the recent api change

	* packman_test.c: fix a stupid segfault on depends check

	* helix-packman-helper.c, helix-packman-helper.h,
	helix-rpmman.c, packman_test.c: ANSI-C and other warnings
	fixes

	* helix-packman-helper.c, helix-packman-helper.h,
	helix-packman.c, helix-packman.h, helix-rpmman.c,
	packman_test.c: Removed filename member from HelixPackmanData,
	which is now called HelixPackmanPackage, and broke a lot of API to do
	so.  All of this code now compiles again, however.  Other stuff is
	broken and will need to be fixed (s/ackmanData/ackmanPackage/g,
	s/HP_DATA/HP_PACAGE/g)

	* helix-rpmman.c: stop using the lame rpm wrappers around malloc
	and friends

	* packman_test.c: quash the chatty rpmlib stuff

	* helix-rpmman.c: choose a better set of rpmInstall flags, handle
	removal of packages with more than one version installed

	* helix-rpmman.c: correctly handle dependency query on a version
	but no release package, assorted other error fixes

	* helix-packman.h, helix-packman.c: add new object-specific
	error return code and function to access it

	* Makefile.am: fudge with the packman_test build rule a bit (this
	libdb thing is going to suck, huh?)

2000-06-26  Vladimir Vukicevic  <vladimir@helixcode.com>

	* test_deps.c: small changes in test program

	* packagespec.c, src.packagespec.h: _compare semantics changed.
	packagespec_compare will now do a 'loose' compare, meaning that if
	either the version of release field is NULL in either spec, it'll
	do a strcmp on the name. If you need a non-loose compare, use
	packagespec_compare_extended.

	* deps.c, deps.h: Fixed lots of bugs. Correctly handles packages
	which depend on just .so's (i.e. depend on something provided by another
	pkg, with a different name.)

2000-06-26  Ian Peters  <itp@helixcode.com>

	* Makefile.am: build packman_test

	* helix-rpmman.c: More cleanups, more clarifications, etc etc

	* packman_test.c: test program for packman

2000-06-25  Ian Peters  <itp@helixcode.com>

	* helix-rpmman.c: whoops, accidentally left it using /home/itp as
	the rpm root

	* helix-rpmman.c: It should now handle querying dependencies for
	packages that have multiple versions installed (God, I hate rpmlib)

2000-06-25  Vladimir Vukicevic  <vladimir@helixcode.com>

	* test_deps.c: Small test program to test dependancies

	* pkginfo.c, pkginfo.h: Added code to search for packages in
	all channels matching a particular query. Changed to use specs. A little
	cleanup in the xml parsing as well.

	* packagespec.c, packagespec.h: Fixed bug in packagespec_compare
	semantics (hash tables expect the compare function to return 1 if ==).
	Added some minor debug prints.

	* deps.c, deps.h: First pass at something that sort of works for
	dependancy generation. Needs to be commented.

	* Makefile.am: added test_deps target

	* helix-packman-helper.c, helix-packman-helper.h: added
	utility functions to print the Dep and Data structs to stderr

2000-06-24  Ian Peters  <itp@helixcode.com>

	* helix-rpmman.c: at least make an attempt to check the return
	codes in _install and _remove

	* helix-rpmman.c: moved to rpmlib 3.0.4 version of rpmInstall,
	realized I don't need my own version of rpmErase, so got rid of that

	* helix-rpmman.c: general code cleanup, more fully commented
	(especially to make clear which parts are done and which aren't)

2000-06-23  Ian Peters  <itp@helixcode.com>

	* helix-packman-helper.c, helix-packman-helper.h,
	helix-packman.c, helix-packman.h, helix-rpmman.c: updated
	to use vlad's new packagespec struct (whee!), I think it still works

2000-06-22  Vladimir Vukicevic  <vladimir@helixcode.com>

	* Makefile.am: Add packagespec.[ch]

	* packagespec.c, packagespec.h: Created struct for holding
	package name/version/release along with various functions, incl. hash
	support.

2000-06-02  Joe Shaw  <joe@helixcode.com>

	* helix-rpmman.c (helix_rpmman_version_compare): Filled in and
	changed the return type from gboolean to int. Removed last argument.
	(helix_rpmman_query): Added support for multiple versions of one
	package being installed.

	* helix-packman.c (helix_packman_version_compare): Changed return
	type from gboolean to int. Removed last argument.
	(helix_packman_fake_version_compare): Ditto.

2000-06-22  Ian Peters  <itp@helixcode.com>

	* helix-rpmman.c: wrote the dependency code.  I think it works for
	all of the simple cases now.  Looking forward to more testing and
	error checking

	* helix-packman-helper.c, helix-packman.c, helix-packman.h:
	got rid of some	HelixPackmanVersionOperators that I missed

	* helix-packman-helper.c, helix-packman-helper.h: got rid of
	HelixPackmanVersionOperator, use a guint there now.  Instead of
	having that stupid enum, we use bit flags.  For example, a relation of
	>= is HELIX_PACKMAN_EQUAL | HELIX_PACKMAN_GREATER

	* helix-rpmman.c: helix_rpmman_query should correctly handle both
	full installed package queries, and queries for specific package info.
	Still need to go through and robustify(TM) the code.

2000-06-21  Joe Shaw  <joe@helixcode.com>

	* gnome-transfer.c: Pass databytes to the file_data signal, not
	bytes.

	* gnome-transfer.c: Per the recommendation of RFC 2616 (HTTP/1.1)
	section 19.6.1.1, we transmit a Host header to the server, even though
	it isn't required by the HTTP/1.0 spec. This fixes the
	virtual host/broken spec problem I was bitching about earlier. Also, 
	fixed memory leaks and crashes when data comes in at exactly the 
	header/body break.

2000-06-21  Vladimir Vukicevic  <vladimir@helixcode.com>

	* softmgr.c: update to make it compile with new packman

2000-06-21  Ian Peters  <itp@helixcode.com>

	* helix-packman-helper.c: free the dependency lists in
	helix_packman_data_free

	* helix-packman.c, helix-packman.h: moved HelixPackmanData and
	HelixPackmanDep structs and associated stuff into
	helix-packman-helper.[ch] for sanity

	* helix-packman-helper.c, helix-packman-helper.h: see above,
	new files

	* Makefile.am: add helix-packman-helper.[ch] to _SOURCES

	* helix-packman.c: whoops, comply with the HP_DATA_LIST change I
	just made (I'm so dumb)

	* helix-packman.h: HP_DATA_LIST is now GSList, not GSList*, as that
	was just confusing

2000-06-21  Vladimir Vukicevic  <vladimir@helixcode.com>

	* gnome-transfer.c, helix-packman.c: Made signals NO_RECURSE

	* softmgr.c: Fixes to make it work :-) Calls install_package
	from a timeout to avoid evil signal recursion

	* xml-util.c, xml-util.h: Made these xmlFree() strings and
	return a g_strdup()'d version

2000-06-21  Ian Peters  <itp@helixcode.com>

	* helix-rpmman.c: stop using /home/itp as the rpm root

2000-06-21  Joe Shaw  <joe@helixcode.com>

	* gnome-transfer.c (http_read): g_memdup instead of memcpy.
	I *heart* glib.

2000-06-21  Joe Shaw  <joe@helixcode.com>

	* gnome-transfer.c (http_read): memcpy, not strncpy. Doh.

2000-06-21  Joe Shaw  <joe@helixcode.com>

	* gnome-transfer.c (http_read): Fixed a cute little bug in which
	bytes in the data segment immediately following the headers were being
	dropped because strlen reported a length too short because it hit a
	null character before it was "supposed" to. Fixed this by counting
	the size of the headers and subtracting it from the total buffer size.
	Whee.

2000-06-21  Ian Peters  <itp@helixcode.com>

	* helix-packman.c, helix-packman.h, helix-rpmman.c: fix
	some warnings that were getting on my nerves.  Actually make the
	wrappers around the virtual functions in helix-packman.c /return/
	the values they get...

2000-06-21  Joe Shaw  <joe@helixcode.com>

	* deps.c: Broken start to parsing the dependency XML stuff

2000-06-21  Joe Shaw  <joe@helixcode.com>

	* gnome-transfer.c (http_connect): Follow the HTTP/1.0 spec for
	requesting files from the server (only pass fully qualified URIs to
	proxies).

	* channel.c: Removed unused variables

2000-06-21  Vladimir Vukicevic  <vladimir@helixcode.com>

	* pkginfo.c, pkginfo.h: Fixed new protocol, added some more
	API calls

	* softmgr.c: added code to download sample package file and try
	installing it with rpm

	* Makefile.am: added stuff to build softmgr with rpm

2000-06-21  Ian Peters  <itp@helixcode.com>

	* helix-rpmman.c: stop passing the NOSCRIPT flag to rpmInstall and
	rpmErase

	* helix-packman.c: added gtk_main_iteration to pkg_installed signal
	wrapper (this maintains interactivity of gtk stuff during package
	install, I think this will work)

	* helix-rpmman.c: more work on this subclass, including stealing
	some code from rpmlib to hack up.  installing and removing should work
	(modulo any error checking :( )

	* helix-rpmman.c, helix-rpmman.h: beginnings of the rpm
	subclass of helix-packman (currently, needless to say, it doesn't work)

	* helix-packman.[ch]: more reindenting ;), and make
	HP_DATA_LIST_FREE set the list to NULL

2000-06-20  Vladimir Vukicevic  <vladimir@helixcode.com>

	* pkginfo.c, pkginfo.h: API changes to return SLists instead of
	ptr arrays; parses subchannels in pkginfo files; some debugging output.
	Reindentation. Also changed 'alias' to 'name'.

	* pkginfo_test.c: Test file that reads a packageinfo XML file

	* Makefile.am: pkginfo_test target

2000-06-20  Ian Peters  <itp@helixcode.com>

	* helix-packman.[ch]: added wrappers for the HelixPackman signals,
	  so that subclasses can easily emit them.

2000-06-20  Ian Peters  <itp@helixcode.com>

	* helix-packman.[ch]: removed the signals for intra-package
	  install/remove callbacks, forget it.  More reindentation.

2000-06-20  Ian Peters  <itp@helixcode.com>

	* helix-packman.[ch]: reindent

2000-06-20  Joe Shaw  <joe@helixcode.com>

	* Makefile.am: Added helix-packman.[ch] and pkginfo.[ch] to
	softmgr_SOURCES.

	* channel.c: Added a path parameter and parse it. Changed indent
	style.

	* softmgr.c: Now also download the package info file from the
	first channel and parse it. Changed indent style.

2000-06-20  Ian Peters  <itp@helixcode.com>

	* helix-packman.{c,h}: first pass at abstract package management
	  object.  Not ready for use yet.

2000-06-20  Joe Shaw  <joe@helixcode.com>

	* channel.c: Check to see if we have a root node and also free up
	the XML document when we're through with it.

	* gnome-transfer.c: Added gnome_transfer_verify. Takes a URL as
	an argument and returns TRUE/FALSE depending on whether or not the
	file exists.

2000-06-19  Vladimir Vukicevic  <vladimir@helixcode.com>

	* pkginfo.c, pkginfo.h - First version of parsing
	packageinfo.xml and functions for dealing with structs

2000-06-19  Joe Shaw  <joe@helixcode.com>

	* softmgr.c: Download channels.xml from construct and print out
	a list of channels with IDs to ensure we're parsing the file correctly.
