=== release 0.4.2 ===

2007-04-03  Andy Wingo  <wingo@pobox.com>

	* flumotion/twisted/flavors.py (StateRemoteCache.invalidate):
	Iterate over a copy of the keys list.

2007-04-03  Michael Smith  <msmith@fluendo.com>

	* flumotion/manager/component.py:
	  Do this after jobState is attached.

2007-04-03  Michael Smith  <msmith@fluendo.com>

	* flumotion/manager/component.py:
	  If a component logs in while happy, trigger any deferreds that were
	  waiting for it to be happy.
	  Prevents stale moodPending entries from remaining forever.

2007-04-03  Andy Wingo  <wingo@pobox.com>

	* flumotion/common/planet.py (AdminFlowState)
	(AdminAtmosphereState, AdminPlanetState): Extend invalidate() to
	recurse into kids before chaining up.

	* flumotion/test/test_common_planet.py (InvalidateTest): New test
	that invalidating a planet does a depth-first invalidate on its
	kids.

	* flumotion/test/test_flavors.py (TestState): Factor out a base
	test case class.

	* flumotion/twisted/flavors.py (StateRemoteCache.invalidate):
	_ensureListeners() before accessing _listeners(). I tried for
	about 20 minutes to make a test case for this but failed.

2007-04-03  Michael Smith  <msmith@fluendo.com>

	* flumotion/twisted/defer.py:
	  Remove reflect.namedClass call inside try block, so that a failed
	  call will result in us constructing a readable/useful generic
	  Exception, rather than a useless, truncated, ImportError from deep
	  in the reflection code.

2007-04-03  Michael Smith  <msmith@fluendo.com>

	* flumotion/twisted/defer.py:
	  With python 2.5, CopyableFailures have a type attribute that doesn't
	  have the form expected by our defer_generator.
	  Instead, use the parents attribute, which is guaranteed to work the
	  way we want it to.

	  Fixes conversion of remote failures to exceptions in defer_generator
	  under python 2.5.

	* flumotion/admin/admin.py:
	  Revert patch from #596, as it's no longer needed.

2007-04-03  Andy Wingo  <wingo@pobox.com>

	* flumotion/test/test_flavors.py
	(TestFullListener.testInvalidate): Test for new functionality.

	* flumotion/twisted/flavors.py: Update comment, it seems
	invalidate is a good idea after all.
	(StateRemoteCache.addListener): Support an invalidate callback.
	Call it if set and the state is already invalid.
	(StateRemoteCache.invalidate): New method.

	* flumotion/test/test_flavors.py: Remove twisted 1.3 crufties.

	* flumotion/twisted/flavors.py: Add a comment.

2007-04-02  Zaheer Abbas Merali  <<zaheerabbas at merali dot org>>

	* flumotion/component/effects/volume/volume.py (Volume.setUIState):
	Admin UI code expects a list, do not set to just a value.

2007-03-30  Andy Wingo  <wingo@pobox.com>

	* flumotion/manager/main.py (main): Pass along the configDir when
	making Vishnu.

	* flumotion/manager/manager.py (Vishnu.__init__): New optional
	argument, configDir, defaulting to configdir/managers/NAME/.

	* flumotion/manager/admin.py (AdminAvatar._saveFlowFile): Save to
	flows/ within the directory from which the original flow file was
	loaded; i.e. don't guess at that dir's name.

2007-03-29  Michael Smith  <msmith@fluendo.com>

	* flumotion/admin/gtk/main.py:
	  Reorder callbacks/errbacks in greeter to avoid double-destroying a
	  greeter and hence failing badly if we initially failed to connect to
	  a manager.

2007-03-28  Andy Wingo  <wingo@pobox.com>

	* flumotion/test/test_common_netutils.py
	(TestRoutingTable.testParseFromFile): Add a couple tests.

	* flumotion/common/netutils.py (RoutingTable.fromFile): Make route
	names optional. Trim trailing whitespace.

2007-03-27  Michael Smith  <msmith@fluendo.com>

	* flumotion/admin/admin.py:
	  Apply patch to getEntry to not use deferred generator, which was
	  mysteriously breaking things.
	  Fixes #596.

2007-03-26  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/service/service.py (Servicer._parseManagersWorkers,
	  Servicer.getWorkers):
	  Sort the list of managers and workers.

2007-03-26  Michael Smith  <msmith@fluendo.com>

	* flumotion/worker/feed.py:
	  Change indentation to 4 columns rather than 8 for one method.

2007-03-22  Michael Smith  <msmith@fluendo.com>

	* flumotion/admin/gtk/main.py:
	  Fix specifying admin on command line.

2007-03-22  Michael Smith  <msmith@fluendo.com>

	* flumotion/admin/gtk/client.py:
	  Don't use undefined variables if setup() raises.
	* flumotion/component/producers/looper/admin_gtk.py:
	  The admin told me this had a bug, so fix it.

2007-03-21  Andy Wingo  <wingo@pobox.com>

	* flumotion/admin/gtk/greeter.py (StartNew.on_next): Make sure
	that bindir is in the path when we run the service script.

	* flumotion/admin/gtk/main.py: Make it so the greeter doesn't run
	a recursive main loop and just uses the reactor. Seems to work but
	will need some testing.

	* flumotion/admin/gtk/wizard.py (WizardCancelled): New exception,
	errbacked by Wizard.run_async() if the user cancels the wizard.
	(Wizard.show, Wizard.destroy): Removed, GladeWindow does this for
	us.
	(Wizard.on_delete_event): Emit finished instead of stopping a main loop.
	(Wizard.run_async): New method. Returns a deferred that will fire
	when the user has decided on something.
	(Wizard.run): Implement using run_async.

2007-03-21  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/manager/base.py (ManagerAvatar._mindCallRemoteErrback):
	  Use a better failure logging method.

2007-03-21  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/feedcomponent.py
	  (FeedComponentMedium.remote_setGstDebug):
	  add remote method that allows us to set a GST_DEBUG string at
	  runtime on a component.

2007-03-21  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/feedcomponent010.py (FeedComponent.init):
	Check for existence of property rather than version.

2007-03-21  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/producers/firewire/firewire.py:
	Someone forgot to add queues after the demuxer.  Not having queues
	breaks functionality with GStreamer >= 0.10.13.

2007-03-20  Michael Smith  <msmith@fluendo.com>

	* flumotion/worker/worker.py:
	  Because gstreamer now forks to regenerate the registry, this failure
	  mode results in the error propagating as a RuntimeError, not a
	  signal terminating our process. However, we must cope with it in the
	  same way, otherwise an early failure to start can cause us to end up
	  with an unstoppable component.
	  Fixes #592.

2007-03-19  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/base/admin_gtk.py:
	Remove whitespace.  Thomas loves me.
	Firewire seems to give us offset disconts of -1 from time to time
	so > 0 should be changed to != 0 to decide whether to show
	offsets on UI.

2007-03-19  Michael Smith  <msmith@fluendo.com>

	* flumotion/manager/manager.py:
	  If we don't have a fully-logged-in component when it gets detached,
	  don't throw an exception, so that we can clean up fully.
	  Prevents a race condition from leaving a heaven with an entry for an
	  avatar that isn't present, thus stopping the component from ever
	  logging back in.

2007-03-15  Michael Smith  <msmith@fluendo.com>

	* flumotion/manager/manager.py:
	  If we fail to create an Avatar for a new connection, then drop the
	  connection after sending an appropriate failure to the client.
	  Fixes #588.

2007-03-16  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/gtk/message.py:
	* flumotion/common/messages.py:
	  Add a timestamp to messages so we can correlate them to other
	  events in the log.

2007-03-16  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/feedcomponent010.py:
	No data being received should be an info message.

2007-03-15  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/base/eaters.glade:
	  Only show disconts for timestamp/offset if there were any.

2007-03-15  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* doc/random/synchronization:
	Add some blurb about timestamps, offsets and a couple of producers.

2007-03-15  Thomas Vander Stichele  <thomas at apestaart dot org>

	* doc/redhat/flumotion:
	  Pass status arguments through too.

2007-03-15  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/service/service.py:
	  A .pid file could be empty or contain garbage.  Clean it up in
	  that case.

2007-03-15  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* doc/random/synchronization:
	Update doc for renaming of components.
	Fix spelling mistake.

2007-03-15  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/feedcomponent010.py:
	Output a warning when we get an EOS message from something
	other than an eater.  Should only happen on producer components
	that only run for a finite time, such as dvb with a file.

2007-03-15  Michael Smith  <msmith@fluendo.com>

	* tests/integration/common.py:
	* tests/integration/test_qa.py:
	* tests/integration/test_torture.py:
	  Integration tests have been failing for months, yay.
	  Fix up for yet-more-incomplete-parts of The Great Renaming.

2007-03-15  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/base/admin_gtk.py:
	* flumotion/component/base/eaters.glade:
	  Clean up UI for eaters so all settable labels are aligned

2007-03-15  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/feedcomponent.py:
	  A lack of space after gdpdepay caused audio-encoder and video-overlay
	  to go hungry then lost (but sad internally).  Fix the space.

2007-03-14  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/base/Makefile.am:
	dist the eaters.glade
	* flumotion/component/feedcomponent.py:
	* flumotion/component/feedcomponent010.py:
	Only add identity if we're actually checking disconts.

2007-03-14  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/feedcomponent010.py:
	Informational messages should not be warnings.
	* flumotion/component/misc/repeater/repeater.py:
	Fix version comparison.

2007-03-14  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/admin/gtk/client.py:
	* flumotion/common/common.py:
	* flumotion/component/base/admin_gtk.py:
	* flumotion/component/base/base.xml:
	* flumotion/component/base/eaters.glade:
	* flumotion/component/consumers/disker/disker.py:
	* flumotion/component/consumers/httpstreamer/http.py:
	* flumotion/component/converters/overlay/overlay.py:
	* flumotion/component/encoders/theora/theora.py:
	* flumotion/component/encoders/vorbis/vorbis010.py:
	* flumotion/component/feedcomponent.py:
	* flumotion/component/feedcomponent010.py:
	* flumotion/component/misc/repeater/repeater.py:
	* flumotion/component/misc/repeater/repeater.xml:
	* flumotion/component/muxers/ogg.py:
	* flumotion/component/producers/audiotest/audiotest.py:
	* flumotion/component/producers/audiotest/audiotest.xml:
	* flumotion/component/producers/videotest/videotest.py:
	* flumotion/component/producers/videotest/videotest.xml:
	* flumotion/launch/main.py:
	* flumotion/test/test_common.py:
	* flumotion/test/test_component.py:
	* po/POTFILES.in:
	Merge of eaters-info-1. Changelog of branch follows:

2007-03-14  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/feedcomponent.py:
	Fix the tests.
	* flumotion/component/misc/repeater/repeater.py:
	Repeat after me, run pychecker before committing.

2007-03-14  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/feedcomponent010.py:
	Show a message if identity version is too low to show eaters
	info.

2007-03-14  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/misc/repeater/repeater.py:
	  import the right modules
	* po/POTFILES.in:
	  mark for translation

2007-03-14  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/misc/repeater/repeater.py:
	* flumotion/component/misc/repeater/repeater.xml:
	  Add drop-probability as well.  Allows us to test more
	  complex dropping scenarios.
	  Warn if drop-probability is set too low or too high.

2007-03-14  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/producers/audiotest/audiotest.py:
	Warn if drop-probability is set too low or too high.

2007-03-14  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/producers/videotest/videotest.py:
	Warn if drop-probability set too low or too high.

2007-03-14  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/feedcomponent010.py:
	Remove unused variables.

2007-03-14  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/feedcomponent010.py:
	Check for identity version, if too old force checkTimestamp
	and checkOffset to False.

2007-03-14  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/producers/videotest/videotest.py:
	Remove bogus debug line.

2007-03-14  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/producers/videotest/videotest.py:
	Fix check, as (0, 10, 12, 0) is greater than (0, 10, 12).

2007-03-14  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/base/admin_gtk.py:
	'source' is not necessarily specified in config.

2007-03-13  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/common.py:
	* flumotion/test/test_common.py:
	  add optional fractional argument to formatTime
	* flumotion/component/base/admin_gtk.py:
	* flumotion/component/base/eaters.glade:
	* flumotion/component/feedcomponent010.py:
	  Show timestamp and offset at each discontinuity.

2007-03-13  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/base/admin_gtk.py:
	  Fix state watcher so setitem/delitem hides correctly.
	  Implement handling of offset disconts.
	* flumotion/component/base/eaters.glade:
	* flumotion/component/converters/overlay/overlay.py:
	  Overlay handles raw video and thus can check timestamps
	  and offsets.
	* flumotion/component/encoders/theora/theora.py:
	* flumotion/component/encoders/vorbis/vorbis010.py:
	  Encoders deal with raw data and thus can check offsets too.
	* flumotion/component/feedcomponent010.py:
	  Set zero values on some keys.
	  Add Eater.offsetDiscont() and use it from imperfect-offset messages.
	* flumotion/component/muxers/ogg.py:
	  Ogg muxer should check incoming timestamps, but the offsets
	  are used to store granule pos, so ignore them.
	* flumotion/component/consumers/disker/disker.py:
	* flumotion/component/consumers/httpstreamer/http.py:
	  These consumers deal with muxed streams, so checking timestamps
	  does not work, but offsets should.

2007-03-13  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/feedcomponent.py:
	  Add an identity checking for imperfect timestamps and offsets when
	  requested.
	* flumotion/component/base/base.xml:
	* flumotion/component/base/eaters.glade:
	  Add the eaters glade file.
	* flumotion/component/base/admin_gtk.py:
	  Show the eaters node if there are eaters.
	  Adapt the StateWatcher to work with setitem and delitem
	  as well so we can handle the connection dict.
	  Create EatersAdminGtkNode inspired by the Feeders one,
	  but simpler.
	* flumotion/component/encoders/theora/theora.py:
	* flumotion/component/encoders/vorbis/vorbis010.py:
	  For Theora and Vorbis it makes sense to check timestamps.
	* flumotion/component/feedcomponent010.py:
	  Add comments.
	  Add time/last/total/count Timestamp/Offset Discont to uiState's
	  connection.
	  Add last Connect/Disconnect, count/total Timestamp/Offset to
	  uiState.
	  Add Eater.connected/disconnected/timestampDiscont.
	  Add FeedComponent.checkTimestamp/Offset so that FeedComponent
	  subclasses can indicate whether it makes sense to check for
	  the specific type of discontinuities.
	  Check for imperfect-timestamp messages.

2007-03-13  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/producers/videotest/videotest.py:
	  Fix typo to find the right plugin.

2007-03-12  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/gtk/client.py:
	  Trap NoBundleError to avoid an embarassing Error message.

2007-03-12  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/launch/main.py:
	  Give us more information on where the problem originates by
	  using log.getFailureMessage

2007-03-12  Thomas Vander Stichele  <thomas at apestaart dot org>

	* po/POTFILES.in:
	  mark test producers for translation

2007-03-12  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/producers/audiotest/audiotest.py:
	* flumotion/component/producers/audiotest/audiotest.xml:
	* flumotion/component/producers/videotest/videotest.py:
	* flumotion/component/producers/videotest/videotest.xml:
	  Add drop-probability to our two test producers.
	  Warn if GStreamer is not new enough to properly support them.

2007-03-08  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/base/eaters.glade:
	Add eaters glade.

2007-03-08  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/feedcomponent010.py:
	Add eater class and uiState for eaters.  Does not yet fill it.

2007-03-08  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/feedcomponent010.py:
	Duh, identity needs to be in the DEPAY_TMPL after the depayloader!

2007-03-08  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/feedcomponent010.py:
	Remove EATERS_TMPL as it is now dynamic.
	Add identity check-perfect=true to the FDSRC_TMPL so we can
	track stream perfection.
	* flumotion/test/test_component.py:
	Refactor test so that it uses the dynamic get_eater_template()
	and get_feeder_template().

2007-03-14  Michael Smith  <msmith@fluendo.com>

	* flumotion/common/netutils.py:
	  Add a route iterator.

2007-03-14  Sebastien Merle  <sebastien@fluendo.com>

	* flumotion/twisted/compat.py: 
	Added a compatibility function to check if an objec tis an interface.
	Didn' t added the code for twisted < 2 
	because it will go away soon anyway.

2007-03-13  Thomas Vander Stichele  <thomas at apestaart dot org>

	* data/glade/Makefile.am:
	* data/glade/greeter-initial.glade:
	* data/glade/greeter-start_new.glade:
	* data/glade/greeter-start_new_error.glade:
	* data/glade/greeter-start_new_success.glade:
	  Add new greeter glade files.
	* flumotion/admin/gtk/greeter.py:
	  Implement starting a manager and worker for the user.
	* flumotion/admin/gtk/wizard.py:
	  Make WizardStep take the Wizard in the constructor so .wizard
	  actually gets set.
	  Allow on_next to return a *signaled* return value to indicate
	  that it will fire a signal when it is done, allowing non-blocking
	  work to be done in the background.
	  Handle the next button sensitivity while the wizard is doing stuff.

2007-03-12  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/service/service.py:
	  Don't comment out the manager port to connect to.
	  Set to debug level 4 by default.

2007-03-12  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/config.py:
	  Expose BOOL_TRUE_VALUES so we can use it somewhere else
	* flumotion/service/service.py:
	  Set feeder ports to random by default.  We should change this in
	  the future after using the Command classes for options.
	* flumotion/test/test_worker_worker.py:
	  Fix the test.
	* flumotion/test/test_workerconfig.py:
	  Add test for random feeder ports.
	* flumotion/worker/config.py:
	  Allow specifying random feeder ports in the configuration.

2007-03-12  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/worker/main.py:
	* flumotion/worker/worker.py:
	  Implement --random-feederports as per #585.

2007-03-12  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/gtk/main.py:
	  Add a comment.

2007-03-12  Michael Smith  <msmith@fluendo.com>

	* flumotion/common/netutils.py:
	  Make parser work again.

2007-03-12  Michael Smith  <msmith@fluendo.com>

	* flumotion/common/netutils.py:
	  Add function getRouteNames() to get a list of all named routes in
	  the RoutingTable.

2007-03-08  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/service/service.py:
	  Make sure the workers directory exists.

2007-03-08  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/worker/checks/check.py:
	  Fix pychecker error.

2007-03-08  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/worker/checks/check.py:
	  add a generic checkPlugin method to be used in checks

2007-03-08  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/component.py:
	  Checks are responsible for adding error messages to the component.
	  Fixes those pesky bogus component setup error messages without
	  info.

2007-03-08  Michael Smith  <msmith@fluendo.com>

	* flumotion/manager/manager.py:
	  Work around a pychecker bug so I can run pychecker again.
	  
2007-03-08  Michael Smith  <msmith@fluendo.com>

	* flumotion/twisted/fdserver.py:
	  Backwards compatibility for FDClient; accept messages without our
	  special magic cookie.

2007-03-08  Michael Smith  <msmith@fluendo.com>

	* flumotion/worker/worker.py:
	  WorkerBrain now only binds sockets in listen(), not in __init__,
	  which returns False if it fails.
	  Make sure various functions don't fail if we didn't call listen()

	* flumotion/worker/main.py:
	  Create WorkerBrain and call listen() on it before daemonizing.
	  If listen() fails, print an error and exit; this is fatal.

2007-03-07  Michael Smith  <msmith@fluendo.com>

	* flumotion/worker/worker.py:
	  After some timeout (this should be made configurable somehow), if
	  a job has refused to shut down, SIGKILL it.

2007-03-07  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/consumers/disker/disker.py:
	  Rename file_fd to file; it's not an fd.
	  Where we claim to close the file, close it.
	  Don't call reactor methods from non-reactor threads; use
	  callFromThread.

2007-03-07  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/consumers/httpstreamer/http.py:
	  Remove now-unused import to prevent complaints from pychecker.

2007-03-07  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/consumers/httpstreamer/http.py:
	  client-added is called only from the reactor thread, so we don't
	  need a decoupling queue.

	  cliend-fd-removed is called by non-reactor threads, so handle this 
	  with reactor.callFromThread() rather than reinventing that via a 
	  periodic callLater checking a queue.

	  Everything that wants to update UIStates is now done in the reactor
	  thread, so just call update_ui_state, rather than setting a flag and
	  checking it periodically.

2007-03-07  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/consumers/httpstreamer/http.py:
	  Don't update uiState objects from non-reactor threads.

2007-03-07  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/feedcomponent010.py:
	  Do not update UI state objects from non-reactor threads; doing so is
	  very unsafe.

	  Ensure we only operate on the FeedComponent._probe_ids dict with
	  'atomic' python operations.
	  
	  Do not call any reactor methods other than reactor.callFromThread
	  from non-reactor threads. _checkEater calls many reactor threads and
	  also mutates other internal state; call this through
	  reactor.callFromThread too.

	  Eater reconnection should now be threadsafe.

	* flumotion/test/test_feedcomponent010.py:
	  Rearrange test now that some updating is only done from a
	  reactor.callFromThread call, so we can't check it immediately.

2007-03-06  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/feedcomponent010.py:
	  Move fd cleanup logic into the Feeder class.
	  Only close fds from the reactor thread; doing otherwise causes a
	  race.
	  Don't call get-stats unless we have plugins-base 0.10.11, because
	  an unavoidable race can cause segfaults in earlier versions.
	  Don't use the client-removed signal from multifdsink, since it's not
	  needed any more; we can't avoid the race we were trying to avoid.
	  Make getClients() return a list of FeederClients rather than a dict.

	* flumotion/component/feedcomponent.py:
	  Don't attach client-removed signal.

	* flumotion/test/test_feedcomponent010.py:
	  Update for API changes.

2007-03-06  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/feedcomponent.py:
	  Add some comments.
	* flumotion/component/feedcomponent010.py:
	  Add comments.
	  Rename eaterConnected and eaterDisconnected to eaterSetActive,
	  eaterSetInactive, to more accurately reflect what they actually do.
	  Rename internal variables to match.

2007-03-06  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/feedcomponent010.py:
	* flumotion/test/test_feedcomponent010.py:
	  Set the keys we know we support to 0, the others to None.
	  Update the test for it.

2007-03-06  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/base/admin_gtk.py:
	* flumotion/component/feedcomponent010.py:
	  Use None for uiState values to indicate "component has no support
	  for reporting this" so we can show "Unknown" in the UI

2007-03-05  Thomas Vander Stichele  <thomas at apestaart dot org>

	* conf/Makefile.am:
	* conf/examples/twores.xml:
	  Add an example of streaming and recording at different resolutions.

2007-03-05  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/feedcomponent010.py:
	  Don't traceback with older plugins base for the uiState
	  calculations.

2007-03-05  Andy Wingo  <wingo@pobox.com>

	* flumotion/common/common.py (daemonizeHelper._deletePidFile): Fix
	very broken deletePidFile.

	* flumotion.spec.in (BuildRequires): Require python-twisted-web
	and -names.

2007-03-02  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/base/admin_gtk.py:
	* flumotion/component/base/feeders.glade:
	* flumotion/component/feedcomponent010.py:
	  Also show when the last buffer was read, to debug longer
	  connection problems.

2007-03-02  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/feedcomponent010.py:
	  Move fd out of the constructor for FeederClient, since it
	  is something that can change or be None during its lifetime.
	  Make sure we actually set .fd as well to be correct.
	  get-client-stats can return a 0-length array if the fd is invalid,
	  so warn better when that happens.

2007-03-02  Sebastien Merle  <sebastien@fluendo.com>

	* flumotion/component/base/admin_gtk.py: 
	Added more comments and changed a class variable name
	to make it less ambiguous.

2007-03-02  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/test/test_feedcomponent010.py:
	  Fix test after I renamed methods at the last moment.

2007-03-02  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/base/admin_gtk.py:
	* flumotion/component/base/feeders.glade:
	* flumotion/component/feedcomponent010.py:
	  Make Feeder track FeederClient over multiple reconnects.
	  Add additional uiState keys, so we can get information
	  like total reconnects, total bytes read/buffers dropped,
	  and connect/disconnect times.
	* flumotion/test/test_feedcomponent010.py:
	  Add a unit test for the FeederClient behaviour.

2007-03-01  Michael Smith  <msmith@fluendo.com>

	* common/gendoc.py:
	  Docs stuff needs a reactor too.

2007-03-01  Michael Smith  <msmith@fluendo.com>

	* flumotion/common/boot.py:
	* flumotion/common/common.py:
	* flumotion/worker/main.py:
	  Pychecker fixes.

	* misc/pycheckerhelp.py:
	* tests/checks.py:
	  Update for removal of compat reactor code.

2007-03-01  Michael Smith  <msmith@fluendo.com>

	* flumotion/twisted/compat.py:
	* flumotion/twisted/gtk2reactor.py:
	* flumotion/twisted/Makefile.am:
	  We no longer support twisted 1.3, so we don't need a private copy of
	  the gtk2reactor. Also delete the code that picked which reactor to
	  install.

	* flumotion/common/boot.py:
	  Install a gtk2 reactor here unconditionally (moved from compat.py)

	* flumotion/common/common.py:
	  Add a utility function to set up our standard log messages and
	  optionally daemonize. 
	  When daemonizing, a stale pid file is an error, always.

	* flumotion/component/component.py:
	  Don't call self.error, as it tracebacks if we don't override it.
	  Don't override self.error to do silly things like stopping the
	  reactor unconditionally.

	* flumotion/job/job.py:
	  Do not call self.error

	* flumotion/manager/admin.py:
	  Don't raise SystemExit on a remote stop() call, just stop the
	  reactor. 

	* flumotion/manager/main.py:
	  Use new startup helper for logging and daemonizing. Do not wrap
	  reactor.run in try/except. Do not print THOMAS WAS HERE, because
	  possibly thomas wasn't here.

	* flumotion/worker/worker.py:
	  Don't call self.error, or override it, as above.
	  Add some API to Kindergarten to set a deferred to fire when our last
	  child terminates.
	  When shutting down, wait until children actually terminate.

	* flumotion/worker/main.py:
	  Use new startup helper for logging and daemonizing. Do not wait for
	  pids after the reactor exits.

2007-03-01  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/ui/glade.py:
	  Put back an experimental generator that was used by
	  flowtester.

2007-03-01  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/worker/main.py:
	  Factor out a method to read the config.

2007-03-01  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/job/main.py:
	* flumotion/manager/main.py:
	* flumotion/worker/main.py:
	  Make logging of start and stop of worker/manager uniform so
	  we can easily find those points in the log.

2007-02-28  Michael Smith  <msmith@fluendo.com>

	* flumotion/twisted/defer.py:
	  Add a utility method to wrap a deferred with another deferred that
	  will fire in response to the first deferred firing, but only from a
	  callLater
	* flumotion/worker/main.py:
	* flumotion/worker/worker.py:
	  Remove old manual sigterm handling in favour of using a reactor
	  shutdown hook. Use new fdefer.defer_call_later to fire the returned
	  value from a callLater
	* flumotion/job/job.py:
	  Don't fire shutdown-hook deferreds other than in a callLater; needed
	  for PB correctness.

2007-02-28  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/component.py:
	* flumotion/twisted/fdserver.py:
	* flumotion/worker/worker.py:
	  Clean up more shutdown logic.
	  Ensure a failed login to the manager (other than initially) doesn't
	  cause a reactor shutdown.
	  Don't set our mood to sad when we just stopped the reactor; it isn't
	  useful.

2007-02-28  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/component.py:
	* flumotion/job/job.py:
	  Rewrite component/job shutdown to have a clean shutdown path going
	  only through the job.
	  Ensure through this path that we only ever stop the reactor once.
	  Should fix a variety of shutdown races triggered by calling
	  reactor.stop() from a reactor shutdown hook.

2007-02-28  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/feedcomponent010.py:
	  client-removed has an extra argument; make sure we have it.

2007-02-27  Michael Smith  <msmith@fluendo.com>

	* flumotion/twisted/fdserver.py:
	  Comments to make wingo weep a little less.

2007-02-27  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/feedcomponent.py:
	* flumotion/component/feedcomponent010.py:
	  Split removeFDCallback into removeClientCallback and
	  removeFDCallback, attached to client-removed and client-fd-removed,
	  as required for race-free use of multifdsink.

2007-02-27  Michael Smith  <msmith@fluendo.com>

	* flumotion/twisted/fdserver.py:
	  Stream sockets don't guarantee us message boundaries. We can't
	  switch to datagram sockets as they're unreliable. So, provide
	  protocol-level message boundaries for our FD-passing messsages, and
	  strip them out before passing on to PB.
	  Prevents protocol errors when connecting to the feed server under
	  load.

2007-02-27  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/consumers/httpstreamer/http.py:
	  Ensure we chain up to our parent when stopping!
	  Possibly fixes some shutdown races.

	* flumotion/component/feedcomponent010.py:
	  Add some debug.

2007-02-26  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/gtk/wizard.py:
	  Document and comment.  subclass log.Loggable.

2007-02-26  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/ui/glade.py:
	  Some easy refactoring.  Create a common GladeBacked class to
	  avoid repeating and diverging code.  Remove an experimental
	  generator method that I can't find any callers of.
	  Document and comment.

2007-02-23  Thomas Vander Stichele  <thomas at apestaart dot org>

	* data/Makefile.am:
	* data/make-dummy-cert:
	* doc/Makefile.am:
	* doc/redhat/make-dummy-cert:
	  move make-dummy-cert to datadir
	* flumotion/configure/configure.py:
	* flumotion/configure/installed.py.in:
	* flumotion/configure/uninstalled.py.in:
	  add datadir
	* flumotion/service/main.py:
	* flumotion/service/service.py:
	  add a way of creating default manager and worker configs

2007-02-23  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/manager/main.py:
	  break out a createParser function

2007-02-23  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/common.py:
	  log where we try to get the pid from
	* flumotion/service/service.py:
	  allow setting different logdir and rundir, and pass it on to
	  managers and workers we start
	* flumotion/manager/main.py:
	* flumotion/worker/main.py:
	  add logdir and rundir options ...
	* flumotion/service/main.py:
	  ... and a configdir option
	* flumotion/configure/configure.py:
	  document that we're fine with the programs poking values into this
	  module
	  This allows a user to run an installed flumotion with the service
	  binary, without touching the system-installed directories.

2007-02-23  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/common.py:
	  Catch permission denied when not able to write to the log file.
	  Make sure we exit for that before we fork.

2007-02-22  Andy Wingo  <wingo@pobox.com>

	* bin/flumotion-tester.in (main): Fix bogus log statement, thanks
	to edrz for the tip.

	* flumotion/common/netutils.py (RoutingTable.iterHumanReadable):
	New method, iterate the routes as the route, network IP as a
	string, and prefix length as an int.

	* flumotion/test/test_common_netutils.py
	(TestRoutingTable.testIterHumanReadable): Test new function.

	* flumotion/test/test_common_netutils.py
	(TestIpv4Parse.testIpv4ParseString): Test validation.

	* flumotion/common/netutils.py (ipv4StringToInt): Validate the IP.

2007-02-22  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/feedcomponent010.py:
	If we get a gstreamer error, errback any stateChangeDefers that
	are for state changes going up and any downward ones that start
	from a higher state than the current state of the pipeline.

2007-02-21  Andy Wingo  <wingo@pobox.com>

	* flumotion/common/netutils.py (RoutingTable.fromFile): New way of
	instantiating a routing table, parsing from a file.

	* flumotion/test/test_common_netutils.py
	(TestRoutingTable.testParseFromFile): Test case.

2007-02-21  Michael Smith  <msmith@fluendo.com>

	* flumotion/worker/worker.py:
	  If we have previously successfully logged in to the manager, an
	  authentication failure should be non-fatal; it's probably a
	  transient fault.

2007-02-20  Andy Wingo  <wingo@pobox.com>

	* flumotion/common/common.py (daemonizeHelper): Install a
	post-shutdown hook to delete the PID file.
	(daemonizeHelper): Fix the post-shutdown hook, and make it so that
	if we run and there's a stale PID file, we are more tenacious.

2007-02-19  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/encoders/theora/theora.py:
	Repeat after me, do not modify the config dict!
	Fixes #571

2007-02-19  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/launch/main.py:
	  print out additional debug info if it's there

2007-02-19  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/consumers/disker/disker.py:
	* flumotion/component/consumers/disker/disker.xml:
	  make rotateType default to None
	  add an Error message if a rotateType is given but the
	  corresponding property is not

2007-02-18  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/bouncers/icalbouncer.py:
	  a stray tab was breaking trial --coverage; expand it

2007-02-18  Thomas Vander Stichele  <thomas at apestaart dot org>

	* common/pychecker.mk:
	  Andy removed the configure-time GStreamer version checking,
	  so pychecker does not check 0.10 code anymore.  
	  Since atm we always require 0.10, make this an always true statement
	  instead to get it checked.

2007-02-16  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/bouncers/bouncer.py:
	  Refactor base bouncer class to split 'authenticate' into a base
	  method that enforces keycard classes and enabled/disabled state, and
	  a new 'do_authenticate' method for subclasses to implement their
	  specific behaviour, mirroring the setup/start/stop API.
	  Make base bouncer class have 'enabled' state, and remote method to
	  change it.
	  Add a trivial bouncer example that only acts on that state.
	  Add a subclass for challenge-response bouncers.

	* flumotion/component/bouncers/htpasswdcrypt.py:
	* flumotion/component/bouncers/saltsha256.py:
	  Move to using ChallengeResponseBouncer class.

	* flumotion/component/bouncers/icalbouncer.py:
	* flumotion/component/bouncers/tokentest.py:
	  Clean up now that new API does more for us.

2007-02-14  Andy Wingo  <wingo@pobox.com>

	* flumotion/common/avltree.py (insert, delete): Fix string
	splicing.

2007-02-14  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/feedcomponent010.py:
	If we get a gstreamer error, errback any stateChangeDefers for
	READY->PAUSED.  This fixes issue where we do not errback on
	providing master clock.
	* flumotion/manager/component.py:
	Handle errback on providing master clock, and release port on
	error.
	Fixes #568.

2007-02-14  Andy Wingo  <wingo@pobox.com>

	* flumotion/common/avltree.py (insert, delete): Fix string
	splicing.

	* flumotion/common/netutils.py (RoutingTable.addSubnet): Sanity
	check: net should not be too specific for mask.
	(RoutingTable.__iter__): Iterate the tree in reverse order, so we
	get most specific netmasks first.

	* flumotion/common/avltree.py (iteratereversed)
	(AVLTree.__iter__): Implement reverse iteration.

	* flumotion/test/test_common_netutils.py
	(TestRoutingTable.testBasicRouting): Rename from testRouting.
	(TestRoutingTable.testBasicRouting): New test, tests that more
	specific matching netmasks have precedence.

	* flumotion/test/Makefile.am (EXTRA_DIST): 
	* flumotion/test/test_common_avltree.py: Add test for all kinds of
	insertion/deletion patterns. Hopefully comprehensive.

	* flumotion/common/avltree.py (height): Fix copynpasteo.
	(_balance): Fix balance factors and hdiff returns in a number of
	cases, brought out by the test suite.
	(insert): Only report an increase in height if the balance factor
	was even or tilted towards the inserted side.

2007-02-14  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/producers/firewire/firewire.py:
	  always scale down to solve interlacing, even if the end height
	  is more than 288

2007-02-14  Sebastien Merle  <sebastien@fluendo.com>

	* common/pychecker.mk: 
	Keep the environment PYTHONPATH variable. 
	Now uninstalled gst-python can be used.
	* flumotion/component/base/admin_gtk.py: 
	Keep a reference to the glade file in BaseAdminGtkNode to be able
	to create more widgets from the same file.
	Added a method to create a new instance of a widget by name.

2007-02-13  Andy Wingo  <wingo@pobox.com>

	* flumotion/test/test_common_netutils.py
	(TestRoutingTable.testRoute): Update tests.

	* flumotion/common/netutils.py (RoutingTable): Change "Network" to
	RoutingTable, and make it use an AVL tree.

	* flumotion/common/avltree.py: New file, an AVL tree
	implementation.

2007-02-13  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/bouncers/icalbouncer.py:
	  Thomas broke ANOTHER THING WITH HIS DAMN RENAMING.

2007-02-12  Andy Wingo  <wingo@pobox.com>

	* flumotion/common/netutils.py (ipv4IntToString): Change the
	algorithm to appease pychecker? Nits?

	* flumotion/common/netutils.py (Network._parseSubnet)
	(Network.addSubnet, Network.removeSubnet): 
	* flumotion/test/test_common_netutils.py
	(TestNetwork.testAddRemove): Remove support for noncontinguous
	netmasks, as it seems they don't work on the Real Internet(tm).
	Fewer error paths!

	* flumotion/common/netutils.py (ipv4StringToInt, ipv4IntToString):
	New functions. We could use inet_pton and the like from socket,
	but the interface seems more error-prone.
	(Network): New object, a named set of subnets. Has a match()
	method to test if an ipv4 address falls within the set.

	* flumotion/test/Makefile.am (EXTRA_DIST): 
	* flumotion/test/test_common_netutils.py: New tests, test ipv4
	parsing and the Network subnet set object.

2007-02-09  Michael Smith  <msmith@fluendo.com>

	* data/upgrade-to-0.4.1.xsl:
	  Rewrite theora bitrate rule to be more specific and elegent.
	  Fixes problem where all other bitrate props were being deleted.

2007-02-08  Andy Wingo  <wingo@pobox.com>

	* common/common.mk (dist-hook): Add a dist hook to remove the
	cache dir, which could contain a registry after distcheck.

2007-02-07  Andy Wingo  <wingo@pobox.com>

	* common/trial.mk (TRIAL_ENV): Make the environment that we run
	our tests in configurable, defaulting to top_srcdir.

	* flumotion/test/Makefile.am (TRIAL_ENV): Flumotion generates the
	env script, so set TRIAL_ENV to top_builddir.

	* common/trial.mk (trial): Use the env script instead of mucking
	with pythonpath. Other flumotion modules might need to add an env
	script.

	* env.in (src_dir): Properly subst in @top_srcdir@, which is
	relative to top_builddir.

2007-02-06  Andy Wingo  <wingo@pobox.com>

	* flumotion/common/boot.py (init_gst, boot): Fix so that checking
	the version doesn't require a built installed/uninstalled.py.

	* configure.ac: When running python code from the source tree, add
	srcdir to the pythonpath. Fixes builddir != srcdir.

	* common/as-python.m4: Make it so that a negative result of a
	check is reported by python itself; allows multiple failure modes
	to be reported properly.
	
2007-02-06  Michael Smith  <msmith@fluendo.com>

	* flumotion/common/boot.py:
	  Move tup2version() to where it needs to be to work.
	  Fix except call that pychecker didn't like.

2007-02-06  Andy Wingo  <wingo@pobox.com>

	* common/as-python.m4: Allow stdout of the test program to hit the
	console. Write the catchall exception message to stderr.

	* flumotion/common/boot.py: Moved here from boot.py.in; not
	autogenerated any more. Less clever and more comprehensive checks.
	Don't munge sys.path any more to include dirs found at
	configure-time; instead if the caller wants to affect which pygtk
	we find it should change the environment. Fixes #500.

	* pkgconfig/flumotion.pc.in: 
	* pkgconfig/flumotion-uninstalled.pc.in: Don't add gstreamer to
	the pkg-config requires; pkg-config is unsuited to flumotion.

	* configure.ac: Remove pkg-config checks for gstreamer and pygtk
	-- use the same runtime checks that flumotion uses. We have to
	check pygtk's pkg-config file tho, because of defs and codegen.

	* common/as-python.m4: Only check for python >= 2.2. Use
	sys.version_info instead of textual comparison. Add 2.3, 2.4, and
	2.5 as candidates.

2007-02-06  Michael Smith  <msmith@fluendo.com>

	* data/upgrade-to-0.4.1.xsl:
	  A more complete component name and property name upgrader. This one
	  works for all the configs I have.

=== release 0.4.1 ===

2007-02-01  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/misc/httpfile/httpfile.py:
	  Since a mount-point of / doesn't work, issue a clear failure message
	  for that case.

2007-02-01  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/component.py:
	  Always exit after calling stop(), even if the component stop fails
	  for some reason (otherwise the component will be upstoppable).

2007-01-31  Michael Smith  <msmith@fluendo.com>

	* README:
	  We don't support twisted 1.3 in 0.4.x

2007-01-31  Andy Wingo  <wingo@pobox.com>

	* flumotion/twisted/portal.py (BouncerPortal._authenticateCallback): 
	* flumotion/worker/feed.py (getKeycardClassesCb): Debug
	improvements.
	(_WorkerFeedDispatcher.requestAvatar): Prevent a race condition if
	the remote side shuts down the socket right after authenticating.
	See #566.

	* tools/analyze-flu-log (TracebackAnalyzer.finish_traceback)
	(TracebackAnalyzer.print_summary): OK finally order them by when
	we first saw the tracebacks, and print a summary.
	
2007-01-31  Michael Smith  <msmith@fluendo.com>

	* flumotion/manager/manager.py:
	  A component config must ALWAYS have an avatarId, so when inventing a
	  config for a logging-back-in component, add this.

2007-01-31  Andy Wingo  <wingo@pobox.com>

	* tools/analyze-flu-log (TracebackAnalyzer): New log analyzer,
	finds unique tracebacks, printing them in order of how many times
	they were seen.
	(analyze, main): Add support for --tracebacks.
	(TracebackAnalyzer.linein): Break on 'Twisted traceback:' also.
	(TracebackAnalyzer.print_summary): Sort by count and length of
	traceback.

	* flumotion/test/test_twisted_compat.py: Remove tests for
	deprecated behavior, and enable tests that didn't work on T1.3.

	* flumotion/component/feedcomponent010.py
	(FeedComponent.eatFromFD, FeedComponent.feedToFD): If we don't
	have a pipeline yet, just close the fd and return, assuming that
	the other element will eventually reconnect when we are fully set
	up.

2007-01-24  Andy Wingo  <wingo@pobox.com>

	* flumotion/admin/commands.py
	(_parse_typed_args._do_parse_typed_args): Parse dicts and bools.
	For example, {(sb)(is)} foo true 3 bar => {'foo': True, 3=>'bar'}.

	* flumotion/admin/gtk/client.py (Window.setPlanetState): Accept
	the first flow instead of rejecting any flow not named 'default'.

2007-01-24  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/component.py:
	  ignore already handled setup errors
	* flumotion/component/feedcomponent.py:
	  raise a handled error when we fail to parse a pipeline
	* flumotion/launch/main.py:
	  make sure we show messages
	  exit on handled setup errors

2007-01-23  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* doc/man/flumotion-worker.1:
	Fix man page, fixes #546.

2007-01-23  Andy Wingo  <wingo@pobox.com>

	* doc/redhat/flumotion: Lockfiles are only used if they have the
	same name as the init script, so set flumotion.lock iff a call to
	the init script succeeded and flumotion processes are running.
	(start, stop): Parse type and name more robustly, fixes names like
	foo@bar. Change so that a call to "flumotion stop worker foo"
	always tries to stop the worker; the logic of which workers to
	stop is now to check the PID files in $rundir.

2007-01-23  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/common/worker.py:
	Appease pychecker and make comment.

2007-01-23  Sebastien Merle  <sebastien@fluendo.com>

	* flumotion/component/component.py: 
	Trap ComponentSetupHandledError after component setup.
	Fixes #548
	* flumotion/common/worker.py: 
	On special cases, the PID is None when processEnded is called,
	it failed trying to log it. Changed the ProcessProtocol
	to handle this case properly.

2007-01-23  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/common.py:
	  add docstring
	* flumotion/configure/configure.py:
	  privatize and remove type from variable name

2007-01-23  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/configure/configure.py:
	  Rename parseVersion and make it private to make sure no one uses
	  it outside of this module.
	  Don't call a tuple a Num.
	* flumotion/common/config.py:
	  replace with versionTuple
	* flumotion/common/common.py:
	  add versionTupleToString
	* flumotion/test/test_common.py:
	  and a test for it
	* flumotion/manager/manager.py:
	  Don't ever ever show a user a tuple! Also, provide a hint as to
	  what to do to fix the problem.

2007-01-22  Andy Wingo  <wingo@pobox.com>

	* flumotion/common/log.py (reopenOutputFiles): Open both files in
	the same way -- since we don't go through the streams layer
	there's no need to think about buffering.
	(reopenOutputFiles): A final try to get the perms right, I seem to
	be stupid

	* doc/redhat/flumotion.logrotate: Add some more logrotate options.

	* flumotion/common/log.py (reopenOutputFiles): When rotating,
	create files with a 0640 mask.

	* flumotion.spec.in:
	* doc/Makefile.am (EXTRA_DIST): 
	* doc/redhat/flumotion.logrotate: Install a logrotate file.

2007-01-22  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/consumers/disker/disker.py:
	* flumotion/component/consumers/disker/disker.xml:
	Add filename property.  Allows custom specification of filename
	format string in config.  Fixes #563.

2007-01-22  Andy Wingo  <wingo@pobox.com>

	* flumotion.spec.in: Make log, run, and cache dirs root:flumotion
	770 so that flumotion can rotate logs, manage its PID file, and
	also the registry cache.
	(user): 

2007-01-21  Andy Wingo  <wingo@pobox.com>

	* flumotion/component/consumers/httpstreamer/http.py
	(MultifdSinkStreamer.do_check): Join strings, not ints. Thanks to
	Johan for the tip.

2007-01-19  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	  back to TRUNK

=== release 0.4.0 ===

2007-01-18  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/admin/text/greeter.py:
	Fix stupid issue with new connection swapping ssl and tcp.

2007-01-18  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/admin/text/connection.py:
	* flumotion/admin/text/greeter.py:
	Clean up whitespace and initial port to 0.4 branch of text
	admin.  Fix issue where too many recent connections
	appear causing writes past bottom of screen.

2007-01-18  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/gtk/client.py:
	  pass klass for debugging
	* flumotion/component/producers/videotest/admin_gtk.py:
	  return deferred from setup

2007-01-18  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/worker.py:
	  properly get the interpolatable strings translated

2007-01-18  Thomas Vander Stichele  <thomas at apestaart dot org>

	* po/POTFILES.in:
	* po/nl.po:
	  Pick up another forgotten file for translation

2007-01-18  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion.spec.in:
	  update config
	* flumotion/twisted/portal.py:
	  give an error if there is no bouncer configured

2007-01-18  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/manager/depgraph.py:
	  fix docstring

2007-01-17  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/base/admin_gtk.py:
	  cosmetics
	* flumotion/component/base/feeders.glade:
	  downgrade
	* po/POTFILES.in:
	  add feeders.glade file

2007-01-17  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/base/Makefile.am:
	* flumotion/component/base/admin_gtk.py:
	* flumotion/component/base/base.xml:
	* flumotion/component/base/plumbing.glade:
	  Rename file.

2007-01-17  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/base/admin_gtk.py:
	* flumotion/component/base/plumbing.glade:
	  Rename and clean up as mentioned in #540.
	* po/nl.po:
	  update

2007-01-17  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/manager/manager.py:
	  Fix up a string.
	* flumotion/component/effects/volume/volume.glade:
	* flumotion/component/producers/audiotest/audiotest.glade:
	* po/POTFILES.in:
	  Make more things translatable.
	* po/ca.po:
	* po/es.po:
	* po/fr.po:
	* po/nl.po:
	* po/no.po:
	* po/pt_BR.po:
	  Translate them.

2007-01-17  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/gtk/client.py:
	  So this is the new year.

2007-01-17  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/base/admin_gtk.py:
	  Don't use the word Plumbing, but Feeders.  Make the name
	  translatable.  Don't show the tab if there are no feeders
	  (consumers for example).
	* po/POTFILES.in:
	  Mark for translation.

2007-01-17  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/effects/volume/volume.glade:
	  Fix a small UI glitch.

2007-01-17  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/producers/audiotest/admin_gtk.py:
	  Respect the component protocol, return the .setup deferred
	* flumotion/admin/gtk/client.py:
	  Clean up F0.2 TODO's.
	  Add _instanceSetup method so that we properly handle errors in
	  components in both cases.

2007-01-11  Andy Wingo  <wingo@pobox.com>

	* flumotion/job/job.py (JobMedium.shutdownHandler): Wait for both
	calls to complete (either with success or failure), as they are
	independent, i.e. a failure on one does not mean the other will
	fail or fail to complete. Fixes components showing up as lost
	occasionally when a worker is control-C'd.

	* flumotion/manager/manager.py
	(Vishnu._getComponentState.verifyExistingComponentState): If a
	component logs in with stale configuration, update our
	configuration instead of maintaining a difference between our
	config and what is actually running on the component. This kinda
	sucks, but fixes some cases between porters and streamers, whereby
	restarting a porter can cause the streamers to not be able to
	connect any more.

	* flumotion/admin/admin.py (AdminClientFactory.gotDeferredLogin):
	Untested patch to respect tenacity if the login fails after the
	tcp connection is made.
	(AdminClientFactory.gotDeferredLogin): fix sin tax.

	* flumotion/admin/multi.py (MultiAdminModel.addManager): Take an
	optional tenacity argument, to pass on to AdminMode.connectToHost.

2007-01-10  Andy Wingo  <wingo@pobox.com>

	* flumotion/twisted/pb.py (Avatar.disconnect): Return the result
	of loseConnection().

	* flumotion/common/server.py (Server.startTCP, Server.startSSL):
	Return the port we create.

2007-01-10  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/misc/httpfile/admin_gtk.py:
	Initialise _stats to None, so that a check on the value of _stats
	does not traceback if _stats is not set in time.
	* flumotion/component/misc/httpfile/httpfile.py:
	Add a rotateLog method, mirroring the one in http-streamer.
	* flumotion/component/plugs/loggers.py:
	Add a rotate method, regression from 0.2.x.

2007-01-10  Andy Wingo  <wingo@pobox.com>

	* flumotion/component/component.py (BaseComponent.init): Create
	the jobstate with a mood of waking, because a component that is
	running is in at least the waking state by definition.
	(BaseComponentMedium.remote_getState): Remove mood check, as we
	initialize the mood correctly now.

2007-01-08  Andy Wingo  <wingo@pobox.com>

	* flumotion/common/planet.py (ManagerComponentState.setJobState):
	Make sure mood is proxied last, fixes #552.

	* flumotion/manager/component.py (ComponentAvatar._setMood): use
	setMood.
	(ComponentAvatar.detached): Actually unlink the jobstate and
	componentstate when the job logs out; was not being done before.

	* flumotion/manager/manager.py (Vishnu._getComponentState):
	Because of the change in BaseComponentMedium.remote_getState, we
	know we will have a non-sleeping component mood, so we can remove
	this manual mood munge.
	(Vishnu.componentAddMessage)
	(Vishnu.workerAttached.workerAvatarComponentListReceived)
	(Vishnu._addComponent, Vishnu._updateStateFromConf): Use setMood.
	(Vishnu.componentStop.setSleeping): Set the component's mood to
	sleeping after the disconnect deferred fires, should be enough
	time for the component state to unlink from the job state.
	(Vishnu._createErrback): A failed component start because a job is
	already running only marks a component as lost if it did not log
	in in the meantime. Fixes #551. Also use setMood.

	* flumotion/component/component.py
	(BaseComponentMedium.remote_getState): Make sure that the mood
	that we return is not sleeping. If it is sleeping, warn real loud
	and set the mood to waking.

	* flumotion/common/planet.py (ManagerComponentState.setMood): New
	method, sets the mood only if we are not listening to a jobState.
	The intention is that all sets of mood go through this function so
	as to prevent bad mood-proxy bugs like #551. The exception is that
	the manager is allowed to mark the mood as sad.

2007-01-03  Andy Wingo  <wingo@pobox.com>

	* flumotion/twisted/pb.py: Import errors, thanks distributed
	pychecker
	
	* flumotion/twisted/pb.py: Import common.
	(Avatar.mindCallRemote, Avatar.mindCallRemoteLogging.errback)
	(Avatar.mindCallRemoteLogging.callback)
	(Avatar.mindCallRemoteLogging): Floggulate.
	(Avatar.disconnect): Don't error if we're already disconnected.

	* flumotion/common/medium.py (PingingMedium._ping): PONG

	* flumotion/twisted/pb.py (Avatar.__init__, Avatar.setMind): Add
	support in the base avatar for setting self.mind. This interface
	is orthogonal to that in flumotion.manager.base, because I don't
	want to change that implementation right now, and because there's
	no need for avatar.detached() given mind.notifyOnDisconnect().
	(Avatar.mindCallRemoteLogging, Avatar.mindCallRemote): Add support
	for mindCallRemote[Logging] in the base class, so that all avatars
	can easily support logging. Again this does not affect manager
	avatars because they override this implementation.
	(Avatar.disconnect): New method.

	* flumotion/common/medium.py (BaseMedium.callRemoteLogging): New
	method, contains the guts of callRemote, but with an extra param
	for the log level.
	(BaseMedium.callRemote): Call callRemoteLogging with level=DEBUG.
	(PingingMedium._ping): Use callRemoteLogging with level=LOG.
	(BaseMedium.callRemoteLogging): Add an arg for the stack depth,
	since this function can be called with different stacks.
	(BaseMedium.callRemote): Use stack depth.

2006-12-26  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/wizard/enums.py:
	  Add some more sample rates to soundcard.

2006-12-20  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/registry.py:
	  Apparently the exception moved to fxml.

2006-12-20  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/bouncers/icalbouncer.xml:
	* flumotion/component/bouncers/tokentest.xml:
	* flumotion/component/producers/unixdomain/unixdomain.xml:
	  fix component type names and some random bits

2006-12-19  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion.spec.in:
	  switch around to root:flumotion for ownership of various directories,
	  allowing users in the flumotion group to see logs and config
	  remove flumotion cache/home dir contents
	  clean up commenting in manager config

2006-12-19  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/registry.py:
	  Do not raise on a failure to parse the registry.

2006-12-18  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/consumers/httpstreamer/http.py:
	  Log some additional porter-related information.

2006-12-18  Michael Smith  <msmith@fluendo.com>

	* flumotion/common/planet.py:
	  Use 'append' on _jobStateListKeys, not 'set', so we don't clobber
	  messages added by the manager when the component logs in.

2006-12-18  Michael Smith  <msmith@fluendo.com>

	* flumotion/test/test_manager_manager.py:
	  Add 'messages' key to our ManagerJobState in FakeComponentMind;
	  tests pass again now.

2006-12-18  Michael Smith  <msmith@fluendo.com>

	* flumotion/common/config.py:
	  Assume versionless components are the current version.

2006-12-18  Michael Smith  <msmith@fluendo.com>

	* flumotion/common/planet.py:
	  Fix some out of date comments

2006-12-18  Sebastien Merle  <sebastien@fluendo.com>

	* flumotion/component/consumers/disker/disker.py: 
	Added exception handling when opening the output file
	to properly handle the IO errors.
	Fixes #532
	
	* flumotion/common/planet.py: 
	Make the manager forward the list keys to the admin.
	Fixes #536
	
	* flumotion/admin/gtk/client.py: 
	Added me in the Admin's About dialog :)

2006-12-18  Michael Smith  <msmith@fluendo.com>

	* configure.ac:
	  Back to dev.

	* flumotion/component/consumers/disker/disker.py:
	* flumotion/component/consumers/disker/disker.xml:
	  Permit a rotate-type of 'none' to disable rotation.
	  Fixes #534.

2006-12-18  Thomas Vander Stichele  <thomas at apestaart dot org>

	* doc/redhat/flumotion:
	  source a sysconfig file if it exists
	* flumotion/common/worker.py:
	  remove a space

2006-12-14  Andy Wingo  <wingo@pobox.com>

	* flumotion/common/componentui.py
	(ManagerComponentUIState.processUniqueID): Make sure that caches
	of the same object are seen as the same by the jellier.
	Fixes #519.

	* flumotion/component/base/admin_gtk.py
	(PlumbingAdminGtkNode.removeFeederClient): Fix a buglet with our
	use of the treemodel API.

2006-12-14  Michael Smith  <msmith@fluendo.com>

	* flumotion/admin/admin.py:
	  The call to setPlanetState on all views was wrong, and caused
	  tracebacks on reconnects due to the planet state being listened to
	  twice.
	  Removing it meant that the views were totally unused in all ways,
	  so deleted that code.

	* flumotion/admin/gtk/client.py:
	* flumotion/admin/text/view.py:
	  Stop registering views, now that we no longer have that code.

2006-12-14  Michael Smith  <msmith@fluendo.com>

	* data/glade/admin.glade:
	  Change menu names, add appropriate icons, for Open/Quit/About.
	  Fixes #530.

2006-12-14  Andy Wingo  <wingo@pobox.com>

	* flumotion/job/job.py (JobClientBroker.fileDescriptorsReceived):
	Handle the 'redirectStdout' and 'redirectStderr' messages so that
	we can rotate log files.

	* flumotion/worker/worker.py (JobAvatar.logTo): New method, sends
	stdout and stderr file descriptors to the job.
	(JobHeaven.__init__, JobHeaven._HUPHandler): Install a SIGHUP
	handler to send newly-reopened stdout and stderr descriptors to
	the job.

2006-12-14  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/feedcomponent010.py:
	  Cancel callLater on shutdown, to satisfy some versions of trial.

2006-12-14  Michael Smith  <msmith@fluendo.com>

	* flumotion/test/test_http.py:
	  Use the correct method (startAuthentication) to begin
	  authentication, so that the errors get set correctly.

2006-12-14  Andy Wingo  <wingo@pobox.com>

	* flumotion/test/test_http.py
	(TestHTTPStreamingResource.testRenderHTTPAuthUnauthorized)
	(TestHTTPStreamingResource.testRenderHTTPTokenUnauthorized)
	(TestHTTPStreamingResource.testRenderHTTPTokenAuthorized)
	(TestHTTPStreamingResource.deferAssertUnauthorized)
	(TestHTTPStreamingResource.deferAssertAuthorized): Fix bogus
	clusterfuck of deferred generators, weHaveAnOldTwisted,
	unittest.deferredResult, and unit tests returning deferreds.

2006-12-14  Sebastien Merle  <sebastien@fluendo.com>

	* flumotion/component/consumers/disker/admin_gtk.py: 
	Removed duplicated call to node's setUIState method.
	Fixes #524

2006-12-14  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/base/http.py:
	  Delete unreachable code.

2006-12-14  Michael Smith  <msmith@fluendo.com>

	* flumotion/admin/gtk/client.py:
	  Make this file compliant with PEP-263.
	  Fixes distcheck.

2006-12-14  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/converters/overlay/overlay.py:
	  Chain to parent do_stop() method, so we shut down the pipeline and
	  avoid nasty racy GIL-related failures on shutdown of overlays.
	  Fixes #438.

2006-12-14  Sebastien Merle  <sebastien@fluendo.com>

	* flumotion/component/producers/audiotest/audiotest.glade.py:
	Set the spine button value to the same value as the scale.
	Fixes #525
	
	* flumotion/common/boot.py.in: 
	Changed from PYGTK_BASE_REQ to PYGTK_010_REQ to reflect configure.ac

2006-12-13  Andy Wingo  <wingo@pobox.com>

	* flumotion/admin/connections.py (get_recent_connections): Handle
	bad connection files gracefully. Fixes #471.

	* flumotion/test/test_dialogs.py (TestErrorDialog.testDialogRun):
	Deal with the errordialog returning a deferred. Unfortunately we
	still need the gtk main loop, for some reason.

	* flumotion/admin/gtk/client.py
	(Window.on_open_connection.refused): Catch all connection errors,
	not just ConnectionFailed. Fixes #298.

	* flumotion/admin/gtk/main.py (_runInterface): Reworked to not run
	the error dialogs in recursive main loops, and to fix
	re-presentation of the greeter if the connection fails.
	Fixes #531.

	* flumotion/admin/gtk/dialogs.py (ErrorDialog.run): Return a
	deferred instead of running a recursive main loop, prevents
	reactor-related errors.
	(connection_refused_message, connection_failed_message): Retooled
	to return deferreds instead of running modally.

	* flumotion/admin/admin.py
	(AdminClientFactory.clientConnectionFailed): Less reliance on
	operator precedence, better debug messages.

2006-12-13  Sebastien Merle  <sebastien@fluendo.com>

	* flumotion/admin/gtk/client.py: 
	Added a header to specify the encoding (UTF-8).

2006-12-13  Michael Smith  <msmith@fluendo.com>

	* data/glade/wizard_overlay.glade:
	  Improve phrasing.

	* flumotion/component/feedcomponent010.py:
	  Improved use of spacebar in debug message

	* flumotion/wizard/save.py:
	* flumotion/wizard/steps.py:
	  Clean up warnings from admin using wizard

2006-12-12  Michael Smith  <msmith@fluendo.com>

	* flumotion/twisted/flavors.py:
	  substitute variables in exception messages as intended.

2006-12-12  Andy Wingo  <wingo@pobox.com>

	* flumotion/component/misc/httpfile/httpfile.xml: Fix the bundle
	names for the admin, another fallout of cleanup-1.

	* data/glade/admin.glade: Set the right pane to shrink=False,
	preventing clipping of the component UI.

	* flumotion/component/base/admin_gtk.py (BaseAdminGtk.setup): Fix
	the check to see if we should add plumbing nodes or not. Fixes
	#518.

2006-12-12  Michael Smith  <msmith@fluendo.com>

	* flumotion/wizard/save.py:
	  worker is no longer optional. Always specify it. Fixes mulaw.

2006-12-12  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/producers/icecast/icecast.xml:
	  Rename to match the Grand New Naming Scheme.

2006-12-11  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/bouncers/admin_gtk.py:
	* flumotion/component/consumers/disker/admin_gtk.py:
	* flumotion/component/producers/bttv/admin_gtk.py:
	* flumotion/component/producers/firewire/admin_gtk.py:
	* flumotion/component/producers/soundcard/admin_gtk.py:
	* flumotion/component/producers/webcam/admin_gtk.py:
	Replace bitrotten code with up to date code, fixes display
	of plumbing node for all these components.

2006-12-11  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/producers/firewire/admin_gtk.py:
	Supply an apt named title for the Volume Effect gtk admin
	node for firewire.

2006-12-11  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/base/admin_gtk.py:
	Add debugging on the plumbing node creation decision.
	* flumotion/component/producers/firewire/admin_gtk.py:
	Replace bitrotten code with up to date code.  Fixes display
	of plumbing node for firewire.

2006-12-11  Michael Smith  <msmith@fluendo.com>

	* flumotion/common/config.py:
	  5 is a perfectly cromulent fraction.

	* flumotion/ui/url.py:
	  Allow right-click menu (open/copy link) to work again

2006-12-11  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/component.py:
	  Add a debug line.

	* flumotion/wizard/steps.py:
	  Write bitrate as bits/s, as the theora encoder now uses.

2006-12-11  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/component.py:
	* flumotion/component/feedcomponent010.py:
	  Fix network clocking for the case of the clock master not being on
	  the same machine as the manager.

2006-12-11  Sebastien Merle  <sebastien@fluendo.com>

	* flumotion/component/base/admin_gtk.py: 
	  Change from DelItem and SetItem to Delitem and Setitem 
	  (Requested by Andy)

2006-12-07  Sebastien Merle  <sebastien@fluendo.com>

	* flumotion/admin/gtk/client.py: 
	Changed the parametere of reloadComponent to the correct type.
	Now component reloading work from administration.
	See #260

2006-12-07  Michael Smith  <msmith@fluendo.com>

	* flumotion/common/planet.py:
	* flumotion/component/component.py:
	* flumotion/component/feedcomponent010.py:
	* flumotion/manager/component.py:
	* flumotion/test/test_manager_manager.py:
	  Rename 'ip' in component state to 'manager-ip'.
	  Rename getIP() to getManagerIP().
	  This will be followed up by changes to do something useful with the
	  component's IP.

2006-12-07  Michael Smith  <msmith@fluendo.com>

	* flumotion/launch/inspect.py:
	  Print out clocking info in inspect.

2006-12-07  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/admin/gtk/main.py:
	* po/ca.po:
	* po/es.po:
	* po/fr.po:
	* po/nl.po:
	* po/no.po:
	* po/pt_BR.po:
	Added command line options to flumotion-admin to connect to manager
	bypassing the greeter.

2006-12-07  Michael Smith  <msmith@fluendo.com>

	* README:
	  Some basic updates to the README to reflect that we no longer
	  support gstreamer 0.8, and require a fairly recent 0.10.x release.

2006-12-07  Michael Smith  <msmith@fluendo.com>

	* flumotion/admin/gtk/client.py:
	  Use a proper copyright symbol in the admin about box.

2006-12-07  Michael Smith  <msmith@fluendo.com>

	* flumotion/admin/command/commands.py:
	  In subclass of Deferred (this is bad crack!), chain up to parent's
	  init method.
	  Makes flumotion-command work again.

2006-12-07  Michael Smith  <msmith@fluendo.com>

	* flumotion/worker/worker.py:
	  Don't try to feed to a component which we don't know about.
	  Fixes downstream components trying to reconnect to a stopped
	  component.

2006-12-07  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/producers/Makefile.am:
	Add gdp to SUBDIRS.

2006-12-05  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/converters/overlay/overlay.py:
	  Map old->new properties in overlay.

2006-12-05  Andy Wingo  <wingo@pobox.com>

	* flumotion/admin/admin.py
	(AdminClientFactory.clientConnectionFailed)
	(AdminClientFactory.__init__): Configurable tenacity level.
	(AdminModel.connectToHost): Take another argument, whether to keep
	trying in the face of errors.

	* flumotion/worker/worker.py
	(WorkerClientFactory.clientConnectionFailed): Log at level 4 when
	we can't connect.

	* flumotion/common/log.py (stderrHandler): Die if we get an EPIPE,
	so that closing stderr will make the process stop.

2006-12-05  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/converters/overlay/overlay.py:
	* flumotion/component/encoders/theora/theora.py:
	* flumotion/component/misc/httpfile/httpfile.py:
	* flumotion/component/producers/audiotest/audiotest.py:
	* flumotion/component/producers/webcam/webcam.xml:
	  More fallout from cleanup-1. Make things work, hopefully.

	* flumotion/wizard/steps.py:
	* data/glade/wizard_http.glade:
	  This code is deep voodoo. Prod to make http client-limit work again.

2006-12-04  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/consumers/httpstreamer/http.py:
	  Change properties to new-style in do_check(), which runs earlier
	  than configure_pipeline(), so that the checks don't spuriously fail.

2006-12-04  Michael Smith  <msmith@fluendo.com>

	* flumotion/configure/configure.py:
	  Provide versionNum as a conveniently pre-parsed version number in
	  addition to the (string) version.

	* flumotion/manager/manager.py:
	  Add a warning for components with a different version number.

2006-12-04  Andy Wingo  <wingo@pobox.com>

	* flumotion/ui/glade.py (GladeWindow.with_blocked_signal)
	(GladeWindow.__init__): Add a new decorator to call a function
	with a blocked signal.

	* flumotion/component/base/admin_gtk.py
	(PlumbingAdminGtkNode.removeFeederClient): Thank you distributed
	pychecker.

2006-12-04  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/feedcomponent010.py:
	  Comment out some unused variables (not removing them; these might be
	  useful later). Helps pychecker.

2006-12-04  Michael Smith  <msmith@fluendo.com>

	* data/upgrade-to-0.3.2.xsl:
	  When upgrading configs to 0.3.2, set version to 0.3.2

	* flumotion/common/config.py:
	  Parse version attributes, put in config, so we can use them if we
	  want.

2006-11-30  Andy Wingo  <wingo@pobox.com>

	* flumotion/ui/url.py (ClickyURL): New file, implementing a clicky
	URL.

	* flumotion/ui/glade.py (GladeWindow): Clean up a bit.
	
	* flumotion/ui/glade.py (GladeWindow.__init__): Put the window in
	the widgets dict also.
	(GladeWindow.__connect_interesting_signals): Add a delicious hack
	whereby if the object has set self.interesting_signals, we
	autoconnect some signal handlers.
	(GladeWindow.connect_signal): New proc, connects a widget to a
	conventionally-named signal handler.

2006-11-28  Andy Wingo  <wingo@pobox.com>

	* flumotion/component/base/admin_gtk.py (StateWatcher)
	(PlumbingAdminGtkNode.addFeeder)
	(PlumbingAdminGtkNode.addFeederClient)
	(PlumbingAdminGtkNode.removeFeederClient)
	(PlumbingAdminGtkNode.setUIState): Expect a list key instead of a
	dict key.

	* flumotion/component/feedcomponent010.py (Feeder.__init__)
	(Feeder.addClient, Feeder.removeClient, FeedComponent.init)
	(FeedComponent.do_setup): Use list keys instead of dict keys for
	now, making migration a bit easier.

	* flumotion/twisted/flavors.py (StateCacheable.setitem)
	(StateCacheable.delitem): Rename from dictSet/dictRemove to be
	more consistent with python's dicts.

	* flumotion/twisted/flavors.py (StateCacheable.dictRemove): Be a
	bit more clear in the docs.

2006-11-27  Andy Wingo  <wingo@pobox.com>

	* flumotion/admin/gtk/client.py
	(Window._components_view_has_selection_cb): Make a generic admin
	UI if the component does not provide one.

	* flumotion/component/base/admin_gtk.py
	(PlumbingAdminGtkNode.setFeederClientBytesRead): Byte me

	* flumotion/component/base/plumbing.glade: 
	* flumotion/component/base/base.xml: 
	* flumotion/component/base/Makefile.am (component_DATA): Add the
	glade file.

	* flumotion/component/base/admin_gtk.py (BaseAdminGtk.setup): Add
	a "plumbing" node to all admin uis.
	(StateWatcher): Experimental class to help out with recursive
	state watching. Not really sure what to do with it tho.
	(PlumbingAdminGtkNode): New crazy UI to see what's going on with
	low-level thingses on elements.

	* flumotion/component/producers/videotest/admin_gtk.py
	(VideoTestAdminGtk.setup): 
	* flumotion/component/producers/audiotest/admin_gtk.py
	(AudioTestAdminGtk.setup): Use the stock .nodes attribute, and
	chain up correctly.

2006-11-23  Andy Wingo  <wingo@pobox.com>

	* flumotion/job/job.py (JobClientBroker.fileDescriptorsReceived):
	Pass along the eaterId to the component.
	(JobClientBroker.fileDescriptorsReceived): Cope with older
	workers. Also this is my best hack of the last couple weeks!

	* flumotion/worker/feed.py (FeedAvatar.__init__)
	(FeedAvatar._sendFeedReplyCb)
	(_WorkerFeedDispatcher.requestAvatar): Take advantage of the
	avatarId on the keycard to identify the feeder client.

	* flumotion/worker/worker.py (WorkerBrain.feedToFD)
	(JobAvatar.sendFeed): Take an extra argument from the feed server,
	the eaterId. Send it to the component via the message in
	sendFileDescriptor.

	* flumotion/component/feedcomponent010.py (Feeder, FeederClient):
	New classes, keep track of statistics about feeders and their
	clients. Export a uiState object.
	(FeedComponent.init, FeedComponent.do_setup): Set up the Feeders
	as soon as we know about them.
	(FeedComponent.setup_pipeline)
	(FeedComponent._feeder_probe_calllater): Every so often, check the
	stats from multifdsink so we can see e.g. the number of dropped
	buffers.
	(FeedComponent.feedToFD, FeedComponent.removeFDCallback): Add and
	remove feeder clients as appropriate. feedToFD now takes an
	optional eaterId argument, to identify the feeder client.

	* flumotion/admin/command/commands.py
	(do_showcomponent.show_uistate): Recursive UI state printing woo.

	* flumotion/twisted/flavors.py (StateCacheable.addListKey)
	(StateCacheable.addDictKey): Stricter check for default value;
	otherwise passing an initial value of [] or {} was not respected,
	resulting in the creation of a separate object.

2006-11-22  Andy Wingo  <wingo@pobox.com>

	* flumotion/test/test_flavors.py (TestRoot.remote_haggis): Remove
	dup bearChild

	* flumotion/admin/text/view.py (AdminTextView.update_components):
	Pychecker fix.

	* flumotion/test/test_flavors.py
	(TestStateSet.testStateDictListener)
	(TestState.testStateDictAppendRemove, TestStateSet.listen): Add
	some testes.

	* flumotion/twisted/flavors.py (StateCacheable.addDictKey)
	(StateCacheable.dictSet, StateCacheable.dictRemove)
	(StateRemoteCache.addListener, StateRemoteCache.observe_dictSet)
	(StateRemoteCache.observe_dictRemove): Implement dict keys in
	statecache/statecacheable objects.

	* flumotion/twisted/flavors.py (StateRemoteCache.addListener): In
	a nod to compatibility with many managers running different
	versions, allow old behavior, with a warning.
	(StateRemoteCache.addListener): Cache objects are not loggable...

	* flumotion/twisted/flavors.py (StateRemoteCache.addListener):
	Simplify by requiring callers to pass in event handlers for 'set',
	'append', and 'remove' events. This means that callers don't have
	to implement a specific interface any more.

	* flumotion/component/base/admin_gtk.py (BaseAdminGtk.setUIState)
	(BaseAdminGtkNode.setUIState): Update for new API.
	(EffectAdminGtkNode): Doc fix.

	* flumotion/ui/trayicon.py (FluTrayIcon.update): 
	* flumotion/manager/component.py (ComponentAvatar.attached): 
	* flumotion/component/bouncers/admin_gtk.py
	(KeycardsNode._gotStateCallback):
	* flumotion/wizard/worker.py (WorkerListStore.__init__): 
	* flumotion/common/planet.py (ManagerComponentState.setJobState):
	Update for new API.

	* flumotion/admin/command/commands.py (MoodListener)
	(do_avatar_action): Update to take advantage of new API. Increase
	evil in the world.

	* flumotion/admin/gtk/client.py (Window.setPlanetState)
	(Window._components_view_has_selection_cb): 
	* flumotion/admin/gtk/parts.py (ComponentsView.update): 
	* flumotion/admin/text/view.py (AdminTextView.update_components)
	(AdminTextView.setPlanetState): Update to comform to and take
	advantage of newer API.

	* flumotion/test/test_manager_manager.py (MyListener.__init__)
	(TestVishnu._verifyConfigAndOneWorker): 
	* flumotion/test/test_common_planet.py (setUp): 
	* flumotion/test/test_flavors.py
	(TestStateSet.testStateWrongListener.got_state_and_stop)
	(TestStateSet.listen, TestStateSet.testStateSetListener)
	(TestStateSet.testStateAppendRemoveListener)
	(TestFullListener.testStateAppendRemoveListener)
	(TestFullListener.testStateSetListener):
	* flumotion/test/test_common_componentui.py (TestStateSet.listen)
	(TestStateSet.testSimpleStateListener)
	(TestStateSet.testStateListener)
	(TestStateSet.testStateListenerIntermediate)
	(TestStateSet.testStateSaveReference): Adapt tests to new
	requirements of statecache API.

2006-11-28  Andy Wingo  <wingo@pobox.com>

	* flumotion/wizard/save.py (WizardSaver.getVideoOverlay): 
	* flumotion/wizard/enums.py (VideoDevice): Fix some parts of the
	wizard for The Breaking Of The Code Coherence. Oh the taint!

2006-11-27  Michael Smith  <msmith@fluendo.com>

	* conf/managers/default/planet.xml:
	  Fix default planet.xml for The Great Breakage^wRenaming

2006-11-27  Michael Smith  <msmith@fluendo.com>

	* data/upgrade-to-0.3.2.xsl:
	* flumotion/component/misc/porter/porter.py:
	* flumotion/component/misc/porter/porter.xml:
	  socket_path -> socket-path for porter component.

2006-11-20  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/registry.py:
	* flumotion/component/consumers/httpstreamer/http.py:
	  fix layout of generated registry code and fix test

2006-11-20  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/consumers/disker/disker.py:
	* flumotion/component/consumers/httpstreamer/http.py:
	  fix two problems caught by pychecker

2006-11-20  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/consumers/httpstreamer/http.py:
	* flumotion/component/feedcomponent010.py:
	  fix cleanup problems in these two files that were brought out
	  by writing a unit test for component setup
	* flumotion/test/Makefile.am:
	* flumotion/test/test_component_httpstreamer.py:
	  add a test for the property renaming

2006-11-16  Thomas Vander Stichele  <thomas at apestaart dot org>

	* DONE:
	  add httpfile issuer -> issuerClass
	* flumotion/component/consumers/httpstreamer/http.py:
	  fix some properties that I had mangled for testing
	* flumotion/component/misc/httpfile/httpfile.py:
	* flumotion/component/misc/httpfile/httpfile.xml:
	  issuer -> issuerClass
	  document some more properties

2006-11-13  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/registry.py:
	  fix a syntax error

2006-11-13  Thomas Vander Stichele  <thomas at apestaart dot org>

	* data/upgrade-to-0.3.2.xsl:
	  add another property added by Mike on trunk
	* flumotion/component/consumers/httpstreamer/http.py:
	* flumotion/component/consumers/httpstreamer/http.xml:
	  Fix up merge conflicts

2006-11-09  Thomas Vander Stichele  <thomas at apestaart dot org>

	* data/upgrade-to-0.3.2.xsl:
	  fix up theora bitrate if it's below 10000 to convert to bps
	* flumotion/component/component.py:
	  add fixRenamedProperties to deal with properties that have
	  been deprecated and renamed.
	* flumotion/component/consumers/disker/disker.py:
	* flumotion/component/consumers/httpstreamer/http.py:
	* flumotion/component/producers/firewire/firewire.py:
	  Use it to deal with the renamed properties almost transparently.
	* flumotion/component/encoders/theora/theora.py:
	  'bitrate' property below 10000 gets treated as deprecated,
	  and converted.

2006-11-08  Thomas Vander Stichele  <thomas at apestaart dot org>

	* data/upgrade-to-0.3.2.xsl:
	  Mike helped me fix my xslt for the bitrate property

2006-11-06  Thomas Vander Stichele  <thomas at apestaart dot org>

	* DONE:
	* flumotion/component/producers/videotest/videotest.xml:
	  added videotest->videotest-producer
	* data/upgrade-to-0.3.2.xsl:
	  added a first stab at the stylesheet to convert our xml configs
	  to the new names; only needs a solution for theora-encoder's
	  bitrate unit change

2006-10-09  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/encoders/theora/theora.py:
	  make bitrate be in bps, like all other components

2006-10-07  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/common.py:
	  add strToBool
	* flumotion/common/fxml.py:
	  remove istrue
	* flumotion/common/registry.py:
	  use strToBool
	* flumotion/launch/parse.py:
	  use strToBool, so things like quality=False actually works

2006-10-07  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/registry.py:
	  Move time-checking code on registry directories before addRegistry.
	  This fixes a bug where renaming a component leaves both old and new
	  name in the registry.

2006-10-07  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/wizard/step.py:
	  fix up the code that automatically gets state from widgets
	  because our options are now dashed, not underscored
	* flumotion/wizard/save.py:
	* flumotion/wizard/steps.py:
	  adapt to new dashed properties
	  name components something-type

2006-10-06  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/fxml.py:
	* flumotion/common/registry.py:
	  allow for description on component and property
	  prettify xml output
	* flumotion/test/test_registry.py:
	  add tests for it
	* flumotion/launch/inspect.py:
	  show descriptions

2006-11-23  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/misc/httpfile/Makefile.am:
	  Autotools is not *that* hard to get right, there's lots of
	  examples in the tree!

2006-11-22  Michael Smith  <msmith@fluendo.com>

	* flumotion/common/interfaces.py:
	  Add IStreamingComponent interface

	* flumotion/component/consumers/httpstreamer/http.py:
	* flumotion/component/misc/httpfile/httpfile.py:
	  Implement IStreamingComponent interface in two classes.

2006-11-21  Michael Smith  <msmith@fluendo.com>

	* flumotion/common/errors.py:
	* flumotion/component/misc/httpfile/file.py:
	* flumotion/component/misc/httpfile/httpfile.py:
	  Make client timeouts work.

2006-11-21  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/misc/httpfile/Makefile.am:
	* flumotion/component/misc/httpfile/file.py:
	* flumotion/component/misc/httpfile/httpfile.py:
	  Redesign httpfile. Pull more of static.File into our local copy.
	  Use a proper subclass instead of Evil Wrapper Hacks.

2006-11-21  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/consumers/httpstreamer/resources.py:
	  Fewer typos. More workingness!

2006-11-21  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/base/http.py:
	  id is a builtin function. Python is my nemesisisis.
	* flumotion/component/consumers/httpstreamer/resources.py:
	  Don't do try/except; it was hiding the exception related to this
	  bug.

2006-11-20  Michael Smith  <msmith@fluendo.com>

	* flumotion/manager/depgraph.py:
	  Remove hungry-override of component moods, which results in
	  incorrect moods in manager being shown in admin clients.

2006-11-20  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/consumers/httpstreamer/http.py:
	* flumotion/component/misc/httpfile/httpfile.py:
	  If stop() is called without start() having been called, don't
	  traceback due to self._pbclient not existing, or being None

	* flumotion/manager/depgraph.py:
	  Comment-only change.

2006-11-20  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/consumers/httpstreamer/http.py:
	  Set setLogFilter, not non-existing addLogFilter, for streamer-wide
	  log filters (which we don't use, so this wouldn't have affected us).

2006-11-20  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/misc/httpfile/httpfile.py:
	  Have a description; needed for streamdata.

2006-11-20  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/misc/httpfile/Makefile.am:
	Dist the glade file too.  Should fix the build really!

2006-11-20  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/misc/httpfile/Makefile.am:
	Actually dist the admin_gtk.  Should fix the build.

2006-11-20  Andy Wingo  <wingo@pobox.com>

	* flumotion/manager/manager.py (Vishnu._createErrback): If the
	worker claims to have a component that we don't know about, treat
	it as lost. This is clever and true!

	* flumotion/worker/worker.py (WorkerBrain.deferredCreate): 
	* flumotion/common/errors.py (ComponentAlreadyRunningError): New
	error, can be raised by a worker if it knows that it has a job
	running that perhaps the manager does not know about.

2006-11-17  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/twisted/pb.py:
	  Fix getFormatArgs module call

2006-11-17  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/launch/main.py:
	  Fix flumotion-launch.

2006-11-17  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/misc/httpfile/admin_gtk.py:
	Thanks pychecker.

2006-11-17  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/misc/httpfile/admin_gtk.py:
	* flumotion/component/misc/httpfile/httpfile.glade:
	* flumotion/component/misc/httpfile/httpfile.py:
	* flumotion/component/misc/httpfile/httpfile.xml:
	Add basic httpfile UI to show current clients and total bytes
	consumed.

2006-11-16  Andy Wingo  <wingo@pobox.com>

	* flumotion/admin/admin.py
	(AdminClientFactory.clientConnectionFailed): Treat ConnectErrors
	like ConnectionRefusedErrors, so that we can catch e.g. "no route
	to host".
	(AdminModel.connectionFailed): Handle all kinds of failures, not
	just two.

	* flumotion/admin/command/main.py (setup_reactor.failed): Print
	out unanticipated exceptions as well as connection failure/refusal
	messages.

	* flumotion/admin/admin.py (AdminModel): New signal,
	'connection-error', for unanticipated errors when connecting.
	(AdminClientFactory.gotDeferredLogin): Emit 'connection-error' on
	the model if there is an uncaught exception, rather than only
	logging the exception.
	(AdminModel.connectToHost): Connect to 'connection-error' so that
	we can errback on the connectToHost deferred.

	* data/glade/wizard_firewire.glade: Mark a couple of frames as
	expand=false. Fixes odd spacing in the wizard.

2006-11-15  Andy Wingo  <wingo@pobox.com>

	* flumotion/manager/manager.py (Vishnu._getComponentState): Add
	the component to the depgraph. Fixes a bug in manager restart with
	components not in the config.

	* flumotion/manager/depgraph.py (DepGraph.addComponent): Allow
	this function to be called when a component is already added.

2006-11-14  Andy Wingo  <wingo@pobox.com>

	* flumotion/common/log.py (stderrHandler): Fix doc.
	(reopenOutputFiles): New function, um, reopens output files.
	(outputToFiles): New function, redirects stdout and stderr, and
	installs a SIGHUP handler to call reopenOutputFiles().
	(reopenOutputFiles, outputToFiles): So little code, so many bugs!
	Final fixor.

	* flumotion/common/common.py (daemonize): Just handle stdin here,
	stdout and stderr handled by log.outputToFiles.

2006-11-10  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/feedcomponent.py:
	* flumotion/component/feedcomponent010.py:
	* flumotion/component/muxers/ogg.py:
	Redesign the way we build muxer pipelines, so we have a queue directly
	after the fdsrc, not after gdpdepay.

	Then, allow components to interceed in reconnection. Implement this
	for muxers, so they can unlock things stuck in queue.

	This prevents muxer deadlocks on reconnection attempts.


2006-11-09  Andy Wingo  <wingo@pobox.com>

	* tools/analyze-flu-log (HistogramAnalyzer): Fix to align buckets
	with the half-hours, and to properly record 0 lines for empty
	buckets.

2006-11-07  Michael Smith  <msmith@fluendo.com>

	* tools/theora-bench.py:
	  Incomplete benchmarking/graphing/awesomeifying tool.

2006-11-06  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/misc/httpfile/httpfile.py:
	  *cough* BPB.

2006-11-06  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/base/http.py:
	  Improve parser; allow specifying single IPs, raise ConfigError if
	  invalid.
	* flumotion/test/test_logfilter.py:
	  Tests for logfilter parser.

2006-11-06  Michael Smith  <msmith@fluendo.com>

	* flumotion/test/test_config.py:
	  Now that I'm using multiple=yes in configs, add testing that to the
	  config parser test.

2006-11-06  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/consumers/httpstreamer/http.py:
	* flumotion/component/consumers/httpstreamer/http.xml:
	* flumotion/component/consumers/httpstreamer/resources.py:
	* flumotion/component/misc/httpfile/httpfile.py:
	* flumotion/component/misc/httpfile/httpfile.xml:
	  Add IP-filters for logging if configured.

2006-11-02  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/base/http.py:
	  Add a class to filter IPs based on networks, for use in http
	  logging.

2006-11-02  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/misc/httpfile/httpfile.py:
	  Fix stale comment.

2006-11-02  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/misc/httpfile/httpfile.py:
	  Since we send Connection: close, we must close the connection after
	  the request.

2006-11-01  Andy Wingo  <wingo@pobox.com>

	* flumotion/common/common.py (daemonizeHelper): New function,
	handles the PID file / log file foo.

	* common/setup.m4: Fix the m4 for internal autoconf churn, again.

2006-10-31  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/command/commands.py:
	  print result of invoke

2006-10-30  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* data/glade/wizard_disk.glade:
	* flumotion/wizard/steps.py:
	Add a record at startup checkbutton to the disker wizard step.

2006-10-30  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/consumers/disker/disker.xml:
	  Register the property with the correct bool type.

2006-10-30  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/manager/manager.py:
	When you stop a lost or sad component that has mood pending of
	happy, then reset moodPending to None.
	When a worker logs in, it should be told to start all components
	that are sleeping.  moodPending should not need to be checked because
	when a job is created, mood is set to waking.

2006-10-26  Thomas Vander Stichele  <thomas at apestaart dot org>

	* common/as-ac-expand.m4:
	  Update to newer version, fixes Edward's bug.

2006-10-26  Andy Wingo  <wingo@pobox.com>

	* flumotion/common/registry.py (RegistryWriter): Factor out of
	ComponentRegistry.
	(ComponentRegistry.dump): Use the registry writer.
	(RegistrySubsetWriter): New class, writes out only the subset of
	the registry that is provided by the given bundles.

	* flumotion/common/bundle.py (MergedBundler): New object,
	extending the Bundler class to also package up bundles in addition
	to just files. The effect is that when you call bundle() on a
	MergedBundler, you get one zip with a union of all subbundles'
	contents, in addition to any loose files that you added.
	(makeBundleFromLoadedModules): New exciting function, outputs a
	zip file and a registry fragment corresponding to a subset of
	loaded modules. For example:
	FLU_ATEXIT='flumotion.common.bundle.makeBundleFromLoadedModules \
	/tmp/flumotion.zip /tmp/flumotion.xml flumotion' \
	bin/flumotion-launch videotest

	* flumotion/common/boot.py.in (boot): Support another environment
	variable, FLU_ATEXIT, that specifies a function to call just
	before exiting. Any arguments to the function should be given as
	space-delimited strings. For example, FLU_ATEXIT='a.b.c d e f'
	will evaluate a.b.c("d", "e", "f").

2006-10-26  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/consumers/disker/disker.py:
	Use the summary of the event in the vCalendar as the filenameTemplate.

2006-10-26  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/consumers/disker/disker.py:
	Add optional property to changeFilename where the filename template
	as a strftime formatted string can be passed.
	Example flumotion-command use: 
	invoke /default/disk-audio changeFilename s abcd-%H%M%S

2006-10-26  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/misc/httpfile/httpfile.py:
	  Roughly identical patch for httpfile component: adds
	  updatePorterDetails. We should factor out a bunch of common code
	  between these two...

2006-10-26  Michael Smith  <msmith@fluendo.com>

	* conf/managers/default/flows/porter.xml:
	  Updated example.

	* flumotion/manager/component.py:
	* flumotion/twisted/pb.py:
	  Some comments; no functional changes.

	* flumotion/component/consumers/httpstreamer/http.py:
	  Add a remote updatePorterDetails method to change which porter the
	  streamer connects to.

2006-10-25  Andy Wingo  <wingo@pobox.com>

	* flumotion/worker/worker.py (JobHeaven.lostAvatar): Track when
	jobs go away, not just when they are added.
	(JobAvatar.perspective_cleanShutdown)
	(WorkerBrain.deferredShutdownRegistered)
	(WorkerBrain.deferredShutdownTrigger)
	(WorkerBrain.deferredShutdown): Add infrastructure to track
	whether a job is in the process of shutting down, so that if the
	manager finds out the job is gone before we do and subsequently
	asks for the component to start, that we accept that request, and
	handle it when we eventually reap the job.
	(WorkerBrain.deferredCreate): Refuse to start a job that we
	already have running, unless it is already in the process of
	shutting down.
	(JobProcessProtocol.processEnded): Tell the heaven to lose its
	avatar. Also tell the workerbrain that the job was reaped, if a
	deferred shutdown was registered.

	* flumotion/job/job.py (JobMedium.shutdownHandler): Normally if
	the worker is asked to start a component that it already has, it
	refuses. However when we're being shutdown there's an unavoidable
	race between the manager and worker finding out about the
	component logging out.
	
2006-10-25  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/consumers/disker/disker.py:
	  Make recurrence rules work if the initial time is in the past.

2006-10-25  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/consumers/disker/admin_gtk.py:
	  Started to fix this so that you can upload an ical file, but
	  incomplete...

	* flumotion/component/consumers/disker/disker.py:
	* flumotion/component/consumers/disker/disker.xml:
	  Add a property to give a filename for an ics file to load.
	  Fix logic so that recurrences work.

2006-10-25  Andy Wingo  <wingo@pobox.com>

	* flumotion/admin/admin.py
	(AdminModel.setRemoteReference.writeConnection): Ignore a failure
	to cache the connection data.

2006-10-25  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/consumers/disker/admin_gtk.py:
	* flumotion/component/consumers/disker/disker.glade:
	* flumotion/component/consumers/disker/disker.py:
	  Commit ical code from zaheer, so we can deploy it. Needs some
	  further work, but this is ok for now.

2006-10-24  Andy Wingo  <wingo@pobox.com>

	* flumotion/component/consumers/disker/disker.py
	(Disker.update_symlink): Implement the symlink updating.
	(Disker.change_filename, Disker.stop_recording)
	(Disker.configure_pipeline): Plumb in the symlink code.

	* flumotion/component/consumers/disker/disker.xml: Add two new
	properties, symlink-to-current-recording and
	symlink-to-last-recording. If given they will keep the named
	symlinks up to date with the current and/or last recording,
	respectively.

2006-10-24  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/consumers/disker/disker.py:
	* flumotion/component/consumers/disker/disker.xml:
	  Merge part of #486 (not all yet). Adds remote stopRecording method,
	  and start-recording property which can be used to disable the disker
	  starting writing when started.

2006-10-24  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/feedcomponent010.py:
	  Change variable name to be more similar to the other uses of the
	  same variable.

2006-10-24  Andy Wingo  <wingo@pobox.com>

	* flumotion/manager/component.py (ComponentAvatar.__init__):
	Update docs.
	(ComponentAvatar.attached): No need to get the jobstate,
	Vishnu.componentAttached does it for us now.
	(ComponentHeaven.registerComponent): Nothing to do anymore.

	* flumotion/manager/base.py (ManagerHeaven.createAvatar): More
	debugging.

	* flumotion/manager/manager.py (Vishnu.componentAttached,
	(Vishnu.componentDetached, Vishnu._getComponentState): Rework what
	happens when a component is attached so that we always ask, first
	thing, what the component's config and jobstate are. This allows
	us to get a mood early, reduces the number of not-quite-set-up
	states, and allows us to see if a component is running with an old
	config or not.
	(Vishnu.registerComponent): Remove lots of code, now folded into
	_getComponentState.

	These changes help manager restart to work in more cases. Also,
	atmosphere components are now properly put into the atmosphere
	instead of a flow named atmosphere.

	* flumotion/component/component.py
	(BaseComponentMedium.remote_getConfig): Less hysteric log.
	(BaseComponent.setup.setupErrback): More debugging.

	* flumotion/test/test_manager_manager.py
	(FakeComponentMind.remote_getConfig): Implement getConfig.
	(_logoutAvatar, TestVishnu._requestAvatar.got_result): A little
	more cleverness here.
	(MyListener.stateSet): Although deferred does indeed start with d,
	it is formatted using %s.

	* tools/analyze-flu-log (log_re): Fix PID parsing.

2006-10-24  Edward Hervey  <edward@fluendo.com>

	* flumotion/component/producers/unixdomain:
	moap files...

2006-10-24  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/common/keycards.py:
	Add generic keycard.
	* flumotion/component/base/http.py:
	Add a generic keycard issuer.
	* flumotion/component/bouncers/Makefile.am:
	* flumotion/component/bouncers/icalbouncer.py:
	* flumotion/component/bouncers/icalbouncer.xml:
	New component: icalbouncer.  This restricts access to times 
	during events specified in an ics file.
	* flumotion/component/consumers/httpstreamer/http.py:
	Handle a failure in running the authenticate with a warning in the log.

2006-10-24  Edward Hervey  <edward@fluendo.com>

	* configure.ac:
	* flumotion/component/producers/Makefile.am:
	* flumotion/component/producers/unixdomain:
	* flumotion/component/producers/unixdomain/Makefile.am:
	* flumotion/component/producers/unixdomain/__init__.py:
	* flumotion/component/producers/unixdomain/unixdomain.py:
	* flumotion/component/producers/unixdomain/unixdomain.xml:
	  Add new component for receiving data from a unix domain socket.
	  The component creates the socket and waits for incoming gdp-payloaded
	  data.

2006-10-23  Michael Smith  <msmith@fluendo.com>

	* flumotion/common/errors.py:
	* flumotion/manager/component.py:
	  Patch from s.merle@gmail.com:
	  Properly handle both synchronous and async errors when
	  starting/setting up components, consistently.

2006-10-20  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/producers/icecast/icecast.py:
	  Add comments, mp3 support (untested). Ogg now works perfectly with 
	  CVS -base.

2006-10-20  Michael Smith  <msmith@fluendo.com>

	* configure.ac:
	* flumotion/component/producers/Makefile.am:
	* flumotion/component/producers/icecast/Makefile.am:
	* flumotion/component/producers/icecast/__init__.py:
	* flumotion/component/producers/icecast/icecast.py:
	* flumotion/component/producers/icecast/icecast.xml:
	  Add new component to relay streams from icecast.
	  Currently only tested with ogg; has problems after chain boundaries.

2006-10-19  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/feedcomponent.py:
	* flumotion/component/feedcomponent010.py:
	* flumotion/job/job.py:
	  More FD leaks! Oh, the pain!
	  Connect to client-fd-removed signal on multifdsink; call a
	  user-supplied cleanup function when that's triggered. In the current
	  case, just close the fd.

2006-10-19  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/consumers/httpstreamer/http.xml:
	  Forgot to add new property to XML.

2006-10-19  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/consumers/httpstreamer/http.py:
	  Revert incorrect part of change due to copy-paste malfunction.

2006-10-19  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/base/http.py:
	* flumotion/component/consumers/httpstreamer/http.py:
	  Add 'duration' parameter to set a default connection duration when
	  the keycard doesn't provide one.

2006-10-18  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/misc/porter/porter.py:
	  not sure why we were logging the type of str

2006-10-18  Andy Wingo  <wingo@pobox.com>

	* tools/analyze-flu-log: New script, analyzes flumotion logs.
	Geto.

	* flumotion/manager/manager.py (Vishnu._configToComponentState):
	Allow conf == None so that we can stop this component.

	* flumotion/component/component.py (BaseComponent.do_check)
	(BaseComponent.do_setup): Better worded docs.
	(BaseComponentMedium.remote_getConfig): Return None as the config
	if the component did not get fully set up.

2006-10-12  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/plugs/loggers.py:
	Check file is open before attempting to close.
	Remove unneeded import of log.

2006-10-11  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/misc/httpfile/httpfile.py:
	  Remove duplicate copy of method.

2006-10-11  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/misc/httpfile/httpfile.py:
	  Hack to override connectionLost on the wrapped request, call
	  requestFinished from there, so we log incomplete requests.

2006-10-11  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/feedcomponent010.py:
	* flumotion/manager/depgraph.py:
	* flumotion/manager/manager.py:
	  Handle reconnecting clock-masters properly in the depgraph.
	  Avoid pausing an already-running pipeline when asked for clocking
	  information.
	  Fixes #480.

2006-10-10  Michael Smith  <msmith@fluendo.com>

	* flumotion/common/errors.py:
	* flumotion/common/planet.py:
	* flumotion/component/base/Makefile.am:
	* flumotion/component/base/__init__.py:
	* flumotion/component/base/base.xml:
	* flumotion/component/bouncers/tokentest.py:
	* flumotion/component/consumers/httpstreamer/http.py:
	* flumotion/component/consumers/httpstreamer/http.xml:
	* flumotion/component/consumers/httpstreamer/resources.py:
	* flumotion/component/feedcomponent010.py:
	* flumotion/component/misc/httpfile/httpfile.py:
	* flumotion/component/misc/httpfile/httpfile.xml:
	* flumotion/component/misc/porter/porterclient.py:
	* flumotion/manager/component.py:
	* flumotion/manager/manager.py:
	  Merge mike-http-improvements-1 to trunk.
	  Adds support for on-demand streaming for the platform, improves
	  http streaming (bursting, mostly, and some bugfixes), and some core
	  fixes for managing component moods.

2006-10-10  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/worker/worker.py:
	Log better.

2006-10-10  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/worker/worker.py:
	RuntimeError has no capital T. duh!

2006-10-10  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/worker/worker.py:
	Fix missing import and exception variable.

2006-10-10  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/worker/feed.py:
	* flumotion/worker/worker.py:
	Fix leak of fds in feedserver.  Fixes bug #479.
	Add comments to prevent people using the broken
	receiveFeed methods without fixing them.

2006-10-10  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/worker.py:
	  don't call workers "machine"

2006-10-10  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/admin.py:
	  log better

2006-10-09  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/worker/worker.py:
	Added a FIXME comment regarding the disregard of the return
	value of sendFileDescriptor.

2006-10-09  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/feedcomponent010.py:
	  EatFromFD takes ownership of fd's and thus should close them
	  when they get replaced.
	  Fixes #477.

2006-10-06  Thomas Vander Stichele  <thomas at apestaart dot org>

	* data/glade/admin.glade:
	  remove translatibility of an unused string
	* po/nl.po:
	  update

2006-10-06  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/errors.py:
	* flumotion/component/component.py:
	* flumotion/manager/component.py:
	* po/POTFILES.in:
	  Catch exceptions during do_setup locally at the component, and
	  add the message there, so we know what to fix.  From that point on,
	  treat it as handled everywhere.  Create an error for handled setup
	  errors.  Add to translations.

2006-10-06  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/admin.py:
	* flumotion/wizard/steps.py:
	* flumotion/wizard/wizard.py:
	* flumotion/worker/worker.py:
	  Implement functions needed to support checking if a worker
	  can import given modules.
	  Use it to check for PIL in the wizard, linking to the website.
	* TODO: add a note about the message area

2006-10-03  Andy Wingo  <wingo@pobox.com>

	* flumotion/wizard/step.py (WizardStep.workerRun.callback): Move
	the deferred-results-must-be-Result-instances code here from the
	generic version, as is appropriate.

	* flumotion/common/medium.py (BaseMedium.runBundledFunction): Doc
	more. Only wrap some specific exceptions; in the case of e.g. a
	syntax error or some exception running the proc, pass the original
	error unmolested.

	* flumotion/wizard/steps.py:
	* flumotion/common/medium.py: Revert bits about defer_generator
	removal from [3889], they caused errors in f-g-c.

	* configure.ac: Comment out the bit about multiple versions of
	gstreamer.

2006-09-28  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	  back to trunk

=== release 0.3.1 ===

2006-09-28  Thomas Vander Stichele  <thomas at apestaart dot org>

	* Makefile.am:
	* NEWS:
	* RELEASE:
	* configure.ac:
	* flumotion.doap:
	* flumotion.spec.in:
	  releasing 0.3.1, "La Merce"

2006-09-27  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/admin.py:
	  catch errors on remote component calls, and display a reasonable
	  Warning message for them so we know what to fix.
	* flumotion/common/errors.py:
	  document the expected arguments for RemoteMethodError,	
	  taking the method name as the first argument
	* flumotion/wizard/step.py:
	  follow this change through
	* flumotion/component/feedcomponent.py:
	  document remote_effect
	* flumotion/manager/admin.py:
	  use the more useful log.getExceptionMessage
	* flumotion/manager/base.py:
	  check for the difference between AttributeError and NoSuchMethod
	  if we can
	* po/POTFILES.in:
	  add flumotion/admin/admin.py for translation
	  (port from 0.2 patch)

2006-09-27  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/worker/worker.py:
	  unravel defgen so we can actually see where problems are
	  pass through a RemoteRunError, it's already wrapped

2006-09-27  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/common/medium.py:
	Refactor runBundledFunction to not be a defer generator.
	Essential for debugging issues.
	* flumotion/wizard/steps.py:
	Refactor runChecks to not be a defer generator.
	Essential for debugging issues.
	* flumotion/worker/checks/check.py:
	Fix log line to actually send the log category.

2006-09-26  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/config.py:
	  use list length 0 as False to check multiple and required

2006-09-26  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/manager/main.py:
	  use CannotListenError correctly

2006-09-26  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/manager/main.py:
	  Replace something that has been deprecated since Python 1.5 (!)
	  Thank you pychecker.

2006-09-26  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/worker.py:
	  use ones and zeroes

2006-09-26  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/admin.py:
	  move imports inside defgen
	* flumotion/common/connection.py:
	* flumotion/job/main.py:
	  remove imports
	* flumotion/component/muxers/checks.py:
	  respect coding style - no idea how Zaheer got the periods in
	  the other branch :)

2006-09-26  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/consumers/httpstreamer/admin_gtk.py:
	Fix race where _stats would not be set if widget tree
	was received before uiState.

2006-09-26  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/consumers/httpstreamer/admin_gtk.py:
	Check we have _stats before using it.

2006-09-26  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* configure.ac:
	Bump twisted requirement to 2.0.1.

2006-09-25  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/consumers/disker/admin_gtk.py:
	We use old style classes so can't use super :(
	
2006-09-24  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/consumers/disker/admin_gtk.py:
	Actually update filename when uiState changes rather
	than just at time of getting ui state.

2006-09-24  Thomas Vander Stichele  <thomas at apestaart dot org>

	* Makefile.am:
	* common/Makefile.am:
	* common/rpm.mk:
	  add an "rpm" target that builds rpms

2006-09-24  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/worker/main.py:
	  break out a _createParser() function

2006-09-24  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/admin/admin.py:
	Add needed imports.  Why were they taken out?

2006-09-24  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/errors.py:
	  add a ComponentConfigError ...
	* flumotion/manager/manager.py:
	  ... and catch, showing a nice error message
	* flumotion/manager/component.py:
	  also show a nice error message when we're asked for a feederAvatar
	  that we don't have

2006-09-24  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/worker/feed.py:
	  remove debug lines we don't need anymore

2006-09-23  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/connections.py:
	  another real bug caught by pychecker

2006-09-23  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/job/main.py:
	* flumotion/launch/inspect.py:
	* flumotion/manager/worker.py:
	* flumotion/component/consumers/httpstreamer/admin_gtk.py:
	* flumotion/worker/worker.py:
	* flumotion/component/base/admin_gtk.py:
	* flumotion/admin/command/main.py:
	* flumotion/admin/text/admin_text.py:
	* flumotion/admin/text/main.py:
	* flumotion/component/base/admin_text.py:
	* flumotion/admin/admin.py:
	  various pychecker-assisted cleanups
	* misc/pycheckerrc:
	  disable shadows, since the output it gives does not help you fix
	  the problem

2006-09-22  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/worker/checks/video010.py:
	  remove unused import

2006-09-22  Thomas Vander Stichele  <thomas at apestaart dot org>

	* doc/random/configuration:
	  update notes
	* flumotion/common/config.py:
	* flumotion/common/errors.py:
	* flumotion/common/fxml.py:
	  make ConfigError and ParserError more strictly defined in
	  arguments; obviously it was necessary, because a broken XML
	  resulted in a useless error message

2006-09-21  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/identity.py:
	* flumotion/component/plugs/identity.py:
	* flumotion/component/plugs/adminaction.py:
	* flumotion/manager/base.py:
	* flumotion/manager/main.py:
	* flumotion/manager/manager.py:
	* flumotion/test/test_manager_manager.py:
	  "anything" is not really a good alternative to a decent interface.
	  And really, we are dealing with identities that can be either
	  local or remote; so implement it as such.
	  Disambiguate remoteIdentity where appropriate.

2006-09-21  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/misc/httpfile/httpfile.py:
	  Make pychecker happy.  Lament the absence of documentation
	  or comments.

2006-09-21  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/manager/admin.py:
	* flumotion/twisted/pb.py:
	  a pb.Error is a serializable exception; as a reply to a remote
	  method, it is similar to a Failure and should be logged.

2006-09-21  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/worker/feed.py:
	  remove debug lines that are now done for us on a lower level

2006-09-21  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/feedcomponent010.py:
	  Show a warning if someone requests a feed from us that we
	  don't have.  Ideally one should not get here - this should
	  be caught in the manager, but this is a last line of defense.

2006-09-21  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/common.py:
	  every assert should have a useful message

2006-09-21  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/gtk/parts.py:
	  Put back restart option, I used it, removal was not discussed,
	  the commit removing it was mixed with something completely
	  unrelated, and the ChangeLog entry for it was crap.

2006-09-21  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/registry.py:
	  handle the case where FLU_PROJECT_PATH points to non-project
	  directories, or directories that were in the registry before
	  no longer exist, by making some methods return False if the
	  path is not a registry path, and consequently removing them from
	  the parser.

2006-09-21  Thomas Vander Stichele  <thomas at apestaart dot org>

	* doc/random/naming:
	* flumotion/common/common.py:
	* flumotion/manager/main.py:
	* flumotion/worker/main.py:
	* flumotion/service/service.py:
	  add a --service-name argument from which names of log and pid files
	  are derived when daemonized.
	  Make the code and logging more consistent and useful 

2006-09-21  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/worker/worker.py:
	  properly trap an out-of-date manager we can't log in to.

2006-09-21  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/common.py:
	  make writePidFile return the path to the pid file
	* flumotion/worker/main.py:
	  log a little more

2006-09-21  Michael Smith  <msmith@fluendo.com>

	* flumotion/manager/manager.py:
	  Backport to trunk: allow stopping components that are trying to
	  start, but haven't succeeded or explicitly failed.

2006-09-20  Thomas Vander Stichele  <thomas at apestaart dot org>

	* Makefile.am:
	  add an integration make target

2006-09-20  Thomas Vander Stichele  <thomas at apestaart dot org>

	* Makefile.am:
	* configure.ac:
	* flumotion/test/Makefile.am:
	* flumotion/test/integration/Makefile.am:
	* flumotion/test/integration/__init__.py:
	* flumotion/test/integration/common.py:
	* flumotion/test/integration/test_qa.py:
	* flumotion/test/integration/test_torture.py:
	  Move integration outside of flumotion.test so we can separate it
	  from the unit test suite
	* tests/integration/common.py:
	  clean up the ugly path code a little bit

2006-09-20  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/consumers/httpstreamer/http.py:
	* flumotion/component/consumers/httpstreamer/http.xml:
	  Revert time-based bursting; will move this to a branch.

2006-09-19  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/service/service.py:
	  do not set name with -n on worker/manager because they already have
	  sensible ways of figuring it out if not specified, and when
	  the worker does specify it it should take precedence

2006-09-19  Andy Wingo  <wingo@pobox.com>

	* flumotion/manager/component.py
	(ComponentHeaven._startComponent): Until the network map is
	implemented, hack to allow intra-worker connections behind a
	firewall to work.

2006-09-19  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/consumers/httpstreamer/http.py:
	* flumotion/component/consumers/httpstreamer/http.xml:
	  burst-time property for http-streamer.
	  Allows time-based bursting, if multifdsink fully supports it
	  (currently requires patches).
	  Some refactoring for clarity. No behaviour changes by default.
	  Fixes #462

2006-09-18  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/misc/httpfile/httpfile.py:
	  Fix cortado problems due to porter redirections and persistent
	  connections.

2006-09-18  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/muxers/checks.py:
	* flumotion/worker/checks/encoder.py:
	* flumotion/worker/checks/video010.py:
	Fix checks to use get_plugin_version correctly.

2006-09-18  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/common/gstreamer.py:
	Actually make get_plugin_version return a tuple of integers
	not strings.

2006-09-16  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/manager/manager.py:
	Fix comment parameter ordering.

2006-09-14  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/consumers/httpstreamer/http.py:
	* flumotion/component/consumers/httpstreamer/http.xml:
	  Add burst-size property, in kB.
	  When set, use this to configure streamers using new multifdsink
	  burst modes.

2006-09-14  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/common/gstreamer.py:
	Make get_plugin_version return a tuple not a string.  Make nano
	non-optional in the return value.
	* flumotion/component/feedcomponent010.py:
	Use fixed get_plugin_version.
	* flumotion/component/muxers/checks.py:
	Use fixed get_plugin_version.
	* flumotion/worker/checks/encoder.py:
	Use fixed get_plugin_version.

2006-09-14  Michael Smith  <msmith@fluendo.com>

	* flumotion/admin/command/commands.py:
	* flumotion/admin/command/main.py:
	  Allow vararg commands, use for invoke.

2006-09-14  Andy Wingo  <wingo@pobox.com>

	* flumotion/admin/command/commands.py (_parse_typed_args): New
	exciting typed args parser.
	(do_invoke): Use the args parser to allow e.g. "invoke
	/default/foo fooCommand is(ss) 4 foo bar baz", which will do a
	componentCallRemote on /default/foo with the args (4, 'foo',
	('bar', 'baz')).

2006-09-14  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/feedcomponent010.py:
	Add event probe to each gdpdepay's src pad to filter subsequent
	new segment events.  This worksaround bugs in gdp's handling
	of 2nd (and after) newsegment events with changed caps after.
	This fixes issues with reconnection to upstream components that
	have been re-started

2006-09-13  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/test/integration/Makefile.am:
	* flumotion/test/integration/common.py:
	Add helper methods to stop all and start all components in a 
	manager.
	* flumotion/test/integration/test_qa.py:
	Remove unneeded import.
	* flumotion/test/integration/test_torture.py:
	Create test that stops and starts all components many times.

2006-09-13  Andy Wingo  <wingo@pobox.com>

	* flumotion/component/misc/httpfile/httpfile.py
	(RequestWrapper.request):
	* flumotion/component/plugs/streamdata.py: Pacify pychecker.

2006-09-12  Andy Wingo  <wingo@pobox.com>

	* flumotion/launch/main.py (start_components.do_start): Fix a bug
	when running pipelines with no clocking-requiring components.

	* flumotion/component/consumers/httpstreamer/http.xml: 
	* flumotion/component/consumers/httpstreamer/http.py
	(MultifdSinkStreamer.getStreamData): Support pluggable
	getStreamData() on the new StreamDataProvider socket.

	* flumotion/component/misc/httpfile/httpfile.xml: 
	* flumotion/component/misc/httpfile/httpfile.py: Support the
	logging socket, and require the 'path' property. Test via
	`flumotion-launch httpfile path=/etc/passwd
	/apachelogger,logfile=/dev/stdout'.

	* flumotion/component/plugs/Makefile.am (component_PYTHON): 
	* flumotion/component/plugs/plugs.xml: 
	* flumotion/component/plugs/streamdata.py: New plug/socket,
	providing pluggability for streamers' getStreamData() method.

2006-09-12  Michael Smith  <msmith@fluendo.com>

	* flumotion/manager/manager.py:
	  Don't start components on loading a configuration unless those
	  components were in the loaded config.

2006-09-09  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/test/test.xml:
	Update test.xml for GStreamer 0.10.
	* flumotion/common/boot.py.in:
	Add option on whether to install reactor, needed for the web admin
	because it needs to import nevow (which installs the reactor) before
	it munges stuff.

2006-09-08  Michael Smith  <msmith@fluendo.com>

	* configure.ac:
	  Check for PyGTK didn't work since I upgraded to 2.10.x, since it was
	  a string comparison. Since we have a check for the appropriate
	  version already there, ~10 lines above, just delete that.

2006-09-08  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/test/integration/test_qa.py:
	  make the tests a little less taxing on slower hardware by reducing
	  sizes
	  wait for some of the first components as well to be able to
	  distinguish where it fails

2006-09-08  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/log.py:
	  fix docstring
	* flumotion/launch/main.py:
	* flumotion/launch/parse.py:
	  appease pychecker and fix docstrings

2006-09-07  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/admin/command/commands.py:
	Make delete, stop and start more general doing actions on
	components, flows, the whole atmosphere or all (root).
	Refactor into one method.  Rename commands in flumotion-command.
	* flumotion/admin/command/utils.py:
	Add utility method that will parse an avatar path and return
	a list that identifies the type of avatar path and the rest
	of the avatar.

2006-09-07  Andy Wingo  <wingo@pobox.com>

	* flumotion/admin/gtk/parts.py (ComponentMenu.__init__): Remove
	restart menu item; stop and start should be good enough for
	anyone, with their 640k.

	* flumotion/manager/manager.py (Vishnu._startComponents)
	(Vishnu._workerCreateComponents, Vishnu._configToComponentState):
	Remove some old code that assumed that workerRequested could be
	None.

2006-09-07  Michael Smith  <msmith@fluendo.com>

	* flumotion/manager/base.py:
	* flumotion/manager/manager.py:
	  Restarting components was racy, and usually failed, because we
	  didn't wait for the component to actually be logged out. Do so.
	  Fixes #450.

2006-09-07  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/admin/command/commands.py:
	Add deletecomponent to flumotion-command.

2006-09-07  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/admin/command/commands.py:
	Add startcomponent and stopcomponent to our lovely array of
	commands that flumotion-command can execute.

2006-09-06  Andy Wingo  <wingo@pobox.com>

	* flumotion/test/test.xml: Specify worker for all components.

	* flumotion/test/test_manager_manager.py
	(TestVishnu.testLoadConfiguration.verifyEmptyDAG): Given that we
	specify a worker for all components, remove that dep from the
	graph as well.

	* flumotion/common/config.py (FlumotionConfigXML._parseComponent)
	(FlumotionConfigXML._parseManager): Make sure that <component>
	nodes have a worker attribute, except if we are parsing a bouncer
	component for a manager, in which case the worker attribute can't
	be present. (Got it?)

	* flumotion/test/test_config.py
	(TestConfig.testParseComponentNoWorker): Add a new test, ensuring
	that all component entries have non-null worker attributes. Adapt
	the other tests so that they do specify a worker.

	* flumotion/common/errors.py (ComponentWorkerConfigError): New
	error.

2006-09-06  Michael Smith  <msmith@fluendo.com>

	* flumotion/test/integration/test_qa.py:
	  Unskip disker test, disker now works with a fixed multifdsink.

2006-09-06  Michael Smith  <msmith@fluendo.com>

	* doc/random/component-initialization-protocol:
	  Update for information about master/slave clocks

2006-09-06  Michael Smith  <msmith@fluendo.com>

	* flumotion/launch/main.py:
	  Fix -launch for master clock changes.

2006-09-05  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/feedcomponent010.py:
	* flumotion/manager/depgraph.py:
	* flumotion/test/test_manager_depgraph.py:
	* flumotion/test/test_manager_manager.py:
	  Revert recent depgraph changes, so we again set up clock masters
	  before starting them.

	  Now, in provide_master_clock, set the pipeline to PAUSED before
	  trying to get the pipeline clock, to ensure we get the correct
	  clock. Add some generic infrastructure to wait for a particular 
	  state change.

	  Fixes #447.

2006-09-05  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/feedcomponent010.py:
	  Add buffer and event probes before starting the pipeline, not
	  after. Fix up some comments/log lines.

2006-09-05  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/registry.py:
	  add a getUnder() accessor
	  use it when writing out the registry, so it finds the locale files
	  correctly and doesn't warn and rebuild on it

2006-09-05  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/consumers/httpstreamer/resources.py:
	ASF should not send a Pragma header with features=broadcast.
	This allows WMP to play asf streams on port 80 on FQDN'd urls.

2006-09-05  Michael Smith  <msmith@fluendo.com>

	* flumotion/worker/feed.py:
	  Clean up feedserver FD/transport dropping. Fixes #446

2006-09-05  Andy Wingo  <wingo@pobox.com>

	* flumotion/launch/main.py: One more doc line.

	* flumotion/launch/parse.py (parse_args): Remove some unused vars.

	* flumotion/launch/main.py: Document via a docstring. Refactor to
	use the flumotion.launch.parse library. Update for changes in
	component startup: components connect over pipes instead of TCP
	ports.

	* flumotion/launch/parse.py: New file, exports one function that
	takes an argv fragment and returns an ordered list of config
	dicts. Refactorage.

	* flumotion/test/test_dag.py (TestDAG.testSort): Fix broken test.

	* flumotion/common/dag.py (topological_sort): Fix return to follow
	docs, broken since the depgraph merge.

2006-09-04  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/feedcomponent010.py:
	  Set pipeline to PAUSED/PLAYING to trigger base_time redistribution
	  within the pipeline, since we're managing it manually.

2006-09-04  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/test/test_manager_manager.py:
	Fix test that checks the depgraph.  We now will have 
	component, CLOCKMASTER as offspring from 
	component, COMPONENTSTART.

2006-09-04  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/test/test_manager_depgraph.py:
	Fix test that tests the depgraph to use the changed behaviour from
	previous commit.

2006-09-04  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/feedcomponent010.py:
	Add debug to see when master clock is set on a clock slave.
	* flumotion/manager/component.py:
	In start, if component is the master clock, do not tell
	component to provide master clock.  That is done by
	tryWhatCanBeStarted.
	* flumotion/manager/depgraph.py:
	Make CLOCKMASTER dep on COMPONENTSTART, the GStreamer clock only 
	gets selected on state change to PLAYING.

2006-09-01  Michael Smith  <msmith@fluendo.com>

	* flumotion/worker/feed.py:
	* flumotion/worker/worker.py:
	  Use PassableServerPort so we can actually shut down feed-server-side
	  copies of the FD after passing to the job.
	  Avoids leaking FDs.
	  There's a lot of possible cleanup when we do things this way,
	  leaving that for another patch.

2006-09-01  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/worker/checks/video.py:
	* flumotion/worker/checks/video010.py:
	Do the deferToThread on set_state only for the webcam check.

2006-09-01  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/worker/checks/video010.py:
	Setting state to PLAYING can take a lot longer than 12.5 seconds
	so run in a separate thread.  12.5 seconds is our ping timeout.
	This fixes the Webcam worker check for example.

2006-09-01  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* common/trial.mk:
	Fix properly!

2006-09-01  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* common/trial.mk:
	Fix pythonpath for running tests by using an absolute path.

2006-08-31  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/manager/component.py:
	Should not return, now that we iterate over the deplist rather
	than take the first item.
	Also remove the call to _tryWhatCanBeStarted now that the returns
	have been removed.
	* flumotion/test/integration/test_qa.py:
	Skip videotest with overlay integration test.

2006-08-31  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/admin/command/commands.py:
	Actually output success when invoke runs successfully.
	* flumotion/test/integration/test_qa.py:
	Remove files correctly.
	* scripts/check-disker-file-type:
	Check file type of file currently being written to by disker.
	* scripts/check-file-type:
	No longer needed.
	* scripts/remove-disker-files:
	Script to remove the file currently being written to by disker.

2006-08-31  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/test/Makefile.am:
	Fix disting of integration Makefile.

2006-08-31  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/consumers/httpstreamer/http.py:
	* flumotion/component/consumers/httpstreamer/http.xml:
	* flumotion/component/misc/httpfile/httpfile.py:
	* flumotion/component/misc/httpfile/httpfile.xml:
	  make porter_ properties consistent
	  there is no porter master mode, there is only master mode where
	  there is no porter

2006-08-31  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/misc/httpfile/httpfile.py:
	* flumotion/component/misc/httpfile/httpfile.xml:
	* flumotion/test/integration/test_qa.py:
	  rename path_to_file to path

2006-08-31  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/manager/depgraph.py:
	Whoops, we were letting too many nodes through in whatShouldBeStarted.

2006-08-31  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* scripts/wait-for-http-headers:
	Forgot to add this script. Whoops.

2006-08-31  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/test/integration/test_qa.py:
	Add integration test of videotest with overlay.
	* scripts/check-file-type:
	Wait for file to be non-empty before checking file type.

2006-08-31  Michael Smith  <msmith@fluendo.com>

	* flumotion/manager/base.py:
	  Fix up formatting of remote call logging.

2006-08-31  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/test/integration/test_qa.py:
	Add test for default wizard audiotest with disker.

2006-08-31  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/test/integration/test_qa.py:
	Add test to check whether token bouncing works.
	* scripts/check-token-for-http:
	Add test that does 2 requests, one with a correct token
	and one with an incorrect token.

2006-08-31  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/test/integration/common.py:
	configure.bindir is top_src_dir/bin.

2006-08-31  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/bouncers/tokentest.py:
	Fix use of wrong implements method and bad property
	requesterName.

2006-08-31  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/bouncers/tokentest.xml:
	Add bundle definitions to test token bouncer.

2006-08-31  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/bouncers/tokentest.py:
	* flumotion/component/bouncers/tokentest.xml:
	Fix wingo's b0rked commit.

2006-08-31  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/test/integration/test_qa.py:
	Check http-video streams and check disker outputs ogg files.
	* scripts/check-file-type:
	Script to check file type.

2006-08-31  Andy Wingo  <wingo@pobox.com>

	* flumotion/component/bouncers/Makefile.am (component_PYTHON): 
	* flumotion/component/bouncers/tokentest.xml: 
	* flumotion/component/bouncers/tokentest.py
	(TokenTestBouncer.authenticate): New bouncer, only allows requests
	with a certain token through.

2006-08-31  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/wizard/save.py:
	  don't save properties comments, it's really annoying when
	  you want to comment out blocks of components
	  add some spacing, makes it easier to read

2006-08-31  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/admin/command/commands.py:
	Actually output something if someone does not have cowsay
	installed.

2006-08-31  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* scripts/wait-for-component-mood:
	* scripts/wait-for-http-port:
	* scripts/wait-for-show-planet:
	* scripts/wait-for-worker:
	Stupid svn won't let me commit my propsets of svn:executable
	so had to modify the files too.

2006-08-30  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/test/integration/common.py:
	* flumotion/test/integration/test_qa.py:
	Use random ports within a range so concurrent buildbots
	running the test have a low chance of clashing ports.

2006-08-30  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* configure.ac:
	Forgot to add in my last commit.
	* flumotion/test/integration/__init__.py:
	Whoops, forgot to add this file.
	* flumotion/test/integration/common.py:
	Add some helper methods to base class
	* flumotion/test/integration/test_qa.py:
	Add Videotest with no overlay integration test.

2006-08-30  Michael Smith  <msmith@fluendo.com>

	* bin/flumotion-manager.in:
	  Don't use gstreamer in the manager.

	* flumotion/manager/main.py:
	  Don't print out gstreamer-related variables in the manager, since
	  we're not importing it.

2006-08-30  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/admin/command/commands.py:
	Add command to show workers logged into a manager.
	* flumotion/component/misc/httpfile/httpfile.py:
	Work properly when not using a porter.
	* flumotion/test/integration/Makefile.am:
	* flumotion/test/integration/common.py:
	* flumotion/test/integration/test_qa.py:
	Add some simple integration tests.
	* scripts/wait-for-component-mood:
	* scripts/wait-for-http-port:
	* scripts/wait-for-show-planet:
	* scripts/wait-for-worker:
	Add some scripts for the integration tests.

2006-08-30  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/common/dag.py:
	Remove more un-needed log lines.
	* flumotion/manager/manager.py:
	Reset mood pending when component unregisters, or about
	to tell worker to create a really lost component.

2006-08-30  Andy Wingo  <wingo@pobox.com>

	* flumotion/manager/admin.py (AdminAvatar._saveFlowFile): Break
	out from loadConfiguration so that we can instrument it as an
	admin action.

2006-08-30  Michael Smith  <msmith@fluendo.com>

	* flumotion/manager/manager.py:
	  Syntactically superior.

2006-08-30  Michael Smith  <msmith@fluendo.com>

	* flumotion/manager/manager.py:
	  If a worker logs in and we detect that lost components are gone,
	  set them to sleeping before restarting them.

2006-08-30  Andy Wingo  <wingo@pobox.com>

	* flumotion/admin/command/main.py (command_usage)
	(parse_commands): Support optional arguments to commands.

	* flumotion/admin/command/commands.py (commands)
	(do_loadconfiguration): Add an optional 'save-as' argument.

	* flumotion/manager/admin.py
	(AdminAvatar.perspective_loadConfiguration): Accept an optional
	saveAs argument that will save the XML fragment to a file in the
	manager's flows directory.

2006-08-30  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/common/dag.py:
	Remove unneeded dag log lines.
	* flumotion/manager/component.py:
	Make line under 80 characters width.

2006-08-30  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/manager/manager.py:
	Clear avatar flags after component has stopped.

2006-08-29  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/worker/feed.py:
	  use transport.loseConnection() instead

2006-08-29  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/worker/feed.py:
	* flumotion/worker/worker.py:
	  if we can't hand off the fd to the job because the mind is gone,
	  bubble up a False result, and use it to drop all references to
	  the transport.

2006-08-29  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/feedcomponent010.py:
	  comment on the FIXME

2006-08-29  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/feedcomponent010.py:
	  add an event probe for EOS and swallow it - reconnect will be
	  triggered due to buffer probe.
	  There may be a better way to deal with this though.

2006-08-29  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/feedcomponent010.py:
	  further fix feed reconnection for stopped upstream components:
	  - handle fdsrc EOS in bus handler by reconnecting
	  - in _checkEater(), try to reconnect even if the lastTime was
	    set to 0
	  - in eaterDisconnected(), reset lastTime to 0 to make sure
	    our checkEater() doesn't spuriously mark the feed as connected
	    again just because we received data right before the disconnect

2006-08-29  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/feedcomponent010.py:
	  implement feed reconnection for eaters:
	  - make checks for receiving data per-eater instead of global
	  - rename to _checkEater, and keep track of callLater state
	    so we can use this method both as a callLater and a normal method
	  - add overridable vmethods eaterDisconnected and eaterConnected,
	    which by default set to hungry if any eater is disconnected,
	    and happy otherwise.  Subclasses can override this behaviour here.
	  - _checkEater will also re-attempt connection if the previous
	    reconnection did not result in receiving new data in the eater 
	  - add a _reconnectEater method that properly reconnects, and
	    tracks state of connection attempts
	  - fixed EatFromFD() to handle the case where fdsrc is already in
	    PAUSED/PLAYING; where it doesn't accept a change of fd, by
	    taking fdsrc out, changing state, adding, and reinserting

2006-08-29  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/feedcomponent.py:
	  key the feederFeedServer on feedId instead

2006-08-29  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/worker/worker.py:
	  handle the case where a job is gone by closing the fd,
	  which indicates EOS

2006-08-29  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/manager/manager.py:
	  fix args error in exception

2006-08-29  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/manager/component.py:
	  when setup fails, give us a UI error message

2006-08-29  Andy Wingo  <wingo@pobox.com>

	* flumotion/component/misc/repeater/repeater.py
	(Repeater.get_pipeline_string): This component was 25% buggy. And
	the other 75% was boilerplate. Don't overload the logs with a
	verbose message for every buffer.

2006-08-29  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/consumers/httpstreamer/resources.py:
	No longer using this ugly hack in httpfile.
	* flumotion/component/misc/httpfile/httpfile.py:
	Use twisted's preferred way of having a tree of resources instead
	of Thomas's ugly hack.

2006-08-29  Andy Wingo  <wingo@pobox.com>

	* flumotion/component/producers/firewire/firewire.py
	(Firewire.getVolume): Implement this, needed for the volume effect
	to work.

	* flumotion/worker/checks/video010.py (do_element_check.run_check)
	(check1394.do_check): Fix bogus log.debug() calls that caused
	errors.

2006-08-29  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/test/test_pbstream.py:
	  Show that we can also stop streaming before handing off the fd
	  to multifdsink

2006-08-28  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/misc/httpfile/httpfile.py:
	Check for file existing could never be run, duh!

2006-08-28  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/misc/httpfile/httpfile.py:
	Forgot an import.  Bad me.

2006-08-28  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/consumers/httpstreamer/resources.py:
	* flumotion/component/misc/httpfile/httpfile.py:
	Copy Thomas's hacked subclass of Resource to httpfile
	so we can also handle non root dir urls in httpfile.

2006-08-28  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/component.xml:
	Add misc/__init__.py to component-base bundle.

2006-08-28  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/consumers/httpstreamer/http.py:
	Import porterclient.
	* flumotion/component/consumers/httpstreamer/http.xml:
	Add bundle dependency on porterclient.
	* configure.ac:
	* flumotion/component/misc/Makefile.am:
	* flumotion/component/misc/httpfile/Makefile.am:
	* flumotion/component/misc/httpfile/__init__.py:
	* flumotion/component/misc/httpfile/httpfile.py:
	* flumotion/component/misc/httpfile/httpfile.xml:
	Add new component to serve static files over HTTP.
	* flumotion/component/misc/porter/porterclient.py:
	Move HTTPPorterClientFactory to porterclient.
	* flumotion/component/misc/porter/porter.xml:
	Add porterclient bundle.

2006-08-28  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/feedcomponent010.py:
	  make hungry-because-of-eos sticky

2006-08-22  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/manager/manager.py:
	  a lost component should also be stoppable.  Not yet sure
	  what should happen if the manager thinks it is "stopped", and
	  then the lost component logs back in though.

2006-08-28  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/manager/manager.py:
	  Fix wrong number of arguments in commatized log statement.
	  Also, INFO and above needs to be clear, human-readably, and
	  not overly verbose.

2006-08-28  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/component.py:
	  remove ugly hack by just logging the avatarId, which is more
	  correct anyway.

2006-08-28  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/component.py:
	  Improve comment that was a bit confusing.

2006-08-28  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/consumers/httpstreamer/resources.py:
	  Don't treat maxclients == -1 as meaning no client is allowed; this
	  means there's no max set.
	  However... don't set maxclient to -1 by default; default to using
	  the system soft limit - reserve.

2006-08-28  Andy Wingo  <wingo@pobox.com>

	* flumotion/test/common.py: Fix a screwup.

	* flumotion/twisted/integration.py (Plan._makeOutputDir): Ensure
	that the test directory exists before making subdirs in it. Should
	fix twisted 2.0.1 build failures, where trial logs into
	/tmp/tmpXXXXXX instead of ./_trial_temp.

2006-08-28  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/consumers/httpstreamer/resources.py:
	* flumotion/test/test_http.py:
	  add a test for requesting a direct root child, and fix the bug
	  exposed by it.

2006-08-28  Michael Smith  <msmith@fluendo.com>

	* flumotion/manager/manager.py:
	  Improve correctness of debug output.

2006-08-28  Michael Smith  <msmith@fluendo.com>

	* flumotion/manager/manager.py:
	  Fix typo.

2006-08-28  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/component.py:
	  Set mood to 'waking' when setup() is called. 

	* flumotion/manager/manager.py:
	  Note a waking component (on login) as having already been set up,
	  but not started.
	  A 'hungry' component is setup and started.
	  Improve some log lines.

2006-08-26  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/worker/worker.py:
	Fix docstring.

2006-08-25  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/manager/component.py:
	Remove call to tryWhatCanBeStarted when component attaches, because
	we moved it to a similar place in vishnu where the depgraph
	setting is happening.
	* flumotion/manager/manager.py:
	When worker attaches, check what components worker has running
	so manager does not attempt to start them.  Also make worker
	create any components that are lost but assigned for that worker
	and are not components worker already has running.  Useful when
	machine worker is running on has an unclean shutdown/power outage.

	Move depgraph setting on component attach to after we are guaranteed
	we have received the job state and hence the mood any components
	have before this connection to manager.  Fixes a race.
	* flumotion/manager/worker.py:
	Add remote method so that manager can query worker for what
	components it has.  Useful when worker re-connects after network
	failure so manager does not try and setup/start the components.
	* flumotion/test/test_manager_manager.py:
	Add stub method for getting components worker has.
	* flumotion/worker/worker.py:
	Add remote method so that manager can query worker for what
	components it has.  Useful when worker re-connects after
	network failure so manager does not try and setup/start the
	components.

2006-08-25  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/consumers/httpstreamer/resources.py:
	  Our streamer component never supported non-root URI's.
	  Add handling for it...
	* flumotion/test/test_http.py:
	  ... and a test.

2006-08-25  Michael Smith  <msmith@fluendo.com>

	* flumotion/manager/manager.py:
	  When a component attaches to the manager, if it already has a happy
	  mood, set the depgraph setup and start nodes to true.
	  Avoids trying to re-setup/restart components that are already
	  running.

2006-08-25  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* doc/random/component-dependencies/depgraph-scenario2.dia:
	Update to new depgraph semantics.

2006-08-25  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* doc/random/component-dependencies/depgraph-scenario1.dia:
	Add missing dep lines between COMPONENTSTART nodes.

2006-08-25  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/manager/component.py:
	  when handling direct dependencies that can be changed, handle
	  all of them, not just the first one.  This allows other
	  non-depending components to start even if the first one ran
	  into an error.

2006-08-24  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/log.py:
	  log the str() of an exception, more useful than just the first arg
	* flumotion/manager/component.py:
	  pass on on already handled component start errors

2006-08-24  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/log.py:
	  do not log an empty Exception.args[0]
	* flumotion/manager/component.py:
	  also add ConnectError (No route to host) as something to show an
	  error message for. Log the frame inside this file, so we do not
	  see a defgen frame.

2006-08-24  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/errors.py:
	  clarify args of ComponentError and BusyComponentError
	* flumotion/manager/component.py:
	  a component turning happy should clear its moodPending
	* flumotion/manager/manager.py:
	  reset moodPending when logging out
	* flumotion/test/test_manager_manager.py:
	  add fake eatFrom/feedTo
	  verify moodPending
	  fix test

2006-08-24  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/log.py:
	  clean up warningFailure, documenting it, and adding a
	  swallow boolean, that controls whether we propagate the failure or
	  not
	* flumotion/manager/component.py:
	  use swallow, so that our second errback can still function and
	  throw up a decent message when we can't start a component

2006-08-24  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/log.py:
	  add ellipsize function for long (+8 lines) strings
	* flumotion/common/medium.py:
	* flumotion/manager/admin.py:
	* flumotion/manager/base.py:
	* flumotion/twisted/pb.py:
	  use it.  This makes sure we don't see complete .pyc files in our logs
	* flumotion/test/test_bundle.py:
	  allow for logging

2006-08-24  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/manager/manager.py:
	  actually set moodPending, to make sure we don't start a component
	  more than once.  This fits with all the code that checks moodPending.
	  Solves the problem of having components being started more than once
	  if we have multiple loadConfiguration calls in a row.

2006-08-24  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/manager/component.py:
	Document _tryWhatCanBeStarted a bit more and give rationale
	for why it's doing what it's doing.
	* doc/random/component-dependencies/depgraph-scenario1.dia:
	Update diagram to be up to date with latest component dependencies
	things.

2006-08-24  Andy Wingo  <wingo@pobox.com>

	* flumotion/manager/manager.py
	(Dispatcher.createAvatarFor.got_identity): Fix indentation error.
	(Vishnu.computeIdentity): Always return a deferred.

	* flumotion/test/test_twisted_integration.py (_deferred_result):
	Pull from common.py.

	* flumotion/test/test_manager_manager.py
	(TestVishnu._requestAvatar): New helper method.
	(TestVishnu._loginWorker, TestVishnu._loginComponent): Use
	_requestAvatar, return a deferred now.
	(TestVishnu._logoutAvatar): Rearrange arg order to correspond to
	manager.py.
	(TestVishnu.testConfigBeforeWorker): 
	(TestVishnu.testConfigAfterWorker)
	(TestVishnu._verifyConfigAndOneWorker): 
	(TestVishnu.testWorker): Adapt to deferred avatars.

	* flumotion/test/common.py (deferred_result): New function, a
	decorator for tests that return deferreds that will make T1.3
	happy.
	(deferred_result): Decorator to handle old twisted deferred
	returns.

2006-08-24  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/component.py:
	  error()'s prototype has changed at some point, so fix our override

2006-08-24  Andy Wingo  <wingo@pobox.com>

	* flumotion/manager/manager.py
	(Dispatcher.requestAvatar.got_error): Fix bogus .trap statement :/

2006-08-24  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/manager/component.py:
	  add a generic error message for not being able to start a component
	* flumotion/manager/manager.py:
	* flumotion/worker/worker.py:
	  log.getFailureMessage() is slightly more useful

2006-08-24  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/component.py:
	  Add a hack to figure out the name of a component that hasn't been
	  set up (because it never logged in) when printing out a login
	  failure message.

2006-08-24  Andy Wingo  <wingo@pobox.com>

	* flumotion/manager/manager.py (Dispatcher.createAvatarFor):
	Change to return a deferred, because computeIdentity returns a
	deferred.
	(Dispatcher.requestAvatar): Change to return a deferred instead of
	an immediate value.

	* flumotion/component/plugs/identity.py
	(ExampleIdentityProvider.computeIdentity): Change this protocol to
	return a deferred instead of an immediate result.

2006-08-23  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/consumers/httpstreamer/http.py:
	  Change getStreamData to return 'url' and 'description'

2006-08-23  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/feedcomponent010.py:
	Set mood of component to hungry instead of sad when receiving
	an EOS.  The EOS is caused when it disconnects from it's feeder.

2006-08-23  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/boot.py.in:
	  reinstall our packager's import hooks
	  after installing the reactor
	  also, allow specifying whether we want gst as part of the boot
	  process, so we can disable it for programs that don't need it
	* flumotion/common/package.py:
	  factor out a Packager.install() method so we can reinstall the
	  import hooks
	* flumotion/twisted/compat.py:
	  add a note about the reactor overriding import hooks

2006-08-23  Andy Wingo  <wingo@pobox.com>

	* flumotion/twisted/integration.py (TimeoutException): Take some
	args so our __str__ can be more useful.
	(ProcessProtocol.timeout, Process.wait): Pass around more context
	so we can annotate our errors better.

	* flumotion/configure/configure.py: 
	* flumotion/configure/uninstalled.py.in (get): 
	* flumotion/configure/installed.py.in (get): Add 'bindir' as a
	conf variable.

2006-08-23  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/job/job.py:
	* flumotion/manager/manager.py:
	* flumotion/manager/worker.py:
	* flumotion/worker/worker.py:
	  remote_create only needs the nice level, not the whole config
	  Fixes a long-standing FIXME and allows me to tighten down the
	  component protocol
	* flumotion/test/test_worker_worker.py:
	  fix test for removal of .config and adding of .nice

2006-08-23  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/manager/component.py:
	  guard against the mood key being set to None

2006-08-23  Michael Smith  <msmith@fluendo.com>

	* flumotion/test/test_porter.py:
	  Write tests for a private bug report.
	  Ensure that we handle (i.e. ignore) GET parameters in the porter
	  HTTP parser.

2006-08-22  Andy Wingo  <wingo@pobox.com>

	* flumotion/component/consumers/httpstreamer/resources.py
	(HTTPStreamingResource.logWrite): Log the already-parsed get
	parameters as well.

	* flumotion/twisted/integration.py (test): Sigh, it seems trial
	2.4 requires a timeout.

	* flumotion/component/plugs/loggers.py
	(_http_session_completed_to_apache_log): Assume that 'username' is
	in the args, and comment on the role of ident.

	* flumotion/component/consumers/httpstreamer/resources.py
	(HTTPStreamingResource.logWrite): Add 'username' to args, with the
	intention of filling it in properly later.

	* flumotion/twisted/integration.py (ProcessProtocol.processEnded):
	More debugging.
	(PlanExecutor._checkProcesses): Debugging, and make sure we don't
	callback a Failure -- that would put us down the errback side.
	(test): Set timeout attr to None, so trial never times out on our
	behalf.

	* flumotion/test/test_twisted_integration.py (_call_in_reactor):
	Be P2.3-friendly.
	(_deferred_result): New decorator for deferred results, to handle
	T1.3.
	(CompatTestCase): New base class, makes sure failUnlessFailure is
	there. Other test cases derive from this now.
	(IntegrationProcessTest.testTransientProcess)
	(IntegrationProcessTest.testTimeOut)
	(IntegrationProcessTest.testKill)
	(IntegrationPlanExecuteTest.testTransientProcess)
	(IntegrationPlanExecuteTest.testKill)
	(IntegrationPlanExecuteTest.testUnexpectedProcessExit)
	(IntegrationPlanExecuteTest.testUnexpectedExitCode)
	(IntegrationPlanExecuteTest.testProcessesStillRunning): Use the
	_deferred_result decorator.

	* flumotion/test/test_twisted_integration.py
	(IntegrationProcessTest.failUnlessFailure): Fix my broken fallback
	failUnlessFailure implementation.

	* flumotion/twisted/integration.py (Process.wait.got_exit): Status
	can be None, change the format string.
	(warning): For some reason, the level is WARN and not WARNING.
	This is crazy.

	* flumotion/admin/command/utils.py (find_component): Find
	components in the atmosphere as appropriate.

	* flumotion/twisted/integration.py (_which): IMF structural
	adjustment.
	(log, debug, info, warning, error): New wrappers. Use em in a
	bunch of places. This way you can run trial with
	FLU_DEBUG=integration:5 and see what's going on.

2006-08-21  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/boot.py.in:
	  suppress pychecker warning about redefining catching

2006-08-21  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/gtk/client.py:
	* flumotion/manager/manager.py:
	* flumotion/test/test_manager_manager.py:
	  doc, indentation, and logging changes

2006-08-21  Andy Wingo  <wingo@pobox.com>

	* flumotion/twisted/integration.py (test): For old twisted, return
	unittest.deferredResult. Cope with older python as well.
	(test.wrappedtest): BPB.

	* flumotion/twisted/integration.py (Plan.__init__): Attempt to
	pass distcheck via using trial's temp dir for logging. Don't
	bother appending the time, trial ensures we are in a pristine dir.

2006-08-21  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/manager/component.py:
	  a component logging in could already be running, so don't set the
	  mood to waking on login

2006-08-21  Thomas Vander Stichele  <thomas at apestaart dot org>

	* common/common.mk:
	  remove -R from trial for coverage

2006-08-17  Andy Wingo  <wingo@pobox.com>

	* flumotion/test/test_twisted_integration.py
	(IntegrationTestDecoratorTest.testParallelStartAndKill): Update
	for new kill semantics.

	* flumotion/twisted/integration.py (Plan.kill): Change to only
	kill one process, with an optional wait status. status=None, the
	default, means that the signal handler kills the program. status=0
	means that the app caught the signal and returned 0.

2006-08-16  Andy Wingo  <wingo@pobox.com>

	* common/setup.m4: No ac_dest in autoconf 2.60; but we do have
	ac_file.
	(setup): Return the package path, in case any script wants to know
	the srcdir.

	* flumotion/manager/main.py (main): Return 1 on all argument
	errors.

	* flumotion/test/test_twisted_integration.py
	(IntegrationPlanGenerationTest.testTransientProcess)
	(IntegrationPlanGenerationTest.testKill)
	(IntegrationPlanExecuteTest.testTransientProcess)
	(IntegrationPlanExecuteTest.testKill)
	(IntegrationPlanExecuteTest.testUnexpectedProcessExit)
	(IntegrationPlanExecuteTest.testUnexpectedExitCode)
	(IntegrationPlanExecuteTest.testProcessesStillRunning): Update for
	Plan initargs.

	* flumotion/twisted/integration.py (Plan.__init__): Take the test
	case instead of its name, so that we can output our logs in the
	correct directory.
	(_classNameToFileName): New happy function.
	(test.wrappedtest): Create a Plan with the proper initargs.

	* flumotion/test/test_twisted_integration.py
	(IntegrationProcessTest.testTransientProcess)
	(IntegrationProcessTest.testTimeOut)
	(IntegrationProcessTest.testKill)
	(IntegrationTestDecoratorTest.testTransientProcess)
	(IntegrationTestDecoratorTest.testParallelWait)
	(IntegrationTestDecoratorTest.testFalse)
	(IntegrationTestDecoratorTest.testKill)
	(IntegrationTestDecoratorTest.testParallelStartAndKill): Python
	2.3-friendly decorators.

2006-08-14  Andy Wingo  <wingo@pobox.com>

	* flumotion/test/test_twisted_integration.py
	(IntegrationPlanExecuteTest.testUnexpectedExitCode): Remove some
	debugging cruft.
	(IntegrationPlanExecuteTest.testUnexpectedExitCode): BPB.
	(IntegrationProcessTest.testTransientProcess): Because we can
	immediately be STOPPED for short-lived processes, relax this check
	to != NOT_STARTED.
	(IntegrationProcessTest.failUnlessFailure): Implement if not
	present.

	* flumotion/twisted/integration.py (Process.start): Reorder an
	addCallback to account for the case in which the deferred already
	fired. Fixes a wee bug. Remove all this prints in this file.

	* flumotion/test/test_twisted_integration.py: Unit test for
	integration framework.

	* flumotion/twisted/integration.py: New file, implements a
	framework for spawning processes from within unit tests, so you
	can use trial to make integration tests. See the docstring for
	more info. Still a couple of bugs to iron out.

	* flumotion/test/Makefile.am (EXTRA_DIST): 
	* flumotion/twisted/Makefile.am (flumotion_PYTHON): Requisite
	autotoolage.

2006-08-09  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/log.py:
	  fix docstring

2006-08-09  Andy Wingo  <wingo@pobox.com>

	* flumotion/component/misc/porter/porter.py
	(PorterMedium.remote_getPorterDetails): Report the iptables-port,
	not the port we actually listen on.
	(Porter.init): 
	(Porter.do_setup): Get iptables-port from the config, defaulting
	to props['port'].

	* flumotion/component/misc/porter/porter.xml: New optional
	property iptables-port, for e.g listening on port 8800 but saying
	we listen on 80, because iptables redirects 80->8800.

2006-08-09  Andy Wingo  <wingo@pobox.com>

	* flumotion/component/misc/porter/porter.xml: Add a comment.
	
	* flumotion/component/misc/porter/porter.py
	(PorterMedium.remote_getPorterDetails): Also return the interface
	the porter is listening on.

2006-08-08  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/twisted/Makefile.am:
	  Yay for adding files but not keeping the dist working

2006-08-07  Andy Wingo  <wingo@pobox.com>

	* flumotion/common/boot.py.in (boot): Support profiling of any
	flumotion process via setting the FLU_PROFILE environment
	variable.

2006-08-02  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/manager/admin.py:
	  log perspectiveMessageReceived for admin avatars

2006-07-31  Andy Wingo  <wingo@pobox.com>

	* flumotion/common/connection.py (PBConnectionInfo.__str__): Fix
	__str__ in the case of an authenticator transferred over the wire.

2006-07-27  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/component.py:
	* flumotion/component/consumers/httpstreamer/http.py:
	* flumotion/component/feedcomponent.py:
	* flumotion/component/feedcomponent010.py:
	* flumotion/manager/component.py:
	* flumotion/manager/manager.py:
	  Cleanup of mood handling: transitions to/from sleeping MUST only be
	  done by the manager, not by a component. Fixes #426.
	  
	  Also fix a cleanup issue if stop gets called multiple times on a
	  component.


2006-07-27  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/manager/component.py:
	* flumotion/manager/depgraph.py:
	  doc and debug fixes

2006-07-27  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/manager/manager.py:
	  remove messages when asked to stop a component; fixes #410

2006-07-26  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/feedcomponent010.py:
	  Make the interval for checking for recent-buffers 2.5 times the
	  interval we use for getting the buffer.
	  Having them the same frequently causes components to spuriously go
	  hungry, then back to happy shortly after.

2006-07-26  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/component.py:
	  Fix CPU updating by adding a callLater loop.
	  Cancel cpu updating callLater in BaseComponent.stop()

	* flumotion/test/test_component.py:
	* flumotion/test/test_component_init.py:
	* flumotion/test/test_htpasswdcrypt.py:
	* flumotion/test/test_pb.py:
	* flumotion/test/test_saltsha256.py:
	  Update tests to stop components they create so we don't have
	  callLaters lying around which trial dislikes.

2006-07-26  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/gtk/parts.py:
	  actually update the CPU usage column when we receive an update
	* flumotion/component/component.py:
	  add a log line

2006-07-24  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/twisted/pb.py:
	  add a Referenceable and Avatar that is also loggable, so we can
	  hook into remoteMessageReceived for logging
	* flumotion/common/medium.py:
	  subclass BaseMedium from our new Referenceable
	* flumotion/common/log.py:
	  add getFileLine as a public method
	  add getFormatArgs to aid in creating format and args string for
	  debug statements without interpolating variables
	  expose _handle() as doLog()
	  add Loggable.doLog(), allowing more control over file and line it
	  shows
	* flumotion/component/component.py:
	* flumotion/component/feedcomponent.py:
	* flumotion/worker/worker.py:
	* flumotion/worker/feed.py:
	* flumotion/manager/component.py:
	* flumotion/job/job.py:
	  remove debug lines that are now done for us
	* flumotion/manager/base.py:
	  add debugging to ManagerAvatar

2006-07-22  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/feedcomponent010.py:
	  respect the do_stop() protocol

2006-07-22  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/manager/admin.py:
	* flumotion/manager/manager.py:
	  move implementation of stopping a component to Vishnu;
	  an admin avatar should not implement component-specific
	  behaviour

2006-07-22  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/common.py:
	* flumotion/common/dag.py:
	  doc fixes

2006-07-21  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/manager/depgraph.py:
	  doc cleanups

2006-07-20  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/common.py:
	  remove unused module

2006-07-20  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/dag.py:
	  DAG was never intended to only take int types, so use %r
	  everywhere for type
	  Move some debugging to log, it's too verbose otherwise
	* flumotion/manager/depgraph.py:
	  use strings for type, makes debug a lot more readable
	  add a FIXME for a very doubtful two lines of code
	  speed up turning downstream components to hungry when we
	  stop a component
	* flumotion/manager/component.py:
	  use strings for type, makes debug a lot more readable
	* flumotion/test/test_dag.py:
	* flumotion/test/test_manager_depgraph.py:
	* flumotion/test/test_manager_manager.py:
	  Fix tests as well

2006-07-20  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/component.py:
	  add a doc
	* flumotion/component/feedcomponent010.py:
	  make defaults for turning hungry smaller
	  fix the check_for_buffer_data callLater; components now
	  turn hungry (slowly) when they stop receiving data

2006-07-20  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* TODO:
	* flumotion/common/dag.py:
	Added logging.  Remove references to nodes that may not exist
	anymore, which end up actually being added to the sorted list.
	* flumotion/manager/depgraph.py:
	More debug.  Also remove dag nodes from _state when the component
	and worker are removed.
	* flumotion/test/test_manager_depgraph.py:
	Added test that adds components, removes them, adds them again.
	* flumotion/test/test_pb.py:
	Remove un-needed print statement.
	Fixes #408.

2006-07-20  Michael Smith  <msmith@fluendo.com>

	* flumotion/job/job.py:
	  Don't give a warning about 'unknown message' for every sendFeed -
	  use elif rather than if.

2006-07-20  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/multi.py:
	  connect to connection refused and failed
	* flumotion/component/bouncers/htpasswdcrypt.py:
	  debug which user we are authenticating for

2006-07-20  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	* flumotion/configure/configure.py:
	* flumotion/configure/installed.py.in:
	* flumotion/configure/uninstalled.py.in:
	  add sbindir so other code can find the flumotion service program
	* flumotion/twisted/compat.py:
	  do not try to avoid the threaded resolver.  This fixes resolving
	  for Mike and me from the admin clients.

2006-07-20  Andy Wingo  <wingo@pobox.com>

	* flumotion/admin/command/main.py (main): Update for
	PBConnectionInfo changes.

	* flumotion/admin/connections.py (parsePBConnectionInfo): New
	parser, the same as common.connection variant but with some
	special lovin from the connections cache.

2006-07-20  Michael Smith  <msmith@fluendo.com>

	* flumotion/manager/depgraph.py:
	  Comment changes so I can read this, and an extra debug line.

2006-07-20  Andy Wingo  <wingo@pobox.com>

	* flumotion/admin/command/commands.py (do_loadconfiguration): Add
	a new command.

	* flumotion/common/connection.py (PBConnectionInfo.__str__): In
	the case that we have no username, don't prepend user@.

	* flumotion/admin/admin.py (AdminModel.connectToHost): Do what we
	should have done ages ago, make the managerId directly from a
	PBConnectionInfo.

	* flumotion/admin/gtk/client.py (Window.on_open_connection)
	(Window.on_recent_activate)
	(Window._append_recent_connections.append_txt)
	(on_have_connection): Update for authenticator/PBConnectionInfo
	changes.

2006-07-20  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/dag.py:
	* flumotion/manager/depgraph.py:
	  style and debug changes, before actually changing logic

2006-07-19  Andy Wingo  <wingo@pobox.com>

	* main.py (parse_options): Update for config parsing changes.

	* controller.py (HoustonController.update_recent_connections):
	recent will return a PBConnectionInfo now.
	(HoustonController.open_connection): No more auth callback, later
	for manual connections we should make a different kind of
	authenticator. Future work...

	* dialogs.py (OpenConnectionDialog.get_state): Update for
	PBConnectionInfo auth changes.

	* flumotion/admin/connections.py
	(get_recent_connections.parse_connection): Read into a
	PBConnectionInfo, not a funny dict.
	(get_recent_connections): 'info' not 'state'.

	* flumotion/admin/gtk/connections.py
	(Connections._populate_liststore): admin.connections changed
	'state' to 'info', adjust accordingly...

	* flumotion/admin/gtk/greeter.py (LoadConnection.on_next): The
	recent connections will give us a PBConnectionInfo; convert to our
	native dict storage.

	* flumotion/twisted/pb.py (RemoteAuthenticator.username)
	(RemoteAuthenticator.password): Add attributes for convenience;
	should be part of the interface at some point. Will always be
	None.

	* env.in (src_dir): Change to build_dir. Dunno how the full path
	to srcdir can be gotten.

2006-07-19  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/manager/worker.py:
	* flumotion/worker/main.py:
	* flumotion/worker/worker.py:
	  If feederports is specified in XML, but empty, then do not start
	  a feedserver.
	  Ideally, we should rename the option to something more generic,
	  and allow for not starting a FeedServer.
	  Closes #415.

2006-07-17  Michael Smith  <msmith@fluendo.com>

	* configure.ac:
	  Add new makefile to configure.ac

2006-07-17  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/misc/Makefile.am:
	* flumotion/component/misc/gdptestsrc/Makefile.am:
	* flumotion/component/misc/gdptestsrc/Makefile.in:
	* flumotion/component/misc/gdptestsrc/__init__.py:
	* flumotion/component/misc/gdptestsrc/gdptestsrc.py:
	* flumotion/component/misc/gdptestsrc/gdptestsrc.xml:
	  Add gdptestsrc element which uses a tcpclientsrc ! gdpdepay pipeline
	  to feed a flumotion flow.

2006-07-17  Michael Smith  <msmith@fluendo.com>

	* flumotion/manager/component.py:
	  Remove superfluous exclamation marks.

2006-07-17  Michael Smith  <msmith@fluendo.com>

	* flumotion/manager/component.py:
	  Downstream connection doesn't work reliably currently due to races.
	  Change to upstream for now so we can do testing.

2006-07-14  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/consumers/httpstreamer/http.py:
	  add more debugging about burst-on-connect

2006-07-14  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/feedcomponent010.py:
	  log the first buffer probe at debug level, and all the others
	  at log, since we do not want to clutter our logs.
	  In the future, we may want to also go back to debug level after
	  a reconnect

2006-07-14  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/feedcomponent010.py:
	  move the buffer frequency callLater start to a later stage than
	  init.  Fixes tests for twisted 2.0.1 and 2.1.0

2006-07-14  Michael Smith  <msmith@fluendo.com>

	* flumotion/manager/component.py:
	  Commit patch I wrote in my dream last night: clear happydefers
	  correctly.

2006-07-14  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/bouncers/htpasswdcrypt.py:
	* flumotion/component/bouncers/saltsha256.py:
	  fix debugging

2006-07-14  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/medium.py:
	  add some debug and docs

2006-07-14  Michael Smith  <msmith@fluendo.com>

	* flumotion/common/medium.py:
	  Make the check for startPinging being called multiple times more
	  sane. Fixes pinging after a disconnect/reconnect.

2006-07-13  Andy Wingo  <wingo@pobox.com>

	* flumotion/manager/admin.py
	(AdminAvatar.perspectiveMessageReceived): Ignore the ping message.

	* flumotion/common/connection.py: Fix some bugaroos.

2006-07-13  Michael Smith  <msmith@fluendo.com>

	* flumotion/manager/manager.py:
	  remove component from depgraph in deleteComponent.

2006-07-13  Michael Smith  <msmith@fluendo.com>

	* doc/random/component-initialization-protocol:
	* flumotion/common/bundle.py:
	* flumotion/common/dag.py:
	* flumotion/component/component.py:
	* flumotion/component/feedcomponent010.py:
	* flumotion/manager/Makefile.am:
	* flumotion/manager/component.py:
	* flumotion/manager/depgraph.py:
	* flumotion/manager/manager.py:
	* flumotion/manager/worker.py:
	* flumotion/test/Makefile.am:
	* flumotion/test/test_dag.py:
	* flumotion/test/test_manager_depgraph.py:
	* flumotion/test/test_manager_manager.py:

	  Merge component-dependencies. Mostly a manual merge (apart from
	  pre-existing files), as other code had changed a lot.

2006-07-13  Andy Wingo  <wingo@pobox.com>

	* flumotion/admin/command/main.py (setup_reactor): Update for
	admin initargs.

	* flumotion/admin/gtk/main.py (_runInterface): Update for admin
	initargs.

	* flumotion/admin/text/connection.py (connect_to_manager): Update
	for admin initargs.

	* flumotion/admin/multi.py (MultiAdminModel.addManager):
	Authenticators, not keycards.

	* flumotion/admin/admin.py (AdminModel.__init__): Take an
	authenticator as the initarg.
	(AdminModel._makeFactory): Take an authenticator.
	(AdminModel.connectToHost)
	(AdminModel.setRemoteReference.writeConnection): Update.

	* flumotion/common/connection.py (PBConnectionInfo): Port to use
	authenticators.

	* flumotion/common/common.py (checkPortFree, getFirstFreePort)
	(checkRemotePort): 
	* flumotion/test/test_common.py (TestPort): Remove fundamentally
	broken code.

2006-07-12  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/common.py:
	  "depreciate" componentPath - blame pychecker
	* flumotion/common/config.py:
	* flumotion/manager/base.py:
	* flumotion/manager/manager.py:
	* flumotion/test/test_common.py:
	* flumotion/test/test_manager_manager.py:
	  remove all users of componentPath

2006-07-12  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/feedcomponent.py:
	* flumotion/job/job.py:
	* flumotion/manager/base.py:
	* flumotion/manager/component.py:
	* flumotion/worker/feed.py:
	  doc fixes

2006-07-12  Thomas Vander Stichele  <thomas at apestaart dot org>

	* TODO:
	* flumotion/common/keycards.py:
	* flumotion/component/bouncers/bouncer.py:
	* flumotion/component/consumers/httpstreamer/resources.py:
	* flumotion/manager/component.py:
	  requesterName -> requesterId

2006-07-12  Thomas Vander Stichele  <thomas at apestaart dot org>

	* TODO:
	* flumotion/component/bouncers/bouncer.py:
	* flumotion/component/component.py:
	* flumotion/component/consumers/disker/disker.py:
	* flumotion/component/consumers/httpstreamer/http.py:
	* flumotion/component/feedcomponent.py:
	* flumotion/component/misc/porter/porter.py:
	* flumotion/component/producers/audiotest/audiotest.py:
	* flumotion/component/producers/looper/looper.py:
	  finally rename to componentMediumClass

2006-07-12  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/twisted/pb.py:
	  put back normal login/startLogin of ReconnectingPBClientFactory
	  add asserts to not get keycards in the FPB ClientFactory classes

2006-07-12  Thomas Vander Stichele  <thomas at apestaart dot org>

	Merge the feed-1 branch:
	* flumotion/common/interfaces.py:
	  add IFeedMedium and IFeedServerParent
	* flumotion/worker/feed.py:
	  - actually add all objects - FeedComponentAvatar,
	    FeedClient, ... and the feedServerFactory method
	  - implement perspective_receiveFeed and perspective_sendFeed
	  - implement FeedAvatar (FeedServer-side object) and FeedClient
	  - rename internal dispatcher class; the idea is that a manager
	    could use its dispatcher, with a FeedHeaven, to proxy feeds
	    between components
	  - make ProxyManagerBouncer get keycardClasses remotely
	    add perspectiveInterface
	* flumotion/worker/Makefile.am:
	  add feed.py
	* flumotion/test/test_worker_worker.py:
	  fix test by adding a port to FakeOptions

	* flumotion/component/feedcomponent010.py:
	  - use fdsrc and multifdsink for feeders and eaters
	    remove _setup_eaters() and _setup_feeders() - now handled
	    outside of component
	  - add FeedToFD() and EatFromFD(), which are the new
	    interface points for making a component connect
	    to the outside
	  - change link()
	* flumotion/component/feedcomponent.py:
	  - change do_start() to remove eaters/feedersData
	  - change ClientFactory to new interface
	  - implement remote_feedTo and remote_eatFrom

	* flumotion/worker/worker.py:
	  - add remote_getFeedServerPort()
	  - give the medium all but the last feeder port, which we
	    use for the FeedServer
	  - listen with fdserver.FDPort for the job server, so
	    we can pass fd's
	  - add WorkerBrain's IFeedServerParent methods:
	    eatFromFD and feedToFD
	  - add JobAvatar.receiveFeed
	  - store feedserver's port object so we can shutdown properly
	  - document JobHeaven.avatars so we are free to use it as public
	    API
	* flumotion/job/job.py:
	  Use a JobClientBroker that can receive fd's
	  handle getting a receiveFeed and sendFeed message
	* flumotion/job/main.py:
	  connect our job client with fdserver.FDConnector so we
	  can receive fd's
	* flumotion/manager/worker.py:
	  privatize portSet
	  get the FeedServerPort and use it instead of previous
	  separate reservedPorts
	* flumotion/manager/manager.py:
	  - factor out a getWorker, add a method to get feedServerPort
	  - add a warning for when a worker is already logged out when
	    we're trying to shut down a component
	* flumotion/manager/component.py:
	  - clean up naming confusion in FeederSet and related, it
	    deals with feedId (componentName:feedName) now
	  - Use eatFrom() or feedTo() before start() to link components
	  - break out eatFrom into its own method, since we
	    are going to use it for reconnecting as well,
	    besides using feedTo too
	  - move the connecting of a component's eater to before the start
	    method
	  - remove feedersData, it's irrelevant now that the
	    component itself doesn't do the listening anymore for its
	    feeders
	  - implement both upstream and downstream connection, both work
	* flumotion/common/common.py:
	  add methods to deal with feedId, fullFeedId, componentId
	* flumotion/common/keycards.py:
	  also log the requesterName in our __repr__
	* flumotion/common/planet.py:
	  add documentation about eaterNames and feederNames keys
	* flumotion/component/converters/overlay/overlay.py:
	  replace do_start() implementation with configure_pipeline()

	* flumotion/common/errors.py:
	  add HandledException
	* flumotion/twisted/defer.py:
	  fix errback-of-last-resort, to not trigger it if the
	  failure is due to a HandledException

	* flumotion/twisted/pb.py:
	  add an assert for our sanity
	  change docstring
	* flumotion/twisted/portal.py:
	  getKeycardInterfaces() now returns a deferred
	* flumotion/component/component.py:
	  make startLogin take an authenticator now
	  change setKeycard to setAuthenticator
	* flumotion/manager/base.py:
	  add a method to get the manager bouncer's getKeycardClasses()

	* flumotion/test/Makefile.am:
	* flumotion/test/test_pbstream.py:
	  add a test that tests our way of switching from PB
	  to GStreamer data protocol streaming over the underlying
	  connection
	* flumotion/test/test_manager_manager.py:
	  fix test by adding method to FakeWorkerMind

	* doc/random/naming:
	  docs about naming of objects, so we can start cleaning up
	  some variable names used everywhere
	  add notes on feedserver and how to name things to request
	* doc/random/feed:
	  add notes on the current way of connecting eaters and feeders

	* flumotion/admin/admin.py:
	* flumotion/common/medium.py:
	  add some debug

2006-07-12  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/twisted/pb.py:
	* flumotion/twisted/portal.py:
	  change getKeycardInterfaces to getKeycardClasses.  That was pretty
	  dumb.

2006-07-12  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/twisted/pb.py:
	  - add an Authenticator object that can issue keycards and respond
	    to challenges on keycards, given the secret data necessary
	  - use this authenticator as an argument to login and startLogin,
	    instead of the keycard directly.  Also always use self.medium
	    as the client, and self.perspectiveInterface as the interface
	    being requested
	  - add a remote_getKeycardInterfaces to announce which keycards the
	    manager supports
	  - add a RemoteAuthenticator adapter that can be used to adapt
	    the pb.RemoteReference for an Authenticator to the same
	    Authenticator "interface"
	* flumotion/twisted/portal.py:
	  add getKeycardInterfaces()
	* flumotion/admin/admin.py:
	* flumotion/component/component.py:
	  use the new startLogin with an authenticator
	  add perspectiveInterface to the FPB.ClientFactory subclasses
	* flumotion/worker/main.py:
	* flumotion/worker/worker.py:
	* flumotion/job/job.py:
	  same as above;
	  also change keycard to authenticator everywhere,
	  and use the RemoteAuthenticator adapter in remote_bootstrap
	* flumotion/test/test_pb.py:
	  Test the new FPB, which uses authenticator
	  Also add test for the saltsha256 bouncer

2006-07-12  Andy Wingo  <wingo@pobox.com>

	* flumotion/component/consumers/httpstreamer/http.py
	(MultifdSinkStreamer.failedSlaveStart): Removed, this code path is
	gone now.

2006-07-12  Michael Smith  <msmith@fluendo.com>

	* flumotion/common/medium.py:
	  Stop pinging on remoteReference disconnection.

	* flumotion/manager/base.py:
	  Don't start ping-checking until we have an attached mind.

	* flumotion/test/test_manager_manager.py:
	* flumotion/test/test_manager_worker.py:
	* flumotion/test/test_worker_worker.py:
	  Fix tests to clean up properly so that we don't have unclear
	  reactors.

2006-07-12  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/bouncers/htpasswdcrypt.py:
	  reorder to prefer the challenger-based keycard
	* flumotion/component/bouncers/saltsha256.py:
	  check for the right interface
	* flumotion/component/bouncers/bouncer.py:
	  document

2006-07-12  Michael Smith  <msmith@fluendo.com>

	* flumotion/common/medium.py:
	  Remove bogus method.

	* flumotion/manager/manager.py:
	  When cleaning out the planet, we can only send stop() to components
	  for which we have avatars - if it's lost or sad, we might not.

2006-07-12  Michael Smith  <msmith@fluendo.com>

	* flumotion/test/test_manager_manager.py:
	  Improve test so that we test both expected and unexpected logouts,
	  and ensure that the state is correct (sleeping for expected, lost
	  for unexpected) after this. 

	* flumotion/test/test_worker_worker.py:
	  Make FakeRef stub out a few other things.

2006-07-12  Michael Smith  <msmith@fluendo.com>

	* flumotion/twisted/pb.py:
	  Move PingableAvatar here.

	* flumotion/common/medium.py:
	  Move PingingMedium here.

	* flumotion/admin/admin.py:
	  Subclass from PingingMedium

	* flumotion/component/component.py:
	  Add a rather ugly hack to note here when we've stopped the reactor,
	  so that we can avoid calling reactor.stop() twice (which fails
	  badly).

	  Make BaseComponentMedium subclass PingingMedium. 

	  Remove heartbeats, as these are now done by the PingingMedium
	  automatically.

	* flumotion/job/job.py:
	  When shutting down (in a system event trigger), do a remote call to
	  the manager to tell it that we're doing a clean shutdown.

	  Ensure we don't stop the reactor twice.

	* flumotion/job/main.py:
	  Add the system event trigger

	* flumotion/manager/base.py:
	  Manager-side avatars are all PingableAvatars, now.
	  
	* flumotion/manager/component.py:
	  Remove manager side of heartbeats, now done by lower-level classes.

	  When a component disconnects, if the shutdown was 'clean' (as 
	  notified by the component telling us with a remote call before it 
	  shuts down), set mood to sleeping. For any other shutdown, mood
	  becomes lost (in both cases, we never clear a 'sad' mood, though).

	  Ensures mood transitions in all cases end up, correctly, in
	  sleeping, lost, or sad (and importantly, we never go through
	  sleeping on the way to sad now!)

	* flumotion/worker/worker.py:
	  Use PingingMedium

2006-07-12  Thomas Vander Stichele  <thomas at apestaart dot org>

	* doc/random/authentication:
	  update notes on authentication
	* flumotion/test/test_common_planet.py:
	  add another assertion

2006-07-11  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/test/test_common_componentui.py:
	* flumotion/test/test_keycards.py:
	  perspective -> remoteRoot

2006-07-11  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/test/testclasses.py:
	  add a TestPB class that implements a PB connection with .send
	  and .receive for easier testing
	* flumotion/test/test_testclasses.py:
	  add a test for our testclasses
	  show possible implementation of Keycard using Cacheable/RemoteCache
	  and still have a working observer, as well as control over the
	  exact cached state
	* flumotion/test/Makefile.am:
	  add test_testclasses

2006-07-11  Andy Wingo  <wingo@pobox.com>

	* flumotion/common/worker.py (PortSet.setPortsUsed)
	(PortSet.numUsed): New functions.

	* flumotion/component/producers/audiotest/audiotest.py
	(AudioTest):
	* flumotion/component/producers/audiotest/admin_gtk.py
	(AudioTestAdminGtkNode): Port to use UIState.

	* flumotion/component/consumers/httpstreamer/http.py
	(MultifdSinkStreamer.do_check): Fix silly bug. Unclear how this
	slipped past the test suites.

	* flumotion/manager/component.py
	(ComponentAvatar.perspective_adminCallRemote): Remove, not used
	any more.

	* flumotion/admin/gtk/client.py (Window.componentCall):
	* flumotion/admin/admin.py (AdminModel.remote_componentCall):
	Removed, not called any more. Yay.

	* flumotion/component/consumers/httpstreamer/admin_gtk.py
	(HTTPStreamerAdminGtk): Remove logging tab, it sucked and also
	was completely bogus.

	* flumotion/component/plugs/plugs.xml: 
	* flumotion/component/plugs/loggers.py
	(RequestStringToAdminLogger): Removed, uses an old interface
	that's not going to be replaced. Also, completely the wrong
	approach to statistics.

2006-07-11  Andy Wingo  <wingo@pobox.com>

	* flumotion/component/producers/audiotest/Makefile.am
	(component_DATA): Dist audiotest.glade.

	* flumotion/test/test_config.py
	(TestConfig.testParseManagerWithPlugs): Added a plug, update the
	test...

	* flumotion/manager/manager.py (Vishnu.computeIdentity): Fix
	bicho.

	* flumotion/test/test_manager_manager.py
	(TestVishnu.testConfigAfterWorker)
	(TestVishnu.testConfigBeforeWorker)
	(TestVishnu.testLoadConfiguration): Fix for loadConfigurationXML
	requiring the caller to provide its identity.

2006-07-07  Andy Wingo  <wingo@pobox.com>

	* flumotion/manager/main.py (_initialLoadConfig): 
	* flumotion/manager/manager.py (RUNNING_LOCALLY)
	(Vishnu._makeBouncer, Vishnu._addManagerPlug)
	(Vishnu._addComponent, Vishnu.loadConfigurationXML):
	loadConfigurationXML can be called in two ways: from a remote
	admin client, and during manager startup to parse XML files given
	on the command line. In the latter case we don't want to go
	through the adminaction mechanism. Make it so that bypassing the
	adminaction checks must be explicitly requested.
	(Vishnu.computeIdentity): Fall back to creating a remote identity
	object.

	* flumotion/component/plugs/identity.py
	(ExampleIdentityProvider.computeIdentity): IdentityProviders have
	to return instances of RemoteIdentity now.
	(IdentityProvider.computeIdentity): Make sure this method is
	implemented.

	* flumotion/common/errors.py (InsufficientPrivilegesError): New
	error, indicates that the remote caller does not have the
	necessary privileges.

	* flumotion/common/Makefile.am (flumotion_PYTHON): Dist.

	* flumotion/common/identity.py: New file, implements a base class
	for remote identities.

2006-07-05  Andy Wingo  <wingo@pobox.com>

	* flumotion/component/plugs/Makefile.am (component_PYTHON): Dist.

	* flumotion/component/plugs/plugs.xml: 
	* flumotion/component/plugs/identity.py: A sample implementation
	of the IdentityProvider socket.

	* flumotion/common/config.py (FlumotionConfigXML._parseManager):
	Support the IdentityProvider socket.

	* conf/Makefile.am (EXTRA_DIST):
	* conf/managers/default/exampleidentityprovider.xml: Plug file to
	enable the exampleidentityprovider.

	* flumotion/manager/admin.py
	(AdminAvatar.perspective_loadConfiguration): Give our
	remoteIdentity so that loadConfiguration instrumentation works.

	* flumotion/manager/manager.py (Vishnu._addManagerPlug): Split out
	from _addManagerPlugs, instrumented for adminAction.
	(Vishnu._makeBouncer): Instrument.
	(Vishnu._addComponent): Instrument.
	(Vishnu._updateStateFromConf): Pass along remoteIdentity to
	_addComponent.

	* flumotion/manager/admin.py
	(AdminAvatar.perspectiveMessageReceived): Pass our remoteIdentity,
	not the avatar.

	* flumotion/component/plugs/adminaction.py
	(AdminActionFileLogger.action): Take a remoteIdentity, not an
	avatar.

	* flumotion/manager/main.py (_initialLoadConfig): Use the new
	loadConfigurationXML.

	* flumotion/manager/base.py (ManagerAvatar.__init__)
	(ManagerHeaven.createAvatar): s/keycard/remoteIdentity/.

	* flumotion/manager/manager.py (Dispatcher.createAvatarFor):
	Instead of annotating the keycard and passing it around
	everywhere, call a _createIdentity function to create a
	manager-side object to describe the remote host. This identity
	will be used for logging via the adminaction mechanism.
	(Dispatcher.requestAvatar): Pass the remote host in addition to
	the keycard to createAvatarFor.
	(Dispatcher.__init__): Take a computeIdentity parameter, a
	callable that will return an identity object.
	(Vishnu.computeIdentity): New method, first tries to see if a plug
	can give a suitable identity to the remote host, falling back on
	the string 'user@host'.
	(Vishnu.__init__): Give our computeIdentity to the dispatcher.
	(Vishnu.adminAction): Take a remoteIdentity instead of the avatar.
	(Vishnu._addManagerPlugs, Vishnu._updateStateFromConf)
	(Vishnu._startComponents, Vishnu._loadConfiguration)
	(Vishnu.loadConfigurationXML): Because we want to instrument
	loadConfiguration more finely, we need to pass around the
	remoteIdentity of the caller. Do so.

	* flumotion/test/test_manager_manager.py
	(TestVishnu.testConfigAfterWorker)
	(TestVishnu.testConfigBeforeWorker)
	(TestVishnu.testLoadConfiguration)
	(TestVishnu.testLoadConfiguration): loadConfigurationXML, not
	loadConfiguration.

	* flumotion/manager/admin.py
	(AdminAvatar.perspectiveMessageReceived): Use vishnu.adminaction.
	(AdminAvatar.perspective_loadConfiguration): loadConfigurationXML,
	not loadConfiguration.

	* flumotion/manager/manager.py (Vishnu.adminAction): New method to
	encapsulate the adminaction plug mechanism.
	(Vishnu._loadConfiguration, Vishnu.loadConfigurationXML): Split
	loadConfiguration in two, one part that makes a config object, and
	one that processes it. The one public interface is now
	loadConfigurationXML. Reflowed all helper methods so that the
	order of operations is more clear. Hopefully there are no semantic
	changes here.

	* flumotion/common/fxml.py (Parser.getRoot): Fix our
	filename-vs-string mess by taking only file objects as sources of
	XML. As a nicety, minidom allows a filename or a file object as
	the argument to parse(), so allow that as well.

	* flumotion/common/config.py (BaseConfigParser.__init__)
	(BaseConfigParser.add, FlumotionConfigXML.__init__)
	(AdminConfigParser.__init__, AdminConfigParser.add)
	* flumotion/common/registry.py (RegistryParser.parseRegistryFile)
	(RegistryParser.parseRegistry, ComponentRegistry.addFile)
	(ComponentRegistry.addFromString)
	* flumotion/manager/manager.py (Vishnu.loadConfiguration):
	Update for fxml Parser cleanups.

	* flumotion/test/test_config.py (AdminConfig, ConfigXML): Update
	tests to use file api instead of string api.

	* flumotion/manager/admin.py
	(AdminAvatar.perspective_loadConfiguration): The cleanups mean
	that vishnu.loadConfiguration has to take a filename or a file
	object; use StringIO to make a file object.

2006-07-10  Andy Wingo  <wingo@pobox.com>

	* flumotion/component/consumers/disker/disker.py (Disker): 
	* flumotion/component/consumers/disker/admin_gtk.py
	(FilenameNode): Fix for uiState.

	* flumotion/component/producers/videotest/admin_gtk.py
	(PatternNode.render): Fix print

	* flumotion/component/consumers/httpstreamer/admin_gtk.py
	(StatisticsAdminGtkNode.haveWidgetTree): Make sure self.widget
	gets set.

	* flumotion/component/base/admin_gtk.py
	(BaseAdminGtkNode.haveWidgetTree): Does not return anything any
	more.
	(BaseAdminGtkNode.render): All nodes have the glade_file attr,
	it's a question of 'is it set' or not...

	* flumotion/component/producers/looper/looper.py
	* flumotion/component/producers/looper/admin_gtk.py (LooperNode)
	(FileInfo): Use base glade support, and use UIState.

	* flumotion/component/effects/volume/admin_gtk.py
	(VolumeAdminGtkNode.haveWidgetTree): Use base glade support.

	* flumotion/component/effects/colorbalance/admin_gtk.py
	(ColorbalanceAdminGtkNode.haveWidgetTree): Use the base glade
	support. Assume that the UI will be set up when setUIState is
	called.

	* flumotion/component/base/admin_gtk.py (BaseAdminGtk.setUIState):
	Call node.gotUIState instead of setUIState.
	(BaseAdminGtkNode.gotUIState): New method, here to ensure that
	setUIState is called only after the ui is properly set up.
	(BaseAdminGtkNode.render): If we already got the UI state, call
	setUIState. This means that all admin_gtk code should chain up to
	render() at some point, if they provide a custom renderer.

	* flumotion/component/producers/videotest/videotest.py
	(VideoTest):
	* flumotion/component/producers/videotest/admin_gtk.py
	(PatternNode): Update for uiState.

	* flumotion/component/effects/volume/volume.py (Volume): Update
	for uiState.

	* flumotion/component/effects/volume/admin_gtk.py
	(VolumeAdminGtkNode): Update for uiState.

2006-07-04  Andy Wingo  <wingo@pobox.com>

	* flumotion/component/effects/colorbalance/colorbalance.py
	(Colorbalance.setUIState): Add keys to the UI state here.
	(Colorbalance.effect_setColorBalanceProperty): Don't do
	callRemote, refactor to use the uistate instead. Also, interpret a
	value of None to mean 'refresh the UI state'.
	(effect_getColorBalanceProperties): Gone, we have the UI state
	now.
	(Colorbalance._setInitialColorBalance): Small refactoring.
	
	* flumotion/component/feedcomponent.py (Effect.setUIState): New
	method, called by setComponent. The intention is to allow
	subclasses to add keys to the ui state in this method.

	* flumotion/component/base/admin_gtk.py (BaseAdminGtk.setUIState):
	Actually implement, and use it to add a listener on the state.
	Chain up if you extend.
	(BaseAdminGtkNode.stateRemove, BaseAdminGtkNode.stateAppend)
	(BaseAdminGtkNode.stateSet, BaseAdminGtkNode.setUIState): New
	methods. The node will now get the UI state and listen to it
	automatically, users just have to override the statelistener
	methods.

	* flumotion/component/effects/colorbalance/admin_gtk.py
	(ColorbalanceAdminGtkNode): Refactor to use the uistate to
	communicate instead of remote calls. Also cleaned up a bit.

2006-07-10  Andy Wingo  <wingo@pobox.com>

	* flumotion/component/consumers/httpstreamer/http.xml: Remote
	porter_name.

	* flumotion/component/consumers/httpstreamer/http.py
	(MultifdSinkStreamer.do_check): When in slave mode, we need all of
	the porter props.
	(MultifdSinkStreamer.configure_pipeline): Always get porter props
	when in slave mode.
	(MultifdSinkStreamer.do_start): No more autoconfiguration in
	porter slave mode. Removes the only call to componentCallRemote in
	the components.

	* flumotion/manager/component.py
	(ComponentAvatar.perspective_componentCallRemote): Removed. It's
	too broad and has bad security implications. adminCallRemote is
	next :)

2006-07-06  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/misc/porter/porterclient.py:
	  remove unused import
	* flumotion/twisted/fdserver.py:
	  fix sole wrong docstring in a sea of missing docstrings
	* flumotion/twisted/credentials.py:
	  remove a sad cut and paste and paste again mistake

2006-07-06  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/test/test_saltsha256.py:
	  fix another test

2006-07-06  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/test/test_credentials.py:
	* flumotion/twisted/credentials.py:
	  make sure our zeros don't get dropped to the floor when converting
	  a byte string to hex values

2006-07-06  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/keycards.py:
	* flumotion/component/bouncers/htpasswdcrypt.py:
	* flumotion/component/bouncers/saltsha256.py:
	* flumotion/component/bouncers/saltsha256.xml:
	* flumotion/test/test_credentials.py:
	* flumotion/test/test_saltsha256.py:
	* flumotion/twisted/checkers.py:
	* flumotion/twisted/credentials.py:
	  add credentials, keycard, checker, and bouncer for
	  a salted SHA-256 password backend

2006-07-06  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/producers/audiotest/admin_gtk.py:
	* flumotion/component/producers/audiotest/audiotest.glade:
	* flumotion/component/producers/audiotest/audiotest.py:
	* flumotion/component/producers/audiotest/audiotest.xml:
	  add a Node for audiotestsrc properties like wave (on which we
	  cheat for now) and frequency

2006-07-06  Thomas Vander Stichele  <thomas at apestaart dot org>

	* TODO:
	  add some TODO notes
	* flumotion/admin/gtk/client.py:
	  log the component view we have a warning on
	* flumotion/component/base/admin_gtk.py:
	  fix inconsistent arg name

2006-07-05  Thomas Vander Stichele  <thomas at apestaart dot org>

	* data/glade/admin.glade:
	  set border_width on VPane, and then remove the unneeded HBox
	  that was used for padding
	* flumotion/admin/gtk/client.py:
	  create _component_view_set_widget() and use it

2006-07-05  Thomas Vander Stichele  <thomas at apestaart dot org>

	* data/glade/admin.glade:
	  Change the window's size to not be minimum width and height,
	  but default.  Also make it slightly bigger.
	  create a VPaned to separate the messages view from the rest,
	  so that it can be resized as needed.
	  Adjust padding so that the textview lines up with the notebook
	  and componentsview
	  put the label inside a component_view vbox of 1, so we can
	  later adjust the code to embed inside this vbox always
	* flumotion/admin/gtk/parts.py:
	  if no selection, do not traceback, just return None
	* flumotion/admin/gtk/client.py:
	  the widget we want is actually components_view - the view on the
	  left on all components
	  when we have a node render error, show a message
	  add 2006, we're living it
	  add other authors, they've earned it
	* flumotion/admin/gtk/message.py:
	  adjust padding to make text view and buttons line up

2006-07-05  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/feedcomponent010.py:
	  Assert that the pipeline is None before setting it. 
	  This triggers when restarting a manager; without the assert we end
	  up crashing in multifdsink.
	  Need to figure out why we're setting a replacement pipeline, but
	  this at least makes sure we get a clear assertion failure in python
	  rather than nasty segfaults.

2006-07-03  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/consumers/httpstreamer/http.py:
	  Fix other caller of the gotPorterDetails callback to supply the port
	  number correctly

2006-07-03  Thomas Vander Stichele  <thomas at apestaart dot org>

	* bin/flumotion-admin-text.in:
	* bin/flumotion-admin.in:
	* bin/flumotion-command.in:
	* bin/flumotion-inspect.in:
	* bin/flumotion-job.in:
	* bin/flumotion-launch.in:
	* bin/flumotion-manager.in:
	* bin/flumotion-tester.in:
	* bin/flumotion-worker.in:
	* bin/flumotion.in:
	  correctly go up the hierarchy.  Still doesn't work for kiwi.

2006-07-03  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/consumers/httpstreamer/http.py:
	  Add current_load to the tuple returned from getLoadData(), so that
	  the cluster admin can use it to determine when to stop streamers.

2006-07-03  Andy Wingo  <wingo@pobox.com>

	* flumotion/manager/component.py
	(ComponentHeaven.registerComponent): Remove some commented-out
	code from 2004?

2006-07-03  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/misc/porter/porter.py:
	  Fix docstring for previous change.

2006-07-03  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/consumers/httpstreamer/http.py:
	* flumotion/component/misc/porter/porter.py:
	  Return the port on which the porter is listening with the other
	  porter details; the streamer needs to know this so that it can
	  generate correct playlist files.

2006-06-28  Thomas Vander Stichele  <thomas at apestaart dot org>

	* bin/flumotion-admin-text.in:
	* bin/flumotion-admin.in:
	* bin/flumotion-command.in:
	* bin/flumotion-inspect.in:
	* bin/flumotion-job.in:
	* bin/flumotion-launch.in:
	* bin/flumotion-manager.in:
	* bin/flumotion-tester.in:
	* bin/flumotion-worker.in:
	  check for a flumotion/.svn dir instead, so we can work with kiwi
	* flumotion/admin/gtk/dialogs.py:
	  give the ok button a name so kiwi can work

2006-06-23  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/consumers/httpstreamer/resources.py:
	  Import socket module to check attribute

2006-06-23  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/consumers/httpstreamer/resources.py:
	  Disable special 2.4.3 bug workaround if the socket module has a 
	  "has_2_4_3_patch" attribute.

2006-06-23  Thomas Vander Stichele  <thomas at apestaart dot org>

	* TODO:
	  add a note
	* flumotion/manager/manager.py:
	  add getBundlerBasket() which also checks if the registry
	  needs updating, and recreates the basket
	* flumotion/manager/base.py:
	  use the new getBundlerBasket() so that we're always getting
	  the latest information

	Fixes #388

2006-06-21  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/manager/base.py:
	* flumotion/manager/component.py:
	  move perspective_authenticate() to the base class
	  also allow for a None bouncerName, in which case the manager will
	  use its bouncer to authenticate against

2006-06-21  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/misc/porter/porter.py:
	* flumotion/twisted/fdserver.py:
	  move Passable classes as well

2006-06-21  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/misc/porter/porterclient.py:
	* flumotion/twisted/fdserver.py:
	  Break out the FDPassingBroker, adding a second argument
	  to its constructor in the process so we can choose
	  a Connection subclass to use.

2006-06-21  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/reflectcall.py:
	  also format a generic Exception nicely

2006-06-21  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/consumers/httpstreamer/http.xml:
	  remove deprecated attributes.  Prevents me from actually
	  using them and then wondering why nothing changed.

2006-06-21  Thomas Vander Stichele  <thomas at apestaart dot org>

	* po/POTFILES.in:
	  remove 08 files

2006-06-21  Michael Smith  <msmith@fluendo.com>

	* flumotion/common/errors.py:
	  Add a general-purpose WrongStateError.

	* flumotion/component/consumers/httpstreamer/http.py:
	  declare a variable earlier.

2006-06-21  Andy Wingo  <wingo@pobox.com>

	* http.py (Stats.__init__): Add some instance vars for tracking
	load deltas.
	(Stats.clientRemoved, Stats.clientAdded): Keep count of total
	clients added and removed.
	(Stats.updateLoadDeltas): Method to call when you want to update
	the load deltas info.
	(Stats.getLoadDeltas): New method.
	(MultifdSinkStreamer._checkUpdate): Update load deltas every so
	often yo.
	(MultifdSinkStreamer.getLoadData): Return actual load deltas.

2006-06-20  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/manager/admin.py:
	* flumotion/manager/base.py:
	* flumotion/manager/manager.py:
	  doc updates
	* flumotion/worker/worker.py:
	  a last 0.8 relic

2006-06-20  Thomas Vander Stichele  <thomas (at) apestaart (dot) org>

	* flumotion/common/boot.py.in:
	  make the assert more helpful
	* flumotion/test/common.py:
	  set up gobject and gst before running tests, so we are guaranteed
	  to have the gst-python version we actually support.

2006-06-20  Thomas Vander Stichele  <thomas at apestaart dot org>

	* common/pychecker.mk:
	* configure.ac:
	* flumotion/common/boot.py.in:
	* flumotion/common/gstreamer.py:
	* flumotion/component/Makefile.am:
	* flumotion/component/component.xml:
	* flumotion/component/consumers/disker/disker.py:
	* flumotion/component/consumers/httpstreamer/http.py:
	* flumotion/component/converters/overlay/overlay.py:
	* flumotion/component/effects/colorbalance/colorbalance.py:
	* flumotion/component/effects/volume/volume.py:
	* flumotion/component/encoders/Makefile.am:
	* flumotion/component/encoders/jpeg/jpeg.py:
	* flumotion/component/encoders/vorbis/vorbis.py:
	* flumotion/component/encoders/vorbis/vorbis.xml:
	* flumotion/component/encoders/vorbis/vorbis08.py:
	* flumotion/component/feedcomponent.py:
	* flumotion/component/feedcomponent08.py:
	* flumotion/component/muxers/multipart.py:
	* flumotion/component/muxers/ogg.py:
	* flumotion/component/producers/Makefile.am:
	* flumotion/component/producers/audiotest/audiotest.py:
	* flumotion/component/producers/bttv/bttv.py:
	* flumotion/component/producers/firewire/firewire.py:
	* flumotion/component/producers/jukebox/Makefile.am:
	* flumotion/component/producers/jukebox/jukebox.xml:
	* flumotion/component/producers/jukebox/jukebox08.py:
	* flumotion/component/producers/soundcard/soundcard.py:
	* flumotion/component/producers/videotest/videotest.py:
	* flumotion/component/producers/webcam/webcam.py:
	* flumotion/test/test_common_gstreamer.py:
	* flumotion/wizard/steps.py:
	* flumotion/worker/checks/Makefile.am:
	* flumotion/worker/checks/package.xml:
	* flumotion/worker/checks/video.py:
	* flumotion/worker/checks/video08.py:
	  remove support for GStreamer 0.8, but keep the infrastructure
	  for supporting multiple versions.

2006-06-20  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/consumers/httpstreamer/http.py:
	  Only listen on a specific interface if explicitly configured, not if
	  we've guessed a hostname

2006-06-20  Michael Smith  <msmith@fluendo.com>

	* flumotion/porter/Makefile.am:
	* flumotion/porter/__init__.py:
	* flumotion/porter/porterclient.py:
	  Delete this directory; all of this has been in
	  flumotion/component/misc/porter for ages.

2006-06-19  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/Makefile.am:
	* flumotion/common/server.py:
	  factor out the code that runs a PB server on TCP or SSL into
	  a new Server class ...
	* flumotion/manager/main.py:
	* flumotion/manager/manager.py:
	  ... and use it.

2006-06-19  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/consumers/httpstreamer/http.py:
	  Implement new getLoadData() remote call, remove old getLoadDeltas()

2006-06-18  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion.spec.in:
	  allow building against 0.8 or 0.10 with the right rpmbuild options

2006-06-18  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion.spec.in:
	  sync with Extras spec file

2006-06-18  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion.spec.in:
	  updates to spec file for new home dir and default worker/manager

2006-06-17  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/common.py:
	  handle the case with twisted 2.0.x where a simple class does not
	  have __implemented__

2006-06-16  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/producers/audiotest/audiotest.py:
	  That was pretty bad - the source already had a name

2006-06-16  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion.spec.in:
	  only create default manager/worker if
	  $sysconfig/flumotion/(manager,worker) does not exist

2006-06-16  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion.spec.in:
	  create default manager config dir in post script

2006-06-16  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion.spec.in:
	  require pkgconfig since we install a .pc file

2006-06-16  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/effects/volume/admin_gtk.py:
	  make the effect's ui query the initial volume first
	* flumotion/component/base/admin_gtk.py:
	  effect nodes should forward title
	* flumotion/component/effects/volume/volume.py:
	  add .getVolume(), document
	* flumotion/component/producers/audiotest/Makefile.am:
	* flumotion/component/producers/audiotest/admin_gtk.py:
	* flumotion/component/producers/audiotest/audiotest.py:
	* flumotion/component/producers/audiotest/audiotest.xml:
	  add a UI for the audiotest component, with a volume node
	* flumotion/component/producers/soundcard/soundcard.py:
	  add getVolume()
	* po/POTFILES.in:
	  add new admin_gtk.py

2006-06-15  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/gtk/client.py:
	  If we can't instantiate the admin ui view, show us in the admin
	  UI
	* flumotion/manager/admin.py:
	  perspective_... should return a deferred always
	* flumotion/job/job.py:
	  Since we are a proper spawn and not a fork, we can remove the
	  os._exit() hack and let the reactor do .stop correctly.  Cleans
	  up a bunch of shutdown failures.
	* flumotion/manager/base.py:
	  logging ourself as a dependency is confusing, so don't

2006-06-15  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/test/test_http.py:
	Fix things broken by Mike's renaming :)

2006-06-15  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/test/test_common_componentui.py:
	Unnest testStateListenerIntermediate and so solve the state scope
	issue.

2006-06-15  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/consumers/httpstreamer/resources.py:
	  Use variables with better existingness.

2006-06-15  Andy Wingo  <wingo@pobox.com>

	* flumotion/test/test_common_componentui.py
	(TestStateSet.testStateListener):
	(TestStateSet.testSimpleStateListener): Fix references to state
	in nested scope.

2006-06-15  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/consumers/httpstreamer/http.py:
	  Change to match changes within resources.py

2006-06-15  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/consumers/httpstreamer/resources.py:
	  Increase our soft fd limit to a higher value if possible, and if
	  neccesary to meet the max clients setting.

2006-06-15  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/test/test_common_componentui.py:
	  Port more tests away from unittest.deferredResult() etc.
	  2 tests, testStateListener and testStateListenerIntermediate
	  do weird things when having an explicit del of a RemoteCache
	  inside the callback so the del's have been left commented.  Read
	  the comments above the tests.

	  Add a simpler test to expose this behaviour called
	  testSimpleStateListener.

2006-06-14  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/consumers/disker/disker.py:
	  move link_setup() code to configure_pipeline(), which is
	  part of the component protocol
	* flumotion/component/feedcomponent010.py:
	* flumotion/component/feedcomponent08.py:
	  remove calling link_setup() on subclasses, since all subclasses now
	  use configure_pipeline() instead

2006-06-14  Michael Smith  <msmith@fluendo.com>

	* flumotion/worker/main.py:
	  Fix more things broken by thomas's untested renaming.

2006-06-14  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/test/test_common_messages.py:
	* flumotion/test/test_component.py:
	More tests ported to new twisted.

2006-06-14  Michael Smith  <msmith@fluendo.com>

	* flumotion/common/medium.py:
	  Add newly-needed import, broken by addition of runBundledFunction to
	  this file.

2006-06-14  Michael Smith  <msmith@fluendo.com>

	* flumotion/worker/main.py:
	  worker_client_brain got renamed, so use the renamed one.

2006-06-14  Andy Wingo  <wingo@pobox.com>

	* flumotion/worker/worker.py (WorkerMedium.remote_runFunction):
	Call runBundledFunction.

	* flumotion/common/medium.py (BaseMedium.runBundledFunction):
	Moved back here from from flumotion.worker.worker, because fgc
	uses it, and the flumotion admin should use it in the future. In
	general you want a facility whereby a remote medium can run a
	function from a bundled module; why make it specific? Reverts
	[2776], pulling in the changes from [2778], [2805] and [2807].

2006-06-13  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/manager/main.py:
	  When missing the .pem file, show a link to the manual

2006-06-13  Andy Wingo  <wingo@pobox.com>

	* flumotion/common/Makefile.am (flumotion_PYTHON): Install
	connection.py.

	* flumotion/common/connection.py: New file, implements a copyable
	object describing a PB connection, and a function to parse a
	string like user@host:7531 into this object.

	* flumotion/common/config.py (BaseConfigParser.__init__):
	`filename' really is optional, mark it as such.
	(BaseConfigParser.add): Factor out setting the file to this new
	public method.
	(AdminConfigParser.__init__): Eviscerate. Yum.
	(AdminConfigParser._parse): Privatize.
	(AdminConfigParser.add): Go ahead and parse here.

	* flumotion/twisted/compat.py (implementedBy): New compat wrapper
	for zope.interface.implementedBy.

	* flumotion/test/test_common_connection.py (TestConnection): Test
	for connection parsing.

	* flumotion/test/Makefile.am (EXTRA_DIST): 
	* flumotion/test/test_common_connection.py: New file, and
	autotoolage.

	* flumotion/test/test_config.py (AdminConfigTest): Fix to account
	for parsing at construction-time.

2006-06-12  Andy Wingo  <wingo@pobox.com>

	* fxml.py: Add some comments.
	(Parser.parseFromTable): Call handler() outside of the try block
	-- we don't want to catch just any old KeyError.

	* config.py: Add a note about an XML format change we should do in
	the future sometime.
	(BaseConfigParser): New base class so that planet config and admin
	config parsers can share code. Factored out of FlumotionConfigXML.
	(FlumotionConfigXML): Use BaseConfigParser.
	(AdminConfigParser): New class to parse admin config xml.

	* test_config.py (AdminConfigTest): New test for the admin config
	code.

2006-06-10  Thomas Vander Stichele  <thomas at apestaart dot org>

	* TODO:
	* flumotion/test/test_worker_worker.py:
	* flumotion/worker/main.py:
	* flumotion/worker/worker.py:
	  update documentation
	  privatize more variables
	  remove some unused imports
	  privatize and rename WorkerBrain.setup(), and make it return
	  only the factory it creates
	  use twisted naming

2006-06-10  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/job/job.py:
	  update documentation
	  assigning self.component in remote_create makes it clearer where
	  this happens
	  use twisted naming

2006-06-09  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/consumers/httpstreamer/http.py:
	  Methods to get load deltas from the streamer (implementation
	  just stubbed out for now)

	* flumotion/component/feedcomponent.py:
	* flumotion/component/feedcomponent010.py:
	* flumotion/component/feedcomponent08.py:
	* flumotion/component/misc/porter/porter.py:
	  Clean up duplicate imports as pointed out by pyflakes

2006-06-08  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/test/test_htpasswdcrypt.py:
	Fix test to work on Twisted 2.4.

2006-06-08  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/test/test_http.py:
	Fix test to work on Twisted 2.4.

2006-06-08  Thomas Vander Stichele  <thomas at apestaart dot org>

	* doc/random/styleguide:
	  add notes about API docs
	* flumotion/manager/admin.py:
	  privatize some instance vars, and comment out some unused
	  methods
	* flumotion/manager/component.py:
	  privatize some Avatar instance vars
	* flumotion/admin/admin.py:
	* flumotion/component/bouncers/bouncer.py:
	* flumotion/manager/base.py:
	* flumotion/manager/worker.py:
	  update documentation

2006-06-08  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/test/test_keycards.py:
	* flumotion/test/test_manager_manager.py:
	* flumotion/test/test_worker_worker.py:
	  Fix tests to work on twisted 2.4.

2006-06-08  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/test/test_keycards.py:
	  Fix keycards test to use new interface api.

2006-06-08  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/common/common.py:
	Make mergeImplements work for new Interface API.
	* flumotion/component/component.py:
	Remove evil attribute that is never used and move to new
	Interface API.
	* flumotion/test/test_twisted_compat.py:
	Remove test for deprecated warnings as twisted 2.4.0 has removed
	the depracations.  Add Interface and implements tests.
	* flumotion/twisted/compat.py:
	Add compatibility stuff for Interface, implements and
	implementsInterface due to changes in twisted.
	* flumotion/admin/admin.py:
	* flumotion/admin/gtk/client.py:
	* flumotion/admin/gtk/parts.py:
	* flumotion/admin/text/admin_text.py:
	* flumotion/admin/text/view.py:
	* flumotion/admin/text/greeter.py:
	* flumotion/common/interfaces.py:
	* flumotion/common/keycards.py:
	* flumotion/common/medium.py:
	* flumotion/common/planet.py:
	* flumotion/component/base/admin_gtk.py:
	* flumotion/component/base/admin_text.py:
	* flumotion/component/bouncers/admin_gtk.py:
	* flumotion/component/bouncers/htpasswdcrypt.py:
	* flumotion/component/converters/overlay/overlay.py:
	* flumotion/component/feedcomponent.py:
	* flumotion/job/job.py:
	* flumotion/manager/admin.py:
	* flumotion/manager/component.py:
	* flumotion/manager/manager.py:
	* flumotion/test/test_common.py:
	* flumotion/test/test_common_componentui.py:
	* flumotion/test/test_common_planet.py:
	* flumotion/test/test_flavors.py:
	* flumotion/test/test_manager_manager.py:
	* flumotion/test/test_pb.py:
	* flumotion/twisted/checkers.py:
	* flumotion/twisted/credentials.py:
	* flumotion/twisted/flavors.py:
	* flumotion/twisted/gtk2reactor.py:
	* flumotion/twisted/pb.py:
	* flumotion/ui/trayicon.py:
	* flumotion/wizard/worker.py:
	* flumotion/worker/worker.py:
	Use new API for Interface and implements.

2006-05-26  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/config.py:
	  handle cases where we have empty nodes, like
	  <property name="data" />
	* flumotion/component/bouncers/bouncer.py:
	  document base authenticate() method
	* flumotion/component/bouncers/htpasswdcrypt.py:
	  do_setup should return deferred failures instead of raising
	* flumotion/component/component.py:
	  assert this in the docs for do_setup()
	* flumotion/manager/main.py:
	  when doing log.error, catch the SystemError we'll be getting
	  since it just gives a long traceback in the reactor
	* flumotion/manager/manager.py:
	  get a referred back when setting up the bouncer
	  handle some failure cases better
	* flumotion/twisted/portal.py:
	  do not allow anonymous login when bouncer is missing
	  earns us the enterprise 'highly securized' property

2006-05-26  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/errors.py:
	* flumotion/component/consumers/httpstreamer/http.py:
	  add and use a ComponentStartHandledError to indicate we've
	  handled the error in a satisfactory way, thus the manager
	  needs to drop them.
	* flumotion/manager/admin.py:
	* flumotion/manager/component.py:
	  if the admin requests to stop a sad component, we can clear the
	  sad state immediately after stopping, since the admin has seen it.

2006-05-26  Andy Wingo  <wingo@pobox.com>

	* flumotion/twisted/defer.py
	(defer_generator.wrapper.errback.raise_error): Catch all of the
	cases in which we can't reproduce the remote error.

2006-05-26  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/admin.py:
	  add reloadAdmin() method to only reload local admin code
	* data/glade/admin.glade:
	* flumotion/admin/gtk/client.py:
	  allow calling the method from the UI

2006-05-26  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/gtk/client.py:
	  refactor some cleanup code, so that we properly set sensitivity
	  of start/stop, as well as clearing our internal current_component
	  state
	* flumotion/test/test_parts.py:
	  add a test for sensitivity

2006-05-25  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/gtk/client.py:
	  privatize and rename self._sidepane
	  clear the sidepane when a component goes to sleeping.
	  Fixes #263.

2006-05-25  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/manager/admin.py:
	  avoid exceptions.KeyError:
	  'flumotion.component.plugs.adminaction.AdminAction'

2006-05-25  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/manager/main.py:
	* flumotion/service/main.py:
	* flumotion/worker/main.py:
	  use IOError's strerror argument more

2006-05-25  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/test/test_checkers.py:
	Stupid typo.

2006-05-25  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/test/test_checkers.py:
	Refactor to not give warnings on Twisted 2.2.

2006-05-25  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/test/test_flavors.py:
	Make check for twisted version smaller.
	* flumotion/test/test_pb.py:
	Refactor to not give warnings on Twisted 2.2.

2006-05-24  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/common.py:
	  allow unnamed binaries, for our programs From The Future

2006-05-24  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/consumers/httpstreamer/resources.py:
	  Fix error in previous commit. FYA.

2006-05-24  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/consumers/httpstreamer/resources.py:
	  Limit our max-users to 1024 - reserve_fds on python 2.4.3, due to a
	  bug in that version.

2006-05-24  Andy Wingo  <wingo@pobox.com>

	* flumotion/admin/multi.py
	(MultiAdminModel.addManager.disconnected_cb): Keep the managerId
	-> admin mapping around a little bit longer.

2006-05-23  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/configure/configure.py:
	* flumotion/configure/installed.py.in:
	* flumotion/configure/uninstalled.py.in:
	  add "daemondir", which is where daemonized programs will run from
	  core dumps will thus end up there if requested
	* flumotion/common/common.py:
	  add an argument to daemonize for the run directory
	* flumotion/manager/main.py:
	* flumotion/worker/main.py:
	  add a --daemonize-to option, only allowed when -D/--daemonize is
	  used
	* flumotion/service/service.py:
	  use the new --daemonize-to option
	  Fixes #374

2006-05-23  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/test/test_flavors.py:
	Fix, so the tests actually get run.
	* ChangeLog:
	Fix Thomas's lack of full-stop.

2006-05-23  Thomas Vander Stichele  <thomas at apestaart dot org>

	* doc/redhat/flumotion:
	* flumotion/service/main.py:
	  Make service script make sure that service.log is owned by
	  flumotion.  Fixes #372, and some other details.

2006-05-23  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/test/test_flavors.py:
	Really fix the test on twisted < 2.  Detect twisted version better.
	Remove reactor.iterate as it is not really needed.

2006-05-23  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/test/test_flavors.py:
	Hacks to get make test working with twisted < 2.

2006-05-23  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	  we need Python.h to build fdpass.

2006-05-23  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/test/test_flavors.py:
	Need to iterate reactor.

2006-05-23  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/consumers/httpstreamer/resources.py:
	  Add some comments and a TODO.

2006-05-23  Michael Smith  <msmith@fluendo.com>

	* flumotion/test/test_pb.py:
	  Fix one of the tests which was failing - disconnect the client so we
	  don't have a dirty reactor.

2006-05-22  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/test/test_manager_worker.py:
	Fix failing TestHeaven.testAttached test.

2006-05-22  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/misc/porter/porter.py:
	Fix typo/use of wrong Loggable method.

2006-05-18  Andy Wingo  <wingo@pobox.com>

	* flumotion/manager/worker.py (WorkerHeaven.workerDetached)
	(WorkerHeaven.workerAttached): Manage 'workers' in the
	WorkerHeavenState in addition to 'names'.

	* flumotion/common/worker.py (ManagerWorkerState)
	(AdminWorkerState): New state cacheable/caches, to hold more
	detailed information about workers.
	(ManagerWorkerHeavenState.__init__): Add a 'workers' key to hold
	ManagerWorkerState instances.

2006-05-17  Andy Wingo  <wingo@pobox.com>

	* flumotion/worker/config.py (WorkerConfigXML.parseManager):
	Support an empty 'host' parameter == 'localhost'.
	(WorkerConfigXML.parseFeederports): Support having an empty set of
	feeder ports, as well as comma-separated feeder ports.

2006-05-16  Andy Wingo  <wingo@pobox.com>

	* flumotion/manager/admin.py
	(AdminAvatar.perspective_deleteComponent): New remote method for
	deleting components.

	* flumotion/manager/manager.py (Vishnu.deleteComponent): New
	method, deletes a component from the state.

	* flumotion/common/worker.py (ProcessProtocol): 
	* flumotion/worker/worker.py (JobProcessProtocol): Rework to
	export the guts of the process protocol in common/.
	(JobProcessProtocol.processEnded): Add a kindergarten-specific
	call here instead of in worker/.

2006-05-16  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/consumers/httpstreamer/http.py:
	  Configure interface to listen on for http streamer.

2006-05-16  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/misc/porter/porter.py:
	* flumotion/component/misc/porter/porter.xml:
	  Allow configuring network interface to listen on.

2006-05-16  Andy Wingo  <wingo@pobox.com>

	* flumotion/manager/worker.py (PortSet): Pull in from
	flumotion.common.worker.

	* flumotion/common/worker.py (PortSet): Moved here from
	flumotion.worker.worker so that the FSP can use it to track ports
	on a server with multiple workers.

2006-05-15  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/misc/porter/porter.py:
	  Add deregisterPrefix method

2006-05-15  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/misc/porter/porter.py:
	* flumotion/component/misc/porter/porter.xml:
	* flumotion/component/misc/porter/porterclient.py:
	  Allow prefix matching in porter (needs an efficient algorithm)
	  Fix some more fallout from porter move.

2006-05-15  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/consumers/httpstreamer/http.py:
	* flumotion/component/misc/porter/porter.py:
	* flumotion/test/test_porter.py:
	  fix errors caught by pychecker

2006-05-15  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/consumers/httpstreamer/http.py:
	  Clean up some deferred stuff.
	  Import the correct module for the porter client.

2006-05-11  Andy Wingo  <wingo@pobox.com>

	* flumotion/admin/multi.py (MultiAdminModel.addManager): Allow a
	keycard argument instead of user + auth_cb.

	* flumotion/admin/admin.py (AdminClientFactory.__init__)
	(AdminModel.__init__, _makeFactory, AdminModel.connectToHost)
	(AdminModel.setRemoteReference): Add a bunch of optional arguments
	so that we can login with a user-supplied keycard instead of
	user/pass. Existing programs should still work tho.

2006-05-11  Michael Smith  <msmith@fluendo.com>

	* flumotion/twisted/http.py:
	* flumotion/twisted/rtsp.py:
	  Import a subset of RTSP support into core, so we can use it from
	  multiple project modules.

2006-05-10  Andy Wingo  <wingo@pobox.com>

	* flumotion/component/consumers/httpstreamer/http.py
	(MultifdSinkStreamer.getStreamData): Fix splice.

	* flumotion/admin/multi.py (MultiAdminModel.addManager): Return
	the AdminModel we create.

2006-05-10  Michael Smith  <msmith@fluendo.com>

	* flumotion/common/netutils.py:
	  len(struct('P', 0)) gives the length of a pointer, from python.
	  I am a bad, bad, person.

2006-05-10  Michael Smith  <msmith@fluendo.com>

	* configure.ac:
	* flumotion/component/Makefile.am:
	* flumotion/component/misc/Makefile.am:
	* flumotion/component/misc/__init__.py:
	* flumotion/component/misc/porter/Makefile.am:
	* flumotion/component/misc/porter/porter.xml:
	* flumotion/component/misc/repeater/Makefile.am:
	* flumotion/component/misc/repeater/__init__.py:
	* flumotion/component/misc/repeater/repeater.py:
	* flumotion/component/misc/repeater/repeater.xml:
	* flumotion/component/porter/Makefile.am:
	* flumotion/component/porter/__init__.py:
	* flumotion/component/porter/porter.py:
	* flumotion/component/porter/porter.xml:
	* flumotion/component/porter/porterclient.py:
	  Create flumotion/component/misc directory, for misc components.
	  Move porter into here.
	  Add repeater component. 

2006-05-08  Michael Smith  <msmith@fluendo.com>

	* configure.ac:
	* flumotion/Makefile.am:
	* flumotion/common/Makefile.am:
	* flumotion/common/interfaces.py:
	* flumotion/component/Makefile.am:
	* flumotion/component/component.py:
	* flumotion/component/consumers/httpstreamer/http.py:
	* flumotion/component/consumers/httpstreamer/http.xml:
	* flumotion/component/consumers/httpstreamer/resources.py:
	* flumotion/manager/component.py:
	* flumotion/test/Makefile.am:
	* flumotion/twisted/fdserver.py:
	* flumotion/twisted/pb.py:
	  Merge porter-1 to trunk

2006-05-08  Michael Smith  <msmith@fluendo.com>
	Merge trunk to porter branch (3199:3203)

2006-05-08  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/consumers/httpstreamer/http.py:
	  Allow setting an empty description

	* flumotion/component/consumers/httpstreamer/http.xml:
	  Change property name in registry as well (see previous commit)

	* flumotion/component/porter/porter.py:
	  Clarify comments on os.unlink() of socket, following testing.
	  Raise NotImplementedError for some not implemented methods.

2006-05-04  Michael Smith  <msmith@fluendo.com>

	* conf/managers/default/flows/porter.xml:
	* flumotion/component/consumers/httpstreamer/http.py:
	  Rename porter_id in config to porter_name, as it's a component name
	  in the atmosphere, not an avatarId.

2006-05-04  Michael Smith  <msmith@fluendo.com>
	Merge trunk to porter branch (3041:3199)

2006-05-04  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/porter/porter.py:
	  Fix references to now-private variables.
	  Add exception handling around os.unlink().
	  Add some debug messages.

	* flumotion/component/porter/porterclient.py:
	  Use fpb.ReconnectingPBClientFactory instead of pb.PBClientFactory,
	  so we can reconnect automatically if our porter vanishes.

	* flumotion/component/consumers/httpstreamer/http.py:
	  Adapt for automatic reconnection. Cleanup to not fire deferred
	  returned from do_start() until we've logged into porter and
	  registered ourselves successfully.

	  Automatic reconnection doesn't work without an explicitly-configured
	  porter socket path.
	  

2006-05-04  Michael Smith  <msmith@fluendo.com>

	* flumotion/twisted/pb.py:
	  Add a ReconnectingPBClientFactory that just adds reconnecting to the
	  pb.PBClientFactory (plus the gotLoginDeferred()/startLogin APIs),
	  so I don't have to deal with bouncers/keycards.

2006-05-04  Michael Smith  <msmith@fluendo.com>

	* flumotion/twisted/fdserver.py:
	  Handle recvmesg() returning no message as CONNECTION_DONE, so that
	  a terminated (on the server-side) connection is properly dropped by 
	  twisted. 

2006-05-03  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/component.py:
	  Log a message when catching exceptions in component startup

2006-05-03  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/porter/porter.py:
	* flumotion/test/test_porter.py:
	  Add some comments, remove some incorrect ones from test.

2006-05-02  Michael Smith  <msmith@fluendo.com>

	* conf/managers/default/flows/porter.xml:
	* flumotion/component/consumers/httpstreamer/http.py:
	* flumotion/component/consumers/httpstreamer/http.xml:
	  Renaming of config parameters as requested.

	* flumotion/component/porter/porter.py:
	* flumotion/component/porter/porter.xml:
	  Rename config parameters, privitise a bunch of variables.

	* flumotion/test/test_porter.py:
	  Comment out a wrong line in the test that was failing. Need some
	  explanation of the comment here?

	* flumotion/twisted/fdserver.py:
	  Import socket module (used in handling exceptions)

2006-05-02  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/consumers/httpstreamer/http.py:
	* flumotion/component/porter/porter.py:
	* flumotion/test/Makefile.am:
	* flumotion/test/test_porter.py:
	* flumotion/twisted/fdserver.py:
	  Patch from Thomas: add tests, cosmetic changes.

2006-05-02  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/consumers/httpstreamer/http.py:
	  Implement remote_getStreamData() for http streamers.

2006-05-02  Michael Smith  <msmith@fluendo.com>

	* flumotion/common/Makefile.am:
	* flumotion/common/netutils.py:
	  Nasty functions to guess a public IP/hostname when one hasn't been
	  explicitly configured.

2006-04-24  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/porter/porterclient.py:
	  Call startReading() earlier, now that I've convinced myself it's
	  safe to do so. Avoids nasty errors from abusing twisted's internals.

	* flumotion/twisted/fdserver.py:
	  Rewrite a bit so it's closer to what twisted does, and so that it
	  won't potentially drop FDs under heavy load.

2006-04-24  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/consumers/httpstreamer/resources.py:
	  Clean up some of the comments here, which were out of date, wrong,
	  misleading, or all of the above. 
	  Move a couple of lines into a different order along with a comment:
	  we don't ever want to use an FD as a key outside the lifetime of
	  that file descriptor.

2006-04-20  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/consumers/httpstreamer/http.py:
	  Rename/privatise porter-related variables, declare earlier.

	* flumotion/component/porter/porter.py:
	* flumotion/component/porter/porterclient.py:
	  Doc updates, some variable name changes.

2006-04-19  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/porter/porter.py:
	  Simplify porter Realm and Avatar some more.

2006-05-04  Andy Wingo  <wingo@pobox.com>

	* flumotion/admin/multi.py
	(MultiAdminModel.addManager.disconnected_cb, close_admin):
	Refactor a bit so that close_admin is more of an action (by a user
	of the admin client) and disconnected_cb is a reaction to a
	disconnection. Calling close_admin will call shutdown on the
	admin, so that it doesn't try to reconnect.

	* flumotion/admin/admin.py (remote_shutdown): Remote method
	removed, nothing ever calls it AFAICT.
	(AdminModel.shutdown): New method, call it to shut down the
	current connection to the manager, and to not try to reconnect.

2006-05-03  Andy Wingo  <wingo@pobox.com>

	* flumotion/component/plugs/adminaction.py
	(AdminActionFileLogger.action): I can't convince myself that
	keycards will always have usernames, so play it safe here.

	* flumotion/manager/manager.py (Vishnu._addPlugs): We can have
	more than one plug of a given type, why not. Suggestion from
	Magnanimous Mike!

	* flumotion/manager/manager.py (Vishnu.loadConfiguration): Add a
	comment about the meaning of workerId == None.

	* flumotion/common/planet.py (ManagerFlowState.__init__): Comment
	the method's args.

	* flumotion/common/config.py (FlumotionConfigXML._parseManager):
	Make sure that the plugs dict has an entry for every socket, even
	if no <plugs> section is present.

2006-04-27  Andy Wingo  <wingo@pobox.com>

	* flumotion/common/log.py
	(_handle, errorObject, warningObject, infoObject, debugObject) 
	(logObject): Only splice if there are arguments to splice in.
	Should ensure that no existing case fails.

	* flumotion/common/log.py (errorObject, warningObject) 
	(infoObject, debugObject, logObject): Interpret additional
	arguments after the first string as parameters to be spliced into
	the first as a format string.
	(error, warning, info, debug, log): Adapt to allow format strings.
	(Loggable.error, Loggable.warning, Loggable.info, Loggable.debug) 
	(Loggable.log, Loggable.warningFailure, Loggable.logFunction):
	Adapt to allow format strings.

	* flumotion/test/test_log.py (LogFunctionTester.logFunction):
	Update so that the logFunction can take more arguments.
	(TestLog.testFormatStrings): Add new test for format strings +
	values in the logger.

2006-04-26  Andy Wingo  <wingo@pobox.com>

	* flumotion/wizard/worker.py (WorkerListStore.__init__): Use the
	new set=None idiom from flavors to simplify our code.

	* flumotion/admin/multi.py (WatchedDict): New class, similar to
	the WatchedList. Note that this infrastructure was only being used
	by FGC, which hasn't been ported over from houston to multi yet.
	(MultiAdminModel.admins): Changed from a list to a hash table of
	managerId -> admin.
	(MultiAdminModel.addManager.connected_cb, close_admin): Adapt for
	changes.

	* flumotion/admin/admin.py (AdminModel.__init__) 
	(AdminModel.connectToHost, adminInfoStr): Create a managerId
	string for the manager, whose intent it is to uniquely identify
	the view that we have on the manager at the other end (read: the
	manager itself, plus the permissions we have for our user). This
	happened to be what adminInfoStr was before.

	* flumotion/twisted/flavors.py (StateRemoteCache.addListener):
	Make twice as useful to use and ten times more painful to
	implement by adding support for None values to mean that the call
	should be ignored. Useful suggestions for improving this
	implementation would be good.
	(StateRemoteCache.observe_set, StateRemoteCache.observe_append)
	(StateRemoteCache.observe_remove): Update to only call the
	set/append/remove if the function is there (non-false).

	* flumotion/test/test_flavors.py
	(TestFullListener.testStateAppendRemoveListener): Test positional
	arguments here as well as the keyword arguments above.

	* flumotion/test/test_common_planet.py (ListenerTest.setUp):
	Properly ignore those parts of IStateListener that we don't
	implement.

2006-04-25  Andy Wingo  <wingo@pobox.com>

	* flumotion/wizard/worker.py (WorkerListStore.__init__): Hm, it
	seems we didn't actually implement IStateListener before.

	* flumotion/twisted/flavors.py (StateRemoteCache): Make the set of
	listeners a dict rather than a list.
	(StateRemoteCache.addListener): Add keyword arguments for the
	state set, append, and remove functions, so that listeners can
	specify which functions to use if they want. The functions are
	stored in the dict of listeners.
	(StateRemoteCache.observe_set, StateRemoteCache.observe_append) 
	(StateRemoteCache.observe_remove): Update for the changes of the
	representation of the listener set.

	* flumotion/test/test_flavors.py (TestFullListener): Add test for
	the custom add/set/remove functions.
	
2006-04-25  Andy Wingo  <wingo@pobox.com>

	* flumotion/test/test_flavors.py: Refactored so as not to use
	unittest.deferredResult, avoids lots of nasty warnings with
	twisted 2.2.

	* flumotion/manager/manager.py (Vishnu.setConnectionInfo): Change
	using_ssl to use_ssl.

2006-04-24  Andy Wingo  <wingo@pobox.com>

	* flumotion/component/plugs/Makefile.am (component_PYTHON): Fix
	adminaction file name.

	* flumotion/test/test_config.py
	(TestConfig.testParseManagerWithPlugs): Update check for new
	manager plug type.

	* flumotion/common/config.py (FlumotionConfigXML._parseManager):
	Add the lifecycle socket to the list of sockets supported by the
	manager.

	* flumotion/component/plugs/plugs.xml: Declare the new plugs and
	bundles here.

	* flumotion/component/plugs/lifecycle.py: New file, defines a
	socket for plugs that are started and stopped with the manager.
	(ManagerLifecyclePrinter): Sample implementation of the
	MangerLifecycle socket, printing things to the console.

	* flumotion/component/plugs/Makefile.am (component_PYTHON): 
	* conf/Makefile.am (EXTRA_DIST): Autotoolage.

	* conf/managers/default/managerlifecycleprinter.xml: 
	* conf/managers/default/adminactionfilelogger.xml: Add example
	configs for the various manager plugs.

	* flumotion/manager/manager.py (Vishnu.connectionInfo): New public
	instance variable, contains a dict with the host, port, and
	using_ssl of the connection the manager runs on.
	(Vishnu.setConnectionInfo): A setter for connectionInfo.

	* flumotion/manager/main.py (_startTCP, _startSSL): Let the Vishnu
	instance know info about what connection it's serving on.

2006-04-20  Andy Wingo  <wingo@pobox.com>

	* common/setup.m4: Convert to use the AC_CONFIG_* infrastructure,
	so that we can regenerate the output afterr a make clean. Involves
	some exciting eval hackery, but it seems to be par for the course.

2006-04-11  Andy Wingo  <wingo@pobox.com>

	* flumotion/extern/SQuaLe.py: Remove, it's in squale CVS now.
	* flumotion/extern/Makefile.am (flumotion_PYTHON): Fix for SQuaLe
	move.

	* env.in (PACKAGES): Add flumotion to the PACKAGES env var.

	* flumotion/component/plugs/base.py (PlugDatabaseMixin): 
	* flumotion/component/plugs/adminaction.py (DatabaseAdminActionLogger): 
	* flumotion/component/plugs/loggers.py (DatabaseLogger): Move out
	to the fsp module.

	* flumotion/component/plugs/plugs.xml: Update for move.

2006-04-03  Andy Wingo  <wingo@pobox.com>

	* flumotion/manager/admin.py
	(AdminAvatar.perspectiveMessageReceived): New method overriding
	the one from pb.Avatar, runs admin action plugs before calling a
	perspective_* method.

2006-04-03  Andy Wingo  <wingo@pobox.com>

	* flumotion/component/plugs/adminaction.py: New file. Defines a
	manager plug, AdminAction, that should get run when an admin
	performs a remote call on the manager. Defines two implementations
	of this plug, one that logs the call to a file, and another that
	logs it to a database.

	* flumotion/component/plugs/plugs.xml: Add adminaction bundle and
	databaseadminlogger to registry.

	* flumotion/component/plugs/Makefile.am (component_PYTHON): Add
	adminactions.py.

2006-04-03  Andy Wingo  <wingo@pobox.com>

	* flumotion/manager/manager.py (Vishnu.__init__): Keep tabs on the
	plugs as self.plugs = socket->list of plugs, like components.
	(Vishnu._addPlugs): New function, instantiates plugs for the
	manager.
	(Vishnu.loadConfiguration): Call _addPlugs.

2006-04-03  Andy Wingo  <wingo@pobox.com>

	* flumotion/test/test_manager_manager.py
	(TestComponentMapper.testOneComponent)
	(TestComponentHeaven.testGetComponent)
	(TestComponentHeaven.testHasComponent)
	(TestComponentHeaven.testCreateAvatar)
	(TestVishnu._loginWorker):
	* flumotion/test/test_manager_admin.py
	(TestAdminAvatar.testHasRemoteReference):
	* flumotion/test/test_manager_worker.py (TestHeaven.testAdd) 
	(TestHeaven.testAttached): Adapt for passing the keycard around
	when creating avatars.

	* flumotion/test/test_pb.py (FakeTRealm): Renamed from FakeRealm
	to indicate it presents a twisted-style interface.
	(FakeFRealm): New fake realm, deriving from FakeTRealm, but taking
	a keycard argument as well. For passing to
	flumotion.twisted.portal.*Portal.
	(FakePortalWrapperPlaintext.__init__)
	(FakePortalWrapperCrypt.__init__): Check the twisted-style realm.
	(Test_BouncerWrapper.setUp, Test_FPortalRoot.setUp) 
	(Test_FPBClientFactory.setUp): Check the flumotion-style realm.

	* flumotion/test/test_config.py
	(TestConfig.testParseManagerWithBogusPlug)
	(TestConfig.testParseManagerWithPlugs): New tests.
	(regchunk): Add test manager plug to registry chunk.

	* flumotion/common/config.py (ConfigEntryManager.__init__): Keep
	track of plugs defined for the manager.
	(ConfigEntryAtmosphere.__len__): New function, so that code can
	just do "if conf.atmosphere" to test if the atmosphere has
	components.
	(FlumotionConfigXML.__init__): All planets have atmospheres now.
	(FlumotionConfigXML.parse): Just update the list of components for
	the atmosphere instead of replacing it. Loading a config snippet
	adds to the existing configuration, it doesn't replace it.
	(FlumotionConfigXML._parseAtmosphere): Return a dict of components
	in the atmosphere instead of an atmosphere object.
	(FlumotionConfigXML._parseManager): Parse plugs in a <manager>
	section as well.

2006-04-03  Andy Wingo  <wingo@pobox.com>

	* flumotion/component/plugs/base.py (ManagerPlug): Add base class
	for plugs living in the manager.

2006-04-03  Andy Wingo  <wingo@pobox.com>

	* flumotion/component/plugs/loggers.py (Logger): Descend from
	ComponentPlug.
	(DatabaseLogger): Use the database mixin. Adds fault tolerance
	while reducing code, yay.

	* flumotion/component/plugs/Makefile.am (component_PYTHON): Add
	base.py.

	* flumotion/component/plugs/plugs.xml: Add base.py to the
	base-plugs bundle.

	* flumotion/component/plugs/base.py: New file, factors out some
	base interfaces for plugs. Also includes a mixin for plugs that
	access databases.

2006-04-03  Andy Wingo  <wingo@pobox.com>

	* flumotion/manager/manager.py (Vishnu._makeBouncer)
	(Vishnu._updateState, Vishnu._updateFlowDependencies): New
	functions, factored out of loadConfiguration. Use reflectcall to
	avoid importing flumotion.job.
	(Vishnu.loadConfiguration): Simplify, and update for
	_workerCreateComponents changes.
	(Vishnu._addComponent): Debugging.
	(Vishnu.setBouncer): Warn if the manager already has a bouncer,
	but set anyway.
	(Vishnu.componentCreate, Vishnu.workerAttached): Simplify, and
	update for _workerCreateComponents changes.
	(Vishnu._workerCreateComponents): Take the workerId as the arg,
	not the avatar. Interpret None to mean any worker.

2006-04-03  Andy Wingo  <wingo@pobox.com>

	* flumotion/job/job.py: createComponent moved to
	common.reflectcall, update accordingly.

	* flumotion/common/Makefile.am (flumotion_PYTHON): Add
	reflectcall.py.

	* flumotion/common/reflectcall.py: New file.
	(reflectCallCatching): New function, factored out of
	flumotion.job.job.createComponent. Uses reflect to load a module,
	accesses a function in the module, and calls it, making sure all
	errors raised are of the same kind.
	(createComponent): Moved here from flumotion.job.job. Refactored
	to use reflectCallCatching.

2006-04-03  Andy Wingo  <wingo@pobox.com>

	* flumotion/common/planet.py (ManagerFlowState.__init__):
	Interpret kwargs as prop-value pairs to set.

2006-04-03  Andy Wingo  <wingo@pobox.com>

	* flumotion/twisted/portal.py
	(BouncerPortal._authenticateCallback): Add keycard to the
	arguments passed to Dispatcher.requestAvatar.

	* flumotion/manager/manager.py (Dispatcher.requestAvatar): Take
	keycard argument, passing it along to createAvatarFor...
	(Dispatcher.createAvatarFor): Take keycard argument, passing it
	along to the heaven's createAvatar...

	* flumotion/manager/base.py (ManagerHeaven.createAvatar): Take
	keycard argument, passing it along to the avatar constructor...
	(ManagerAvatar.__init__): Take keycard argument, setting it as
	self.keycard. Booya.

	* flumotion/manager/component.py (ComponentAvatar.__init__): Don't
	interpret constructor arguments, just pass them on. Also logName
	is set by the base class.

2006-04-25  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/effects/colorbalance/colorbalance.py:
	  Port colorbalance to work with 0.10 of GStreamer
	* flumotion/component/producers/bttv/bttv.py:
	  Add colorbalance effect for 0.10
	* flumotion/component/producers/webcam/webcam.py:
	  Add colorbalance effect for 0.10

2006-04-23  Thomas Vander Stichele  <thomas at apestaart dot org>

	* po/ca.po:
	* po/es.po:
	* po/fr.po:
	* po/nl.po:
	* po/no.po:
	  updates
	  Translation by: Pablo Lorenzzoni <spectra@debian.org>
	* po/pt_BR.po:
	  adding Portuguese/Brazilian translation

2006-04-20  Andy Wingo  <wingo@pobox.com>

	* common/setup.m4: Convert to use the AC_CONFIG_* infrastructure,
	so that we can regenerate the output afterr a make clean. Involves
	some exciting eval hackery, but it seems to be par for the course.

2006-04-18  Andy Wingo  <wingo@pobox.com>

	* flumotion/admin/Makefile.am (component_PYTHON): Add multi.py.

	* flumotion/admin/multi.py: New file, moved here from
	flumotion-ground-control (where it was known as houston). Its
	purpose is to be middleware(tm) between a client and many manager
	connections.

	* flumotion/test/Makefile.am (EXTRA_DIST): Dist the new test
	suite.

	* flumotion/test/test_admin_multi.py: New test suite.
	(MultiAdminTest.testConstructor): New test, just tries to
	instantiate MultiAdminModel.

2006-04-18  Michael Smith  <msmith@fluendo.com>

	* flumotion/worker/worker.py:
	  Fix bug #359: trigger deferredCreateFailed in ALL failure cases, not
	  just when catching ComponentCreateFailed

	* flumotion/job/job.py:
	  Add a hack to make it more likely that the worker will get a chance
	  to handle ComponentCreateFailed (and thus get a nicer error message
	  that we can show in the admin)

2006-04-18  Michael Smith  <msmith@fluendo.com>

	* flumotion/admin/gtk/client.py:
	  Add some basic useful local variables to the debug shell.
	  Print out a message when starting the shell explaining what's
	  available.

2006-04-18  Michael Smith  <msmith@fluendo.com>

	* flumotion/admin/gtk/client.py:
	  flumotion.common.code has been moved to flumotion.extern.code,
	  import this instead.

2006-04-14  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/admin.py:
	* flumotion/admin/gtk/client.py:
	* flumotion/admin/text/view.py:
	* flumotion/component/base/admin_gtk.py:
	  BaseAdminGtk.setUIState() and the admin's ui-state-changed signal
	  have been unused since 0.1.4

2006-04-14  Thomas Vander Stichele  <thomas at apestaart dot org>

	* common/pychecker.mk:
	  - use $(thisdir) correctly when we check for _build
	  - rename FLU_PATH to OUR_PATH, because these macros are shared
	    with other modules
	  - if GST_08_SUPPORTED and GST_010_SUPPORTED are not set from
	    configure, still work without errors
	  - x10 -> x010 for consistency

2006-04-13  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/worker/worker.py:
	  create a Message when a job process dies with a signal, so
	  the admin can see what went wrong.
	  Also, more signals than SEGV generate core dumps.
	* flumotion/manager/worker.py:
	  add perspective_componentAddMessage()
	* flumotion/manager/manager.py:
	  add componentAddMessage()
	  make sure sad moods persist until actively stopped.
	* flumotion/manager/component.py:
	  make sure sad moods persist until actively stopped.
	* po/POTFILES.in:
	  mark worker.py for translations
	* po/ca.po:
	* po/es.po:
	* po/fr.po:
	* po/nl.po:
	* po/no.po:
	  update

2006-04-13  Thomas Vander Stichele  <thomas at apestaart dot org>

	* doc/random/component-initialization-protocol:
	  update protocol to reflect decisions about do_check
	* flumotion/common/errors.py:
	  add a ComponentSetupError
	* flumotion/component/component.py:
	  - make remote_setup() properly handle failures during component
	    setup, while still give the medium's setup the chance to failure.
	  - if do_check() generates an Error message on the state, turn sad
	    and don't proceed to do_setup()
	  - addMessage(): turn sad if an ERROR is added
	* flumotion/manager/component.py:
	  properly trap a ComponentSetupError seperately during setup
	* flumotion/component/producers/checks.py:
	  - share translations in messages, and make them uniform
	* flumotion/component/producers/looper/looper.py:
	  - declare bus, avoids tracebacks when setup went wrong
	* flumotion/component/producers/looper/looper.xml:
	  - depend on producer-checks bundle, since it's being used

2006-04-10  Andy Wingo  <wingo@pobox.com>

	* flumotion/common/fxml.py (Parser.parseAttributes)
	(Parser.parseFromTable, Parser.checkAttributes): Doc.

	* flumotion/common/fxml.py (Parser.parseFromTable): Remove
	'disallowed' argument -- callers should be providing the proper
	parse tables always.

	* flumotion/common/registry.py (RegistryParser._parseRoot):
	Actually do something with the disallowed argument.

	* flumotion/manager/base.py
	(ManagerAvatar.perspective_getBundleSums): Fix debugging if no
	bundles are found, and error if bundleName is a list.

2006-04-06  Andy Wingo  <wingo@pobox.com>

	* flumotion/component/producers/checks.py (get_gst_version): Fix
	check for older pygst.

2006-04-06  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/consumers/httpstreamer/admin_gtk.py:
	  Make sure cursor does not get set to the X dfeault but to the
	  cursor of the parent window and make eventbox not have a visible
	  window

2006-04-06  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/producers/firewire/firewire.py:
	  Check key of array properly

2006-04-05  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/worker/checks/video010.py:
	* flumotion/worker/checks/video08.py:
	  Distinguish between "can't open firewire device" and
	  "permissions are wrong", if 1394 plugin is new enough.
	  Fixes #350.

2006-04-05  Andy Wingo  <wingo@pobox.com>

	* flumotion/component/producers/firewire/firewire.py
	(Firewire.do_check):
	* flumotion/component/producers/soundcard/soundcard.py
	(Soundcard.do_check): Update for check function name changes.

	* flumotion/component/producers/looper/looper.py: Rewrite to do
	the first segment seek from blocked pads instead of via an
	asynchronous message to the bus. Fixes some race conditions.
	Requires new GStreamer core and gst-python.

	* flumotion/component/producers/checks.py
	(checkTicket347, checkTicket348): Rename from checkPyGTK and
	checkPyGST, because they test for specific bugs. See #347 and
	#348.
	(checkTicket349): New check, fixes #349 along with updates to
	looper.

	* flumotion/component/feedcomponent010.py
	(FeedComponent.bus_watch_func): When we get an error message, post
	it at the warning level.

	* flumotion/component/component.py
	(BaseComponent.adminCallRemote): More debugging.

2006-04-05  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/producers/checks.py:
	  Check for pygtk 2.8.6 instead of 2.8.5

2006-04-04  Andy Wingo  <wingo@pobox.com>

	* flumotion/component/component.py
	(BaseComponent.adminCallRemote): Add some docs. Ignore the call if
	we don't have a manager -- adminCallRemote calls are only for
	notification anyway.

2006-04-03  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/manager/main.py:
	* flumotion/worker/worker.py:
	  fix for #345 - only trigger a create failed if the avatarId still
	  has a pending create deferred.

2006-03-27  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/consumers/httpstreamer/admin_gtk.py:
	  Make mouseovers over stream url link work, also add right click
	  context menu for stream url link

2006-03-27  Andy Wingo  <wingo@pobox.com>

	* flumotion/extern/SQuaLe.py (Cursor._set_result): Only get the
	result's data if it was an operation that returns a result set.
	This fixes non-select calls like INSERT operations.

	* flumotion/component/plugs/loggers.py
	(DatabaseLogger.translators): Make the 'database' plug property
	map to 'connection_name' for SQuaLe.

	* flumotion/extern/Makefile.am (flumotion_PYTHON): Add SQuaLe to
	the makefile.

	* flumotion/extern/SQuaLe.py: New file, implements a PEP-249
	interface for SQuaLe (squale.sourceforge.net).

2006-03-24  Andy Wingo  <wingo@pobox.com>

	* flumotion/component/component.py (BaseComponent.setup.setup_plugs) 
	(BaseComponent.start): Properly handle errors when loading and
	starting plugs.

	* flumotion/component/plugs/loggers.py (DatabaseLogger.stop): Make
	able to be called more than once.

	* flumotion/launch/main.py (start_components): Rework so as not to
	be a defer generator; defer generators are not appropriate if an
	exception can be thrown immediately.
	(main): Rework so as not to run the reactor if there is an error.
	(DeferredDelay): Pass through the value in the callback.
	(ComponentWrapper.stop): New method, stops the components if there
	is an error. Prevents a segfault when exiting due to a startup
	error.

2006-03-23  Michael Smith  <msmith@fluendo.com>

	* Makefile.am:
	* configure.ac:
	* flumotion/Makefile.am:
	  Add new porter directory Makefile, add to pychecker list

	* flumotion/porter/Makefile.am:
	* flumotion/porter/__init__.py:
	* flumotion/porter/porterclient.py:
	  Add porter client: all the code needed to attach to a porter server,
	  hooking a (specified) factory to incoming FDs, and adding them to
	  the reactor

	* flumotion/extern/fdpass/Makefile.am:
	* flumotion/extern/fdpass/__init__.py
	* flumotion/extern/fdpass/fdpass.c: (writefds):
	  Add package init.
	  Change return value from fdpass.writefds()

	* flumotion/test/common.py:
	  Hack from thomas to make distcheck pass due to fdpass being built
	  but the package init living elsewhere.
	  
	* flumotion/twisted/Makefile.am:
	* flumotion/twisted/fdserver.py:
	  Add fdserver: twisted methods for connecting to unix FDs and
	  receiving appropriate fd-passing messages.

	* flumotion/component/consumers/httpstreamer/http.py:
	* flumotion/component/consumers/httpstreamer/http.xml:
	  Add optional (untested, since we don't have a porter yet)
	  configuration to use the httpstreamer as a master (normal) or slave
	  (slaved to a porter). Defaults to master, which works as before.

2006-03-23  Andy Wingo  <wingo@pobox.com>

	* flumotion/component/component.py
	(BaseComponent.start, BaseComponent.setup.setup_plugs): Handle
	errors when making plugs.

	* flumotion/common/registry.py (RegistryEntryComponent.__init__) 
	(RegistryParser._parseSocket): Make sockets just instances of str,
	fixes jellying issue.

	* flumotion/common/config.py (FlumotionConfigXML._parsePlug) 
	(FlumotionConfigXML._parsePlugs): Correct comments.

	* flumotion/test/test_config.py (TestConfig.testParseNoPlugs) 
	(TestConfig.testParsePlugs): Add a couple tests for the config
	parser wrt plugs.

	* flumotion/wizard/wizard.py (Wizard.on_realize): Get the style
	from the eventbox, not the window. Fixes two-tone wizard border in
	ubuntu dapper. Doesn't fix the orange color but that is an
	upstream bug. This one should probably be fixed in 0.2 as well.

	* flumotion/component/component.py
	(BaseComponent.setup.setup_plugs.load_bundles): Only warn if we
	are actually going to be loading up plugs. This will still warn if
	bouncers have plugs -- will have to look at that later.

	* flumotion/component/plugs/loggers.py (DatabaseLogger): Add
	example schema.
	(DatabaseLogger.start): Change default table to be named "access".
	Parse out feed-name from the properties.
	(DatabaseLogger.sql_template) 
	(DatabaseLogger.event_http_session_completed): Insert the
	feed_name as well.

	* flumotion/component/plugs/plugs.xml: Add feed-name property.

2006-03-23  Michael Smith  <msmith@fluendo.com>

	* doc/random/valgrind:
	  Add a brief note on valgrinding jobs.
	* flumotion/worker/worker.py:
	  Commit patch from #332 to allow valgrinding specified jobs.

2006-03-23  Andy Wingo  <wingo@pobox.com>

	* flumotion/component/consumers/httpstreamer/resources.py
	(HTTPStreamingResource.__init__): Don't start loggers here, the
	core does it for us.

	* flumotion/component/plugs/plugs.xml: Declare databaselogger and
	its properties.

	* flumotion/component/plugs/loggers.py (DatabaseLogger): New class
	to log directly to a database that supports the python database
	API version 2.0.

2006-03-22  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	  bump the minor version number, this is the crazy development
	  branch

2006-03-22  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	* pkgconfig/flumotion-uninstalled.pc.in:
	* pkgconfig/flumotion.pc.in:
	  build the Requires: line for the .pc file and use it
	* common/pychecker.mk:
	* flumotion/common/boot.py.in:
	  use _010, not _10, we don't want people to think GStreamer 1.0 is out

2006-03-22  Andy Wingo  <wingo@pobox.com>

	* flumotion/launch/main.py: Refactor a bit to support adding plugs
	to components via "/plugtype,plugprop=val,otherprop=val". Also fix
	a couple of bugs caught by pychecker.

	* flumotion/component/plugs/loggers.py (ApacheLogger.start):
	Properly drill through the configuration structure.

	* flumotion/component/component.py
	(BaseComponent.setup.setup_plugs.load_bundles): Succeed even if we
	have no medium, albeit with a warning -- this is the case when
	using flumotion-launch, for example.

	* flumotion/launch/main.py (sort_components): Use
	dag.topological_sort.

	* flumotion/test/test_dag.py (TestDAG.testSort): Add test for
	topological_sort().

	* flumotion/common/dag.py (topological_sort): New function to
	provide functional interface to DAG code.

	* flumotion/component/component.py (BaseComponent.start.start_plugs) 
	(BaseComponent.stop.stop_plugs): Fix errors caught by pychecker.

	* flumotion/test/test.xml: Add a logger back to the
	test_manager_manager test case.

	* flumotion/common/config.py (FlumotionConfigXML._parseComponent) 
	(FlumotionConfigXML._parsePlug, FlumotionConfigXML._parsePlugs):
	Fixes for parsing <plugs> sections in config XML files.

	* flumotion/component/component.py (BaseComponent.start) 
	(BaseComponent.stop): Start and stop plugs as appropriate.

	* doc/random/component-initialization-protocol
	(BaseComponent.start): start() on a component should start()
	plugs.
	(BaseComponent.stop): stop() on a component should stop() plugs.

	* flumotion/component/plugs/plugs.xml: Add the adminlogger via the
	verbose "requeststringtoadminlogger" moniker.

	* flumotion/component/plugs/loggers.py: 
	(RequestStringToAdminLogger, ApacheLogger): Actually implement.
	(Logger): Make start and stop take the component as an argument.
	Allows e.g. the adminlogger to get the medium.

2006-03-22  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/producers/firewire/firewire.py:
	No point displaying firewire bus reset message

2006-03-21  Andy Wingo  <wingo@pobox.com>

	* flumotion/component/plugs/loggers.py (ApacheLogger.start): Valid
	syntax, but still not implemented.

	* flumotion/common/registry.py (RegistryParser._parseEntries.addEntry) 
	(RegistryParser._parsePlug): Raise the right error.

	* flumotion/test/test.xml:
	* flumotion/test/test_component.py:
	* flumotion/test/test_htpasswdcrypt.py:
	* flumotion/test/test_http.py:
	* flumotion/test/test_pb.py: No more logfile property in
	http-streamer, and the manual config dicts needed updating for
	'plugs'.

2006-03-21  Andy Wingo  <wingo@pobox.com>

	* flumotion/extern/fdpass/Makefile.am (common_cflags): Compile
	with -fPIC. (How many more of this kind of commit will we have?)

	* flumotion/component/consumers/httpstreamer/http.py (HTTPMedium):
	Remove code to do admin calls with logging information, that
	should be implemented via a logger.
	(HTTPMedium.remote_rotateLog): Call rotateLogs, not
	rotateLogfile.
	(MultifdSinkStreamer): No more log-message signal, or
	logfile-related code.

	* flumotion/component/consumers/httpstreamer/resources.py
	(HTTPStreamingResource.__init__): Remove all logfile-specific
	code, just use the loggers set from the plugs.
	(HTTPStreamingResource.rotateLogs): Rename from rotateLogfiles,
	will call rotate() on all loggers.
	(HTTPStreamingResource.logWrite): Instead of generating a string,
	pass a dict with all necessary information to all loggers via
	event('http_session_completed').

	* flumotion/launch/main.py (ComponentWrapper.__init__): Set up
	config['plugs'] as the components expect it.

	* flumotion/component/component.py (BaseComponent.setup): Setup
	the plugs before running do_check or do_setup.

	* doc/random/component-initialization-protocol
	(BaseComponent.setup): Update to note the need to do what is
	necessary to load up plugs.

	* flumotion/common/config.py (FlumotionConfigXML): Inherit from
	fxml.Parser so we get parseFromTable, and parseAttributes. However
	the parser isn't fully converted yet.
	(FlumotionConfigXML.__init__): Use fxml.Parser's getRoot.
	(FlumotionConfigXML._parseComponent): Call _parsePlugs to set
	config['plugs'].
	(FlumotionConfigXML._get_dict_value): Removed.
	(FlumotionConfigXML._parsePlugs, FlumotionConfigXML._parsePlug):
	New exciting parser that parses <plugs> sections from <component>
	blocks.

	* flumotion/component/consumers/httpstreamer/http.xml: Declare
	that http-streamer supports the logger socket.

	* flumotion/component/plugs/loggers.py: 
	* flumotion/component/plugs/__init__.py: 
	* flumotion/component/plugs/plugs.xml: 
	* flumotion/component/plugs/Makefile.am: New files,
	implementations of loggers. Plugs for the logger socket, if you
	will.
	
	* configure.ac: 
	* flumotion/component/Makefile.am: Update for new files.

	* flumotion/launch/inspect.py (main): Add support for showing
	plugs and sockets.

	* flumotion/common/registry.py (RegistryEntryComponent.__init__):
	Add an initarg for a component to declare what sockets it
	supports. Tell pychecker that's OK.
	(RegistryEntryComponent.getSockets): New accessor.
	(RegistryEntryPlug): New class, represents a <plug> entry in the
	registry.
	(RegistryEntrySocket): New class that is really just a string
	putting on airs.
	(RegistryParser.getPlugs, RegistryParser.getPlug)
	(RegistryParser._parseSocket, RegistryParser._parseSockets)
	(RegistryParser._parsePlugEntry, RegistryParser._parsePlug)
	(RegistryParser._parsePlugs): New parser accessors and parse
	routines, parsing standalone <plug> sections and <socket> sections
	within <component>s.
	(ComponentRegistry.getPlug, ComponentRegistry.hasPlug)
	(ComponentRegistry.getPlugs): New accessors for the registry.
	(ComponentRegistry.dump): Write out <plug> and <socket> sections
	as well.

	* flumotion/test/test_registry.py: 
	(TestRegistry.testDump): Check that <plug> entries are correctly
	parsed and serialized.
	(TestComponentEntry.setUp): Update for all-singing 13-argument
	ComponentEntry constructor.
	(TestComponentEntry.testThings): Add test for gstSockets()
	implementation.

	* flumotion/test/test_config.py (regchunk): Fix registry XML
	snippet for more pedantic registry parser.

	* flumotion/test/test_registry.py: Update to look for some things
	in fxml instead of in registry.
	(TestRegistry.testParseComponents): Components don't have "name"
	attributes, and haven't for a long time. Fix XML, and remove tests
	relating to the time when they did.
	(TestRegistry.testParseComponentProperties): Fix XML.
	(TestRegistry.testParseComponentPropertiesErrors): Fix XML. Check
	the proper errors.
	(TestRegistry.testClean, TestRegistry.testComponentTypeError) 
	(TestRegistry.testAddXmlParseError): Fix XML, check the right
	errors.

	* flumotion/common/registry.py (RegistryParser):
	Make the parser descend from fxml.Parser, and
	refactor most of the parser to use Parser.parseFromTable and
	parseAttributes. Result is that the registry is much more
	self-validating now, and the code is a bit cleaner.

	* flumotion/common/fxml.py: New file, pulled out of registry.py.
	Common routines for parsing XML files.
	
	* flumotion/common/Makefile.am (flumotion_PYTHON): Add fxml.py.

	* flumotion/manager/base.py
	(ManagerAvatar.perspective_getBundleSums): Change so that any of
	the arguments can be lists of strings in addition to simple
	strings. Allows the client to get the most bang out of the network
	buck. Also cleans up a bit.

	* flumotion/common/bundleclient.py (BundleLoader.getBundles): Note
	that the arguments can be scalar strings or lists of strings.

	* common/trial.mk (trial): Run trial without -R argument; seems to
	make twisted 2.2 happy.

	* flumotion/component/consumers/httpstreamer/http.xml: Remove
	'gst-property' property from http-streamer; it's not implemented,
	and would cause a bug if you set it. Also it's the only property
	out there of type 'xml'.

	* flumotion/test/test_config.py (TestConfig.testParseProperties)
	(regchunk): No more tests for the XML type.

	* flumotion/common/config.py (FlumotionConfigXML._get_dict_value):
	Removed.
	(FlumotionConfigXML._parseProperties): No more 'xml' type.

	* flumotion/launch/main.py (topological_sort): New function,
	pulled in from Ofer Faigon via
	http://www.bitformation.com/art/python_toposort.html.
	(resolve_links): Don't print out links, we know that.
	(sort_components): Use topological_sort to sort the components so
	that we start them in order.
	(ComponentWrapper.__init__): Set config['clock-master'] as well.
	(ComponentWrapper.instantiate): Also setup() the component.
	(ComponentWrapper.provideMasterClock): New method, proxies to the
	component.
	(ComponentWrapper.start): Just start() here, setup() was done in
	instantiate().
	(DeferredDelay): New function, makes a deferred that will fire in
	the future.
	(start_components): Factored out of main() to be a
	defer_generator, because we have to deal with deferreds in the
	component protocol. Also takes care of setting up clocking in the
	pipelines. Starts components in order.

	* flumotion/worker/checks/video010.py (do_element_check): Doc.

	* flumotion/component/component.py (BaseComponent.start): Assert
	that the do_start implementation returns a deferred, because we
	just pass along its return value.
	(BaseComponent._heartbeat): Make sure we don't get nastiness when
	calling heartbeat, but we're not connected.

	* flumotion/common/medium.py (BaseMedium.callRemote): Return a
	deferred in all cases. See #159.

	* flumotion/component/consumers/httpstreamer/http.py
	(MultifdSinkStreamer.configure_pipeline): Refactoring to do most
	things in the configure_pipeline method. Still nasty though.
	(MultifdSinkStreamer.link_setup): No longer overridden.
	(MultifdSinkStreamer.do_start): Implement do_start instead of
	start(). This probably needs more support from the base classes.
	Pass along the superclass's do_start return value, or a defer.fail
	if the port was unavailable.

	* flumotion/common/config.py (FlumotionConfigXML._parseComponent):
	Wrote some notes -- maybe we shouldn't be passing so much to the
	component.
	(FlumotionConfigXML._parseSources): Doc.

2006-03-21  Michael Smith  <msmith@fluendo.com>

	* flumotion/extern/fdpass/Makefile.am:
	 Simplify building/running this by not using libtool

2006-03-21  Michael Smith  <msmith@fluendo.com>

	* configure.ac:
	* flumotion/extern/Makefile.am:
	* flumotion/extern/fdpass/Makefile.am:
	* flumotion/extern/fdpass/fdpass.c:
	  Add extension module for file descriptor passing in python.

2006-03-17  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/test/test_manager_manager.py:
	  twisted 2.2.0 TestCase does not have a runReactor method
          and according to twisted changeset 15556 it was always
          deprecated

2006-03-17  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/producers/firewire/firewire.py:
	  Fix stupid syntax error and make pychecker happy

2006-03-17  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/admin/gtk/client.py:
	  Make removal of messages from gtk admin actually happen!
	* flumotion/component/producers/firewire/firewire.py:
	  Use the new data provided from the firewire component so that
	  connection and disconnection is detected, fixes #336

2006-03-16  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/encoders/vorbis/vorbis010.py:
	  Import utils method we're using.

2006-03-15  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/encoders/vorbis/vorbis010.py:
	* flumotion/component/encoders/vorbis/vorbisutils.py:
	  If the incoming sample rate is outside the range of permissible
	  rates, pick a sensible 'standard' rate rather than simply clamping.

2006-03-15  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/encoders/vorbis/vorbis010.py:
	  Rename configure to configure_pipeline, so that it'll get called.

2006-03-14  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/producers/firewire/firewire.py:
	  Fix a missing import.

2006-03-14  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/producers/checks.py:
	  Get the pygtk version from gobject, to avoid importing gtk. 

2006-03-14  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/producers/Makefile.am:
	  Add some more magic incantations to the Makefile.am

2006-03-14  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/producers/Makefile.am:
	* flumotion/component/producers/checks.xml:
	* flumotion/component/producers/firewire/firewire.xml:
	* flumotion/component/producers/soundcard/soundcard.xml:
	  Fix bundles for producer checks

2006-03-14  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/producers/Makefile.am:
	* flumotion/component/producers/checks.py:
	* flumotion/component/producers/firewire/firewire.py:
	* flumotion/component/producers/firewire/firewire.xml:
	* flumotion/component/producers/soundcard/Makefile.am:
	* flumotion/component/producers/soundcard/checks.py:
	* flumotion/component/producers/soundcard/soundcard.py:
	* flumotion/component/producers/soundcard/soundcard.xml:
	  Extend checks for leaks (in level) to firewire.

2006-03-14  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/admin.py:
	  Make "Refresh" on lost connection work

2006-03-14  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/test/test_dag.py:
	  add another test to ensure we get a unique offspring list
	* flumotion/common/bundle.py:
	  Use a DAG to get dependencies of a bundle.  Has the added bonus
	  of returning a shorter list of dependencies than before, since
	  now each item appears only once, yet still in a correct order.
	* flumotion/common/registry.py:
	  add a docstring

2006-03-10  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/producers/soundcard/checks.py:
	* flumotion/component/producers/soundcard/soundcard.py:
	* flumotion/component/producers/soundcard/soundcard.xml:
	  Add warnings if people use versions of PyGTK, gst-python that exist.

2006-03-10  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/consumers/httpstreamer/admin_gtk.py:
	* flumotion/component/consumers/httpstreamer/http.glade:
	  Make stream URL clickable and use default app for mime type with
	  URL.  Fixes #319 Fixes #267

2006-03-09  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/consumers/httpstreamer/http.glade:
	  Gtk-2.4ify glade file that was committed to add stream URL
	  to http admin gtk

2006-03-09  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/consumers/httpstreamer/admin_gtk.py:
	* flumotion/component/consumers/httpstreamer/http.glade:
	* flumotion/component/consumers/httpstreamer/http.py:
	* flumotion/component/consumers/httpstreamer/http.xml:
	  Display Stream URL in http admin gtk UI

2006-03-09  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/producers/firewire/firewire.py:
	  Report message to admin when firewire bus resets, fixes #325

2006-03-09  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/admin/gtk/client.py:
	  Admin not redrawing properly when displaying warnings fixes #333

2006-03-08  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/admin/text/view.py:
	  make components view a scrollable list in text admin
	  fixes #329

2006-03-07  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/common/config.py:
	  report filename where config has error being parsed fixes #309

2006-03-06  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/consumers/disker/disker.py:
	  make disker go sad, when error writing fixes  #331
 
2006-03-06  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/worker/checks/video010.py:
	* flumotion/worker/checks/video08.py:
	  set pipeline to NULL after running necessary worker check even
	  errors freeing necessary resources...fixes #191 - original patch
	  from Gergely Nagy

2006-03-06  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	  back to TRUNK

=== release 0.2.0 ===

2006-03-03  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	  releasing 0.2.0, "San Telmo"

2006-03-03  Edward Hervey  <edward@fluendo.com>

	* po/fr.po:
	Update pour le french translation.

2006-03-03  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/test/test_worker_worker.py:
	* flumotion/worker/worker.py:
	  make sure that jobs that crash or don't start properly get reported
	  as ComponentCreateErrors so components go sad rather than the
	  manager continually thinking component is starting

2006-03-03  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/worker/checks/encoder.py:
	  make sure vorbis translatable message actually gets added

2006-03-02  Thomas Vander Stichele  <thomas at apestaart dot org>

	* TODO:
	  updates
	* flumotion/component/muxers/Makefile.am:
	* flumotion/component/muxers/muxers.xml:
	* flumotion/component/muxers/ogg.py:
	* flumotion/component/muxers/checks.py:
	  add a version check for the 0.10.3 version of the Ogg muxer
	* flumotion/manager/component.py:
	  update a string
	* flumotion/wizard/steps.py:
	  use the check
	* flumotion/worker/checks/encoder.py:
	  split the message into multiple translatables to make translation
	  easier
	* po/POTFILES.in:
	* po/ca.po:
	* po/es.po:
	* po/fr.po:
	* po/nl.po:
	* po/no.po:
	  updates

2006-03-01  Michael Smith  <msmith@fluendo.com>

	* flumotion/test/test_i18n.py:
	  Ubuntu sets LANGUAGE (GNU extension) by default, so this test fails
	  unless we set that as well as LANG.

2006-03-01  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/consumers/httpstreamer/http.py:
	* flumotion/component/consumers/httpstreamer/http.xml:
	* flumotion/component/consumers/httpstreamer/resources.py:
	* flumotion/test/test_http.py:
	  add "issuer" property to streamers
	  can be set to HTTPTokenIssuer or HTTPAuthIssuer
	  needs nicer abstracting in the future, but will do for now

2006-03-01  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/consumers/httpstreamer/http.py:
	* flumotion/component/consumers/httpstreamer/resources.py:
	  create an Issuer base class, plus two subclasses, to create
	  keycards based on requests
	* flumotion/test/test_http.py:
	  add tests for this

2006-03-01  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/common/keycards.py:
	* flumotion/twisted/credentials.py:
	  add token keycard and credentials

2006-02-28  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/effects/volume/volume.py:
	* flumotion/component/producers/firewire/firewire.py:
	* flumotion/component/producers/soundcard/soundcard.py:
	  fix volume effect for 0.10. Fixes #328

2006-02-28  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/admin/text/view.py:
	  fix text admin going over number of rows

2006-02-28  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/launch/main.py:
	  add an errback for component start

2006-02-28  Thomas Vander Stichele  <thomas at apestaart dot org>

	* common/Makefile.am:
	* common/setup.m4:
	  add FLUMOTION_SETUP macro

2006-02-28  Thomas Vander Stichele  <thomas at apestaart dot org>

	* Makefile.am:
	  use an m4/ dir so that autopoint puts its copied macros there
	  instead of cluttering up common

2006-02-12  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/gstreamer.py:
	  add a quick way of checking if we can set a given value
	  on a property
	* flumotion/test/test_common_gstreamer.py:
	  add tests

2006-02-12  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/admin.py:
	* flumotion/admin/gtk/client.py:
	* flumotion/admin/gtk/connections.py:
	* flumotion/admin/gtk/dialogs.py:
	* flumotion/admin/gtk/parts.py:
	* flumotion/admin/gtk/spyglass.py:
	* flumotion/admin/gtk/videotest.py:
	* flumotion/admin/gtk/wizard.py:
	* flumotion/common/Makefile.am:
	* flumotion/common/compat.py:
	* flumotion/common/pygobject.py:
	* flumotion/component/component.py:
	* flumotion/component/consumers/disker/disker.py:
	* flumotion/component/consumers/httpstreamer/http.py:
	* flumotion/component/consumers/preview/preview.py:
	* flumotion/component/feedcomponent.py:
	* flumotion/component/feedcomponent010.py:
	* flumotion/component/feedcomponent08.py:
	* flumotion/test/test_common_pygobject.py:
	* flumotion/tester/httpclient.py:
	* flumotion/ui/fgtk.py:
	* flumotion/ui/glade.py:
	* flumotion/wizard/sidebar.py:
	* flumotion/wizard/wizard.py:
	* flumotion/wizard/worker.py:
	  fold flumotion.common.compat into flumotion.common.pygobject

2006-02-11  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/manager/component.py:
	  instead of taking the master clock's loopback ip,
	  fix up the master clock host to be "the manager's IP
	  as seen from the slave".  Solves the netclock sync
	  problem in the case where the clock master is on the
	  manager host. 
	  FIXME: of course this should require proper fixing.

2006-02-11  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/component.py:
	* flumotion/manager/base.py:
	* flumotion/manager/component.py:
	  document IP-related methods more so that they're clear

2006-02-11  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/feedcomponent.py:
	* flumotion/manager/component.py:
	  do some more debugging on the master clock master stuff
	  make the clockMasterWaiters hash take tuples so we can
	  log which avatarId was waiting

2006-02-11  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/pygobject.py:
	  add a gobject.type_register() that does not register for pygtk 2.8
	  better than shutting up deprecation wwrnings

2006-02-09  Andy Wingo  <wingo@pobox.com>

	* flumotion/component/producers/bttv/bttv.py (arg_filtered) 
	(call_on_state_change): New helper methods. Arguably not all that
	helpful.
	(BTTV.configure_pipeline, BTTV.set_channel_and_norm): Arrange to
	set the channel and norm for both versions. Don't add the
	colorspace effect for 0.10.

2006-02-09  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/messages.py:
	  handle the case where the given locale is not in the translator
	* flumotion/component/consumers/httpstreamer/http.py:
	  cleanup
	* flumotion/common/log.py:
	  allow for finding the part of an exception stack for a given
	  file, or a given frame
	* flumotion/job/job.py:
	  give a decent ComponentCreateError that can hopefully tell you
	  exactly where the ImportError happened

2006-02-08  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/feedcomponent010.py:
	  lower priority of generic internal errors, allowing more specific
	  one from looper through
	* flumotion/component/producers/looper/looper.py:
	  catch RESOURCE_NOT_FOUND and show a nice message
	  FIXME: need to find a way to not have the default bus func
	  get a go too.

2006-02-08  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/errors.py:
	* flumotion/worker/checks/check.py:
	* flumotion/worker/checks/video010.py:
	* flumotion/worker/checks/video08.py:
	  add source of error message as first arg to
	  GStreamerGstError

2006-02-06  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/bundleclient.py:
	* flumotion/common/package.py:
	* flumotion/common/registry.py:
	* flumotion/common/setup.py:
	* flumotion/common/worker.py:
	* flumotion/component/base/__init__.py:
	* flumotion/component/base/admin_gtk.py:
	* flumotion/component/base/admin_text.py:
	* flumotion/component/bouncers/__init__.py:
	* flumotion/service/service.py:
	  documentation updates

2006-02-06  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/bouncers/bouncer.py:
	* flumotion/component/consumers/httpstreamer/http.py:
	* flumotion/component/consumers/httpstreamer/resources.py:
	* flumotion/manager/component.py:
	  make an overdue function name change:
	  removeKeycard -> removeKeycardId

2006-02-03  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/worker/worker.py:
	  use a safer way of creating a worker socket.  Would be nice
	  if we could actually give the file to twisted, without needing
	  to delete.

2006-02-03  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/messages.py:
	  fix doc
	* flumotion/manager/manager.py:
	  privatize a bunch of privately used undocumented methods

2006-02-03  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/messages.py:
	  document

2006-02-03  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/test/test_pb.py:
	* flumotion/common/log.py:
	  document
	  private getTheFluLogObserver()

2006-02-03  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/planet.py:
	  remove 'message' from the jobstate
	* flumotion/component/component.py:
	* flumotion/component/feedcomponent08.py:
	* flumotion/manager/component.py:
	* flumotion/manager/manager.py:
	* flumotion/test/test_manager_manager.py:
	* po/POTFILES.in:
	  and convert to 'messages' where appropriate

2006-02-03  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/medium.py:
	* flumotion/common/planet.py:
	  document

2006-02-03  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/Makefile.am:
	* flumotion/common/code.py:
	* flumotion/extern/Makefile.am:
	  move code.py to extern

2006-02-03  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/manager/component.py:
	* po/POTFILES.in:
	  show us a decent message if start fails for any reason

2006-02-03  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/code.py:
	  make code.interact(local=locals()) work

2006-02-02  Thomas Vander Stichele  <thomas at apestaart dot org>

	* data/glade/admin.glade:
	  make sure we use stock items.  Fixes #320.

2006-02-02  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/overlay.py:
	  stop -> do_stop()
	* flumotion/component/feedcomponent08.py:
	  stop -> do_stop, move it to interface section
	* flumotion/component/producers/looper/looper.py:
	  use configure_pipeline instead of overriding start
	  override do_stop; clean up bus 
	  fix a UI bug where on startup the number of iterations
	  was shown as 5

2006-02-02  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/messages.py:
	  use FancyEqMixin so we can sensibly compare RemoteCopy objects
	  of the same original Copyable Messages and Translatable
	* flumotion/test/test_common_messages.py:
	  add tests for these
	* flumotion/twisted/flavors.py:
	  give us a more useful ValueError when state_remove tries to
	  remove an unexisting object.
	  Fixes #322

2006-02-02  Zaheer Abbas Merali <zaheermerali at gmail dot com>

	* flumotion/admin/main.py:
	  convert port to an integer value on parsing
	  fixes #324

2006-02-02  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/manager/manager.py:
	  not being able to release ports is a problem, we should
	  warn about it

2006-02-02  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/component.py:
	* flumotion/component/feedcomponent010.py:
	  update for do_stop() changes
	  properly log when loseConnection is called
	  Exposed a bug, filed as #323

2006-02-02  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/text/main.py:
	  make Messages proxyable.  Closes #321.

2006-02-02  Thomas Vander Stichele  <thomas at apestaart dot org>

	* doc/random/component-initialization-protocol:
	* flumotion/component/component.py:
	  make do_stop also return a deferred, for possible cases
	  where we might want to inidicate errors from shutdown before the
	  connection with the manager is lost.

2006-02-02  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/errors.py:
	  remove unused errors; we can now use Message to deal with them

2006-02-01  Edward Hervey  <edward@fluendo.com>

	* po/fr.po:
	 Slight fixes to the french translation.

2006-01-31  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/log.py:
	  make getTheFluLogObserver() a singleton method to delay
	  creating in
	  add logTwisted so we can separate importing pb (and thus reactor)
	  from initing the logging
	* flumotion/common/boot.py.in:
	* flumotion/test/common.py:
	* flumotion/test/test_pb.py:
	  adapt for this change

2006-01-31  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/command/commands.py:
	* flumotion/admin/command/main.py:
	  add an 'invoke' command
	  sample use:
	   bin/flumotion-command invoke "/default/http-audio" rotateLog
	* flumotion/component/consumers/httpstreamer/http.py:
	  add a remote_rotateLog() method
	* flumotion/component/consumers/httpstreamer/resources.py:
	  privatize log file bits
	  implement rotating the log

2006-01-31  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/component.py:
	  BaseComponent.addMessage(): to add messages to the state
	* flumotion/worker/checks/Makefile.am:
	* flumotion/worker/checks/package.xml:
	* flumotion/worker/checks/encoder.py:
	  add checks for Theora and Vorbis
	* flumotion/component/encoders/theora/theora.py:
	* flumotion/component/encoders/theora/theora.xml:
	* flumotion/component/encoders/vorbis/vorbis.xml:
	* flumotion/component/encoders/vorbis/vorbis010.py:
	  run theora and vorbis checks in do_check
	* flumotion/wizard/steps.py:
	  use checks for Theora and Vorbis
	* flumotion/wizard/wizard.py:
	  add some debug
	  make sure the deferred from require is returned

2006-01-31  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/launch/main.py:
	  update to match the new protocol

2006-01-31  Thomas Vander Stichele  <thomas at apestaart dot org>

	* Makefile.am:
	  blacklist gstreamer.py because we don't want to split out for
	  0.8 and 0.10 just for pychecker
	* flumotion/worker/checks/video010.py:
	  add a state= to do_element_check() to compare with the 08 version

2006-01-31  Thomas Vander Stichele  <thomas at apestaart dot org>

	* doc/random/component-initialization-protocol:
	  update protocol, add check method, make do_ methods
	* flumotion/component/bouncers/htpasswdcrypt.py:
	  setup -> do_setup()
	* flumotion/component/feedcomponent.py:
	* flumotion/component/feedcomponent010.py:
	* flumotion/component/feedcomponent08.py:
	  setup -> do_setup()
	  reorder some methods according to protocol

2006-01-30  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/producers/webcam/webcam.py:
	  put together a string step by step for the caps.  Works for
	  both 0.8 and 0.10
	* flumotion/wizard/steps.py:
	  we can get RGB, hence no format.  handle that case.
	* flumotion/worker/checks/video.py:
	  fix a silly bug that caused the config to have a tuple for format

2006-01-30  Andy Wingo  <wingo@pobox.com>

	* flumotion/launch/main.py (ComponentWrapper.__init__): Parse
	fraction values as well.
	(main): Implement a --delay option that will delay starting up the
	components by a certain amount of time. Can be useful for testing
	synchronization.

2006-01-30  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/manager/component.py:
	  in 0.8, provideMasterClock returns None, not a tuple.
	  Handle that case.

2006-01-30  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/feedcomponent08.py:
	  set eaterNames and feederNames on the state so that startup
	  happens correctly.

2006-01-30  Edward Hervey  <edward@fluendo.com>

	* po/fr.po:
	Now even FromageTV can use flumotion :)

2006-01-30  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/gstreamer.py:
	  fix element_factory_exists() for 0.8

2006-01-30  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/worker/checks/check.py:
	  get a traceback as debug info for unhandled failures
	* flumotion/worker/checks/video.py:
	  put in a fix for RGB webcams, and for 0.8
	* flumotion/worker/checks/video010.py:
	* flumotion/worker/checks/video08.py:
	  have our RemoteRunError on a callback give us a nice exception
	  message

2006-01-30  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/feedcomponent010.py:
	  generate error messages on generic GStreamer problems
	* flumotion/component/producers/webcam/webcam.py:
	* flumotion/component/producers/webcam/webcam.xml:
	  add and use mime/format/width/height/framerate
	* flumotion/wizard/steps.py:
	* flumotion/worker/checks/video.py:
	  also probe for mime/format/width/height/framerate
	  and use the values suggested as starting points
	  This makes both pwc and quickcam webcams work again nicely
	  Fixes #307

2006-01-30  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/config.py:
	  fix the error being raised

2006-01-30  Thomas Vander Stichele  <thomas at apestaart dot org>

	* common/pychecker.mk:
	  fix distcheck by finding the correct flumotion pythonpath to use
	  during distcheck

2006-01-29  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/wizard/wizard.py:
	  Make next button respond to mouse clicks after switching
	  sensitivity.  Fixes #314

2006-01-29  Thomas Vander Stichele  <thomas at apestaart dot org>

	* data/glade/admin.glade:
	  make the messages_view a custom widget, with a create function
	* flumotion/admin/gtk/parts.py:
	  show messages in the messages_view per component
	* flumotion/admin/gtk/client.py:
	  add messages_view
	  get rid of Window.show_all(), so the messages-view can be hidden
	  at startup
	* flumotion/common/planet.py:
	  add a 'messages' list to componentstates
	* flumotion/component/component.py:
	* flumotion/component/consumers/httpstreamer/http.py:
	  show an error message if the TCP port is in use
	* flumotion/component/feedcomponent.py:
	  throw up messages for missing elements or pipeline parse failures
	* flumotion/component/producers/audiotest/audiotest.py:
	  Check for necessary elements to start up
	* flumotion/manager/manager.py:
	  Pass a component error if a component cannot be created
	* flumotion/ui/trayicon.py:
	  let state Append/Remove pass through for now
	* po/POTFILES.in:
	* po/ca.po:
	* po/nl.po:
	* po/no.po:
	* po/fr.po:
	  add a French translation and update the dutch one

2006-01-29  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/errors.py:
	* flumotion/common/gstreamer.py:
	  add a check and an exception for missing GStreamer elements

2006-01-29  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/worker/checks/check.py:
	* flumotion/worker/checks/video.py:
	* flumotion/worker/checks/video010.py:
	* flumotion/worker/checks/video08.py:
	  move CheckProcError some more for pychecker

2006-01-29  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/worker/checks/video.py:
	* flumotion/worker/checks/video010.py:
	* flumotion/worker/checks/video08.py:
	  move CheckProcError

2006-01-29  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/wizard/step.py:
	  a RemoteRunError already has a sensible failure.value to show,
	  so special-case it
	* flumotion/wizard/steps.py:
	  catch and block on RemoteRunFailure for overlay
	* flumotion/worker/checks/video08.py:
	  add a special gst-python 0.8 hack to work around refcounting bugs
	* flumotion/worker/worker.py:
	  give us a decent usable RemoteRunError if there was an exception
	  while running the remote procedure

2006-01-29  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/worker/checks/check.py:
	  add an OPEN_READ message
	* flumotion/worker/checks/video.py:
	* flumotion/worker/checks/video010.py:
	* flumotion/worker/checks/video08.py:
	  move all but the 1394 check into the video.py class
	* po/ca.po:
	* po/nl.po:
	* po/no.po:
	  update for translations

2006-01-29  Thomas Vander Stichele  <thomas at apestaart dot org>

	* data/glade/wizard_soundcard.glade:
	  add a handler for combobox_channels changed
	* flumotion/admin/admin.py:
	  update docstring, workerRun now returns a Result
	* flumotion/admin/gtk/message.py:
	  document
	  make the textview wrap on words
	  add a translator so we can translate Messages
	  sort the messages viewed first by level, then priority

	* flumotion/wizard/step.py:
	  remove the info_msg/error_msg calls
	  show all messages that are part of the Result of workerRun
	  raise a RemoteRunFailure if the call produced a failed result
	  raise a RemoteRunError if the call failed and didn't produce
	  a result
	  forward on the value of a succesful Result to the caller
	* flumotion/wizard/steps.py:
	  use the new Message for all messages to be shown
	  add a on_combobox_channels_changed, but needs more integrating
	* flumotion/wizard/wizard.py:
	  remove the info_msg/error_msg calls
	  add add_msg
	  use Messages (including plural forms for missing element(s))

	* flumotion/component/producers/webcam/webcam.py:
	  Simple workaround for http://bugzilla.gnome.org/show_bug.cgi?id=328940
	* flumotion/worker/checks/Makefile.am:
	* flumotion/worker/checks/package.xml:
	* flumotion/worker/checks/check.py:
	  added; contains common functionality usable by checks
	* flumotion/worker/checks/video.py:
	* flumotion/worker/checks/video010.py:
	  rework tests to use Message and Result.
	  Not finding a device is now a succesful but empty result.
	  Turn on autoprobe-fps again, since it just doesn't work
	  at all without it atm.
	  Doing the 08 ones in a second step, because a lot of them can
	  be factored out together to be gst-independant
	* flumotion/worker/worker.py:
	  verify that workerRun calls end up returning a Result object
	* po/POTFILES.in:
	* po/ca.po:
	* po/nl.po:
	* po/no.po:
	  update translations

2006-01-28  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/manager/admin.py:
	  make Result and Message objects proxyable through manager

2006-01-28  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/errors.py:
	  add some specific error types

2006-01-28  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/messages.py:
	  fold ngettexter into gettexter method by checking for str format
	  make constructors of Translatable take *args, making the creation
	  more natural in the no-or-one arg case
	* flumotion/test/test_common_messages.py:
	  update to match

2006-01-28  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/messages.py:
	  - remove the .install() function, better not to mess with __builtin__
	  - add N_ and ngettext functions, used for marking up strings
	  - add .gettexter(domain) and .ngettexter(domain) methods, which return
	    methods to create translatables as used by messages.
	    Typically used as T_(N_(format), args)
	    and TP_(ngettext(s, p, c), args)
	    These changes are needed because we were wrongly doing
	    N_(format, *args) which happened to work by accident but does
	    not conform to gettext markup
	  - make TranslatablePlural take a format triple instead
	  - make Translator do a 'C' translation if no other found
	  - make Message.add() check that it receives a Translatable
	  - add a Result class that can hold a list of messages, a failed
	    status and a resulting value.
	* flumotion/test/test_common_messages.py:
	  - update tests for all of this
	* po/ca.po:
	* po/nl.po:
	* po/no.po:
	  - updated translations

2006-01-28  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/test/test_pb.py:
	  various cleanups
	  flush out errors
	* flumotion/twisted/pb.py:
	  add more debugging
	  fix logCategory

2006-01-27  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/test/test_component_init.py:
	  add a test I still had lying around, which tries to create
	  every component in the flumotion registry

2006-01-27  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/messages.py:
	  - add .install(), which puts N_ and ngettext methods in __builtin__
	    to mark messages for translation.  See gettext.install()
	  - add Translatable classes for Singular and Plural forms that store
	    everything needed to translate a message admin-side
	  - add a Translator class that can translate translatables and
	    messages, given localedirs for text domains
	  - make messages take translatable objects in the constructor
	* flumotion/test/test_common_messages.py:
	* flumotion/test/test_i18n.py:
	  tests for all of this, using the nl_NL locale
	* po/POTFILES.in:
	* po/ca.po:
	* po/nl.po:
	* po/no.po:
	  update with test strings

2006-01-27  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/test/Makefile.am:
	* flumotion/test/test_i18n.py:
	* po/POTFILES.in:
	* po/ca.po:
	* po/nl.po:
	* po/no.po:
	  add a test for various aspects of gettext and i18n
	  in preparation for some message support

2006-01-26  Thomas Vander Stichele  <thomas at apestaart dot org>

	* data/glade/wizard.glade:
	* flumotion/admin/gtk/Makefile.am:
	* flumotion/wizard/Makefile.am:
	* flumotion/wizard/message.py:
	* flumotion/wizard/wizard.py:
	  moved message.py to flumotion/admin/gtk

2006-01-26  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/Makefile.am:
	* flumotion/common/messages.py:
	  add a Message serializable class, extracted from wizard.message
	* flumotion/test/Makefile.am:
	* flumotion/test/test_common_messages.py:
	  and a simple test for it
	* data/glade/wizard.glade:
	* flumotion/wizard/message.py:
	* flumotion/wizard/wizard.py:
	  use the new Message class
	  rename MessageView to MessagesView, it shows more than one

2006-01-26  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/log.py:
	  don't debug tracebacks from pb.Error, since they specifically
	  get handled on the other side of a pb connection

2006-01-25  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/admin.py:
	* flumotion/common/medium.py:
	* flumotion/worker/worker.py:
	  rename run_bundled_proc to runFunction and move it to the
	  worker's medium, since we only ever want workers to do this for us.

2006-01-25  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/config.py:
	  make wrapper functions to read an int and a string, so that
	  we get a ConfigError if the values in the config are empty
	* flumotion/manager/main.py:
	  if there is a config error, print a nice warning instead of
	  a traceback

2006-01-25  Thomas Vander Stichele  <thomas at apestaart dot org>

	* conf/managers/default/planet.xml:
	* flumotion.spec.in:
	* flumotion/common/config.py:
	* flumotion/manager/main.py:
	  add a <certificate> option to the <manager> section in config
	  file formats, and document it in sample config and spec file
	  Closes #246

2006-01-25  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/manager/main.py:
	  on a config parsing error after daemonizing, only log the error
	  and SystemError, but not exit.  Fixes #310

2006-01-25  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/manager/main.py:
	  print a nice error when we can't read the first (manager) config
	  file correctly
	  if we set the manager name based on path, make sure the path is
	  under a managers/ dir

2006-01-25  Zaheer Abbas Merali <zaheermerali at gmail dot com>

	* flumotion/components/encoders/vorbis/vorbis010.py: Fix
	regression from gst 0.8 so that it respects the channels parameter
	passed from the config. Fixes #316. Reviewed by Andy Wingo.

2006-01-25  Andy Wingo  <wingo@pobox.com>

	* flumotion/component/consumers/httpstreamer/http.py
	(MultifdSinkStreamer._checkUpdate): Update the UI state
	unconditionally every 10 seconds.

2006-01-24  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/errors.py:
	* flumotion/job/job.py:
	* flumotion/manager/component.py:
	* flumotion/manager/worker.py:
	* flumotion/worker/worker.py:
	  rename error.Compoment{Create/Start} to end in Error just like
	  the rest of them.  Some further small cleanups.
	  I get a nice manager WARN line that tells me exactly what the
	  problem is when a compoment can't be created because of an
	  ImportError.

2006-01-24  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/job/job.py:
	* flumotion/worker/worker.py:
	  use errors.ComponentCreate where applicable
	  forward it through nicely everywhere, instead of rewrapping it
	  fix more instances of Start->Create

2006-01-24  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/manager/admin.py:
	  ixnay on the keeping of local patches
	  this makes components startable from the admin again

2006-01-23  Thomas Vander Stichele  <thomas at apestaart dot org>

	* common/gen-locale-xml.py:
	* doc/random/header.py:
	* flumotion/__init__.py:
	* flumotion/admin/__init__.py:
	* flumotion/admin/admin.py:
	* flumotion/admin/command/__init__.py:
	* flumotion/admin/command/commands.py:
	* flumotion/admin/command/main.py:
	* flumotion/admin/command/utils.py:
	* flumotion/admin/connections.py:
	* flumotion/admin/gtk/__init__.py:
	* flumotion/admin/gtk/client.py:
	* flumotion/admin/gtk/connections.py:
	* flumotion/admin/gtk/dialogs.py:
	* flumotion/admin/gtk/greeter.py:
	* flumotion/admin/gtk/main.py:
	* flumotion/admin/gtk/parts.py:
	* flumotion/admin/gtk/spyglass.py:
	* flumotion/admin/gtk/videotest.py:
	* flumotion/admin/gtk/wizard.py:
	* flumotion/admin/text/admin_text.py:
	* flumotion/admin/text/connection.py:
	* flumotion/admin/text/greeter.py:
	* flumotion/admin/text/main.py:
	* flumotion/admin/text/misc_curses.py:
	* flumotion/admin/text/view.py:
	* flumotion/common/__init__.py:
	* flumotion/common/boot.py.in:
	* flumotion/common/bundle.py:
	* flumotion/common/bundleclient.py:
	* flumotion/common/common.py:
	* flumotion/common/compat.py:
	* flumotion/common/componentui.py:
	* flumotion/common/config.py:
	* flumotion/common/dag.py:
	* flumotion/common/debug.py:
	* flumotion/common/enum.py:
	* flumotion/common/errors.py:
	* flumotion/common/gstreamer.py:
	* flumotion/common/interfaces.py:
	* flumotion/common/keycards.py:
	* flumotion/common/log.py:
	* flumotion/common/medium.py:
	* flumotion/common/package.py:
	* flumotion/common/planet.py:
	* flumotion/common/pygobject.py:
	* flumotion/common/registry.py:
	* flumotion/common/reload.py:
	* flumotion/common/setup.py:
	* flumotion/common/watched.py:
	* flumotion/common/worker.py:
	* flumotion/component/__init__.py:
	* flumotion/component/base/__init__.py:
	* flumotion/component/base/admin_gtk.py:
	* flumotion/component/base/admin_text.py:
	* flumotion/component/bouncers/__init__.py:
	* flumotion/component/bouncers/admin_gtk.py:
	* flumotion/component/bouncers/bouncer.py:
	* flumotion/component/bouncers/htpasswdcrypt.py:
	* flumotion/component/component.py:
	* flumotion/component/consumers/__init__.py:
	* flumotion/component/consumers/disker/__init__.py:
	* flumotion/component/consumers/disker/admin_gtk.py:
	* flumotion/component/consumers/disker/admin_text.py:
	* flumotion/component/consumers/disker/disker.py:
	* flumotion/component/consumers/httpstreamer/__init__.py:
	* flumotion/component/consumers/httpstreamer/admin_gtk.py:
	* flumotion/component/consumers/httpstreamer/http.py:
	* flumotion/component/consumers/httpstreamer/resources.py:
	* flumotion/component/consumers/preview/__init__.py:
	* flumotion/component/consumers/preview/preview.py:
	* flumotion/component/converters/__init__.py:
	* flumotion/component/converters/overlay/__init__.py:
	* flumotion/component/converters/overlay/genimg.py:
	* flumotion/component/converters/overlay/overlay.py:
	* flumotion/component/converters/pipeline/__init__.py:
	* flumotion/component/converters/pipeline/pipeline.py:
	* flumotion/component/effects/__init__.py:
	* flumotion/component/effects/colorbalance/__init__.py:
	* flumotion/component/effects/colorbalance/admin_gtk.py:
	* flumotion/component/effects/colorbalance/colorbalance.py:
	* flumotion/component/effects/volume/__init__.py:
	* flumotion/component/effects/volume/admin_gtk.py:
	* flumotion/component/effects/volume/volume.py:
	* flumotion/component/encoders/__init__.py:
	* flumotion/component/encoders/jpeg/__init__.py:
	* flumotion/component/encoders/jpeg/jpeg.py:
	* flumotion/component/encoders/mulaw/__init__.py:
	* flumotion/component/encoders/mulaw/mulaw.py:
	* flumotion/component/encoders/smoke/__init__.py:
	* flumotion/component/encoders/smoke/smoke.py:
	* flumotion/component/encoders/speex/__init__.py:
	* flumotion/component/encoders/speex/speex.py:
	* flumotion/component/encoders/theora/__init__.py:
	* flumotion/component/encoders/theora/theora.py:
	* flumotion/component/encoders/vorbis/__init__.py:
	* flumotion/component/encoders/vorbis/vorbis.py:
	* flumotion/component/encoders/vorbis/vorbis010.py:
	* flumotion/component/encoders/vorbis/vorbis08.py:
	* flumotion/component/encoders/vorbis/vorbisutils.py:
	* flumotion/component/feedcomponent.py:
	* flumotion/component/feedcomponent010.py:
	* flumotion/component/feedcomponent08.py:
	* flumotion/component/muxers/__init__.py:
	* flumotion/component/muxers/multipart.py:
	* flumotion/component/muxers/ogg.py:
	* flumotion/component/producers/__init__.py:
	* flumotion/component/producers/audiotest/__init__.py:
	* flumotion/component/producers/audiotest/audiotest.py:
	* flumotion/component/producers/bttv/__init__.py:
	* flumotion/component/producers/bttv/admin_gtk.py:
	* flumotion/component/producers/bttv/bttv.py:
	* flumotion/component/producers/firewire/__init__.py:
	* flumotion/component/producers/firewire/admin_gtk.py:
	* flumotion/component/producers/firewire/firewire.py:
	* flumotion/component/producers/jukebox/__init__.py:
	* flumotion/component/producers/jukebox/jukebox08.py:
	* flumotion/component/producers/looper/__init__.py:
	* flumotion/component/producers/looper/admin_gtk.py:
	* flumotion/component/producers/looper/looper.py:
	* flumotion/component/producers/pipeline/__init__.py:
	* flumotion/component/producers/pipeline/pipeline.py:
	* flumotion/component/producers/soundcard/__init__.py:
	* flumotion/component/producers/soundcard/admin_gtk.py:
	* flumotion/component/producers/soundcard/soundcard.py:
	* flumotion/component/producers/videotest/__init__.py:
	* flumotion/component/producers/videotest/admin_gtk.py:
	* flumotion/component/producers/videotest/admin_text.py:
	* flumotion/component/producers/videotest/videotest.py:
	* flumotion/component/producers/webcam/__init__.py:
	* flumotion/component/producers/webcam/admin_gtk.py:
	* flumotion/component/producers/webcam/webcam.py:
	* flumotion/configure/__init__.py:
	* flumotion/configure/configure.py:
	* flumotion/configure/installed.py.in:
	* flumotion/configure/uninstalled.py.in:
	* flumotion/extern/__init__.py:
	* flumotion/extern/pytrayicon/__init__.py:
	* flumotion/job/__init__.py:
	* flumotion/job/job.py:
	* flumotion/job/main.py:
	* flumotion/launch/__init__.py:
	* flumotion/launch/inspect.py:
	* flumotion/launch/main.py:
	* flumotion/manager/__init__.py:
	* flumotion/manager/admin.py:
	* flumotion/manager/base.py:
	* flumotion/manager/component.py:
	* flumotion/manager/main.py:
	* flumotion/manager/manager.py:
	* flumotion/manager/worker.py:
	* flumotion/project/__init__.py:
	* flumotion/project/project.py:
	* flumotion/service/__init__.py:
	* flumotion/test/__init__.py:
	* flumotion/test/common.py:
	* flumotion/test/gtkunit.py:
	* flumotion/test/test_bundle.py:
	* flumotion/test/test_checkers.py:
	* flumotion/test/test_common.py:
	* flumotion/test/test_common_componentui.py:
	* flumotion/test/test_common_gstreamer.py:
	* flumotion/test/test_common_package.py:
	* flumotion/test/test_common_planet.py:
	* flumotion/test/test_common_pygobject.py:
	* flumotion/test/test_component.py:
	* flumotion/test/test_config.py:
	* flumotion/test/test_configure.py:
	* flumotion/test/test_credentials.py:
	* flumotion/test/test_dag.py:
	* flumotion/test/test_defer.py:
	* flumotion/test/test_dialogs.py:
	* flumotion/test/test_enum.py:
	* flumotion/test/test_flavors.py:
	* flumotion/test/test_greeter.py:
	* flumotion/test/test_htpasswdcrypt.py:
	* flumotion/test/test_http.py:
	* flumotion/test/test_keycards.py:
	* flumotion/test/test_log.py:
	* flumotion/test/test_manager_admin.py:
	* flumotion/test/test_manager_manager.py:
	* flumotion/test/test_manager_worker.py:
	* flumotion/test/test_parts.py:
	* flumotion/test/test_pb.py:
	* flumotion/test/test_reflect.py:
	* flumotion/test/test_twisted_compat.py:
	* flumotion/test/test_ui_fgtk.py:
	* flumotion/test/test_wizard.py:
	* flumotion/test/test_worker_worker.py:
	* flumotion/test/test_workerconfig.py:
	* flumotion/test/testclasses.py:
	* flumotion/tester/__init__.py:
	* flumotion/tester/client.py:
	* flumotion/tester/clientfactory.py:
	* flumotion/tester/httpclient.py:
	* flumotion/twisted/__init__.py:
	* flumotion/twisted/checkers.py:
	* flumotion/twisted/compat.py:
	* flumotion/twisted/credentials.py:
	* flumotion/twisted/defer.py:
	* flumotion/twisted/flavors.py:
	* flumotion/twisted/pb.py:
	* flumotion/twisted/portal.py:
	* flumotion/twisted/reflect.py:
	* flumotion/ui/__init__.py:
	* flumotion/ui/fgtk.py:
	* flumotion/ui/glade.py:
	* flumotion/ui/icons.py:
	* flumotion/ui/trayicon.py:
	* flumotion/wizard/__init__.py:
	* flumotion/wizard/classes.py:
	* flumotion/wizard/enums.py:
	* flumotion/wizard/message.py:
	* flumotion/wizard/save.py:
	* flumotion/wizard/sidebar.py:
	* flumotion/wizard/step.py:
	* flumotion/wizard/steps.py:
	* flumotion/wizard/wizard.py:
	* flumotion/wizard/worker.py:
	* flumotion/worker/__init__.py:
	* flumotion/worker/checks/__init__.py:
	* flumotion/worker/checks/video.py:
	* flumotion/worker/checks/video010.py:
	* flumotion/worker/checks/video08.py:
	* flumotion/worker/config.py:
	* flumotion/worker/main.py:
	* flumotion/worker/worker.py:
	* tests/vorbis.py:
	* tools/fixheader.py:
	  2006 baby ! Brought to you by the Gratuitous Commit Department

2006-01-23  Andy Wingo  <wingo@pobox.com>

	* bin/flumotion-command.in (NEEDS_GTK): flumotion-command doesn't
	need gtk.

2006-01-17  Andy Wingo  <wingo@pobox.com>

	* flumotion/test/test_wizard.py (WizardSaveTest): Apparently these
	skip attributes need to be strings.

	* flumotion/test/test_manager_manager.py (TestVishnu): Make this
	first a log.loggable, then a unittest. Apparently unittest has
	picked up a .debug attribute which is a method that takes no
	arguments (other than self). Not sure what's going on here, but
	this fixes the test suite.

	* flumotion/test/test_common.py (TestObjRepr.testMe): Just test
	the repr of self -- works around what appears to be a bug in trial
	with twisted 2.1.

	* configure.ac: Check for twisted.web as well.

	* common/Makefile.am (EXTRA_DIST): 
	* common/twisted-module.m4: New m4, looks for twisted pieces.

	* configure.ac: Check that the user has twisted.names installed.

2006-01-12  Andy Wingo  <wingo@pobox.com>

	* flumotion/component/encoders/vorbis/vorbis08.py
	(Vorbis.create_pipeline): Fix^2.

	* flumotion/component/producers/looper/looper.py (Looper.init):
	Move some inits here.

	* flumotion/component/encoders/vorbis/vorbis08.py
	(Vorbis.create_pipeline): Fold init stuff here. Fix code to look
	for props in the right place. Fix comments.

	* flumotion/component/converters/overlay/overlay.py (Overlay):
	* flumotion/component/consumers/disker/disker.py
	(Disker): Add comments.

	* flumotion/component/consumers/httpstreamer/http.py
	(MultifdSinkStreamer.init): Inits moved here from
	configure_pipeline().

	* flumotion/component/bouncers/htpasswdcrypt.py (HTPasswdCrypt.init): 
	* flumotion/component/bouncers/bouncer.py (Bouncer.init): 
	* flumotion/component/feedcomponent08.py (FeedComponent.init): 
	* flumotion/component/feedcomponent010.py (FeedComponent.init):
	Changed from __init__().

2006-01-12  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/launch/main.py:
	  fix flumotion-launch, it wasn't using getComponent
	* flumotion/common/errors.py:
	* flumotion/job/job.py:
	* flumotion/manager/base.py:
	* flumotion/manager/manager.py:
	* flumotion/manager/worker.py:
	* flumotion/test/test_manager_manager.py:
	* flumotion/worker/worker.py:
	  call methods create instead of start, because that's what it is
	  now

2006-01-12  Andy Wingo  <wingo@pobox.com>

	* flumotion/component/component.py (BaseComponent): Mix in the
	InitMixin, call it too.
	(BaseComponent.init): Init variables in init(), why not.

	* flumotion/common/common.py (call_each_method): Fix a bugaboo.

	* flumotion/test/test_common.py (TestInitMixin): Bling!

	* flumotion/common/common.py (_uniq, _call_each_method): New
	helpers.
	(call_each_method, call_each_method_reversed): New public
	functions to call a method for each implementation in a class
	hierarchy.
	(InitMixin): New mixin class that will call init() implementations
	on an object using call_each_method_reversed.

2006-01-12  Thomas Vander Stichele  <thomas at apestaart dot org>

	* common/pychecker.mk:
	  09 -> 010
	* flumotion/component/bouncers/bouncer.py:
	* flumotion/component/bouncers/htpasswdcrypt.py:
	* flumotion/test/test_config.py:
	  fix some pychecker-y issues

2006-01-11  Thomas Vander Stichele  <thomas at apestaart dot org>

	* doc/random/component-initialization-protocol:
	* flumotion/component/bouncers/bouncer.py:
	* flumotion/component/bouncers/htpasswdcrypt.py:
	* flumotion/component/feedcomponent010.py:
	* flumotion/component/feedcomponent08.py:
	* flumotion/component/producers/videotest/videotest.py:
	* flumotion/job/job.py:
	* flumotion/manager/manager.py:
	* flumotion/test/test_component.py:
	* flumotion/test/test_htpasswdcrypt.py:
	* flumotion/test/test_pb.py:
	  remove the config argument from component __init__
	  basic scenario still works; time to verify others
	* flumotion/component/component.py:
	  add setup() to medium
	* flumotion/manager/component.py:
	  remove config dict from getComponent

2006-01-11  Thomas Vander Stichele  <thomas at apestaart dot org>

	* doc/random/component-initialization-protocol:
	* flumotion/test/test_component.py:
	* flumotion/test/test_pb.py:
	* flumotion/test/test_htpasswdcrypt.py:
	* flumotion/component/producers/videotest/videotest.py:
	* flumotion/manager/manager.py:
	  separate component setup() from __init__()
	  invoke setup() explicitly after creating components
	* flumotion/component/bouncers/bouncer.py:
	* flumotion/component/bouncers/htpasswdcrypt.py:
	* flumotion/component/feedcomponent010.py:
	* flumotion/component/feedcomponent08.py:
	  same as above, but also:
	  move member var initialization back to __init__
	* flumotion/manager/component.py:
	  add a setup() method to proxy to the job-side component
	  turn _startComponent in a defer generator that also takes care of
	  setup() for now
	* flumotion/component/component.py:
	  provide remote_setup to manager's ComponentAvatar
	* flumotion/component/feedcomponent.py:
	  remote_getState is not necessary anymore, since the eaterNames
	  and feederNames keys are set at the correct place

2006-01-11  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/test/test_manager_manager.py:
	  add a listener object to turn a state change on a RemoteCache
	  into a deferred so we can wait inside the unittest on a result
	  to happen

2006-01-09  Michael Smith  <msmith@fluendo.com>

	* flumotion/manager/component.py:
	  Add a perspective method to reserve worker ports, needed so that
	  RTCP servers can be started on demand.

2006-01-09  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/manager/component.py:
	* flumotion/manager/manager.py:
	  remove loadConfiguration in ComponentHeaven, not used anymore

2006-01-08  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/manager/worker.py:
	  add documentation and warnings for unexpected situations

2006-01-08  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/planet.py:
	  use a module global for keys we want to proxy from job to
	  component state
	  only proxy those keys, no others

2006-01-07  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/manager/component.py:
	  use the name of the mood in an avatar representation
	* flumotion/test/test_manager_manager.py:
	  move the provideMasterClock closer to where we want it by
	  putting it in the _startComponent method, which now is a defgen

2006-01-06  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/manager/component.py:
	  privatize a private instance var
	  collapse an else branch

2006-01-05  Thomas Vander Stichele  <thomas at apestaart dot org>

	* doc/random/component:
	* doc/random/processes:
	  add notes about component creation phase and error handling
	* flumotion/job/job.py:
	* flumotion/manager/admin.py:
	  make it so components that ran into an error during creation
	  stop the job process, and the admin can restart those sad
	  non-running components.

2006-01-03  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/job/job.py:
	  clean up internal method names
	  privatize more internal variables

2005-12-31  Thomas Vander Stichele  <thomas at apestaart dot org>

	* data/Makefile.am:
	* data/upgrade-to-0.2.0.xsl:
	  add an xsl stylesheet to transform pre-0.2.0 config files
	* NEWS:
	  add notes on how to use it

2005-12-31  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/gtk/parts.py:
	  make it so that "Worker" column shows in italics the worker
	  that needs to log in for the component to be able to start
	* tests/ComponentsView.py:
	* tests/vorbis.py:
	  update tests

2005-12-31  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/wizard/save.py:
	  fix syntax error

2005-12-29  Thomas Vander Stichele  <thomas at apestaart dot org>

	* NEWS:
	  update
	* flumotion/common/common.py:
	* flumotion/test/test_common.py:
	  add common.compareVersions() method and test

2005-12-29  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/wizard/save.py:
	  save project and version in xml

2005-12-28  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/consumers/disker/disker.py:
	  move var declaration to class, out of setup
	  check if self.location is set from size rotation callback
	* flumotion/launch/main.py:
	  support longs

2005-12-28  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/consumers/httpstreamer/http.py:
	* flumotion/component/consumers/httpstreamer/http.xml:
	  default to 8800 for port
	* flumotion/component/producers/soundcard/soundcard.py:
	  pick higher-quality defaults

2005-12-20  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/common.py:
	  LANGUAGE and LANG aren't necessarily set

2005-12-19  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/boot.py.in:
	* flumotion/manager/main.py:
	* flumotion/worker/main.py:
	  log the GStreamer version by sticking it in
	  flumotion.configure.configure

2005-12-19  Thomas Vander Stichele  <thomas at apestaart dot org>

	* NEWS:
	  add note about new config
	* flumotion.spec.in:
	  update spec for new config

2005-12-19  Edward Hervey  <edward@fluendo.com>

	* flumotion/component/converters/overlay/overlay.py:
	Update overlay do_start() method to new arguments (add clocking)

2005-12-15  Andy Wingo  <wingo@pobox.com>

	* flumotion/admin/command/commands.py (do_showcomponent): New
	command.

2005-12-15  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/Makefile.am:
	* flumotion/component/component.xml:
	* flumotion/component/encoders/Makefile.am:
	* flumotion/component/encoders/vorbis/vorbis.py:
	* flumotion/component/encoders/vorbis/vorbis.xml:
	* flumotion/component/encoders/vorbis/vorbis09.py:
	* flumotion/component/feedcomponent.py:
	* flumotion/component/feedcomponent09.py:
	* flumotion/wizard/steps.py:
	* flumotion/worker/checks/Makefile.am:
	* flumotion/worker/checks/package.xml:
	* flumotion/worker/checks/video.py:
	* flumotion/worker/checks/video09.py:
	* po/nl.po:
	* po/no.po:
	  rename 09 files to 010

2005-12-15  Andy Wingo  <wingo@pobox.com>

	* flumotion/admin/command/commands.py (do_showplanet): New
	command.
	(do_getmood): New command.

2005-12-15  Thomas Vander Stichele  <thomas at apestaart dot org>

	* TODO:
	* flumotion/common/registry.py:
	  use common.pathToModuleName, it doesn't check on-disk for a file,
	  which breaks when using projects

2005-12-15  Andy Wingo  <wingo@pobox.com>

	* flumotion/component/consumers/httpstreamer/http.py
	(Stats.updateState, MultifdSinkStreamer.configure_pipeline): Add
	'stream-bitrate-raw', 'stream-totalbytes-raw'
	'consumption-bitrate-raw', and 'consumption-totalbytes-raw'
	entries in the uiState.

	* flumotion/admin/command/main.py (usage): Less wrong options
	string.

	* flumotion/admin/command/Makefile.am (component_PYTHON): 
	* flumotion/admin/command/commands.py: 
	* flumotion/admin/command/utils.py: Factored some noise out of
	commands.py. Fixed a couple bugs as well.

2005-12-15  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/package.py:
	  add a docstring
	* flumotion/common/setup.py:
	  add a log line
	* flumotion/job/main.py:
	  set up package path - needed to make projects work

2005-12-15  Andy Wingo  <wingo@pobox.com>

	* flumotion/admin/command/main.py (setup_reactor.refused) 
	(setup_reactor.failed): Quit the reactor on errors.
	(setup_reactor.failed, setup_reactor.refused): Or, stop it.

	* flumotion/admin/command/commands.py (get_component_uistate): Fix
	format string.

	* flumotion/admin/command/main.py (setup_reactor.refused) 
	(setup_reactor.failed): Fix prototypes.
	(setup_reactor): Remove default errback.

	* flumotion/admin/command/commands.py (do_getprop): Actually
	implemented.
	(get_component_uistate): New helper method to get a component's
	uistate.
	(do_listprops): New operation, lists the properties on a
	component.
	(avatarId): New parser.
	(commands): Update the commands list.

	* flumotion/twisted/flavors.py (StateCacheable.keys): New method
	on StateCacheable objects. Should just make these derive from dict
	somehow.
	(StateRemoteCache.keys): Add the method on the cached objects as
	well.

	* flumotion/admin/command/main.py: Load commands from
	flumotion.admin.command.commands.

	* flumotion/admin/command/Makefile.am (component_PYTHON): 
	* flumotion/admin/command/commands.py: New file, split out from
	main.py. Here's where all of the commands will get defined.

	* flumotion/admin/command/main.py: Implement a bit more; just need
	to implement do_getprop and I'm there.

2005-12-15  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion.spec.in:
	  add -command
	  fix double includes

2005-12-15  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	  back down to gst-python 0.10.0
	* flumotion/component/producers/looper/looper.py:
	  move a regularly recurring debug line to log level 5
	  try to import discoverer and fail if not found

2005-12-15  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/log.py:
	  if we only have one arg for an exception and it's a string,
	  we can consider it an error message that we can show

2005-12-15  Edward Hervey  <edward@fluendo.com>

	* flumotion/component/producers/looper/Makefile.am:
	Forgot to add admin_gtk.py and the glade files to Makefile.am

2005-12-15  Andy Wingo  <wingo@pobox.com>

	* flumotion/admin/command/main.py: New file, committing
	prematurely so as to assuage the buildbots.

	* flumotion/test/test_manager_manager.py
	(FakeComponentMind.remote_provideMasterClock): Add a stub
	provideMasterClock implementation.
	(FakeComponentMind.remote_start): start() takes three args now.
	(FakeComponentMind.remote_start): Don't return anything.

2005-12-14  Edward Hervey  <edward@fluendo.com>

	* flumotion/component/producers/looper/admin_gtk.py:
	Remove print
	* flumotion/component/producers/looper/flufileinfo.glade:
	ellipsize the filename string

2005-12-14  Andy Wingo  <wingo@pobox.com>

	* flumotion/launch/main.py (ComponentWrapper.start): Call start()
	with the right number of args.

2005-12-14  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/config.py:
	  show component and property name in case of an error during
	  parsing of properties

2005-12-14  Andy Wingo  <wingo@pobox.com>

	* flumotion/admin/command/main.py: New file, implementing args
	parsing.

	* flumotion/admin/gtk/Makefile.am: 
	* flumotion/admin/command/__init__.py: Add new module space for
	flumotion-command.

	* bin/flumotion-command.in: New executable. Designed to log in to
	the manager, execute a command, wait for a response, and then
	exit.

	* configure.ac: 
	* bin/Makefile.am (bin_SCRIPTS): flumotion-command infrastructure.
	* flumotion/admin/Makefile.am (SUBDIRS): 

	* flumotion/manager/manager.py (Vishnu.loadConfiguration): Fix DAG
	error.

	* flumotion/manager/manager.py (Vishnu.releasePortsOnWorker):
	s/warning/debug/, the condition can occur legitimately. Cut out if
	the worker is not available.

	* flumotion/manager/component.py
	(ComponentHeaven.removeMasterClock): Renamed from
	removeMasterClockInfo. Release the port from the worker.
	(ComponentHeaven.unregisterComponent): If the component provided a
	master clock, remove its clocking info.

2005-12-14  Edward Hervey  <edward@fluendo.com>

	* configure.ac:
	Bump the gst-0.10 requirement to 0.10.0.1 because of the use of
	gst.extend.discoverer in the looper element.
	
	* flumotion/component/producers/looper/looper.py:
	* flumotion/component/producers/looper/looper.xml:
	* flumotion/component/producers/looper/looper.glade:
	* flumotion/component/producers/looper/flufileinfo.glade:
	* flumotion/component/producers/looper/admin_gtk.py:
	Glade-ified the admin UI.
	Rely on gst.extend.discoverer.Discoverer for discovering the file
	information, and using the flufileinfo UI to display it.
	Show current position in loop.

	* flumotion/component/producers/videotest/admin_gtk.py:
	typo fix

2005-12-14  Andy Wingo  <wingo@pobox.com>

	* flumotion/worker/checks/video09.py (checkWebcam): Do autoprobe
	colorspaces. Takes about 2 seconds, but it actually works (unlike
	the previous code).

	* flumotion/component/producers/webcam/webcam.py
	(Webcam.configure_pipeline): Only add colorspace effect for 0.8,
	until it's ported to 0.10.

	* flumotion/component/feedcomponent09.py
	(FeedComponent.provide_master_clock): Make sure the pipeline keeps
	using the clock we're providing.

2005-12-13  Andy Wingo  <wingo@pobox.com>

	* flumotion/manager/component.py (ComponentAvatar.start): Change
	to call getMasterClockInfo, not getMasterClock. Avoid slaving a
	clock to itself.
	(ComponentHeaven.registerComponent): Provide a master clock as
	appropriate.
	(ComponentHeaven.provideMasterClock): Actually implemented.
	(ComponentHeaven.getMasterClockInfo): Renamed from getMasterClock,
	implemented.
	(ComponentHeaven.removeMasterClockInfo): New function.

	* flumotion/manager/manager.py (Vishnu.loadConfiguration): Remove
	spurious variable.

	* flumotion/component/feedcomponent.py
	(FeedComponentMedium.remote_provideMasterClock): New remote
	method, proxies to the component.

	* flumotion/component/producers/audiotest/audiotest.xml: Up the
	priority of the clock here so that this clock is deterministically
	chosen when testing.

	* flumotion/component/feedcomponent09.py
	(FeedComponent.setup_pipeline): Disable automatic management of
	stream time.
	(FeedComponent.pipeline_stop): Deactivate and dispose of the clock
	provider, if any, when going to NULL.
	(FeedComponent.set_master_clock): Implement. Yay.
	(FeedComponent.provide_master_clock): New method, implemented.
	(FeedComponent.link): Activate the clock provider, if any, before
	going to PLAYING.

	* flumotion/component/feedcomponent08.py
	(FeedComponent.provide_master_clock): Ignore request to provide
	master clock on 0.8.

	* flumotion/manager/component.py (ComponentHeaven.getMasterClock):
	New method, returns a deferred that will fire whenever the
	information is available (possibly immediately). Right now just
	returns None.
	(ComponentHeaven.provideMasterClock): New method, called when a
	component provides a master clock. Not yet implemented...
	(ComponentAvatar.start): If we need a master clock, get that info
	using getMasterClock. Pass a third argument to start(), the
	clocking information, which can be None.

	* flumotion/component/feedcomponent.py
	(ParseLaunchComponent.do_start): Take a third argument, clocking,
	meant to be information about the master clock. Pass it on to a
	new FeedComponent method, set_master_clock.

	* flumotion/component/feedcomponent09.py
	(FeedComponent.set_master_clock): Stub set_master_clock
	implementation.

	* flumotion/component/feedcomponent08.py
	(FeedComponent.set_master_clock): Ignore request to set the master
	clock for 0.8, it's not supported.

	* flumotion/component/encoders/vorbis/vorbis08.py (Vorbis.start):
	Ignore the clocking arg.

2005-12-13  Michael Smith  <msmith@fluendo.com>

	* flumotion/project/project.py:
	  Catch syntax errors in exec() so that illegal project/module names are
	  caught, rather than getting an unhelpful message later.

2005-12-13  Andy Wingo  <wingo@pobox.com>

	* flumotion/manager/manager.py (Vishnu.loadConfiguration) 
	(Vishnu._addComponent, Vishnu._workerStartComponentDelayed): Get
	avatarId from the config dict, not the component mapper.

	* flumotion/common/config.py (FlumotionConfigXML._parseFlow):
	Instead of setting 'clock-master' to True or False, set it to
	either None (for no clock master) or an avatar ID of the component
	hosting the clock master.
	(FlumotionConfigXML._parseComponent): Set config['avatarId'] here.
	(FlumotionConfigXML._parseClockMaster): Return True or None.

	* flumotion/test/test_config.py (TestConfig.testParseProperties):
	False -> None.
	(TestConfig.testClockMasterAutoSelection) 
	(TestConfig.testClockMasterUserSelection): 'clock-master' =
	avatarId of component providing clock.

2005-12-12  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/converters/overlay/overlay.py:
	  move stray self._filename = None from the __init__ days
	  only use one pipeline template
	  reorder again so that pngdec part is first in the parse_launch;
	  don't change this, videomixer relies on the order
	  fix the ! being in the wrong place
	  Fixes overlay for 0.8, but not yet for 0.10: see
	  http://bugzilla.gnome.org/show_bug.cgi?id=323896
	  
	* flumotion/wizard/save.py:
	  warn about and do not write properties that are not listed in
	  the registry

2005-12-12  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/registry.py:
	  change RegistryEntryComponent to take a dict for properties, not
	  a list of values
	  add a .hasProperty()
	  update .getProperties() so interface is the same
	* flumotion/component/converters/overlay/genimg.py:
	  cosmetic fix
	* flumotion/job/job.py:
	  typo fix

2005-12-12  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/log.py:
	* flumotion/test/test_log.py:
	  make getExceptionMessage look at the top of the stack
	  add some unit tests to verify this; I seem to remember having
	  changed this piece before, so if that turns up again, add more
	  tests !

2005-12-12  Andy Wingo  <wingo@pobox.com>

	* flumotion/component/feedcomponent08.py
	(FeedComponent._setup_feeders): Put feed_name definition back in.

	* flumotion/component/encoders/vorbis/vorbis08.py
	(Vorbis.__init__): Remove unused locals.

	* flumotion/job/job.py (JobMedium.remote_start): Don't take
	feedPorts as an arg, it's not necessary.
	(JobMedium._runComponent): No feedPorts. Also no need to
	setConfig, BaseComponent.__init__ does that.

	* flumotion/launch/main.py (ComponentWrapper.instantiate):
	set_feed_ports is gone.
	(main): Start the component with the ports allocated.

	* flumotion/manager/component.py (ComponentAvatar.cleanup):
	Release ports when the component is detached.
	(ComponentAvatar.getWorkerName): Use the jobState to get the
	worker name, because we have it before we have the componentState.
	(ComponentAvatar.start): Keep track of which ports we have
	reserved for the component.
	(ComponentAvatar.perspective_feedReady): Take a boolean instead of
	the port number -- we know which port it's on.
	(ComponentHeaven._getComponentFeedersData): This is where we
	actually allocate the ports.

	* flumotion/manager/manager.py (Vishnu.reservePortsOnWorker) 
	(Vishnu.releasePortsOnWorker): New vishnu methods.

	* flumotion/manager/worker.py (PortSet): New helper object to keep
	track of ports available on a worker.
	(WorkerAvatar.attached): Before notifying the heaven or vishnu
	about a new worker, call getPorts() to get the configured range of
	ports.
	(WorkerAvatar.reservePorts, WorkerAvatar.releasePorts): New
	methods.

	* flumotion/worker/worker.py (WorkerMedium.cb_processFinished) 
	(WorkerMedium.cb_processFailed): Removed, were not referenced
	anywhere.
	(WorkerMedium.remote_getPorts): New remote call, returns the set
	of ports this worker was configured to use.
	(WorkerMedium.__init__): Take ports as an initarg.
	(WorkerBrain.setup): JobHeaven doesn't need the ports.
	(Port): Port allocation code moved to manager.
	(JobAvatar.attached): Don't allocate ports for the kid, the
	manager will do that.
	(JobHeaven.__init__): No need to keep the port list around.

	* flumotion/component/feedcomponent08.py: 
	* flumotion/component/feedcomponent09.py (FeedComponent.setup):
	Remove feed_ports instance variable.
	(FeedComponent.set_feed_ports): Removed, feed ports are now passed
	to FeedComponent.start().
	(FeedComponent._setup_feeders): feedersData tuples now include the
	port as well. No need for a return value.
	(FeedComponent.link): Don't return anything, adapt to ports in
	feedersData.

	* flumotion/test/test_manager_manager.py
	(FakeWorkerMind.remote_getPorts): Implement the getPorts remote
	call on our fake worker.

	* flumotion/test/test_worker_worker.py
	(TestWorkerMedium.testSetRemoteReference): Update for WorkerMedium
	initargs change.

	* conf/managers/default/flows/ogg-test-theora.xml: Replace with
	standard components instead of pipeline components. The only
	videotestsrc pipeline had a fraction framerate.

2005-12-12  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/encoders/vorbis/vorbis08.py:
	  fix __init__ chainup due to recent refactoring

2005-12-12  Michael Smith  <msmith@fluendo.com>

	* flumotion/component/feedcomponent.py:
	  I was getting annoyed by a misspeld variable name.

2005-12-07  Andy Wingo  <wingo@pobox.com>

	* conf/managers/default/planet.xml: Update config syntax.

2005-12-07  Michael Smith  <msmith@fluendo.com>

	* flumotion/common/registry.py:
	  It has been pointed out to me that I can make the previous change 
	  specific to the single class in question rather than file-global.

2005-12-07  Michael Smith  <msmith@fluendo.com>

	* flumotion/common/registry.py:
	  Tell pychecker to allow the 12-arg constructor in this file.

2005-12-07  Michael Smith  <msmith@fluendo.com>

	* common/pychecker.mk:
	  Fix pychecker macros to look for gstreamer 0.10 instead of 0.9 so we
	  actually check the blah09.py files.

2005-12-07  Michael Smith  <msmith@fluendo.com>

	* flumotion/common/config.py:
	  Fix syntax in log call so that 'make check' passes again.

2005-12-06  Andy Wingo  <wingo@pobox.com>

	* flumotion/test/test_config.py (TestConfig.testClockMasterAutoSelection) 
	(TestConfig.testClockMasterUserSelection) 
	(TestConfig.testClockMasterError): New testes.

	* flumotion/common/config.py (FlumotionConfigXML._parseFlow):
	Choose a default master clock if necessary, sorting by the clock
	priorities in the registry.

	* flumotion/test/test_config.py (TestConfig.testParseProperties):
	Test that clock-master defaults to False.

	* flumotion/common/config.py
	(FlumotionConfigXML._parseClockMaster): Parse out <clock-master>
	from a config.

	* flumotion/component/encoders/Makefile.am: Don't try to dist
	encoders.xml.

	* flumotion/test/test_registry.py (TestRegistry.testDump): Update
	dump test for default synchronization writeout.
	(TestComponentEntry.setUp): Add a couple tests.

	* flumotion/common/registry.py
	(RegistryEntryComponent.__init__)
	(RegistryParser._parseSynchronization)
	(RegistryParser._parseComponent): Add support for parsing
	<synchronization>.
	(RegistryEntryComponent.getNeedsSynchronization) 
	(RegistryEntryComponent.getClockPriority): New accessors.
	(ComponentRegistry.dump): Support writing out the synchronization
	data.

	* flumotion/component/producers/audiotest/audiotest.xml: 
	* flumotion/component/producers/bttv/bttv.xml: 
	* flumotion/component/producers/firewire/firewire.xml: 
	* flumotion/component/producers/jukebox/jukebox.xml: 
	* flumotion/component/producers/looper/looper.xml: 
	* flumotion/component/producers/pipeline/pipeline.xml: 
	* flumotion/component/producers/soundcard/soundcard.xml: 
	* flumotion/component/producers/videotest/videotest.xml: 
	* flumotion/component/producers/webcam/webcam.xml: Add
	synchronization properties, as per the synchronization doc.

2005-12-06  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/worker/worker.py:
	  put back the segfault handler
	  try to be helpful by pointing out the core dump file

2005-12-06  Andy Wingo  <wingo@pobox.com>

	* doc/random/synchronization: New file, describes how
	synchronization works in flumotion.

	* flumotion/component/encoders/encoders.xml: Removed, there are
	already xml files for all encoders.

	* flumotion/component/muxers/muxers.xml: 
	* flumotion/component/producers/audiotest/audiotest.xml: 
	* flumotion/component/producers/bttv/bttv.xml: 
	* flumotion/component/producers/jukebox/jukebox.xml: 
	* flumotion/component/producers/soundcard/soundcard.xml: 
	* flumotion/component/producers/videotest/videotest.xml: 
	* flumotion/component/encoders/jpeg/jpeg.xml: 
	* flumotion/component/encoders/mulaw/mulaw.xml: 
	* flumotion/component/encoders/smoke/smoke.xml: 
	* flumotion/component/encoders/speex/speex.xml: 
	* flumotion/component/encoders/theora/theora.xml: 
	* flumotion/component/encoders/vorbis/vorbis.xml: Remove "feed"
	properties. Unnecessary, given the <feeder> entries in the
	registry.

	* conf/managers/default/flows/ogg-test-theora.xml: Update for
	config changes.

	* flumotion/test/test.xml: Remove <feed> properties.

	* flumotion/wizard/save.py (Component.toXML): Don't write out
	<feed> entries.

	* flumotion/common/config.py (FlumotionConfigXML._parseFeeds):
	Removed.
	(FlumotionConfigXML._parseComponent): Take the feeds directly from
	the registry. A <feed> node in a <component> is an error. Could
	add something back when/if we support deactivated feeds.

	* flumotion/launch/inspect.py (main): Print out required/multiple
	attributes of eaters.

	* flumotion/launch/main.py (ComponentWrapper.__init__): Update for
	eater registry changes, removal of 'source' property.

	* flumotion/component/muxers/muxers.xml: Remove "source"
	properties, set multiple=yes on the feeders.

	* flumotion/component/encoders/encoders.xml: 
	* flumotion/component/encoders/jpeg/jpeg.xml: 
	* flumotion/component/encoders/mulaw/mulaw.xml: 
	* flumotion/component/encoders/smoke/smoke.xml: 
	* flumotion/component/encoders/speex/speex.xml: 
	* flumotion/component/encoders/theora/theora.xml: 
	* flumotion/component/encoders/vorbis/vorbis.xml: 
	* flumotion/component/converters/overlay/overlay.xml: 
	* flumotion/component/consumers/disker/disker.xml: 
	* flumotion/component/consumers/httpstreamer/http.xml: 
	* flumotion/component/consumers/preview/preview.xml: Remove
	"source" properties.

	* flumotion/common/config.py (FlumotionConfigXML._parseSources):
	Check multiple/required sources against the registry. Removes the
	need to have "source" properties in components.

	* flumotion/common/registry.py (RegistryEntryEater): New class, to
	store an <eater> node inside a <component>. This is because we
	need to know if some eaters can have multiple feeders, and if some
	eaters are required.
	(RegistryParser._parseEater): Parse the eater as a
	RegistryEntryEater.
	(ComponentRegistry.dump): Update to write out <eater> entries
	properly.

	* flumotion/test/test.xml:
	* flumotion/test/test_config.py (TestConfig.testParseProperties):
	Update for new syntax.

	* flumotion/common/config.py
	(FlumotionConfigXML._parseProperties): Parse the new property
	format. As a bonus, checks that properties actually exist in the
	registry.
	(FlumotionConfigXML._parseComponent): Validate that there are only
	'feed', 'source', and 'property' subnodes in <component> nodes.

	* flumotion/wizard/save.py (Component.toXML): Instead of putting
	properties in their own nodes ("<foo>bar</foo>"), put them in
	property nodes ("<property name='foo'>bar</property>"). Separates
	the XML namespace properly.

2005-12-05  Andy Wingo  <wingo@pobox.com>

	* flumotion/component/encoders/encoders.xml: Remove duplicated
	registry entry for jpeg-encoder.

	* All components: adapted for new init protocol.

	* flumotion/manager/manager.py (Vishnu.loadConfiguration): Try to
	get the bouncer's entry point from the registry.

	* flumotion/component/feedcomponent.py
	(ParseLaunchComponent.create_pipeline): Implement the init
	protocol via calling get_pipeline_string, then creating a pipeline
	from that.
	(ParseLaunchComponent.set_pipeline): After chaining to the parent,
	call self.configure_pipeline to give subclasses a look at the
	pipeline.
	(ParseLaunchComponent.get_pipeline_string): New vmethod, to be
	implemented by subclasses.
	(ParseLaunchComponent.configure_pipeline): New vmethod.
	Implementation optional.

	* flumotion/component/component.py (BaseComponent.__init__):
	Implement the base of the initialization protocol via calling
	setConfig and setup; take a config dict as an arg so this can be
	an entry point.
	(BaseComponent.setup): Default setup implementation, does nothing.
	(BaseComponent.setConfig): Default setConfig implementation, sets
	self.config and self.name.

	* flumotion/component/feedcomponent09.py (FeedComponent.setup) 
	* flumotion/component/feedcomponent08.py (FeedComponent.setup):
	Implement the new initialization protocol. Was __init__.
	
	* flumotion/component/feedcomponent09.py
	(FeedComponent.set_pipeline)
	* flumotion/component/feedcomponent08.py
	(FeedComponent.set_pipeline): Implement set_pipeline, calls
	setup_pipeline.

	* flumotion/component/bouncers/htpasswdcrypt.xml: entry =
	HTPasswdCrypt.

	* flumotion/component/bouncers/htpasswdcrypt.py
	(HTPasswdCrypt.setup): Fold createComponent into here, allow
	BaseComponent.__init__ to be the entry point. Adapt to properties
	as a subdict of config.

	* flumotion/component/bouncers/bouncer.py (Bouncer.setup): Update
	to the new initialization protocol.

	* flumotion/common/config.py (FlumotionConfigXML._parseComponent):
	Put properties in config['properties']. The XML representation for
	now is the same though.

	* flumotion/launch/main.py (ComponentWrapper.__init__): Put
	properties in config['properties'], not config itself. Set
	config['feed'] from the registry, and ignore missing
	config['properties]['source'] for now, it's in config['source'] --
	components shouldn't have 'source' as a property anyway.

	* flumotion/test/test_config.py (TestConfig.testParseProperties):
	Update for properties being in a subdict of config.

	* flumotion/test/test_component.py (PipelineTest): Adapt to new
	__init__ args. Override the pipeline creation parts of the init
	protocol so that we don't try to gst.parse_launch with made-up
	names.
	(TestParser.testErrors): Don't skip this one; it passes here.
	(pipelineFactory): Update so that PipelineTest gets the right
	pipeline.

	* flumotion/test/test_htpasswdcrypt.py
	(TestHTPasswdCryptKeycard.setUp)
	(TestHTPasswdCryptUACPP.setUp, TestHTPasswdCryptUACPCC.setUp):
	* flumotion/test/test_pb.py (Test_FPBClientFactory.setUp) 
	(Test_BouncerWrapper.setUp): Update for bouncer initialization
	changes.

	* flumotion/wizard/steps.py (TestAudioSource.worker_changed):
	Check for audiotestsrc when working with 0.10.

2005-12-02  Michael Smith  <msmith@fluendo.com>

	* configure.ac:
	* flumotion/common/boot.py.in:
	* tests/checks.py:
	* tests/debugslider.py:
	* tests/vorbis.py:
	  0.10 is on the way; update everything to use 0.10 rather than 0.9,
	  other than file renaming.

2005-11-29  Edward Hervey  <edward@fluendo.com>

	* flumotion/component/producers/looper/looper.py: 
	* flumotion/component/producers/looper/looper.xml:
	Update fraction behaviour,
	Use single-segment identity so the stream really behaves as a live
	stream.

2005-11-29  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/wizard/steps.py:
	  fractions should be saved as %d/%d, not tuple

2005-11-28  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/wizard/steps.py:
	  fix syntax error

2005-11-28  Andy Wingo  <wingo@pobox.com>

	* flumotion/component/producers/looper/looper.py
	(Looper.__init__):
	* flumotion/component/producers/videotest/videotest.py
	(VideoTest.__init__):
	* flumotion/component/producers/bttv/bttv.py (BTTV.__init__):
	* flumotion/component/producers/firewire/firewire.py
	(Firewire.__init__):
	* flumotion/component/producers/webcam/webcam.py
	(Webcam.__init__): Handle fraction framerate properly in 0.8 and
	0.9.

	* flumotion/component/encoders/jpeg/jpeg.xml: 
	* flumotion/component/producers/bttv/bttv.xml: 
	* flumotion/component/producers/firewire/firewire.xml: 
	* flumotion/component/producers/videotest/videotest.xml: 
	* flumotion/component/producers/webcam/webcam.xml: Framerate is
	now a fraction.

	* flumotion/wizard/steps.py (fraction_from_float): New utility for
	making fractions from floats given the denominator.
	(TVCard.get_state, FireWire.get_state, Webcam.get_state) 
	(TestVideoSource.get_state, JPEG.get_state): Fractional
	framerates.

	* flumotion/common/config.py
	(FlumotionConfigXML._get_fraction_value): New property type
	parser.
	(FlumotionConfigXML._parseProperties): Add parser for fractions.

	* flumotion/test/test_config.py (TestConfig.testParseProperties):
	Add a test for fraction-typed properties.

2005-11-27  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/producers/bttv/bttv.xml:
	  fix bttv depending on colorbalance effect

2005-11-24  Andy Wingo  <wingo@pobox.com>

	* flumotion/component/encoders/theora/theora.py (Theora.__init__):
	Whoops!

	* flumotion/component/producers/videotest/videotest.py
	(VideoTest.__init__): Temporary hack for framerate, will fix later.

	* flumotion/component/producers/audiotest/audiotest.py
	(AudioTest.__init__): audiotestsrc in 0.9.

	* flumotion/common/log.py (FluLogObserver.emit): Print tracebacks
	at WARN now that the defer_generator tracebacks are not spamming
	any more.

	* flumotion/component/consumers/httpstreamer/http.xml: 
	* flumotion/component/consumers/httpstreamer/http.py
	(MultifdSinkStreamer.__init__): entry = MultifdSinkStreamer

	* flumotion/component/consumers/disker/disker.xml: 
	* flumotion/component/consumers/disker/disker.py
	(Disker.__init__): entry = Disker

	* flumotion/component/consumers/preview/preview.xml: 
	* flumotion/component/consumers/preview/preview.py
	(Preview.__init__): entry = Preview

	* flumotion/component/muxers/ogg.py (Ogg.__init__): 
	* flumotion/component/muxers/multipart.py (Multipart.__init__): 
	* flumotion/component/muxers/muxers.xml: Add entry for Multipart,
	ogg entry = Ogg

	* flumotion/component/encoders/jpeg/jpeg.xml: 
	* flumotion/component/encoders/jpeg/jpeg.py (JPEG.__init__): Added
	entry XML node, entry = JPEG. Doesn't work now if framerate is
	specified due to fractions.

	* flumotion/component/encoders/mulaw/mulaw.xml: 
	* flumotion/component/encoders/mulaw/mulaw.py (Mulaw.__init__):
	Added entry XML node, entry = Mulaw

	* flumotion/component/encoders/smoke/smoke.xml: 
	* flumotion/component/encoders/smoke/smoke.py (Smoke.__init__):
	Added entry XML node, entry = Smoke

	* flumotion/component/encoders/smoke/smoke.xml: 

	* flumotion/component/encoders/speex/speex.xml:
	* flumotion/component/encoders/speex/speex.py (Speex.__init__):
	Added entry XML node, entry = Speex

	* flumotion/component/encoders/theora/theora.xml: 
	* flumotion/component/encoders/theora/theora.py (Theora.__init__):
	entry = Theora, beautified

	* flumotion/component/encoders/vorbis/vorbis.xml: 
	* flumotion/component/encoders/vorbis/vorbis08.py: 
	* flumotion/component/encoders/vorbis/vorbis09.py: 
	* flumotion/component/encoders/vorbis/vorbis.py: entry = Vorbis

2005-11-24  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/worker/worker.py:
	  fix remote_checkElements() because element_factory_make now raises
	  when plug-ins are missing

2005-11-24  Andy Wingo  <wingo@pobox.com>

	* flumotion/component/converters/overlay/overlay.xml: 
	* flumotion/component/converters/overlay/overlay.py
	(Overlay.__init__): entry = Overlay

	* flumotion/component/converters/pipeline/pipeline.xml: 
	* flumotion/component/converters/pipeline/pipeline.py
	(Converter.__init__): entry = Converter

2005-11-18  Andy Wingo  <wingo@pobox.com>

	* flumotion/component/producers/firewire/firewire.py
	(Firewire.__init__):
	* flumotion/component/producers/soundcard/soundcard.py
	(Soundcard.__init__):
	* flumotion/component/producers/bttv/bttv.py (BTTV.__init__):
	build fixes

	* flumotion/component/producers/audiotest/audiotest.xml: 
	* flumotion/component/producers/audiotest/audiotest.py
	(AudioTest.__init__): entry = AudioTest

	* flumotion/component/producers/bttv/bttv.xml: 
	* flumotion/component/producers/bttv/bttv.py (BTTV.__init__):
	entry = BTTV

	* flumotion/component/producers/firewire/firewire.xml: 
	* flumotion/component/producers/firewire/firewire.py
	(Firewire.__init__): entry = Firewire

	* flumotion/component/producers/looper/looper.xml: 
	* flumotion/component/producers/looper/looper.py
	(Looper.__init__): entry = Looper

	* flumotion/component/producers/pipeline/pipeline.py
	(Producer.__init__): entry = Producer
	* flumotion/component/producers/pipeline/pipeline.xml: entry =
	Producer

	* flumotion/component/producers/soundcard/soundcard.xml: entry =
	Soundcard
	* flumotion/component/producers/soundcard/soundcard.py
	(SoundcardProducer.__init__): entry = Soundcard

	* flumotion/component/producers/webcam/webcam.py
	(Webcam.__init__): Refactor so entry = Webcam
	* flumotion/component/producers/webcam/webcam.xml: entry = Webcam

	* flumotion/component/producers/videotest/videotest.xml: Set the
	class as the component entry point.

	* flumotion/component/producers/videotest/videotest.py
	(VideoTest.__init__): Move createComponent code to __init__. This
	is probably how all components should be done.

	* flumotion/manager/worker.py (WorkerAvatar.start): Pull the entry
	point from the registry.

	* flumotion/component/producers/pipeline/pipeline.py
	(Producer.__init__): Fix stupid errors

	* flumotion/common/log.py (theFluLogObserver): Make a singleton
	normally.

	* flumotion/common/bundleclient.py (BundleLoader.getBundles):
	Fool pychecker -- for some reason it doesn't like os at the
	toplevel here.

	* flumotion/component/converters/pipeline/pipeline.py
	(Converter.__init__):
	* flumotion/component/producers/pipeline/pipeline.py
	(Producer.__init__):
	* flumotion/component/producers/soundcard/soundcard.py
	(SoundcardProducer.__init__): Don't poke config['feed'], this is
	not a property.

2005-11-16  Edward Hervey  <edward@fluendo.com>

	* flumotion/component/producers/looper/looper.py: (createComponent): 
	Fix looper pipeline.

2005-11-15  Edward Hervey  <edward@fluendo.com>

	* flumotion/component/producers/looper/looper.py: (Looper._message_cb):
	so if we loop 1 000 000 000 times we end up playing one second less.... bad !

2005-11-15  Edward Hervey  <edward@fluendo.com>

	* configure.ac:
	* flumotion/component/producers/Makefile.am
	* flumotion/component/producers/looper/Makefile.am
	* flumotion/component/producers/looper/__init__.py
	* flumotion/component/producers/looper/looper.xml	
	* flumotion/component/producers/looper/looper.py: (createComponent): 
	Added looper element for ogg/vorbis/theora. Loops the entire file.

2005-11-14  Michael Smith <msmith@fluendo.com>

	* flumotion/launch/main.py:
	  Make flumotion-launch work again by importing flumotion.configure
	  before using it.

2005-11-13  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/log.py:
	  make theFluLogObserver a singleton
	  add ignoreErrors and clearIgnores so we can ignore PB-related
	  tracebacks from trial
	* flumotion/test/test_pb.py:
	  use these new methods to remove the stray prints

2005-11-11  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	* po/nl.po:
	* po/no.po:
	  back to TRUNK

=== release 0.1.10 ===

2005-11-11  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac: releasing 0.1.10, "Rosa Negra"

2005-11-11  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/boot.py.in:
	  Don't offend our dear users

2005-11-11  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/manager/component.py:
	  remove print

2005-11-11  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/launch/inspect.py:
	  Fix flumotion-inspect with projects

2005-11-11  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/errors.py:
	  add a NoProjectError
	* flumotion/project/project.py:
	  raise it
	* flumotion/common/registry.py:
	  catch it
	* flumotion/launch/main.py:
	  add some logging about projects

2005-11-10  Julien MOUTTE  <julien@moutte.net>

	* flumotion/component/feedcomponent.py:
	  give a warning when we can't parse pipeline
	* flumotion/component/producers/webcam/webcam.py:
	  remove colorspace, and the double quotes that don't work in 0.8

2005-11-10  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/producers/webcam/webcam.py:
	  make launch line pasteable
	* flumotion/component/producers/webcam/webcam.xml:
	  fix dependency on colorbalance effect

2005-11-10  Julien MOUTTE  <julien@moutte.net>

	* flumotion/component/consumers/httpstreamer/resources.py:
	  set the broadcast Pragma for ASF streams

2005-11-10  Julien MOUTTE  <julien@moutte.net>

	* flumotion/common/log.py:
	  log the correct end of the stack
	* flumotion/component/producers/firewire/firewire.xml:
	  add the dependency on the volume effect
	* flumotion/job/job.py:
	  add a fixme

2005-11-10  Michael Smith <msmith@fluendo.com>

	* flumotion/component/producers/videotest/videotest.xml:
	  Don't have 'wizard' as a dependency, since no such bundle exists.
	  Prevents a warning when using videotest admin interface.

2005-11-10  Andy Wingo  <wingo@pobox.com>

	* flumotion/twisted/defer.py
	(defer_generator.wrapper.with_saved_callbacks): whoops, call with
	the right args

	* flumotion/test/test_defer.py (TestDefer.testExceptionChain): New
	test, checks that chained errbacks work. Won't actually error if
	the traceback-printing bug is hit, but you will see output.

	* flumotion/twisted/defer.py
	(defer_generator.wrapper.with_saved_callbacks): New procedure,
	executes its arguments with the deferred's callbacks set to what
	they were in the beginning. A bit hacky but the rationale is in
	the comments.
	(defer_generator.wrapper.default_errback): Add errbacks from
	within with_saved_callbacks.

	* flumotion/admin/text/view.py: Revert debugging commit.

2005-11-10  Michael Smith <msmith@fluendo.com>

	* flumotion/component/feedcomponent09.py:
	  Return true from buffer probe callback; this avoids dropping crucial
	  caps buffers on the floor.

2005-11-10  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/package.py:
	  have a logCategory
	* flumotion/job/job.py:
	* flumotion/worker/worker.py:
	  add some debug
	* flumotion/component/producers/soundcard/soundcard.xml:
	  fix the volume effect

2005-11-10  Andy Wingo  <wingo@pobox.com>

	* flumotion/launch/main.py (main): Print feed ports for debugging
	porpoises.

2005-11-10  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/worker/worker.py:
	  Fix logging in jobs by correctly passing the environment

2005-11-09  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/bundleclient.py:
	  Fix loading of glade files and other bundled files

2005-11-09  Michael Smith <msmith@fluendo.com>

	* bin/Makefile.am:
	* configure.ac:
	* flumotion/admin/Makefile.am:
	* flumotion/admin/text/Makefile.am:
	* flumotion/admin/text/admin_text.py:
	* flumotion/admin/text/connection.py:
	* flumotion/admin/text/greeter.py:
	* flumotion/admin/text/main.py:
	* flumotion/admin/text/misc_curses.py:
	* flumotion/admin/text/view.py:
	* flumotion/component/base/Makefile.am:
	* flumotion/component/base/base.xml:
	* flumotion/component/consumers/disker/Makefile.am:
	* flumotion/component/consumers/disker/disker.xml:
	* flumotion/component/producers/videotest/Makefile.am:
	* flumotion/component/producers/videotest/videotest.xml:
	  Text Admin!
	  Thanks a lot to Zaheer for pushing this through.
	  Still need to clean up deferred error handling for this to be usable
	  without modifications, though.

2005-11-09  Andy Wingo  <wingo@pobox.com>

	* flumotion/worker/Makefile.am (flumotion_PYTHON): Remove job.py

	* configure.ac: Add job/Makefile

2005-11-09  Thomas Vander Wingo  <wingo@apestaart.com>

	* flumotion/job/job.py (JobMedium.remote_bootstrap): New remote
	method, to be called before remote_start.

	* flumotion/job/Makefile.am: 
	* flumotion/job/__init__.py: 
	* flumotion/job/job.py:
	* flumotion/job/main.py: New files, yay. job.py is what
	flumotion.worker.job.py was. main.py is the code for the
	flumotion-job main loop.

	* flumotion/worker/worker.py (WorkerMedium.remote_start): Don't
	actually load the modules, just fetch the bundles and their paths.
	Fix already-starting error detection.
	(Kid.__init__): New field, bundles, the paths that the kid should
	register.
	(JobProcessProtocol): New class, lets the kindergarten know when a
	process exits.
	(Kindergarten.play): New option, bundles. Don't actually fork,
	just call reactor.spawnProcess on flumotion-job. Fixes lots of
	bugs.
	(getSocketPath): Moved here from flumotion.worker.job. Should be
	removed at some point, whereby workers communicate with jobs over
	normal fd's.
	(WorkerBrain.__init__): Don't set a sigchild handler, spawnProcess
	does everything for us.
	(WorkerBrain.keycard): New field; passed to jobs when
	bootstrapping.
	(JobAvatar.attached): Call 'bootstrap' on the job before calling
	'start'; allows the kid to register the necessary package paths,
	and to receive credentials for logging into the manager.
	(JobHeaven.getKeycard, JobHeaven.getWorkerName): Nice new methods,
	retrieve properties from the worker brain.

	* flumotion/component/consumers/httpstreamer/http.xml: Add
	resources.py to the bundle.

	* flumotion/component/base/admin_gtk.py (BaseAdminGtkNode.render):
	Catch errors loading the glade file.

	* flumotion/component/converters/overlay/overlay.xml: Bundle up
	genimg.py, the png files, and the font.

	* flumotion/common/bundleclient.py (BundleLoader.getBundles):
	Change to return a list of (bundleName, bundlePath) tuples instead
	of (bundleName, bundleSum).
	(BundleLoader.loadModule, BundleLoader.getBundleByName) 
	(BundleLoader.getFile):
	* flumotion/admin/admin.py (AdminModel.getEntry): Adapt to
	getBundles change.

	* flumotion/twisted/defer.py
	(defer_generator.wrapper.default_errback.print_traceback): Print
	out what is printing this message.

	* flumotion/test/test_worker_worker.py (TestKid.testGetPid) 
	(TestKindergarten.testRemoveKidByPid): Adapt to worker.Kid()
	constructor change.

	* Makefile.am (PYCHECKER_WHITELIST): Add flumotion/job to the
	pychecker whitelist.

	* conf/workers/default.xml (feederports): Default to 20 free ports
	so that by default you can enable all 6 consumers.

	* bin/flumotion-job.in: New executable, run by the worker instead
	of having the worker fork.

	* configure.ac (AC_CONFIG_FILES):
	* bin/Makefile.am (bin_SCRIPTS): Add flumotion-job.

2005-11-08  Andy Wingo  <wingo@pobox.com>

	* flumotion/worker/job.py (run): Run reactor recursively.
	(JobMedium.shutdown): Instead of cleanly exiting, do os._exit(0).
	Temporary hack, partially reverts changeset 2412.

2005-11-08  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/feedcomponent09.py:
	  log first buffer's timestamp on tcpclientsrc to help
	  in debugging startup time

2005-11-08  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/gtk/client.py:
	  Implement restart component

2005-11-08  Andy Wingo  <wingo@pobox.com>

	* flumotion/common/debug.py (print_stack): New function, prints a
	backtrace with local variables.

	* flumotion/worker/job.py (JobClientFactory.login): Refactor a bit
	of the login code.
	
	* flumotion/worker/job.py: Remove unused gobject import.

	* flumotion/component/encoders/vorbis/vorbis08.py
	(Vorbis._start_feeders): No more notify-feed-ports.

	* flumotion/component/feedcomponent09.py (FeedComponent)
	(FeedComponent.link):
	* flumotion/component/feedcomponent08.py (FeedComponent)
	(FeedComponent.link): No more notify-feed-ports.

	* flumotion/component/feedcomponent.py
	(FeedComponentMedium.__init__.on_component_notify_feed_ports):
	Removed.
	(FeedComponentMedium.__init__): Don't connect to
	notify-feed-ports.
	(FeedComponentMedium.__init__.on_feed_ready): Pass the port we
	feed on, or None, instead of a boolean.
	(ParseLaunchComponent.do_start): Redoc.

	* flumotion/manager/component.py
	(ComponentAvatar.perspective_notifyFeedPorts)
	(ComponentAvatar.perspective_feedReady): Combine two-stage
	"notify-feed-ports then feed-ready" into a one-stage "feed-ready
	with port" call. Removes some nice bugs. notifyFeedPorts is no
	longer there.
	(ComponentAvatar.perspective_log): Remove log method. used to be
	used for sending all logging events to the manager, but that was
	deemed too expensive months ago. A new logging framework would be
	different anyway.
	(ComponentAvatar.setFeederReadiness): Roll into
	perspective_feedReady.

	* flumotion/component/consumers/disker/disker.py
	(Disker.link_setup.feeder_state_change_cb): Fix borken refactor.

2005-11-08  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/bundleclient.py:
	* flumotion/common/package.py:
	* flumotion/worker/worker.py:
	  Register package paths without rebuilding every possible module;
	  should both work and be fast enough

2005-11-07  Andy Wingo  <wingo@pobox.com>

	* flumotion/component/consumers/httpstreamer/http.py
	(MultifdSinkStreamer.pipe_template): Don't sync to timestamps in
	0.9.

	* flumotion/component/encoders/vorbis/vorbis08.py
	(Vorbis._start_feeders): Emit notify-feed-ports before going to
	playing -- prevents race conditions like the ones that were in
	feedcomponent08.py.

	* flumotion/manager/manager.py (Dispatcher.requestAvatar): Better
	debugging.

	* flumotion/component/component.py
	(ComponentClientFactory.gotDeferredLogin.alreadyLoggedInErrback):
	Punt on what the failure actually is...

	* flumotion/component/feedcomponent08.py (FeedComponent.link): Set
	to paused, notify ports, then play. Fixes race condition between
	component and manager.

	* flumotion/component/consumers/disker/disker.py
	(Disker.pipe_template): Use a version-dependent pipeline.

	* flumotion/component/feedcomponent09.py
	(FeedComponent.bus_watch_func): Move hacky feeder->feed munge
	here...

	* flumotion/component/feedcomponent.py
	(FeedComponentMedium.__init__.on_feed_ready): ... from here. Fixes
	0.8 feed-ready notification.

	* flumotion/component/feedcomponent08.py
	(FeedComponent.feeder_state_change_cb): Remove out of date
	comment.

2005-11-07  Julien MOUTTE  <julien@moutte.net>

	* doc/man/flumotion-worker.1: Add example for feederports.

2005-11-07  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/worker/worker.py:
	  remove loading bundles for component until we fix CPU use

2005-11-07  Andy Wingo  <wingo@pobox.com>

	* flumotion/component/consumers/disker/disker.py: Make it work
	with 0.9.

	* flumotion/common/boot.py.in (init_gst): Fix version check.
	(init_gst): Move the pygst_dir up to the front.

	* flumotion/manager/component.py
	(ComponentAvatar._mindGetStateCallback): debugging.
	(ComponentAvatar.perspective_notifyFeedPorts): Doc the argument
	type. Actually implement.
	(ComponentAvatar.start): Ignore the return value of calling start
	on the component, rather choosing to wait for the notifyfeedports.

	* flumotion/component/feedcomponent.py
	(FeedComponentMedium.__init__.on_feed_ready)
	(FeedComponentMedium.__init__.on_component_notify_feed_ports):
	Hacks to make sure we callRemote with the right feeder names. The
	feeder names *really* need to be canonicalized at some point
	(feeder:foo:default vs foo:default vs default).
	(ParseLaunchComponent.do_start): Document obsolete return value.

	* flumotion/component/component.py
	(ComponentClientFactory.__init__): Clean some code that checks for
	obsolete conditions.

	* flumotion/component/feedcomponent09.py (FeedComponent.link):
	Pause the pipeline, notify the feed ports, and then set the
	pipeline to playing. Should avoid race conditions with the ports
	being ready.
	(FeedComponent.bus_watch_func): Fix some feeder name checks.

	* flumotion/common/gstreamer.py (verbose_deep_notify_cb): Don't do
	a g_idle_add so as to avoid bug #320886.

2005-11-03  Andy Wingo  <wingo@pobox.com>

	* flumotion/component/component.py (BaseComponent): No more 'log'
	signal. Nothing was emitting it.
	(BaseComponentMedium.__init__): Don't try to connect to
	component's log signal.

	* flumotion/worker/job.py (JobMedium._enable_core_dumps): Fix some
	log typos.
	(JobMedium.threads_init): Removed, obsolete.
	(run): Reorganize try/except blocks.

	* flumotion/worker/job.py (run): Add some docs.

	* flumotion/worker/worker.py (JobAvatar.attached): Turned into a
	defer generator method. Folded in _cb_afterInitial; no need to
	call 'initial' on the job medium, as the options dict has all of
	the necessary information.

	* flumotion/worker/job.py (JobMedium.__init__): Set manager host,
	port, and transport directly from the options dictionary.
	(JobMedium.remote_initial): No need for this any more.

	* flumotion/worker/worker.py (WorkerBrain.deferredStartCreate):
	Throw ComponentAlreadyStartingError if appropriate instead of
	returning None.

	* flumotion/common/errors.py (ComponentAlreadyStartingError): New
	error, thrown when worker told to start a component but it's
	already starting.

	* flumotion/worker/worker.py (WorkerBrain._SIGTERMHandler): Don't
	set reactor.killed, the old sigterm handler will call
	reactor.stop() which will trigger .killed to be set.
	
	* flumotion/worker/worker.py (WorkerMedium.remote_start): Comment
	a bit.

	* flumotion/worker/main.py (main): Don't set reactor.killed,
	that's handled by flumotion.twisted.compat.install_reactor().

2005-11-03  Thomas Vander Stichele  <thomas at apestaart dot org>

	* conf/managers/default/flows/ogg-test-theora.xml:
	  update for component rename
	* flumotion/component/producers/audiotest/audiotest.py:
	* flumotion/component/producers/videotest/videotest.py:
	  for 0.8, make sure these GStreamer sources sync to the clock,
	  so they don't flood the CPU.

2005-11-02  Andy Wingo  <wingo@pobox.com>

	* flumotion/common/log.py (scrubFilename): Whoops, pychecker
	caught a bug.

	* flumotion/worker/worker.py (WorkerMedium.remote_start): Turned
	into a defer generator method. Do a callLater right before forking
	so that the stack won't have any reads in progress -- because
	delayed calls are part of IReactorTime and read/writes are part of
	IReactorFDSet, they are guaranteed(tm) not to interact. Fixes lots
	of nastiness.

	* flumotion/common/debug.py (trace_start): Add ignore_files_re and
	write optional arguments.

	* flumotion/component/component.py
	(ComponentClientFactory.gotDeferredLogin.remoteDisconnected):
	* flumotion/worker/worker.py
	(WorkerClientFactory.gotDeferredLogin.remoteDisconnected): Know
	when to hold em, know when to fold em.

	* flumotion/twisted/compat.py (install_reactor): Add an instance
	variable, 'killed', that indicates whether a reactor is being
	killed or not. Allows reconnecting factories to know when not to
	warn.

	* flumotion/worker/job.py (run): Only profile if the FLU_PROFILE
	environment variable was set.

	* flumotion/common/log.py (_handle.getFileLine): Don't extract the
	whole stack, just work back frame by frame getting the information
	we need.

2005-11-02  Andy Wingo  <wingo@pobox.com>

	* flumotion/test/test_log.py: Update test suite.

	* flumotion/common/Makefile.am (flumotion_PYTHON): 
	* flumotion/common/debug.py: New module, exports trace_start() and
	trace_stop() procedures.

	* flumotion/common/log.py (ERROR, WARN, INFO, DEBUG, LOG): New
	integer values exported by the module.
	(_levels, getLevel): Removed; levels are ints and not strings.
	(getLevelName): New proc. Does type-checking on its input. Should
	really have some nice decorators to check types.
	(registerCategory): Adapted for the change to levels.
	(_canShortcutLogging): New proc, returns True if no logging will
	be performed for this category at this level.
	(_handle): Make scrubFileName and getFileLine internal. Adapt to
	level changes. Don't call getFileLine if not necessary.
	(Loggable.error, Loggable.warning, Loggable.info, Loggable.debug) 
	(Loggable.log): if _canShortcutLogging(), avoid doing expensive
	calculations.
	(FluLogObserver.emit): Adapt to level changes.
	(stderrHandler): Same.

2005-10-31  Andy Wingo  <wingo@pobox.com>

	* flumotion/component/feedcomponent.py
	(FeedComponentMedium.__init__.on_feed_ready): The remote method is
	feedReady, not notifyFeedPorts.

	* flumotion/component/feedcomponent09.py
	(FeedComponent.bus_watch_func): Set to happy only from the global
	pipeline state change message. Log a little less.

	* flumotion/worker/job.py (run): Profile the job if profiling is
	available. Don't start another reactor; rely on worker.py
	unwinding cleanly.
	(JobMedium.shutdown): Don't os._exit(0), allow twisted to clean
	itself properly.

	* flumotion/worker/worker.py (WorkerMedium.remote_start): Rework
	to receive return values both from the parent and child process.
	Now uses defer generators.
	(Kindergarten.play): Return the pid or None like os.fork().

	* flumotion/twisted/compat.py (install_reactor): Don't spawn
	threads to resolve names with twisted 2.0.

2005-10-27  Thomas Vander Stichele  <thomas (at) apestaart (dot) org>

	* flumotion/twisted/gtk2reactor.py:
	  replace _disconnectSelectable with code from 1.3

2005-10-27  Andy Wingo  <wingo@pobox.com>

	* flumotion/launch/main.py (ComponentWrapper.__init__): Work with
	the 'source'-is-always-a-list change.

	* flumotion/component/producers/firewire/firewire.py
	(createComponent): Throw a leaky queue after dv1394src, so that if
	the sink starts blocking the buffers still have somewhere to go.
	Otherwise the kernel starts complaining about every dropped iso
	packet, overloading the system.

	* flumotion/component/converters/overlay/overlay.py
	(Overlay.start): Don't rely on show_text or text being there.

	* flumotion/component/converters/overlay/overlay.xml: feed no
	longer a required property. width and height are, for now --
	although really we should just get this info from the incoming
	caps.

2005-10-26  Andy Wingo  <wingo@pobox.com>

	* flumotion/common/config.py (FlumotionConfigXML._parseComponent):
	Parse feeds and sources separately, in preparation for making them
	not overlap with properties. config['source'] will now always be a
	list.
	(FlumotionConfigXML._parseFeeds) 
	(FlumotionConfigXML._parseSources): New functions dude.

	* flumotion/component/consumers/disker/disker.py
	(Disker.__init__):
	* flumotion/component/consumers/httpstreamer/http.py
	(MultifdSinkStreamer.__init__):
	* flumotion/component/consumers/preview/preview.py
	(Preview.__init__):
	* flumotion/component/encoders/jpeg/jpeg.py (createComponent): 
	* flumotion/component/encoders/mulaw/mulaw.py (createComponent): 
	* flumotion/component/encoders/smoke/smoke.py (createComponent): 
	* flumotion/component/encoders/speex/speex.py (createComponent): 
	* flumotion/component/encoders/theora/theora.py (createComponent): 
	* flumotion/component/encoders/vorbis/vorbis.py (createComponent): 
	* flumotion/component/converters/overlay/overlay.py
	(createComponent): Adapt to work with config['source'] always
	being a list.

	* flumotion/component/encoders/vorbis/vorbis08.py
	(createComponent): Remove unused function.

	* flumotion/component/producers/webcam/webcam.xml: feed is not a
	required property.

2005-10-25  Andy Wingo  <wingo@pobox.com>

	* flumotion/launch/main.py (main): Remove print.

	* flumotion/twisted/Makefile.am (flumotion_PYTHON): Don't install
	gstreactor.py...

	* flumotion/twisted/compat.py (install_reactor): Fix up to work
	properly on both twisted 1.3 and 2.0.

	* flumotion/twisted/gstreactor.py: Remove, it's not necessary any
	more.

	* flumotion/twisted/gtk2reactor.py: Backport from twisted 2.0.
	Works both with and without gtk.

	* flumotion/twisted/gstreactor.py (GstReactor.run) 
	(GstReactor.crash, GstReactor.__init__): Attempt to make this
	thing work with GStreamer 0.8 and 0.9.

	* flumotion/manager/main.py (main): 
	* flumotion/worker/main.py (main): Allow the environment to
	override debugging levels in config files. Remove default=None, as
	optparse already sets the default to None.

	* flumotion/component/feedcomponent09.py
	(FeedComponent._setup_feeders): Check to see if all feeders have
	ports assigned.

	* flumotion/launch/main.py: Rework to assign feeder ports to
	feeders that are unconnected, like firewire.

2005-10-21  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion.spec.in:
	  add some more commented-out config to the generated config files

2005-10-21  Andy Wingo  <wingo@pobox.com>

	* flumotion/component/producers/audiotest/audiotest.xml: Add a
	component entry.

2005-10-20  Andy Wingo  <wingo@pobox.com>

	* flumotion/component/encoders/vorbis/vorbis.xml: Add component
	entry.

	* flumotion/component/encoders/encoders.xml: Remove vorbis from
	here.

	* flumotion/launch/main.py (main): Setup the package path
	properly.

	* flumotion/launch/main.py (ComponentWrapper.__init__): If a
	source is not required, don't error if it's not there.
	(ComponentWrapper.__init__): Fix name error.

	* flumotion/component/producers/firewire/firewire.py
	(createComponent): Fix the default height.

	* flumotion/launch/main.py (main): More cleanups, feeder/eater
	verifications (with the goal being to get firewire to work)

	* flumotion/launch/main.py (main.mkfeedername): Verify that the
	link is from a valid feeder. If no feeder is spefified, take the
	first one in the list instead of 'default' (makes firewire work).

	* flumotion/common/registry.py (ComponentRegistry.dump): Save
	eaters and feeders to the registry. Ak.

	* flumotion/manager/Makefile.am: 
	* flumotion/common/Makefile.am: Enable TAGS.

	* configure.ac: 
	* flumotion/component/converters/Makefile.am: 
	* flumotion/component/converters/pipeline/Makefile.am: 
	* flumotion/component/converters/pipeline/__init__.py:
	* flumotion/component/converters/pipeline/pipeline.xml: 
	* flumotion/component/converters/pipeline/pipeline.py:
	* flumotion/component/producers/Makefile.am: 
	* flumotion/component/producers/pipeline/Makefile.am: 
	* flumotion/component/producers/pipeline/__init__.py:
	* flumotion/component/producers/pipeline/pipeline.xml: 
	* flumotion/component/producers/pipeline/pipeline.py: Add somehing
	like what was in flumotion.component.base as pipeline-producer and
	pipeline-converter. Neat for testing.

	* flumotion/test/test.xml: Update to use the pipeline-producer and
	pipeline-converter.

	* flumotion/test/test_manager_manager.py
	(TestVishnu.testConfigBeforeWorker): Skip for now. No idea what's
	going on, but I know the DAG is unused.

	* flumotion/component/producers/firewire/firewire.xml: Feed is not
	a necessary property AFAICT.

	* flumotion/component/producers/bttv/bttv.py: Don't import
	producer.

	* flumotion/component/component.xml: Remove converter.py and
	producer.py from here too. What is this file up to?

	* flumotion/component/base/base.xml: 
	* flumotion/component/base/Makefile.am (component_PYTHON):
	* flumotion/component/base/producer.py: 
	* flumotion/component/base/converter.py: Remove converter.py and
	producer.py, they were not used anywhere.

	* flumotion/component/producers/firewire/firewire.xml: I don't
	think the feed property is necessary. Removing it.

	* flumotion/component/consumers/preview/preview.py: Remove some
	unnecessary includes.

	* configure.ac:
	* flumotion/component/consumers/Makefile.am
	* flumotion/component/consumers/preview/__init__.py: 
	* flumotion/component/consumers/preview/Makefile.am: 
	* flumotion/component/consumers/preview/preview.py: 

	* flumotion/component/consumers/preview/preview.xml: New
	component, allows you to preview what's happening in a stream.
	Sortof. Mostly useful for flumotion-launch.
	
	* flumotion/launch/main.py: Support componentname.feeder/eater
	links like gst-launch does. Actually works now, but only with
	gstreamer 0.9 (0.8 deadlocks because it expects there to be
	different processes, whereas 0.9 has threads).

	* flumotion/common/registry.py (RegistryEntryEntry.getModuleName):
	New function.

	* flumotion/component/encoders/theora/theora.xml: Add a component
	entry.

	* flumotion/component/encoders/encoders.xml: Don't list theora
	here, it has its own xml. This xml file should probably go.

	* flumotion/component/muxers/muxers.xml: Add a component entry for
	ogg-muxer.

2005-10-19  Andy Wingo  <wingo@pobox.com>

	* flumotion/test/test_registry.py (TestComponentEntry.setUp): Fix
	test suite.

	* All xml files updated with eaters and feeders.

	* flumotion/launch/inspect.py (main): Print out eaters and
	feeders.

	* flumotion/common/registry.py (RegistryEntryComponent.__init__):
	No more default args (lists as default args lead to bugs), add
	args for eaters and feeders.
	(RegistryEntryComponent.getEaters) 
	(RegistryEntryComponent.getFeeders): New API.
	(RegistryParser._parseComponent, RegistryParser._parseEater) 
	(RegistryParser._parseFeeder): Parse <eater> and <feeder> entries
	in the registry.

2005-10-18  Andy Wingo  <wingo@pobox.com>

	* flumotion/common/Makefile.am (flumotion_PYTHON): Dist boot.py.

	* configure.ac: Make scripts executable from configure time.

	* bin/flumotion-launch.in: 
	* flumotion/launch/main.py: Something like gst-launch for
	components, as yet unfinished.

	* bin/flumotion-inspect.in:
	* flumotion/launch/inspect.py: New files implementing something
	like gst-inspect for components.

	* flumotion/manager/manager.py (Vishnu.__init__): Use
	ComponentRegistry.makeBundlerBasket() instead of rolling it
	ourselves.

	* flumotion/common/registry.py
	(ComponentRegistry.makeBundlerBasket): New method, takes a
	registry and returns a bundler basket populated by the bundles in
	the registry.

	* common/gendoc.py: Use flumotion.common.boot to init the right
	pygtk and gst-python.

	* flumotion/common/boot.py (init_gst): Better error.

	* flumotion/component/producers/firewire/firewire.py
	(createComponent): Conditionally create different pipeline for
	0.9. Re-enable volume effect for 0.8.

	* flumotion/component/consumers/httpstreamer/http.py
	(MultifdSinkStreamer.__init__): Pacify the pychecker.

2005-10-17  Andy Wingo  <wingo@pobox.com>

	* flumotion/component/converters/overlay/overlay.py
	(createComponent): Update for 0.9.

2005-10-13  Michael Smith <msmith@fluendo.com>

	* flumotion/component/consumers/httpstreamer/http.py:
	* flumotion/component/consumers/httpstreamer/resources.py:
	  Use burst_on_connect option from configuration, since we helpfully
	  allow setting it.
	  Fix logic for max fds.

2005-10-12  Andy Wingo  <wingo@pobox.com>

	* flumotion/component/feedcomponent09.py
	(FeedComponent.pipeline_stop): Whoops, fix C thinko dinko.

	* flumotion/component/producers/firewire/firewire.py
	(createComponent): Don't add volume for now. This is a fixme.

	* flumotion/component/producers/firewire/firewire.xml: Add bundle
	for firewire component.

	* flumotion/component/consumers/httpstreamer/resources.py
	(HTTPStreamingResource.maxAllowedClients): Fix syntax error.

	* flumotion/component/feedcomponent09.py
	(FeedComponent.pipeline_stop, FeedComponent.link): State API
	updates.

2005-10-07  Michael Smith <msmith@fluendo.com>

	* flumotion/component/consumers/httpstreamer/resources.py:
	  Clamp max clients (if set) to rlimit for open fds minus our
	  'reserve_fds'

2005-10-07  Andy Wingo  <wingo@pobox.com>

	* flumotion/component/encoders/vorbis/vorbis09.py
	(Vorbis.__init__.buffer_probe): s/filter-caps/caps/.

2005-10-05  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/Makefile.am:
	  make sure boot.py gets built

2005-09-30  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/feedcomponent.py:
	  fix on_feed_ready prototype that probably got broken during
	  the 08/09 merge.  weird.

2005-09-29  Andy Wingo  <wingo@pobox.com>

	* flumotion/worker/checks/video09.py (BusResolution.cleanup) 
	(do_element_check): Updates for bus API.

	* flumotion/component/producers/soundcard/soundcard.py
	(createComponent): Less needless fixation for the 0.9 code.

	* flumotion/component/feedcomponent09.py
	(FeedComponent.setup_pipeline, FeedComponent.cleanup): Updates for
	bus API.
	(FeedComponent.bus_watch_func): Don't emit nonexistent signal.

2005-09-28  Michael Smith <msmith@fluendo.com>

	* flumotion/admin/admin.py:
	* flumotion/admin/gtk/client.py:
	  Treat ConnectionFailed differently depending on whether we've ever
	  been connected before. This allows us sensible behaviour when
	  initially logging in, but restores auto-reconnect behaviour that I
	  broke.

2005-09-28  Andy Wingo  <wingo@pobox.com>

	* flumotion/component/producers/audiotest/audiotest.py: 
	* flumotion/component/producers/videotest/videotest.py
	(createComponent): Add is-live to the pipeline when using gst 0.9.

2005-09-27  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/encoders/Makefile.am:
	  fix disting
	* po/nl.po:
	* po/no.po:
	  update line numbers

2005-09-27  Andy Wingo  <wingo@pobox.com>

	* flumotion/worker/checks/video09.py (do_element_check): Update
	for api changes.

	* flumotion/component/producers/soundcard/soundcard.py
	(createComponent): Beginnings of 0.9 compat..

	* flumotion/component/producers/soundcard/soundcard.xml: Cleanups.

	* flumotion/component/feedcomponent09.py
	(FeedComponent.FEEDER_TMPL): tcpserversink sync=false, because the
	sources already sync to clocks.

	* flumotion/component/producers/audiotest/audiotest.py
	(createComponent): s/sync/is-live/.

2005-09-24  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/ui/fgtk.py:
	  further cleanup, get tick marks perfect

2005-09-23  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/producers/soundcard/soundcard.xml:
	  bundle up soundcard component
	* flumotion/ui/fgtk.py:
	  remove a bunch of code by using a table and loop

2005-09-22  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/errors.py:
	* flumotion/wizard/steps.py:
	* flumotion/worker/checks/video08.py:
	* flumotion/worker/checks/video09.py:
	  have GStreamerError be a generic, string-taking error,
	  while GstError is an exception wrapper around gst.Error

2005-09-22  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/twisted/defer.py:
	* flumotion/worker/checks/video08.py:
	* flumotion/worker/checks/video09.py:
	  factor out a Resolution class and use it in the
	  checks

2005-09-22  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/errors.py:
	  add a state change gst error
	* flumotion/common/log.py:
	  log warnings that don't have a traceback

2005-09-22  Andy Wingo  <wingo@pobox.com>

	* tests/vorbis.py (buffer_probe): Use the right format, poll for
	the right thingy. Vorbis encoding works!

	* flumotion/component/encoders/vorbis/vorbis09.py
	(Vorbis.__init__.buffer_probe): Use the right format.

2005-09-21  Andy Wingo  <wingo@pobox.com>

	* flumotion/test/test_common_gstreamer.py (DeepNotify): Fix up for
	0.9.
	
	* flumotion/test/test_common_gstreamer.py (BinFindSink) 
	* flumotion/common/gstreamer.py (bin_find_sinks): Removed, it
	wasn't used, and also isn't yet supported in 0.9.

	* flumotion/component/producers/jukebox/Makefile.am
	(component_PYTHON):
	* flumotion/component/encoders/Makefile.am (vorbis_PYTHON): Fix up
	makefiles.

	* flumotion/component/producers/jukebox/jukebox08.py: Moved here
	from jukebox.py, so that it only gets checked for gstreamer 0.8.

	* flumotion/component/producers/jukebox/jukebox.xml: Updated to
	use new entry point; hopefully works.

	* flumotion/wizard/steps.py (Vorbis.worker_changed): Check the
	right element.

	* flumotion/admin/gtk/client.py
	(Window.admin_connection_failed_later): Use correct parent
	argument.

	* flumotion/component/encoders/vorbis/vorbis.xml: Add files.

	* flumotion/component/encoders/vorbis/vorbis09.py: New file,
	simple and nonfunctional.

	* flumotion/component/encoders/vorbis/vorbis.py: Selectively
	import the 0.8 or 0.9 versions of the Vorbis class.

	* tests/vorbis.py: New test case, not part of the test suite. But
	fails nonetheless.

	* flumotion/component/encoders/vorbis/vorbis08.py: The guts of the
	0.8 vorbis encoder are here.

	* flumotion/component/encoders/vorbis/vorbisutils.py
	(get_max_sample_rate): Pulled out into its own file.

	* flumotion/component/feedcomponent09.py
	(FeedComponent.setup_pipeline): Fix for new bus API.

2005-09-19  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/twisted/gtk2reactor.py:
	  work with twisted 1.3 and 2.0

2005-09-19  Andy Wingo  <wingo@pobox.com>

	* flumotion/component/feedcomponent09.py (FeedComponent.stop):
	Don't cleanup without a pipeline.

	* flumotion/common/compat.py (type_register): Attempt the fourth
	at getting this working properly.

	* flumotion/component/feedcomponent09.py (FeedComponent): Port to
	GStreamer 0.9. Mostly copied over from the branch.

	* flumotion/component/component.xml: Add the versioned
	feedcomponent files.

	* flumotion/component/consumers/httpstreamer/http.py
	(MultifdSinkStreamer.link_setup.sink_state_change_cb): Only wait
	for the state change in 0.8.

	* flumotion/component/muxers/multipart.py (createComponent): 
	* flumotion/component/muxers/ogg.py (createComponent): No {}
	threads in 0.9.

	* flumotion/component/component.py (BaseComponent.updateMood):
	Removed, unnecessary as a base class method. Subclasses should
	just use setMood, which can't change a component out of sad
	anyway.

	* flumotion/component/feedcomponent09.py (FeedComponent.__init__):
	* flumotion/component/feedcomponent08.py (FeedComponent.__init__):
	State has no 'eaterNames' key anymore.

	* flumotion/common/compat.py (type_register): Indentation and
	style fixes. Also, it works now.

	* flumotion/component/feedcomponent09.py (FeedComponent): New
	file, FeedComponent ported over from the 0.9 branch. Not
	completely ported yet.

	* flumotion/component/Makefile.am (component_PYTHON): Add new
	files.

	* flumotion/component/feedcomponent.py: Import the appropriate
	version of FeedComponent.

	* flumotion/component/feedcomponent08.py (FeedComponent): Moved
	here from feedcomponent.py.

	* flumotion/component/feedcomponent.py
	(FeedComponentMedium.__init__): Inline the handlers listening to
	signals from the component. Don't futz the component's mood or
	state, assume that the component handles that.
	(FeedComponent._pipeline_error_cb): Set mood to sad, add message
	to component state.

2005-09-16  Andy Wingo  <wingo@pobox.com>

	* Changelog updated. Heh heh heh heh heh heh.

	* flumotion/common/gstreamer.py (get_plugin_version): Ignore
	module attribute references in this file. Requires latest
	pychecker CVS plus a patch in their tracker. Make check passes!

	* flumotion/common/boot.py.in (boot): Commit the non-generated
	file, doh....

	* misc/pycheckerhelp.py: Use boot.py.

	* Makefile.am (PYCHECKER_BLACKLIST): Ignore spyglass.py, until
	it's ported at least.

	* flumotion/common/gstreamer.py (get_plugin_version): Work in
	either gst version.

	* common/pychecker.mk: Fix up to separate gst-independent tests,
	gst 0.8 tests, and gst 0.9 tests.

	* flumotion/common/boot.py (init_gst, init_gobject): Make public.

	* flumotion/worker/checks/video.py: Um....

	* flumotion/worker/checks/video09.py: No need to import re

	* misc/pycheckerrc: Emacs friendly

	* common/pychecker.mk: Cleanup, preparation for some haxoring.

2005-09-16  Michael Smith <msmith@fluendo.com>

	* flumotion/common/compat.py:
	  Get pygtk version from gobject, not gtk, to avoid importing gtk
	  (which could fail if there's no X server). Thanks to Zaheer for the
	  fix.

2005-09-15  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/log.py:
	  add another helper.  relegate twisted logging to level 5 by
	  default, I got tired of the spew.  But error tracebacks are
	  still at level 4
	* pkgconfig/flumotion-uninstalled.pc.in:
	* pkgconfig/flumotion.pc.in:
	  fix for now to use an existing symbol, but hm.  needs work.

2005-09-15  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/log.py:
	  add some nice helper methods to log failures.  Add a cool
	  simple errback handler to objects, I feel fuzzy now.

2005-09-12  Michael Smith <msmith@fluendo.com>

	* flumotion/admin/admin.py:
	* flumotion/admin/gtk/client.py:
	* flumotion/admin/gtk/connections.py:
	* flumotion/admin/gtk/dialogs.py:
	* flumotion/admin/gtk/parts.py:
	* flumotion/admin/gtk/spyglass.py:
	* flumotion/admin/gtk/videotest.py:
	* flumotion/admin/gtk/wizard.py:
	* flumotion/common/compat.py:
	* flumotion/component/component.py:
	* flumotion/component/consumers/disker/disker.py:
	* flumotion/component/consumers/httpstreamer/http.py:
	* flumotion/component/feedcomponent.py:
	* flumotion/test/test_common_pygobject.py:
	* flumotion/tester/httpclient.py:
	* flumotion/ui/fgtk.py:
	* flumotion/ui/glade.py:
	* flumotion/wizard/sidebar.py:
	* flumotion/wizard/wizard.py:
	* flumotion/wizard/worker.py:
	  Another attempt to get rid of loud gobject deprecation warnings by 
	  adding a compat package and checking pygtk version in there. 
	  Call through this for everything that does gobject.type_register().
	  Doesn't work properly, since our __gsignals__ attribute is strangely
	  missing.

2005-09-13  Andy Wingo  <wingo@pobox.com>

	* flumotion/wizard/steps.py (Overlay.get_state): Tell the saver
	whether or not we can overlay.
	(Overlay.worker_changed_08): Moved from worker_changed.
	(Overlay.worker_changed_09): Copied over from the 0.9 branch.
	Doesn't actually require the elements, which is nice considering
	pngdec and videomixer are not ported.
	(Overlay.worker_changed): Voodoo.

	* flumotion/wizard/save.py (WizardSaver.handleVideo): Only
	configure an overlay if the checks passed.

	* flumotion/worker/checks/video.py: Voodoo to include the right
	version of the worker checks.

	* flumotion/worker/checks/video09.py: Copied from the gstreamer
	0.9 branch.
	* flumotion/worker/checks/video08.py: Copied from the old
	video.py.

	* flumotion/worker/checks/package.xml: 
	* flumotion/worker/checks/Makefile.am (flumotion_PYTHON): Add new
	files.

	* bin/flumotion-admin.in: Convert to the new boot code.

	* flumotion/common/boot.py.in (_init_gst): Add some helpful
	debugging.

	* flumotion/common/gstreamer.py (verbose_deep_notify_cb): Marshal
	all logging to the main thread.

	* configure.ac: Don't try to import gtk.glade if DISPLAY is unset.

2005-09-12  Andy Wingo  <wingo@pobox.com>

	* flumotion/twisted/compat.py (install_reactor): Take an optional
	argument gtk, which if True will try to load the gtk2reactor
	instead of the normal glib/gst ones.

	* configure.ac: s/REQ_0X/0X_REQ/, subst variables properly.

	* flumotion/common/boot.py.in: New file, factors out the
	initialization code that was in the manager and worker scripts.
	Enhanced to choose pygst version at runtime based on the
	FLU_GST_VERSION environment variable.

	* bin/flumotion-worker.in: 
	* bin/flumotion-manager.in: Use flumotion.common.boot.

	* flumotion/common/Makefile.am (nodist_flumotion_PYTHON) 
	(EXTRA_DIST): Makefile rules so as to install boot.py but ship
	only boot.py.in.

	* configure.ac: Some logic fixes and robusticization for checking
	for the different versions of gst-python.

	* common/as-python.m4: Print more useful messages if importing the
	module or the checks cause a random assertion to be raised.

	* configure.ac: Use AS_LIBTOOL_TAGS to avoid notices about
	fortran.

	* common/Makefile.am (EXTRA_DIST): 
	* common/as-libtool-tags.m4: Slurp from GStreamer.

2005-09-09  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion.spec.in:
	  add some commented out config params for reference
	* flumotion/common/common.py:
	* flumotion/common/medium.py:
	* flumotion/test/Makefile.am:
	* flumotion/test/common.py:
	* flumotion/test/testclasses.py:
	* flumotion/test/test_common_componentui.py:
	* flumotion/test/test_flavors.py:
	* flumotion/test/test_keycards.py:
	  break out our test classes to a separate module
	  so we can avoid having to import reactor this early

2005-09-08  Andy Wingo  <wingo@pobox.com>

	* bin/flumotion.in:
	* bin/flumotion-worker.in: 
	* bin/flumotion-manager.in: Hard-code to use the 0.8 values
	detected in the configure script.

	* configure.ac: Check for both 0.8 and 0.9 versions of GStreamer
	and gst-python. Bling.

	* flumotion/component/feedcomponent.py
	(FeedComponent::feed-ready): Changed from feed-state-changed, now
	just emits a boolean as to whether the feed is ready or not.
	(FeedComponent.feeder_state_change_cb): Emit feed-ready as
	appropriate. Don't set the component mood, it already did that
	itself.

	* flumotion/manager/component.py: Don't import gstreamer. Woot!
	(ComponentAvatar): Gone are _gstState, _gstOldState, dogs.
	(ComponentAvatar.setFeederReadiness): Renamed from
	checkFeederReadiness to ACT. Active functions. No more passivity.
	(ComponentAvatar.start.startCallback): Api update.
	(ComponentAvatar.perspective_feedReady): Changed from
	feedStateChange. Api update.

	* flumotion/component/feedcomponent.py
	(ParseLaunchComponent.do_start): Changed from start, don't chain
	up.

	* flumotion/component/component.py (BaseComponent.start): Made not
	a vmethod. Subclasses should override do_start.
	(BaseComponent.do_start): Default implementation.
	(BaseComponent.setMood): Fix typos.

	* flumotion/component/component.py (BaseComponent.setMood): Don't
	let setMood work if we're in sad -- you have to restart to get out
	of sad.

	* tests/checks.py:
	* tests/debugslider.py: New files, ported over from the 0.9
	branch. Check the checker check check check. Is this thing on?

	* flumotion/component/feedcomponent.py
	(FeedComponentMedium.remote_getState): Don't set
	state['elementNames'], it's not necessary.
	(FeedComponent.get_element_names): Removed, not used.
	(FeedComponentMedium.remote_play) 
	(FeedComponentMedium.remote_pause): Removed, not used.

	* flumotion/component/producers/webcam/webcam.py
	(createComponent): Add a colorspace to make ppc happy for rgb
	formats.

	* flumotion/wizard/steps.py: Callers of check_elements updated.

	* flumotion/wizard/wizard.py (Wizard.check_elements): Changed to
	just return a deferred with the missing elements, not to post
	errors.
	(Wizard.require_elements): This is what old callers of
	check_elements want to call.

	* flumotion/test/test_common_package.py (TestPackagePath.setUp):
	Initialize _assertions properly.

	* common/as-python.m4 (AS_PYTHON_IMPORT): Take an optional fourth
	argument, PREAMBLE, to do e.g. pygst.require(). Take an optional
	fifth argument, POSTAMBLE, to run code after the import.

2005-09-08  Andy Wingo  <wingo@pobox.com>

	* Makefile.am (AUTOMAKE_OPTIONS): Reorder options so as to give
	the user a nicer error.

2005-09-07  Michael Smith <msmith@fluendo.com>

	* flumotion/admin/gtk/client.py:
	  Make admin_connection_failed_cb take the correct number of
	  arguments. Fixes some remaining parts of bug 273.

2005-09-07  Michael Smith <msmith@fluendo.com>

	* flumotion/admin/admin.py:
	  Handle ConnectionRefusedError when attempting admin login, 
	  fixes bug 266.

2005-09-06  Michael Smith <msmith@fluendo.com>

	* flumotion/worker/worker.py:
	  When dumping a core, print out os.getcwd(), so we can tell users
	  where to find core dumps when they send us logs.

2005-08-29  Michael Smith <msmith@fluendo.com>

	* flumotion/common/common.py:
	  Look for LANGUAGE env var before checking LANG, makes translations
	  work on my ubuntu system.

2005-08-26  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/package.py:
	  reverse order of fixing up so we go from submodules to parent
	  packages

2005-08-26  Thomas Vander Stichele  <thomas at apestaart dot org>

	* common/epydoc.mk:
	  don't need PYGTK in there - it messes up our path and throws in
	  gst from installed packages

2005-08-17  Thomas Vander Stichele  <thomas at apestaart dot org>

	* common/trial.mk:
	  use PIPESTATUS so we can run, output to terminal, output to file,
	  and get exitstatus all at once ! I love the internet.
	* common/Makefile.am:
	* common/epydoc.mk:
	* common/gendoc.py:
	  extract doc generation stuff into something we can use from projects
	* doc/reference/Makefile.am:
	  use it

2005-08-11  Thomas Vander Stichele  <thomas at apestaart dot org>

	* tests/ComponentsView.py:
	  make test work again

2005-08-11  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/base/base.xml:
	* flumotion/component/component.xml:
	  put converter and producer base compnents in bundles

2005-08-10  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/encoders/vorbis/vorbis.py:
	  style fixes
	* configure.ac:
	* flumotion/component/component.py:
	* flumotion/component/feedcomponent.py:
	* flumotion/manager/component.py:
	  some debugging fixes
	  make component be sleeping when it logs out
	* flumotion/component/producers/jukebox/Makefile.am:
	* flumotion/component/producers/jukebox/__init__.py:
	* flumotion/component/producers/jukebox/jukebox.py:
	* flumotion/component/producers/jukebox/jukebox.xml:
	  a new audio jukebox component, using gst-python > 0.8.2
	  and the extend module

2005-08-10  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/feedcomponent.py:
	  push FEEDER and EATER templates down to FeedComponent
	* flumotion/component/encoders/vorbis/vorbis.py:
	  use FeedComponent's templates, don't create tcp stuff on our own
	* flumotion/test/test_component.py:
	  fix tests for new way of handling templates
	* flumotion/manager/manager.py:
	  make a component SAD if it didn't start up correctly

2005-08-08  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/test/test_component.py:
	  remove accidental commit of part of [2281]

2005-08-08  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/test/Makefile.am:
	  dist parts of the test dir so other projects can build on it

2005-08-03  Michael Smith <msmith@fluendo.com>

	* flumotion/component/converters/overlay/genimg.py:
	  Don't import PIL at top-level, instead defer this until we actually
	  run the generate_overlay() function. Avoids crash in theoraenc due
	  to clashing symbols, since with this we never dlopen() the clashing
	  libraries in the same process.

2005-08-01  Michael Smith <msmith@fluendo.com>

	* flumotion/component/base/admin_gtk.py:
	  Use errors.NoBundleError rather than BundleError. This means we
	  catch the exception here, so it's non-fatal.

2005-07-31  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/wizard/steps.py:
	* flumotion/wizard/message.py:
	  translate more
	* flumotion/worker/checks/video.py:
	  mark for translation without translating
	* po/POTFILES.in:
	* po/nl.po:
	* po/no.po:
	  translation updates

2005-07-31  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/base/admin_gtk.py:
	  set up translations for BaseAdminGtk in setup()

2005-07-30  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/bundleclient.py:
	  add some more logging, there's one corner case where
	  __path__ seems to be cleared and it's not clear to me if it's a bug
	  reverse order of registering package path from lowest dep to
	  highest
	* flumotion/common/common.py:
	  add a gettexter method that returns a _ callable for a domain
	* flumotion/admin/admin.py:
	* flumotion/common/package.py:
	* flumotion/component/base/admin_gtk.py:
	  load glade file automatically if glade_file is set
	  add a haveWidgetTree method to be subclassed
	  have render() load the gladefile on its own
	* flumotion/component/consumers/httpstreamer/admin_gtk.py:
	  remove render, implement haveWidgetTree

2005-07-30  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/gtk/client.py:
	  go back to using a dict since twisted.python.util.OrderedDict
	  exists
	* flumotion/component/base/admin_gtk.py:
	  make nodes a public member, getNodes an accessor, and use
	  OrderedDict
	* flumotion/component/producers/videotest/admin_gtk.py:
	  give title and use .nodes
	* flumotion/component/consumers/httpstreamer/admin_gtk.py:
	* po/POTFILES.in:
	* po/nl.po:
	* po/no.po:
	  translate some more

2005-07-30  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/gtk/client.py:
	* flumotion/component/base/admin_gtk.py:
	  change getNodes to need to return a list instead of a dict
	  so the order is defined by the component, and not chance
	  add an on-the-fly conversion from dict to list so stuff
	  keeps working until things get fixed up

2005-07-30  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/admin.py:
	  use bundleclient instead of unbundler
	* flumotion/admin/gtk/client.py:
	  add a debug to show that the admin really is handling NoBundleError
	* flumotion/common/bundleclient.py:
	  make getBundle also registerPackagePath
	  add getFile method
	* flumotion/component/base/admin_gtk.py:
	  use bundleLoader
	* flumotion/component/consumers/httpstreamer/admin_gtk.py:
	  now that we use deferreds to get glade files, stats can arrive
	  before the widget tree is loaded; so save them temporarily
	* flumotion/worker/worker.py:
	  remove bundleloader

2005-07-30  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/bundleclient.py:
	* flumotion/common/medium.py:
	* flumotion/worker/worker.py:
	  clean up bundleclient code further

2005-07-29  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/consumers/httpstreamer/admin_gtk.py:
	* flumotion/component/consumers/httpstreamer/http.py:
	  localize display of clients peak time

2005-07-29  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/producers/videotest/admin_gtk.py:
	* flumotion/component/producers/videotest/videotest.xml:
	  fix video test by putting wizard enums in a bundle
	* flumotion/wizard/enums.py:
	* po/POTFILES.in:
	* po/nl.po:
	* po/no.po:
	  add more translation

2005-07-29  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/gtk/parts.py:
	* po/POTFILES.in:
	* po/nl.po:
	  more translation

2005-07-29  Thomas Vander Stichele  <thomas at apestaart dot org>

	* common/gen-locale-xml.py:
	* common/locale.mk:
	* flumotion/configure/installed.py.in:
	* flumotion/configure/uninstalled.py.in:
	* flumotion/admin/gtk/main.py:
	  change so that we use localedatadir instead of localedir
	* flumotion/common/bundleclient.py:
	  import os again, it's really needed
	* flumotion/common/registry.py:
	  add "under" keyword for bundle to choose a dir to be found under
	  change getProjectBase to getBaseDir
	* flumotion/component/converters/overlay/overlay.xml:
	  create a bundle for the overlay
	* flumotion/manager/manager.py:
	  use getBaseDir
	  also try to fix registry if a file is missing from disk

2005-07-29  Thomas Vander Stichele  <thomas at apestaart dot org>

	* Makefile.am:
	* common/Makefile.am:
	* common/common.mk:
	* data/glade/Makefile.am:
	* flumotion.spec.in:
	* po/POTFILES.in:
	* po/nl.po:
	  various distcheck and spec fixes

2005-07-29  Thomas Vander Stichele  <thomas at apestaart dot org>

	* common/gen-locale-xml.py:
	  script to generate locale registry files
	* common/locale.mk:
	  Makefile rules for i18n
	* autogen.sh:
	  add autopoint
	* configure.ac:
	  add gettext
	* Makefile.am:
	  add po directory
	* flumotion/configure/installed.py.in:
	* flumotion/configure/uninstalled.py.in:
	  add localedir
	* flumotion/common/common.py:
	  add getLL()
	* flumotion/common/bundleclient.py:
	  create a getBundles() generator method, we still need to convert
	  parts to use bundleclient.py though
	* flumotion/admin/admin.py:
	  fix for new getBundleSums call
	* flumotion/admin/gtk/greeter.py:
	* flumotion/admin/gtk/client.py:
	  mark strings for translation
	* flumotion/admin/gtk/main.py:
	  set up translation domains
	* flumotion/component/base/admin_gtk.py:
	  add a domain property to load gload files under
	* flumotion/component/consumers/httpstreamer/http.glade:
	  fix for translation
	* flumotion/project/Makefile.am:
	  add project files
	* flumotion/manager/base.py:
	  make arguments consistent for perspective_getBundleSums
	* flumotion/manager/manager.py:
	  make sure we only try rebuilding registry once on errors
	* po/Makevars:
	* po/LINGUAS:
	* po/POTFILES.in:
	* po/nl.po:
	  add translation files and a dutch translation

2005-07-29  Thomas Vander Stichele  <thomas at apestaart dot org>

	* data/glade/open-connection.glade:
	* data/glade/videotest.glade:
	* data/glade/wizard.glade:
	* data/glade/wizard_audiotest.glade:
	* data/glade/wizard_disk.glade:
	* data/glade/wizard_encoding.glade:
	* data/glade/wizard_http.glade:
	* data/glade/wizard_jpeg.glade:
	* data/glade/wizard_license.glade:
	* data/glade/wizard_overlay.glade:
	* data/glade/wizard_overview.glade:
	* data/glade/wizard_smoke.glade:
	* data/glade/wizard_soundcard.glade:
	* data/glade/wizard_testsource.glade:
	* data/glade/wizard_tvcard.glade:
	* data/glade/wizard_webcam.glade:
	  preparations for translation

2005-07-27  Thomas Vander Stichele  <thomas at apestaart dot org>

	* Makefile.am:
	* common/common.mk:
	  rearrange coverage stuff so we can use it in other parts
	* flumotion/component/base/admin_gtk.py:
	* flumotion/test/gtkunit.py:
	  add a class to subclass from for gtk unit tests

2005-07-27  Thomas Vander Stichele  <thomas at apestaart dot org>

	* common/Makefile.am:
	* common/trial.mk:
	* flumotion/test/Makefile.am:
	  extract the trial stuff in an .mk file so we can share it

2005-07-27  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/bundleclient.py:
	* flumotion/common/registry.py:
	* flumotion/component/encoders/Makefile.am:
	* flumotion/component/encoders/jpeg/jpeg.xml:
	* flumotion/component/encoders/mulaw/mulaw.xml:
	* flumotion/component/encoders/smoke/smoke.xml:
	* flumotion/component/encoders/speex/speex.xml:
	* flumotion/component/encoders/theora/theora.xml:
	* flumotion/component/encoders/vorbis/vorbis.xml:
	* flumotion/component/muxers/muxers.xml:
	* flumotion/manager/manager.py:
	* flumotion/worker/worker.py:
	  and now all components are run from bundles !
	  which turned up the fact that we didn't bundle all our components.
	  So if some components don't work, let me know so I can bundle them.

2005-07-26  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/encoders/Makefile.am:
	* flumotion/component/encoders/encoders.xml:
	* flumotion/component/encoders/jpeg.py:
	* flumotion/component/encoders/mulaw.py:
	* flumotion/component/encoders/smoke.py:
	* flumotion/component/encoders/speex.py:
	* flumotion/component/encoders/theora.py:
	* flumotion/component/encoders/vorbis.py:
	  move encoders to their own subdir before we add admin_gtk's

2005-07-26  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/manager/worker.py:
	* flumotion/test/test_manager_manager.py:
	* flumotion/test/test_worker_worker.py:
	* flumotion/worker/job.py:
	* flumotion/worker/worker.py:
	  el workero no necesita un registro, oye !
	  fixes #129

2005-07-26  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/manager/manager.py:
	* flumotion/worker/job.py:
	  work towards not needing the registry in the worker by moving
	  up the registry necessity in the API callchain

2005-07-26  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/registry.py:
	* flumotion/common/setup.py:
	  s/FLU_REGISTRY_PATH/FLU_PROJECT_PATH/g

2005-07-26  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	* flumotion/project/Makefile.am:
	* flumotion/project/__init__.py:
	* flumotion/project/project.py:
	* flumotion/Makefile.am:
	  adding a flumotion.project where add-on projects will put their
	  project files
	* flumotion/common/package.py:
	* flumotion/test/test_common_package.py:
	  create a new module for the packager and package registration
	* flumotion/test/test_common.py:
	* flumotion/common/common.py:
	  move code for package registering to new module
	  give UNIXAddress a localhost as host
	* flumotion/common/setup.py:
	  add a setupPackagePath method that parses the env var for
	  additional projects
	* flumotion/common/bundleclient.py:
	  use the new packager to register package paths
	* flumotion/common/config.py:
	  doc fixes
	* flumotion/common/registry.py:
	  add "project" attribute to <bundle> entries; add API for it
	  add "prefix" argument to API for directories
	  fixes to make sure registry only gets rebuilt when needed
	  add some whitespace to registry output
	* flumotion/admin/admin.py:
	  use new packager
	* flumotion/component/base/admin_gtk.py:
	  add getWidget(), and set widget tree on loading glade file
	* flumotion/manager/main.py:
	  give a list of projects loaded into flumotion in debug log
	* flumotion/manager/manager.py:
	  get bundles from correct project base
	* flumotion/test/test_registry.py:
	  add 'project' tags to test

2005-07-26  Thomas Vander Stichele  <thomas at apestaart dot org>

	* bin/flumotion-admin.in:
	  don't remove __path__ because it won't play nice with our
	  new package stuff
	* flumotion/common/medium.py:
	  rearrange a piece of code
	* flumotion/worker/job.py:
	  comment out a piece of code that doesn't seem to be used in
	  preparation of all workers executing jobs from bundles

2005-07-26  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	  back to trunk

=== release 0.1.9 ===

2005-07-25  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	  releasing 0.1.9, "Zahara"

2005-07-25  Thomas Vander Stichele  <thomas at apestaart dot org>

	* data/glade/authenticate.glade:
	  fix an assertion for grab_focus because the window was not
	  visible.  I'm pretty sure though that having grab_focus on the
	  auth combo box isn't actually useful; it's done when a) the widget
	  is not yet in a window and b) later on the focus is set to the
	  username.  But, like, whatever.

2005-07-25  Thomas Vander Stichele  <thomas at apestaart dot org>

	* data/glade/admin.glade:
	  change label for help_about back to gtk-about;
	  while it doesn't work with old GTK, it does the
	  right thing with recent GTK's

2005-07-23  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/test/test_common.py:
	  refactor tests a little

2005-07-22  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/test/Makefile.am:
	  don't use tee, since then a failing trial gets lost
	* flumotion/test/test_config.py:
	* flumotion/test/test_manager_manager.py:
	* flumotion/test/test_registry.py:
	  fix up for new getRegistry()/parse() behaviour
	* flumotion/test/test_parts.py:
	  get rid of a gtk warning

2005-07-22  Thomas Vander Stichele  <thomas at apestaart dot org>

	* bin/flumotion-manager.in:
	* bin/flumotion-worker.in:
	* flumotion/common/config.py:
	* flumotion/common/registry.py:
	* flumotion/manager/admin.py:
	* flumotion/manager/manager.py:
	* flumotion/worker/config.py:
	* flumotion/worker/job.py:
	  rework registry code so that
	  - internal API is marked as such
	  - for manager config files, initially only parts of the
	    .manager object are filled in that don't require the registry
	  This allows for registry parsing to be loggable and debuggable
	  since it now happens after setting the appropriate debug level.
	  I may be on crack.

2005-07-22  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/manager/manager.py:
	  error out when we couldn't find a file to add to a bundle

2005-07-22  Thomas Vander Stichele  <thomas at apestaart dot org>

	Patch by: Gergely Nagy

	* flumotion/admin/gtk/client.py:
	  fix #236: prompt when possibly overwriting exported config

2005-07-22  Thomas Vander Stichele  <thomas at apestaart dot org>

	* data/glade/wizard_disk.glade:
	  make disker ui show up again.  Fixes #264.

2005-07-21  Thomas Vander Stichele  <thomas at apestaart dot org>

	Patch by: Gergely Nagy

	* data/glade/wizard_http.glade:
	* flumotion/wizard/steps.py:
	  fix issue #241: block forward when no mount point specified

2005-07-21  Thomas Vander Stichele  <thomas at apestaart dot org>

	Patch by: Gergely Nagy

	* data/glade/wizard_consumption.glade:
	* flumotion/wizard/steps.py:
	  fix issue #240: sensitivity of forward button on consumption page

2005-07-21  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/worker/job.py:
	  do the least amount necessary to have working worker shutdown
	  for both twisted 2.0 and twisted 1.3
	  needs cleanup by refactoring components and cleanup properly

2005-07-20  Thomas Vander Stichele  <thomas at apestaart dot org>

	* bin/flumotion-manager.in:
	  install correct manager here too
	* flumotion/configure/configure.py:
	  increase timeouts a little

2005-07-20  Thomas Vander Stichele  <thomas at apestaart dot org>

	* bin/flumotion-worker.in:
	  use twisted.compat to install the reactor
	* flumotion/twisted/compat.py:
	  use the glib2reactor in twisted 2.0
	* flumotion/worker/worker.py:
	  don't ignore SIGINT, the reactor handles it nicely.
	  another step on the way to twisted 2.0 compat

2005-07-19  Thomas Vander Stichele  <thomas at apestaart dot org>

	* common/python.mk:
	  disable our custom python install program for testing on FC4
	* flumotion/wizard/Makefile.am:
	* flumotion/wizard/types.py:
	* flumotion/wizard/wizard.py:
	  rename types to classes so it doesn't conflict with the standard
	  types module and break make install

2005-07-15  Michael Smith <msmith@fluendo.com>

	* data/glade/admin.glade:
	Change the 'gtk-about' menu item into a slightly more user-friendly 
	'About'
	* doc/man/flumotion-admin.1:
	* doc/man/flumotion-manager.1:
	* doc/man/flumotion-worker.1:
	* flumotion/manager/main.py:
	Manpage updates, explain multiple config files in flumotion-manager,
	and fix the flumotion-manager usage message.

2005-07-14  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/gtk/videotest.py:
	* flumotion/manager/base.py:
	* flumotion/manager/manager.py:
	* flumotion/test/common.py:
	* flumotion/test/test_common_componentui.py:
	* flumotion/test/test_flavors.py:
	* flumotion/test/test_http.py:
	* flumotion/test/test_keycards.py:
	* flumotion/test/test_pb.py:
	* flumotion/test/test_twisted_compat.py:
	* flumotion/test/test_worker_worker.py:
	* flumotion/worker/worker.py:
	  fix test suite so that it completes with Twisted 2.0
	  still need to look at some deprecation warnings though.

2005-07-14  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/test/common.py:
	  remove a sys.path hackery from jdahlin that escaped my autisticity
	  for far too long
	* flumotion/test/test_flavors.py:
	  remove main call

2005-07-14  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/ui/glade.py:
	  use log.getExceptionMessage

2005-07-14  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/log.py:
	* flumotion/worker/job.py:
	  factor out a log.getExceptionMessage so we can clean up
	  all cases where we try and give some useful info about exceptions

2005-07-14  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/gtk/client.py:
	  clean up broken admin client because of moved code

2005-07-13  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/test/Makefile.am:
	  make make check error out if it notices an import error
	* flumotion/test/test_wizard.py:
	* flumotion/wizard/worker.py:
	  skip some tests that now fail until Andy can look at them

2005-07-13  Michael Smith <msmith@fluendo.com>

	* doc/man/flumotion-admin.1:
	* doc/man/flumotion-manager.1:
	* doc/man/flumotion-worker.1:
	  Add sections to all manpages on how to enable debugging, explaining
	  syntax, etc.

2005-07-13  Michael Smith <msmith@fluendo.com>

	* doc/man/Makefile.am:
	* doc/man/flumotion-admin.1:
	* doc/man/flumotion-manager.1:
	* doc/man/flumotion-worker.1:
	  Add more manpages, fix some typos in the manager page.

2005-07-13  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	* doc/Makefile.am:
	* flumotion.spec.in:
	  install, dist and package the man page

2005-07-13  Michael Smith <msmith@fluendo.com>

	* doc/man/flumotion-manager.1: Add a basic, incomplete manpage.

2005-07-13  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/log.py:
	  refactored logging a little, and fix #255 nicely by warning the user
	  at level 2 that there is a python traceback waiting for her at debug
	  level 4 if she's running below level 4

2005-07-13  Michael Smith <msmith@fluendo.com>

	* flumotion/manager/main.py: Process options that don't require a
	planet configuration file before requiring one.

2005-07-07  Andy Wingo  <wingo@pobox.com>

	* Makefile.am (PYCHECKER_BLACKLIST): Ignore gtk2reactor.py, it's
	only for twisted 1.3 -- don't want it checking if we have 2.0.

	* flumotion/component/consumers/httpstreamer/resources.py: Try
	twisted.web.interfaces first, seems twisted.protocols.interface is
	deprecated.

2005-07-07  Andy Wingo  <wingo@pobox.com>

	patch by: Zaheer Abbas Merali <zaheermerali at gmail dot com>
	
	* flumotion/admin/Makefile.am: Dist new file.

	* flumotion/admin/connections.py: New file.
	(get_recent_connections): Moved from
	flumotion.admin.gtk.connections.

2005-06-14  Andy Wingo  <wingo@pobox.com>

	* flumotion/component/component.py (BaseComponent._heartbeat):
	Remove cpu logging message.

2005-06-13  Andy Wingo  <wingo@pobox.com>

	* flumotion/component/effects/volume/volume.py
	(Volume._level_changed_cb): Deal gracefully with inf's coming from
	C.

	* flumotion/component/effects/volume/admin_gtk.py
	(VolumeAdminGtkNode.volumeChanged): Clamp the property values to
	the proper range to avoid nasty messages.

	* flumotion/admin/gtk/main.py (_runInterface): We're not yet in
	the reactor if the greeter is killed, so we can't stop it just
	yet. Use callLater(reactor.stop) instead.

	* flumotion/admin/admin.py (AdminClientFactory.gotDeferredLogin):
	Get ConnectionFailedError and ConnectionRefusedError from the
	right module.

	* flumotion/wizard/wizard.py (Wizard): No longer implements
	IStateListener -- WorkerListModel does this. Change to not rebuild
	the worker list all the time, instead just notifying when the page
	changes. Fixes dynamic updating of the worker box as workers come
	and go. Make an error message when no worker is available.

	* flumotion/wizard/worker.py (WorkerListStore): Take a
	WorkerHeavenState instead of a list of workers, and listen to it
	for changes. Add a ::changed signal for when workers are added or
	removed.
	(WorkerList.set_worker_heaven_state): Select a default worker, and
	listen to changes on the model to keep a worker always selected.
	Emit ::worker-selected(None) when all workers go away.
	(WorkerList.select_worker): Only warn if we're not asking for a
	default worker. 
	(WorkerList.notify_selected): New method, emits 'worker-selected'
	for the current worker.

	* flumotion/admin/gtk/parts.py
	(ComponentsView._add_columns.type_pid_datafunc)
	(ComponentsView._add_columns.type_cpu_datafunc): Set cell renderer
	property values instead of model values. Prevents 100% CPU
	feedback.

	* flumotion/wizard/steps.py (FireWire.run_checks): Display an info
	message while detecting the firewire device.

2005-06-13  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/ui/trayicon.py:
	  work when the .so file cannot be found as well

2005-06-11  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/common.py:
	  check also for UNIXAddress
	* flumotion/common/errors.py:
	* flumotion/common/config.py:
	  move ConfigError, still needs cleanup
	* flumotion/component/consumers/httpstreamer/http.py:
	* flumotion/component/consumers/httpstreamer/resources.py:
	  catch unwritable log file error
	* flumotion/worker/job.py:
	  pass through nice configerrors
	* flumotion/manager/main.py:
	  make ERROR stand out some more

2005-06-11  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/bouncers/htpasswdcrypt.py:
	  raise ConfigError on IOError while reading htpasswd file
	* flumotion/worker/job.py:
	  pass through config.ConfigError's

2005-06-11  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/medium.py:
	* flumotion/twisted/defer.py:
	* flumotion/worker/job.py:
	  final cleanups, createComponent now will tell us what is wrong

2005-06-11  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/twisted/defer.py:
	* flumotion/common/medium.py:
	* flumotion/manager/main.py:
	  move "import traceback" to top, so it doesn't mess up stack
	* flumotion/component/bouncers/htpasswdcrypt.py:
	  do a proper raise when a keyword is missing
	* flumotion/worker/job.py:
	  move "import traceback" to top, so it doesn't mess up stack
	  change source to moduleName since that's what it is
	  extract the exception traceback instead of the current stack
	  so we can log the cause of the problem

2005-06-11  Thomas Vander Stichele  <thomas at apestaart dot org>

	* doc/random/exceptions:
	  add some notes on exceptions and handling them
	* flumotion/common/log.py:
	  factor out a scrubFilename() function

2005-06-11  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/wizard/message.py:
	  use a longer name for cb
	  make them private attributes, because they are
	* flumotion/wizard/worker.py:
	  pychecker happiness

2005-06-11  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/admin.py:
	  another actual bug pychecker caught in three different ways.
		flumotion/admin/admin.py:162:
			Invalid arguments to (_makeFactory), got 2, expected 1
		flumotion/admin/admin.py:175:
			self is not first method argument
		flumotion/admin/admin.py:176:
			No global (self) found
	  I don't want to hear any more "useless pychecker" whining.
	  Solutions, not problems.

	* flumotion/wizard/worker.py:

2005-06-11  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/manager/main.py:
	  make sure we catch all raises from _initialLoadConfig correctly,
	  and print a traceback for those we don't explicitly handle

2005-06-10  Andy Wingo  <wingo@pobox.com>

	* flumotion/wizard/message.py (MessageView.__init__): Back off on
	the padding of the message.

	* flumotion/wizard/worker.py: New file, implements a list of
	workers. Fires 'worker-selected' when the selected worker changes.

	* flumotion/wizard/message.py: New file, implements a message
	area, showing 0 to N messages. It hides itself when there are no
	messages to show. Messages have id's. They can be cleared by id,
	and no two messages of the same id will be visible at a time. The
	UI needs some work.

	* flumotion/wizard/wizard.py (Wizard.info_msg, Wizard.error_msg) 
	(Wizard.clear_msg): New methods to show and clear messages in the
	message area. No more modal dialogs.
	(Wizard.set_step): Updates to get the worker list, message area,
	and next button states right. Fire worker_changed on the step when
	we switch to it.

	* flumotion/wizard/steps.py: All remote calls turned into
	defer_generator_methods for clearer code and default errbacks.
	Error and info dialogs turned into messages via info_msg() and
	error_msg(). before_show() checks moved to worker_changed().

	* flumotion/wizard/step.py (WizardStep.info_msg)
	(WizardStep.error_msg, WizardStep.clear_msg): New methods, proxy
	to the wizard.

	* data/glade/.hidden: Nautilus pacification file.

	* tools/gtk-2.4-ify-glade-files: focus_on_click was in gtk 2.4.

	* data/glade/wizard_webcam.glade:
	* data/glade/wizard_audio_encoder.glade:
	* data/glade/wizard_source.glade:
	* data/glade/wizard_audiotest.glade:
	* data/glade/wizard_vorbis.glade:
	* data/glade/wizard_firewire.glade:
	* data/glade/wizard_consumption.glade:
	* data/glade/wizard_license.glade:
	* data/glade/wizard_soundcard.glade:
	* data/glade/wizard_jpeg.glade:
	* data/glade/wizard_encoding.glade:
	* data/glade/wizard_disk.glade:
	* data/glade/wizard_welcome.glade:
	* data/glade/wizard_summary.glade:
	* data/glade/wizard_testsource.glade:
	* data/glade/wizard_smoke.glade:
	* data/glade/wizard_overlay.glade:
	* data/glade/wizard_theora.glade:
	* data/glade/wizard_tvcard.glade:
	* data/glade/wizard_http.glade: No border, the border comes from
	the wizard itself.
	
	* data/glade/wizard_firewire.glade: Text status area replaced by
	message area from wizard.
	
	* data/glade/wizard_welcome.glade: Use a textview instead of a
	label to allow for text reflowing.
	
	* data/glade/wizard.glade: Make gargantuan in size, no more center
	on parent. Fix up borders in the main area to 12px all around. No
	more frame border. Add a line above buttons. Add message area and
	worker list.

2005-06-09  Thomas Vander Stichele  <thomas at apestaart dot org>

	* bin/flumotion.in:
	  Remove unused PREFIX template var.  Fix the @libdir@ vs
	  @LIBDIR@ confusion, @libdir@ is the not-expanded version
	  and should not be used !

2005-06-05  Thomas Vander Stichele  <thomas at apestaart dot org>

	* bin/flumotion-admin.in:
	* bin/flumotion-manager.in:
	* bin/flumotion-tester.in:
	* bin/flumotion-worker.in:
	  Remove unused PREFIX template var.  Fix the @libdir@ vs
	  @LIBDIR@ confusion, @libdir@ is the not-expanded version
	  and should not be used !

2005-06-03  Andy Wingo  <wingo@pobox.com>

	* flumotion/component/base/admin_gtk.py (BaseAdminGtk.state):
	Pacification.

2005-06-01  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/gtk/parts.py:
	  use a datafunc for pid and cpu use
	* flumotion/extern/pytrayicon/eggtrayicon.c: (egg_tray_icon_init),
	(egg_tray_icon_get_orientation):
	* flumotion/extern/pytrayicon/eggtrayicon.h:
	* flumotion/extern/pytrayicon/pytrayicon.defs:
	* flumotion/admin/gtk/client.py:
	* flumotion/ui/trayicon.py:
	  add tooltip to tray icon
	* flumotion/manager/manager.py:
	  reset CPU use when component stops
	* flumotion/component/component.py:
	  debug -> log on cpu stuff
	* flumotion/admin/admin.py:
	  add another Str method for tooltips to use

2005-05-31  Thomas Vander Stichele  <thomas at apestaart dot org>

	Patch by: Gergely Nagy

	* data/glade/wizard_soundcard.glade:
	* flumotion/wizard/steps.py:
	  Fix for #135, adding human-readable names to the soundcard

2005-05-26  Andy Wingo  <wingo@pobox.com>

	* flumotion/component/consumers/httpstreamer/admin_gtk.py
	(HTTPStreamerAdminGtk.uiStateChanged): Implement vmethod, update
	the statistics.
	(StatisticsAdminGtkNode._loadGladeFileCallback): Don't get the
	uistate ourselves.

	* flumotion/component/consumers/httpstreamer/resources.py
	(HTTPStreamingResource.logWrite): Output time in GMT.

	* flumotion/component/base/admin_gtk.py (BaseAdminGtk.stateSet) 
	(BaseAdminGtk.stateAppend, BaseAdminGtk.stateRemove) 
	(BaseAdminGtk.__implements__): You be a listener.
	(BaseAdminGtk.__init__): Get the uistate when any admin-gtk view
	is created, and listen to it.
	(BaseAdminGtk.uiStateChanged): vmethod, called when the ui state
	changes. It is possible to override stateSet, etc individually
	though.

	* flumotion/admin/gtk/client.py (Window._setAdminModel): Connect
	to the right signal.

2005-05-25  Thomas Vander Stichele  <thomas at apestaart dot org>

	* data/glade/wizard_http.glade:
	* flumotion/component/consumers/httpstreamer/http.py:
	* flumotion/component/consumers/httpstreamer/http.xml:
	* flumotion/wizard/steps.py:
	  implement burst-on-connect.  Currently this is only sensible
	  for video, since audio frames are all keyframes, so it doesn't
	  give you a burst to sync to previous keyframe.

2005-05-25  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/gtk/parts.py:
	* flumotion/common/planet.py:
	* flumotion/component/component.py:
	* flumotion/test/test_manager_manager.py:
	  implement CPU usage monitoring.  Components will set CPU use
	  percentage since last heartbeat on the state, and the UI will
	  show it.  Needs factoring of the cpu code into an object
	  (when something else would start using it) and needs a celldata
	  func to be slightly nicer in the UI code.

2005-05-25  Andy Wingo  <wingo@pobox.com>

	* flumotion/wizard/sidebar.py (WizardSidebar.pop): Return True if
	the pop succeeded, False if there was nothing left.
	(WizardSidebar.set_sections): Reset the stack position when
	resetting the set of sections.

2005-05-24  Andy Wingo  <wingo@pobox.com>

	* flumotion/admin/gtk/main.py (main): Run main loop in main
	function.
	(_runInterface): Stop the reactor instead of doing a sys.exit.

	* flumotion/admin/gtk/wizard.py (Wizard): Use our own main loop,
	not the GTK one. Disconnect from the finished handler after one
	fire.

	* flumotion/admin/admin.py (AdminModel._defaultErrback): Not all
	failures have .type.

2005-05-24  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/admin.py:
	* flumotion/admin/gtk/client.py:
	* flumotion/admin/gtk/dialogs.py:
	* flumotion/admin/gtk/main.py:
	* flumotion/common/errors.py:
	* flumotion/twisted/pb.py:
	  add ConnectionFailedError and handle name lookup errors everywhere

2005-05-24  Thomas Vander Stichele  <thomas at apestaart dot org>

	* doc/random/tags:
	  add GTK 2.4 tag
	* flumotion/admin/gtk/dialogs.py:
	  provide a format_secondary_text "backport" function for pychecker's
	  happiness

2005-05-24  Andy Wingo  <wingo@pobox.com>

	* flumotion/admin/gtk/main.py (_runInterface):
	* flumotion/admin/gtk/client.py (Window.on_open_connection): Use
	the deferred from connectToHost and the new error dialog.

	* flumotion/admin/gtk/dialogs.py
	(connection_refused_modal_message): New proc, pops up a modal
	message that the connection to a manager was refused.
	(ErrorDialog.__init__): Add a secondary_text kwarg. Attempt to
	make it work on PyGTK 2.4.

	* flumotion/common/errors.py (ConnectedRefusedError): New error,
	raised by AdminModel.connectToHost's deferred.

	* flumotion/admin/admin.py (AdminModel.connectToHost): Return a
	deferred instead of requiring callers to connect to the
	::connected and ::connection-refused signals.

2005-05-23  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/medium.py:
	* flumotion/manager/base.py:
	* flumotion/worker/worker.py:
	  make avatars (PB server) and mediums (PB client) figure out
	  addresses on both sides of their connection as seen by them.
	  Will be useful to figure out network topology and firewalls.

2005-05-23  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/common.py:
	* flumotion/service/service.py:
	  factor out getPidPath() and use it
	  change waitPidFile to actually wait for the pid file to arrive,
	  instead of the fancy and brittle mtime on the run dir.

2005-05-20  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/log.py:
	  integrate twisted's logging with ours.  This might help us
	  debug some problems, no ? I think this is spiffy anyway.

2005-05-20  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	  back to TRUNK

=== release 0.1.8 ===

2005-05-20  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	  releasing 0.1.8, "Baja Beach"

2005-05-19  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion.spec.in:
	* flumotion/extern/Makefile.am:
	* flumotion/ui/trayicon.py:
	* flumotion/wizard/Makefile.am:
	  various fixes to make spec file and trayicon work

2005-05-19  Thomas Vander Stichele  <thomas at apestaart dot org>

	* doc/Makefile.am:
	* doc/redhat/make-dummy-cert:
	* flumotion.spec.in:
	  use an included make-dummy-cert because it was removed
	  from openssl rpm for FC4

2005-05-19  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/encoders/encoders.xml:
	* flumotion/component/encoders/theora.py:
	  apply patch for theora advanced settings.  Closes #201.

2005-05-19  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/producers/audiotest/audiotest.py:
	* flumotion/component/producers/audiotest/audiotest.xml:
	  make audiotest component respect sample rate setting
	  fixes #210

2005-05-19  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/consumers/httpstreamer/http.py:
	  check user_limit since that's what it's called now
	* flumotion/component/consumers/httpstreamer/http.xml:
	  add user_limit and bandwidth_limit
	* flumotion/component/consumers/httpstreamer/resources.py:
	  rename setMaxClients to setUserLimit

2005-05-19  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/encoders/encoders.xml:
	* flumotion/wizard/steps.py:
	  treat vorbis encoding quality as a float (0.0 - 1.0)
	  Fixes #212

2005-05-19  Thomas Vander Stichele  <thomas at apestaart dot org>

	patch by: Zaheer Abbas Merali <zaheermerali at gmail dot com>

	* configure.ac:
	* flumotion/admin/gtk/client.py:
	* flumotion/extern/Makefile.am:
	* flumotion/extern/pytrayicon/__init__.py:
	* flumotion/ui/Makefile.am:
	* flumotion/ui/trayicon.py:
	  add the tray icon.  Make sure it still works if the trayicon
	  is not compiled.  Closes #231.

2005-05-19  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/test/test_common.py:
	  remove double test that causes spurious problems

2005-05-18  Thomas Vander Stichele  <thomas at apestaart dot org>

	patch by: Zaheer Abbas Merali <zaheermerali at gmail dot com>

	* configure.ac:
	* flumotion/Makefile.am:
	* flumotion/extern/Makefile.am:
	* flumotion/extern/__init__.py:
	* flumotion/extern/pytrayicon/Makefile.am:
	* flumotion/extern/pytrayicon/__init__.py:
	* flumotion/extern/pytrayicon/eggtrayicon.c:
	* flumotion/extern/pytrayicon/eggtrayicon.h:
	* flumotion/extern/pytrayicon/ltihooks.py:
	* flumotion/extern/pytrayicon/pytrayicon.defs:
	* flumotion/extern/pytrayicon/pytrayicon.override:
	* flumotion/extern/pytrayicon/pytrayiconmodule.c:
	  first part of adding a trayicon to Flumotion.
	  This builds the python module, so you can do
	  import flumotion.extern.pytrayicon
	  trayicon = pytrayicon.TrayIcon

2005-05-18  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/manager/main.py:
	  catch errors on access of the pem file.  Fixes #202.

2005-05-18  Thomas Vander Stichele  <thomas at apestaart dot org>

	patch by: Zaheer Abbas Merali <zaheermerali at gmail dot com>

	* flumotion/component/consumers/disker/disker.py:
	  add more file extensions.  Closes #206.

2005-05-18  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/encoders/vorbis.py:
	  Partial fix for #197 for OSS
	* flumotion/component/feedcomponent.py:
	  fix bug in updateMood so sad stays sad

2005-05-18  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/feedcomponent.py:
	  don't try to manage idle's - they get removed when iterate
	  returns FALSE, so the previous patch is not a really good idea

2005-05-18  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/encoders/vorbis.py:
	  check if we start up correctly
	* flumotion/component/feedcomponent.py:
	  save the idle iterator id so we only have one running

2005-04-28  Thomas Vander Stichele  <thomas at apestaart dot org>

	* bin/flumotion-admin.in:
	* bin/flumotion-manager.in:
	* bin/flumotion-tester.in:
	* bin/flumotion-worker.in:
	* bin/flumotion.in:
	  "64 bit" fixes

2005-04-26  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/consumers/httpstreamer/http.py:
	* flumotion/component/consumers/httpstreamer/resources.py:
	  get the stats again, instead of using None.
	  DANGER WILL: if there are GIL problems, this is the first
	  thing to check !

2005-04-25  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/wizard/sidebar.py:
	  declare the classvars

2005-04-25  Andy Wingo  <wingo@pobox.com>

	* flumotion/wizard/steps.py: No more placeholders, no more
	Consumption2.

	* flumotion/wizard/step.py (WizardStep): s/step_name/name/. All
	accessors changed.

	* flumotion/wizard/sidebar.py (SidebarSection.__init__): Allow
	sidebar entries to have different titles than their names. Thus a
	Production button can have a Source title. Crack.
	(WizardSidebar.push, WizardSidebar.pop): Push and pop from the top
	of the stack, not the active section.

	* data/wizard/wizard_summary.glade: Fix visibility problem.

	* flumotion/wizard/sidebar.py (WizardSidebar.__init__): Fix size
	request. 
	(SidebarButton.__init__): Fix padding.

	* flumotion/wizard/wizard.py (Scenario.show_next): Fix variable
	ref.
	
	* flumotion/wizard/wizard.py (Scenario.show_next): 
	* flumotion/wizard/types.py (WalkableStack.push): Remove some
	prints.

	* flumotion/wizard/steps.py: Don't register the steps, that kruft
	is gone thankfully. Add pages for sections. Return None for
	get_next at the end of sections. Unfortunately have to change the
	name of the consumption page -- will be working on this.

	* flumotion/wizard/wizard.py (Scenario): Initial attempt at
	tearing the stack logic out of the wizard.
	(BasicScenario): Basic scenario with six sections and steps
	autoloaded from steps.py.
	(Wizard): Is a gladewindow now.

	* flumotion/wizard/sidebar.py: New file.
	(WizardSidebar): Widget for the sidebar. Has four operations:
	set_sections, show_step, push, and pop.

	* data/glade/wizard_overview.glade: Placeholder for forthcoming
	summary pages.

	* flumotion/wizard/types.py: New file.
	(WalkableStack): A stack that you can walk down. Pushing an item
	on the stack can fail if you're not at the head and the next item
	is different from the one you're pushing.
	(KeyedList): An ordered list of objects that can be accessed by
	non-numeric keys as well. Perhaps a crack idea.

	* flumotion/wizard/save.py (WizardSaver.handleConsumers):
	Temporary fix for Consumption2 page name.

	* flumotion/common/watched.py: New file, implements data types
	that notify listeners when it changes.
	(WatchedList): Bling.

	* flumotion/ui/glade.py (GladeWindow.destroy): Delete the window
	reference after destroying it.

2005-04-22  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/test/test_common_gstreamer.py:
	* flumotion/common/gstreamer.py:
	  add bin_find_sinks() and test

2005-04-22  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/test/test_wizard.py:
	* flumotion/wizard/step.py:
	  fix Patrick Build Breakage

2005-04-21  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	* data/Makefile.am:
	* data/flu-admin.desktop.in:
	* data/flumotion-admin.desktop.in:
	  rename to flumotion-admin.desktop.in and fix up to FE packaging

2005-04-21  Andy Wingo  <wingo@pobox.com>

	* flumotion/wizard/step.py: New file.
	(WizardStep): Split out from wizard.py.

	* flumotion/wizard/steps.py: 
	* flumotion/test/test_wizard.py (WizardStepTest.testLoadSteps):
	step.WizardStep.

	* flumotion/ui/glade.py (GladeWidget.__init__): Try to fix a
	python 2.3/pygtk 2.4 error?

	* flumotion/wizard/wizard.py (WizardStep): Change to be a
	GladeWidget. Set glade_typedict to the fgtk.WidgetMapping().
	(WizardStep.section, WizardStep.section_name): Add default class
	vars, set to None by default.
	(WizardStep._load_glade): Removed, implemented by GladeWidget.
	(WizardStep.iterate_widgets): New generator.
	(WizardStep.get_main_widget): Removed, WizardStep is a widget.
	(WizardStep.get_name): Use gtk.Widget implementation.
	(WizardStep.get_sidebar_name): Unused, removed.
	(WizardStep.get_section): Removed, just access WizardStep.section.
	(Wizard): Updated for WizardStep changes.
	
	* flumotion/test/test_wizard.py (WizardStepTest.testLoadSteps):
	Remove tests obsoleted by the use of gladewidget, step_name and
	step.get_name() are equal but not identical.
	(WizardStepTest.testStepWidgets): Use iterate_widgets() instead of
	self.widgets.

	* flumotion/ui/glade.py (GladeWindow.glade_typedict)
	(GladeWidget.glade_typedict): Added typedict class variables, and
	used them in the initializers.

2005-04-20  Andy Wingo  <wingo@pobox.com>

	* flumotion/manager/manager.py (find, first, any, fint): Move
	utils out to the toplevel.
	(Vishnu._configToComponentState): New method, converts a config
	dict to a managercomponentstate. This is really hacky though,
	there shouldn't be two ways to set up component states. Need to
	merge with loadconfiguration at some point.
	(Vishnu.componentAttached): Get the config and make the state if
	the avatar is unknown (i.e., if the manager quit and the component
	is logging back in again.)
	(Vishnu.registerComponent): Remove commented-out code.

2005-04-19  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/admin.py:
	  make sure we register cached paths first before registering
	  newly unbundled stuff.  If we just started up the admin,
	  the cached paths are not yet registered while we're trying to
	  stack our unbundled one on top of it.  Fixes #216.

2005-04-19  Thomas Vander Stichele  <thomas at apestaart dot org>

	* data/glade/wizard_summary.glade:
	  change Quit to Apply, noted by jbn-o in #fluendo

2005-04-19  Andy Wingo  <wingo@pobox.com>

	* conf/managers/default/planet.xml: Add a default name for the
	manager. Call it 'planet'.

	* flumotion/manager/manager.py (Vishnu.deleteFlow): New routine,
	deletes just a single flow.

	* flumotion/manager/admin.py (AdminAvatar.perspective_deleteFlow):
	New method.

	* flumotion/wizard/wizard.py (Wizard): Set flowName to 'default'.
	
	* flumotion/wizard/save.py (WizardSaver.getXML): Take the flow
	name from the wizard.

	* data/glade/houston.glade: Default action fixes.

	* flumotion/admin/admin.py (AdminModel.managerInfoStr): New
	method, returns a nice string to identify the manager.

2005-04-15  Andy Wingo  <wingo@pobox.com>

	* flumotion/common/planet.py (ManagerPlanetState.__init__): Make
	sure the atmosphere state has the planet state as a parent.

	* flumotion/component/consumers/httpstreamer/admin_gtk.py
	(StatisticsAdminGtkNode.updateLabels): Fix to work with uiState.

	* flumotion/common/bundleclient.py (BundleLoader.load_module):
	Don't assume that bundle names are module names. Fixing this
	assumption leads to lots of cleanups.

	* flumotion/twisted/defer.py
	(defer_generator.wrapper.default_errback): Add an
	errback-of-last-resort that will print a traceback if nothing
	catches an error.

	* flumotion/component/consumers/httpstreamer/http.py
	(Stats.updateState): Renamed from getState. Takes a setter proc to
	set the args instead of returning a new dict.
	(HTTPMedium.remote_notifyState): Removed, instead use getUIState.
	(MultifdSinkStreamer.__init__): Add keys to the uiState.
	(MultifdSinkStreamer.update_ui_state.set): Call Stats.updateState
	with a setter for our uiState.

	* flumotion/component/bouncers/admin_gtk.py
	(KeycardsNode._loadGladeFileCallback): call getUIState instead of
	getBouncerState.
	* flumotion/component/bouncers/bouncer.py (Bouncer.__init__): Use
	uiState instead of _bouncerState.
	(BouncerMedium.remote_getBouncerState): Removed, use getUIState
	instead.

	* flumotion/component/component.py
	(BaseComponentMedium.remote_getUIState): New method, returns the
	UI state of the component.
	(BaseComponent.__init__): Initialize self.uiState to a new
	WorkerCompoenentUIState.

2005-04-15  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/worker/main.py:
	  error out nicely on config errors

2005-04-15  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/test/test_workerconfig.py:
	* flumotion/worker/config.py:
	  do not use 'default' as a default worker name for config.
	  If nothing is specified, we should be using sockety stuff to
	  get a name.

2005-04-15  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/feedcomponent.py:
	* flumotion/component/producers/firewire/firewire.py:
	* flumotion/worker/checks/video.py:
	  server-side fixes for making 16:9 and 4:3 work

2005-04-14  Andy Wingo  <wingo@pobox.com>

	* flumotion/test/test_defer.py
	(TestDefer.testException.divide_later.divide): Tighten up the
	class of the error we check for.

	* flumotion/component/base/admin_gtk.py
	(BaseAdminGtkNode.status_pop, BaseAdminGtkNode.status_push): New
	methods for dealing with status bars. Hackily checks if the view
	set a 'statusbar' attribute on the node. Hey hey hey it's fat
	albert.

	* flumotion/component/consumers/httpstreamer/admin_gtk.py
	(DiskerAdminGtk.setup):
	* flumotion/component/consumers/disker/admin_gtk.py
	(DiskerAdminGtk.setup):
	* flumotion/component/producers/firewire/admin_gtk.py
	(FirewireAdminGtk.setup):
	* flumotion/component/producers/videotest/admin_gtk.py
	(VideoTestAdminGtk.setup):
	* flumotion/component/producers/soundcard/admin_gtk.py
	(SoundcardAdminGtk.setup):
	* flumotion/component/producers/bttv/admin_gtk.py
	(BTTVAdminGtk.setup):
	* flumotion/component/bouncers/admin_gtk.py
	(HTPasswdCryptAdminGtk.setup): Don't pass around view as an
	argument.

	* flumotion/admin/gtk/client.py (Window.show_component): Don't
	pass self to BaseAdminGtk*.__init__. Set node.statusbar instead.

	* flumotion/component/base/admin_gtk.py
	(BaseAdminGtk.loadGladeFile): Unused, removed.
	(EffectAdminGtkNode.__init__): 
	(BaseAdminGtkNode.__init__)
	(BaseAdminGtk.__init__): Remove last argument (normally a
	flumotion.admin.gtk.client.AdminClient instance), as it's unused.

	* flumotion/twisted/defer.py
	(defer_generator.wrapper.errback.raise_error): If the exception
	comes from a remote PB, failure.type will be a string. Try to use
	the exception class that corresponds to that string.

2005-04-14  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/common.py:
	  warn but don't fail on failed reflects during registerPackagePath
	* flumotion/test/test_common.py:
	  add a test for registerPackagePath simulating an
	  uninstalled project sharing an import namespace with another

2005-04-14  Thomas Vander Stichele  <thomas at apestaart dot org>

	* data/glade/wizard_firewire.glade:
	* flumotion/wizard/steps.py:
	  admin-side fixes for widescreenity of firewire

2005-04-14  Thomas Vander Stichele  <thomas at apestaart dot org>

	* common/common.mk:
	* common/pychecker.mk:
	* common/show-coverage.py:
	  updates to common/ for shared stuff

2005-04-12  Thomas Vander Stichele  <thomas at apestaart dot org>

	* doc/random/firewire:
	  some notes about firewire
	* flumotion/common/gstreamer.py:
	  add a function to get plugin version; only works with new gst-python
	* flumotion/wizard/steps.py:
	  use one way to calculate all widths being used, so what's shown
	  is what's done
	  make overlay component check if we can use ffmpegcolorspace over
	  alpha
	* flumotion/component/converters/overlay/overlay.py:
	  check for AYUV-ffmpegcolorspace
	* flumotion/component/producers/firewire/firewire.py:
	  cleanups
	* flumotion/wizard/wizard.py:
	  allow showing info dialogs
	* flumotion/worker/checks/video.py:
	  add a check for ffmpegcolorspace having AYUV

2005-04-12  Andy Wingo  <wingo@pobox.com>

	* flumotion/worker/worker.py (WorkerMedium.remote_runProc): Proxy
	BaseMedium.run_bundled_proc.

	* flumotion/common/medium.py (BaseMedium.load_module): New method,
	proxy from the bundleLoader.
	(BaseMedium.run_bundled_proc): New method, runs a procedure in a
	module, first fetching the bundles that support the module.

	* flumotion/common/bundleclient.py (BundleLoader.load_module):
	Renamed from .load. Don't assume the bundle has the same name as a
	module. Implement with a defer generator.
	(BundleLoader._fetchAndRegisterBundles): Now a defer generator.

	* flumotion/manager/base.py
	(ManagerAvatar.perspective_getBundleSums): Now also gets bundle
	sums for a file or module as well.
	(ManagerAvatar.perspective_getBundleSumsByFile): Removed.

	* flumotion/admin/admin.py (AdminModel.reload_async): New method,
	takes a port as an argument for output.

2005-04-11  Andy Wingo  <wingo@pobox.com>

	* flumotion/twisted/defer.py: Remove hacks, pychecker seems happy
	enough without them.

	* flumotion/common/planet.py (moods.can_start, moods.can_stop):
	New static methods.

	* flumotion/component/component.py (BaseComponent.stop): Set the
	component mood to sleeping before we stop. "One last heartbeat."
	Allows the manager to immediately start a component after stopping
	it.

	* flumotion/manager/admin.py
	(AdminAvatar.perspective_componentRestart): Fixed restart.

2005-04-11  Thomas Vander Stichele  <thomas at apestaart dot org>

	* Makefile.am:
	* common/Makefile.am:
	* common/pychecker.mk:
	* tools/pycheckerhelp.py:
	  more unification

2005-04-11  Thomas Vander Stichele  <thomas at apestaart dot org>

	* Makefile.am:
	* autogen.sh:
	* common/Makefile.am:
	* common/common.mk:
	* common/pychecker.mk:
	* common/python.mk:
	* configure.ac:
	* doc/random/styleguide:
	* flumotion/Makefile.am:
	* flumotion/admin/Makefile.am:
	* flumotion/admin/gtk/Makefile.am:
	* flumotion/common/Makefile.am:
	* flumotion/component/Makefile.am:
	* flumotion/component/base/Makefile.am:
	* flumotion/component/bouncers/Makefile.am:
	* flumotion/component/consumers/Makefile.am:
	* flumotion/component/consumers/disker/Makefile.am:
	* flumotion/component/consumers/httpstreamer/Makefile.am:
	* flumotion/component/converters/Makefile.am:
	* flumotion/component/converters/overlay/Makefile.am:
	* flumotion/component/effects/Makefile.am:
	* flumotion/component/effects/colorbalance/Makefile.am:
	* flumotion/component/effects/volume/Makefile.am:
	* flumotion/component/encoders/Makefile.am:
	* flumotion/component/muxers/Makefile.am:
	* flumotion/component/producers/Makefile.am:
	* flumotion/component/producers/audiotest/Makefile.am:
	* flumotion/component/producers/bttv/Makefile.am:
	* flumotion/component/producers/firewire/Makefile.am:
	* flumotion/component/producers/soundcard/Makefile.am:
	* flumotion/component/producers/videotest/Makefile.am:
	* flumotion/component/producers/webcam/Makefile.am:
	* flumotion/configure/Makefile.am:
	* flumotion/manager/Makefile.am:
	* flumotion/service/Makefile.am:
	* flumotion/test/Makefile.am:
	* flumotion/tester/Makefile.am:
	* flumotion/twisted/Makefile.am:
	* flumotion/ui/Makefile.am:
	* flumotion/wizard/Makefile.am:
	* flumotion/worker/Makefile.am:
	* flumotion/worker/checks/Makefile.am:
	* m4/as-ac-expand.m4:
	* m4/as-python.m4:
	* m4/as-version.m4:
	* py-compile-destdir:
	* python.mk:
	  rework build setup so we can make all flumotion projects uniform

2005-04-11  Andy Wingo  <wingo@pobox.com>

	* flumotion/admin/gtk/client.py (Window._component_do): Use
	new start/stop methods.

	* flumotion/manager/admin.py (AdminAvatar.perspective_componentStop) 
	(AdminAvatar.perspective_componentRestart): New methods. The first
	will call componentCallRemote. The second will wait on a stop
	before a restart.
	(AdminAvatar.perspective_componentCallRemote): Deprecate use of
	componentCallRemote to start components.

	* flumotion/admin/admin.py:
	s/c_defer_generator/defer_generator_method/

	* flumotion/twisted/defer.py (defer_generator_method): Renamed
	from c_defer_generator, return a curried function.

2005-04-09  Thomas Vander Stichele  <thomas at apestaart dot org>

	* Makefile.am:
	* flumotion/wizard/steps.py:
	* flumotion/wizard/wizard.py:
	* misc/pycheckerrc:
	  make wizard be checked as well

2005-04-09  Thomas Vander Stichele  <thomas at apestaart dot org>

	* Makefile.am:
	  remove stuff from blacklist after fixing
	* flumotion/component/converters/overlay/overlay.py:
	  rework so we can use a safe function
	* flumotion/component/effects/volume/admin_gtk.py:
	  remove an import

2005-04-09  Thomas Vander Stichele  <thomas at apestaart dot org>

	* Makefile.am:
	* flumotion/common/Makefile.am:
	* flumotion/common/medium.py:
	* flumotion/configure/uninstalled.py.in:
	* tools/pycheckerhelp.py:
	  fix make distcheck again

2005-04-09  Thomas Vander Stichele  <thomas at apestaart dot org>

	* Makefile.am:
	  add pycheckersplit target for maximum CPU usage
	* TODO:
	  some notes
	* flumotion/component/consumers/httpstreamer/resources.py:
	  don't reuse var
	* misc/pycheckerrc:
	  add a comment

2005-04-09  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/admin.py:
	* flumotion/twisted/defer.py:
	  make a c_defer_generator to be used for instance methods

2005-04-05  Andy Wingo  <wingo@pobox.com>

	* flumotion/admin/admin.py (AdminModel.setRemoteReference): Molest
	the planet.
	
	* flumotion/admin/admin.py (AdminClientFactory.gotDeferredLogin):
	Refactor to use defer_generator.

	* flumotion/admin/gtk/client.py: Adapt to admin.py api change.

	* flumotion/twisted/defer.py: Feeble attempt to appease pychecker.
	If infants can code it, pychecker can verify it! Non-infant use
	not recommended.

	* flumotion/admin/admin.py (AdminModel.setRemoteReference): Rework
	to use defer_generator.
	(AdminModel.planet): Renamed from _planetState, public for
	readonly access. All accessors changed.
	(AdminModel.__init__): Move private instance variable
	initialization here.
	(AdminModel.getPlanetState): Removed, just get AdminModel.planet.
	
	* flumotion/test/defer.py: Fix test suite name.

	* flumotion/test/Makefile.am (flumotion_PYTHON):
	* flumotion/test/test_defer.py: Test suite for
	flumotion.twisted.defer.

	* flumotion/twisted/Makefile.am (flumotion_PYTHON):
	* flumotion/twisted/defer.py: New file, integrating twisted
	deferreds with python generators. I'm not using deferredGenerator
	because it's too verbose.

2005-04-04  Andy Wingo  <wingo@pobox.com>

	* data/image/16x16/about.png: 
	* data/image/24x24/about.png: New files, from the hicolor gnome
	theme. LGPL.

	* flumotion/admin/gtk/client.py (Window._create_ui): Use stock
	icons.

	* flumotion/ui/Makefile.am: 
	* flumotion/ui/icons.py: New file, instantiates stock icons for
	flumotion doohickeys.

	* flumotion/manager/component.py
	(ComponentHeaven.registerComponent): Add some brackets, make
	python 2.3 happy

	* flumotion/admin/gtk/client.py
	(Window._append_recent_connections): Adapt to recieve a list of
	dicts instead of tuples.

	* flumotion/admin/gtk/connections.py (get_recent_connections):
	Refactored out of Connections. Now returns a list of dicts instead
	of a list of tuples.
	(Connections._populate_liststore): Use get_recent_connections.

	* flumotion/test/test_worker_worker.py
	(TestWorkerMedium.testSetRemoteReference): Fix so the remote
	reference behaves more like a remote reference.

	* flumotion/common/medium.py (BaseMedium): New file, implements a
	base class for mediums.
	(BaseMedium.setRemoteReference, BaseMedium.hasRemoteReference)
	(BaseMedium.callRemote): Implement these interface methods in the
	BaseMedium. callRemote traps PBConnectionLost.
	(BaseMedium.remote, BaseMedium.bundleLoader): Instance vars, set
	to None.

	* flumotion/common/interfaces.py: Add a note pointing to the
	medium implementation in flumotion.medium.

	* flumotion/component/component.py (BaseComponentMedium): 
	* flumotion/worker/worker.py (WorkerMedium): 
	* flumotion/worker/job.py (JobMedium): 
	* flumotion/admin/admin.py (AdminModel): Descend from BaseMedium,
	removing unneeded code.

	* flumotion/admin/admin.py (AdminClientFactory):
	AdminModel-specific client factory, encapsulating all of the login
	krap.
	(AdminModel::connection-refused): Don't pass connection parameters
	in the args, rather provide...
	(AdminModel.connectionInfoStr): New function, returns a
	human-presentable string for the connection parameters.
	(AdminModel.setRemoteReference): Extends the BaseMedium method,
	encapsulating all of the operations that happens when a model gets
	connected to a remote reference.

	* flumotion/admin/gtk/client.py
	(Window.admin_connection_refused_later)
	(Window.admin_connection_refused_cb): Adapt to connection-refused
	signal change, call connectionInfoStr().

	* flumotion/worker/worker.py (WorkerMedium.remote_start): Doc fix.
	(WorkerClientFactory.gotDeferredLogin): Refactor callbacks as
	closures rather than methods. Kleaner.

	* flumotion/worker/job.py (JobMedium.remote_start): Rename
	configDict arg to config.
	(JobMedium._runComponent): Set the config dict on the component,
	so it knows how it was instantiated. Adapt to reconnecting
	component factory api.
	(JobMedium.hasPerspective): Removed, it's the same as
	hasRemoteReference implemented in BaseMedium.

	* flumotion/manager/component.py (ComponentAvatar.cleanup): Fix
	extra quote in doc.
	(ComponentAvatar._mindGetStateCallback): Doc type of state
	argument.
	(ComponentHeaven.registerComponent): Beginnings of componentState
	reconstruction code.

	* flumotion/component/component.py
	(BaseComponent.__remote_interfaces__): Removed. What on earth was
	this, anyway? It's not referenced at all in flumotion or twisted.
	(ComponentClientFactory): Now a reconnecting factory. This means
	that if the manager goes away, components will try to reconnect to
	it later. Methods refactored to use the
	startLogin/gotDeferredLogin interface.
	(BaseComponentMedium.remote_getConfig): New remote method, will
	return the component's configuration dict.
	(BaseComponent.__init__): Chain up properly, add .dict instance
	var.
	(BaseComponent.setConfig): New method, sets the configuration dict
	on a component.

2005-04-06  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	  back to trunk

=== release 0.1.7 ===

2005-04-06  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	  releasing 0.1.7, "La Chacha"

2005-04-06  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/producers/webcam/webcam.py:
	  make sure we use the device from the config
	* flumotion/component/producers/webcam/webcam.xml:
	  make device required
	* flumotion/wizard/steps.py:
	  implement WebCam get_state instead of relying on base class

	  Fixes issue #110 and #134.

2005-04-05  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/producers/firewire/admin_gtk.py:
	  make sure volume increase changes get shown
	* flumotion/manager/component.py:
	  fix a very stupid bug related to indentation and for loops.
	  Fixes issue #198

2005-04-05  Andy Wingo  <wingo@pobox.com>
	
	* flumotion/component/converters/overlay/genimg.py
	(generate_overlay): If not text, don't draw.text.
	
	* flumotion/component/converters/overlay/overlay.xml: Add
	show_text prop.
	
	* flumotion/component/converters/overlay/overlay.py
	(createComponent): Follow config['show_text'].

2005-04-05  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/consumers/httpstreamer/resources.py:
	  debugging cleanups for better feedback

2005-04-04  Thomas Vander Stichele  <thomas at apestaart dot org>

	* data/glade/wizard_audio_encoder.glade:
	* data/glade/wizard_audiotest.glade:
	* data/glade/wizard_encoding.glade:
	* data/glade/wizard_http.glade:
	* data/glade/wizard_jpeg.glade:
	* data/glade/wizard_license.glade:
	* data/glade/wizard_overlay.glade:
	* data/glade/wizard_smoke.glade:
	* data/glade/wizard_soundcard.glade:
	* data/glade/wizard_theora.glade:
	* data/glade/wizard_tvcard.glade:
	* data/glade/wizard_vorbis.glade:
	* data/glade/wizard_webcam.glade:
	  UI cleanups:
	  - align labels on the left
	  - add/fix accessors
	  - various tweaks

2005-04-02  Thomas Vander Stichele  <thomas at apestaart dot org>

	patch by: Zaheer Abbas Merali <zaheermerali at gmail dot com>

	* flumotion/component/encoders/encoders.xml:
	* flumotion/component/encoders/vorbis.py:
	  downsample audio based on chosen bitrate
	  fixes issue #183

2005-04-02  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/gtk/client.py:
	  clarify other error condition
	* flumotion/component/effects/volume/volume.glade:
	  change UI a little to fit in panes and implement "distort" checkbox
	  use custom widget for level indicator with create function
	* flumotion/component/effects/volume/admin_gtk.py:
	  implement handling of the new ui
	* flumotion/component/effects/volume/volume.py:
	  use float multiplier values, not percentages
	* flumotion/component/producers/soundcard/admin_gtk.py:
	  make sure soundcard gets volumeSet for view node
	* flumotion/component/producers/firewire/firewire.py:
	  change value to be a multiplier
	* flumotion/component/producers/soundcard/soundcard.py:
	  make it clear we still need to implement setVolume

2005-04-02  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/common.py:
	  add _listPyFileRecursively
	  add _findEndModuleCandidates
	  use it in registerPackagePath to also rebuild all non-package
	  modules under the packagePath.  This solves #192
	* flumotion/test/test_common.py:
	  add test for new functions
	* flumotion/component/effects/volume/admin_gtk.py:
	* flumotion/component/producers/soundcard/admin_gtk.py:
	  clean up now that it works

2005-04-02  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/test/test_common.py:
	* flumotion/common/common.py:
	  add pathToModuleName + test
	  document registerPackagePath
	  fix several subtle problems in registerPackagePath:
	  - warn on non-existing paths
	  - remove previously registered packagePaths for the same bundle
	    (which is a flumotion-specific hack, so needs fixing better)
	  - make sure the new packagePath is at the top everywhere,
	    because reload/rebuild.rebuild take the first valid one

	* flumotion/admin/admin.py:
	  check correctly for locally cached paths (bundle name was missing),
	  so it again only downloads missing bundles

	* flumotion/admin/gtk/client.py:
	  change show_component to not use a tempmod module, so rebuilding
	  works nicely everywhere
	  clear self.current_component so it can be used to check if
	  something's shown yet
	  check if it's set when doing outside ui change notifications

	* flumotion/component/effects/volume/admin_gtk.py:
	* flumotion/component/producers/soundcard/admin_gtk.py:
	  use as test bed for registerPackagePath fixing

2005-04-01  Thomas Vander Stichele  <thomas at apestaart dot org>

	patch by: Zaheer Abbas Merali <zaheermerali at gmail dot com>

	* flumotion/component/effects/volume/admin_gtk.py:
	* flumotion/component/effects/volume/volume.glade:
	* flumotion/component/effects/volume/volume.py:
	* flumotion/component/producers/firewire/Makefile.am:
	* flumotion/component/producers/firewire/admin_gtk.py:
	* flumotion/component/producers/firewire/firewire.py:
	* flumotion/component/producers/firewire/firewire.xml:
	* flumotion/component/producers/soundcard/soundcard.py:
	  Add way to change volume for the volume effect
	  Give the firewire a UI component using this
	  Closes issue #184

2005-04-01  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/admin.py:
	  change debug message
	* flumotion/wizard/steps.py:
	  remove 'General error' from dialog
	* flumotion/worker/checks/video.py:
	  reorder some error handling

2005-04-01  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/registry.py:
	  raise a useful error message when parsing of registry xml files
	  fails

2005-04-01  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/componentui.py:
	  remove all of the commented-out code
	* flumotion/test/test_common_componentui.py:
	* flumotion/test/test_flavors.py:
	  use common's pb fake stuff

2005-04-01  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/manager/manager.py:
	  warn on failure of removing jobState, but continue anyway

2005-04-01  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/common.py:
	* flumotion/test/test_common.py:
	  add objRepr method and test

2005-03-31  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/pygobject.py:
	* flumotion/test/test_common_pygobject.py:
	* flumotion/test/Makefile.am:
	  add tests for flumotion.common.pygobject

2005-03-31  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/bouncers/bouncer.py:
	  implement remote_expireKeycardId for the admin ui to use
	  do some refactoring
	* flumotion/component/bouncers/bouncer.glade:
	* flumotion/component/bouncers/admin_gtk.py:
	  add a UI to bouncers allowing you to expire keycards
	* flumotion/component/bouncers/htpasswdcrypt.xml:
	  add admin GTK view
	* flumotion/component/consumers/httpstreamer/resources.py:
	  allow setting the requesterName and use it
	* flumotion/component/consumers/httpstreamer/http.py:
	  set the avatarId as the requesterName;
	  avatarId is passed through config dict, which needs fixing
	* flumotion/worker/job.py:
	  shoehorn the avatarId in the config dict when doing getComponent
	  as a temporary measure for getting the requesters' full avatarId
	  on the keycard
	* flumotion/manager/admin.py:
	  make componentuistates proxyable
	* flumotion/manager/component.py:
	  *Component -> *Avatar

	  This commit fixes #186.

2005-03-31  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/Makefile.am:
	* flumotion/common/componentui.py:
	  added objects for serializing ui state from component to view in admin
	* flumotion/test/Makefile.am:
	* flumotion/test/test_common_componentui.py:
	  and a test
	* flumotion/twisted/flavors.py:
	  fixed a nasty bug in the case where it subclasses from both
	  Cacheable and RemoteCache, and the dict of that type got stuff
	  appended and removed *twice*

2005-03-31  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/gtk/client.py:
	  call a .cleanup() on the old AdminGtk objects if they implement it
	  when showing a new component

2005-03-31  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/test/common.py:
	  add infrastructure to start test worker/admin/manager
	* flumotion/common/keycards.py:
	  add .getData() giving you a dict of admin ui-displayable info
	* flumotion/test/test_keycards.py:
	  test sending and receiving of keycards

2005-03-30  Thomas Vander Stichele  <thomas at apestaart dot org>

	* conf/minimal.xml:
	  fix config to have flow name
	* flumotion/manager/component.py:
	  solve KeyError bugs for non-feed components
	* flumotion/manager/main.py:
	  fix debug for when no manager section is present

2005-03-30  Andy Wingo  <wingo@pobox.com>

	* bin/flumotion-admin.in: Only use twisted's gtk2reactor if we
	have version 2.

	* flumotion/common/config.py
	(FlumotionConfigXML.get_string_value): libxml always gives us
	unicode, even when we encode values as strings. Try to make
	normal strings again, unless that isn't possible. Fixes #18.

2005-03-30  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/bundle.py:
	  raise proper error
	* flumotion/wizard/save.py:
	  shorten the name
	* flumotion/wizard/wizard.py:
	  placeholder for future code

2005-03-29  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/consumers/httpstreamer/http.py:
	* flumotion/component/consumers/httpstreamer/resources.py:
	  move setup to _start() method so a blocked port can be
	  recovered from

2005-03-28  Thomas Vander Stichele  <thomas at apestaart dot org>

	* TODO:
	  some more things to work on
	* flumotion/wizard/steps.py:
	* flumotion/wizard/wizard.py:
	  clean up, document, reorder

2005-03-28  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/converters/overlay/overlay.py:
	  Clean up temporary image file.  Fixes #188.

2005-03-26  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/consumers/httpstreamer/resources.py:
	  handle clients that have gone away before headers (fd == -1)
	  rearrange code more logically

2005-03-26  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/worker/main.py:
	* flumotion/worker/worker.py:
	  improve logging

2005-03-26  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/test/gtkunit.py:
	* flumotion/test/test_greeter.py:
	  clicked buttons flash
	  entries get typed in

2005-03-25  Andy Wingo  <wingo@pobox.com>

	* flumotion/test/gtkunit.py: New file, implements some functions
	for testing guis.

	* flumotion/test/test_greeter.py (WizardTest.testMakeGreeter): Use
	gtkunit.py.

2005-03-25  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/test/Makefile.am:
	* flumotion/test/test_twisted_compat.py:
	* flumotion/twisted/Makefile.am:
	* flumotion/twisted/compat.py:
	  add a twisted.compat to help alleviate 1.3/2.0 transition issues
	  add unit tests for it working on both 1.3 and 2.0

	* flumotion/component/bouncers/htpasswdcrypt.py:
	* flumotion/twisted/flavors.py:
	  use the warning filter

2005-03-24  Thomas Vander Stichele  <thomas at apestaart dot org>

	* bin/flumotion-admin.in:
	* flumotion/twisted/gstreactor.py:
	  add in some try/except stuff and various tweaks to make Flumotion
	  also work with Twisted 2.0

2005-03-24  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/errors.py:
	* flumotion/wizard/steps.py:
	* flumotion/worker/checks/video.py:
	  Make firewire wizard step react on changed workers
	  Add additional check for whether the device node is actually present

2005-03-24  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/manager/main.py:
	  log versions we are and are using

2005-03-24  Thomas Vander Stichele  <thomas at apestaart dot org>

	* bin/flumotion-admin.in:
	* bin/flumotion-manager.in:
	* bin/flumotion-worker.in:
	  don't insert paths that are already there - allowing me to
	  test against a Twisted somewhere else than /usr

2005-03-23  Andy Wingo  <wingo@pobox.com>

	* flumotion/test/test_greeter.py (WizardTest.testMakeGreeter):
	Update for changes.

	* flumotion/admin/gtk/greeter.py (Greeter): Derive from Wizard.

	* flumotion/admin/gtk/wizard.py: Add docs.
	(Wizard): Derive from GladeWindow. Take the name and list of steps
	as class variables.

	* tools/pycheckerhelp.py: Pacify pychecker?!?

	* data/glade/Makefile.am (glade_DATA): Added authenticate.glade
	and open-connection.glade. Thanks to Zaheer Merali for the tip.

2005-03-21  Thomas Vander Stichele  <thomas at apestaart dot org>

	* Makefile.am:
	* doc/reference/Makefile.am:
	* tools/pycheckerhelp.py:
	  update for checks.video
	* flumotion/wizard/steps.py:
	* flumotion/worker/checks/video.py:
	  cleanup and document

2005-03-21  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/worker/checks/video.py:
	* flumotion/worker/worker.py:
	  Fix the TV card __call__ error

2005-03-21  Andy Wingo  <wingo@pobox.com>

	* data/glade/wizard.glade:
	* data/glade/connection-dialog.glade: Center on parent.

	* flumotion/admin/gtk/client.py
	(Window._append_recent_connections): Show all recent connections,
	including the current one. Use the human-readable string supplied
	by get_recent_connections(). Limit the number of recent
	connections to 4.
	(Window.admin_connected_cb): Hackily repeat the new human-readable
	code here.

	* flumotion/admin/gtk/connections.py
	(Connections.get_recent_connections): Return the human-readable
	strings as well.
	(Connections._populate_liststore.human_readable): New
	string representation for connections.

	* flumotion/ui/fgtk.py (FComboBox._init_enum_model): Avoid
	deprecated gtk.TRUE.

2005-03-14  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/config.py:
	* flumotion/common/planet.py:
	* flumotion/component/consumers/httpstreamer/resources.py:
	* flumotion/manager/component.py:
	* flumotion/manager/manager.py:
	  Fix bouncers

2005-03-11  Andy Wingo  <wingo@pobox.com>

	* data/glade/greeter-authenticate.glade:
	* flumotion/admin/gtk/greeter.py (Authenticate.setup):
	* flumotion/admin/gtk/connections.py
	(Authenticate.auth_method_combo): Fire and handle signals
	appropriately.

	* flumotion/test/test_greeter.py (WizardTest.testMakeGreeter): Fix
	for changes in the auth widget.

	* flumotion/ui/glade.py (flumotion_glade_custom_handler): Make
	sure the module is loaded. Add some more informative errors.
	(GladeWidget.__init__): More informative errors.
	(GladeWindow.__init__): More informative errors.

	* flumotion/wizard/wizard.py (WizardStep.glade_dir): New class
	var, like GladeWindow.
	(Wizard.__init__): s/parent_widget/parent_window/
	(register_step): If there's already a step of the given name,
	replace it. Add initial arg, if true the page will be prepended to
	the list instead of appended.

	* flumotion/admin/gtk/client.py (Window.debug_start_shell_cb):
	Only use the spiffy console if we have python 2.4.

	* data/image/wizard/consumption.png: New image, from the artwork
	repository.
	* data/image/wizard/flow.png: Moved here from consumption.png.

2005-03-10  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/test/Makefile.am:
	* flumotion/test/test_common_gstreamer.py:
	  add a gstreamer test

2005-03-10  Thomas Vander Stichele  <thomas at apestaart dot org>

	* doc/random/vumeter:
	* flumotion/test/test_ui_fgtk.py:
	* flumotion/ui/fgtk.py:
	  fix the vu meter in the low range; increase coverage
	  
2005-03-10  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/service/service.py:
	  have the worker start with the debug specified in the config instead

2005-03-10  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/gtk/connections.py:
	  sacrifice animals to the god of python checking

2005-03-09  Thomas Vander Stichele  <thomas at apestaart dot org>

	* data/glade/admin-wizard.glade:
	* data/glade/authenticate.glade:
	* data/glade/connection-dialog.glade:
	* data/glade/connections.glade:
	* data/glade/greeter-initial.glade:
	* data/glade/open-connection.glade:
	* data/glade/wizard.glade:
	* data/glade/wizard_consumption.glade:
	* data/glade/wizard_disk.glade:
	* data/glade/wizard_firewire.glade:
	* data/glade/wizard_license.glade:
	* data/glade/wizard_overlay.glade:
	* data/glade/wizard_source.glade:
	* data/glade/wizard_theora.glade:
	* data/glade/wizard_vorbis.glade:
	* tools/gtk-2.4-ify-glade-files:
	  remove focus_on_click and add_tearoffs

2005-03-09  Thomas Vander Stichele  <thomas at apestaart dot org>

	* data/glade/authenticate.glade:
	* data/glade/connection-dialog.glade:
	* data/glade/greeter-authenticate.glade:
	* data/glade/greeter-connect_to_existing.glade:
	* data/glade/greeter-initial.glade:
	* data/glade/greeter-load_connection.glade:
	  2.4-ify
	* flumotion/admin/gtk/client.py:
	  fix an AP
	* flumotion/common/code.py:
	  remove some unused imports

2005-03-09  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/test/test_checkers.py:
	* flumotion/twisted/checkers.py:
	* flumotion/twisted/credentials.py:
	* flumotion/worker/job.py:
	* flumotion/worker/worker.py:
	  increase coverage for checkers to 100%.  Fix obvious security
	  problem.  Rename Anonymous to Passwordless since that's what it is.

2005-03-09  Andy Wingo  <wingo@pobox.com>

	* flumotion/admin/gtk/client.py (Window.debug_start_shell_cb): Use
	flumotion.common.code instead of code.

	* flumotion/common/code.py: New file, makes the debugging shell
	run in parallel with the GTK main loop, and makes tab completion
	work. Whoop!

2005-03-08  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/keycards.py:
	  allow setting a domain on a keycard
	* flumotion/component/consumers/httpstreamer/http.py:
	* flumotion/component/consumers/httpstreamer/http.xml:
	* flumotion/component/consumers/httpstreamer/resources.py:
	  allow a "domain" keyword in config
	  set it on keycards
	  use it in HTTP auth challenge
	* flumotion/test/test_http.py:
	  finally fix the test marked skip for unauthorized

2005-03-08  Andy Wingo  <wingo@pobox.com>

	* flumotion/admin/gtk/wizard.py (Wizard.set_page): Remove the
	requirement that there be a widget named 'page' in a wizard step.

	* data/glade/authenticate.glade:
	* flumotion/admin/gtk/connections.py (Authenticate): New widget,
	factored out of the greeter.

	* data/glade/greeter-authenticate.glade: 
	* flumotion/admin/gtk/greeter.py (Authenticate): Change to use new
	connections.Authenticate widget.

	* flumotion/ui/glade.py (flumotion_glade_custom_handler): New
	custom glade handler, set when the module is loaded.

	* flumotion/admin/gtk/wizard.py (WizardStep.next_pages): Derive
	from GladeWidget, ditch our own glade-like code. Same behaviour
	tho.
	(Wizard.__init__): Show pages when creating them.
	(Wizard.set_page): `page' itself is a widget now.

	* flumotion/admin/gtk/connections.py (ConnectionsDialog.glade_file): 
	* flumotion/admin/gtk/greeter.py
	(ConnectToExisting.open_connection)
	(LoadConnection.title): No need for custom glade handlers, thus no
	need for __init__.

	* data/glade/greeter-load-connection.glade:
	* data/glade/connection-dialog.glade:
	* data/glade/greeter-connect_to_existing.glade: Construct custom
	widgets with fully qualified module names.

2005-03-08  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/common.py:
	* flumotion/test/test_common.py:
	* flumotion/worker/main.py:
	  increase coverage, rename waitForKill to be more clear
	* flumotion/common/pygobject.py:
	* flumotion/manager/admin.py:
	  doc fixes

2005-03-08  Thomas Vander Stichele  <thomas at apestaart dot org>

	* data/glade/open-connection.glade:
	  work with gtk 2.4
	* flumotion/admin/gtk/parts.py:
	  work with py 2.3

2005-03-07  Andy Wingo  <wingo@pobox.com>

	* flumotion/common/pygobject.py (with_construct_properties): New
	decorator, takes care of G_PARAM_CONSTRUCT properties. Make it
	work with gproperty(). Fix a bug whereby all instance of the same
	class share the same gproperty dict, exposing the construct bug.

	* flumotion/admin/gtk/parts.py (ComponentsView): Use
	with_construct_properties.

	* flumotion/test/test_pygobject: Test the
	with_construct_properties decorator.

	* flumotion/test/test_greeter.py (WizardTest.testMakeGreeter):
	Update to work with refactored connections widget, "fix" the
	hanging-window problem.

	* data/glade/greeter-connect_to_existing.glade:
	* data/glade/open-connection.glade:
	* flumotion/admin/gtk/greeter.py:
	* flumotion/admin/gtk/connections.py: "Connect to existing"
	factored out into a GladeWidget.

	* tests/construct-properties-do-not-work.py: New file,
	demonstrates that construct properties don't work in pygtk.

2005-03-07  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/bundleclient.py:
	* flumotion/worker/worker.py:
	  doc and debug changes

2005-03-02  Andy Wingo  <wingo@pobox.com>

	* flumotion/ui/glade.py (GladeWindow.__init__): Make the parent
	argument optional, so toplevel windows can descend from this
	class.

	* flumotion/admin/gtk/client.py (Window.file_export_configuration_cb) 
	(Window.on_export_response, Window.getConfiguration_cb) 
	(Window.file_import_configuration_cb, Window.on_import_response):
	Implement import/export of configurations.

	* data/glade/admin.glade: Add menu items to import and export
	configurations.

	* flumotion/admin/admin.py (AdminModel.getConfiguration): New
	method, foo.

	* flumotion/manager/admin.py
	(AdminAvatar.perspective_getConfiguration): New method, bla bla.
	So many levels of encapsulation, eh.

	* flumotion/manager/manager.py (Vishnu.getConfiguration): New
	method, gets the configuration of the manager as an XML string.

	* flumotion/common/config.py (FlumotionConfigXML.export): Added
	method, exports the configuration as a pretty-printed xml string.

	* configure.ac: 
	* Makefile.am (EXTRA_DIST): 
	* env.in: New script, sets up a dev environment for
	flumotion.

2005-02-20  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/consumers/disker/admin_gtk.py:
	  make UI visisble again

2005-02-16  Andy Wingo  <wingo@pobox.com>

	* flumotion/manager/manager.py (Vishnu._startErrback): Add an
	errback if the component could not be started.
	(Vishnu._workerStartComponentDelayed): Connect to the errback.

	* flumotion/worker/worker.py (WorkerMedium.remote_start): If
	deferredStartCreate returns None, then there's already a start in
	progress. Handle that.
	(WorkerBrain.deferredStartFailed): New handler, removes the
	deferred start from the list if the start failed, calling the
	deferred's errback.
	(JobAvatar._startErrback): Call deferredStartFailed.

	* flumotion/admin/gtk/client.py (Window.runWizard): Pass our
	window as the parent.
	(Window.admin_connected_cb): Make sure the parent window is
	realized before setting it as the transient parent, avoids some
	gtk criticals.

	* flumotion/wizard/wizard.py (Wizard.__init__): Add new initarg,
	parent_widget. Really should be parent_window, but anyway it is
	used in set-transient-for.

2005-02-16  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	  back to trunk

=== release 0.1.6 ===

2005-02-16  Thomas Vander Stichele  <thomas at apestaart dot org>

	* conf/managers/default/planet.xml:
	  remove debug
	* data/glade/admin.glade:
	  fixify glade stuff for 2.4
	* flumotion/component/muxers/ogg.py:
	  add a huge improvement for stream muxing stability by setting
	  max delay and max page delay to 0.5 secs instead of 5 secs

2005-02-16  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/test/test_registry.py:
	  partial registry files should not have <directory> root entries

2005-02-16  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/configure/uninstalled.py.in:
	  Do not create _build by making sure we check correctly for
	  presence of _build

2005-02-16  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/registry.py:
	  make sure the registry doesn't get rebuilt all the time.
	  Really, *all* the time.

2005-02-15  Andy Wingo  <wingo@pobox.com>

	* flumotion/admin/gtk/client.py (Window.admin_connected_cb):
	Actually run the wizard, yo.

2005-02-15  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/gtk/client.py:
	* flumotion/admin/gtk/parts.py:
	  some debug
	* flumotion/common/planet.py:
	  return a deferred list for empty() of state
	* flumotion/manager/manager.py:
	  order emptying correctly
	* flumotion/twisted/flavors.py:
	  return a deferred list for all observer updates on state
	  make a copy of list when removing

2005-02-15  Andy Wingo  <wingo@pobox.com>

	* data/glade/greeter-initial.glade: Reword some things.

	* flumotion/admin/gtk/greeter.py (LoadConnection.title): Change to
	"Recent connections".

	* flumotion/component/producers/webcam/admin_gtk.py
	(WebcamAdminGtk.setup): Pass the state as the first arg, not the
	name.

	* flumotion/admin/gtk/client.py (Window.start_stop_notify_cb):
	Move clear_all updating here from
	_set_stop_start_component_sensitive.

2005-02-15  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/manager/manager.py:
	* flumotion/test/test_manager_manager.py:
	  create a graph of component dependencies

2005-02-15  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/manager/manager.py:
	* flumotion/test/test_manager_manager.py:
	  revert change to emptyPlanet until we refactor manager code

2005-02-15  Andy Wingo  <wingo@pobox.com>

	* flumotion/manager/manager.py (Vishnu.emptyPlanet): Simplify
	because we require that all of the components be sleeping already.

	* flumotion/admin/gtk/client.py (Window.manage_start_all_cb): New
	callback.
	(Window.manage_stop_all_cb): Implement via a simple "for x in
	l..." idiom instead of emptyPlanet().
	(Window.manage_clear_all_cb): New callback, uses
	cleanComponents->emptyPlanet.

	* data/glade/admin.glade: Add a clear-all menu button.

	* flumotion/admin/gtk/client.py (Window.current_component_state):
	New instance var, either None or the current AdminComponentState
	being shown.
	(Window._create_ui): Set the start/stop component ui widgets'
	sensitivity when the ui is made. Hook into the can-start-any and
	can-stop-any notifications to keep the sensitivity state current.
	(Window.stateSet): Also handle notifications of 'mood'.
	(Window.start_stop_notify_cb): New cb, sets sensitivity of
	stop-all/start all.
	(Window._set_stop_start_component_sensitive): New routine, sets
	sensitivity according to current_component_state.
	(Window._components_view_has_selection_cb): Set
	current_component_state.

	* flumotion/admin/gtk/parts.py (ComponentsView): Landed the
	can-start-any and can-stop-any properties.
	(ComponentsView.update_start_stop_props): New proc, scans the
	treemodel to see if we need to update the can-start-any or
	can-stop-any properties. 
	(ComponentsView.update, ComponentsView._set_mood_value): Hook into
	update_start_stop_props().

	* flumotion/admin/admin.py (AdminModel): Moved can-start-any and
	can-stop-any properties to ComponentsView.

2005-02-14  Andy Wingo  <wingo@pobox.com>

	* m4/as-python.m4 (AS_PATH_PYTHON): Use textual comparison for
	version parts, as some pythons have non-numeric micros (2.4.1a0
	for example).

	* flumotion/test/test_pygobject.py: Add a test for gsignal and
	gproperty.

	* flumotion/admin/admin.py (AdminModel): Add can-start-any and
	can-stop-any properties using gproperty().

	* flumotion/common/pygobject.py (gproperty): New function, adds a
	property to the calling class. Will install
	do_get_property/do_set_property implementations if they are not
	already present.

2005-02-14  Christian Schaller <christian at fluendo dot com>

	* Add desktop file with icon for admin tool

2005-02-14  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/feedcomponent.py:
	  notify both old and new state
	* flumotion/manager/admin.py:
	  add componentStart perspective method
	* flumotion/manager/component.py:
	  manage feeder's readiness correctly
	* flumotion/manager/manager.py:
	  implement componentStart for one component

2005-02-14  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/errors.py:
	  add some errors
	* flumotion/common/log.py:
	  change logging some more

2005-02-14  Andy Wingo  <wingo@pobox.com>

	* data/glade/admin.glade: Remove "Stop all" toolbar button. It
	doesn't work right now.

	* flumotion/common/bundle.py (BundlerBasket.getDependencies):
	Rework to check if the argument is a valid bundle, and raise an
	exception otherwise.

	* flumotion/worker/checks/video.py (check1394): Go to PLAYING, not
	READY. Bug introduced on 02-08.
	(check1394.iterate): Whoops, actually return if the bin failed to
	iterate.

	* flumotion/test/test_parts.py (TestComponentsView.testSelected):
	Connect to the right signal.

	* flumotion/admin/gtk/parts.py (ComponentsView::has-selection):
	Renamed from ::selected to indicate that we are fired when the
	selection is None. Emitters adapted.

	* flumotion/admin/gtk/client.py (Window._create_ui): Connect to
	has-selection rather than selected on the components view, and
	call _set_component_ops_sensitive() to set initial sensitivity
	state.
	(Window._set_component_ops_sensitive): New method, sets the
	sensitivity of the start/stop toolbar and menu items.
	(Window._components_view_has_selection_cb): Adapt to has-selection
	signal, and call _set_component_ops_sensitive(). Renamed from
	...selected_cb.

	* flumotion/admin/gtk/Makefile.am (component_PYTHON): Add
	connections.py to the list. Thanks to Christian Frederick Kalager
	Schaller for the tip.

2005-02-09  Andy Wingo  <wingo@pobox.com>

	* flumotion/admin/gtk/client.py (Window.componentCallRemote): Fix
	a bug in the arglist to ...Status.
	(Window.componentCallRemoteStatus): Renamed the callbacks and
	errbacks.

	* flumotion/admin/gtk/connections.py
	(ConnectionsDialog.on_cancel): Hooked up!
	(ConnectionsDialog.on_has_selection): Use self.widgets[], not
	attrs to get the widget. Word.

	* flumotion/admin/gtk/client.py (Window._component_do): Finish
	duplicating componentCallRemoteStatus. Gee, code duplication is
	great. Wonder why I'm writing these changelogs.

	* flumotion/wizard/save.py (WizardSaver.getVideoOverlay): Add CC
	only if the license is set.

	* flumotion/configure/installed.py.in: 
	* flumotion/configure/uninstalled.py.in: Make sure the cache,
	registry, and log dirs are available.

	* flumotion/admin/gtk/greeter.py (Initial.next_pages): Fix the
	order so that load_connection is first by default.

	* flumotion/admin/gtk/wizard.py (Wizard.set_page): Disable the
	back button as appropriate.

	* flumotion/admin/gtk/wizard.py (WizardStep.next_pages): New class
	member.
	(WizardStep.__init__): Go ahead and load up the glade file here
	instead of in Wizard.set_page.
	(WizardStep.is_available): New method. By default just returns
	True.
	(WizardStep.setup): Provide default implementation so we don't
	have to hasattr(foo,'setup').
	(WizardStep.__init__): Take an extra arg, glade_prefix, the prefix
	when looking for glade files.
	(Wizard.__init__): Pass a glade_prefix to the pages.
	(Wizard.set_page): Glade init moved to the pages. Compute
	available pages to pass to WizardStep.setup().

	* flumotion/admin/gtk/greeter.py (Initial, ConnectToExisting)
	(Authenticate, LoadConnection): Add next_pages, indicating the set
	of possible next steps. Change setup() to take an extra argument,
	available_pages, the subset of next_pages that are actually
	available.
	(Initial.setup): New method, will desensitize unavailable next
	steps.
	(LoadConnection.is_available): New method, returns True only if
	there are connections available to choose.

2005-02-08  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/component.py:
	* flumotion/component/feedcomponent.py:
	  fix some error handling
	  fix heartbeat callback cleanup

2005-02-08  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/base/admin_gtk.py:
	* flumotion/component/component.py:
	* flumotion/component/feedcomponent.py:
	* flumotion/manager/admin.py:
	  move _start/_stop functions around

2005-02-08  Andy Wingo  <wingo@pobox.com>

	* flumotion/wizard/wizard.py (Wizard.present): New proxy method.

	* flumotion/admin/gtk/connections.py (Connections): Use fake uris
	instead of multiple columns.
	(Connections.on_grab_focus): Implement a handler that bypasses the
	scrollwindow, instead focusing the treeview directly
	(Connections.on_row_activated): Emit ::connection-activated.
	(Connections::connection-activated): New signal.

	* flumotion/admin/gtk/client.py (Window.runWizard): Take care of
	the one-and-only-one wizard logic all in this function.

	* flumotion/admin/gtk/greeter.py
	(LoadConnection.on_connection_activated): Hooked up, yo!
	(LoadConnection.setup): Grab focus on the Connections.

	* flumotion/admin/admin.py (AdminModel._writeConnection): Write
	the manager, too.

	* data/glade/greeter-initial.glade: Make "load a previous
	connection" be the first and default option.

	* data/glade/connections.glade: Headers not visible any more, we
	use pseudo-uris. Not sure if this is best.

	* data/glade/connection-dialog.glade: Play with the padding, add a
	label. Makes it look less bad. Connect to ::connection-activated.

	* data/glade/greeter-load_connection.glade: Connect the
	connection-activated signal.

	* tools/gtk-2.4-ify-glade-files: New script, filters out gtk 2.6
	properties from glade files. Ugly, but hey.

2005-02-08  Thomas Vander Stichele  <thomas at apestaart dot org>

	* data/glade/admin.glade:
	* flumotion/admin/gtk/connections.py:
	  fixes for gtk 2.4 and python 2.3

2005-02-08  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/gtk/client.py:
	  provide both stop and start

2005-02-08  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/dag.py:
	* flumotion/test/test_dag.py:
	  some more DAG fun

2005-02-08  Andy Wingo  <wingo@pobox.com>

	* flumotion/admin/gtk/client.py (Window.manage_stop_component_cb) 
	(Window.manage_start_component_cb): New callbacks, connected to
	the menus and toolbars.
	(Window._component_start, Window._component_stop): Reworked to use
	componentCallRemoteStatus.
	(Window.componentCallRemote): New routine, calls
	componentCallRemoteStatus with no status.
	(Window.componentCallRemoteStatus): New routine, calls a method on
	a component, displaying information in the status bar as
	appropriate.

	* data/glade/admin.glade: Remove "New" items from menu and
	toolbar.

	* flumotion/worker/checks/video.py
	(do_element_check.state_changed_cb): Yikes, fixed some bugs. When
	the check_proc does not return a deferred, callback on the
	deferred that we were given. Don't bother returning a value from a
	state-changed cb.
	(do_element_check): Only set the pipeline to the requested state,
	READY by default. Avoids spurious errors when PLAYING is not
	necessary.

2005-02-07  Andy Wingo  <wingo@pobox.com>

	* flumotion/admin/gtk/client.py:
	* glumotion/admin/gtk/connections.py (ConnectionsDialog): New
	object, a dialog to open a recent connection. Caused general
	refactoring in client.py.

	* data/glade/connection-dialog.glade: New file, shown as
	File/Open.

	* data/glade/Makefile.am (glade_DATA): Add connections.glade and
	connection-dialog.glade to the dist.

	* flumotion/ui/glade.py: New file, implements some base classes
	for glade-backed widgets and windows.

	* flumotion/admin/gtk/main.py (_runInterface): Don't write the
	connection, admin.py does it for us.

	* flumotion/admin/gtk/client.py
	(Window._append_recent_connections): Clean the list of recent
	connections before adding anything.
	(Window.__init__): Don't cache the Connections object.

	* flumotion/admin/admin.py (AdminModel.user, AdminModel.passwd):
	Changed from username and passwd so as to reflect the fields in
	the greeter state structure and the connections xml file.
	(AdminModel._writeConnection): New method, taken out from main.py.
	Writes a xml representation of the connection to a file at every
	connect. As a side effect, this allows us to keep time ordering
	for the connections regardless of how they were opened.

	* flumotion/wizard/wizard.py (Wizard.destroy): New method, will
	proxy the destroy to the gtk-window and also free some resources.
	(::destroy): New signal, fired if the wizard gets destroyed
	(i.e., the window gets destroyed somehow).

	* flumotion/admin/gtk/connections.py: Remove some printf's.
	(Connections.get_recent_connections): New method, returns a list
	of recent connections.

	* flumotion/admin/gtk/client.py (Window.open_connected_cb) 
	(Window.open_refused_cb, Window.on_open_recent) 
	(Window._append_recent_connections): New methods, implementing the
	recent connections menu items.
	(Window._setAdminModel): Allow re-setting the model. If
	re-setting, make sure the wizard gets destroyed.

	* data/glade/admin.glade: Name the connections menu.

	* flumotion/admin/gtk/greeter.py: Moved connections code out to
	connections.py.

	* flumotion/test/test_greeter.py (WizardTest.testMakeGreeter):
	Fixed so that (1) assertions actually cause the test to fail, and
	(2) that the tests actually pass.

	* flumotion/admin/gtk/connections.py: Code for the connections
	widget.

	* data/glade/connections.glade: New file, glade interface for the
	connections manager widget.

	* data/glade/greeter-load_connection.glade: Embed a custom widget
	connections.Connections().

2005-02-04  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/Makefile.am:
	* flumotion/common/dag.py:
	* flumotion/test/Makefile.am:
	* flumotion/test/test_dag.py:
	  adding code for direct acyclic graphs

2005-02-03  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/worker/job.py:
	* flumotion/worker/worker.py:
	  doc fixes
	* flumotion/manager/component.py:
	  make one feederset per flow and handle them correctly
	  clear up avatarId - getName() confusion
	* flumotion/manager/manager.py:
	  use path for avatarId of components now
	  add Vishnu.componentDetached and make everything symmetrical
	* flumotion/manager/worker.py:
	* flumotion/test/test_manager_manager.py:
	* flumotion/test/test_worker_worker.py:
	  various fixes

2005-02-03  Andy Wingo  <wingo@pobox.com>

	* data/glade/Makefile.am:
	* data/glade/greeter-load_connection.glade: Glade file for new
	page.

	* flumotion/admin/gtk/main.py (_runInterface): When getting back
	from the greeter, save the connection to disk.

	* flumotion/admin/gtk/wizard.py (Wizard.set_page): Set Next to
	sensitive when going to a new page. (::setup should override it if
	necessary.)

	* flumotion/admin/gtk/greeter.py (parse_connection): New function,
	parses a saved connection file into a hash.
	(_populate_liststore): Load up the list of previous connections
	from files in the registry dir.
	(_clear_iter): Remove a row and the corresponding connection file.
	(LoadConnection.title): New page, will load up a saved connection.
	(Greeter): Add the LoadConnection page.

2005-02-03  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/manager/main.py:
	* flumotion/manager/manager.py:
	* flumotion/test/test_manager_manager.py:
	  give the manager the right name

2005-02-03  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/admin.py:
	* flumotion/manager/admin.py:
	  change more functions to act on state instead of name
	  remove deprecated functions

2005-02-02  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/admin.py:
	* flumotion/admin/gtk/client.py:
	* flumotion/manager/admin.py:
	* flumotion/manager/component.py:
	  rework more functions to work on componentState instead of name

2005-02-02  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/admin.py:
	* flumotion/admin/gtk/client.py:
	* flumotion/component/base/admin_gtk.py:
	* flumotion/component/consumers/httpstreamer/admin_gtk.py:
	* flumotion/component/producers/bttv/admin_gtk.py:
	* flumotion/component/producers/soundcard/admin_gtk.py:
	* flumotion/component/producers/videotest/admin_gtk.py:
	* flumotion/manager/admin.py:
	* flumotion/manager/manager.py:
	  move a bunch of functions to use component state instead of component
	  name

2005-02-02  Andy Wingo  <wingo@pobox.com>

	* flumotion/admin/gtk/wizard.py: Set the bg/base on the whole
	content area for INSENSITIVE so it doesn't look like krap.
	(set_step): Make the sidebar text smaller.
	
	* flumotion/admin/gtk/client.py (Window._create_ui): Set PLAY and
	PAUSED images from our own store instead of from stock, as they
	are from GTK+ 2.6.

	* data/glade/wizard.glade: Fool around with dimensions some more.

	* data/glade/admin.glade: No handled toolbar -- that's a user
	decision.

	* data/glade/admin-wizard.glade: Fiddle with eventboxes so that
	colors aren't nasty when setting INSENSITIVE.

	* data/images/Makefile.am:
	* data/images/16x16/Makefile.am:
	* data/images/24x24/Makefile.am:
	* data/images/16x16/play.png:
	* data/images/24x24/play.png:
	* data/images/16x16/pause.png
	* data/images/24x24/pause.png: New images from GTK+ 2.6.

	* flumotion/wizard/wizard.py: Try to grab focus when run. Doesn't
	work yet.

	* data/glade/wizard.glade: Fiddle with the default dimensions.

	* data/glade/admin.glade: Focus the treeview first.

	* flumotion/admin/gtk/client.py (Window.widgets): New instance
	attribute, a dict of widgets from glade.
	(Window._create_ui): Populate Window.widgets. Set custom icons for
	the Run Wizard toolbar and menu items.
	(Window.file_new_cb, Window.file_open_cb): Raise NotImplemented
	errors instead of doing shite.
	(Window.file_save_cb): Removed, it didn't do anything anyway.
	(Window.manage_stop_all_cb): Used to be the clean toolbar button,
	now labeled as "stop all".
	(Window.manage_run_wizard_cb): New cb from menu and toolbar.
	(Window.help_about_cb): No emails. Vainly add emails to list.

	* data/glade/admin.glade: Reworked quite a bit.
	s/File/Connection/, added a Manage menu, menu items to stop and
	start components individually or as a group, a wizard button,
	removed the exit button, etc.

	* data/images/16x16/wizard.png:
	* data/images/24x24/wizard.png: New images from David Vignoni.

	* data/images/Makefile.am
	* data/images/16x16/Makefile.am
	* data/images/24x24/Makefile.am
	* configure.ac: Add data/images/{16x16,24x24} dirs.

2005-02-02  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/admin.py:
	  make the view register listeners on states itself
	  add callViews
	  remove remote_componentAdded/Removed
	* flumotion/admin/gtk/client.py:
	  listen to stuff in default flow

2005-02-02  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/manager/manager.py:
	* flumotion/test/test_manager_manager.py:
	  test emptyPlanet()

2005-02-02  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/admin.py:
	  use crap string for connected state, sigh
	* flumotion/admin/gtk/client.py:
	  _createUI() now returns a window
	* flumotion/manager/manager.py:
	  start components when a config gets loaded and workers are logged
	  in
	* flumotion/test/test_manager_manager.py:
	  refactor test to use common functions
	  add test for config loaded after workers log in

2005-02-02  Andy Wingo  <wingo@pobox.com>

	* flumotion/admin/gtk/client.py (Window.__init__): Set the model
	after setting up the gui.
	(Window.admin_connected_cb): Fix title.

	* flumotion/admin/admin.py (AdminModel._connectedCallback): Set
	the state properly.

2005-02-02  Thomas Vander Stichele  <thomas at apestaart dot org>

	* conf/managers/default/flows/ogg-test-theora.xml:
	  change flow to default
	* flumotion/admin/admin.py:
	* flumotion/admin/gtk/client.py:
	* flumotion/manager/admin.py:
	  remove remote_initial, and make admin request state of
	  workerheaven and planet

2005-02-02  Andy Wingo  <wingo@pobox.com>

	* flumotion/admin/gtk/main.py: Prune of dead code. Re-present the
	greeter if the model connection fails. Wait for model connection
	to make the main window.

	* flumotion/admin/gtk/wizard.py (Wizard.destroy) 
	(Wizard.set_sensitive): New methods.
	(Wizard.run): Don't destroy the window when finished, in case we
	need to run it again.

	* flumotion/admin/gtk/client.py (Window._setAdminModel): Call the
	connected cb ourselves if model.isConnected().
	(Window.admin_connected_cb): Run the wizard if the model has no
	components.
	(Window.update_components): Return the component list.

	* flumotion/admin/gtk/greeter.py (Greeter.destroy, Greeter.hide) 
	(Greeter.show, Greeter.set_sensitive): New methods, proxy for the
	Wizard object.

	* flumotion/admin/admin.py:
	(AdminModel.state): New instance variable, either 'connected' or
	'disconnected'. Accessed by AdminModel.isConnected().

	* flumotion/manager/manager.py:
	* flumotion/admin/gtk/parts.py:
	* flumotion/common/planet.py:
	* flumotion/admin/admin.py:
	* flumotion/twisted/flavors.py: s/is None/== None/,
	s/is not None/!= None/ to avoid pychecker warnings with python
	2.4.

2005-02-02  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/Makefile.am:
	* flumotion/common/component.py:
	  remove this file, everything merged in planet.py
	* flumotion/twisted/flavors.py:
	* flumotion/worker/worker.py:
	  fix some doc errors

2005-02-02  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/manager/component.py:
	* flumotion/manager/manager.py:
	* flumotion/manager/worker.py:
	* flumotion/test/test_manager_manager.py:
	  more cleanup and tests

2005-02-02  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/manager/component.py:
	  cleanup heartbeat when logging out
	* flumotion/manager/manager.py:
	* flumotion/test/test_manager_manager.py:
	  decide on and map avatarId before starting; add tests

2005-02-02  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/test/test_manager.py:
	  add test for component mappers
	  add tests with fake components and workers logging in
	* flumotion/common/planet.py:
	  move moods here
	  add JobStates
	  add parent keys
	  add emtpy() functions to atmosphere and flow
	* flumotion/admin/admin.py:
	  add some mood checking to initial
	* flumotion/admin/gtk/parts.py:
	  check values of state before setting them
	  make the treeview a state listener
	* flumotion/admin/gtk/client.py:
	  add check for sleeping components on getting the UI
	* flumotion/component/component.py:
	* flumotion/component/consumers/disker/disker.py:
	* flumotion/component/consumers/httpstreamer/http.py:
	* flumotion/component/feedcomponent.py:
	  change location of moods
	* flumotion/worker/job.py:
	* flumotion/worker/worker.py:
	* flumotion/manager/worker.py:
	  use avatarId instead of name everywhere
	  use avatarId assigned by manager to log in to workerbrain and
	  manager
	* flumotion/manager/admin.py:
	  add perspective_getState()
	* flumotion/manager/manager.py:
	  add ComponentMapper
	  create planetstate from config
	  move functionality to Vishnu
	  add emptyPlanet()
	* flumotion/manager/base.py:
	  add some checking
	* flumotion/manager/component.py:
	  separate between componentstate and jobstate
	* flumotion/test/test_worker_heaven.py:
	* flumotion/test/test_worker_worker.py:
	  test fixing

2005-02-01  Andy Wingo  <wingo@pobox.com>

	* flumotion/wizard/wizard.py: Fix the ugly colors of the sidebar.

	* flumotion/wizard/steps.py: Set the insensitive base color after
	realizing for Firewire. Same trick for Summary.

	* flumotion/admin/gtk/wizard.py: Set the insensitive base, not the
	normal base.

	* data/glade/wizard_summary.py: Use a GtkTextView instead of a
	label for the summary text -- allows the text to reflow according
	to the window size.

	* data/glade/wizard_firewire.py: Set to insensitive so as to
	disallow selection.

2005-02-01  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/twisted/flavors.py:
	  add default values for get when a key is None
	  add removeListener()

2005-02-01  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/errors.py:
	  add some errors for future use
	* flumotion/common/log.py:
	  change logging format again

2005-02-01  Andy Wingo  <wingo@pobox.com>

	* flumotion/test/test_wizard.py: Make sure Firewire is ready to be
	tested, and avoid the fgtk tests with it -- we don't use them yet.
	All in all, an evil patch.

	* flumotion/worker/checks/video.py (do_element_check): Reworked so
	as to go ahead and do the check instead of returning a thunk.
	Optionally go to a state higher than READY. If the check_proc
	returns a Deferred, don't set the pipeline to NULL (the check_proc
	becomes responsible for it). Handle Deferred returns properly.
	(check1394): Adapted to check the width and height of the video.
	An interesting example, because it uses twisted's scheduling to
	iterate the pipeline until it has caps.

	* flumotion/component/feedcomponent.py (FeedComponent.__init__):
	Add some debugging.
	(ParseLaunchComponent.setup_pipeline): Raise an error with the
	proper arg.

	* flumotion/component/producers/firewire/firewire.xml: Add
	scaled_width and is_square component properties.

	* flumotion/component/producers/firewire/firewire.py
	(createComponent): Adapt to allow for setting the pixel aspect
	ratio and padding the video size.

	* flumotion/wizard/steps.py (FireWire): Reworked to detect the
	size of the output, add option for setting square pixels, contrain
	the aspect ratio, and provide a width correction method.

	* flumotion/wizard/wizard.py (Wizard.error_dialog): fixed long
	line.
	(Wizard.get_step_state): Removed, just use step::get_state().
	(Wizard._sidebar_clean): Don't set the default size of the vbox,
	we set it in the glade file.

	* flumotion/wizard/steps.py
	* flumotion/wizard/wizard.py
	(WizardStep.get_component_properties): Made to be a simple wrapper
	around ::get_state(). All steps changed to implement get_state().

	* flumotion/twisted/Makefile.am: Added gtk2reactor.py.

	* flumotion/twisted/gtk2reactor.py: New file, branched from
	twisted's gtk2reactor. Avoids deprecated functions, and some
	pychecker errors fixed. To remove when twisted 2.0 comes out.

	* flumotion/worker/worker.py
	* flumotion/worker/config.py
	* flumotion/manager/component.py
	* flumotion/component/consumers/disker/disker.py
	* flumotion/component/consumers/httpstreamer/resources.py
	* flumotion/component/consumers/httpstreamer/admin_gtk.py
	* flumotion/component/consumers/httpstreamer/http.py
	* flumotion/common/config.py
	* flumotion/common/reload.py
	* flumotion/common/enum.py
	* flumotion/wizard/save.py
	* flumotion/twisted/gstreactor.py: s/is None/== None/,
	s/is not None/!= None/ to avoid pychecker warnings with python
	2.4.
	
	* data/glade/wizard.glade: Instead of restricting the content area
	to a certain size, give the window a default size. This allows it
	to expand as necessary.
	
	* data/glade/wizard_firewire.glade: UI rework. I'm still not
	happy. The width correction should be factored out into a filter.
	
	* bin/flumotion-admin.in: Use flumotion.twisted.gtk2reactor so as
	to avoid deprecated code.

2005-01-31  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/common.py:
	  add function to give a "path" for a component and its parent
	* flumotion/common/config.py:
	  add parent property to config entries for components
	  make sure no flow is called manager or atmosphere
	* flumotion/test/test_common.py:
	* flumotion/test/test_config.py:
	  tests for these

2005-01-31  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/log.py:
	  change output a little

2005-01-28  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/twisted/flavors.py:
	  add hasKey method
	* flumotion/wizard/save.py:
	  give flow a default name
	* flumotion/common/config.py:
	  require names for flows
	* flumotion/common/component.py:
	  add parent and moodPending state keys

2005-01-27  Andy Wingo  <wingo@pobox.com>

	* flumotion/worker/checks/video.py (check1394): New bundled
	function, checks to see if dv1394 can go to PLAYING. Will fail if
	the user lacks the /dev/raw1394 entry.
	
	* flumotion/wizard/steps.py (FireWire): Add some checks to see if
	the firewire device really works.
	
	* flumotion/admin/gtk/wizard.py:
	* flumotion/wizard/wizard.py: Get theme colors the right way, by
	realizing the label first. 

	* data/glade/wizard_welcome.glade: The introductory text is not
	selectable.

	* data/glade/wizard_firewire.glade: Add a textview below the
	parameters for status information.

	* flumotion/admin/gtk/greeter.py (Authenticate)
	(ConnectToExisting): Grab focus to entries. Make enter go to the
	next entry if there is one.

2005-01-26  Andy Wingo  <wingo@pobox.com>

	* flumotion/manager/base.py:
	(ManagerAvatar.perspective_getBundleSums): New function, gets the
	sums of a bundle and dependencies.
	(ManagerAvatar.perspective_getBundleSumsByFile): First get the
	bundle name, then call getBundleSums.

	* flumotion/worker/checks/video.py: New file, contains the
	gstreamer checks that used to be in wizard.steps. Uses a nifty
	procedural abstraction, make_element_checker.

	* flumotion/worker/checks/package.xml: New file, registers
	flumotion.worker.checks.video as a bundle.
	
	* flumotion/worker/checks/__init__.py: New file, placates python.

	* flumotion/worker/worker.py:
	(WorkerMedium.setRemoteReference): Make a bundleloader when we get
	a remote reference.
	(WorkerMedium.remote_runCode): Removed, we don't run code
	fragments any more.
	(WorkerMedium.remote_runProc): New remoted procedure. Runs a
	function in a module, fetching the module from the manager as
	necessary.

	* flumotion/wizard/wizard.py (WizardStep.workerRun): Update to
	AdminModel's workerRun.

	* flumotion/wizard/steps.py: Move gstreamer checks to
	flumotion.worker.checks.video, and change to the new workerRun
	api so that workers fetch the necessary code to run the checks.

	* flumotion/common/bundleclient.py: New file.
	(BundleLoader): New class, implements a module loader that makes
	sure we run the latest version of a module. Will fetch and install
	bundles as needed.

	* flumotion/admin/admin.py (AdminModel.workerRun): Instead of
	taking a function object, and passing the source of the function
	to the worker, pass a module name and function name to the worker.
	
2005-01-25  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/Makefile.am:
	* flumotion/common/planet.py:
	  adding planet state stuff
	* flumotion/twisted/flavors.py:
	  fixing interface description

2005-01-24  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/gtk/greeter.py:
	* flumotion/admin/gtk/main.py:
	  fix pychecker warnings

2005-01-24  Andy Wingo  <wingo@pobox.com>

	* flumotion/admin/gtk/wizard.py: Appease pychecker.

	* flumotion/admin/gtk/main.py (main): Remove host, port, user,
	ssl, password options. (The greeter handles this now.) Allow a
	config file to be passed on the command line.
	(_runInterface): If there's no conf file, run the greeter to get
	the host, etc. Make the AdminModel ourselves, then set it on a
	Window.

	* flumotion/admin/gtk/wizard.py (Wizard.run): Destroy the window
	when the run is finished. Make sure we aren't run twice.

	* flumotion/admin/gtk/greeter.py (Greeter): No longer derived from
	Wizard, just proxies a Wizard object.

	* flumotion/admin/admin.py (AdminModel.connectToHost): New method,
	will connect to a manager at a host/port/protocol.
	(username, password, host, port, use_insecure): New attributes on
	the model.
	(AdminModel::connection-refused): Pass the host, port, and
	protocol when emitting the signal. Emitters in admin.py and
	callers in client.py changed.

	* flumotion/admin/gtk/client.py (Window._connectToManager):
	Removed, now we receive manager already-constructed.
	(Window._setAdminModel): Private method to set the model on the
	window.
	(Window.__init__): Instead of receiving host, user, passwd, etc.
	just receive the model fully-built.

2005-01-21  Andy Wingo  <wingo@pobox.com>

	* flumotion/admin/gtk/wizard.py (Wizard.set_page): Fix stupid
	something.

	* flumotion/admin/gtk/greeter.py (Initial, ConnectToExisting)
	(Authenticate): Set used glade attributes to None to appease the
	mighty pychecker.

	* flumotion/admin/gtk/wizard.py (Wizard.set_page): Remove unused
	local variable. Don't die when adding glade widgets if an
	attribute exists, only if it exists and is non-false.
	(WizardStep): None-out a couple more variables.
	
	* data/glade/admin-wizard.glade:
	* data/glade/greeter-initial.glade: 
	* data/glade/greeter-connect_to_existing.glade: 
	* data/glade/greeter-authenticate.glade: Focus/mnemonic fixen.
	
	* data/glade/admin-wizard.glade:
	* data/glade/greeter-initial.glade: 
	* data/glade/greeter-connect_to_existing.glade: 
	* data/glade/greeter-authenticate.glade: Updates.
	
	* tests/greeter.py: Little wrapper to test the greeter.

	* flumotion/admin/gtk/greeter.py: Instead of detecting procs, etc.
	by name, make them classes and pass them explicitly to the
	wizard factory. Check inputs, add titles and explanatory text,
	etc. etc.

	* flumotion/admin/gtk/wizard.py: Rework to be prettier and to take
	classes as the states. "Polish", if you will.

	* flumotion/test/test_greeter.py: Updates for the new greeter API
	and behaviour.

	* flumotion/common/pygobject.py (gsignal): Avoid shadowing
	`locals' and `dict' builtins.

2005-01-21  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	  back to trunk

=== release 0.1.5 ===

2005-01-21  Thomas Vander Stichele  <thomas at apestaart dot org>

	* NEWS:
	* configure.ac:
	  releasing 0.1.5, "London Bar"

	* flumotion/admin/gtk/greeter.py:
	* flumotion/admin/gtk/wizard.py:
	* flumotion/test/test_greeter.py:
	  fix pychecker warnings; add testsuite headers

	* data/glade/admin-wizard.glade: Glade file for the generic
	wizard.
	
	* data/glade/greeter-initial.glade: 
	* data/glade/greeter-connect_to_existing.glade: 
	* data/glade/greeter-authenticate.glade: Glade files for the
	greeter wizard.

	* flumotion/admin/gtk/greeter.py: New file, uses wizard.py to make
	a greeter, run when the user first starts the admin client.

	* flumotion/test/test_greeter.py: New test for the wizard set up
	to run the greeter.

	* flumotion/admin/gtk/wizard.py: New file, implementing a generic
	wizard widget.
	
	* flumotion/admin/gtk/Makefile.am (component_PYTHON): 
	* data/glade/Makefile.am (glade_DATA): 
	* flumotion/test/Makefile.am (EXTRA_DIST): Updated appropriately.

2005-01-20  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/admin.py:
	* flumotion/admin/gtk/client.py:
	* flumotion/manager/component.py:
	* flumotion/manager/worker.py:
	* flumotion/test/test_flavors.py:
	* flumotion/twisted/flavors.py:
	* flumotion/wizard/wizard.py:
	  Go back to using append for List keys, since python also
	  uses append/remove.  Yes, I suck.  To make up, fix a bug
	  with List keys sharing their list among one another.

2005-01-20  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/common.py:
	  scrub some paths like .svn stuff for package candidates

2005-01-20  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/common.py:
	* flumotion/configure/Makefile.am:
	  add prefix when looking for package candidates.  Fixes some issues
	  when trying to registerPackagePaths from outside flumotion.
	* pkgconfig/Makefile.am:
	* pkgconfig/flumotion-uninstalled.pc.in:
	* pkgconfig/flumotion.pc.in:
	  point to the base dir under which flumotion lives instead

2005-01-19  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac: prerelease

2005-01-19  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/log.py:
	* flumotion/component/component.py:
	* flumotion/manager/component.py:
	* flumotion/test/test_log.py:
	* flumotion/twisted/gstreactor.py:
	* flumotion/wizard/save.py:
	* flumotion/wizard/wizard.py:
	* flumotion/worker/job.py:
	* flumotion/worker/worker.py:
	  add more crack to the logging module

2005-01-19  Andy Wingo  <wingo@pobox.com>

	* flumotion/common/common.py (version): Update to 2005.

2005-01-18  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/config.py:
	  remove unused code

2005-01-18  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/admin.py:
	* flumotion/admin/gtk/client.py:
	* flumotion/manager/component.py:
	* flumotion/manager/worker.py:
	* flumotion/test/test_flavors.py:
	* flumotion/twisted/flavors.py:
	* flumotion/wizard/wizard.py:
	  remove likes add better than append

2005-01-17  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/test/test_worker_worker.py:
	* flumotion/worker/job.py:
	* flumotion/worker/worker.py:
	  make one function for getting the worker's socket

2005-01-13  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/common.py:
	* flumotion/component/feedcomponent.py:
	  attempt to reconnect when a feeder has gone away
	* flumotion/manager/worker.py:
	* flumotion/worker/worker.py:
	  serialize startup of jobs so that jobs start one after another,
	  not all at the same time.  This makes port allocations more
	  deterministic

2005-01-13  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/common.py:
	* flumotion/test/test_common.py:
	  add some common port functions

2005-01-11  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/manager/base.py:
	* flumotion/manager/component.py:
	* flumotion/test/test_manager.py:
	  change from setReady to setReadiness

2005-01-11  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/manager/base.py:
	  add a hasAvatar method
	* flumotion/manager/worker.py:
	  check to see if a component is already running before asking a
	  worker to start.  avoids doubly starting components.

2005-01-11  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/gtk/client.py:
	  implement stop
	* flumotion/component/component.py:
	  send only one heartbeat each time, duh

2005-01-05  Thomas Vander Stichele  <thomas at apestaart dot org>

	* data/glade/admin.glade:
	  remove options that go to context menu
	* flumotion/admin/admin.py:
	* flumotion/admin/gtk/client.py:
	* flumotion/admin/gtk/dialogs.py:
	* flumotion/admin/gtk/parts.py:
	* flumotion/common/reload.py:
	* flumotion/component/component.py:
	* flumotion/manager/admin.py:
	* flumotion/manager/component.py:
	* flumotion/test/test_common_component.py:
	* flumotion/test/test_parts.py:
	* tests/ComponentsView.py:
	  add context menu to components view
	  fix reload

2005-01-04  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/admin.py:
	  reregister gobject
	* tests/ComponentsView.py:
	* flumotion/admin/gtk/parts.py:
	  make columns sortable
	* flumotion/common/component.py:
	  change moods enum so that happy and sad are at opposite sides

2005-01-04  Thomas Vander Stichele  <thomas at apestaart dot org>

	* Makefile.am:
	* doc/reference/Makefile.am:
	* flumotion/admin/admin.py:
	* flumotion/admin/gtk/client.py:
	* flumotion/admin/gtk/dialogs.py:
	* flumotion/admin/gtk/parts.py:
	* flumotion/admin/gtk/spyglass.py:
	* flumotion/admin/gtk/videotest.py:
	* flumotion/wizard/wizard.py:
	  more gstutils fixes, pychecker fixes

2005-01-04  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/admin.py:
	* flumotion/admin/gtk/client.py:
	* flumotion/admin/gtk/dialogs.py:
	* flumotion/admin/gtk/parts.py:
	* flumotion/admin/gtk/spyglass.py:
	* flumotion/admin/gtk/videotest.py:
	* flumotion/common/Makefile.am:
	* flumotion/common/common.py:
	* flumotion/common/gstreamer.py:
	* flumotion/common/pygtk.py:
	* flumotion/component/component.py:
	* flumotion/component/consumers/disker/disker.py:
	* flumotion/component/consumers/httpstreamer/http.py:
	* flumotion/component/feedcomponent.py:
	* flumotion/component/producers/webcam/webcam.py:
	* flumotion/manager/component.py:
	* flumotion/utils/Makefile.am:
	* flumotion/utils/gstutils.py:
	* flumotion/wizard/steps.py:
	* flumotion/wizard/wizard.py:
	  first pass at removing utils/gstutils.py

2005-01-03  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/gtk/Makefile.am:
	* flumotion/admin/gtk/client.py:
	* flumotion/admin/gtk/dialogs.py:
	* flumotion/admin/gtk/parts.py:
	  extract UI parts from the main file

2005-01-03  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/gtk/client.py:
	  fix errors

2005-01-03  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/gtk/dialogs.py:
	* flumotion/test/Makefile.am:
	* flumotion/test/test_dialogs.py:
	  testsuite for dialogs

2004-12-31  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/consumers/disker/disker.py:
	  fix moods
	* conf/managers/default/flows/ogg-test-theora.xml:
	  spread over two workers
	* data/glade/admin.glade:
	* flumotion/admin/gtk/client.py:
	* flumotion/admin/gtk/dialogs.py:
	  move some dialogs around
	* flumotion/manager/admin.py:

2004-12-30  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/gtk/client.py:
	* flumotion/common/common.py:
	* flumotion/common/component.py:
	* flumotion/component/component.py:
	* flumotion/component/consumers/httpstreamer/http.py:
	* flumotion/component/feedcomponent.py:
	* flumotion/manager/component.py:
	  make mood into an enum

2004-12-30  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/admin.py:
	* flumotion/admin/gtk/client.py:
	* flumotion/common/worker.py:
	* flumotion/manager/worker.py:
	* flumotion/wizard/wizard.py:
	  make admin client notice when workers log in or out

2004-12-30  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/manager/Makefile.am:
	* flumotion/manager/admin.py:
	* flumotion/manager/common.py:
	* flumotion/manager/component.py:
	* flumotion/manager/manager.py:
	* flumotion/manager/worker.py:
	  rename common to base since that's what it is

2004-12-30  Thomas Vander Stichele  <thomas at apestaart dot org>

	* Makefile.am:
	* flumotion/admin/admin.py:
	* flumotion/common/common.py:
	* flumotion/common/component.py:
	* flumotion/common/worker.py:
	* flumotion/manager/admin.py:
	* flumotion/manager/component.py:
	* flumotion/test/Makefile.am:
	* flumotion/test/test_common_component.py:
	* flumotion/test/test_flavors.py:
	* flumotion/twisted/Makefile.am:
	* flumotion/twisted/flavors.py:
	  add flavors with StateCacheable/RemoteCache
	  add unittests
	  add possibility of monitoring lists and having append/remove
	  listener calls

2004-12-30  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/admin.py:
	* flumotion/admin/gtk/client.py:
	* flumotion/common/Makefile.am:
	* flumotion/common/common.py:
	* flumotion/common/component.py:
	* flumotion/manager/admin.py:
	* flumotion/manager/component.py:
	* flumotion/manager/worker.py:
	* flumotion/test/test_common.py:
	* flumotion/test/test_common_component.py:
	* flumotion/test/test_wizard.py:
	* flumotion/wizard/wizard.py:
	  First pass at making state of the workerHeaven cacheable.
	  Needs some reorganization and tests of State objects.

2004-12-30  Thomas Vander Stichele  <thomas at apestaart dot org>

	* data/glade/admin.glade:
	* flumotion/admin/admin.py:
	* flumotion/admin/gtk/client.py:
	* flumotion/component/consumers/httpstreamer/admin_gtk.py:
	  create a status bar class wrapping the GTK widget
	  use the status bar for showing info about the UI

2004-12-29  Thomas Vander Stichele  <thomas at apestaart dot org>

	* data/glade/wizard_testsource.glade:
	  don't use F for key access
	* flumotion/manager/admin.py:
	* flumotion/manager/common.py:
	* flumotion/manager/component.py:
	* flumotion/manager/main.py:
	* flumotion/manager/manager.py:
	* flumotion/manager/worker.py:
	  cleanup of INFO level

2004-12-29  Thomas Vander Stichele  <thomas at apestaart dot org>

	* data/image/Makefile.am:
	* data/image/mood-happy.png:
	* data/image/mood-hungry.png:
	* data/image/mood-lost.png:
	* data/image/mood-sad.png:
	* data/image/mood-sleeping.png:
	* data/image/mood-waking.png:
	* doc/random/componentstate:
	* doc/random/moods:
	* flumotion/admin/admin.py:
	* flumotion/admin/gtk/client.py:
	* flumotion/common/Makefile.am:
	* flumotion/common/common.py:
	* flumotion/common/component.py:
	* flumotion/component/component.py:
	* flumotion/component/consumers/disker/disker.py:
	* flumotion/component/consumers/httpstreamer/http.py:
	* flumotion/component/feedcomponent.py:
	* flumotion/configure/configure.py:
	* flumotion/manager/admin.py:
	* flumotion/manager/common.py:
	* flumotion/manager/component.py:
	* flumotion/test/Makefile.am:
	* flumotion/test/test_common_component.py:
	* flumotion/test/test_htpasswdcrypt.py:
	* flumotion/test/test_manager.py:
	* flumotion/test/test_manager_admin.py:
	* flumotion/worker/worker.py:
	* tools/fixme:
	  A big commit to implement moods, yay !

2004-12-27  Thomas Vander Stichele  <thomas at apestaart dot org>

	* conf/Makefile.am:
	* flumotion/component/component.py:
	* flumotion/component/consumers/disker/disker.py:
	* flumotion/component/consumers/httpstreamer/resources.py:
	* flumotion/component/feedcomponent.py:
	* flumotion/test/test_http.py:
	  rename component.get_name to getName

2004-12-21  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/manager/component.py:
	* flumotion/test/test_worker_worker.py:
	  fix testsuite

2004-12-20  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/gtk/client.py:
	* flumotion/component/component.py:
	* flumotion/manager/admin.py:
	* flumotion/manager/component.py:
	* flumotion/manager/worker.py:
	* flumotion/worker/job.py:
	* flumotion/worker/main.py:
	* flumotion/worker/worker.py:
	  Show worker name and pid for components

2004-12-20  Thomas Vander Stichele  <thomas at apestaart dot org>

	* conf/workers/default.xml:
	* doc/redhat/flumotion:
	* flumotion/manager/main.py:
	* flumotion/worker/main.py:
	  clean up debug levels at various stages

2004-12-20  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	  bump nano back to HEAD

=== release 0.1.4 ===

2004-12-17  Thomas Vander Stichele  <thomas at apestaart dot org>

	patch by: Zaheer Abbas Merali <zaheermerali at gmail dot com>

	* TODO:
	* configure.ac:
	* flumotion/component/effects/Makefile.am:
	* flumotion/component/effects/volume/Makefile.am:
	* flumotion/component/effects/volume/__init__.py:
	* flumotion/component/effects/volume/admin_gtk.py:
	* flumotion/component/effects/volume/volume.glade:
	* flumotion/component/effects/volume/volume.py:
	* flumotion/component/effects/volume/volume.xml:
	* flumotion/component/producers/soundcard/Makefile.am:
	* flumotion/component/producers/soundcard/admin_gtk.py:
	* flumotion/component/producers/soundcard/soundcard.py:
	* flumotion/component/producers/soundcard/soundcard.xml:
	* flumotion/ui/fgtk.py:
	  Adding a volume effect for level display, and use it in soundcard.
	  Fixes #133.

2004-12-17  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/common.py:
	* flumotion/configure/configure.py:
	* flumotion/service/main.py:
	* flumotion/service/service.py:
	  improve service script handling and pid file handling

2004-12-16  Thomas Vander Stichele  <thomas at apestaart dot org>

	* bin/flumotion.in:
	  remove all sorts of stuff we don't need for the service script
	* flumotion/common/common.py:
	  new function
	* flumotion/service/service.py:
	  check for dead pids

2004-12-16  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/admin.py:
	* flumotion/admin/gtk/client.py:
	* flumotion/component/consumers/httpstreamer/admin_gtk.py:
	* flumotion/worker/job.py:
	* flumotion/worker/worker.py:
	  info cleanup.

2004-12-16  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/wizard/steps.py:
	  fixes #136 - warn about missing dv1394src and dvdec elements

2004-12-16  Thomas Vander Stichele  <thomas at apestaart dot org>

	* doc/random/streaming:
	  some additional notes
	* flumotion/common/log.py:
	* flumotion/component/consumers/httpstreamer/http.py:
	* flumotion/component/consumers/httpstreamer/resources.py:
	  (hopefully) fix file descriptor leakage by making sure the socket
	  closes.  Document some more.  Fix some error cases as well.
	* flumotion/twisted/gstreactor.py:
	  debug the reactor a little

2004-12-14  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/consumers/httpstreamer/admin_gtk.py:
	  remove debug line
	* flumotion/wizard/enums.py:
	  make sure "Test" choices are first in the enum

2004-12-10  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/service/service.py:
	  do not start manager/worker if one is already running.
	  Fixes issue #132

2004-12-10  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/service/main.py:
	  error on unknown commands
	  implement restart

2004-12-10  Thomas Vander Stichele  <thomas at apestaart dot org>

	* data/glade/wizard_consumption.glade:
	* data/glade/wizard_disk.glade:
	* data/glade/wizard_http.glade:
	  various accessors

	patch by: Zaheer Abbas Merali <zaheermerali at gmail dot com>
	* flumotion/component/consumers/disker/Makefile.am:
	* flumotion/component/consumers/disker/admin_gtk.py:
	* flumotion/component/consumers/disker/disker.glade:
	* flumotion/component/consumers/disker/disker.py:
	* flumotion/component/consumers/disker/disker.xml:
	  Add button to move to new archive file.
	  Fixes issue #122
	 

2004-12-10  Thomas Vander Stichele  <thomas at apestaart dot org>

	* data/glade/wizard_tvcard.glade:
	  add accessors
	* flumotion/component/effects/colorbalance/colorbalance.glade:
	  add spacing
	* flumotion/service/service.py:
	  stop workers before managers
	  don't fatally fail when no managers or workers config dirs found,
	  since that's ok.  Needs a prerelease test.

2004-12-10  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/admin.py:
	* flumotion/common/bundle.py:
	* flumotion/test/test_bundle.py:
	  abstract away bundle extraction path more, and make the cachedir
	  more easily browsable :)

2004-12-09  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/gtk/client.py:
	* flumotion/component/consumers/httpstreamer/admin_gtk.py:
	* flumotion/component/consumers/httpstreamer/http.py:
	* flumotion/component/consumers/httpstreamer/resources.py:
	* flumotion/component/producers/videotest/admin_gtk.py:
	  implement tabs.  add a log tab to the streamer.

2004-12-09  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/admin.py:
	* flumotion/admin/gtk/client.py:
	* flumotion/component/base/admin_gtk.py:
	* flumotion/component/component.py:
	* flumotion/component/consumers/httpstreamer/admin_gtk.py:
	* flumotion/component/consumers/httpstreamer/http.py:
	* flumotion/component/producers/videotest/admin_gtk.py:
	* flumotion/component/producers/videotest/videotest.py:
	* flumotion/component/producers/videotest/videotest.xml:
	* flumotion/manager/admin.py:
	* flumotion/manager/component.py:
	  refactor code so that more methods are proxied generically

2004-12-09  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/admin.py:
	* flumotion/admin/gtk/client.py:
	* flumotion/component/component.py:
	* flumotion/component/effects/colorbalance/admin_gtk.py:
	* flumotion/component/effects/colorbalance/colorbalance.py:
	* flumotion/component/producers/bttv/admin_gtk.py:
	* flumotion/component/producers/webcam/admin_gtk.py:
	* flumotion/manager/admin.py:
	* flumotion/manager/component.py:
	  proxy methods generically from a component or effect to the
	  admin-side views representing them

2004-12-09  Thomas Vander Stichele  <thomas at apestaart dot org>

	* doc/random/documenting:
	  add some doc notes
	* doc/reference/Makefile.am:
	  add more stuff
	* flumotion/test/test_component.py:
	* flumotion/component/component.py:
	* flumotion/component/base/admin_gtk.py:
	* flumotion/component/consumers/httpstreamer/http.py:
	  documenting and method renaming
	  use "name" as member for component's name
	  removing deprecated API
	* flumotion/component/effects/colorbalance/admin_gtk.py:
	* flumotion/admin/admin.py:
	  debug changes
	* flumotion/package.xml:
	* flumotion/component/component.xml:
	* flumotion/component/Makefile.am:
	  sort out who owns package entry points
	* flumotion/component/effects/colorbalance/colorbalance.xml:
	* flumotion/component/producers/bttv/bttv.xml:
	* flumotion/component/producers/webcam/webcam.xml:
	* flumotion/component/consumers/httpstreamer/http.xml:
	  fix deps of bundles
	* flumotion/component/feedcomponent.py:
	* flumotion/component/producers/webcam/webcam.py:
	* flumotion/component/producers/bttv/bttv.py:
	* flumotion/component/effects/colorbalance/colorbalance.py:
	  create effect base class and rework effect API
	* flumotion/component/producers/webcam/admin_gtk.py:
	* flumotion/component/producers/bttv/admin_gtk.py:
	  act on changed properties on colorbalance
	* flumotion/worker/job.py:
	  fix doc

2004-12-08  Thomas Vander Stichele  <thomas at apestaart dot org>

	* data/glade/admin.glade:
	* flumotion/admin/gtk/client.py:
	  add shell for fun debugging
	* flumotion/admin/admin.py:
	  properly register paths even though we didn't actually unbundle
	  since if they're already in the cache they should work too

2004-12-08  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/admin.py:
	  only registerPackagePath when a bundle got unpacked, and
	  in the right order.  Should fix all lingering "works on second
	  try" bugs in admin client.

2004-12-08  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/gtk/client.py:
	  more error handling
	* flumotion/common/bundle.py:
	  some debug
	* flumotion/common/common.py:
	  return ALL possible candidates for packages, not just the
	  directories that hold an __init__.  This way a bundle depending
	  on another bundle having the package's __init__ can have imports
	  for modules in that directory.
	* flumotion/common/registry.py:
	  clean up, document, rename.  Don't register REGISTRY_PATHs as
	  package paths.
	* flumotion/component/effects/colorbalance/colorbalance.xml:
	* flumotion/component/producers/webcam/admin_gtk.py:
	  some cleanups and fixes

2004-12-08  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	* flumotion/component/Makefile.am:
	* flumotion/component/effects/Makefile.am:
	* flumotion/component/effects/__init__.py:
	* flumotion/component/effects/colorbalance/Makefile.am:
	* flumotion/component/effects/colorbalance/__init__.py:
	* flumotion/component/effects/colorbalance/admin_gtk.py:
	* flumotion/component/effects/colorbalance/colorbalance.glade:
	* flumotion/component/effects/colorbalance/colorbalance.py:
	* flumotion/component/effects/colorbalance/colorbalance.xml:
	  add colorbalance effect
	* data/glade/wizard_source.glade:
	* data/glade/wizard_webcam.glade:
	  small glade fixes
	* doc/random/component:
	  some more docs
	* flumotion/admin/gtk/client.py:
	  use an import trick to show components instead
	* flumotion/common/errors.py:
	  add a syntax error
	* flumotion/wizard/steps.py:
	  remove print
	* flumotion/component/producers/bttv/admin_gtk.py:
	* flumotion/component/producers/bttv/bttv.py:
	* flumotion/component/producers/bttv/bttv.xml:
	  use colorbalance effect and admin nodes for display
	* flumotion/component/producers/videotest/admin_gtk.py:
	* flumotion/component/producers/videotest/videotest.py:
	  use new nodes for display
	* flumotion/component/producers/webcam/admin_gtk.py:
	* flumotion/component/producers/webcam/webcam.py:
	* flumotion/component/producers/webcam/webcam.xml:
	  add admin ui for webcam and use effects and nodes
	* flumotion/component/feedcomponent.py:
	  implement effect support
	* flumotion/component/base/admin_gtk.py:
	* flumotion/component/consumers/httpstreamer/admin_gtk.py:
	  move to new node display
	* flumotion/package.xml:
	  add effect

2004-12-08  Thomas Vander Stichele  <thomas at apestaart dot org>

	* TODO:
	  some more stuff to do
	* flumotion/common/common.py:
	  rebuild a package that's been re-added.  Needs testing
	* flumotion/common/errors.py:
	  add an effect error
	* flumotion/admin/admin.py:
	  add method to get the full local cached path for a bundled file
	* flumotion/utils/gstutils.py:
	  add method to check if an element factory has a given property
	* flumotion/wizard/steps.py:
	  verify if we can set autoprobe-fps to false to speed up detection
	* flumotion/component/producers/bttv/admin_gtk.py:
	  remove line
	* flumotion/component/producers/bttv/bttv.xml:
	  add comment
	* flumotion/component/consumers/httpstreamer/http.py:
	  remove deprecated bundle stuff
	* flumotion/worker/job.py:
	  add some more debugging for when stuff goes wrong
	* flumotion/manager/admin.py:
	  add more debugging
	* flumotion/manager/common.py:
	  raise appropriate error on unfound bundle

2004-12-07  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/producers/bttv/colorbalance.glade:
	  don't expand the separators

2004-12-07  Thomas Vander Stichele  <thomas at apestaart dot org>

	patch by: Zaheer Abbas Merali <zaheermerali at gmail dot com>

	* flumotion/component/producers/bttv/Makefile.am:
	* flumotion/component/producers/bttv/admin_gtk.py:
	* flumotion/component/producers/bttv/bttv.py:
	* flumotion/component/producers/bttv/bttv.xml:
	* flumotion/component/producers/bttv/colorbalance.glade:
	  added glade file, slightly reworked, link spinbuttons to scales

2004-12-06  Thomas Vander Stichele  <thomas at apestaart dot org>

	* doc/reference/Makefile.am:
	* flumotion/admin/__init__.py:
	* flumotion/admin/admin.py:
	* flumotion/common/__init__.py:
	* flumotion/common/bundle.py:
	* flumotion/common/common.py:
	* flumotion/common/config.py:
	* flumotion/common/errors.py:
	* flumotion/common/interfaces.py:
	* flumotion/common/log.py:
	* flumotion/common/registry.py:
	* flumotion/component/__init__.py:
	* flumotion/component/component.py:
	* flumotion/configure/__init__.py:
	* flumotion/manager/__init__.py:
	* flumotion/manager/admin.py:
	* flumotion/manager/common.py:
	* flumotion/manager/component.py:
	* flumotion/manager/manager.py:
	* flumotion/manager/worker.py:
	* flumotion/twisted/__init__.py:
	* flumotion/twisted/gstreactor.py:
	* flumotion/twisted/pb.py:
	* flumotion/twisted/portal.py:
	* flumotion/twisted/reflect.py:
	* flumotion/worker/__init__.py:
	* flumotion/worker/job.py:
	* flumotion/worker/worker.py:
	  more doc fixing and uniformizing

2004-12-06  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/__init__.py:
	* flumotion/common/__init__.py:
	* flumotion/common/bundle.py:
	* flumotion/common/common.py:
	* flumotion/common/config.py:
	* flumotion/common/errors.py:
	* flumotion/common/interfaces.py:
	* flumotion/common/registry.py:
	* flumotion/component/__init__.py:
	* flumotion/component/bouncers/bouncer.py:
	* flumotion/component/component.py:
	* flumotion/component/consumers/httpstreamer/resources.py:
	* flumotion/configure/__init__.py:
	* flumotion/manager/__init__.py:
	* flumotion/manager/worker.py:
	* flumotion/twisted/__init__.py:
	* flumotion/twisted/checkers.py:
	* flumotion/twisted/credentials.py:
	* flumotion/twisted/gstreactor.py:
	* flumotion/twisted/pb.py:
	* flumotion/twisted/portal.py:
	* flumotion/worker/__init__.py:
	* flumotion/worker/worker.py:
	  doc fixing spree, plus removing some deprecated code

2004-12-06  Thomas Vander Stichele  <thomas at apestaart dot org>

	* Makefile.am:
	  implement black/white list for pychecker stuff
	* flumotion/common/errors.py:
	  remove extra line
	* flumotion/service/service.py:
	* flumotion/component/producers/bttv/admin_gtk.py:
	  fix pychecker warning
	* flumotion/component/producers/bttv/bttv.py:
	  fix my syntax errors
	* flumotion/component/consumers/httpstreamer/http.py:
	  (try to) fix up warnings
	* flumotion/ui/fgtk.py:
	  import glade as well for testing error
	* flumotion/utils/gstutils.py:
	  rearrange imports
	* flumotion/component/producers/videotest/admin_gtk.py:
	  remove junk
	* flumotion/component/consumers/httpstreamer/Makefile.am:
	* flumotion/component/producers/bttv/Makefile.am:
	* python.mk:
	  if we ever want to do per-dir pychecks ...

2004-12-06  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	  check for pychecker

2004-12-06  Thomas Vander Stichele  <thomas at apestaart dot org>

	* TODO:
	* flumotion/component/producers/bttv/admin_gtk.py:
	* flumotion/component/producers/bttv/bttv.py:
	  style fixing

2004-12-06  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/wizard/steps.py:
	  make bttv one like webcam one

2004-12-06  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/manager/main.py:
	* misc/flu.unstable.stable.modules:
	  guard against no manager config
	  update modules

2004-12-06  Thomas Vander Stichele  <thomas at apestaart dot org>
	
	patch by: Zaheer Abbas Merali <zaheermerali at gmail dot com>

	* flumotion/component/producers/bttv/Makefile.am:
	* flumotion/component/producers/bttv/admin_gtk.py:
	* flumotion/component/producers/bttv/bttv.py:
	* flumotion/component/producers/bttv/bttv.xml:
	  add colorbalance + admin page to bttv

2004-12-06  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/twisted/gstreactor.py:
	  removing logging to unbreak reactor

2004-12-03  Thomas Vander Stichele  <thomas at apestaart dot org>

	* Makefile.am:
	* flumotion/admin/admin.py:
	* flumotion/component/consumers/httpstreamer/Makefile.am:
	* flumotion/component/consumers/httpstreamer/gtk.py:
	* flumotion/component/consumers/httpstreamer/http.xml:
	* flumotion/twisted/credentials.py:
	* flumotion/twisted/gstreactor.py:
	* flumotion/twisted/pb.py:
	* flumotion/twisted/reflect.py:
	* flumotion/ui/fgtk.py:
	* misc/pycheckerrc:
	  various error fixing and pychecker stuff

2004-12-02  Thomas Vander Stichele  <thomas at apestaart dot org>

	* TODO:
	* flumotion/admin/admin.py:
	* flumotion/admin/gtk/client.py:
	* flumotion/component/base/admin_gtk.py:
	* flumotion/component/producers/videotest/admin_gtk.py:
	* flumotion/component/producers/videotest/videotest.py:
	* flumotion/manager/admin.py:
	* flumotion/manager/component.py:
	  allow components to notify their admin UI of changed property
	  make videotest UI use this and properly block signals while
	  updating UI

2004-12-02  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/admin.py:
	* flumotion/admin/gtk/client.py:
	* flumotion/common/errors.py:
	* flumotion/component/base/admin_gtk.py:
	* flumotion/component/consumers/httpstreamer/http.py:
	* flumotion/component/producers/videotest/admin_gtk.py:
	* flumotion/manager/admin.py:
	* flumotion/manager/common.py:
	* flumotion/manager/component.py:
	  remove some of the proxy methods in the manager
	  add some better error handling for remote call failures
	  uniformize and reorder methods

2004-12-02  Thomas Vander Stichele  <thomas at apestaart dot org>

	* Makefile.am:
	* flumotion/ui/fgtk.py:
	  fix up pychecker warnings and add to check

2004-12-02  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/enum.py:
	* flumotion/test/test_enum.py:
	  make pychecker happy

2004-12-01  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/Makefile.am:
	* flumotion/common/enum.py:
	  Split up enum code out of wizard stuff
	* flumotion/ui/Makefile.am:
	* flumotion/ui/__init__.py:
	* flumotion/ui/fgtk.py:
	  Create a ui directory holding code and widgets shared among
	  wizard and admin
	* flumotion/wizard/enums.py:
	* flumotion/wizard/wizard.py:
	  use fgtk and enum
	* flumotion/component/base/admin_gtk.py:
	* flumotion/component/feedcomponent.py:
	* flumotion/component/producers/videotest/admin_gtk.py:
	* flumotion/component/producers/videotest/videotest.py:
	* flumotion/component/producers/videotest/videotest.xml:
	  create a first UI for videotest allowing you to change the
	  pattern from the admin interface.

2004-12-01  Thomas Vander Stichele  <thomas at apestaart dot org>

	* TODO:
	* bin/flumotion-admin.in:
	* flumotion/wizard/steps.py:
	* flumotion/admin/gtk/client.py:
	  debugging and various updates
	* flumotion/manager/admin.py:
	  also load componentHeaven with wizard-created config

2004-12-01  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/utils/gstutils.py:
	  add evil hack so we can set GParamEnum values.  Needs to be fixed !
	  Issue #119.

2004-12-01  Thomas Vander Stichele  <thomas at apestaart dot org>

	* bin/flumotion-admin.in:
	  remove flumotion.component from import path to be sure we use
	  the bundled code
	* bin/flumotion-manager.in:
	  only update registry here ...
	* flumotion/common/setup.py:
	  ... and not all other binaries
	* flumotion/admin/admin.py:
	* flumotion/admin/gtk/client.py:
	* flumotion/manager/common.py:
	  Use new bundle code
	* flumotion/common/common.py:
	  Fix up code to register package paths
	* flumotion/common/registry.py:
	  search in flumotion/ for registry .xml files, to catch the one
	  for the base flumotion package
	* flumotion/common/errors.py:
	* flumotion/component/base/Makefile.am:
	* flumotion/component/base/admin_gtk.py:
	  added base admin_gtk class
	* flumotion/component/base/base.xml:
	* flumotion/component/consumers/httpstreamer/gtk.py:
	* flumotion/component/consumers/httpstreamer/http.xml:
	  make HTTP streamer use base gtk admin UI
	* flumotion/manager/admin.py:
	  raise an error if entry point not found
	* flumotion/manager/manager.py:
	  add dependencies correctly
	* flumotion/package.xml:
	* flumotion/Makefile.am:
	  make base flumotion bundle

2004-11-30  Thomas Vander Stichele  <thomas at apestaart dot org>

	* TODO:
	* flumotion/component/consumers/httpstreamer/http.xml:
	  fix up todo list

2004-11-30  Thomas Vander Stichele  <thomas at apestaart dot org>

	* conf/minimal.xml:
	* doc/random/bundle:
	* flumotion/admin/admin.py:
	* flumotion/admin/gtk/client.py:
	* flumotion/common/bundle.py:
	* flumotion/common/registry.py:
	* flumotion/component/consumers/httpstreamer/gtk.py:
	* flumotion/component/consumers/httpstreamer/http.py:
	* flumotion/component/consumers/httpstreamer/http.xml:
	* flumotion/configure/configure.py:
	* flumotion/configure/installed.py.in:
	* flumotion/configure/uninstalled.py.in:
	* flumotion/manager/admin.py:
	* flumotion/manager/common.py:
	* flumotion/manager/component.py:
	* flumotion/manager/manager.py:
	* flumotion/test/test_bundle.py:
	* flumotion/test/test_config.py:
	* flumotion/test/test_registry.py:
	  rework bundling and admin UI retrieving to the new system.
	  Still need to update all other components, and make admin ui stuff
	  subclass properly.

2004-11-30  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/config.py:
	* flumotion/manager/component.py:
	* flumotion/manager/main.py:
	* flumotion/manager/manager.py:
	* flumotion/manager/worker.py:
	  Rework loadConfiguration a little.  Make ComponentHeaven
	  know about config as well.  Needs reworking so we
	  can implement failover and friends.

2004-11-29  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/manager/Makefile.am:
	* flumotion/manager/common.py:
	  Would be good to have this too.

2004-11-29  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/bundle.py:
	* flumotion/manager/admin.py:
	* flumotion/manager/component.py:
	* flumotion/manager/manager.py:
	* flumotion/manager/worker.py:
	* flumotion/test/test_manager.py:
	* flumotion/worker/config.py:
	* flumotion/worker/main.py:
	  Common base class for heaven and avatar.  Fixes #13

2004-11-26  Johan Dahlin  <johan@gnome.org>

	* doc/random/bundle:
	* flumotion/common/registry.py:
	* flumotion/component/consumers/httpstreamer/http.xml:
	* flumotion/manager/manager.py:
	* flumotion/test/test_registry.py:

	Add relative paths. (and add tests for this)
	Add an example bundle to the http streamer.
	Add a bundle basket in the vishnu that reads all bundles
	from the registry
	
2004-11-26  Johan Dahlin  <johan@gnome.org>

	* flumotion/common/registry.py:
	* flumotion/component/consumers/httpstreamer/http.xml:
	* flumotion/manager/manager.py:

2004-11-26  Johan Dahlin  <johan@gnome.org>

	* flumotion/common/registry.py:
	* flumotion/test/test_registry.py:
	* doc/random/bundle: 

	Add <bundle> and <component><entry> parsing and tests

	Update the document to reflect the implementation.
	
2004-11-26   Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/manager/admin.py:
	* flumotion/manager/manager.py:
	* flumotion/twisted/portal.py:
	  Multiple admin logins now work.  Don't annoy other people
	  by cleaning out their state and stuff though. Fixes #36.

2004-11-25  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/bundle.py:
	* flumotion/test/test_bundle.py:
	  add BundlerBasket and test code

2004-11-25  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/wizard/steps.py:
	  Do not list tracks if element doesn't support the interface.
	  Fixes #115

2004-11-25  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/worker/worker.py:
	  make worker reconnecting

2004-11-24  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/twisted/pb.py:
	  make reconnecting client factory
	* flumotion/admin/admin.py:
	* flumotion/admin/gtk/client.py:
	  use reconnecting client factory and add a dialog for when the
	  manager goes away

2004-11-19  Thomas Vander Stichele  <thomas at apestaart dot org>

	* data/glade/wizard_jpeg.glade:
	* flumotion/component/encoders/encoders.xml:
	* flumotion/component/encoders/jpeg.py:
	* flumotion/wizard/steps.py:
	  Implement framerate changing on JPEG encoding.
	  Should eventually be generalized as a "filter".

2004-11-17  Thomas Vander Stichele  <thomas at apestaart dot org>

	* README:
	  add test line for multipart/jpeg
	* data/glade/wizard_jpeg.glade:
	  fix up glade file

2004-11-11  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	  back to development
	* flumotion.spec.in:
	  fix typo

=== release 0.1.3 ===

2004-11-11  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	  bump for release
	* flumotion/wizard/steps.py:
	  throw up a dialog when we couldn't run code

2004-11-11  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion.spec.in:
	  Integrate spec changes from issue 86

2004-11-11  Johan Dahlin  <johan@gnome.org>

	* flumotion/wizard/steps.py:
	Only skip configuration if we use firewire audio

2004-11-11  Thomas Vander Stichele  <thomas at apestaart dot org>

	* Makefile.am:
	* flumotion/wizard/steps.py:
	* flumotion/worker/worker.py:
	  distcheck now works again.

2004-11-11  Thomas Vander Stichele  <thomas at apestaart dot org>

	* data/glade/wizard_audiotest.glade:
	  add volume
	* data/glade/wizard_vorbis.glade:
	  make quality the default - but didn't work
	* flumotion/wizard/steps.py:
	  really make quality the default for vorbis
	* flumotion/component/producers/audiotest/audiotest.py:
	* flumotion/component/producers/audiotest/audiotest.xml:
	* flumotion/wizard/enums.py:
	* flumotion/wizard/wizard.py:
	  add volume
	* misc/pycheckerrc:
	  increase maxsize of functions

2004-11-10  Thomas Vander Stichele  <thomas at apestaart dot org>

	* data/glade/wizard_tvcard.glade:
	* flumotion/wizard/steps.py:
	  clear up confusion between v4l channels and TV channels

2004-11-10  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/worker/worker.py:
	  log better error

2004-11-10  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/wizard/steps.py:
	  Explain the real deal

2004-11-10  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/wizard/steps.py:
	  fix error message for list_tracks

2004-11-10  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	  Grrr, why is it necessary to do the same bug twice ?

2004-11-10  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/producers/soundcard/soundcard.py:
	  Don't use audioscale and audioconvert until we actually
	  first probe the card so we can set correct fixated caps on it.

2004-11-10  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/wizard/steps.py:
	  Another soundcard fix - this never worked.
	  Bring names of GStreamer properties and step options in line.

2004-11-10  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/wizard/steps.py:
	  throw an error when list_tracks doesn't work (interface issues ?)

2004-11-09  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/worker/job.py:
	  woah, scary how syntax errors going unnoticed can screw up
	  the whole flumotion system.  This fixes soundcards for me.

2004-11-09  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/worker/job.py:
	  add another error raise

2004-11-09  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/producers/soundcard/soundcard.xml:
	* flumotion/wizard/enums.py:
	* flumotion/wizard/steps.py:
	  channels should be serialized as int until there is a good
	  representation of them, because setting channels=stereo in
	  GStreamer doesn't work

2004-11-09  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/worker/job.py:
	* flumotion/worker/worker.py:
	  fix some prints and raises

2004-11-09  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/errors.py:
	* flumotion/worker/job.py:
	* flumotion/worker/worker.py:
	  attempt to make runCode more robust.  Needs more work.

2004-11-09  Thomas Vander Stichele  <thomas at apestaart dot org>

	* data/glade/wizard_soundcard.glade:
	  fix typo
	* flumotion/wizard/enums.py:
	* flumotion/wizard/steps.py:
	* flumotion/wizard/wizard.py:
	  block updates when asked.  fixes #98

2004-11-09  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/wizard/wizard.py:
	  change quit to apply, fixes #71

2004-11-09  Thomas Vander Stichele  <thomas at apestaart dot org>

	* data/glade/wizard_webcam.glade:
	* flumotion/wizard/steps.py:
	  Show name of webcam in the UI

2004-11-09  Thomas Vander Stichele  <thomas at apestaart dot org>

	* conf/managers/default/planet.xml:
	* conf/workers/default.xml:
	* flumotion/admin/gtk/main.py:
	* flumotion/common/config.py:
	* flumotion/manager/main.py:
	* flumotion/worker/config.py:
	* flumotion/worker/main.py:
	  add --debug options to command line
	  add <debug></debug> option to config file for worker and manager

2004-11-09  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/admin.py:
	* flumotion/common/errors.py:
	* flumotion/wizard/steps.py:
	* flumotion/wizard/wizard.py:
	  cleanup of wizard code; better error checking, throw up
	  error dialogs.  Fixes issue #92

2004-11-09  Johan Dahlin  <johan@gnome.org>

	* configure.ac: Check for the gst module before gst.interfaces and
	set PYTHONPATH based on the directory found in pkg-config.

2004-11-05  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	  back to development

=== release 0.1.2 ===

2004-11-05  Thomas Vander Stichele  <thomas at apestaart dot org>

	* NEWS:
	* configure.ac:
	  bump for release
	* flumotion/test/test_wizard.py:
	  skip test for now

2004-11-05  Johan Dahlin  <johan@gnome.org>

	* flumotion/common/errors.py:
	* flumotion/wizard/steps.py:
	* flumotion/wizard/wizard.py:

	Add error dialog to audio source step
	
2004-11-05  Christian Schaller <christian at fluendo com>

	* flumotion.spec.in: update spec file and init.d script for 
	redhat integration so that it appears in services GUI

2004-11-05  Thomas Vander Stichele  <thomas at apestaart dot org>

	* data/glade/wizard_tvcard.glade:
	* data/glade/wizard_webcam.glade:
	  fix up defaults

2004-11-05  Thomas Vander Stichele  <thomas at apestaart dot org>

	* Makefile.am:
	* flumotion.spec.in:
	* flumotion/Makefile.am:
	* flumotion/admin/Makefile.am:
	* flumotion/admin/gtk/Makefile.am:
	* flumotion/common/Makefile.am:
	* flumotion/component/Makefile.am:
	* flumotion/component/base/Makefile.am:
	* flumotion/component/bouncers/Makefile.am:
	* flumotion/component/consumers/Makefile.am:
	* flumotion/component/consumers/disker/Makefile.am:
	* flumotion/component/consumers/httpstreamer/Makefile.am:
	* flumotion/component/converters/Makefile.am:
	* flumotion/component/converters/overlay/Makefile.am:
	* flumotion/component/encoders/Makefile.am:
	* flumotion/component/muxers/Makefile.am:
	* flumotion/component/producers/Makefile.am:
	* flumotion/component/producers/audiotest/Makefile.am:
	* flumotion/component/producers/bttv/Makefile.am:
	* flumotion/component/producers/firewire/Makefile.am:
	* flumotion/component/producers/soundcard/Makefile.am:
	* flumotion/component/producers/videotest/Makefile.am:
	* flumotion/component/producers/webcam/Makefile.am:
	* flumotion/configure/Makefile.am:
	* flumotion/manager/Makefile.am:
	* flumotion/service/Makefile.am:
	* flumotion/test/Makefile.am:
	* flumotion/tester/Makefile.am:
	* flumotion/twisted/Makefile.am:
	* flumotion/utils/Makefile.am:
	* flumotion/wizard/Makefile.am:
	* flumotion/worker/Makefile.am:
	* py-compile:
	* python.mk:

	Fix py-compile to support DESTDIR, so the rpm can tag compiled python
	code with the final on-disk location

2004-11-05  Johan Dahlin  <johan@gnome.org>

	* data/glade/wizard_webcam.glade:
	* flumotion/wizard/steps.py:

	Add autodetection code for the webcam

2004-11-05  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	  expand LIBDIR for installed.py.in
	* doc/redhat/flumotion:
	  allow starting and stopping only one of the service parts
	  handle error values correctly
	  log to a service log file
	* flumotion/manager/main.py:
	* flumotion/service/main.py:
	  add log file for service startup

2004-11-04  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/service/main.py:
	* flumotion/service/service.py:
	  give good return values so service script is useful
	* flumotion/worker/config.py:
	  fix not inited bug

2004-11-04  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/registry.py:
	  debug
	* flumotion/configure/installed.py.in:
	  fix pythondir
	* flumotion/service/service.py:
	  set name on worker

2004-11-04  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/consumers/httpstreamer/resources.py:
	  fix a STUPID bug where the requester was stored as a tuple because
	  of a trailing comma and of course %s alone doesn't show this as
	  a tuple.  sigh.
	* flumotion/common/errors.py:
	* flumotion/component/bouncers/bouncer.py:
	* flumotion/component/consumers/httpstreamer/http.py:
	* flumotion/manager/component.py:
	  add some more functions so keycards can be expired by the bouncer

2004-11-04  Thomas Vander Stichele  <thomas at apestaart dot org>

	* Makefile.am:
	* flumotion/component/bouncers/bouncer.py:
	* flumotion/component/bouncers/htpasswdcrypt.py:
	* flumotion/component/encoders/jpeg.py:
	* flumotion/component/encoders/mulaw.py:
	  add more components to pychecker checking and fix warnings

2004-11-04  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/common.py:
	  make pkgAddPath only add stuff to __path__ if not already there

2004-11-04  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/bouncers/bouncer.py:
	* flumotion/component/bouncers/htpasswdcrypt.py:
	  unprivatize Bouncer.addKeycard()

2004-11-04  Thomas Vander Stichele  <thomas at apestaart dot org>

	* Makefile.am:
	* configure.ac:
	* pkgconfig/Makefile.am:
	* pkgconfig/flumotion-uninstalled.pc.in:
	* pkgconfig/flumotion.pc.in:
	  adding .pc files

2004-11-04  Johan Dahlin  <johan@gnome.org>

	* data/glade/wizard_soundcard.glade:
	* flumotion/admin/admin.py:
	* flumotion/admin/gtk/client.py:
	* flumotion/component/feedcomponent.py:
	* flumotion/component/producers/soundcard/soundcard.py:
	* flumotion/component/producers/soundcard/soundcard.xml:
	* flumotion/test/test_wizard.py:
	* flumotion/wizard/enums.py:
	* flumotion/wizard/save.py:
	* flumotion/wizard/steps.py:
	* flumotion/wizard/wizard.py:

	Add OSS/Alsa and probing to soundcard, fixes issue #61
	
2004-11-04  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/registry.py:
	* flumotion/component/base/base.xml:
	* flumotion/component/bouncers/htpasswdcrypt.xml:
	* flumotion/component/consumers/disker/disker.xml:
	* flumotion/component/consumers/httpstreamer/http.xml:
	* flumotion/component/converters/overlay/overlay.xml:
	* flumotion/component/encoders/encoders.xml:
	* flumotion/component/muxers/muxers.xml:
	* flumotion/component/producers/audiotest/audiotest.xml:
	* flumotion/component/producers/bttv/bttv.xml:
	* flumotion/component/producers/firewire/firewire.xml:
	* flumotion/component/producers/soundcard/soundcard.xml:
	* flumotion/component/producers/videotest/videotest.xml:
	* flumotion/component/producers/webcam/webcam.xml:
	* flumotion/test/test_config.py:
	* flumotion/test/test_registry.py:
	  add <registry></registry> toplevel nodes in all partial xml
	  files.  do not raise when a file without <registry> is being
	  parsed so it doesn't trip over other .xml files

2004-11-03  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/wizard/wizard.py:
	  make wizard remember last chosen worker.  fixes issue #76

2004-11-03  Johan Dahlin  <johan@gnome.org>

	* configure.ac: Check for gst.interfaces and gtk.glade

2004-11-02  Thomas Vander Stichele  <thomas at apestaart dot org>

	* bin/flumotion-admin.in:
	  make it work again
	* data/glade/Makefile.am:
	* data/glade/wizard_audiosource.glade:
	* data/image/wizard/Makefile.am:
	* data/image/wizard/audiosrc.png:
	* flumotion/wizard/enums.py:
	* flumotion/wizard/save.py:
	* flumotion/wizard/steps.py:
	  fix bug with audio test source being started on wrong worker
	  rename audiosrc to Sound Card step since that's what it is

2004-11-02  Thomas Vander Stichele  <thomas at apestaart dot org>

	* conf/workers/default.xml:
	* flumotion/worker/config.py:
	* flumotion/worker/main.py:
	* flumotion/worker/worker.py:
	  adding feederport ranges to worker config

2004-11-02  Thomas Vander Stichele  <thomas at apestaart dot org>

	* bin/flumotion-manager.in:
	* bin/flumotion-worker.in:
	* bin/flumotion.in:
	  copy stuff over from other binaries
	* flumotion/common/config.py:
	* flumotion/manager/main.py:
	  add options for manager host and port

2004-11-02  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/common.py:
	* flumotion/worker/job.py:
	* flumotion/worker/main.py:
	  fixing pychecker warnings

2004-11-02  Thomas Vander Stichele  <thomas at apestaart dot org>

	* bin/Makefile.am:
	* bin/flumotion-manager.in:
	* bin/flumotion-worker.in:
	* bin/flumotion.in:
	* conf/Makefile.am:
	* conf/managers/default/planet.xml:
	* conf/workers/default.xml:
	* configure.ac:
	* doc/Makefile.am:
	* doc/redhat/flumotion:
	* doc/redhat/init.d/flu-manager:
	* doc/redhat/init.d/flu-worker:
	* doc/redhat/sysconfig/flumotion-manager:
	* doc/redhat/sysconfig/flumotion-worker:
	* flumotion.spec.in:
	* flumotion/Makefile.am:
	* flumotion/common/common.py:
	* flumotion/configure/Makefile.am:
	* flumotion/configure/configure.py:
	* flumotion/configure/installed.py.in:
	* flumotion/configure/uninstalled.py.in:
	* flumotion/manager/main.py:
	* flumotion/service/Makefile.am:
	* flumotion/service/__init__.py:
	* flumotion/service/main.py:
	* flumotion/service/service.py:
	* flumotion/worker/config.py:
	* flumotion/worker/job.py:
	* flumotion/worker/main.py:
	* flumotion/worker/worker.py:
	  restructuring and adding code to support decent init scripts
	  and correct daemon behaviour

2004-11-02  Johan Dahlin  <johan@gnome.org>

	* Makefile.am:
	* bin/flumotion-manager.in:
	* bin/flumotion-worker.in:
	* configure.ac:
	* flumotion/common/common.py:
	* flumotion/common/registry.py:
	* flumotion/common/setup.py:
	* flumotion/configure/configure.py:
	* flumotion/test/test_registry.py:

	Add support for FLU_REGISTRY_PATH
	
2004-10-29  Johan Dahlin  <johan@gnome.org>

	* data/glade/wizard_firewire.glade:

	Set 384 as default width and 576 as max height.
	
2004-10-28  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/consumers/httpstreamer/resources.py:
	  advertise correct Flumotion version

2004-10-27  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/worker/job.py:
	* flumotion/worker/worker.py:
	  a SIGCHLD handler can be called only once for multiple children,
	  so loop as long as we can and only consider a call where no children
	  were rept as a "special" (possibly wrong) case.  This should fix
	  issue #73

2004-10-27  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/wizard/wizard.py:
	  Throw up an error dialog if a worker is missing elements needed
	  for the step, and block going to the next one.

2004-10-27  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/wizard/steps.py:
	  Don't activate save to disk by default.  If stuff like this
	  ever needs to be done, do it in the glade file instead.

2004-10-26  Johan Dahlin  <johan@gnome.org>

	* flumotion/component/producers/firewire/firewire.py:

	proper width and height in here, avoids unnecessary and ugly scaling.

2004-10-26  Johan Dahlin  <johan@gnome.org>

	* flumotion/test/test_wizard.py:
	* flumotion/wizard/save.py:
	* flumotion/wizard/wizard.py:

	Don't output firewire-audio if we have firewire-video
	Add a test for this too.
	
2004-10-26  Johan Dahlin  <johan@gnome.org>

	* flumotion/wizard/save.py:

	Don't add firewire audio component twice.

2004-10-26  Johan Dahlin  <johan@gnome.org>

	* flumotion/wizard/save.py:

	Ensure width and height always is set.

2004-10-25  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	  back to devel

=== release 0.1.1 ===

2004-10-25  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	  releasing 0.1.1, "El Local"

2004-10-25  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/registry.py:
	* flumotion/test/test_registry.py:
	  fix make distcheck.

2004-10-25  Johan Dahlin  <johan@gnome.org>

	* data/glade/wizard_firewire.glade:
	* flumotion/wizard/save.py:
	* flumotion/wizard/steps.py:

	Add firewire to the wizard and add good defaults.
	
2004-10-25  Johan Dahlin  <johan@gnome.org>

	* flumotion/component/producers/firewire/firewire.py:

	Add width, height and framerate
	
2004-10-25  Johan Dahlin  <johan@gnome.org>

	* flumotion/wizard/steps.py:
	* flumotion/wizard/wizard.py:

	Allow you to change worker and make things easily updatable

2004-10-25  Thomas Vander Stichele  <thomas at apestaart dot org>

	* data/glade/wizard_vorbis.glade:
	  Fix quality setting, which is a float from 0.0 to 1.0

2004-10-25  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	  Check for Twisted's version.  Fixes issue #46.

2004-10-25  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	  check for Twisted, needs version check as well
	* m4/as-python.m4:
	new upstream version, check for python module

2004-10-25  Johan Dahlin  <johan@gnome.org>

	* flumotion/admin/admin.py:
	* flumotion/worker/worker.py: 
	Change runCode to execute the parameter and make the admin
	interface to it take a object, which it uses inspect.getsource to
	retrieve the source. This allows us to just send in a function
	instead of a string.

2004-10-22  Johan Dahlin  <johan@gnome.org>

	* data/glade/wizard_tvcard.glade:
	* flumotion/admin/admin.py:
	* flumotion/admin/gtk/main.py:
	* flumotion/common/errors.py:
	* flumotion/component/producers/bttv/bttv.py:
	* flumotion/wizard/steps.py:
	* flumotion/wizard/wizard.py:

	Query the tv-card for information and use it in the wizard.
	Fixes Issue #55
	
2004-10-22  Johan Dahlin  <johan@gnome.org>

	* flumotion/wizard/wizard.py:
	Don't use a global instance of the wizard, only save the steps
	globally. Fixes Ticket #42
	

2004-10-22  Johan Dahlin  <johan@gnome.org>

	* Makefile.am:
	* misc/pycheckerrc:
	Add pychecker target and a configuration file that disables
	the most retarded checks.

2004-10-22  Johan Dahlin  <johan@gnome.org>

	* flumotion/worker/worker.py: Make sure that we send a tuple with
	exactly one item.

2004-10-22  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/admin.py:
	  add errback handling to remote methods
	* flumotion/worker/worker.py:
	  fix docs

2004-10-21  Johan Dahlin  <johan@gnome.org>

	* flumotion/admin/gtk/client.py:
	* flumotion/admin/gtk/main.py:
	* flumotion/wizard/steps.py:
	* flumotion/wizard/wizard.py:

	Check if elements are present on the worker before allowing us to
	continue. Add some simple logging in the wizard. And Fix so
	--wizard does something useful.

2004-10-21  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/test/test_worker_worker.py:
	  add regression tests
	* flumotion/worker/job.py:
	* flumotion/worker/main.py:
	* flumotion/worker/worker.py:
	  install a signal handler correctly, tying into twisted's SIGCHLD
	  handler.  This cleans up zombie workers nicely and closes #41

2004-10-21  Johan Dahlin  <johan@gnome.org>

	* flumotion/component/producers/bttv/bttv.py:
	* flumotion/component/producers/bttv/bttv.xml:
	* flumotion/wizard/steps.py:
	* flumotion/wizard/wizard.py:

	TV-Card producer should work better now.
	
2004-10-21  Johan Dahlin  <johan@gnome.org>

	* flumotion/admin/admin.py:
	* flumotion/common/common.py:
	* flumotion/manager/admin.py:
	* flumotion/manager/worker.py:
	* flumotion/test/test_common.py:

	Make a generic interface to call from the admin interface into the
	worker. Add a method in common with regression tests to print a
	repr for args/kwargs.

2004-10-19  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	  back to svn, yay

=== release 0.1.0 ===

2004-10-19  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac: releasing 0.1.0, "Agua"

2004-10-19  Johan Dahlin  <johan@gnome.org>

	* data/glade/admin.glade:
	Disable Save in the user interface for now

2004-10-19  Thomas Vander Stichele  <thomas at apestaart dot org>

	* NEWS:
	* README:
	* data/glade/wizard_summary.glade:
	  adding README
	  changing ending

2004-10-19  Johan Dahlin  <johan@gnome.org>

	* flumotion/admin/gtk/client.py:
	* flumotion/common/common.py:
	* flumotion/common/config.py:
	* flumotion/wizard/wizard.py:

2004-10-19  Johan Dahlin  <johan@gnome.org>

	* flumotion/wizard/wizard.py:

	Make the selecting of worker for a component actually work as
	intented. Also load the previous steps when clicking back.	

2004-10-19  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/bouncers/htpasswdcrypt.py:
	* flumotion/manager/component.py:
	* flumotion/manager/worker.py:
	  clean up INFO level messages

2004-10-19  Johan Dahlin  <johan@gnome.org>

	* bin/flumotion-admin.in:
	* bin/flumotion-manager.in:
	* bin/flumotion-tester.in:
	* bin/flumotion-worker.in:
	* flumotion/__init__.py:
	* flumotion/admin/__init__.py:
	* flumotion/admin/admin.py:
	* flumotion/admin/gtk/__init__.py:
	* flumotion/admin/gtk/client.py:
	* flumotion/admin/gtk/dialogs.py:
	* flumotion/admin/gtk/main.py:
	* flumotion/admin/gtk/spyglass.py:
	* flumotion/admin/gtk/videotest.py:
	* flumotion/common/__init__.py:
	* flumotion/common/bundle.py:
	* flumotion/common/common.py:
	* flumotion/common/config.py:
	* flumotion/common/errors.py:
	* flumotion/common/interfaces.py:
	* flumotion/common/keycards.py:
	* flumotion/common/log.py:
	* flumotion/common/registry.py:
	* flumotion/common/setup.py:
	* flumotion/component/__init__.py:
	* flumotion/component/base/__init__.py:
	* flumotion/component/base/converter.py:
	* flumotion/component/base/producer.py:
	* flumotion/component/bouncers/__init__.py:
	* flumotion/component/bouncers/bouncer.py:
	* flumotion/component/bouncers/htpasswdcrypt.py:
	* flumotion/component/component.py:
	* flumotion/component/consumers/__init__.py:
	* flumotion/component/consumers/disker/__init__.py:
	* flumotion/component/consumers/disker/disker.py:
	* flumotion/component/consumers/httpstreamer/__init__.py:
	* flumotion/component/consumers/httpstreamer/gtk.py:
	* flumotion/component/consumers/httpstreamer/http.py:
	* flumotion/component/consumers/httpstreamer/resources.py:
	* flumotion/component/converters/__init__.py:
	* flumotion/component/converters/overlay/__init__.py:
	* flumotion/component/converters/overlay/genimg.py:
	* flumotion/component/converters/overlay/overlay.py:
	* flumotion/component/encoders/jpeg.py:
	* flumotion/component/encoders/mulaw.py:
	* flumotion/component/encoders/smoke.py:
	* flumotion/component/encoders/speex.py:
	* flumotion/component/encoders/theora.py:
	* flumotion/component/encoders/vorbis.py:
	* flumotion/component/feedcomponent.py:
	* flumotion/component/muxers/multipart.py:
	* flumotion/component/muxers/ogg.py:
	* flumotion/component/producers/__init__.py:
	* flumotion/component/producers/audiotest/__init__.py:
	* flumotion/component/producers/audiotest/audiotest.py:
	* flumotion/component/producers/bttv/__init__.py:
	* flumotion/component/producers/bttv/bttv.py:
	* flumotion/component/producers/firewire/firewire.py:
	* flumotion/component/producers/soundcard/__init__.py:
	* flumotion/component/producers/soundcard/soundcard.py:
	* flumotion/component/producers/videotest/__init__.py:
	* flumotion/component/producers/videotest/videotest.py:
	* flumotion/component/producers/webcam/__init__.py:
	* flumotion/component/producers/webcam/webcam.py:
	* flumotion/configure/configure.py:
	* flumotion/configure/installed.py.in:
	* flumotion/configure/uninstalled.py.in:
	* flumotion/manager/__init__.py:
	* flumotion/manager/admin.py:
	* flumotion/manager/component.py:
	* flumotion/manager/main.py:
	* flumotion/manager/manager.py:
	* flumotion/manager/worker.py:
	* flumotion/test/__init__.py:
	* flumotion/test/common.py:
	* flumotion/test/test_bundle.py:
	* flumotion/test/test_checkers.py:
	* flumotion/test/test_common.py:
	* flumotion/test/test_component.py:
	* flumotion/test/test_config.py:
	* flumotion/test/test_configure.py:
	* flumotion/test/test_credentials.py:
	* flumotion/test/test_enum.py:
	* flumotion/test/test_htpasswdcrypt.py:
	* flumotion/test/test_http.py:
	* flumotion/test/test_keycards.py:
	* flumotion/test/test_log.py:
	* flumotion/test/test_manager.py:
	* flumotion/test/test_manager_admin.py:
	* flumotion/test/test_pb.py:
	* flumotion/test/test_reflect.py:
	* flumotion/test/test_registry.py:
	* flumotion/test/test_wizard.py:
	* flumotion/test/test_worker_heaven.py:
	* flumotion/test/test_workerconfig.py:
	* flumotion/tester/__init__.py:
	* flumotion/tester/client.py:
	* flumotion/tester/clientfactory.py:
	* flumotion/tester/httpclient.py:
	* flumotion/twisted/__init__.py:
	* flumotion/twisted/checkers.py:
	* flumotion/twisted/credentials.py:
	* flumotion/twisted/gstreactor.py:
	* flumotion/twisted/pb.py:
	* flumotion/twisted/portal.py:
	* flumotion/twisted/reflect.py:
	* flumotion/utils/__init__.py:
	* flumotion/utils/gstutils.py:
	* flumotion/utils/reload.py:
	* flumotion/wizard/enums.py:
	* flumotion/wizard/save.py:
	* flumotion/wizard/steps.py:
	* flumotion/wizard/wizard.py:
	* flumotion/worker/__init__.py:
	* flumotion/worker/config.py:
	* flumotion/worker/job.py:
	* flumotion/worker/main.py:
	* flumotion/worker/worker.py:

	Update header licenses.
	
2004-10-19  Thomas Vander Stichele  <thomas at apestaart dot org>

	* README:
	  add notes about licensing
	* conf/managers/default/planet.xml:
	  change default username to user
	* configure.ac:
	  update deps
	* doc/random/header.py:
	  update default header

2004-10-19  Wim Taymans  <wim@fluendo.com>

	* flumotion/wizard/enums.py:
	* flumotion/wizard/steps.py:
	Fix naming of the steps (bug #28, #29).

2004-10-19  Wim Taymans  <wim@fluendo.com>

	* flumotion/component/producers/firewire/firewire.py:
	Change the names of the feeds

2004-10-19  Johan Dahlin  <johan@gnome.org>

	* flumotion/admin/gtk/client.py:
	* flumotion/admin/gtk/main.py:

	Add file->open and file->new in interface. Don't load default
	configuration on startup.
	
2004-10-19  Johan Dahlin  <johan@gnome.org>

	* data/glade/admin.glade:
	* flumotion/admin/admin.py:
	* flumotion/admin/gtk/client.py:
	* flumotion/manager/admin.py:
	* flumotion/manager/component.py:

	Add a clean button in the interface and methods in the medium and
	avatar.
	
2004-10-19  Johan Dahlin  <johan@gnome.org>

	* flumotion/wizard/save.py:
	Generate a runnable firewire configuration

2004-10-19  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/admin.py:
	* flumotion/admin/gtk/client.py:
	* flumotion/component/component.py:
	* flumotion/manager/admin.py:
	* flumotion/manager/component.py:
	  update state in admin of components properly.  Still hacky
	  since we say a component is ready when the first *feed* on it
	  is, but we'll fix that with moods !

2004-10-19  Thomas Vander Stichele  <thomas at apestaart dot org>

	* doc/random/header.py:
	semi-final header

2004-10-19  Johan Dahlin  <johan@gnome.org>

	* flumotion/wizard/save.py: Boolean expression was broken, it's
	now as it should be.
	* flumotion/wizard/steps.py: Don't skip audio encoding page if we
	have both audio and video. Don't skip encoding if we're chosing a
	audio page without a configuration, instead of going directly to
	consumption page.

2004-10-19  Thomas Vander Stichele  <thomas at apestaart dot org>

	* doc/Makefile.am:
	* doc/redhat/flu-manager:
	* doc/redhat/flu-worker:
	* doc/redhat/init.d/flu-manager:
	* doc/redhat/sysconfig/flumotion-manager:
	* doc/redhat/sysconfig/flumotion-worker:
	* flumotion.spec.in:

	More package fixes, service starts up nicely now, yay

2004-10-19  Johan Dahlin  <johan@gnome.org>

	* data/glade/admin.glade:
	* data/glade/wizard_source.glade:
	* flumotion/admin/gtk/client.py:
	* flumotion/wizard/enums.py:
	* flumotion/wizard/save.py:
	* flumotion/wizard/steps.py:

	Remove some broken stuff in the admin interface.
	Improve the wizard, it was quite broken.
	
2004-10-19  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion.spec.in:
	* flumotion/manager/main.py:
	  moved pem, fixed an oops

2004-10-19  Thomas Vander Stichele  <thomas at apestaart dot org>

	* conf/Makefile.am:
	* doc/redhat/flu-manager:
	* flumotion.spec.in:
	  fix dist

2004-10-19  Johan Dahlin  <johan@gnome.org>

	* configure.ac:
	* flumotion/component/muxers/ogg.py:
	* flumotion/component/producers/Makefile.am:
	* flumotion/component/producers/dv/Makefile.am:
	* flumotion/component/producers/dv/__init__.py:
	* flumotion/component/producers/dv/dv.py:
	* flumotion/component/producers/dv/dv.xml:
	* flumotion/component/producers/firewire/Makefile.am:
	* flumotion/component/producers/firewire/__init__.py:
	* flumotion/component/producers/firewire/firewire.py:
	* flumotion/component/producers/firewire/firewire.xml:

	Remove dv component and add firewire
	
2004-10-19  Johan Dahlin  <johan@gnome.org>

	* flumotion/component/producers/audiotest/audiotest.py:
	* flumotion/component/producers/audiotest/audiotest.xml:

	Add freq property.
	
2004-10-19  Johan Dahlin  <johan@gnome.org>

	* data/image/wizard/Makefile.am:
	* data/image/wizard/summary.png:
	* flumotion/wizard/steps.py:

	Add summary icon and fix small regression.
	
2004-10-19  Johan Dahlin  <johan@gnome.org>

	* flumotion/test/Makefile.am:
	* flumotion/test/test_workerconfig.py:
	* flumotion/worker/Makefile.am:
	* flumotion/worker/config.py:

	Add worker configuration and testsuite

2004-10-19  Wim Taymans  <wim@fluendo.com>

	* flumotion/manager/main.py:
	Fix typos and copy-and-paste errors.

2004-10-19  Johan Dahlin  <johan@gnome.org>

	reviewed by: <delete if not using a buddy>

	* data/glade/Makefile.am:
	* data/glade/wizard_audio_encoder.glade:
	* data/glade/wizard_vorbis.glade:
	* flumotion/manager/main.py:
	* flumotion/wizard/steps.py:

2004-10-19  Johan Dahlin  <johan@gnome.org>

	* data/glade/Makefile.am:
	* data/glade/wizard.glade:
	* data/glade/wizard_audio_encoder.glade:
	* data/glade/wizard_disk.glade:
	* data/glade/wizard_license.glade:
	* data/glade/wizard_smoke.glade:
	* data/glade/wizard_summary.glade:
	* flumotion/wizard/steps.py:
	* flumotion/wizard/wizard.py:

	Add a summary step, tweak audio_encoder to show quality for vorbis
	Change the disk button into an entry
	Increase the size of the wizard slightly
	
2004-10-18  Wim Taymans  <wim@fluendo.com>

	* conf/dv-ogg-theora-vorbis.xml:
	* flumotion/manager/main.py:
	Added ogg theora vorbis example
	Fix correct var for the filename.

2004-10-18  Thomas Vander Stichele  <thomas at apestaart dot org>

	* conf/Makefile.am:
	* data/glade/Makefile.am:
	* flumotion.spec.in:
	  updates
	* flumotion/component/bouncers/Makefile.am:
	* flumotion/component/converters/overlay/overlay.py:
	  import correctly, use tempfile
	* flumotion/manager/main.py:

2004-10-18  Johan Dahlin  <johan@gnome.org>

	* data/glade/wizard_audiotest.glade:
	* flumotion/admin/admin.py:
	* flumotion/admin/gtk/main.py:
	* flumotion/manager/admin.py:
	* flumotion/manager/worker.py:
	* flumotion/wizard/enums.py:
	* flumotion/wizard/steps.py:
	* flumotion/wizard/wizard.py:
	* flumotion/worker/worker.py:
	add some checks for some elements, not using the result just yet.
	
2004-10-18  Thomas Vander Stichele  <thomas at apestaart dot org>

	* bin/Makefile.am:
	* conf/flows/ogg-test-theora.xml:
	* configure.ac:
	* doc/random/service:
	* flumotion/manager/main.py:
	  make manager start up multiple xml files

2004-10-18  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	* flumotion/component/Makefile.am:
	* flumotion/component/converters/Makefile.am:
	* flumotion/component/converters/__init__.py:
	* flumotion/component/converters/overlay/Makefile.am:
	* flumotion/component/converters/overlay/__init__.py:
	* flumotion/component/converters/overlay/genimg.py:
	* flumotion/component/converters/overlay/overlay.py:
	* flumotion/component/converters/overlay/overlay.xml:
	* flumotion/component/overlay/Makefile.am:
	* flumotion/component/overlay/Vera.ttf:
	* flumotion/component/overlay/__init__.py:
	* flumotion/component/overlay/cc.24x24.png:
	* flumotion/component/overlay/fluendo.24x24.png:
	* flumotion/component/overlay/genimg.py:
	* flumotion/component/overlay/overlay.py:
	* flumotion/component/overlay/overlay.xml:
	* flumotion/component/overlay/xiph.24x24.png:
	* flumotion/component/producers/Makefile.am:
	* flumotion/component/producers/__init__.py:
	* flumotion/component/producers/webcam/Makefile.am:
	* flumotion/component/producers/webcam/__init__.py:
	* flumotion/component/producers/webcam/webcam.py:
	* flumotion/component/producers/webcam/webcam.xml:
	* flumotion/component/webcam/Makefile.am:
	* flumotion/component/webcam/__init__.py:
	* flumotion/component/webcam/webcam.py:
	* flumotion/component/webcam/webcam.xml:
	  this should do the trick

2004-10-18  Johan Dahlin  <johan@gnome.org>

	* flumotion/admin/gtk/main.py:
	* flumotion/common/config.py:
	* flumotion/manager/worker.py:
	* flumotion/worker/job.py:

	Improve startup wizard logic, still not good
	cleanup configuration parsing, set worker on the entry object if
	its specified in the tag

	Remove config and start-factory from dictionary, finally.
	
2004-10-18  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	* flumotion/component/Makefile.am:
	* flumotion/component/bttv/Makefile.am:
	* flumotion/component/bttv/__init__.py:
	* flumotion/component/bttv/bttv.py:
	* flumotion/component/bttv/bttv.xml:
	* flumotion/component/dv/Makefile.am:
	* flumotion/component/dv/__init__.py:
	* flumotion/component/dv/dv.py:
	* flumotion/component/dv/dv.xml:
	* flumotion/component/producers/Makefile.am:
	* flumotion/component/producers/bttv/Makefile.am:
	* flumotion/component/producers/bttv/__init__.py:
	* flumotion/component/producers/bttv/bttv.py:
	* flumotion/component/producers/bttv/bttv.xml:
	* flumotion/component/producers/dv/Makefile.am:
	* flumotion/component/producers/dv/__init__.py:
	* flumotion/component/producers/dv/dv.py:
	* flumotion/component/producers/dv/dv.xml:
	  moved dv and bttv

2004-10-18  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	* flumotion/component/Makefile.am:
	* flumotion/component/audiotest/Makefile.am:
	* flumotion/component/audiotest/__init__.py:
	* flumotion/component/audiotest/audiotest.py:
	* flumotion/component/audiotest/audiotest.xml:
	* flumotion/component/producers/Makefile.am:
	* flumotion/component/producers/audiotest/Makefile.am:
	* flumotion/component/producers/audiotest/__init__.py:
	* flumotion/component/producers/audiotest/audiotest.py:
	* flumotion/component/producers/audiotest/audiotest.xml:
	* flumotion/component/producers/soundcard/Makefile.am:
	* flumotion/component/producers/soundcard/__init__.py:
	* flumotion/component/producers/soundcard/soundcard.py:
	* flumotion/component/producers/soundcard/soundcard.xml:
	* flumotion/component/soundcard/Makefile.am:
	* flumotion/component/soundcard/__init__.py:
	* flumotion/component/soundcard/soundcard.py:
	* flumotion/component/soundcard/soundcard.xml:
	  move audiotest and souncard

2004-10-18  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/test/Makefile.am:
	* flumotion/test/test_manager_admin.py:
	  adding test

2004-10-18  Johan Dahlin  <johan@gnome.org>

	* data/glade/Makefile.am:
	* data/glade/wizard.glade:
	* data/glade/wizard_audio_encoder.glade:
	* data/glade/wizard_audiotest.glade:
	* data/glade/wizard_source.glade:
	* data/glade/wizard_welcome.glade:
	* flumotion/admin/gtk/main.py:
	* flumotion/manager/worker.py:
	* flumotion/test/test_worker_heaven.py:
	* flumotion/wizard/enums.py:
	* flumotion/wizard/save.py:
	* flumotion/wizard/steps.py:
	* flumotion/wizard/wizard.py:
	* flumotion/worker/main.py:

	Add audiotest component, add workers everywhere in the wizard and
	save it properly. 
	Fix wizard debugging again.
	
2004-10-18  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	* flumotion/component/Makefile.am:
	* flumotion/component/producers/Makefile.am:
	* flumotion/component/producers/__init__.py:
	* flumotion/component/producers/videotest/Makefile.am:
	* flumotion/component/producers/videotest/__init__.py:
	* flumotion/component/producers/videotest/videotest.py:
	* flumotion/component/producers/videotest/videotest.xml:
	* flumotion/component/videotest/Makefile.am:
	* flumotion/component/videotest/__init__.py:
	* flumotion/component/videotest/videotest.py:
	* flumotion/component/videotest/videotest.xml:
	  move videotest to producers

2004-10-18  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	* flumotion/component/Makefile.am:
	* flumotion/component/consumers/disker/Makefile.am:
	* flumotion/component/consumers/disker/__init__.py:
	* flumotion/component/consumers/httpstreamer/__init__.py:
	* flumotion/component/consumers/httpstreamer/gtk.py:
	* flumotion/component/consumers/httpstreamer/http.py:
	* flumotion/component/consumers/httpstreamer/resources.py:
	* flumotion/test/test_http.py:
	* flumotion/wizard/save.py:
	* flumotion/worker/job.py:
	* flumotion/worker/worker.py:
	  move and rename consumer components and friends

2004-10-18  Thomas Vander Stichele  <thomas at apestaart dot org>

	* TODO:
	* flumotion/component/Makefile.am:
	* flumotion/component/consumers/httpstreamer/Makefile.am:
	* flumotion/component/consumers/httpstreamer/http.xml:
	* flumotion/component/file/Makefile.am:
	* flumotion/component/file/__init__.py:
	* flumotion/component/file/file.py:
	* flumotion/component/file/file.xml:
	* flumotion/component/http/Makefile.am:
	* flumotion/component/http/__init__.py:
	* flumotion/component/http/gtk.py:
	* flumotion/component/http/http.glade:
	* flumotion/component/http/http.py:
	* flumotion/component/http/http.xml:
	* flumotion/component/http/resources.py:
	  moving and renaming components

2004-10-18  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/Makefile.am:
	* flumotion/component/bouncers/Makefile.am:
	* flumotion/component/bouncers/htpasswd.py:
	* flumotion/component/bouncers/htpasswd.xml:
	* flumotion/component/passwd/Makefile.am:
	* flumotion/component/passwd/__init__.py:
	* flumotion/component/passwd/passwd.py:
	* flumotion/component/passwd/passwd.xml:
	  remove two unused components

2004-10-18  Johan Dahlin  <johan@gnome.org>

	* flumotion/component/file/file.py:
	* flumotion/component/http/http.py:

	file: append an extension to the type
	http: use get_element('sink') instead of get_sink()

2004-10-18  Wim Taymans  <wim@fluendo.com>

	* flumotion/component/encoders/speex.py:
	* flumotion/wizard/steps.py:
	Fix speex encoding.
	Set bitrate property range to sane values.

2004-10-18  Johan Dahlin  <johan@gnome.org>

	* flumotion/admin/gtk/main.py:
	* flumotion/wizard/save.py:
	* flumotion/wizard/wizard.py:

	Make --wizard and --debug work again.

	Create muxers when we need them and make sure to only create them
	when they're needed.
	
2004-10-18  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/errors.py:
	* flumotion/component/overlay/Makefile.am:
	* flumotion/component/overlay/cc_24x24.png:
	* flumotion/component/overlay/fluendo_24x24.png:
	* flumotion/component/overlay/genimg.py:
	* flumotion/component/overlay/xiph_24x24.png:
	  rename a little
	* flumotion/worker/job.py:
	* flumotion/worker/worker.py:
	  handle failed imports more gracefully than before

2004-10-18  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/admin.py:
	* flumotion/admin/gtk/client.py:
	* flumotion/component/component.py:
	  not having an UI is not an error.
	  clear UI in admin when no UI.

2004-10-18  Wim Taymans  <wim@fluendo.com>

	* flumotion/admin/gtk/main.py:
	* flumotion/manager/component.py:
	Fix uninitialized var.
	Fix dependency breakage.

2004-10-18  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/file/file.py:
	  make name slightly cleaner
	* flumotion/component/webcam/webcam.py:
	  more webcam fixing, use filtercaps

2004-10-17  Wim Taymans  <wim@fluendo.com>

	* data/glade/wizard_overlay.glade:
	Fix typo.

2004-10-17  Thomas Vander Stichele  <thomas at apestaart dot org>

	* data/glade/wizard_webcam.glade:
	* flumotion/component/webcam/webcam.py:
	  turn off autoprobe
	  lock spinbutton's values to what webcams can actually do

2004-10-17  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/admin.py:
	  fix Johan's bug

2004-10-17  Johan Dahlin  <johan@gnome.org>

	* flumotion/test/test_wizard.py: Fix test breakage

	* bin/flumotion-admin.in:
	* flumotion/admin/admin.py:
	* flumotion/admin/gtk/Makefile.am:
	* flumotion/admin/gtk/client.py:
	* flumotion/admin/gtk/dialogs.py:
	* flumotion/admin/gtk/main.py:
	* flumotion/manager/admin.py:
	* flumotion/manager/worker.py:
	* flumotion/wizard/wizard.py:

	Integrate the Wizard into the admin client, almost works as it
	should.
	
2004-10-17  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/feedcomponent.py:
	* flumotion/configure/configure.py:
	* flumotion/wizard/steps.py:
	* flumotion/worker/worker.py:
	  also use default ports for streaming and GStreamer ports

2004-10-17  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/gtk/client.py:
	* flumotion/configure/configure.py:
	* flumotion/manager/main.py:
	* flumotion/worker/main.py:
	  set the default ports for TCP, SSL, streamer and GStreamer
	  use the default manager ports everywhere

2004-10-17  Thomas Vander Stichele  <thomas at apestaart dot org>

	* conf/flows/ogg-test-theora.xml:
	* conf/planets/default.xml:
	  some changes for new structure
	* flumotion.spec.in:
	  some additions
	* configure.ac:
	* flumotion/configure/configure.py:
	* flumotion/configure/installed.py.in:
	* flumotion/configure/uninstalled.py.in:
	* flumotion/test/test_configure.py:
	  add logdir
	* flumotion/manager/main.py:
	* flumotion/manager/worker.py:
	* flumotion/worker/main.py:
	  use logdir when daemonizing

2004-10-17  Johan Dahlin  <johan@gnome.org>

	* flumotion/component/audiotest/audiotest.py (createComponent):
	Set sync to true for sinesrc, to avoid eating up all CPU.

	* flumotion/wizard/enums.py:
	* flumotion/wizard/save.py:
	* flumotion/wizard/steps.py:
	* flumotion/wizard/wizard.py:

	Make it optional to specifiy the mainloop, so we can run it from
	the administration interface.

2004-10-17  Wim Taymans  <wim@fluendo.com>

	* doc/random/authentication:
	* flumotion/manager/component.py:
	Added some FIXMEs.
	Moved callback function.

2004-10-17  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/common.py:
	* flumotion/manager/component.py:
	* flumotion/manager/main.py:
	* flumotion/manager/manager.py:
	* flumotion/worker/main.py:
	  add options to -manager and -worker to daemonize

2004-10-17  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/keycards.py:
	* flumotion/manager/admin.py:
	* flumotion/manager/component.py:
	* flumotion/manager/main.py:
	* flumotion/twisted/pb.py:
	  60% coverage !

2004-10-17  Johan Dahlin  <johan@gnome.org>

	* data/glade/wizard_disk.glade:
	* data/glade/wizard_http.glade:
	* flumotion/common/config.py:
	* flumotion/component/feedcomponent.py:
	* flumotion/component/file/file.py:
	* flumotion/component/file/file.xml:
	* flumotion/component/http/http.py:
	* flumotion/test/test_config.py:
	* flumotion/wizard/enums.py:
	* flumotion/wizard/save.py:
	* flumotion/wizard/steps.py:

	HTTP component: UI work, remove worker
	Disk component: make it work again, UI work
	
2004-10-17  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/test/test_pb.py:
	  add missing tests, everything works, yay !

2004-10-17  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/test/test_pb.py:
	  add a regression test for the complete FPBClientFactory
	  and fix others
	* flumotion/twisted/pb.py:
	* flumotion/twisted/portal.py:
	  commenting, documenting, fixing, logging

2004-10-17  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/twisted/portal.py:
	  cleanup
	* flumotion/test/test_pb.py:
	* flumotion/twisted/pb.py:
	  remove deprecated stuff:
	  FMClientFactory, _PortalRoot, _FPortalAuthChallenger

2004-10-17  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/manager/admin.py:
	* flumotion/worker/worker.py:
	  doc fixes
	* flumotion/twisted/portal.py:
	  document, remove FlumotionPortal

2004-10-17  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/manager/manager.py:
	  Remove ManagerCredentialsChecker which was deprecated.

2004-10-17  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/manager/admin.py:
	* flumotion/twisted/portal.py:
	  The avatar was being removed twice, once by heaven, once by
	  detached.
	  Take opportunity to store avatarId's for admin and consistentify
	  with other heavens.
	  Still need to assign a unique id to admin clients.

2004-10-17  Johan Dahlin  <johan@gnome.org>

	* flumotion/component/http/Makefile.am:
	* flumotion/component/http/http.py:
	* flumotion/component/http/http_resources.py:
	* flumotion/component/http/resources.py:
	* flumotion/test/test_http.py:
	* flumotion/test/test_wizard.py:
	  Johan needs to update this

	Rename http_resources to resources, and update tests.
	Add more wizard tests
	
2004-10-17  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/component.py:
	* flumotion/twisted/portal.py:
	* flumotion/worker/job.py:
	* flumotion/worker/main.py:
	* flumotion/worker/worker.py:
	  component now logs in with same options as the worker it got
	  started from

2004-10-17  Johan Dahlin  <johan@gnome.org>

	* flumotion/wizard/wizard.py: Add very simple unittest for wizard
	and its steps

	* flumotion/wizard/steps.py: Rename from wizard_step to make
	thomas happy

	* flumotion/wizard/wizard.py:
	* flumotion/wizard/wizard_step.py:

	Make it possible to go back to major steps. Fixes quite a few bugs.
	Beginning of cleanup for the WizardStep API.
	
2004-10-17  Johan Dahlin  <johan@gnome.org>

	* data/glade/wizard_overlay.glade:
	* flumotion/wizard/save.py:
	* flumotion/wizard/wizard_step.py:

	Fixes to overlay component, it should only show a text if chose to
	include one in the wizard.
	
2004-10-17  Thomas Vander Stichele  <thomas at apestaart dot org>

	* TODO:
	  clean up todo, some things are already done, yay

2004-10-17  Thomas Vander Stichele  <thomas at apestaart dot org>

	* conf/planet.xml:
	* flumotion/common/config.py:
	* flumotion/manager/worker.py:
	* flumotion/test/test_config.py:
	* flumotion/wizard/wizard.py:
	* flumotion/wizard/wizard_step.py:
	  grid to flow

2004-10-17  Thomas Vander Stichele  <thomas at apestaart dot org>

	* conf/planet.xml:
	  use htpasswdcrypt bouncer for manager and streamer
	* flumotion/component/http/http_resources.py:
	  use KeycarUACPP instead of deprecated HTTPClientKeycard
	* flumotion/component/bouncers/htpasswdcrypt.py:
	  return a random-ish salt when the username is not in the
	  backend to pretend everything's fine
	* flumotion/component/component.py:
	  switch from reconnecting client factory to new FPBClientFactory
	* flumotion/twisted/portal.py:
	  add new BouncerPortal wrapping an IRealm and a Bouncer
	* flumotion/twisted/pb.py:
	  add new FPB Client and Server Factories
	* flumotion/test/test_pb.py:
	  added
	* flumotion/admin/gtk/client.py:
	  change password option to -d, pass on options to model
	  for keycard
	* flumotion/admin/admin.py:
	  use FPBClientFactory
	  log in with an actual keycard, using Challenge/Response, yay !
	* flumotion/common/keycards.py:
	  set unjellyable, change repr
	* flumotion/worker/worker.py:
	  use FPBClientFactory
	* flumotion/worker/job.py:
	  log in component using keycard (currently UACPP, change later ?)
	* flumotion/worker/main.py:
	  log in worker using keycard (currently UACPP, change later ?)
	* flumotion/manager/manager.py:
	  use the bouncer portal now
	* flumotion/manager/component.py:
	  some debugging

2004-10-16  Johan Dahlin  <johan@gnome.org>

	* data/glade/wizard_audio_encoder.glade:
	* data/glade/wizard_consumption.glade:
	* data/glade/wizard_encoding.glade:
	* data/glade/wizard_overlay.glade:
	* data/glade/wizard_theora.glade:
	* data/image/wizard/firewire.png:
	* data/image/wizard/webcam.png:
	* flumotion/common/config.py:
	* flumotion/component/overlay/Makefile.am:
	* flumotion/component/overlay/genimg.py:
	* flumotion/component/overlay/overlay.py:
	* flumotion/component/overlay/overlay.xml:
	* flumotion/test/test_config.py:
	* flumotion/wizard/enums.py:
	* flumotion/wizard/save.py:
	* flumotion/wizard/wizard.py:
	* flumotion/wizard/wizard_step.py:

	Some HIG fixes, Fix overlay component. Only show logos when we
	should.
	Make sidebar work somewhat better.
	
2004-10-16  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/test/test_common.py:
	* flumotion/common/common.py:
	  write a mergeImplements function to merge __implements__ class
	  attributes
	* flumotion/common/keycard.py:
	  removed
	* flumotion/common/keycards.py:
	  additions
	* flumotion/component/bouncers/bouncer.py:
	  verify that the bouncer can prime the given keycard
	* flumotion/twisted/checkers.py:
	* flumotion/test/test_checkers.py:
	  return a deferred failure when the user is not in the database,
	  so it looks the same as a wrong password and can't be exploited
	* flumotion/component/bouncers/htpasswdcrypt.py:
	* flumotion/component/bouncers/htpasswdcrypt.xml:
	  implement actual functionality
	* flumotion/test/Makefile.am:
	* flumotion/test/test_htpasswdcrypt.py:
	  added
	* flumotion/test/test_keycards.py:
	  test initing of keycard
	* flumotion/twisted/credentials.py:
	  fix __implements__

2004-10-16  Johan Dahlin  <johan@gnome.org>

	* flumotion/worker/worker.py: Clean up error
	handling in worker brain.

	* flumotion/component/Makefile.am:
	* flumotion/component/audiotest/Makefile.am:
	* flumotion/component/audiotest/__init__.py:
	* flumotion/component/audiotest/audiotest.py:
	* flumotion/component/audiotest/audiotest.xml:
	* flumotion/wizard/enums.py:
	* flumotion/wizard/save.py:
	* flumotion/wizard/wizard_step.py:

	Add an audiotest step (sinesrc)
	
2004-10-16  Johan Dahlin  <johan@gnome.org>

	* flumotion/component/overlay/Makefile.am:
	* flumotion/component/overlay/cc_24x24.png:
	* flumotion/component/overlay/fluendo_24x24.png:
	* flumotion/component/overlay/overlay.py:
	* flumotion/component/overlay/xiph_24x24.png:
	* flumotion/twisted/gstreactor.py:
	* flumotion/wizard/wizard_step.py:

	Add logos to overlay component, remove some prints in gstreactor

2004-10-16  Thomas Vander Stichele  <thomas at apestaart dot org>

	* TODO:
	* conf/planet.xml:
	* doc/random/authentication:
	* flumotion/common/keycards.py:
	* flumotion/test/Makefile.am:
	* flumotion/test/test_credentials.py:
	* flumotion/test/test_keycards.py:
	* flumotion/twisted/credentials.py:
	  add tests and add some keycards

2004-10-16  Johan Dahlin  <johan@gnome.org>

	* data/image/wizard/Makefile.am (image_DATA): Add a few more icons
	for the wizard

	* flumotion/manager/component.py (ComponentHeaven.shutdown):
	Remove the avatar
	(ComponentHeaven.createAvatar, ComponentHeaven.removeAvatar): Add
	logging.
	(ComponentHeaven.removeAvatar): Remove feeders too
	(FeederSet.removeFeeders): New method.

	* flumotion/manager/main.py (_loadConfig): Don't parse the
	configuration twice.

2004-10-15  Johan Dahlin  <johan@gnome.org>

	* configure.ac:
	* data/glade/wizard.glade:
	* data/image/wizard/audiosrc.png:
	* data/image/wizard/consumption.png:
	* data/image/wizard/firewire.png:
	* data/image/wizard/licenses.png:
	* data/image/wizard/overlay.png:
	* data/image/wizard/source.png:
	* data/image/wizard/testsource.png:
	* data/image/wizard/webcam.png:
	* data/image/wizard/wizard.png:
	* data/image/wizard/xiphfish.png:
	* flumotion/component/encoders/smoke.py:
	* flumotion/component/encoders/speex.py:
	* flumotion/wizard/wizard.py:
	* flumotion/wizard/wizard_step.py:

	Wizard work, commit some icons.
	
2004-10-15  Johan Dahlin  <johan@gnome.org>

	* flumotion/test/: Add a few new unittests.

2004-10-15  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/test/test_checkers.py:
	* flumotion/twisted/checkers.py:
	  cred checkers tests and fixes

2004-10-15  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/test/Makefile.am:
	* flumotion/test/test_checkers.py:
	* flumotion/twisted/checkers.py:
	  add a CryptChecker and a test.  TEST NUMBER 100, WOOHOO !

2004-10-15  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/test/Makefile.am:
	* flumotion/test/test_credentials.py:
	* flumotion/twisted/credentials.py:
	  add CryptPassword related credentials and tests

2004-10-15  Thomas Vander Stichele  <thomas at apestaart dot org>

	* TODO:
	* doc/random/header.py:
	  reworded header after call with the lawyer

2004-10-15  Johan Dahlin  <johan@gnome.org>

	* flumotion/test/Makefile.am: Add more unittests

	* flumotion/component/encoders/encoders.xml:
	* flumotion/component/encoders/jpeg.py:
	* flumotion/component/encoders/mulaw.py:
	* flumotion/component/muxers/muxers.xml:
	* flumotion/wizard/enums.py:
	* flumotion/wizard/save.py:

	Multipart/Mulaw/JPEG now works.
	
2004-10-15  Thomas Vander Stichele  <thomas at apestaart dot org>

	* conf/planet.xml:
	* flumotion/twisted/reflect.py:
	  add missing files

2004-10-15  Johan Dahlin  <johan@gnome.org>

	* conf/minimal.xml:
	* conf/videotest-jpeg.xml:
	* flumotion/common/config.py:
	* flumotion/component/component.py:
	* flumotion/component/encoders/theora.py:
	* flumotion/component/http/http_resources.py:
	* flumotion/component/overlay/overlay.py:
	* flumotion/component/overlay/overlay.xml:
	* flumotion/manager/main.py:
	* flumotion/manager/manager.py:
	* flumotion/worker/worker.py
	* flumotion/worker/job.py
	* flumotion/worker/report.py
	* flumotion/worker/main.py
	* flumotion/wizard/save.py:
	* flumotion/wizard/wizard_step.py:

	Update configuration for minimal and videotest. 
	Fix some errors found by pychecker.
	Make the overlay component generate an image on the fly.
	Make the worker use fork() instead of ProcessProtocol.
	
2004-10-15  Thomas Vander Stichele  <thomas at apestaart dot org>

	* Makefile.am:
	* flumotion/Makefile.am:
	* flumotion/common/Makefile.am:
	* flumotion/configure/Makefile.am:
	* flumotion/manager/Makefile.am:
	* flumotion/tester/Makefile.am:
	* flumotion/twisted/Makefile.am:
	* flumotion/utils/Makefile.am:
	* flumotion/wizard/Makefile.am:
	* flumotion/worker/Makefile.am:
	  dist fixes

2004-10-15  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/manager/manager.py:
	* flumotion/twisted/pb.py:
	* flumotion/twisted/portal.py:
	* flumotion/worker/job.py:
	* flumotion/worker/worker.py:
	  merge back portal stuff that came from pb into pb

2004-10-15  Thomas Vander Stichele  <thomas at apestaart dot org>

	* doc/reference/Makefile.am:
	* flumotion/admin/admin.py:
	* flumotion/component/component.py:
	* flumotion/twisted/Makefile.am:
	* flumotion/twisted/pb.py:
	* flumotion/twisted/pbutil.py:
	* flumotion/worker/worker.py:
	  move pbutil.py to pb.py

2004-10-15  Thomas Vander Stichele  <thomas at apestaart dot org>

	* doc/reference/Makefile.am:
	  add twisted stuff
	* flumotion/admin/admin.py:
	* flumotion/component/component.py:
	* flumotion/manager/manager.py:
	* flumotion/twisted/Makefile.am:
	* flumotion/twisted/checkers.py:
	* flumotion/twisted/cred.py:
	* flumotion/twisted/credentials.py:
	* flumotion/worker/job.py:
	* flumotion/worker/main.py:
	* flumotion/worker/worker.py:
	  split out cred.py to credentials.py and checkers.py so they
	  match twisted's .py names

2004-10-15  Thomas Vander Stichele  <thomas at apestaart dot org>

	* TODO:
	  some more notes
	* flumotion/component/http/http_resources.py:
	  fix bug when mountpoint is not specified
	* flumotion/component/bouncers/htpasswd.py:
	* flumotion/component/bouncers/htpasswd.xml:
	  also allow specifying raw data instead of a filename to init
	* flumotion/admin/admin.py:
	* flumotion/common/config.py:
	  add parsing of a raw string
	* flumotion/manager/worker.py:
	* flumotion/worker/job.py:
	* flumotion/worker/worker.py:
	* flumotion/twisted/portal.py:
	  documenting
	* flumotion/manager/manager.py:
	  use the bouncer to authenticate workers, comps and admin to follow
	* flumotion/manager/main.py:
	  create a bouncer component which we don't start, yay !

2004-10-14  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/config.py:
	* flumotion/component/bouncers/htpasswd.xml:
	* flumotion/component/component.py:
	* flumotion/manager/component.py:
	* flumotion/manager/main.py:
	* flumotion/manager/manager.py:
	* flumotion/manager/worker.py:
	* flumotion/test/test_config.py:
	* flumotion/twisted/cred.py:
	* flumotion/twisted/pbutil.py:
	* flumotion/twisted/portal.py:
	* flumotion/worker/job.py:
	* flumotion/worker/main.py:
	  move to the final xml configuration syntax for <planet>
	  add an avatarId request to pb.client and portal so pb.client
	  can request a specific avatarId when logging in

2004-10-14  Johan Dahlin  <johan@gnome.org>

	* flumotion/test/test_http.py: Fix rest regressions.

	* doc/reference/Makefile.am:
	* flumotion/common/Makefile.am:
	* flumotion/common/auth.py:
	* flumotion/component/http/http.py:
	* flumotion/component/http/http.xml:

	Kill auth, replaced by bouncer.
	
2004-10-14  Johan Dahlin  <johan@gnome.org>

	* flumotion/component/feedcomponent.py:
	* flumotion/component/http/Makefile.am:
	* flumotion/component/http/http.py:
	* flumotion/component/http/http.xml:

	Separate twisted resources to a separate file, implement
	mount_point and clean up some other things

2004-10-14  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/gtk/client.py:
	* flumotion/common/common.py:
	* flumotion/manager/main.py:
	* flumotion/worker/main.py:
	  put in --version, synchronize options, use lowercase

2004-10-14  Thomas Vander Stichele  <thomas at apestaart dot org>

	* bin/Makefile.am:
	* bin/flumotion.in:
	* configure.ac:
	  rename flumotion to flumotion-manager

	* flumotion/test/Makefile.am:
	  fix test

2004-10-14  Johan Dahlin  <johan@gnome.org>

	* flumotion/component/feedcomponent.py:
	* flumotion/component/videotest/videotest.py:
	* flumotion/component/videotest/videotest.xml:
	* flumotion/wizard/enums.py:
	* flumotion/wizard/wizard_step.py:

	Fix videotest fix pattern property. Add a method on feedcomponent
	to get an element from a pipeline.
	
2004-10-13  Thomas Vander Stichele  <thomas at apestaart dot org>

	* doc/reference/Makefile.am:
	* flumotion/admin/admin.py:
	* flumotion/admin/gtk/client.py:
	* flumotion/admin/gtk/spyglass.py:
	* flumotion/admin/gtk/videotest.py:
	* flumotion/common/Makefile.am:
	* flumotion/common/config.py:
	* flumotion/common/log.py:
	* flumotion/common/registry.py:
	* flumotion/common/setup.py:
	* flumotion/component/component.py:
	* flumotion/component/http/http.py:
	* flumotion/manager/admin.py:
	* flumotion/manager/component.py:
	* flumotion/manager/main.py:
	* flumotion/manager/manager.py:
	* flumotion/manager/worker.py:
	* flumotion/test/test_log.py:
	* flumotion/test/test_manager.py:
	* flumotion/tester/clientfactory.py:
	* flumotion/tester/httpclient.py:
	* flumotion/utils/Makefile.am:
	* flumotion/utils/log.py:
	* flumotion/utils/reload.py:
	* flumotion/wizard/wizard.py:
	* flumotion/worker/job.py:
	* flumotion/worker/main.py:
	* flumotion/worker/worker.py:
	  utils.log -> common.log

2004-10-13  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/Makefile.am:
	* flumotion/common/launcher.py:
	  remove common.launcher

2004-10-13  Thomas Vander Stichele  <thomas at apestaart dot org>

	* doc/reference/Makefile.am:
	* flumotion/common/config.py:
	* flumotion/common/interfaces.py:
	* flumotion/common/registry.py:
	* flumotion/component/component.py:
	* flumotion/manager/manager.py:
	* flumotion/worker/job.py:
	* flumotion/worker/worker.py:
	  fix doc class hierarchy, fill in module descriptions

2004-10-13  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	* doc/reference/Makefile.am:
	* flumotion/Makefile.am:
	* flumotion/admin/gtk/spyglass.py:
	* flumotion/admin/gtk/videotest.py:
	* flumotion/common/registry.py:
	* flumotion/common/setup.py:
	* flumotion/config/Makefile.am:
	* flumotion/config/__init__.py:
	* flumotion/config/installed.py.in:
	* flumotion/config/setup.py:
	* flumotion/config/uninstalled.py.in:
	* flumotion/configure/Makefile.am:
	* flumotion/configure/__init__.py:
	* flumotion/configure/configure.py:
	* flumotion/configure/installed.py.in:
	* flumotion/configure/uninstalled.py.in:
	* flumotion/manager/main.py:
	* flumotion/test/test_configure.py:
	* flumotion/test/test_flumotion_config.py:
	* flumotion/test/test_log.py:
	* flumotion/wizard/wizard.py:
	  put all configure-time stuff in flumotion.configure package

2004-10-13  Johan Dahlin  <johan@gnome.org>

	* Makefile.am (test): New target

	* flumotion/test/test_log.py (TestOwnLogHandler.setUp) 
	(TestLog.setUp): Reset logging here, to avoid having unwanted
	logging functions installed when running this test.

	* flumotion/utils/log.py (reset): New method, to remove all
	logging handlers

	* data/glade/wizard_audio_encoder.glade:
	* flumotion/component/base/producer.py:
	* flumotion/component/encoders/encoders.xml:
	* flumotion/component/encoders/theora.py:
	* flumotion/component/encoders/vorbis.py:
	* flumotion/component/feedcomponent.py:
	* flumotion/component/muxers/muxers.xml:
	* flumotion/component/muxers/ogg.py:
	* flumotion/component/soundcard/soundcard.py:
	* flumotion/component/soundcard/soundcard.xml:
	* flumotion/component/videotest/videotest.py:
	* flumotion/component/videotest/videotest.xml:
	* flumotion/component/webcam/webcam.py:
	* flumotion/component/webcam/webcam.xml:
	* flumotion/manager/component.py:
	* flumotion/wizard/wizard_step.py:

	Woho, the default configuration is not only parsable, but
	runnable!
	
2004-10-13  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/gtk/client.py:
	* flumotion/manager/main.py:
	* flumotion/worker/Makefile.am:
	* flumotion/worker/job.py:
	* flumotion/worker/launcher.py:
	* flumotion/worker/main.py:
	  synchronize more options
	  make admin client log in with ssl as well

2004-10-13  Thomas Vander Stichele  <thomas at apestaart dot org>

	* conf/manager/flumotion.pem:
	  add a dummy cert
	* configure.ac:
	  add SYSCONFDIR
	* flumotion/config/installed.py.in:
	* flumotion/config/uninstalled.py.in:
	  add configdir
	* flumotion/manager/main.py:
	* flumotion/twisted/cred.py:
	* flumotion/worker/job.py:
	* flumotion/worker/launcher.py:
	* flumotion/worker/main.py:
	* flumotion/worker/worker.py:
	  implement SSL option (-t on worker and manager)

2004-10-13  Johan Dahlin  <johan@gnome.org>

	* flumotion/common/Makefile.am: Add setup.py

	* configure.ac:
	* data/glade/wizard_overlay.glade:
	* flumotion/component/Makefile.am:
	* flumotion/component/encoders/jpeg.py:
	* flumotion/component/encoders/mulaw.py:
	* flumotion/component/encoders/smoke.py:
	* flumotion/component/encoders/speex.py:
	* flumotion/component/encoders/theora.py:
	* flumotion/component/encoders/vorbis.py:
	* flumotion/component/muxers/Makefile.am:
	* flumotion/component/muxers/__init__.py:
	* flumotion/component/muxers/muxers.xml:
	* flumotion/component/muxers/ogg.py:
	* flumotion/component/soundcard/Makefile.am:
	* flumotion/component/soundcard/__init__.py:
	* flumotion/component/soundcard/soundcard.py:
	* flumotion/component/soundcard/soundcard.xml:
	* flumotion/component/webcam/Makefile.am:
	* flumotion/component/webcam/__init__.py:
	* flumotion/component/webcam/webcam.py:
	* flumotion/component/webcam/webcam.xml:
	* flumotion/wizard/enums.py:
	* flumotion/wizard/save.py:
	* flumotion/wizard/wizard_step.py:

	Fix headers for encoders. Add ogg muxer, soundcard and webcam
	components.
	We can now actually parse the default output of the wizard.
	
2004-10-12  Johan Dahlin  <johan@gnome.org>

	* configure.ac:
	* flumotion/component/encoders/Makefile.am:
	* flumotion/component/encoders/encoders.xml:
	* flumotion/component/encoders/mulaw.py:
	* flumotion/component/encoders/speex.py:
	* flumotion/component/encoders/vorbis.py:
	* flumotion/wizard/save.py:
	* flumotion/wizard/wizard_step.py:

	And audio encoders.
	
2004-10-12  Johan Dahlin  <johan@gnome.org>

	* flumotion/component/Makefile.am:
	* flumotion/component/encoders/Makefile.am:
	* flumotion/component/encoders/__init__.py:
	* flumotion/component/encoders/encoders.xml:
	* flumotion/component/encoders/jpeg.py:
	* flumotion/component/encoders/smoke.py:
	* flumotion/component/encoders/theora.py:
	* flumotion/wizard/save.py:
	* flumotion/wizard/wizard_step.py:

	Add video encoders.
	
2004-10-12  Johan Dahlin  <johan@gnome.org>

	* bin/flumotion-admin.in:
	* flumotion/admin/gtk/client.py:
	* flumotion/wizard/Makefile.am:
	* flumotion/wizard/enums.py:
	* flumotion/wizard/save.py:
	* flumotion/wizard/wizard.py:
	* flumotion/wizard/wizard_step.py:

	Make the wizard spit out proper configuration files. Now we just
	need to write all these components. Ignore all UserWarnings,
	perhaps this is the wrong workaround for broken gtk2reactor.
	
	
2004-10-12  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/http/http.py:
	  make PROPFIND return 501

2004-10-12  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/http/http.py:
	  make HEAD requests work

2004-10-12  Thomas Vander Stichele  <thomas at apestaart dot org>

	* conf/ogg-test-theora-bouncer.xml:
	* conf/ogg-test-theora.xml:
	  add <feed>s
	* flumotion/component/http/http.py:
	  revert back to my last version to fix bugs one by one

2004-10-12  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	* flumotion/component/Makefile.am:
	* flumotion/component/bouncer.py:
	* flumotion/component/bouncer.xml:
	* flumotion/component/bouncers/Makefile.am:
	* flumotion/component/bouncers/__init__.py:
	* flumotion/component/bouncers/bouncer.py:
	* flumotion/component/bouncers/bouncer.xml:
	  bounce the bouncer around

2004-10-12  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/keycards.py:
	* flumotion/component/bouncer.py:
	* flumotion/component/http/http.py:
	  implement duration and expire

2004-10-12  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/manager/component.py:
	* flumotion/test/test_manager.py:
	  uniformize, privatize, rewrite, remove, restructure

2004-10-12  Johan Dahlin  <johan@gnome.org>

	* flumotion/component/http/http.py:
	Allow grids without a bouncer. Refactor stuff a little bit. Show 
	a better error message for PROPFIND requests.

	* data/glade/Makefile.am:
	* data/glade/wizard.glade:
	* data/glade/wizard_welcome.glade:
	* flumotion/admin/gtk/client.py:
	* flumotion/wizard/wizard.py:
	* flumotion/wizard/wizard_step.py:

	Add a welcome step, add --wizard argument to flumotion-admin and
	run the wizard from there instead.

2004-10-12  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/manager/component.py:
	* flumotion/test/test_manager.py:
	  uniformize and privatize getComponent(Eaters/Feeders)Data

2004-10-11  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/admin.py:
	* flumotion/admin/gtk/client.py:
	* flumotion/component/component.py:
	* flumotion/component/http/http.py:
	* flumotion/manager/admin.py:
	* flumotion/manager/component.py:
	  move ui file bundling to base class and formalize a bit

2004-10-11  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/Makefile.am:
	* flumotion/common/interfaces.py:
	* flumotion/common/keycards.py:
	* flumotion/component/bouncer.py:
	* flumotion/component/http/http.py:
	* flumotion/manager/component.py:
	* flumotion/test/test_http.py:
	  make keycards module.  bouncer now works.

2004-10-11  Johan Dahlin  <johan@gnome.org>

	* Makefile.am:
	* bin/flumotion-admin.in:
	* bin/flumotion-worker.in:
	* bin/flumotion.in:
	* doc/reference/gendoc.py:
	* flumotion/common/setup.py:
	* flumotion/config/__init__.py:
	* flumotion/config/setup.py:
	* flumotion/test/common.py:
	* flumotion/tools/show-coverage:
	
	Add tool to show coverage. Clean up flumotion.config a little
	bit. There is now a common function (flumotion.config.setup.setup)
	to initialize parts, it should probably be made a little bit more
	flexible, but that's for later

2004-10-07  Thomas Vander Stichele  <thomas at apestaart dot org>

	* conf/ogg-test-theora-bouncer.xml:
	* flumotion/common/keycard.py:
	* flumotion/component/component.py:
	* flumotion/component/http/http.py:
	* flumotion/manager/component.py:
	* flumotion/worker/job.py:
	  add a keycard.py, make keycard remote copyable
	  send the keycard to the manager, which returns True for now
	  next step: to the bouncer !

2004-10-07  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/admin.py:
	* flumotion/common/interfaces.py:
	* flumotion/component/bouncer.py:
	* flumotion/component/component.py:
	* flumotion/component/feedcomponent.py:
	* flumotion/component/http/http.py:
	* flumotion/manager/manager.py:
	* flumotion/worker/job.py:
	* flumotion/worker/worker.py:
	  We have a new name for an Avatar's sidekick: Medium
	  use it everywhere

2004-10-07  Thomas Vander Stichele  <thomas at apestaart dot org>

	* conf/ogg-test-vorbis-theora.xml:
	* flumotion/common/config.py:
	* flumotion/component/base/base.xml:
	* flumotion/component/feedcomponent.py:
	* flumotion/component/http/http.py:
	* flumotion/component/http/http.xml:
	* flumotion/manager/component.py:
	* flumotion/manager/worker.py:
	* flumotion/worker/job.py:
	* flumotion/worker/worker.py:
	  a bunch of changes allowing non-feed components to start up.
	  still needs some work.

2004-10-07  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/config/installed.py.in:
	* flumotion/config/uninstalled.py.in:
	  add version number

2004-10-07  Johan Dahlin  <johan@gnome.org>

	* flumotion/component/http/http.py
	(HTTPStreamingResource._render): Fix HEAD and PROPFIND for
	component, so gnome-vfs 2.6.0 can sniff the content-type without
	barking. 
	
	* flumotion/common/registry.py (ComponentRegistry.getFileList):
	Make it recursive

	* flumotion/test/test_registry.py (TestFindComponents): and add
	some tests

2004-10-06  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/Makefile.am:
	* flumotion/manager/manager.py:
	* flumotion/twisted/cred.py:
	* flumotion/twisted/portal.py:
	* flumotion/worker/main.py:
	* flumotion/worker/worker.py:
	  remove confusion, add comments

2004-10-05  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/Makefile.am:
	* flumotion/component/base/converter.py:
	* flumotion/component/base/producer.py:
	* flumotion/component/component.py:
	* flumotion/component/feedcomponent.py:
	* flumotion/component/file/file.py:
	* flumotion/component/http/http.py:
	* flumotion/test/test_component.py:
	  separate out feedcomponent to a separate file

2004-10-05  Thomas Vander Stichele  <thomas at apestaart dot org>

	* TODO:
	* flumotion/admin/admin.py:
	* flumotion/common/interfaces.py:
	* flumotion/component/component.py:
	* flumotion/component/http/http.py:
	* flumotion/manager/manager.py:
	* flumotion/worker/job.py:
	* flumotion/worker/worker.py:
	  rename interfaces for the views that handle remote calls from
	  manager
	  split out FeedComponent from BaseComponent in preparation for
	  other types of component

2004-10-05  Johan Dahlin  <johan@gnome.org>

	* data/glade/wizard.glade:
	* flumotion/test/Makefile.am:
	* flumotion/test/test_enum.py:
	* flumotion/wizard/Makefile.am:
	* flumotion/wizard/enums.py:
	* flumotion/wizard/wizard.py:
	* flumotion/wizard/wizard_step.py:

	More enum work.

2004-10-04  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/admin.py:
	* flumotion/common/launcher.py:
	* flumotion/component/component.py:
	* flumotion/manager/component.py:
	* flumotion/worker/job.py:
	* flumotion/worker/launcher.py:
	  make server/client factory explicit

2004-10-04  Thomas Vander Stichele  <thomas at apestaart dot org>

	* Makefile.am:
	* TODO:
	* bin/flumotion-worker.in:
	* bin/flumotion.in:
	* conf/Makefile.am:
	* conf/complex.xml:
	* conf/ogg-test-theora.xml:
	* conf/ogg-test-vorbis-theora.xml:
	* conf/videotest-jpeg.xml:
	* flumotion/component/component.py:
	* flumotion/component/http/http.py:
	* flumotion/manager/component.py:
	* flumotion/manager/manager.py:
	* flumotion/manager/worker.py:
	* flumotion/test/Makefile.am:
	* flumotion/test/common.py:
	* flumotion/test/test_component.py:
	* flumotion/test/test_manager.py:
	* flumotion/utils/log.py:
	* flumotion/worker/Makefile.am:
	* flumotion/worker/job.py:
	* flumotion/worker/report.py:
	* flumotion/worker/worker.py:
	  merge diffs between revision 681 on branch and trunk to trunk

2004-10-04  Thomas Vander Stichele  <thomas at apestaart dot org>

	branch: johan-workers

	* flumotion/manager/component.py:
	  and this should fix that problem by delaying adding of the component
	  avatar to the feeder

2004-10-01  Thomas Vander Stichele  <thomas at apestaart dot org>

	branch: johan-workers

	* flumotion/manager/component.py:
	  I guess this explains why I get random tracebacks in the manager.
	  This means I can go home and fix it on monday.

2004-10-01  Thomas Vander Stichele  <thomas at apestaart dot org>

	branch: johan-workers

	* TODO:
	* flumotion/test/Makefile.am:
	  make test dir stop "make" on errors
	* flumotion/manager/component.py:
	* flumotion/test/test_manager.py:
	  some more cleanups

2004-10-01  Thomas Vander Stichele  <thomas at apestaart dot org>

	branch: johan-workers

	* Makefile.am:
	* TODO:
	* conf/complex.xml:
	* flumotion/component/component.py:
	* flumotion/component/http/http.py:
	* flumotion/manager/component.py:
	* flumotion/manager/worker.py:
	* flumotion/test/common.py:
	* flumotion/test/test_component.py:
	* flumotion/test/test_manager.py:
	* flumotion/worker/job.py:
	* flumotion/worker/worker.py:
	  server starts up now in the correct order, yay !

2004-09-30  Thomas Vander Stichele  <thomas at apestaart dot org>

	branch: johan-workers

	* flumotion/component/component.py:
	* flumotion/manager/component.py:
	  finally arrived at the next error

2004-09-30  Thomas Vander Stichele  <thomas at apestaart dot org>

	branch: johan-workers

	* flumotion/utils/log.py:
	  add PID
	* flumotion/component/component.py:
	* flumotion/manager/component.py:
	* flumotion/worker/__init__.py:
	* flumotion/worker/job.py:
	* flumotion/worker/launcher.py:
	* flumotion/worker/main.py:
	* flumotion/worker/worker.py:
	  clear up confusion with feedName, feederName, and friends
	  document and comment

2004-09-29  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/manager/worker.py:
	* flumotion/worker/job.py:
	* flumotion/worker/main.py:
	* flumotion/worker/report.py:
	* flumotion/worker/worker.py:
	  merging report functionality with worker.py
	  clean up and comment

2004-09-29  Thomas Vander Stichele  <thomas at apestaart dot org>

	branch: johan-workers

	* bin/flumotion-worker.in:
	  make it just like flumotion.in
	* flumotion/worker/Makefile.am:
	* flumotion/worker/main.py:
	* flumotion/worker/worker.py:
	  split it up similarly to manager

2004-09-29  Thomas Vander Stichele  <thomas at apestaart dot org>

	* conf/ogg-test-theora.xml:
	  use username and password and stuff
	* flumotion/worker/job.py:
	* flumotion/worker/report.py:
	* flumotion/worker/worker.py:
	  rename some objects, restructure main()

2004-09-30  Johan Dahlin  <johan@gnome.org>

	* data/glade/Makefile.am:
	* data/glade/wizard.glade:
	* data/glade/wizard_audio_encoder.glade:
	* data/glade/wizard_audiosource.glade:
	* data/glade/wizard_consumption.glade:
	* data/glade/wizard_disk.glade:
	* data/glade/wizard_encoding.glade:
	* data/glade/wizard_firewire.glade:
	* data/glade/wizard_http.glade:
	* data/glade/wizard_jpeg.glade:
	* data/glade/wizard_overlay.glade:
	* data/glade/wizard_smoke.glade:
	* data/glade/wizard_source.glade:
	* data/glade/wizard_testsource.glade:
	* data/glade/wizard_theora.glade:
	* data/glade/wizard_tvcard.glade:
	* data/glade/wizard_webcam.glade:
	* flumotion/wizard/Makefile.am:
	* flumotion/wizard/__init__.py:
	* flumotion/wizard/wizard.py:
	* flumotion/wizard/wizard_step.py: 

	More wizard work. Most pages in
	place and pretty functional. No configuration saving yet. Need a
	little bit more logic aswell.

2004-09-28  Johan Dahlin  <johan@gnome.org>

	* data/glade/wizard.glade:
	* data/glade/wizard_audiosource.glade:
	* data/glade/wizard_source.glade:
	* data/glade/wizard_testsource.glade:
	* data/glade/wizard_tvcard.glade:
	* flumotion/wizard/wizard_step.py:

	Do some more wizard work

2004-09-28  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac: bump nano version for development

=== release 0.0.1 ===

2004-09-28  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac: releasing 0.0.1, "Backsy"

2004-09-28  Thomas Vander Stichele  <thomas at apestaart dot org>

	* bin/Makefile.am:
	  getting ready for release, disable nonworking stuff from install
	* flumotion/component/component.py:
	  give more info in a warning

2004-09-28  Thomas Vander Stichele  <thomas at apestaart dot org>

	* bin/flumotion-admin.in:
	* bin/flumotion-tester.in:
	* bin/flumotion-worker.in:
	* bin/flumotion.in:
	* bin/runtest.in:
	* doc/random/header.py:
	* flumotion/__init__.py:
	* flumotion/admin/__init__.py:
	* flumotion/admin/admin.py:
	* flumotion/admin/gtk/__init__.py:
	* flumotion/admin/gtk/client.py:
	* flumotion/admin/gtk/dialogs.py:
	* flumotion/admin/gtk/spyglass.py:
	* flumotion/admin/gtk/videotest.py:
	* flumotion/common/__init__.py:
	* flumotion/common/auth.py:
	* flumotion/common/bundle.py:
	* flumotion/common/common.py:
	* flumotion/common/config.py:
	* flumotion/common/errors.py:
	* flumotion/common/interfaces.py:
	* flumotion/common/launcher.py:
	* flumotion/common/registry.py:
	* flumotion/component/__init__.py:
	* flumotion/component/base/__init__.py:
	* flumotion/component/base/converter.py:
	* flumotion/component/base/producer.py:
	* flumotion/component/bttv/__init__.py:
	* flumotion/component/bttv/bttv.py:
	* flumotion/component/component.py:
	* flumotion/component/dv/__init__.py:
	* flumotion/component/dv/dv.py:
	* flumotion/component/file/__init__.py:
	* flumotion/component/file/file.py:
	* flumotion/component/http/__init__.py:
	* flumotion/component/http/gtk.py:
	* flumotion/component/http/http.py:
	* flumotion/component/multipartjpeg/__init__.py:
	* flumotion/component/multipartjpeg/multipartjpeg.py:
	* flumotion/component/overlay/__init__.py:
	* flumotion/component/overlay/overlay.py:
	* flumotion/component/passwd/__init__.py:
	* flumotion/component/passwd/passwd.py:
	* flumotion/component/videotest/__init__.py:
	* flumotion/component/videotest/videotest.py:
	* flumotion/config/__init__.py:
	* flumotion/config/installed.py.in:
	* flumotion/config/uninstalled.py.in:
	* flumotion/manager/__init__.py:
	* flumotion/manager/admin.py:
	* flumotion/manager/component.py:
	* flumotion/manager/main.py:
	* flumotion/manager/manager.py:
	* flumotion/manager/worker.py:
	* flumotion/test/__init__.py:
	* flumotion/test/common.py:
	* flumotion/test/test_bundle.py:
	* flumotion/test/test_common.py:
	* flumotion/test/test_component.py:
	* flumotion/test/test_config.py:
	* flumotion/test/test_flumotion_config.py:
	* flumotion/test/test_http.py:
	* flumotion/test/test_log.py:
	* flumotion/test/test_manager.py:
	* flumotion/test/test_registry.py:
	* flumotion/tester/__init__.py:
	* flumotion/tester/client.py:
	* flumotion/tester/clientfactory.py:
	* flumotion/tester/httpclient.py:
	* flumotion/twisted/__init__.py:
	* flumotion/twisted/cred.py:
	* flumotion/twisted/gstreactor.py:
	* flumotion/twisted/pbutil.py:
	* flumotion/twisted/portal.py:
	* flumotion/twisted/shell.py:
	* flumotion/utils/__init__.py:
	* flumotion/utils/gstutils.py:
	* flumotion/utils/log.py:
	* flumotion/utils/reload.py:
	* flumotion/worker/__init__.py:
	* flumotion/worker/job.py:
	* flumotion/worker/launcher.py:
	* flumotion/worker/report.py:
	* flumotion/worker/worker.py:
	  synchronize headers of source code

2004-09-25  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/utils/Makefile.am:
	  install reload.py

2004-09-25  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/common.py:
	* flumotion/test/test_common.py:
	  nicely format time with common.formatTime()

2004-09-25  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/common.py:
	* flumotion/component/http/http.py:
	  display SI units

2004-09-25  Thomas Vander Stichele  <thomas at apestaart dot org>

	* doc/reference/Makefile.am:
	* flumotion/common/Makefile.am:
	* flumotion/common/common.py:
	* flumotion/test/Makefile.am:
	* flumotion/test/test_common.py:
	  A slight case of overengineering.
	  At least we follow SI units correctly now.

2004-09-24  Thomas Vander Stichele  <thomas at apestaart dot org>

	* doc/reference/Makefile.am:
	  remove spyglass for now
	* flumotion/manager/manager.py:
	  rename and privatize sensibly

2004-09-24  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/component.py:
	  fix reload.  Fixes revision 596.

2004-09-23  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/http/http.py:
	  handle add and remove by putting them on a lock-protected queue
	  instead of using gobject-y stuff.

2004-09-23  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/http/http.py:
	  comment out the right signal emission to see if it fixes problems

2004-09-23  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/http/http.py:
	  disable a signal emission to see if it keeps the server going

2004-09-22  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/manager/component.py:
	  components -> avatars
	  rename and privatize addComponent to _addAvatar
	* flumotion/manager/manager.py:
	  getAvatarFor -> createAvatarFor
	* flumotion/test/test_manager.py:
	  rename Perspective to Avatar

2004-09-22  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/manager/manager.py:
	  commenting some more, privatize a function

2004-09-17  Johan Dahlin  <johan@gnome.org>

	* flumotion/common/config.py:
	* flumotion/common/registry.py:
	* flumotion/config/__init__.py:
	* flumotion/manager/worker.py:
	* flumotion/test/Makefile.am:
	* flumotion/test/test_config.py:
	* flumotion/utils/log.py:

	Move test_config to test_flumotion_config and add test_config for
	common/config. Write test suite for test_config and fix a couple
	of bugs meanwhile.
	
2004-09-17  Johan Dahlin  <johan@gnome.org>

	* flumotion/component/http/http.py: Implement admin-password,
	fixes Ticket #10 

	* flumotion/manager/worker.py: Make <workers> optional

	* bin/flumotion-tester.in: Move imports down a little bit.

	* flumotion/component/http/http.py
	(MultifdSinkStreamer.client_removed_idle): Don't close the file
	descriptor here.
	(HTTPStreamingResource.removeClient): Call request.finish() and
	let python/twisted take care of closing the fd. Fixes a number of
	bugs. Together with latest version of multifdsink we have a much
	more stable server.

2004-09-17  Thomas Vander Stichele  <thomas at apestaart dot org>

	* TODO:
	* flumotion/component/http/http.py:
	  update at most once every second.  re-enable updating but not
	  with idle_add, but boolean, which doesn't care if it's threadsafe.

2004-09-16  Thomas Vander Stichele  <thomas at apestaart dot org>

	* bin/flumotion-tester.in:
	* flumotion/tester/client.py:
	* flumotion/tester/clientfactory.py:
	* flumotion/tester/httpclient.py:
	  provide a decent set of options to influence behaviour of static
	  http clients

2004-09-16  Johan Dahlin  <johan@gnome.org>

	* flumotion/common/config.py: 
	Add basic support for <workers> and <worker> and worker on component

	* flumotion/admin/admin.py:
	* flumotion/component/component.py:
	* flumotion/manager/admin.py:
	* flumotion/manager/manager.py:
	* flumotion/manager/worker.py:
	* flumotion/twisted/Makefile.am:
	* flumotion/twisted/cred.py:
	* flumotion/twisted/pbutil.py:

	Deprecate pbutil.ReallyAllowAnonymousAcces and replace it by
	cred.FlexibleCredentials, for which we can turn on/off anonymous
	access whenever we want.
	
2004-09-16  Johan Dahlin  <johan@gnome.org>

	* flumotion/worker/job.py:
	* flumotion/worker/report.py:
	* flumotion/worker/worker.py:

	Proper command line parsing for worker/job

2004-09-16  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/http/http.py:
	  disable idle_add from other threads for now; we run into GIL
	  lock stalls.  An idea might be to just set a self.changed boolean
	  and have a callLater from the main thread repeatedly check and
	  signal ui changed.

2004-09-15  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/http/http.py:
	  threading fixes, twisted now "sees" only on thread
	  first pass at fixing race issues
	  now needs gst-plugins 0.8.4.1 (cvs)

2004-09-15  Thomas Vander Stichele  <thomas at apestaart dot org>

	* bin/flumotion-tester.in:
	* flumotion/tester/client.py:
	* flumotion/tester/httpclient.py:
	  more cleanup

2004-09-15  Thomas Vander Stichele  <thomas at apestaart dot org>

	* bin/Makefile.am:
	* bin/flumotion-tester.in:
	* configure.ac:
	* flumotion/Makefile.am:
	* flumotion/tester/__init__.py:
	* flumotion/tester/client.py:
	* flumotion/tester/httpclient.py:
	  add tester classes and application, also needs cleanup

2004-09-15  Johan Dahlin  <johan@gnome.org>

	* bin/runtest.in: make it a little bit smarter

	* flumotion/common/registry.py (ComponentRegistry.addFromString):
	new method, helps testing
	(ComponentRegistry.hasComponent): Fix a bug, use self.components
	instead of self.component

	* flumotion/test/test_registry.py: New file, to test basic parsing

2004-09-15  Thomas Vander Stichele  <thomas at apestaart dot org>

	* TODO:
	* flumotion/test/test_log.py:
	  unfuck test

2004-09-15  Thomas Vander Stichele  <thomas at apestaart dot org>

	* TODO:
	* flumotion/admin/admin.py:
	* flumotion/admin/gtk/client.py:
	* flumotion/common/bundle.py:
	* flumotion/common/launcher.py:
	* flumotion/component/component.py:
	* flumotion/component/http/gtk.py:
	* flumotion/component/http/http.glade:
	* flumotion/component/http/http.py:
	* flumotion/component/http/http.xml:
	* flumotion/manager/admin.py:
	* flumotion/manager/component.py:
	  make http statistics work.  Needs more cleanup and discussion.

2004-09-15  Johan Dahlin  <johan@gnome.org>

	* flumotion/worker/job.py:
	* flumotion/worker/launcher.py:
	* flumotion/worker/report.py:
	* flumotion/worker/worker.py:

	Shutdown cleanly.

2004-09-14  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/bundle.py:
	* flumotion/test/test_bundle.py:
	  add relative paths to bundle

2004-09-14  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/bundle.py:
	* flumotion/test/test_bundle.py:
	  test unbundler

2004-09-14  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/bundle.py:
	* flumotion/test/test_bundle.py:
	  rework bundle to also have unbundler

2004-09-14  Johan Dahlin  <johan@gnome.org>

	* bin/runtest.in (olddir): script to run tests

	* flumotion/component/http/http.py (MultifdSinkStreamer.notify_caps_cb) 
	(MultifdSinkStreamer.update_ui_state): Use idle_add to emit
	signals, to ensure that they are sent from the main thread

	* flumotion/worker: Commit worker, still WIP

	* flumotion/test/test_log.py:
	Add, 2 tests skipped now, will handle them later

2004-09-14  Thomas Vander Stichele  <thomas at apestaart dot org>

	* data/glade/Makefile.am:
	* data/glade/http.glade:
	  add UI for http component

2004-09-14  Johan Dahlin  <johan@gnome.org>

	* flumotion/test/: Move testsuite over here and use trial.

	* flumotion/manager/worker.py (WorkerHeaven): Clean up, almost
	ready for general consumption.

	* flumotion/manager/component.py (ComponentAvatar.getListenHost):
	Support new and old twisted code for getting the host

	* flumotion/manager/admin.py (AdminAvatar):
	I don't implement IHeaven, really.

	* flumotion/manager/main.py: New file, currently unused

	* flumotion/common/config.py (ConfigEntry.getWorker): 
	Add dummy getWorker() method

	* testsuite/tests/log.py (TestLog.testLogHandlerAssertion): Add test

	* flumotion/utils/log.py (addLogHandler): Doc fix, add pedantic
	assertion.

2004-09-13  Johan Dahlin  <johan@gnome.org>

	* conf/minmal.xml: add a minimal configuration for testing purposes.

2004-09-13  Thomas Vander Stichele  <thomas at apestaart dot org>

	* TODO:
	* flumotion/utils/log.py:
	* testsuite/tests/log.py:
	  add tests for logging

2004-09-13  Johan Dahlin  <johan@gnome.org>

	* flumotion/common/bundle.py:
	* flumotion/component/component.py:
	* flumotion/component/http/http_gui.py:
	* flumotion/manager/component.py:
	* flumotion/manager/manager.py:
	* flumotion/manager/worker.py:
	* testsuite/tests/bundle.py:
	
	Documentation updates. Bundle fixes.
	
2004-09-13  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/Makefile.am:
	* flumotion/common/Makefile.am:
	* flumotion/component/Makefile.am:
	* flumotion/config/Makefile.am:
	* flumotion/manager/Makefile.am:
	* flumotion/twisted/Makefile.am:
	* flumotion/utils/Makefile.am:
	* flumotion/worker/Makefile.am:
	  adding ctags generation

2004-09-13  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/component.py:
	* flumotion/manager/component.py:
	  remove depreciation warnings

2004-09-12  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/bttv/bttv.py:
	  import producer correctly

2004-09-12  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/manager/admin.py:
	  change componentmanager to c-heaven

2004-09-10  Johan Dahlin  <johan@gnome.org>

	* doc/reference/Makefile.am:
	* flumotion/common/launcher.py:
	* flumotion/manager/Makefile.am:
	* flumotion/manager/admin.py:
	* flumotion/manager/component.py:
	* flumotion/manager/manager.py:
	* flumotion/manager/worker.py:
	* flumotion/utils/log.py:
	* flumotion/worker/launcher.py:
	* flumotion/worker/worker.py:

	Merge in new manager code, add a worker heaven and clean up the
	relation between the different heavens. Best of all, we now have
	a Vishnu object.

2004-09-09  Thomas Vander Stichele  <thomas at apestaart dot org>

	* doc/reference/Makefile.am:
	* flumotion/admin/admin.py:
	* flumotion/common/bundle.py:
	* flumotion/common/interfaces.py:
	* flumotion/manager/admin.py:
	* flumotion/manager/manager.py:
	  various doc fixes

2004-09-09  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/Makefile.am:
	* flumotion/admin/admin.py:
	* flumotion/admin/gtk/client.py:
	  small bugfixes
	* flumotion/common/Makefile.am:
	* flumotion/common/bundle.py:
	* testsuite/tests/Makefile.am:
	* testsuite/tests/bundle.py:
	  add module for bundling of files into a zip with caching
	* testsuite/tests/config.py:
	  fix test

2004-09-09  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/http/http.py:
	* flumotion/component/http/http_gui.py:
	  use getStats() for HTML stats page as well

2004-09-09  Thomas Vander Stichele  <thomas at apestaart dot org>

	* data/glade/admin.glade:
	* flumotion/admin/admin.py:
	* flumotion/admin/gtk/client.py:
	  abstract tie between model and view further.
	  add a reload of only one component to speed up debugging.

2004-09-09  Johan Dahlin  <johan@gnome.org>

	* bin/Makefile.am:
	* bin/flumotion-admin.in:
	* bin/flumotion-worker.in:
	* configure.ac:
	* flumotion/Makefile.am:
	* flumotion/manager/component.py:
	* flumotion/worker/Makefile.am:
	* flumotion/worker/__init__.py:
	* flumotion/worker/launcher.py:
	* flumotion/worker/worker.py:

	Add basic worker script
	
2004-09-08  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/admin.py:
	* flumotion/admin/gtk/client.py:
	* flumotion/component/http/http.py:
	* flumotion/component/http/http_gui.py:
	  rearranging some code so I understand what to do tomorrow.

2004-09-08  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/admin.py:
	* flumotion/admin/gtk/client.py:
	* flumotion/component/component.py:
	* flumotion/component/http/http.py:
	* flumotion/component/http/http_gui.py:
	* flumotion/manager/component.py:
	  layout statistics more nicely.  Add peak time.

2004-09-08  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/admin.py:
	* flumotion/admin/gtk/client.py:
	* flumotion/admin/gtk/dialogs.py:
	  make progress dialog a bit better, with updates on what it's reloading

2004-09-08  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/gtk/client.py:
	* flumotion/admin/gtk/dialogs.py:
	  change interface according to suggestions

2004-09-08  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/gtk/Makefile.am:
	* flumotion/admin/gtk/client.py:
	* flumotion/admin/gtk/dialogs.py:
	  add a Gtk progress dialog

2004-09-08  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/admin.py:
	* flumotion/admin/gtk/client.py:
	  change clients to components.

2004-09-08  Thomas Vander Stichele  <thomas at apestaart dot org>

	* bin/flumotion-admin.in:
	* configure.ac:
	* flumotion/admin/__init__.py:
	* flumotion/admin/adminclient.py:
	* flumotion/admin/admininterface.py:
	* flumotion/admin/gtk/Makefile.am:
	* flumotion/admin/gtk/__init__.py:
	  move actual client to gtk

2004-09-08  Thomas Vander Stichele  <thomas at apestaart dot org>

	* bin/flumotion-admin.in:
	* configure.ac:
	* flumotion/Makefile.am:
	* flumotion/admin/adminclient.py:
	* flumotion/gui/adminclient.py:
	* flumotion/gui/admininterface.py:
	* flumotion/gui/streamclient.py:
	* flumotion/manager/manager.py:
	  move gui to admin

2004-09-08  Thomas Vander Stichele  <thomas at apestaart dot org>

	* TODO:
	* doc/reference/Makefile.am:
	* flumotion/common/Makefile.am:
	* flumotion/common/launcher.py:
	* flumotion/manager/Makefile.am:
	* flumotion/manager/config.py:
	  move manager.config to common

2004-09-08  Thomas Vander Stichele  <thomas at apestaart dot org>

	* bin/flumotion.in:
	* flumotion/manager/registry.py:
	  put registry in homedir.  create higher-level directories.
	  turn on logging before registry checks.

2004-09-08  Thomas Vander Stichele  <thomas at apestaart dot org>

	* autogen.sh:
	* configure.ac:
	  remove autoheader and related things
	* data/Makefile.am:
	* data/registry/Makefile.am:
	  remove
	* data/registry/basecomponents.xml:
	* flumotion/config/installed.py.in:
	* flumotion/config/uninstalled.py.in:
	  add registrydir config setting
	  put installed version in homedir
	* flumotion/manager/registry.py:
	  change to components.xml

2004-09-08  Johan Dahlin  <johan@gnome.org>

	* flumotion/manager/admin.py (AdminHeaven): 
	* flumotion/manager/component.py (ComponentHeaven): Implement
	IHeaven interface

	* flumotion/common/interfaces.py (IHeaven.removeAvatar): Add a
	bunch of new interfaces

2004-09-08  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/Makefile.am:
	* testsuite/Makefile.am:
	* testsuite/runtests.py:
	  first stab at making make distcheck work again

2004-09-08  Johan Dahlin  <johan@gnome.org>

	* tests/manager.py: update tests.

	* flumotion/manager/component.py (ComponentHeaven): rename and
	move from manager.Manager

2004-09-08  Thomas Vander Stichele  <thomas at apestaart dot org>

	* Makefile.am:
	* configure.ac:
	* tests/Makefile.am:
	* tests/common.py.in:
	* tests/runtests.py:
	* tests/tests/Makefile.am:
	* tests/tests/component_http.py:
	* tests/tests/component_parse.py:
	* tests/tests/config.py:
	* tests/tests/manager.py:
	* tests/webbie.py:
	  move to testsuite

2004-09-08  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	* tests/Makefile.am:
	* tests/config.py:
	* tests/manager.py:
	* tests/runtests.py:
	* tests/test_component_parse.py:
	* tests/test_http.py:
	  move actual tests to a subdir

2004-09-08  Thomas Vander Stichele  <thomas at apestaart dot org>

	* bin/flumotion.in:
	* doc/reference/Makefile.am:
	* flumotion/common/Makefile.am:
	* flumotion/manager/Makefile.am:
	* flumotion/manager/launcher.py:
	  move launcher to common

2004-09-08  Thomas Vander Stichele  <thomas at apestaart dot org>

	* doc/reference/Makefile.am:
	* flumotion/common/Makefile.am:
	* flumotion/component/http/http.py:
	* flumotion/manager/Makefile.am:
	* flumotion/manager/auth.py:
	  move auth to common

2004-09-08  Thomas Vander Stichele  <thomas at apestaart dot org>

	* TODO:
	* bin/flumotion.in:
	* configure.ac:
	* doc/reference/Makefile.am:
	* flumotion/Makefile.am:
	* flumotion/common/Makefile.am:
	* flumotion/component/Makefile.am:
	* flumotion/component/base/Makefile.am:
	* flumotion/component/bttv/Makefile.am:
	* flumotion/component/component.py:
	* flumotion/component/dv/Makefile.am:
	* flumotion/component/file/Makefile.am:
	* flumotion/component/http/Makefile.am:
	* flumotion/component/http/http.py:
	* flumotion/component/multipartjpeg/Makefile.am:
	* flumotion/component/overlay/Makefile.am:
	* flumotion/component/passwd/Makefile.am:
	* flumotion/component/passwd/passwd.py:
	* flumotion/component/videotest/Makefile.am:
	* flumotion/config/Makefile.am:
	* flumotion/errors.py:
	* flumotion/gui/Makefile.am:
	* flumotion/gui/adminclient.py:
	* flumotion/gui/admininterface.py:
	* flumotion/interfaces.py:
	* flumotion/manager/Makefile.am:
	* flumotion/manager/admin.py:
	* flumotion/manager/auth.py:
	* flumotion/manager/component.py:
	* flumotion/manager/interfaces.py:
	* flumotion/manager/manager.py:
	* flumotion/twisted/Makefile.am:
	* flumotion/twisted/errors.py:
	* flumotion/utils/Makefile.am:
	* flumotion/utils/gstutils.py:
	* flumotion/utils/log.py:
	* flumotion/utils/proctitle.py:
	* tests/test_http.py:
	  create flumotion.common and put errors and interfaces there
	  remove proctitle
	  add a clean-local rule everywhere for .pyc and .pyo

2004-09-08  Johan Dahlin  <johan@gnome.org>

	* flumotion/manager/launcher.py (Launcher.launch_component): Clean
	up here aswell, so we have a better idea what needs to be sent
	over the wire

	* flumotion/manager/config.py: Cleanup considerable, try to do
	things at the same place

2004-09-07  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/manager/Makefile.am:
	* flumotion/manager/admin.py:
	* flumotion/manager/component.py:
	* flumotion/manager/manager.py:
	* tests/manager.py:
	  created manager/component.py, yay !

2004-09-07  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/manager/admin.py:
	* flumotion/manager/manager.py:
	  change doc crosslinks to match

2004-09-07  Thomas Vander Stichele  <thomas at apestaart dot org>

	* doc/reference/Makefile.am:
	* flumotion/component/Makefile.am:
	* flumotion/component/base/converter.py:
	* flumotion/component/base/producer.py:
	* flumotion/component/file/file.py:
	* flumotion/component/http/http.py:
	* flumotion/component/passwd/passwd.py:
	* flumotion/manager/Makefile.am:
	* flumotion/manager/component.py:
	* flumotion/manager/launcher.py:
	* tests/test_component_parse.py:
	  move server.component to component.component, yay

2004-09-07  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	* data/registry/basecomponents.xml:
	* doc/reference/Makefile.am:
	* flumotion/Makefile.am:
	* flumotion/component/Makefile.am:
	* flumotion/component/base/Makefile.am:
	* flumotion/component/base/base.xml:
	* flumotion/component/bttv/Makefile.am:
	* flumotion/component/bttv/bttv.py:
	* flumotion/component/bttv/bttv.xml:
	* flumotion/component/dv/Makefile.am:
	* flumotion/component/dv/dv.py:
	* flumotion/component/dv/dv.xml:
	* flumotion/component/file/Makefile.am:
	* flumotion/component/file/file.xml:
	* flumotion/component/http/Makefile.am:
	* flumotion/component/http/http.xml:
	* flumotion/component/multipartjpeg/Makefile.am:
	* flumotion/component/multipartjpeg/multipartjpeg.py:
	* flumotion/component/multipartjpeg/multipartjpeg.xml:
	* flumotion/component/overlay/Makefile.am:
	* flumotion/component/overlay/overlay.py:
	* flumotion/component/overlay/overlay.xml:
	* flumotion/component/passwd/Makefile.am:
	* flumotion/component/passwd/passwd.xml:
	* flumotion/component/videotest/Makefile.am:
	* flumotion/component/videotest/videotest.py:
	* flumotion/component/videotest/videotest.xml:
	* flumotion/components/Makefile.am:
	* flumotion/components/__init__.py:
	* flumotion/components/base/Makefile.am:
	* flumotion/components/base/__init__.py:
	* flumotion/components/base/base.xml:
	* flumotion/components/base/converter.py:
	* flumotion/components/base/producer.py:
	* flumotion/components/bttv/Makefile.am:
	* flumotion/components/bttv/__init__.py:
	* flumotion/components/bttv/bttv.py:
	* flumotion/components/bttv/bttv.xml:
	* flumotion/components/dv/Makefile.am:
	* flumotion/components/dv/__init__.py:
	* flumotion/components/dv/dv.py:
	* flumotion/components/dv/dv.xml:
	* flumotion/components/file/Makefile.am:
	* flumotion/components/file/__init__.py:
	* flumotion/components/file/file.py:
	* flumotion/components/file/file.xml:
	* flumotion/components/http/Makefile.am:
	* flumotion/components/http/__init__.py:
	* flumotion/components/http/http.py:
	* flumotion/components/http/http.xml:
	* flumotion/components/http/http_gui.py:
	* flumotion/components/multipartjpeg/Makefile.am:
	* flumotion/components/multipartjpeg/__init__.py:
	* flumotion/components/multipartjpeg/multipartjpeg.py:
	* flumotion/components/multipartjpeg/multipartjpeg.xml:
	* flumotion/components/overlay/Makefile.am:
	* flumotion/components/overlay/__init__.py:
	* flumotion/components/overlay/overlay.py:
	* flumotion/components/overlay/overlay.xml:
	* flumotion/components/passwd/Makefile.am:
	* flumotion/components/passwd/__init__.py:
	* flumotion/components/passwd/passwd.py:
	* flumotion/components/passwd/passwd.xml:
	* flumotion/components/videotest/Makefile.am:
	* flumotion/components/videotest/__init__.py:
	* flumotion/components/videotest/videotest.py:
	* flumotion/components/videotest/videotest.xml:
	* flumotion/manager/Makefile.am:
	* flumotion/manager/registry.py:
	* tests/test_http.py:
	  flumotion.components -> flumotion.component

2004-09-07  Thomas Vander Stichele  <thomas at apestaart dot org>

	* bin/flumotion.in:
	* configure.ac:
	* doc/reference/Makefile.am:
	* flumotion/Makefile.am:
	* flumotion/components/base/converter.py:
	* flumotion/components/base/producer.py:
	* flumotion/components/file/file.py:
	* flumotion/components/http/http.py:
	* flumotion/components/passwd/passwd.py:
	* flumotion/gui/adminclient.py:
	* flumotion/gui/admininterface.py:
	* flumotion/manager/admin.py:
	* flumotion/manager/auth.py:
	* flumotion/manager/component.py:
	* flumotion/manager/config.py:
	* flumotion/manager/launcher.py:
	* flumotion/manager/manager.py:
	* flumotion/server/Makefile.am:
	* flumotion/server/__init__.py:
	* flumotion/server/admin.py:
	* flumotion/server/auth.py:
	* flumotion/server/component.py:
	* flumotion/server/config.py:
	* flumotion/server/interfaces.py:
	* flumotion/server/launcher.py:
	* flumotion/server/manager.py:
	* flumotion/server/registry.py:
	* tests/manager.py:
	* tests/test_component_parse.py:
	* tests/test_http.py:

	  move server to manager.  First stab, now need to move parts
	  not related to manager out.

2004-09-07  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/server/admin.py:
	  subclass log.Loggable

2004-09-07  Thomas Vander Stichele  <thomas at apestaart dot org>

	* doc/reference/Makefile.am:
	  hide line
	* flumotion/server/manager.py:
	* tests/manager.py:
	  change FeederManager to FeederSet

2004-09-07  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/components/base/converter.py:
	* flumotion/components/base/producer.py:
	* flumotion/components/file/file.py:
	* flumotion/components/http/http.py:
	* flumotion/server/admin.py:
	* flumotion/server/component.py:
	* flumotion/server/manager.py:
	* tests/manager.py:
	* tests/test_component_parse.py:
	  use eaters and feeders as names for feeded and feeding elements

2004-09-07  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/server/manager.py:
	* flumotion/utils/gstutils.py:
	* flumotion/utils/log.py:
	  documentation and method renaming/ordering

2004-09-07  Thomas Vander Stichele  <thomas at apestaart dot org>

	* doc/reference/Makefile.am:
	  add check-local that lets us know what we forgot
	* doc/reference/gendoc.py:
	* flumotion/gui/adminclient.py:
	* flumotion/gui/admininterface.py:
	* flumotion/server/admin.py:
	* flumotion/server/component.py:
	* flumotion/server/launcher.py:
	* flumotion/server/manager.py:
	* flumotion/twisted/errors.py:
	  rename controller to manager

2004-09-07  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/server/Makefile.am:
	* flumotion/server/controller.py:
	  rename to manager

2004-09-07  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/gui/admininterface.py:
	* flumotion/server/admin.py:
	* flumotion/server/controller.py:
	* flumotion/utils/__init__.py:
	  properly stack reload calls one after another

2004-09-07  Johan Dahlin  <johan@gnome.org>

	* flumotion/components/http/http.py:
	* flumotion/gui/adminclient.py:
	* flumotion/gui/admininterface.py:
	* flumotion/server/component.py:
	* flumotion/utils/gstutils.py:

	Added gsignal function to help install simple signals, use it over
	the code. Clean up component_view property slightly too.

2004-09-06  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/utils/log.py:
	  add timestamp similar to syslog

2004-09-06  Johan Dahlin  <johan@gnome.org>

	* flumotion/components/http/http.py:
	* flumotion/components/http/http_gui.py:
	* flumotion/gui/adminclient.py:
	* flumotion/gui/admininterface.py:
	* flumotion/server/admin.py:
	* flumotion/server/component.py:
	* flumotion/server/controller.py:

	Add notifications to administrative interface, improve http view slightly

2004-09-06  Johan Dahlin  <johan@gnome.org>

	* flumotion/server/launcher.py (Launcher): Enable core dumps by
	default and cleanup logging.

2004-09-03  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/gui/adminclient.py:
	* flumotion/gui/admininterface.py:
	  document and rename
	* flumotion/server/admin.py:
	  more avatar fixes
	* flumotion/server/component.py:
	  fix doc build warning
	* flumotion/server/controller.py:
	  more avatar fixes
	* flumotion/twisted/gstreactor.py:
	  fix doc build warning

2004-09-03  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/server/admin.py:
	  reorganize doc strings

2004-09-03  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/components/http/http.py:
	  self.error on blocked port
	* flumotion/server/admin.py:
	* flumotion/server/controller.py:
	  use Avatar instead of Perspective

2004-09-03  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/twisted/gstreactor.py:
	  print on KeyboardInterrupt until we figure out where the problem is.

2004-09-03  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/gui/adminclient.py:
	  properly handle error dialog.

2004-09-03  Johan Dahlin  <johan@gnome.org>

	* flumotion/components/http/http.py
	(HTTPStreamingAdminResource.render_stats): Start cleaning up the
	statistics so we eventually can move them to a separate class.

	* flumotion/server/config.py (ConfigEntry.getComponent): Move back 
	function and clean up slightly.
	
	* flumotion/components/http/http.py:
	* flumotion/components/http/http_gui.py:
	* flumotion/gui/admininterface.py:
	* flumotion/server/admin.py:
	* flumotion/server/component.py:
	* flumotion/server/controller.py:

	Implement basic avatar proxy: to proxy method between the admin
	interface and the component interface. So far it's only one way
	and currently no error checking. Fixes Ticket #1

2004-09-03  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/config/__init__.py:
	  fix config with reload

2004-09-03  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/gui/admininterface.py:
	  fix callbacks for reload

2004-09-03  Johan Dahlin  <johan@gnome.org>

	* flumotion/gui/adminclient.py: Add an green icon for playing and
	a red one otherwise.

	* flumotion/server/controller.py: Make user interface work again

2004-09-02  Johan Dahlin  <johan@gnome.org>

	* flumotion/gui/admininterface.py (AdminInterface): Use debugging
	framework instead of prints

2004-09-01  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/server/launcher.py:
	* flumotion/utils/log.py:
	  remove enableLogging and disableLogging.  Use new method,
	  setFluDebug.  Make that reset levels on the fly as well.

2004-09-01  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/utils/log.py:
	  fix up debugging system, FLU_DEBUG now works like in GStreamer,
	  but with categories registered as they are encountered.

2004-09-01  Thomas Vander Stichele  <thomas at apestaart dot org>

	* bin/flumotion-admin.in:
	* bin/flumotion.in:
	  trigger FLU_DEBUG parsing with debug.init
	* data/glade/admin.glade:
	  change name
	* flumotion/gui/adminclient.py:
	* flumotion/server/component.py:
	* flumotion/server/controller.py:
	* flumotion/utils/__init__.py:
	  add flumotion.utils.log to blacklist
	* flumotion/utils/log.py:
	  

2004-09-01  Thomas Vander Stichele  <thomas at apestaart dot org>

	* bin/flumotion-admin.in:
	* flumotion/config/installed.py.in:
	* flumotion/config/uninstalled.py.in:
	  fix locations properly
	* flumotion/gui/adminclient.py:
	  set default icon

2004-09-01  Thomas Vander Stichele  <thomas at apestaart dot org>

	* bin/Makefile.am:
	* bin/video-server-admin.in:
	* configure.ac:
	  rename video-server-admin to flumotion-admin

2004-09-01  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	* data/Makefile.am:
	* data/image/fluendo.png:
	* data/ui/Makefile.am:
	* data/ui/admin.glade:
	* data/ui/spyglass.glade:
	* data/ui/videotest.glade:
	* flumotion/admin/spyglass.py:
	* flumotion/admin/videotest.py:
	* flumotion/gui/adminclient.py:
	  create data/image and data/glade
	  use it everywhere
	  add and set app icon

2004-09-01  Thomas Vander Stichele  <thomas at apestaart dot org>

	* bin/video-server-admin.in:
	* flumotion/components/http/http.py:
	* flumotion/gui/adminclient.py:
	* flumotion/server/admin.py:
	* flumotion/server/component.py:
	* flumotion/server/controller.py:
	  adding reload on all levels, works now
	* flumotion/twisted/errors.py:
	  add ReloadSyntaxError

2004-09-01  Johan Dahlin  <johan@gnome.org>

	* data/registry/basecomponents.xml:
	* flumotion/components/http/http.py:
	* flumotion/components/http/http.xml:
	* flumotion/components/http/http_gui.py:
	* flumotion/components/passwd/passwd.py:
	* flumotion/gui/adminclient.py:
	* flumotion/server/admin.py:
	* flumotion/server/component.py:
	* flumotion/server/config.py:
	* flumotion/server/controller.py:
	* flumotion/server/registry.py: Add *very* basic support for transmitting
	user interface over the wire. Still full of hacks.

2004-09-01  Thomas Vander Stichele  <thomas at apestaart dot org>

	* data/ui/admin.glade:
	* flumotion/gui/adminclient.py:
	* flumotion/server/admin.py:
	* flumotion/server/controller.py:
	* flumotion/utils/__init__.py:
	  Add a Reload code button.  Add utility function to reload
	  flumotion modules.  And it actually works as well.

2004-09-01  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/gui/adminclient.py:
	  handle dialogs a bit nicer.
	  error dialogs for exceptions raised on controller or component.
	* flumotion/server/admin.py:
	* flumotion/server/component.py:
	* flumotion/server/controller.py:
	  handle/forward exceptions
	* flumotion/twisted/errors.py:
	* flumotion/utils/gstutils.py:
	  better error messages for properties.
	  allow setting of strings.

2004-08-31  Johan Dahlin  <johan@gnome.org>

	* flumotion/server/registry.py (ComponentRegistry): Implement
	saving and merging

	* flumotion/components: Split out to subdirectories and move out
	configuration to separate files

	* flumotion/twisted/portal.py (namedAny): Use a method of
	comparing the raised import message that actually works.

2004-08-31  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/server/admin.py:
	  clean up detached admin clients' perspective from Admin
	* flumotion/twisted/portal.py:
	  remove DEBUG print

2004-08-31  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/twisted/portal.py:
	  Copy and adapt namedAny to check for the actual textual message
	  instead of length of backtrace.  Issue filed in twisted as
	  http://www.twistedmatrix.com/users/roundup.twistd/twisted/issue698

2004-08-31  Johan Dahlin  <johan@gnome.org>

	* flumotion/server/interfaces.py (IAdminComponent): Add a new interface

	* flumotion/server/controller.py (Dispatcher.requestAvatar): And
	use it here

	* flumotion/twisted/pbutil.py (FMClientFactory): New factory, to
	be used instead PBClientFactory

	* flumotion/gui/adminclient.py (AdminInterface.__init__): Use it here

	* flumotion/server/component.py (ComponentFactory.login): 

	* flumotion/twisted/pbutil.py
	(ReconnectingPBClientFactory.startLogin): 

	Make sure that all PBClientFactories that connect sends in
	IPerspective

2004-08-30  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/server/admin.py:
	* flumotion/server/controller.py:
	  clean up handling of mind
	* flumotion/utils/log.py:
	  fix functions for debug and log, duh.

2004-08-30  Johan Dahlin  <johan@gnome.org>

	* flumotion/server/interfaces.py (IBaseComponent):
	* flumotion/server/controller.py (Dispatcher.requestAvatar): 
	* flumotion/twisted/portal.py:
	* flumotion/twisted/pbutil.py:
	Support different interfaces
	also add a base interface (IBaseComponent)
	which all components must inherit from
	unfortunately this involves copying a little bit of code
	from twisted, but what can we do?

2004-08-30  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/server/admin.py:
	* flumotion/server/controller.py:
	* flumotion/twisted/pbutil.py:
	  remove NewCredPerspective since it's a pb.Avatar and we override
	  attached and detached anyway

2004-08-27  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/gui/adminclient.py:
	* flumotion/server/admin.py:
	* flumotion/server/controller.py:
	  lots of documenting

2004-08-27  Johan Dahlin  <johan@gnome.org>

	* flumotion/server/controller.py (__all__): Don't export private
	classes.
	(Feed.setReady): Use a boolean for ready instead of state, so we
	can remove silly enums.
	(Feed.isReady): New method

	* flumotion/server/error.py: Remove, since it was unused.

	* TODO: Add some more items

	* flumotion/components/http.py (HTTPStreamingAdminResource):
	Implement maxclient support

	* flumotion/components/file.py (FileStreamingResource): Show
	filename when restarting the component

2004-08-24  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/gui/adminclient.py:
	* flumotion/server/admin.py:
	* flumotion/server/component.py:
	* flumotion/server/controller.py:
	* flumotion/utils/log.py:
	  various logging and commenting

2004-08-18  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/utils/log.py:
	  create Loggable class, to be subclassed, to handle logging
	* flumotion/components/converter.py:
	* flumotion/components/http.py:
	* flumotion/components/producer.py:
	* flumotion/gui/adminclient.py:
	* flumotion/server/admin.py:
	* flumotion/server/component.py:
	* flumotion/server/config.py:
	* flumotion/server/controller.py:
	* flumotion/server/launcher.py:
	  subclass Loggable where-ever

2004-08-18  Johan Dahlin  <johan@gnome.org>

	* flumotion/components/file.py (FileSinkStreamer.__init__):
	Implement changing of filename
	(FileStreamingResource.__init__): New resource for auth interface
	(why is it called auth??)

	* flumotion/components/http.py (HTTPStreamingResource.setLogfile):
	Append logfile

	* data/registry/basecomponents.xml: Add auth-port to http-streamer

2004-08-18  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/server/component.py:
	  add all handlers

2004-08-17  Johan Dahlin  <johan@gnome.org>

	* tests/test_component_parse.py (PipelineTest.__init__): Call
	__gobject_init__ to avoid segfault.

	* flumotion/components/multipartjpeg.py (createComponent): Add quality

	* flumotion/server/component.py (BaseComponent.debug): Rename gst
	only functions to use gtk style

	* conf/videotest-jpeg.xml: remove big

2004-08-17  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/components/http.py:
	  fix average client code

2004-08-17  Thomas Vander Stichele  <thomas at apestaart dot org>

	* conf/multipart-bttv-overlay-jpeg.xml:
	* data/registry/basecomponents.xml:
	* flumotion/components/bttv.py:
	  add channel choosing using interfaces
	* misc/flu.modules:
	  add jhbuild modules file

2004-08-17  Johan Dahlin  <johan@gnome.org>

	* flumotion/server/component.py (ComponentView): New class with
	twisted specific interfaces
	(BaseComponent): remove twisted code and add signals for
	communication with it

	* conf/videotest-jpeg.xml: Change location of png file

2004-08-16  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/components/http.py:
	  log stats requests

2004-08-16  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/components/http.py:
	  get rid of traceback when no mimetype yet

2004-08-13  Thomas Vander Stichele  <thomas at apestaart dot org>

	* doc/reference/Makefile.am:
	* tests/runtests.py:
	  fix distcheck

2004-08-13  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	* doc/Makefile.am:
	* doc/coding-style.txt:
	* doc/gendoc.py:
	* doc/header.py:
	* doc/ideas.txt:
	* doc/reference/Makefile.am:
	* doc/simple.dia:
	  reorganize docs in preparation for the manual

2004-08-12  Thomas Vander Stichele  <thomas at apestaart dot org>

	* doc/Makefile.am:
	  only rebuild docs when source module files change

2004-08-12  Johan Dahlin  <johan@gnome.org>

	* tests/test_component_parse.py: import common
	* tests/test_http.py: New test

2004-08-11  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/components/http.py:
	  implement getrlimit and fd reservation

2004-08-11  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/server/admin.py:
	* flumotion/server/component.py:
	* flumotion/server/config.py:
	* flumotion/server/controller.py:
	* flumotion/server/launcher.py:
	  adapt debugging

2004-08-11  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/gui/adminclient.py:
	  throw up a dialog if we can't connect
	* flumotion/utils/log.py:
	  make logging similar to GStreamer's

2004-08-11  Johan Dahlin  <johan@gnome.org>

	* flumotion/server/config.py (FlumotionConfigXML.parseProperties):
	Add support for float values

	* flumotion/components/multipartjpeg.py (createComponent): New component

	* flumotion/server/config.py (FlumotionConfigXML.parse_entry):
	Clean up

	* flumotion/server/registry.py
	(RegistryXmlParser.parse_component): Implement inheritence

	* flumotion/components/http.py: Clean up
	(HTTPStreamingResource.render): Refactor different results here

	* flumotion/components/overlay.py: New component

	* flumotion/server/config.py (ConfigEntry): Rename to sort out things

	* flumotion/server/auth.py: Authentication helper functions

	* flumotion/components/passwd.py (HTTPGatekeeper): New gatekeeper,
	for htpasswd (from apache), only supports crypt encryption right now

	* flumotion/components/http.py (HTTPClientKeycard): New
	IClientKeycard implementation for twisted http requests

	* flumotion/server/interfaces.py (IClientKeycard) 
	(IAuthenticate): New file with two interfaces

	* conf/videotest-jpeg.xml: Add auth component

2004-08-11  Thomas Vander Stichele  <thomas at apestaart dot org>

	* conf/multipart-bttv-jpeg.xml:
	  add jpeg from bttv config
	* flumotion/components/http.py:
	  oops, allow more than 1 client

2004-08-11  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/components/http.py:
	  set max clients to 1001, return 503 page if too many clients

2004-08-10  Thomas Vander Stichele  <thomas at apestaart dot org>

	* bin/flumotion.in:
	  remove jdahlin hack
	* flumotion/components/http.py:
	  add admin page on /stats protected by password.
	  show lots of useful info
	* flumotion/server/config.py:
	  translate unicode from xml

2004-08-09  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/components/http.py:
	  always authenticate until authentication written

2004-08-09  Thomas Vander Stichele  <thomas at apestaart dot org>

	* doc/header.py:
	  cleanup

2004-08-09  Thomas Vander Stichele  <thomas at apestaart dot org>

	* conf/ogg-test-theora.xml:
	  fixes
	* flumotion/components/__init__.py:
	* flumotion/components/converter.py:
	* flumotion/components/file.py:
	* flumotion/components/http.py:
	* flumotion/components/passwd.py:
	* flumotion/components/producer.py:
	  add/fix header

2004-08-09  Thomas Vander Stichele  <thomas at apestaart dot org>

	* Makefile.am:
	* configure.ac:
	* doc/
	  move from docs
	* flumotion/admin/spyglass.py:
	  fix header

2004-08-09  Johan Dahlin  <johan@gnome.org>

	* bin/flumotion.in: Call threads_init here, to avoid strange crashes.

2004-08-09  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	* data/Makefile.am:
	* flumotion/Makefile.am:
	  fix build

2004-08-05  Johan Dahlin  <johan@gnome.org>

	* conf/*.conf: Move to conf/historic

	* flumotion/server/config.py (FlumotionConfig): Kill

	* flumotion/server/launcher.py (Launcher.start): Clean up.

2004-08-04  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/__init__.py:
	* flumotion/admin/spyglass.py:
	* flumotion/admin/videotest.py:
	* ui/videotest.glade:
	  adding videotest UI component, not done yet.

2004-08-04  Thomas Vander Stichele  <thomas at apestaart dot org>

	* docs/Makefile.am:
	* flumotion/admin/spyglass.py:
	* ui/spyglass.glade:
	  spyglass now works and is documented.

2004-08-04  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/utils/log.py:
	  allow FLU_DEBUG env var to influence debugging, still needs
	  category and level filtering implementation

2004-08-04  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	  require latest release of pygtk
	* flumotion/server/Makefile.am:
	  components have moved

2004-08-03  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	* docs/Makefile.am:
	* flumotion/Makefile.am:
	* flumotion/config/Makefile.am:
	* flumotion/config/__init__.py:
	* flumotion/config/installed.py.in:
	* flumotion/config/uninstalled.py.in:
	* tests/config.py:
	  add a module containing configure-time variables.
	  add to epydoc to please myself.
	  add test for config to please Johan.

2004-08-03  Johan Dahlin  <johan@gnome.org>

	* bin/flumotion.in: 
	* configure.ac (PYGTK_REQ): Require PyGTK 2.3.96

	* flumotion/server/launcher.py: Call gobject.thread_init here

	* flumotion/components/producer.py: Ditto

	* flumotion/components/converter.py: Move here

2004-08-03  Thomas Vander Stichele  <thomas at apestaart dot org>

	* autogen.sh:
	* configure.ac:
	  use config.h
	* ui/spyglass.glade:
	* ui/videotest.glade:
	  adding glade files for UI components

2004-08-02  Johan Dahlin  <johan@gnome.org>

	* configure.ac: Require Python 2.3

	* flumotion/server/config.py (FlumotionConfig.parse_component):
	Rework kind and logging, should be much more generic now and allow
	us to extend components much easier. Cleans up a lot aswell!

	* flumotion/server/launcher.py: Kill command line options for
	individual components

	* flumotion/components/file.py: Move out file streamer here.

2004-07-30  Johan Dahlin  <johan@gnome.org>

	* flumotion/server/config.py: More cleaning up, work in progress

	* flumotion/server/launcher.py: Attempting to clean up shutdown,
	slightly better now but far from perfect

	* flumotion/server/registry.py: New file to handle registry
	parsing and management

	* flumotion/server/admin.py
	(AdminPerspective.perspective_shutdown): New method to shutdown
	the reactor

	* bin/flumotion.in: add DATA_DIR

	* flumotion/components/http.py: Move out http streamer from
	streamer.py

	* data/registry/basecomponents.xml: A list of all components
	included in the base flumotion package.

	* conf/complex.xml: ditto

	* conf/videotest-jpeg.xml: xml version of videotest-jpeg.conf,
	unused so far

2004-07-27  Johan Dahlin  <johan@gnome.org>

	* flumotion/server/streamer.py (HTTPStreamingResource.setHeader):
	Rewrite most part of the HTTP server, handles simple
	authentication now, ready for the new authentication framework.
	(HTTPStreamingResource.render): Add simple authentication

	* conf/videotest-jpeg.conf: Overlay an image.

2004-07-23  Johan Dahlin  <johan@gnome.org>

	* flumotion/server/controller.py (Dispatcher.requestAvatar): Clean
	up, clean up imports as well
	* flumotion/server/*: Futher logging cleanups

2004-07-22  Johan Dahlin  <johan@gnome.org>

	* flumotion/server/component.py (ParseLaunchComponent): Refactor stuff

	* tests/test_component_parse.py: Tests for pipeline parsing

	* flumotion/utils/log.py (log): Rework, add support for message
	handlers, so we can send stuff over the wire at a later point

	* flumotion/server/launcher.py (Launcher.load_config): Clean up
	* flumotion/server/*: Clean up logging

2004-07-21  Johan Dahlin  <johan@gnome.org>

	* flumotion/server/config.py: Move out
	stuff from launcher.py to here, to prepare for further user interface changes

2004-07-16  Johan Dahlin  <johan@gnome.org>

	* flumotion/server/controller.py: Clean up a little bit and add
	some documentation

	* tests: Add some basic tests for the controller class

2004-06-28  Johan Dahlin  <johan@gnome.org>

	* flumotion/server/*: Add support for changing properties

2004-06-27  Johan Dahlin  <johan@gnome.org>

	* flumotion/server/launcher.py (main): Add support for setuid to a
	username and renice.
	(Launcher): Add support to connect to another controller.
	(Launcher.setup): Move administrative interface to the same process

	* conf/sine-disc.conf (sine): Add nice for testing

2004-06-26  Johan Dahlin  <johan@gnome.org>

	* flumotion/server/controller.py (FeedManager.feedReady): Add
	silly FIXME

	* flumotion/server/streamer.py: Support client connecting logging,
	including number of bytes sent to each client.

	* flumotion/server/launcher.py: Start adding nice levels.

	* flumotion/gui/adminclient.py (Window.update): Clean up

2004-06-25  Johan Dahlin  <johan@gnome.org>

	* flumotion/server/streamer.py: New streamers and stuff

	* flumotion/server/admin.py (RemoteComponentView.__cmp__):
	Implement, check only name attribute for now

	* flumotion/gui/adminclient.py
	(AdminInterface.remote_componentAdded): Make it somewhat work to
	reconnect component and add some new columns

	* data/ui/admin.glade: Remove textview for now

2004-06-24  Johan Dahlin  <johan@gnome.org>

	* conf/complex.conf: New configuration, in preparation
	for guadec.

	* conf/ogg-test-theora-vorbis.conf: Move encoding of audio and
	video to separate components.

	* conf/camserv-relay.conf: Add a file streamer

	* flumotion/server/controller.py
	(ComponentPerspective.callRemote): Catch DeadReferenceError's

	* flumotion/server/launcher.py: updates for file/http streaming

	* flumotion/server/streamer.py (FileSinkStreamer): New streamer
	(FakeSinkStremaer): Old, renamed.

	* flumotion/gui/adminclient.py: Small updates

	* flumotion/utils/gstutils.py (is_port_free): Don't print socket
	errors which makes us all very nervous. 

2004-06-22  Johan Dahlin  <johan@gnome.org>

	* flumotion/utils/gstutils.py (verbose_deep_notify_cb): Log the
	component name aswell

	* bin/video-server-admin.in: Script to run the admin interface.

	* flumotion/server/*: Cleanup callbacks, always prefix twisted
	callbacks with cb_.
	
2004-06-20  Johan Dahlin  <johan@gnome.org>

	* flumotion/utils/gstutils.py (verbose_deep_notify_cb): Filter out
	active notifies and empty caps. Thomas will probably kill me for
	this.

	* flumotion/server/*: Better error checking, make exception be
	sent over the wire and catch them so we can do stuff. I never.
	Add errbacks for all callbacks, so we can catch eventual
	exceptions. Add a stop method on component, so the controller can
	shut down the controller if something bad happens.
	
	
	* flumotion/utils/proctitle.py: 
	* flumotion/utils/_proctitle.c: Import proctitle by Dave Cinege,
	still ununsed though.

	* data/ui/admin.glade, flumotion/gui/adminclient.py,
	flumotion/server/admin.py: New files, beginning of an interface
	for the server.

	* configure.ac: Simplify python checks

	* m4/as-python.m4 (else): Add AM_CHECK_PYTHON_HEADERS macro.

2004-06-18  Johan Dahlin  <johan@gnome.org>

	* flumotion/server/controller.py (Controller.isLocalComponent):
	Don't call getListenHost, since it needs to be working for
	streamer too.
	(Controller.getSourceComponents): Enable remote "hack" name
	resolving again

	* conf/test-ogg-theora-vorbis.conf (feeds): Update to have two
	feeds in one pipeline

	* flumotion/server: Add support for feeds. Introduce Feed and
	FeedManager objects. In a sort of hackish state. But it seems to
	run all configuration files quite well so assuming it works for
	now.
	
2004-06-17  Johan Dahlin  <johan@gnome.org>

	* bin/flumotion.in (dir): Remove silly require.

	* flumotion/utils/gstutils.py (caps_repr): Refactor out from
	verbose_deep_notify_cb

	* flumotion/server/launcher.py: Improve command line parsing, we
	now have an interface similar to cvs.

	* flumotion/utils/log.py (enableLogging, disableLogging): New functions

2004-06-15  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion.spec.in: update

2004-06-15  Johan Dahlin  <johan@gnome.org>

	* flumotion/server/launcher.py (main): Merge in all command line
	parsing from other files in here. Improve logging.

	* flumotion/errors.py: Move OptionError here

2004-06-11  Johan Dahlin  <johan@gnome.org>

	* configure.ac (PYGTK_REQ): Require 2.0.0.
	Add gst-python dependency

	* scripts/: Remove, superseded by configuration files

	* flumotion/gui/.svnignore: Adding some stuff I missed

	* .svnignore: 

2004-06-10  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component.py:
	* flumotion/controller.py:
	* flumotion/launcher.py:
	* flumotion/streamer.py:
	  adding vi mode lines
	  adding self.msg methods that print the object names
	  figure out content type header from caps

2004-06-07  Thomas Vander Stichele  <thomas at apestaart dot org>

	* Makefile.am:
	* configure.ac:
	* flumotion.spec.in:
	  adding spec file

2004-06-07  Thomas Vander Stichele  <thomas at apestaart dot org>

	* Makefile:
	* Makefile.am:
	* autogen.sh:
	* configure.ac:
	* docs/Makefile.am:
	* flumotion/Makefile.am:
	* m4/Makefile.am:
	* m4/as-ac-expand.m4:
	* m4/as-python.m4:
	* m4/as-version.m4:
	  adding autotools stuff

2004-06-07  Thomas Vander Stichele  <thomas at apestaart dot org>

	* first post

