=== release 0.10.0 ===

2011-09-26  Xavier Queralt  <xqueralt@flumotion.com>

	* NEWS:
	* RELEASE:
	* configure.ac:
	* flumotion.doap:
	* pkg/ubuntu-lucid/changelog:
	* pkg/ubuntu-maverick/changelog:
	* pkg/ubuntu-natty/changelog:
	* pkg/ubuntu-oneiric/changelog:
	Releasing 0.10.0 "Shunka"

2011-10-04  Xavier Queralt  <xqueralt@flumotion.com>

	* configure.ac:
	* flumotion/component/producers/Makefile.am:
	* flumotion/component/producers/blackmagic/Makefile.am:
	* flumotion/component/producers/blackmagic/__init__.py:
	* flumotion/component/producers/blackmagic/admin_gtk.py:
	* flumotion/component/producers/blackmagic/blackmagic.py:
	* flumotion/component/producers/blackmagic/blackmagic.xml:
	Remove sdi producer

2011-10-04  Josep Joan Ribas  <jribas@flumotion.com>

	* flumotion/common/boot.py:
	Proper handling of flumotion-admin trying to start without a display.
	Fixes #1211

2011-10-04  Josep Joan Ribas  <jribas@flumotion.com>

	Reviewed by: Xavier Queralt

	* flumotion/common/registry.py:
	Registry cache is now updated atomically.
	Fixes #1416

2011-10-04  Xavier Queralt  <xqueralt@flumotion.com>

	* flumotion/admin/assistant/configurationwriter.py:
	* flumotion/manager/config.py:
	Export compound properties properly from the admin
	Fixes #1531

2011-08-09  Xavier Queralt  <xqueralt@flumotion.com>

	* flumotion/component/encoders/vorbis/vorbis010.py:
	Revert "Correct audio stream before the vorbis encoder to avoid cracking audio"
	This reverts commit 3bbde9964abb47f29f4e26aefc27c9792acd7a8a.

2011-07-13  Xavier Queralt  <xqueralt@flumotion.com>

	* flumotion/component/feedcomponent.py:
	Change the caps slightly each time we receive an IN_CAPS buffer.
	With this we force the decoder to reset every time we detect an IN_CAPS
	buffer even when the caps haven't changed. We do it this way to prevent
	some decoders to react maliciously when receiving a newsegment event in
	the middle of a stream.

2011-06-29  Xavier Queralt  <xqueralt@flumotion.com>

	* flumotion/component/feedcomponent.py:
	* flumotion/component/feedcomponent010.py:
	Send flush start event instead of eos, it's more safer

2011-07-06  Xavier Queralt  <xqueralt@flumotion.com>

	* flumotion/component/decodercomponent.py:
	* flumotion/component/eater.py:
	* flumotion/component/feedcomponent.py:
	* flumotion/component/feedcomponent010.py:
	* flumotion/component/producers/fgdp/fgdp.py:
	New decoder component that detects caps changes

2011-09-14  Xavier Queralt  <xqueralt@flumotion.com>

	* flumotion/component/component.py:
	Allow to remove a message from a component by its id
	Fixes #1402

2011-10-03  Andoni Morales Alastruey  <amorales@flumotion.com>

	* flumotion/component/component.xml:
	Add missing file to the component bundle

2011-09-30  Andoni Morales Alastruey  <amorales@flumotion.com>

	* flumotion/component/common/avproducer/avproducer.xml:
	* flumotion/component/decoders/generic/generic.xml:
	Fix name of the audiorate bundle in the avproducer

2011-09-29  Andoni Morales Alastruey  <amorales@flumotion.com>

	* flumotion/component/effects/kuscheduler/kuscheduler.py:
	Don't send GstForceKeyUnit events if the interval is 0

2011-09-29  Andoni Morales Alastruey  <amorales@flumotion.com>

	* flumotion/component/effects/kuscheduler/kuscheduler.py:
	Delete useless comment

2011-09-28  Josep Joan Ribas  <jribas@flumotion.com>

	* data/glade/Makefile.am:
	* data/glade/license-wizard.glade:
	* data/image/wizard/Makefile.am:
	* data/image/wizard/licenses.png:
	* flumotion/scenario/live/wizard_gtk.py:
	* flumotion/scenario/steps/Makefile.am:
	* flumotion/scenario/steps/licensestep.py:
	* flumotion/scenario/steps/steps.xml:
	Remove the license page from the live scenario.
	Fixes #1127

2011-09-28  Josep Joan Ribas  <jribas@flumotion.com>

	* flumotion/ui/fileselector.py:
	Display current directory in file selector dialog.
	Fixes #1205

2011-09-27  Andoni Morales Alastruey  <amorales@flumotion.com>

	Merge branch 'streamers_base'

2011-09-26  Andoni Morales Alastruey  <amorales@flumotion.com>

	* flumotion/component/common/streamer/mfdsresources.py:
	* flumotion/component/common/streamer/resources.py:
	Use the request or the id of no request is passed (session used instead)

2011-09-26  Andoni Morales Alastruey  <amorales@flumotion.com>

	* flumotion/test/test_component_icystreamer.py:
	* flumotion/test/test_hls_resource.py:
	* flumotion/test/test_http.py:
	Fix some tests after refactoring

2011-09-21  Andoni Morales Alastruey  <amorales@flumotion.com>

	* flumotion/component/producers/looper/admin_gtk.py:
	* flumotion/component/producers/looper/looper.xml:
	Use the avproducer admin base class for the looper

2011-09-21  Andoni Morales Alastruey  <amorales@flumotion.com>

	* flumotion/component/producers/looper/looper.py:
	Put the video effects after the identity
	This way we have increasing timestamps in the GstForceKeyUnit events
	after the 'single-segment'

2011-09-20  Andoni Morales Alastruey  <amorales@flumotion.com>

	* flumotion/component/effects/kuscheduler/kuscheduler.py:
	Fix initialization of long variable

2011-09-20  Andoni Morales Alastruey  <amorales@flumotion.com>

	* flumotion/component/common/streamer/fragmentedresource.py:
	* flumotion/component/common/streamer/fragmentedstreamer.py:
	* flumotion/component/common/streamer/mfdsresources.py:
	* flumotion/component/common/streamer/resources.py:
	* flumotion/component/common/streamer/streamer.py:
	Make remove_all_clients again

2011-09-20  Andoni Morales Alastruey  <amorales@flumotion.com>

	* flumotion/component/common/streamer/fragmentedstreamer.py:
	Rename 'request' variable to 'resource' in Stats

2011-09-19  Andoni Morales Alastruey  <amorales@flumotion.com>

	* flumotion/component/consumers/httpstreamer/httpstreamer.xml:
	Fix bundle for the httpstreamer admin

2011-09-19  Andoni Morales Alastruey  <amorales@flumotion.com>

	* flumotion/component/plugs/hlsmultibitrate/multibitrate.py:
	Fix target_bitrate check

2011-09-19  Andoni Morales Alastruey  <amorales@flumotion.com>

	* flumotion/component/consumers/hlsstreamer/hlssink.py:
	* flumotion/component/consumers/hlsstreamer/hlsstreamer.py:
	Handle disconuities in the hls streamer

2011-09-19  Andoni Morales Alastruey  <amorales@flumotion.com>

	* flumotion/component/common/streamer/fragmentedstreamer.py:
	* flumotion/component/common/streamer/streamer.py:
	Fix porter login for streamers serving multiple files

2011-09-16  Andoni Morales Alastruey  <amorales@flumotion.com>

	* flumotion/component/producers/looper/looper.py:
	* flumotion/component/producers/looper/looper.xml:
	Make the loop producer an AV producer

2011-09-16  Andoni Morales Alastruey  <amorales@flumotion.com>

	* flumotion/component/producers/blackmagic/Makefile.am:
	* flumotion/component/producers/blackmagic/admin_gtk.py:
	* flumotion/component/producers/blackmagic/blackmagic.py:
	* flumotion/component/producers/blackmagic/blackmagic.xml:
	* flumotion/component/producers/firewire/firewire.py:
	* flumotion/component/producers/firewire/firewire.xml:
	Fix bundling of the admin gui in producers

2011-09-16  Andoni Morales Alastruey  <amorales@flumotion.com>

	* flumotion/component/producers/firewire/admin_gtk.py:
	Use the base class for the admin tab

2011-09-16  Andoni Morales Alastruey  <amorales@flumotion.com>

	* flumotion/component/common/avproducer/avproducer.py:
	* flumotion/component/producers/blackmagic/blackmagic.py:
	* flumotion/component/producers/firewire/firewire.py:
	* flumotion/component/producers/ivtv/ivtv.py:
	Make it easier for subclasses to do extra checks and parse aditional poperties

2011-09-15  Andoni Morales Alastruey  <amorales@flumotion.com>

	* flumotion/component/consumers/hlsstreamer/hlsstreamer.xml:
	Add missing dependency to the hls streamer admin bundle

2011-09-15  Andoni Morales Alastruey  <amorales@flumotion.com>

	* flumotion/component/common/streamer/Makefile.am:
	Add missing files to Makefile.am

2011-09-15  Andoni Morales Alastruey  <amorales@flumotion.com>

	* flumotion/component/decoders/generic/generic.xml:
	Add missing keyunits-interval proprety to the av-generic decoder

2011-09-14  Andoni Morales Alastruey  <ylatuya@gmail.com>

	* flumotion/component/common/streamer/fragmentedstreamer.py:
	* flumotion/component/consumers/hlsstreamer/hlsstreamer.py:
	Move isReady to the base class

2011-09-14  Andoni Morales Alastruey  <ylatuya@gmail.com>

	* flumotion/component/common/streamer/streamer.py:
	Add missing remove_all_clients

2011-09-14  Andoni Morales Alastruey  <ylatuya@gmail.com>

	* flumotion/component/decodercomponent.py:
	* flumotion/component/decoders/generic/generic.xml:
	Add keyunits scheduler to the generic decoder

2011-09-13  Andoni Morales Alastruey  <ylatuya@gmail.com>

	* flumotion/component/common/streamer/fragmentedresource.py:
	* flumotion/component/common/streamer/mfdsresources.py:
	* flumotion/component/common/streamer/resources.py:
	Use an id to identify request, which can be an fd or a session uid

2011-09-13  Andoni Morales Alastruey  <ylatuya@gmail.com>

	* flumotion/component/common/streamer/fragmentedstreamer.py:
	* flumotion/component/common/streamer/multifdsinkstreamer.py:
	* flumotion/component/common/streamer/streamer.py:
	* flumotion/component/consumers/hlsstreamer/hlsstreamer.py:
	* flumotion/component/consumers/icystreamer/icystreamer.py:
	Get rid of the anoying camel case

2011-09-13  Andoni Morales Alastruey  <ylatuya@gmail.com>

	* flumotion/component/common/streamer/fragmentedstreamer.py:
	* flumotion/component/common/streamer/mfdsresources.py:
	* flumotion/component/common/streamer/multifdsinkstreamer.py:
	* flumotion/component/common/streamer/resources.py:
	* flumotion/component/common/streamer/streamer.py:
	Allow subclasses to define their onw root resource

2011-09-13  Andoni Morales Alastruey  <ylatuya@gmail.com>

	* flumotion/component/consumers/hlsstreamer/hlsstreamer.py:
	Rename private variable

2011-09-13  Andoni Morales Alastruey  <ylatuya@gmail.com>

	* flumotion/component/common/streamer/fragmentedstreamer.py:
	* flumotion/component/consumers/hlsstreamer/hlsstreamer.py:
	Let the base class do more stuff

2011-09-13  Andoni Morales Alastruey  <ylatuya@gmail.com>

	* flumotion/component/common/streamer/streamer.xml:
	* flumotion/component/consumers/hlsstreamer/hlsstreamer.xml:
	Bundle properly depenencies for fragmented streaming

2011-09-13  Andoni Morales Alastruey  <ylatuya@gmail.com>

	* flumotion/component/common/streamer/fragmentedresource.py:
	* flumotion/component/consumers/hlsstreamer/resources.py:
	Move _logWrite to the base class

2011-09-13  Andoni Morales Alastruey  <ylatuya@gmail.com>

	* flumotion/component/common/streamer/fragmentedstreamer.py:
	* flumotion/component/common/streamer/streamer.py:
	Allows subclasses to override the Site class

2011-09-13  Andoni Morales Alastruey  <ylatuya@gmail.com>

	* flumotion/component/common/streamer/multifdsinkstreamer.py:
	* flumotion/component/common/streamer/streamer.py:
	Move getUrl to the base class

2011-09-13  Andoni Morales Alastruey  <ylatuya@gmail.com>

	* flumotion/component/common/streamer/streamer.py:
	Let the sublclass provide the url instead of overriding common attributes

2011-09-13  Andoni Morales Alastruey  <ylatuya@gmail.com>

	* flumotion/component/consumers/hlsstreamer/Makefile.am:
	* flumotion/component/consumers/hlsstreamer/common.py:
	* flumotion/component/consumers/hlsstreamer/hlsring.py:
	* flumotion/component/consumers/hlsstreamer/hlsstreamer.py:
	* flumotion/component/consumers/hlsstreamer/hlsstreamer.xml:
	* flumotion/component/consumers/hlsstreamer/resources.py:
	* flumotion/test/test_hls_resource.py:
	Use the base classes in the HLS streamer

2011-09-13  Andoni Morales Alastruey  <ylatuya@gmail.com>

	* flumotion/component/common/streamer/fragmentedresource.py:
	* flumotion/component/common/streamer/fragmentedstreamer.py:
	Add base classes for fragmented streamers too

2011-09-12  Andoni Morales Alastruey  <ylatuya@gmail.com>

	* flumotion/component/common/streamer/mfdsresources.py:
	* flumotion/component/common/streamer/multifdsinkstreamer.py:
	* flumotion/component/common/streamer/resources.py:
	* flumotion/component/common/streamer/streamer.py:
	* flumotion/component/common/streamer/streamer.xml:
	* flumotion/component/consumers/icystreamer/icystreamer.py:
	* flumotion/component/consumers/icystreamer/resources.py:
	* flumotion/test/test_http.py:
	Make the HTTP streaming resource more generic to reuse it for fragmented

2011-09-12  Andoni Morales Alastruey  <ylatuya@gmail.com>

	* flumotion/component/consumers/hlsstreamer/Makefile.am:
	* flumotion/component/consumers/hlsstreamer/admin_gtk.py:
	* flumotion/component/consumers/hlsstreamer/hlsstreamer.glade:
	* flumotion/component/consumers/hlsstreamer/hlsstreamer.xml:
	Reuse the admin from the base class in the HLS streamer

2011-09-12  Andoni Morales Alastruey  <ylatuya@gmail.com>

	* flumotion/component/consumers/icystreamer/icystreamer.py:
	Change imports to use the new base class

2011-09-12  Andoni Morales Alastruey  <ylatuya@gmail.com>

	* flumotion/component/common/streamer/Makefile.am:
	* flumotion/component/common/streamer/multifdsinkstreamer.py:
	* flumotion/component/common/streamer/streamer.xml:
	* flumotion/component/consumers/httpstreamer/httpstreamer.py:
	* flumotion/component/consumers/httpstreamer/httpstreamer.xml:
	Create base class for multifdsink streamers

2011-09-12  Andoni Morales Alastruey  <ylatuya@gmail.com>

	* configure.ac:
	* flumotion/component/consumers/Makefile.am:
	* flumotion/component/consumers/httpstreamer/Makefile.am:
	* flumotion/component/consumers/httpstreamer/icymux.py:
	* flumotion/component/consumers/httpstreamer/icystreamer.py:
	* flumotion/component/consumers/httpstreamer/icystreamer.xml:
	* flumotion/component/consumers/httpstreamer/icytab.glade:
	* flumotion/component/consumers/httpstreamer/resources.py:
	* flumotion/component/consumers/icystreamer/Makefile.am:
	* flumotion/component/consumers/icystreamer/__init__.py:
	* flumotion/component/consumers/icystreamer/admin_gtk.py:
	* flumotion/component/consumers/icystreamer/icymux.py:
	* flumotion/component/consumers/icystreamer/icystreamer.py:
	* flumotion/component/consumers/icystreamer/icystreamer.xml:
	* flumotion/component/consumers/icystreamer/icytab.glade:
	* flumotion/component/consumers/icystreamer/resources.py:
	Split HTTPStreamer and ICYStreamer

2011-09-12  Andoni Morales Alastruey  <ylatuya@gmail.com>

	* configure.ac:
	* flumotion/component/common/Makefile.am:
	* flumotion/component/common/streamer/Makefile.am:
	* flumotion/component/common/streamer/__init__.py:
	* flumotion/component/common/streamer/admin_gtk.py:
	* flumotion/component/common/streamer/properties.xml:
	* flumotion/component/common/streamer/resources.py:
	* flumotion/component/common/streamer/streamer.glade:
	* flumotion/component/common/streamer/streamer.py:
	* flumotion/component/common/streamer/streamer.xml:
	* flumotion/component/consumers/httpstreamer/Makefile.am:
	* flumotion/component/consumers/httpstreamer/admin_gtk.py:
	* flumotion/component/consumers/httpstreamer/httpstreamer.glade:
	* flumotion/component/consumers/httpstreamer/httpstreamer.py:
	* flumotion/component/consumers/httpstreamer/httpstreamer.xml:
	* flumotion/component/consumers/httpstreamer/icystreamer.py:
	* flumotion/component/consumers/httpstreamer/icystreamer.xml:
	* flumotion/component/consumers/httpstreamer/resources.py:
	* flumotion/test/test_http.py:
	Add a base class for http streamers

2011-09-15  Andoni Morales Alastruey  <amorales@flumotion.com>

	* flumotion/component/consumers/hlsstreamer/hlssink.py:
	* flumotion/component/effects/kuscheduler/kuscheduler.py:
	use gst.GST_CLOCK_TIME_NONE instead of gobject.G_MAX_UNIT64
	Older pygobject do not define this constant

2011-09-14  Andoni Morales Alastruey  <ylatuya@gmail.com>

	* flumotion/component/feedcomponent.py:
	Add option to drop or not GstForceKeyUnit events in audio pads

2011-09-12  Andoni Morales Alastruey  <ylatuya@gmail.com>

	* flumotion/component/component.xml:
	Add common/__init__.py to the component-base bundle

2011-09-12  Andoni Morales Alastruey  <ylatuya@gmail.com>

	* flumotion/test/Makefile.am:
	* flumotion/test/test_hls_resource.py:
	* flumotion/test/test_hls_ring.py:
	Add unit test for HLS components

2011-09-12  Andoni Morales Alastruey  <ylatuya@gmail.com>

	* flumotion/component/consumers/hlsstreamer/hlsring.py:
	Change the default name for fragments

2011-09-12  Andoni Morales Alastruey  <ylatuya@gmail.com>

	* flumotion/component/plugs/hlsmultibitrate/multibitrate.py:
	Define constants and add some comments

2011-09-12  Andoni Morales Alastruey  <ylatuya@gmail.com>

	* flumotion/component/plugs/hlsmultibitrate/multibitrate.py:
	Use a min bitrate to sort out audio entries

2011-09-12  Andoni Morales Alastruey  <ylatuya@gmail.com>

	* configure.ac:
	* flumotion/component/plugs/Makefile.am:
	* flumotion/component/plugs/hlsmultibitrate/Makefile.am:
	* flumotion/component/plugs/hlsmultibitrate/__init__.py:
	* flumotion/component/plugs/hlsmultibitrate/multibitrate.py:
	* flumotion/component/plugs/hlsmultibitrate/multibitrate.xml:
	Add plug for HLS variant playlists

2011-09-27  Andoni Morales Alastruey  <amorales@flumotion.com>

	* flumotion/component/decodercomponent.py:
	* flumotion/component/effects/audioconvert/audioconvert.py:
	Remove the audiorate from the decoder.
	Ideally we should wither update the segment with the new start time
	or use the skip-to-first property

2011-09-26  Xavier Queralt  <xqueralt@flumotion.com>

	* flumotion/admin/assistant/models.py:
	Expose samplerate of audio producer's models

2011-09-19  Xavier Queralt  <xqueralt@flumotion.com>

	* flumotion/component/producers/icecast/icecast.py:
	Do not reset the pipeline when there is no parser/demuxer preset

2011-09-09  Xavier Queralt  <xqueralt@flumotion.com>

	Merge branch 'hls'

2011-09-09  Andoni Morales Alastruey  <amorales@flumotion.com>

	* flumotion/component/effects/kuscheduler/kuscheduler.py:
	Fix count of events

2011-09-09  Andoni Morales Alastruey  <amorales@flumotion.com>

	* configure.ac:
	* flumotion/component/misc/Makefile.am:
	* flumotion/component/misc/kuscheduler/Makefile.am:
	* flumotion/component/misc/kuscheduler/__init__.py:
	* flumotion/component/misc/kuscheduler/kuscheduler.py:
	* flumotion/component/misc/kuscheduler/kuscheduler.xml:
	Add keyunits-scheduler element

2011-09-08  Andoni Morales Alastruey  <amorales@flumotion.com>

	* configure.ac:
	* flumotion/component/consumers/Makefile.am:
	* flumotion/component/consumers/hlsstreamer/Makefile.am:
	* flumotion/component/consumers/hlsstreamer/__init__.py:
	* flumotion/component/consumers/hlsstreamer/admin_gtk.py:
	* flumotion/component/consumers/hlsstreamer/common.py:
	* flumotion/component/consumers/hlsstreamer/hlsring.py:
	* flumotion/component/consumers/hlsstreamer/hlssink.py:
	* flumotion/component/consumers/hlsstreamer/hlsstreamer.glade:
	* flumotion/component/consumers/hlsstreamer/hlsstreamer.py:
	* flumotion/component/consumers/hlsstreamer/hlsstreamer.xml:
	* flumotion/component/consumers/hlsstreamer/resources.py:
	Add HTTP Live Streamer streamer!

2011-09-07  Andoni Morales Alastruey  <amorales@flumotion.com>

	* flumotion/component/common/avproducer/properties.xml:
	Add keyunits-interval property

2011-09-08  Andoni Morales Alastruey  <amorales@flumotion.com>

	* flumotion/component/common/avproducer/avproducer.py:
	Move the import to the top

2011-09-07  Andoni Morales Alastruey  <amorales@flumotion.com>

	* flumotion/component/common/avproducer/avproducer.py:
	Add kuscheduler in the AV base class

2011-09-05  Andoni Morales Alastruey  <amorales@flumotion.com>

	* configure.ac:
	* flumotion/component/effects/Makefile.am:
	* flumotion/component/effects/kuscheduler/Makefile.am:
	* flumotion/component/effects/kuscheduler/__init__.py:
	* flumotion/component/effects/kuscheduler/kuscheduler.py:
	* flumotion/component/effects/kuscheduler/kuscheduler.xml:
	Add keyunitsscheduler effect

2011-09-09  Xavier Queralt  <xqueralt@flumotion.com>

	* flumotion/common/tz.py:
	Remove unused args in LocalTimezone

2011-09-09  Xavier Queralt  <xqueralt@flumotion.com>

	Merge branch 'AVbase'

2011-09-07  Andoni Morales Alastruey  <amorales@flumotion.com>

	* flumotion/component/common/avproducer/avproducer.py:
	Check if we have a video raw source to plug the video effects

2011-09-07  Andoni Morales Alastruey  <amorales@flumotion.com>

	* flumotion/component/producers/blackmagic/blackmagic.xml:
	* flumotion/component/producers/firewire/firewire.xml:
	* flumotion/component/producers/ivtv/ivtv.xml:
	Use properties from the base class

2011-09-07  Andoni Morales Alastruey  <amorales@flumotion.com>

	* flumotion/component/common/avproducer/Makefile.am:
	* flumotion/component/common/avproducer/avproducer.xml:
	* flumotion/component/common/avproducer/properties.xml:
	Add default properties for AV producers

2011-09-07  Andoni Morales Alastruey  <amorales@flumotion.com>

	* flumotion/common/fxml.py:
	Add basic support for XML XInclude
	This allows including xml inside the components xml. This can
	be used for example in components properties. Base classe would define
	an xml with the common properties and subclass can include it instead
	of redifining all of them
	Closes #1528

2011-09-05  Andoni Morales Alastruey  <amorales@flumotion.com>

	* flumotion/component/producers/blackmagic/Makefile.am:
	* flumotion/component/producers/blackmagic/admin_gtk.py:
	* flumotion/component/producers/blackmagic/blackmagic.py:
	* flumotion/component/producers/blackmagic/blackmagic.xml:
	Use the audo/video producer base class for the blackmagic producer

2011-07-17  Andoni Morales Alastruey  <ylatuya@gmail.com>

	* flumotion/component/producers/ivtv/ivtv.py:
	* flumotion/component/producers/ivtv/ivtv.xml:
	Use the audo/video producer base class in the ivtv producer

2011-07-15  Andoni Morales Alastruey  <ylatuya@gmail.com>

	* flumotion/component/producers/firewire/firewire.py:
	* flumotion/component/producers/firewire/firewire.xml:
	Use the audo/video producer base class in the firewire producer

2011-07-15  Andoni Morales Alastruey  <ylatuya@gmail.com>

	* configure.ac:
	* flumotion/component/common/Makefile.am:
	* flumotion/component/common/avproducer/Makefile.am:
	* flumotion/component/common/avproducer/__init__.py:
	* flumotion/component/common/avproducer/admin_gtk.py:
	* flumotion/component/common/avproducer/avproducer.py:
	* flumotion/component/common/avproducer/avproducer.xml:
	Add base classes for Audio/Video producers
	Closes #1527

2011-09-08  Xavier Queralt  <xqueralt@flumotion.com>

	* configure.ac:
	Back to dev

=== release 0.9.1 ===

2011-09-08  Xavier Queralt  <xqueralt@flumotion.com>

	* NEWS:
	* RELEASE:
	* configure.ac:
	* flumotion.doap:
	* pkg/ubuntu-hardy/changelog:
	* pkg/ubuntu-hardy/control:
	* pkg/ubuntu-intrepid/changelog:
	* pkg/ubuntu-intrepid/control:
	* pkg/ubuntu-jaunty/changelog:
	* pkg/ubuntu-jaunty/control:
	* pkg/ubuntu-karmic/changelog:
	* pkg/ubuntu-karmic/control:
	* pkg/ubuntu-lucid/changelog:
	* pkg/ubuntu-lucid/control:
	* pkg/ubuntu-maverick/changelog:
	* pkg/ubuntu-maverick/control:
	* pkg/ubuntu-natty/changelog:
	* pkg/ubuntu-natty/control:
	* pkg/ubuntu-oneiric/changelog:
	* pkg/ubuntu-oneiric/control:
	Releasing 0.9.1 "Jazz"

2011-09-08  Xavier Queralt  <xqueralt@flumotion.com>

	* flumotion/component/feedcomponent010.py:
	* flumotion/component/producers/fgdp/fgdp.py:
	Do not set the pad monitor manually in fgdp producer

2011-09-08  Xavier Queralt  <xqueralt@flumotion.com>

	* flumotion/component/misc/httpserver/admin_gtk.py:
	* flumotion/component/misc/httpserver/httpserver.py:
	Makes http-server display porter's port when slave.
	Fixes #1472

2011-09-08  Pau Capella  <pcapella@flumotion.com>

	Reviewed by: xqueralt

	* flumotion/component/feedcomponent010.py:
	* flumotion/component/producers/icecast/icecast.py:
	Improve logging of pad monitors
	Specify the component in pad monitor's log and remove any references to
	self._pad_monitors from components.
	
	Fixes #1463

2011-09-08  Andoni Morales Alastruey  <amorales@flumotion.com>

	* flumotion/test/test_component_video_converter.py:
	Skip deinterlace test because the effect was removed

2011-09-08  Xavier Queralt  <xqueralt@flumotion.com>

	* flumotion/extern/log/test_log.py:
	Fix test after header changes

2011-09-07  Xavier Queralt  <xqueralt@flumotion.com>

	* common:
	Update common submodule

2011-09-07  Xavier Queralt  <xqueralt@flumotion.com>

	* COPYING:
	* LICENSE.Flumotion:
	* LICENSE.GPL:
	* LICENSE.LGPL:
	* Makefile.am:
	* README:
	* RELEASE:
	* bin/flumotion-admin-text.in:
	* bin/flumotion-admin.in:
	* bin/flumotion-command.in:
	* bin/flumotion-debug:
	* bin/flumotion-inspect.in:
	* bin/flumotion-job.in:
	* bin/flumotion-launch.in:
	* bin/flumotion-manager.in:
	* bin/flumotion-nagios.in:
	* bin/flumotion-rrdmon.in:
	* bin/flumotion-tester.in:
	* bin/flumotion-worker.in:
	* bin/flumotion.in:
	* bin/runtest.in:
	* doc/random/header.py:
	* flumotion.doap:
	* flumotion.spec.in:
	* flumotion/__init__.py:
	* flumotion/admin/__init__.py:
	* flumotion/admin/admin.py:
	* flumotion/admin/assistant/__init__.py:
	* flumotion/admin/assistant/configurationwriter.py:
	* flumotion/admin/assistant/interfaces.py:
	* flumotion/admin/assistant/models.py:
	* flumotion/admin/assistant/save.py:
	* flumotion/admin/command/__init__.py:
	* flumotion/admin/command/common.py:
	* flumotion/admin/command/component.py:
	* flumotion/admin/command/main.py:
	* flumotion/admin/command/manager.py:
	* flumotion/admin/command/utils.py:
	* flumotion/admin/command/worker.py:
	* flumotion/admin/config.py:
	* flumotion/admin/connections.py:
	* flumotion/admin/gtk/__init__.py:
	* flumotion/admin/gtk/about.py:
	* flumotion/admin/gtk/adminwindow.py:
	* flumotion/admin/gtk/basesteps.py:
	* flumotion/admin/gtk/componentlist.py:
	* flumotion/admin/gtk/componentview.py:
	* flumotion/admin/gtk/configurationassistant.py:
	* flumotion/admin/gtk/connections.py:
	* flumotion/admin/gtk/debugmarkerview.py:
	* flumotion/admin/gtk/dialogs.py:
	* flumotion/admin/gtk/greeter.py:
	* flumotion/admin/gtk/main.py:
	* flumotion/admin/gtk/message.py:
	* flumotion/admin/gtk/overlaystep.py:
	* flumotion/admin/gtk/statusbar.py:
	* flumotion/admin/gtk/workerlist.py:
	* flumotion/admin/gtk/workerstep.py:
	* flumotion/admin/multi.py:
	* flumotion/admin/rrdmon/__init__.py:
	* flumotion/admin/rrdmon/config.py:
	* flumotion/admin/rrdmon/main.py:
	* flumotion/admin/rrdmon/rrdmon.py:
	* flumotion/admin/settings.py:
	* flumotion/admin/text/__init__.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/avltree.py:
	* flumotion/common/boot.py:
	* flumotion/common/bugreporter.py:
	* flumotion/common/bundle.py:
	* flumotion/common/bundleclient.py:
	* flumotion/common/common.py:
	* flumotion/common/componentui.py:
	* flumotion/common/config.py:
	* flumotion/common/connection.py:
	* flumotion/common/dag.py:
	* flumotion/common/debug.py:
	* flumotion/common/documentation.py:
	* flumotion/common/enum.py:
	* flumotion/common/errors.py:
	* flumotion/common/eventcalendar.py:
	* flumotion/common/format.py:
	* flumotion/common/formatting.py:
	* flumotion/common/fraction.py:
	* flumotion/common/fxml.py:
	* flumotion/common/gstreamer.py:
	* flumotion/common/i18n.py:
	* flumotion/common/identity.py:
	* flumotion/common/interfaces.py:
	* flumotion/common/keycards.py:
	* flumotion/common/log.py:
	* flumotion/common/managerspawner.py:
	* flumotion/common/manhole.py:
	* flumotion/common/medium.py:
	* flumotion/common/messages.py:
	* flumotion/common/mimetypes.py:
	* flumotion/common/netutils.py:
	* flumotion/common/options.py:
	* flumotion/common/package.py:
	* flumotion/common/planet.py:
	* flumotion/common/poller.py:
	* flumotion/common/process.py:
	* flumotion/common/pygobject.py:
	* flumotion/common/python.py:
	* flumotion/common/reflectcall.py:
	* flumotion/common/registry.py:
	* flumotion/common/reload.py:
	* flumotion/common/server.py:
	* flumotion/common/setup.py:
	* flumotion/common/signals.py:
	* flumotion/common/startset.py:
	* flumotion/common/testsuite.py:
	* flumotion/common/tz.py:
	* flumotion/common/vfs.py:
	* flumotion/common/vfsgio.py:
	* flumotion/common/vfsgnome.py:
	* flumotion/common/watched.py:
	* flumotion/common/worker.py:
	* flumotion/common/xdg.py:
	* flumotion/common/xmlwriter.py:
	* flumotion/component/__init__.py:
	* flumotion/component/base/__init__.py:
	* flumotion/component/base/admin_gtk.py:
	* flumotion/component/base/admin_text.py:
	* flumotion/component/base/baseadminnode.py:
	* flumotion/component/base/componentnode.py:
	* flumotion/component/base/eatersnode.py:
	* flumotion/component/base/effectsnode.py:
	* flumotion/component/base/feedersnode.py:
	* flumotion/component/base/http.py:
	* flumotion/component/base/multiple.py:
	* flumotion/component/base/propertiesnode.py:
	* flumotion/component/base/scheduler.py:
	* flumotion/component/base/statewatcher.py:
	* flumotion/component/base/watcher.py:
	* flumotion/component/bouncers/__init__.py:
	* flumotion/component/bouncers/admin_gtk.py:
	* flumotion/component/bouncers/algorithms/__init__.py:
	* flumotion/component/bouncers/algorithms/base.py:
	* flumotion/component/bouncers/algorithms/icalbouncer.py:
	* flumotion/component/bouncers/algorithms/ipbouncer.py:
	* flumotion/component/bouncers/algorithms/tokentest.py:
	* flumotion/component/bouncers/base.py:
	* flumotion/component/bouncers/combinator.py:
	* flumotion/component/bouncers/component.py:
	* flumotion/component/bouncers/htpasswdcrypt.py:
	* flumotion/component/bouncers/icalbouncer.py:
	* flumotion/component/bouncers/ipbouncer.py:
	* flumotion/component/bouncers/multibouncer.py:
	* flumotion/component/bouncers/multibouncerplug.py:
	* flumotion/component/bouncers/plug.py:
	* flumotion/component/bouncers/saltsha256.py:
	* flumotion/component/bouncers/tokentestbouncer.py:
	* flumotion/component/combiners/__init__.py:
	* flumotion/component/combiners/composite/__init__.py:
	* flumotion/component/combiners/composite/composite.py:
	* flumotion/component/combiners/switch/__init__.py:
	* flumotion/component/combiners/switch/admin_gtk.py:
	* flumotion/component/combiners/switch/basicwatchdog.py:
	* flumotion/component/combiners/switch/patternswitch.py:
	* flumotion/component/combiners/switch/switch.py:
	* flumotion/component/common/__init__.py:
	* flumotion/component/common/fgdp/__init__.py:
	* flumotion/component/common/fgdp/fgdp.py:
	* flumotion/component/common/fgdp/protocol.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/disker/disker_plug.py:
	* flumotion/component/consumers/disker/wizard_gtk.py:
	* flumotion/component/consumers/fgdp/__init__.py:
	* flumotion/component/consumers/fgdp/fgdp.py:
	* flumotion/component/consumers/fgdp/wizard_gtk.py:
	* flumotion/component/consumers/httpstreamer/__init__.py:
	* flumotion/component/consumers/httpstreamer/admin_gtk.py:
	* flumotion/component/consumers/httpstreamer/httpstreamer.py:
	* flumotion/component/consumers/httpstreamer/icymux.py:
	* flumotion/component/consumers/httpstreamer/icystreamer.py:
	* flumotion/component/consumers/httpstreamer/resources.py:
	* flumotion/component/consumers/httpstreamer/wizard_gtk.py:
	* flumotion/component/consumers/pipeline/__init__.py:
	* flumotion/component/consumers/pipeline/pipeline.py:
	* flumotion/component/consumers/preview/__init__.py:
	* flumotion/component/consumers/preview/preview.py:
	* flumotion/component/consumers/shout2/__init__.py:
	* flumotion/component/consumers/shout2/shout2.py:
	* flumotion/component/consumers/shout2/wizard_gtk.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/converters/video/__init__.py:
	* flumotion/component/converters/video/video.py:
	* flumotion/component/decodercomponent.py:
	* flumotion/component/decoders/__init__.py:
	* flumotion/component/decoders/generic/__init__.py:
	* flumotion/component/decoders/generic/generic.py:
	* flumotion/component/eater.py:
	* flumotion/component/effects/__init__.py:
	* flumotion/component/effects/audioconvert/__init__.py:
	* flumotion/component/effects/audioconvert/audioconvert.py:
	* flumotion/component/effects/audioresync/__init__.py:
	* flumotion/component/effects/audioresync/admin_gtk.py:
	* flumotion/component/effects/audioresync/audioresync.py:
	* flumotion/component/effects/colorbalance/__init__.py:
	* flumotion/component/effects/colorbalance/admin_gtk.py:
	* flumotion/component/effects/colorbalance/colorbalance.py:
	* flumotion/component/effects/deinterlace/__init__.py:
	* flumotion/component/effects/deinterlace/admin_gtk.py:
	* flumotion/component/effects/deinterlace/deinterlace.py:
	* flumotion/component/effects/videorate/__init__.py:
	* flumotion/component/effects/videorate/videorate.py:
	* flumotion/component/effects/videoscale/__init__.py:
	* flumotion/component/effects/videoscale/admin_gtk.py:
	* flumotion/component/effects/videoscale/videoscale.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/dirac/__init__.py:
	* flumotion/component/encoders/dirac/dirac.py:
	* flumotion/component/encoders/dirac/wizard_gtk.py:
	* flumotion/component/encoders/jpeg/__init__.py:
	* flumotion/component/encoders/jpeg/jpeg.py:
	* flumotion/component/encoders/jpeg/wizard_gtk.py:
	* flumotion/component/encoders/mulaw/__init__.py:
	* flumotion/component/encoders/mulaw/mulaw.py:
	* flumotion/component/encoders/mulaw/wizard_gtk.py:
	* flumotion/component/encoders/smoke/__init__.py:
	* flumotion/component/encoders/smoke/smoke.py:
	* flumotion/component/encoders/smoke/wizard_gtk.py:
	* flumotion/component/encoders/speex/__init__.py:
	* flumotion/component/encoders/speex/speex.py:
	* flumotion/component/encoders/speex/wizard_gtk.py:
	* flumotion/component/encoders/theora/__init__.py:
	* flumotion/component/encoders/theora/theora.py:
	* flumotion/component/encoders/theora/wizard_gtk.py:
	* flumotion/component/encoders/vorbis/__init__.py:
	* flumotion/component/encoders/vorbis/vorbis.py:
	* flumotion/component/encoders/vorbis/vorbis010.py:
	* flumotion/component/encoders/vorbis/vorbisutils.py:
	* flumotion/component/encoders/vorbis/wizard_gtk.py:
	* flumotion/component/encoders/vp8/__init__.py:
	* flumotion/component/encoders/vp8/vp8.py:
	* flumotion/component/encoders/vp8/wizard_gtk.py:
	* flumotion/component/feed.py:
	* flumotion/component/feedcomponent.py:
	* flumotion/component/feedcomponent010.py:
	* flumotion/component/feeder.py:
	* flumotion/component/misc/__init__.py:
	* flumotion/component/misc/httpserver/__init__.py:
	* flumotion/component/misc/httpserver/admin_gtk.py:
	* flumotion/component/misc/httpserver/cachedprovider.py:
	* flumotion/component/misc/httpserver/cachemanager.py:
	* flumotion/component/misc/httpserver/cachestats.py:
	* flumotion/component/misc/httpserver/fileprovider.py:
	* flumotion/component/misc/httpserver/httpcached/__init__.py:
	* flumotion/component/misc/httpserver/httpcached/common.py:
	* flumotion/component/misc/httpserver/httpcached/file_provider.py:
	* flumotion/component/misc/httpserver/httpcached/file_reader.py:
	* flumotion/component/misc/httpserver/httpcached/http_client.py:
	* flumotion/component/misc/httpserver/httpcached/http_utils.py:
	* flumotion/component/misc/httpserver/httpcached/request_manager.py:
	* flumotion/component/misc/httpserver/httpcached/resource_manager.py:
	* flumotion/component/misc/httpserver/httpcached/server_selection.py:
	* flumotion/component/misc/httpserver/httpcached/strategy_base.py:
	* flumotion/component/misc/httpserver/httpcached/strategy_basic.py:
	* flumotion/component/misc/httpserver/httpfile.py:
	* flumotion/component/misc/httpserver/httpserver.py:
	* flumotion/component/misc/httpserver/localpath.py:
	* flumotion/component/misc/httpserver/localprovider.py:
	* flumotion/component/misc/httpserver/metadataprovider.py:
	* flumotion/component/misc/httpserver/mimetypes.py:
	* flumotion/component/misc/httpserver/ondemandbrowser.py:
	* flumotion/component/misc/httpserver/ourmimetypes.py:
	* flumotion/component/misc/httpserver/ratecontrol.py:
	* flumotion/component/misc/httpserver/serverstats.py:
	* flumotion/component/misc/porter/__init__.py:
	* flumotion/component/misc/porter/porter.py:
	* flumotion/component/misc/porter/porterclient.py:
	* flumotion/component/misc/repeater/__init__.py:
	* flumotion/component/misc/repeater/repeater.py:
	* flumotion/component/muxers/__init__.py:
	* flumotion/component/muxers/base.py:
	* flumotion/component/muxers/checks.py:
	* flumotion/component/muxers/multipart.py:
	* flumotion/component/muxers/ogg.py:
	* flumotion/component/muxers/webm.py:
	* flumotion/component/muxers/wizard_gtk.py:
	* flumotion/component/padmonitor.py:
	* flumotion/component/plugs/__init__.py:
	* flumotion/component/plugs/adminaction.py:
	* flumotion/component/plugs/base.py:
	* flumotion/component/plugs/cortado/__init__.py:
	* flumotion/component/plugs/cortado/cortado.py:
	* flumotion/component/plugs/cortado/cortado_location.py.in:
	* flumotion/component/plugs/cortado/wizard_gtk.py:
	* flumotion/component/plugs/html5/__init__.py:
	* flumotion/component/plugs/html5/html5.py:
	* flumotion/component/plugs/html5/wizard_gtk.py:
	* flumotion/component/plugs/identity.py:
	* flumotion/component/plugs/manhole.py:
	* flumotion/component/plugs/request.py:
	* flumotion/component/plugs/requestmodifier.py:
	* flumotion/component/plugs/rrd.py:
	* flumotion/component/plugs/streamdata.py:
	* flumotion/component/plugs/wizard_gtk.py:
	* flumotion/component/producers/__init__.py:
	* flumotion/component/producers/audiotest/__init__.py:
	* flumotion/component/producers/audiotest/admin_gtk.py:
	* flumotion/component/producers/audiotest/audiotest.py:
	* flumotion/component/producers/audiotest/wizard_gtk.py:
	* flumotion/component/producers/blackmagic/__init__.py:
	* flumotion/component/producers/blackmagic/admin_gtk.py:
	* flumotion/component/producers/blackmagic/blackmagic.py:
	* flumotion/component/producers/bttv/__init__.py:
	* flumotion/component/producers/bttv/admin_gtk.py:
	* flumotion/component/producers/bttv/bttv.py:
	* flumotion/component/producers/bttv/wizard_gtk.py:
	* flumotion/component/producers/checks.py:
	* flumotion/component/producers/fgdp/__init__.py:
	* flumotion/component/producers/fgdp/fgdp.py:
	* flumotion/component/producers/firewire/__init__.py:
	* flumotion/component/producers/firewire/admin_gtk.py:
	* flumotion/component/producers/firewire/firewire.py:
	* flumotion/component/producers/firewire/wizard_gtk.py:
	* flumotion/component/producers/icecast/__init__.py:
	* flumotion/component/producers/icecast/icecast.py:
	* flumotion/component/producers/ivtv/__init__.py:
	* flumotion/component/producers/ivtv/ivtv.py:
	* flumotion/component/producers/looper/__init__.py:
	* flumotion/component/producers/looper/admin_gtk.py:
	* flumotion/component/producers/looper/looper.py:
	* flumotion/component/producers/looper/wizard_gtk.py:
	* flumotion/component/producers/pipeline/__init__.py:
	* flumotion/component/producers/pipeline/pipeline.py:
	* flumotion/component/producers/playlist/__init__.py:
	* flumotion/component/producers/playlist/admin_gtk.py:
	* flumotion/component/producers/playlist/playlist.py:
	* flumotion/component/producers/playlist/playlistparser.py:
	* flumotion/component/producers/playlist/singledecodebin.py:
	* flumotion/component/producers/playlist/smartscale.py:
	* flumotion/component/producers/rtsp/__init__.py:
	* flumotion/component/producers/rtsp/rtsp.py:
	* flumotion/component/producers/screencast/__init__.py:
	* flumotion/component/producers/screencast/screencast.py:
	* flumotion/component/producers/soundcard/__init__.py:
	* flumotion/component/producers/soundcard/admin_gtk.py:
	* flumotion/component/producers/soundcard/soundcard.py:
	* flumotion/component/producers/soundcard/wizard_gtk.py:
	* flumotion/component/producers/unixdomain/__init__.py:
	* flumotion/component/producers/unixdomain/unixdomain.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/videotest/wizard_gtk.py:
	* flumotion/component/producers/webcam/__init__.py:
	* flumotion/component/producers/webcam/admin_gtk.py:
	* flumotion/component/producers/webcam/webcam.py:
	* flumotion/component/producers/webcam/wizard_gtk.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/exceptiondialog.py:
	* flumotion/extern/fdpass/__init__.py:
	* flumotion/extern/fdpass/fdpass.c:
	* flumotion/extern/log/test_log.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/launch/parse.py:
	* flumotion/manager/__init__.py:
	* flumotion/manager/admin.py:
	* flumotion/manager/base.py:
	* flumotion/manager/component.py:
	* flumotion/manager/config.py:
	* flumotion/manager/main.py:
	* flumotion/manager/manager.py:
	* flumotion/manager/worker.py:
	* flumotion/monitor/__init__.py:
	* flumotion/monitor/nagios/__init__.py:
	* flumotion/monitor/nagios/component.py:
	* flumotion/monitor/nagios/log.py:
	* flumotion/monitor/nagios/main.py:
	* flumotion/monitor/nagios/process.py:
	* flumotion/monitor/nagios/stream.py:
	* flumotion/monitor/nagios/util.py:
	* flumotion/project/__init__.py:
	* flumotion/project/project.py:
	* flumotion/scenario/__init__.py:
	* flumotion/scenario/live/__init__.py:
	* flumotion/scenario/live/wizard_gtk.py:
	* flumotion/scenario/loadflow/__init__.py:
	* flumotion/scenario/loadflow/wizard_gtk.py:
	* flumotion/scenario/ondemand/__init__.py:
	* flumotion/scenario/ondemand/wizard_gtk.py:
	* flumotion/scenario/steps/__init__.py:
	* flumotion/scenario/steps/consumptionsteps.py:
	* flumotion/scenario/steps/conversionsteps.py:
	* flumotion/scenario/steps/licensestep.py:
	* flumotion/scenario/steps/loadflowstep.py:
	* flumotion/scenario/steps/ondemandstep.py:
	* flumotion/scenario/steps/productionsteps.py:
	* flumotion/scenario/steps/summarysteps.py:
	* flumotion/service/__init__.py:
	* flumotion/service/main.py:
	* flumotion/service/service.py:
	* flumotion/test/__init__.py:
	* flumotion/test/bouncertest.py:
	* flumotion/test/common.py:
	* flumotion/test/comptest.py:
	* flumotion/test/gtkunit.py:
	* flumotion/test/realm.py:
	* flumotion/test/test_admin_admin.py:
	* flumotion/test/test_admin_config.py:
	* flumotion/test/test_admin_connections.py:
	* flumotion/test/test_admin_multi.py:
	* flumotion/test/test_bouncers_ipbouncer.py:
	* flumotion/test/test_bouncers_multibouncer.py:
	* flumotion/test/test_cache_manager.py:
	* flumotion/test/test_checkers.py:
	* flumotion/test/test_common.py:
	* flumotion/test/test_common_avltree.py:
	* flumotion/test/test_common_bundle.py:
	* flumotion/test/test_common_componentui.py:
	* flumotion/test/test_common_connection.py:
	* flumotion/test/test_common_eventcalendar.py:
	* flumotion/test/test_common_format.py:
	* flumotion/test/test_common_fraction.py:
	* flumotion/test/test_common_gstreamer.py:
	* flumotion/test/test_common_managerspawner.py:
	* flumotion/test/test_common_medium.py:
	* flumotion/test/test_common_messages.py:
	* flumotion/test/test_common_netutils.py:
	* flumotion/test/test_common_package.py:
	* flumotion/test/test_common_planet.py:
	* flumotion/test/test_common_process.py:
	* flumotion/test/test_common_pygobject.py:
	* flumotion/test/test_common_signals.py:
	* flumotion/test/test_common_vfs.py:
	* flumotion/test/test_common_watched.py:
	* flumotion/test/test_common_xdg.py:
	* flumotion/test/test_common_xmlwriter.py:
	* flumotion/test/test_component.py:
	* flumotion/test/test_component_base_scheduler.py:
	* flumotion/test/test_component_base_watcher.py:
	* flumotion/test/test_component_bouncers_bouncer_authsession.py:
	* flumotion/test/test_component_bouncers_component.py:
	* flumotion/test/test_component_bouncers_plug.py:
	* flumotion/test/test_component_common_fgdp.py:
	* flumotion/test/test_component_disker.py:
	* flumotion/test/test_component_feed.py:
	* flumotion/test/test_component_feedcomponent.py:
	* flumotion/test/test_component_feeder.py:
	* flumotion/test/test_component_httpserver.py:
	* flumotion/test/test_component_httpserver_httpcached_httputils.py:
	* flumotion/test/test_component_httpserver_httpcached_stats.py:
	* flumotion/test/test_component_httpserver_httpcached_strategy.py:
	* flumotion/test/test_component_httpstreamer.py:
	* flumotion/test/test_component_icystreamer.py:
	* flumotion/test/test_component_init.py:
	* flumotion/test/test_component_padmonitor.py:
	* flumotion/test/test_component_playlist.py:
	* flumotion/test/test_component_providers.py:
	* flumotion/test/test_component_video_converter.py:
	* flumotion/test/test_comptest.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_i18n.py:
	* flumotion/test/test_icalbouncer.py:
	* flumotion/test/test_import.py:
	* flumotion/test/test_keycards.py:
	* flumotion/test/test_launch_parse.py:
	* flumotion/test/test_logfilter.py:
	* flumotion/test/test_manager_admin.py:
	* flumotion/test/test_manager_component.py:
	* flumotion/test/test_manager_config.py:
	* flumotion/test/test_manager_manager.py:
	* flumotion/test/test_manager_worker.py:
	* flumotion/test/test_options.py:
	* flumotion/test/test_parts.py:
	* flumotion/test/test_pb.py:
	* flumotion/test/test_pbstream.py:
	* flumotion/test/test_porter.py:
	* flumotion/test/test_public_ui_api.py:
	* flumotion/test/test_reflect.py:
	* flumotion/test/test_registry.py:
	* flumotion/test/test_saltsha256.py:
	* flumotion/test/test_server_selector.py:
	* flumotion/test/test_testclasses.py:
	* flumotion/test/test_twisted_integration.py:
	* flumotion/test/test_ui_fgtk.py:
	* flumotion/test/test_wizard.py:
	* flumotion/test/test_wizard_models.py:
	* flumotion/test/test_wizard_save.py:
	* flumotion/test/test_worker_config.py:
	* flumotion/test/test_worker_job.py:
	* flumotion/test/test_worker_medium.py:
	* flumotion/test/test_worker_worker.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/compat.py:
	* flumotion/twisted/credentials.py:
	* flumotion/twisted/defer.py:
	* flumotion/twisted/fdserver.py:
	* flumotion/twisted/flavors.py:
	* flumotion/twisted/integration.py:
	* flumotion/twisted/pb.py:
	* flumotion/twisted/portal.py:
	* flumotion/twisted/reflect.py:
	* flumotion/twisted/rtsp.py:
	* flumotion/ui/__init__.py:
	* flumotion/ui/fgtk.py:
	* flumotion/ui/fileselector.py:
	* flumotion/ui/fvumeter.py:
	* flumotion/ui/glade.py:
	* flumotion/ui/icons.py:
	* flumotion/ui/kiwipatches.py:
	* flumotion/ui/linkwidget.py:
	* flumotion/ui/plugarea.py:
	* flumotion/ui/simplewizard.py:
	* flumotion/ui/trayicon.py:
	* flumotion/ui/wizard.py:
	* flumotion/worker/__init__.py:
	* flumotion/worker/base.py:
	* flumotion/worker/checks/__init__.py:
	* flumotion/worker/checks/audio.py:
	* flumotion/worker/checks/check.py:
	* flumotion/worker/checks/cortado.py:
	* flumotion/worker/checks/device.py:
	* flumotion/worker/checks/encoder.py:
	* flumotion/worker/checks/gst010.py:
	* flumotion/worker/checks/http.py:
	* flumotion/worker/checks/video.py:
	* flumotion/worker/config.py:
	* flumotion/worker/feedserver.py:
	* flumotion/worker/job.py:
	* flumotion/worker/main.py:
	* flumotion/worker/medium.py:
	* flumotion/worker/worker.py:
	* misc/flumotion-verify-config.in:
	* pkg/debian-common/copyright:
	* po/de.po:
	* scripts/check-sync-on-feeds:
	* scripts/output-feed:
	* scripts/win32-setup-svn-root.py:
	* tests/__init__.py:
	* tests/checks.py:
	* tests/construct-properties-do-not-work.py:
	* tests/debugslider.py:
	* tests/greeter.py:
	* tests/integration/__init__.py:
	* tests/integration/common.py:
	* tests/integration/test_fgdp.py:
	* tests/integration/test_qa.py:
	* tests/integration/test_torture.py:
	* tests/videotest.py:
	* tests/vorbis.py:
	* tools/fixheader.py:
	* tools/genpls.py:
	* tools/httpdigesthasher.py:
	* tools/theora-bench.py:
	Change to LGPL only

2011-09-07  Josep Joan Ribas  <jribas@flumotion.com>

	* flumotion/component/combiners/switch/switch.py:
	Fix gst version check

2011-09-05  Josep Joan Ribas  <jribas@flumotion.com>

	Reviewed by: Julien Le Goff

	* flumotion/component/producers/icecast/icecast.py:
	Do not forget to set the parser_name.

2011-08-29  Andoni Morales Alastruey  <amorales@flumotion.com>

	* flumotion/admin/gtk/componentlist.py:
	Fix manager startup with old components not having the 'lastKnownPid' key

2011-08-12  Josep Joan Ribas  <jribas@flumotion.com>

	Reviewed by: Xavier Queralt

	* flumotion/admin/gtk/componentlist.py:
	* flumotion/common/planet.py:
	Remember last known pid when a component goes lost.

2011-08-08  Xavier Queralt  <xqueralt@flumotion.com>

	* flumotion/component/converters/video/video.py:
	Remove deinterlacer from the video-converter

2011-08-08  Xavier Queralt  <xqueralt@flumotion.com>

	* flumotion/component/effects/audioconvert/audioconvert.py:
	* flumotion/component/effects/deinterlace/deinterlace.py:
	* flumotion/component/effects/videorate/videorate.py:
	* flumotion/component/encoders/vorbis/vorbis010.py:
	Revert "Use the skip-to-first property for rate converters"
	This reverts commit 8b63383f45acf74e6976effab5db385566b94101.

2011-08-08  Julien Le Goff  <jlegoff@flumotion.com>

	* flumotion/component/producers/icecast/icecast.py:
	Reset the pipeline when reconnecting to avoid possible sound artifacts.

2011-08-04  Andoni Morales Alastruey  <amorales@flumotion.com>

	* flumotion/component/effects/audioconvert/audioconvert.py:
	* flumotion/component/effects/deinterlace/deinterlace.py:
	* flumotion/component/effects/videorate/videorate.py:
	* flumotion/component/encoders/vorbis/vorbis010.py:
	Use the skip-to-first property for rate converters
	This fixes problems in reconnections, where the rate converter receives a
	newsegment event starting from the beginning of the stream and filling
	the stream with empty

2011-08-08  Xavier Queralt  <xqueralt@flumotion.com>

	* flumotion/component/converters/video/video.py:
	* flumotion/component/converters/video/video.xml:
	Remove videorate from the video-converter
	The videorate effect shouldn't be used anywhere but the producer
	components to prevent syncronization problems when using different
	encodings for the same input.

2011-07-27  Andoni Morales Alastruey  <amorales@flumotion.com>

	* flumotion/component/converters/video/video.py:
	* flumotion/component/converters/video/video.xml:
	* flumotion/component/effects/videoscale/videoscale.py:
	Add properties to correct width and height
	Some encoders requires width and height to be multiples of given value.
	When width or height are not set in the properties, the scalling might
	end up setting a a widht/height that's not a multiple of the required
	value to respect DAR. These properties allows adding a padding to fix that

2011-07-29  Xavier Queralt  <xqueralt@flumotion.com>

	* flumotion/component/base/scheduler.py:
	Do not schedule a file watcher if the calendar hasn't been opened from a file

2011-07-29  Xavier Queralt  <xqueralt@flumotion.com>

	* flumotion/component/consumers/disker/disker.py:
	UTC class has been moved to tz module

2011-07-29  Xavier Queralt  <xqueralt@flumotion.com>

	* flumotion/common/eventcalendar.py:
	Try to convert the ics file to utf-8 if there is an error when loading it.

2011-07-26  Andoni Morales Alastruey  <amorales@flumotion.com>

	* flumotion/test/test_component_icystreamer.py:
	Fix test for the icy streamer after c50be55

2011-05-16  Tim 'mithro' Ansell  <mithro@mithis.com>

	* flumotion/component/combiners/switch/switch.py:
	The input-switch element is now part of the coreelements plugins.

2011-07-26  Andoni Morales Alastruey  <amorales@flumotion.com>

	* flumotion/component/producers/blackmagic/blackmagic.py:
	* flumotion/component/producers/blackmagic/blackmagic.xml:
	Add the videorate effect to the blackmagic producer

2011-07-15  Andoni Morales Alastruey  <amorales@flumotion.com>

	* flumotion/component/producers/blackmagic/blackmagic.py:
	* flumotion/component/producers/blackmagic/blackmagic.xml:
	Clean-up blackmagic component

2011-05-26  Tim Ansell  <mithro@mithis.com>

	Reviewed by: Andoni Morales

	* flumotion/component/producers/blackmagic/blackmagic.py:
	* flumotion/component/producers/blackmagic/blackmagic.xml:
	Adding blackmagic video-format option.

2011-05-25  Tim 'mithro' Ansell  <mithro@mithis.com>

	Reviewed by: Andoni Morales

	* configure.ac:
	* flumotion/component/producers/Makefile.am:
	* flumotion/component/producers/blackmagic/Makefile.am:
	* flumotion/component/producers/blackmagic/__init__.py:
	* flumotion/component/producers/blackmagic/admin_gtk.py:
	* flumotion/component/producers/blackmagic/blackmagic.py:
	* flumotion/component/producers/blackmagic/blackmagic.xml:
	Start of a blackmagic component.
	Fixes #1518

2011-05-17  Tim 'mithro' Ansell  <mithro@mithis.com>

	Reviewed by: Andoni Morales

	* .gitignore:
	Ignoring commands/manhole.py
	Fixes #1516

2011-07-20  Josep Joan Ribas  <jribas@flumotion.com>

	* flumotion/component/misc/porter/porterclient.py:
	If getPort remote call is not available use port 80 by default.

2011-07-19  Josep Joan Ribas  <jribas@flumotion.com>

	* flumotion/component/misc/httpserver/httpserver.xml:
	Add porterclient to httpserver bundle

2011-07-19  Josep Joan Ribas  <jribas@flumotion.com>

	Reviewed by: Xavier Queralt

	* flumotion/component/misc/porter/porterclient.py:
	Added compatibility with old porters not implementing getPort

2011-06-28  Xavier Queralt  <x@queralt.me>

	* flumotion/twisted/integration.py:
	* scripts/wait-for-component-mood:
	* tests/integration/common.py:
	* tests/integration/test_fgdp.py:
	Add integration tests for the fgdp producer and the decoder component

2011-06-18  Xavier Queralt  <xqueralt@flumotion.com>

	* scripts/check-disker-file-type:
	* scripts/remove-disker-files:
	* scripts/wait-for-component-mood:
	* scripts/wait-for-show-planet:
	* scripts/wait-for-start-components:
	* scripts/wait-for-stop-components:
	* scripts/wait-for-worker:
	* tests/integration/common.py:
	* tests/integration/test_qa.py:
	* tests/integration/test_torture.py:
	Fix integration tests

2011-06-28  Xavier Queralt  <x@queralt.me>

	* flumotion/component/common/fgdp/fgdp.py:
	GstBin.add_many is deprecated in favour of GstBin.add

2011-06-28  Xavier Queralt  <x@queralt.me>

	* flumotion/component/common/fgdp/protocol.py:
	Set the maximum delay for the reconnecting factory from the component

2011-07-04  Xavier Francisco  <xfrancisco@flumotion.com>

	Reviewed by: Andoni Morales

	* flumotion/component/consumers/httpstreamer/icystreamer.py:
	* flumotion/component/consumers/httpstreamer/resources.py:
	Set the correct content-type in Icystreamer

2011-07-04  Xavier Francisco  <xfrancisco@flumotion.com>

	Reviewed by: Andoni Morales

	* flumotion/component/producers/icecast/icecast.py:
	Add support for AAC in icecast producer

2011-07-04  Xavier Francisco  <xfrancisco@flumotion.com>

	Reviewed by: Andoni Morales

	* flumotion/component/producers/icecast/icecast.xml:
	Allow the connection of the tagger plug in the icecast producer

2011-07-04  Xavier Francisco  <xfrancisco@flumotion.com>

	Reviewed by: Andoni Morales

	* flumotion/component/producers/icecast/icecast.py:
	* flumotion/component/producers/icecast/icecast.xml:
	Add pass-through mode to Icecast producer to disable the parsing of a stream

2011-06-17  Thomas Vander Stichele  <thomas (at) apestaart (dot) org>

	* doc/random/developer-introduction.rst:
	add docs on manhole use

2011-06-17  Thomas Vander Stichele  <thomas (at) apestaart (dot) org>

	* flumotion/common/manhole.py:
	make manhole work for newer conch 10

2011-06-17  Thomas Vander Stichele  <thomas (at) apestaart (dot) org>

	* conf/managers/default/manhole.xml:
	fix naming of manhole plug

2011-06-23  Thomas Vander Stichele  <thomas (at) apestaart (dot) org>

	* TODO:
	add plug TODO

2011-06-22  Andoni Morales Alastruey  <amorales@flumotion.com>

	* flumotion/component/feedcomponent.py:
	Add API to get the feeder sink pad

2011-06-20  Xavier Queralt  <xqueralt@flumotion.com>

	* flumotion/component/common/fgdp/fgdp.py:
	* flumotion/component/common/fgdp/protocol.py:
	* flumotion/test/test_component_common_fgdp.py:
	Make fgdp python2.4 compatible

2011-06-20  Andoni Morales Alastruey  <amorales@flumotion.com>

	* flumotion/common/eventcalendar.py:
	Fix timezones parsing when only 'daylight' instead of only standard is used
	Fixes #1522

2011-06-14  Andoni Morales Alastruey  <amorales@flumotion.com>

	Reviewed by: Josep Ribas

	* flumotion/component/producers/fgdp/fgdp.py:
	Don't send a flumotion-reset on reconnections if caps haven't changed

2011-06-10  Andoni Morales Alastruey  <amorales@flumotion.com>

	* flumotion/component/producers/fgdp/fgdp.py:
	Add a pad monitor to to the fgdp-producer

2011-06-09  Josep Joan Ribas  <jribas@flumotion.com>

	* flumotion/admin/command/component.py:
	Add mood column to the detailedlist command

2011-06-08  Xavier Queralt  <xqueralt@flumotion.com>

	* flumotion/component/common/fgdp/fgdp.py:
	Change the recover policy we use in multifdsink and tune the buffer size

2011-06-02  Xavier Queralt  <xqueralt@flumotion.com>

	* flumotion/component/producers/fgdp/fgdp.py:
	Send flumotion-reset event when a new connection starts

2011-05-27  Xavier Queralt  <xqueralt@flumotion.com>

	* flumotion/worker/checks/device.py:
	Fix devices check for missing element

2011-05-27  Andoni Morales Alastruey  <amorales@flumotion.com>

	Reviewed by: Xavier Queralt

	* flumotion/component/producers/webcam/webcam.py:
	Make v4l2src the default element since v4l was dropped from the kernel
	Fixes #1519

2011-05-26  Andoni Morales Alastruey  <amorales@flumotion.com>

	* flumotion/component/decodercomponent.py:
	* flumotion/component/feedcomponent.py:
	Fix thinko introduced in e447e7fdc

2011-05-26  Andoni Morales Alastruey  <amorales@flumotion.com>

	* flumotion/component/encoders/theora/theora.py:
	Set bitrate in kbits in the gstreamer element

2011-05-25  Andoni Morales Alastruey  <amorales@flumotion.com>

	* flumotion/component/decodercomponent.py:
	* flumotion/component/decoders/generic/generic.xml:
	Add 'channels' property to the decoder component

2011-05-25  Andoni Morales Alastruey  <amorales@flumotion.com>

	* configure.ac:
	* flumotion/component/decodercomponent.py:
	* flumotion/component/effects/Makefile.am:
	* flumotion/component/effects/audioconvert/Makefile.am:
	* flumotion/component/effects/audioconvert/__init__.py:
	* flumotion/component/effects/audioconvert/audioconvert.py:
	* flumotion/component/effects/audioconvert/audioconvert.xml:
	* flumotion/component/effects/audiorate/Makefile.am:
	* flumotion/component/effects/audiorate/__init__.py:
	* flumotion/component/effects/audiorate/audiorate.py:
	* flumotion/component/effects/audiorate/audiorate.xml:
	* flumotion/component/producers/firewire/firewire.py:
	Convert the audiorate effect in an audio converter

2011-05-24  Andoni Morales Alastruey  <amorales@flumotion.com>

	* flumotion/manager/component.py:
	Add modifyProperty to the component avatar

2011-05-10  Andoni Morales Alastruey  <amorales@flumotion.com>

	* flumotion/component/encoders/vp8/vp8.py:
	Increase the speed levels of vp8

2011-05-13  Andoni Morales Alastruey  <amorales@flumotion.com>

	* flumotion/component/common/fgdp/protocol.py:
	* flumotion/component/consumers/fgdp/fgdp.py:
	* flumotion/component/producers/fgdp/fgdp.py:
	Emit 'connected' and 'disconnected' messages in the fgdp sink and source elements

2011-05-20  Andoni Morales Alastruey  <amorales@flumotion.com>

	Merge branch 'modifiable_props'

2011-05-20  Andoni Morales Alastruey  <amorales@flumotion.com>

	* flumotion/component/base/propertiesnode.py:
	* flumotion/component/component.py:
	Reflect properties changes in the admin UI

2011-05-20  Andoni Morales Alastruey  <amorales@flumotion.com>

	* flumotion/common/registry.py:
	Change confusing variable name

2011-05-13  Andoni Morales Alastruey  <ylatuya@gmail.com>

	* flumotion/component/encoders/theora/theora.py:
	* flumotion/component/encoders/vorbis/vorbis010.py:
	* flumotion/component/encoders/vp8/vp8.py:
	Add 'bitrate' as a modifiable property in theora, vp8 and vorbis

2011-05-13  Andoni Morales Alastruey  <ylatuya@gmail.com>

	* flumotion/component/feedcomponent010.py:
	Add a public method to FeedComponent to change a property on the fly

2011-05-13  Andoni Morales Alastruey  <ylatuya@gmail.com>

	* flumotion/common/errors.py:
	* flumotion/component/component.py:
	Add public method to CompomentBase to modify component properties
	Some properties should be modifiable on the fly, without the need of a
	component restart. Components with modifiable properties should implement
	modify_property_(propertyName)

2011-05-20  Andoni Morales Alastruey  <amorales@flumotion.com>

	* flumotion/common/gstreamer.py:
	* flumotion/component/decodercomponent.py:
	* flumotion/component/decoders/generic/generic.py:
	* flumotion/component/effects/videoscale/videoscale.py:
	* flumotion/component/feedcomponent.py:
	Add API to handle 'flumotion-reset' events

2011-05-19  Andoni Morales Alastruey  <amorales@flumotion.com>

	* flumotion/component/common/fgdp/fgdp.py:
	Add missing password attribute

2011-05-16  Andoni Morales Alastruey  <amorales@flumotion.com>

	* flumotion/component/common/Makefile.am:
	Fix wrong install folder in Makefiles

2011-05-05  Andoni Morales Alastruey  <amorales@flumotion.com>

	* flumotion/component/decoders/generic/generic.py:
	Fix parse of segment position
	Position is not relative to the segment start and can be sometimes 0

2011-05-04  Andoni Morales Alastruey  <amorales@flumotion.com>

	* flumotion/component/common/fgdp/fgdp.py:
	Add missing private variable initialization

2011-05-04  Julien Le Goff  <jlegoff@flumotion.com>

	Reviewed by: Andoni Morales

	* flumotion/component/common/fgdp/fgdp.py:
	Use disconnect metho when in push mode.

2011-05-04  Andoni Morales Alastruey  <amorales@flumotion.com>

	* flumotion/component/common/fgdp/fgdp.py:
	Post an element error when the state change fails

2011-05-04  Andoni Morales Alastruey  <amorales@flumotion.com>

	* flumotion/component/common/fgdp/fgdp.py:
	Fix port property limits
	Increase the port property limits to 64000 and the set protocol's
	default port as default value

2011-05-04  Andoni Morales Alastruey  <amorales@flumotion.com>

	reviewed by: Julien Le Goff

	* flumotion/component/common/fgdp/protocol.py:
	Use python's random generator instead of Crypto
	random is available in python from 2.4 whilst Crypto.Random is more recent
	and might not be present in several distros

2011-05-04  Andoni Morales Alastruey  <amorales@flumotion.com>

	* flumotion/component/common/fgdp/fgdp.py:
	* flumotion/component/common/fgdp/protocol.py:
	Add more documentation and fix parts of the current one

2011-05-04  Andoni Morales Alastruey  <amorales@flumotion.com>

	* flumotion/component/common/fgdp/fgdp.py:
	Delete unused code

2011-05-03  Andoni Morales Alastruey  <amorales@flumotion.com>

	* flumotion/component/decoders/generic/generic.py:
	Fix possible OverFlowException
	Make sure incomming buffers are clipped in the configured segment
	and calculate first the stream time of the buffer to avoid an overflow

2011-05-03  Andoni Morales Alastruey  <amorales@flumotion.com>

	* flumotion/component/decoders/generic/generic.py:
	Fix offset update

2011-05-03  Andoni Morales Alastruey  <amorales@flumotion.com>

	Merge branch 'fgdp'

2011-05-03  Andoni Morales Alastruey  <amorales@flumotion.com>

	* flumotion/component/consumers/fgdp/wizard.glade:
	* flumotion/component/consumers/fgdp/wizard_gtk.py:
	* flumotion/component/producers/fgdp/fgdp.xml:
	Change some UI strings

2011-05-03  Andoni Morales Alastruey  <amorales@flumotion.com>

	* configure.ac:
	* flumotion/component/Makefile.am:
	* flumotion/component/consumers/Makefile.am:
	* flumotion/component/consumers/fgdp/Makefile.am:
	* flumotion/component/consumers/fgdp/__init__.py:
	* flumotion/component/consumers/fgdp/fgdp.py:
	* flumotion/component/consumers/fgdp/fgdp.xml:
	* flumotion/component/consumers/fgdp/wizard.glade:
	* flumotion/component/consumers/fgdp/wizard_gtk.py:
	* flumotion/component/consumers/gdp/Makefile.am:
	* flumotion/component/consumers/gdp/__init__.py:
	* flumotion/component/consumers/gdp/gdp.py:
	* flumotion/component/consumers/gdp/gdp.xml:
	* flumotion/component/consumers/gdp/wizard.glade:
	* flumotion/component/consumers/gdp/wizard_gtk.py:
	* flumotion/component/producers/Makefile.am:
	* flumotion/component/producers/fgdp/Makefile.am:
	* flumotion/component/producers/fgdp/__init__.py:
	* flumotion/component/producers/fgdp/fgdp.py:
	* flumotion/component/producers/fgdp/fgdp.xml:
	* flumotion/component/producers/gdp/Makefile.am:
	* flumotion/component/producers/gdp/__init__.py:
	* flumotion/component/producers/gdp/gdp.py:
	* flumotion/component/producers/gdp/gdp.xml:
	Rename GDP consumer/producer to FGDP consumer/producer

2011-05-02  Andoni Morales Alastruey  <amorales@flumotion.com>

	* flumotion/component/consumers/gdp/Makefile.am:
	* flumotion/component/consumers/gdp/gdp.xml:
	* flumotion/component/consumers/gdp/wizard.glade:
	* flumotion/component/consumers/gdp/wizard_gtk.py:
	Add wizard's consumer step for the FGDP consumer

2011-05-02  Andoni Morales Alastruey  <amorales@flumotion.com>

	* flumotion/component/producers/gdp/gdp.py:
	* flumotion/component/producers/gdp/gdp.xml:
	Rewrite the gdp producer to use the new FGDP protocol

2011-05-02  Andoni Morales Alastruey  <amorales@flumotion.com>

	* flumotion/component/consumers/gdp/gdp.py:
	* flumotion/component/consumers/gdp/gdp.xml:
	Rewrite the gdp consumer to use the new FGDP protocol

2011-05-02  Andoni Morales Alastruey  <amorales@flumotion.com>

	* flumotion/test/test_component_common_fgdp.py:
	Add unit test for the FGDP protocol

2011-05-02  Andoni Morales Alastruey  <amorales@flumotion.com>

	* configure.ac:
	* flumotion/component/common/Makefile.am:
	* flumotion/component/common/__init__.py:
	* flumotion/component/common/fgdp/Makefile.am:
	* flumotion/component/common/fgdp/__init__.py:
	* flumotion/component/common/fgdp/fgdp.py:
	* flumotion/component/common/fgdp/fgdp.xml:
	* flumotion/component/common/fgdp/protocol.py:
	Add implementation and sink and source elements for the FGDP protocol

2011-05-03  Andoni Morales Alastruey  <amorales@flumotion.com>

	* flumotion/test/test_icalbouncer.py:
	Apply the system's timezone change properly

2011-05-03  Andoni Morales Alastruey  <amorales@flumotion.com>

	* flumotion/common/tz.py:
	Initialize constant in __init__ to support timezone changes
	If the system timezone changes after importing the module, the
	local tzinfo is still initialized using the old timezone info.
	This allow instantiating a new local timezone with the current system
	timezone

2011-05-03  Andoni Morales Alastruey  <amorales@flumotion.com>

	* flumotion/component/base/scheduler.py:
	* flumotion/component/bouncers/algorithms/icalbouncer.py:
	* flumotion/component/consumers/disker/admin_gtk.py:
	* flumotion/test/test_component_base_scheduler.py:
	* flumotion/test/test_icalbouncer.py:
	Fix imports after file renaming

2011-05-03  Andoni Morales Alastruey  <amorales@flumotion.com>

	* flumotion/common/eventcalendar.py:
	Minor fixes in eventcalendar

2011-04-27  Andoni Morales Alastruey  <amorales@flumotion.com>

	* flumotion/common/eventcalendar.py:
	* flumotion/common/tz.py:
	Move some comments to the good place

2011-04-27  Andoni Morales Alastruey  <amorales@flumotion.com>

	* flumotion/common/Makefile.am:
	* flumotion/common/eventcalendar.py:
	* flumotion/common/tz.py:
	* flumotion/test/test_common_eventcalendar.py:
	Move the timezones implementation to it's own file

2011-04-27  Andoni Morales Alastruey  <amorales@flumotion.com>

	* flumotion/common/eventcalendar.py:
	* flumotion/test/test_common_eventcalendar.py:
	Fix calculation of the daylight change in the DSTTimezone
	Fixes #1513

2011-04-26  Andoni Morales Alastruey  <amorales@flumotion.com>

	* flumotion/common/eventcalendar.py:
	Don't fail if the optional TZNAME is missing in the VTIMEZONE
	Fixes #1512

2011-02-18  Sebastien Merle  <s.merle@gmail.com>

	* flumotion/component/consumers/httpstreamer/admin_gtk.py:
	* flumotion/component/consumers/httpstreamer/httpstreamer.py:
	* flumotion/component/misc/porter/porter.py:
	* flumotion/component/misc/porter/porterclient.py:
	Makes http-streamer display porter's port when slave.

2011-04-15  Andoni Morales Alastruey  <amorales@flumotion.com>

	* flumotion/component/encoders/theora/theora.py:
	Fallback to 'quick' property for old versions of theoraenc

2011-04-07  Andoni Morales Alastruey  <amorales@flumotion.com>

	* flumotion/component/encoders/theora/wizard.glade:
	* flumotion/component/encoders/theora/wizard_gtk.py:
	* flumotion/test/test_wizard_save.py:
	Add 'speed' property to the wizard

2011-04-07  Andoni Morales Alastruey  <amorales@flumotion.com>

	* flumotion/component/component.py:
	Log a warning for deprecated properties too

2011-04-07  Andoni Morales Alastruey  <amorales@flumotion.com>

	* flumotion/component/encoders/theora/theora.py:
	* flumotion/component/encoders/theora/theora.xml:
	Add 'speed' property to the theora encoder

2011-04-07  Andoni Morales Alastruey  <amorales@flumotion.com>

	* flumotion/component/encoders/theora/theora.py:
	* flumotion/component/encoders/theora/theora.xml:
	* flumotion/component/encoders/theora/wizard.glade:
	* flumotion/component/encoders/theora/wizard_gtk.py:
	Deprecate 'sharpness', 'quick' and 'noise-sensibility' properties
	Closes #1507

2011-04-08  Andoni Morales Alastruey  <amorales@flumotion.com>

	Reviewed by: Xavier Queralt

	* flumotion/component/encoders/vp8/vp8.py:
	* flumotion/component/encoders/vp8/vp8.xml:
	Add 'speed' and 'threads' property

2011-04-04  Xavier Queralt  <xqueralt@gmail.com>

	reviewed by: jribas

	* flumotion/common/boot.py:
	Make kiwi compatible with latest pygobject.
	Or, in other words, undo some changes in pygobject introduced in
	http://git.gnome.org/browse/pygobject/commit/?id=84d614 to make kiwi happy.
	
	Fixes #1502

2011-04-04  Xavier Queralt  <xqueralt@flumotion.com>

	* flumotion/component/converters/video/video.py:
	Silent noisy identity in video-converter

2011-04-04  Jan Urbański  <wulczer@wulczer.org>

	* flumotion/component/feedcomponent010.py:
	Revert "Install buffer probes that drop streamheaders earlier."
	See #1505 for an explanation about why this change was wrong.
	This reverts commit 5505ed20101bf27e18e7392f7a71e1b6d6a03f17.

2011-03-31  Xavier Queralt  <xqueralt@flumotion.com>

	reviewed by: Pepe Ribas

	* flumotion/component/misc/httpserver/serverstats.py:
	Do not update the stats if the updateDelta is 0 to prevent ZeroDivisionError

2011-03-30  Xavier Queralt  <xqueralt@flumotion.com>

	* flumotion/component/misc/httpserver/httpcached/strategy_basic.py:
	Fix a typpo introduced in 9fef2a

2011-03-30  Jan Urbański  <wulczer@wulczer.org>

	* flumotion/component/feedcomponent010.py:
	Install buffer probes that drop streamheaders earlier.
	Doing it only if the pipeline is playing might result in them never
	being installed. A possible scenario is setMasterClock being called
	after eatFromFD, which means that the component gets its master clock,
	and thus changes its pipeline to playing, after the only chance to
	install the probes have passed. Fixes #1505.

2011-03-30  Xavier Queralt  <xqueralt@flumotion.com>

	* flumotion/component/misc/httpserver/httpcached/strategy_base.py:
	* flumotion/component/misc/httpserver/httpcached/strategy_basic.py:
	Do not attach to the caching session if it may fail
	When asking for a cached file, if the remote returns 304 (Not modified)
	all the requests but the first are going to fail because they are not
	handling the errback. With this, we don't attach to sessions that are
	checking if the remote has been modified and just return the cached
	file.

2011-03-28  Xavier Queralt  <xqueralt@flumotion.com>

	reviewed by: Andoni Morales

	* flumotion/common/eventcalendar.py:
	Fix the DST calculation
	When looking for the next Sunday we should stay in the current month

2011-03-18  Xavier Queralt  <xqueralt@gmail.com>

	* misc/flu.stable.modules:
	* misc/flu.stable.stable.modules:
	* misc/flu.unstable.stable.modules:
	* misc/flu.unstable.unstable.modules:
	Update jhbuild modulesets

2011-03-18  Julien Le Goff  <jlegoff@flumotion.com>

	reviewed by: Andoni Morales

	* flumotion/component/effects/audiorate/audiorate.py:
	Fallback to audioresample if legacyresample does not exist.
	Fixes #1501

2011-03-09  Andoni Morales Alastruey  <amorales@flumotion.com>

	* flumotion/component/effects/videoscale/videoscale.py:
	Remove unused import

2011-03-08  Andoni Morales Alastruey  <amorales@flumotion.com>

	* flumotion/component/effects/videoscale/videoscale.py:
	Add comments for the required gstreamer version

2011-03-08  Josep Joan Ribas  <jribas@flumotion.com>

	* flumotion/manager/manager.py:
	Set sad components to sleeping when a worker gets stopped.
	reviewd by: Xavier Queralt
	Fixes #1004

2011-03-01  Thomas Vander Stichele  <thomas (at) apestaart (dot) org>

	* doc/random/developer-introduction.rst:
	Fix git commands.  Add another useful command for failed commits.

2011-03-01  Thomas Vander Stichele  <thomas (at) apestaart (dot) org>

	* flumotion/component/effects/videoscale/videoscale.py:
	* flumotion/test/test_component_video_converter.py:
	fix videoscale test for gst-plugins-base 0.10.29

2011-03-01  Xavier Francisco  <xfrancisco@flumotion.com>

	* flumotion/service/service.py:
	Fix debug message in enableWorker

2011-02-23  Xavier Francisco  <xfrancisco@flumotion.com>

	reviewed by: Julien Le Goff

	* flumotion/service/main.py:
	* flumotion/service/service.py:
	Allow enabling/disabling the managers and workers from the command line
	Fixes #778

2011-02-23  Xavier Queralt  <xqueralt@flumotion.com>

	reviewed by: Julien Le Goff

	* flumotion/component/decoders/generic/generic.py:
	Avoid a TypeError when fixing the timestamp
	
	Sometimes the first timestamp is lower than start value specified by the
	newsegment. This can be due to the time scale some muxers use. For now
	we set the timestamp to 0 to avoid the component crashing.

2011-02-21  Xavier Francisco  <xfrancisco@flumotion.com>

	reviewed by: Xavier Queralt

	* flumotion/common/bugreporter.py:
	Corrected Trac URL to avoid the report message being encoded twice.
	Fixes #1499

2011-02-17  Xavier Francisco  <xfrancisco@flumotion.com>

	reviewed by: Xavier Queralt

	* flumotion/component/producers/webcam/wizard_gtk.py:
	Do not compute the properties in the webcam producer model when they are already set
	Fixes #1498

2011-02-17  Xavier Queralt  <xqueralt@flumotion.com>

	* flumotion/component/effects/audiorate/audiorate.py:
	Fix a typo in an attribute name

2011-02-17  Xavier Queralt  <xqueralt@flumotion.com>

	* flumotion/component/producers/firewire/firewire.xml:
	Add missing dependency on audiorate-effect

2011-02-16  Xavier Queralt  <xqueralt@flumotion.com>

	* flumotion/component/misc/httpserver/Makefile.am:
	Add missing file to package

2011-02-16  Xavier Queralt  <xqueralt@flumotion.com>

	* flumotion/component/misc/httpserver/mimetypes.py:
	Add empty mimetypes module to trick the the managers
	With this, they won't crash when trying to build the http-server bundle
	See #1497

2011-02-16  Xavier Queralt  <xqueralt@flumotion.com>

	reviewed by: Josep Joan Ribas

	* flumotion/common/bundle.py:
	Rebuild a bundle if one of the old files has been deleted.
	Fixes #1497

2011-02-13  Zaheer Abbas Merali  <zaheerabbas@merali.org>

	* flumotion/component/plugs/html5/wizard_gtk.py:
	Fix more trailing whitespace.

2011-02-13  Zaheer Abbas Merali  <zaheerabbas@merali.org>

	* flumotion/component/plugs/html5/wizard_gtk.py:
	Fix more trailing whitespace.

2011-02-13  Zaheer Abbas Merali  <zaheerabbas@merali.org>

	* flumotion/component/plugs/html5/wizard_gtk.py:
	Fix more trailing whitespace.

2011-02-13  Zaheer Abbas Merali  <zaheerabbas@merali.org>

	* flumotion/component/plugs/html5/wizard_gtk.py:
	Fix trailing whitespace.

2011-02-13  Zaheer Abbas Merali  <zaheerabbas@merali.org>

	* flumotion/component/plugs/html5/html5.py:
	Fix spacing for pep8.

2011-02-13  Zaheer Abbas Merali  <zaheerabbas@merali.org>

	* flumotion/component/plugs/html5/wizard_gtk.py:
	Make wizard introspect what encoders and muxers are there.

2011-02-13  Zaheer Abbas Merali  <zaheerabbas@merali.org>

	* flumotion/component/consumers/httpstreamer/wizard_gtk.py:
	* flumotion/component/plugs/html5/Makefile.am:
	* flumotion/component/plugs/html5/html5.py:
	Make html5 page work

2011-02-13  Zaheer Abbas Merali  <zaheerabbas@merali.org>

	* configure.ac:
	* flumotion/component/plugs/Makefile.am:
	* flumotion/component/plugs/html5/Makefile.am:
	* flumotion/component/plugs/html5/__init__.py:
	* flumotion/component/plugs/html5/html5.py:
	* flumotion/component/plugs/html5/html5.xml:
	* flumotion/component/plugs/html5/wizard_gtk.py:
	First pass of html5 web page serving.

2011-02-11  Xavier Queralt  <xqueralt@gmail.com>

	* configure.ac:
	Fix AC_INIT call conforming to Autoconf's documentation

2011-02-09  Josep Joan Ribas  <jribas@flumotion.com>

	* flumotion/scenario/steps/ondemandstep.py:
	Remove a call to a method that was previously removed

2011-02-07  Andoni Morales Alastruey  <amorales@flumotion.com>

	* flumotion/component/producers/gdp/gdp.xml:
	Make 'host' and 'port' a required property in the gdp producer

2011-02-07  Andoni Morales Alastruey  <amorales@flumotion.com>

	* flumotion/component/consumers/gdp/gdp.xml:
	Make 'port' a required property in the gdp-consumer

2011-02-07  Andoni Morales Alastruey  <amorales@flumotion.com>

	* flumotion/component/consumers/gdp/gdp.py:
	Don't hardcode the revision number

2011-02-03  Andoni Morales Alastruey  <amorales@flumotion.com>

	* configure.ac:
	Use the a commit hash as a reference to generate the log

2011-02-03  Andoni Morales Alastruey  <amorales@flumotion.com>

	* common:
	Update common submodule

2011-02-03  Xavier Queralt  <xqueralt@gmail.com>

	Syncronize with latest SVN's ChangeLog

2011-02-03  Andoni Morales Alastruey  <amorales@flumotion.com>

	reviewed by: Josep Ribas

	* flumotion/worker/config.py:
	Check for invalid feederport ranges in the config
	Fixes #1493

2011-02-03  Josep Joan Ribas  <jribas@flumotion.com>

	reviewed by: Andoni Morales

	* flumotion/component/base/component.glade:
	* flumotion/component/base/componentnode.py:
	* flumotion/component/component.py:
	* flumotion/component/feedcomponent.py:
	* flumotion/component/feedcomponent010.py:
	Improve how the debug levels are set in the admin
	Apply button added for setting the debug level.
	Log levels stored in the uiState of the component.
	Fixes #1492
	(cherry picked from commit 2495a24ca96bb9efc3650e2c7be14f27c54cbe75)

2011-02-02  Andoni Morales Alastruey  <amorales@flumotion.com>

	Merge branch 'audio_cracking'

2011-02-02  Andoni Morales Alastruey  <amorales@flumotion.com>

	reviewed by: Xavier Queralt

	* flumotion/component/effects/audiorate/audiorate.py:
	Don't force the samplerate in the audiorate effect
	Fixes #1489

2011-02-02  Andoni Morales Alastruey  <amorales@flumotion.com>

	reviewed by: Xavier Queralt

	* flumotion/component/producers/firewire/firewire.py:
	Make use of the audiorate effect with a tolerance of one frame
	This should fix cracking audio by aligning audio buffers with
	non-continous timestamps, like those comming out of the dv1394src
	with it's internal clock.
	Fixes #1379

2011-02-01  Andoni Morales Alastruey  <amorales@flumotion.com>

	* flumotion/component/effects/audiorate/audiorate.py:
	Add an audiorate to the audio processing effect

2011-02-01  Andoni Morales Alastruey  <amorales@flumotion.com>

	* flumotion/component/encoders/vorbis/vorbis010.py:
	Correct audio stream before the vorbis encoder to avoid cracking audio
	The vorbis encoder is very sensible to  audio stream that are not prefectly
	aligned, so we introduce an audiorate with the tolerance property set to 20ms
	to correct gaps smaller than this value and avoid cracking audio,

2011-02-02  Josep Joan Ribas  <jribas@flumotion.com>

	reviewed by: Xavier Queralt

	* flumotion/component/misc/httpserver/httpserver.py:
	* flumotion/component/misc/httpserver/localpath.py:
	Add remote call to allow reloading mime types from /etc/mime.types
	Fixes #1403

2011-02-02  Xavier Queralt  <xqueralt@flumotion.com>

	reviewed by: Andoni

	* flumotion/component/producers/ivtv/ivtv.py:
	* flumotion/component/producers/ivtv/ivtv.xml:
	Use effects to do the deinterlacing and scaling
	Fixes #1491

2011-02-02  Andoni Morales Alastruey  <amorales@flumotion.com>

	* flumotion/component/producers/firewire/firewire.py:
	Remove unused line

2011-01-28  Andoni Morales Alastruey  <amorales@flumotion.com>

	* Makefile.am:
	Add 'test' properly as a PHONY target

2011-01-28  Thomas Vander Stichele  <thomas (at) apestaart (dot) org>

	* flumotion/extern/Makefile.am:
	make dist work

2011-01-28  Andoni Morales Alastruey  <amorales@flumotion.com>

	* configure.ac:
	Revert "Bump development version to 0.9.0.2"
	This reverts commit b132fc7d0e7778de035f93d31646e159e02f4bb8.

2011-01-28  Andoni Morales Alastruey  <amorales@flumotion.com>

	* configure.ac:
	Bump development version to 0.9.0.2

2011-01-24  Thomas Vander Stichele  <thomas (at) apestaart (dot) org>

	* doc/random/developer-introduction.rst:
	fix an option doubledash; add another pychecker tip

2011-01-24  Andoni Morales Alastruey  <ylatuya@gmail.com>

	* .gitignore:
	Add new files to ignore after removing the external command

2011-01-24  Thomas Vander Stichele  <thomas (at) apestaart (dot) org>

	Merge branch 'externals'

2011-01-23  Thomas Vander Stichele  <thomas (at) apestaart (dot) org>

	* flumotion/extern/Makefile.am:
	checkout from svn the first time

2011-01-23  Thomas Vander Stichele  <thomas (at) apestaart (dot) org>

	* flumotion/extern/command/README:
	* flumotion/extern/command/__init__.py:
	* flumotion/extern/command/command.py:
	* flumotion/extern/command/help2man.py:
	* flumotion/extern/command/test_command.py:
	remove code copy

2011-01-21  Andoni Morales Alastruey  <amorales@flumotion.com>

	* doc/random/developer-introduction.rst:
	Document commit messages formatting

2011-01-21  Theodoros Paschidis  <tpaschidis@flumotion.com>

	* flumotion/component/consumers/disker/disker.py:
	* flumotion/component/consumers/disker/wizard.glade:
	* flumotion/test/test_component_disker.py:
	Do not allow 0 hrs or 0 size in disker rotation. Fixes #1429

2011-01-23  Thomas Vander Stichele  <thomas (at) apestaart (dot) org>

	* doc/random/developer-introduction.rst:
	add info on closing a ticket

2011-01-23  Thomas Vander Stichele  <thomas (at) apestaart (dot) org>

	* configure.ac:
	fix bug url

2011-01-23  Thomas Vander Stichele  <thomas (at) apestaart (dot) org>

	* flumotion/extern/log/log.py:
	pep8 fix

2011-01-23  Thomas Vander Stichele  <thomas (at) apestaart (dot) org>

	* flumotion/extern/Makefile.am:
	actually install unixcrypt.py for real

2011-01-22  Thomas Vander Stichele  <thomas (at) apestaart (dot) org>

	* doc/random/developer-introduction.rst:
	expand on pychecker; fix git url's to not have ~

2011-01-21  Julien Le Goff  <jlegoff@flumotion.com>

	* flumotion/admin/text/main.py:
	Use PBConnectionInfo when logging in to a manager from the command line.

2011-01-20  Andoni Morales Alastruey  <amorales@flumotion.com>

	* misc/flu.stable.modules:
	* misc/flu.stable.stable.modules:
	Fix jhbuild module set.
	Using tag instead of revision makes it checkout the tag directly
	avoiding conflicts trying to overwrite the 'common' folder

2011-01-19  Andoni Morales Alastruey  <amorales@flumotion.com>

	reviewed by: Julien Le Goff

	* flumotion/component/consumers/disker/disker.py:
	Write index progressively in the disker
	Closes #1483

2011-01-19  Andoni Morales Alastruey  <amorales@flumotion.com>

	reviewed by: Julien Le Goff

	* flumotion/component/consumers/disker/disker.py:
	* flumotion/test/test_component_disker.py:
	Add support for writting the index to disk progressively

2011-01-19  Xavier Queralt  <xqueralt@flumotion.com>

	* flumotion/component/consumers/httpstreamer/icystreamer.py:
	Silent the noisy identity in icy streamer

2011-01-19  Xavier Queralt  <xqueralt@flumotion.com>

	* flumotion/component/effects/audiorate/audiorate.py:
	Silent the noisy identity in audiorate effect

2011-01-18  Xavier Francisco  <xfrancisco@flumotion.com>

	reviewed by: Andoni Morales Alastruey

	* flumotion/ui/trayicon.py:
	Corrected the right-click action on the tray icon that raised an exception
	Fixes #1481

2011-01-18  Andoni Morales Alastruey  <amorales@flumotion.com>

	* misc/flu.stable.modules:
	* misc/flu.stable.stable.modules:
	* misc/flu.unstable.stable.modules:
	* misc/flu.unstable.unstable.modules:
	Update jhbuild module set

2011-01-18  Pau Capella  <pcapella@flumotion.com>

	reviewed by: Josep Ribas

	* flumotion/admin/gtk/adminwindow.py:
	Update a tray icon when a component is removed
	Fixes #1427

2011-01-17  Pau Capella  <pcapella@flumotion.com>

	reviewed by: Josep Ribas

	* flumotion/component/base/multiple.py:
	* flumotion/component/component.py:
	CPU bar now scales considering the number of CPUs
	Add new key 'num-cpus' on component uiState
	Fixes #1424

2011-01-17  Andoni Morales Alastruey  <amorales@flumotion.com>

	* .gitignore:
	Add missing ignores

2011-01-17  Pau Capella  <pcapella@flumotion.com>

	* flumotion/admin/Makefile.am:
	Add missing file to Makefile.am

2011-01-17  Pau Capella  <pcapella@flumotion.com>

	reviewed by: Xavier Queralt

	* flumotion/admin/gtk/adminwindow.py:
	* flumotion/admin/settings.py:
	* flumotion/scenario/steps/loadflowstep.py:
	flumotion-admin now remembers the last directory used for export/import a flow file
	Add a new class to save and restore the settings of the mainwindow
	Settings are stored in a external file 'gtk-admin-state'
	Fixes #1365

2011-01-17  Andoni Morales Alastruey  <amorales@flumotion.com>

	* common:
	Update common submodule

2011-01-17  Andoni Morales Alastruey  <amorales@flumotion.com>

	* .gitignore:
	Ignore compiled files and cache folder
	These files are genereted after running flumotion and the tests

2011-01-14  Andoni Morales Alastruey  <amorales@flumotion.com>

	* doc/random/developer-introduction.rst:
	Add some git tips in the documentation

2011-01-14  Andoni Morales Alastruey  <amorales@flumotion.com>

	* .gitmodules:
	Use the public accessible flumotion-common git repository

2011-01-14  Andoni Morales Alastruey  <amorales@flumotion.com>

	* .gitignore:
	Add missing ignores

2011-01-14  Andoni Morales Alastruey  <amorales@flumotion.com>

	* common:
	Update common submodule

2011-01-14  Andoni Morales Alastruey  <amorales@flumotion.com>

	* .gitignore:
	Add ignores for git

2011-01-13  Andoni Morales Alastruey  <amorales@flumotion.com>

	* doc/random/developer-introduction.rst:
	Fix some other paths in the documentation

2011-01-12  Andoni Morales Alastruey  <amorales@flumotion.com>

	* doc/random/developer-introduction.rst:
	Fix some url's in the documentation

2011-01-11  Andoni Morales Alastruey  <amorales@flumotion.com>

	* doc/random/developer-introduction.rst:
	Update documentation for git repositories

2011-01-12  Andoni Morales Alastruey  <amorales@flumotion.com>

	* Makefile.am:
	* configure.ac:
	Generate ChangeLog from git-log

2011-01-12  Andoni Morales Alastruey  <amorales@flumotion.com>

	* autogen.sh:
	Init submodules in autogen.sh

2011-01-11  Andoni Morales Alastruey  <amorales@flumotion.com>

	* .gitmodules:
	* common:
	Add flumotion-common submodule

2011-01-08  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/command/component.py:
	* flumotion/admin/command/manager.py:
	* flumotion/admin/command/worker.py:
	* flumotion/common/bundleclient.py:
	* flumotion/common/connection.py:
	* flumotion/component/base/admin_text.py:
	* flumotion/component/base/http.py:
	* flumotion/component/base/multiple.py:
	* flumotion/component/bouncers/admin_gtk.py:
	* flumotion/component/bouncers/htpasswdcrypt.py:
	* flumotion/component/bouncers/multibouncer.py:
	* flumotion/component/bouncers/multibouncerplug.py:
	* flumotion/component/bouncers/saltsha256.py:
	* flumotion/component/component.py:
	* flumotion/component/consumers/httpstreamer/resources.py:
	* flumotion/component/effects/videorate/videorate.py:
	* flumotion/component/effects/videoscale/videoscale.py:
	* flumotion/component/encoders/vp8/vp8.py:
	* flumotion/component/feedcomponent.py:
	* flumotion/component/feedcomponent010.py:
	* flumotion/component/misc/httpserver/cachedprovider.py:
	* flumotion/component/misc/httpserver/cachemanager.py:
	* flumotion/component/misc/httpserver/httpfile.py:
	* flumotion/component/misc/porter/porter.py:
	* flumotion/component/misc/porter/porterclient.py:
	* flumotion/component/muxers/checks.py:
	* flumotion/component/plugs/adminaction.py:
	* flumotion/component/plugs/rrd.py:
	* flumotion/component/producers/checks.py:
	* flumotion/component/producers/looper/wizard_gtk.py:
	* flumotion/component/producers/screencast/screencast.py:
	* flumotion/component/producers/videotest/admin_text.py:
	* flumotion/job/job.py:
	* flumotion/launch/main.py:
	* flumotion/launch/parse.py:
	* flumotion/manager/admin.py:
	* flumotion/manager/base.py:
	* flumotion/manager/component.py:
	* flumotion/manager/manager.py:
	* flumotion/manager/worker.py:
	* flumotion/monitor/nagios/component.py:
	* flumotion/monitor/nagios/main.py:
	* flumotion/monitor/nagios/stream.py:
	* flumotion/twisted/integration.py:
	* flumotion/twisted/pb.py:
	* flumotion/twisted/portal.py:
	* flumotion/twisted/reflect.py:
	* flumotion/ui/glade.py:
	* flumotion/worker/checks/device.py:
	* flumotion/worker/checks/gst010.py:
	  Clean up unused imports an experimental pychecker detected.
	* flumotion/common/medium.py:
	* flumotion/component/bouncers/component.py:
	* flumotion/job/main.py:
	* flumotion/ui/wizard.py:
	  Additionally, some style guide conforming.

2011-01-07  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/feedcomponent.py:
	  comparison with True is not necessary.
	* flumotion/component/misc/porter/porter.py:
	  Another unused e.
	* flumotion/component/producers/soundcard/wizard_gtk.py:
	  min and max are built-ins.

2011-01-07  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/misc/httpserver/ratecontrol.py:
	  bytes is a built-in.
	* flumotion/component/misc/httpserver/admin_gtk.py:
	  format is a built-in.
	* flumotion/component/misc/porter/porter.py:
	  Remove unused exception.
	* flumotion/component/producers/playlist/admin_gtk.py:
	  iter is a built-in.

2011-01-07  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/formatting.py (added):
	  Add new module name.  Move code there.
	* flumotion/common/format.py:
	  Make this an empty stub, to be removed for Flumotion 0.10
	* flumotion/common/Makefile.am:
	  Add new file.
	* flumotion/component/base/componentnode.py:
	* flumotion/component/base/eatersnode.py:
	* flumotion/component/base/feedersnode.py:
	* flumotion/component/base/multiple.py:
	* flumotion/component/consumers/disker/admin_gtk.py:
	* flumotion/component/consumers/disker/disker.py:
	* flumotion/component/consumers/httpstreamer/httpstreamer.py:
	* flumotion/component/misc/httpserver/admin_gtk.py:
	* flumotion/component/misc/httpserver/cachemanager.py:
	* flumotion/monitor/nagios/log.py:
	* flumotion/monitor/nagios/process.py:
	* flumotion/test/test_common_format.py:
	  Change all imports to
	  from flumotion.common import format as formatting
	  to prepare for the deprecation.

2011-01-06  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/misc/httpserver/cachemanager.py:
	  hash and file are builtin, replace them.
	  Remove unused exceptions.
	* flumotion/component/misc/httpserver/cachedprovider.py:
	  Remove unused import.
	  file is a builtin, replace it.
	* flumotion/worker/checks/device.py:
	  Remove unused imports.
	  id is a builtin, replace it.

2011-01-06  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/effects/videoscale/admin_gtk.py:
	  Remove unused import.
	* flumotion/worker/checks/video.py:
	* flumotion/component/converters/video/video.py:
	* flumotion/component/misc/httpserver/httpserver.py:
	  Remove unused code.
	* flumotion/worker/checks/audio.py:
	  Remove unused exception.

2011-01-06  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/netutils.py:
	  bytes is a builtin.  Replace it.
	* flumotion/twisted/defer.py:
	* flumotion/component/producers/playlist/playlistparser.py:
	* flumotion/ui/wizard.py:
	  next is a builtin.  Replace it.
	* flumotion/component/bouncers/component.py:
	* flumotion/component/producers/videotest/wizard_gtk.py:
	  id is a builtin.  Replace it.
	* flumotion/component/consumers/disker/admin_gtk.py:
	  iter is a builtin.  Replace it.
	* flumotion/component/consumers/disker/disker.py:
	  file is a builtin.  Replace it.
	* flumotion/ui/trayicon.py:
	  quit is a builtin.  Replace it.

2011-01-06  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/twisted/pb.py:
	* flumotion/common/format.py:
	* flumotion/common/componentui.py:
	* flumotion/common/i18n.py:
	* flumotion/common/medium.py:
	* flumotion/component/misc/httpserver/admin_gtk.py:
	* flumotion/component/producers/webcam/webcam.py:
	* flumotion/component/producers/looper/looper.py:
	* flumotion/component/producers/videotest/videotest.py:
	* flumotion/manager/admin.py:
	  'format' is a builtin.  Replace it.

2010-12-28  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/signals.py:
	* flumotion/component/effects/deinterlace/admin_gtk.py:
	* flumotion/manager/component.py:
	* flumotion/job/main.py:
	  Remove unused imports.

2010-12-28  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/converters/overlay/overlay.py:
	  Pychecker caught two mistakes, globals that are in fact self
	  attributes.

2010-12-28  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/consumers/disker/disker.py:
	  _openFile is used by two objects.  Rename self to loggable to make
	  clear this is a function, not a method.

2010-12-28  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/consumers/disker/disker.py:
	  Remove an inner import that was already at the top.
	  Log an exception when statting a file.

2010-12-28  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/eventcalendar.py:
	  Pychecker caught a method called deltatime when it is actually
	  timedelta.

2010-12-28  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/plugs/base.py:
	  Pychecker caught an invocation of defer. without the matching
	  import.  Importing.

2010-12-28  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/producers/playlist/singledecodebin.py:
	  Pychecker caught an invocation of log. when there is no log
	  module imported.  Removing the log line.

2010-12-28  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/misc/httpserver/httpcached/strategy_base.py:
	  Adapt to name change.

2010-12-28  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/misc/httpserver/ourmimetypes.py (added):
	* flumotion/component/misc/httpserver/mimetypes.py (deleted):
	  Rename, so it doesn't conflict with a built-in module of the
	  same name that actually gets imported by twisted.web.static
	* flumotion/component/misc/httpserver/Makefile.am:
	* flumotion/component/misc/httpserver/httpserver.xml:
	* flumotion/component/misc/httpserver/localpath.py:
	  Adapt to name change.

2010-12-15  Josep Joan Ribas  <jribas@flumotion.com>

	reviewed by: Xavier Queralt

	* flumotion/common/bundle.py:
	* flumotion/common/registry.py:
	* flumotion/manager/manager.py:
	* flumotion/test/test_manager_manager.py:
	Manager has to rebuild the BundlerBasket when the registry has been
	updated. This prevents asking for a bundle that has been found in the
	recently updated Registry but it is not available in the outdated
	BundlerBasket.

2010-12-01  Andoni Morales Alastruey  <amorales@flumotion.com>

	reviewed by: Julien Le Goff

	* flumotion/component/consumers/disker/disker.py:
	* flumotion/component/consumers/disker/disker.xml:
	Add a property to set the overlap time between files.
	mutltfdsink doesn't keep enough buffers in it's internal queue and to sink
	in the last keyframe this value should be equivalent to the maximum
	keyframe distance.
	Using the 'time-min' property in multifdsink would be another solution, but
	for mpeg-ts streams with many buffers in between keyframes it takes up to
	a 100% use of the cpu finding the sync point

2010-12-01  Andoni Morales Alastruey  <amorales@flumotion.com>

	reviewed by: Julien Le Goff

	* flumotion/component/consumers/disker/disker.py:
	Fix typo

2010-12-01  Andoni Morales Alastruey  <amorales@flumotion.com>

	reviewed by: Xavier Queralt

	* flumotion/component/consumers/disker/disker.xml:
	Document better the sync-on-tdt property

2010-12-01  Andoni Morales Alastruey  <amorales@flumotion.com>

	reviewed by: Xavier Queralt

	* flumotion/component/consumers/disker/disker.py:
	Remove unused method

2010-11-29  Andoni Morales Alastruey  <amorales@flumotion.com>

	reviewed by: Xavier Queralt

	* flumotion/component/consumers/disker/disker.py:
	Make sure we have the right values in multifdsink's client
	stats to write the index

2010-11-29  Andoni Morales Alastruey  <amorales@flumotion.com>

	reviewed by: Xavier Queralt

	* flumotion/component/consumers/disker/disker.py:
	Make use of the helper function _openFile properly

2010-11-29  Andoni Morales Alastruey  <amorales@flumotion.com>

	reviewed by: Xavier Queralt

	* flumotion/component/consumers/disker/disker.py:
	Remove unused imports

2010-11-29  Andoni Morales Alastruey  <amorales@flumotion.com>

	reviewed by: Xavier Queralt

	* flumotion/component/consumers/disker/disker.py:
	Add log category to the disker

2010-11-29  Andoni Morales Alastruey  <amorales@flumotion.com>

	reviewed by: Xavier Queralt

	* flumotion/component/consumers/disker/disker.py:
	Don't start recording until we get the first tdt if we 
	are syncing on tdt's

2010-11-29  Andoni Morales Alastruey  <amorales@flumotion.com>

	reviewed by: Xavier Queralt

	* flumotion/component/consumers/disker/disker.py:
	Add log category to the disker

2010-11-26  Andoni Morales Alastruey  <amorales@flumotion.com>

	reviewed by: Xavier Queralt

	* flumotion/component/consumers/disker/disker.py:
	* flumotion/component/consumers/disker/disker.xml:
	Add a property to sync on tdt events

2010-11-26  Andoni Morales Alastruey  <amorales@flumotion.com>

	reviewed by: Xavier Queralt

	* flumotion/component/consumers/disker/disker.py:
	Use a common pad probe for events and buffers

2010-11-26  Andoni Morales Alastruey  <amorales@flumotion.com>

	reviewed by: Xavier Queralt

	* flumotion/component/consumers/disker/disker.py:
	* flumotion/component/consumers/disker/disker.xml:
	Add a new property to write an index for each file created by
	the disker

2010-11-26  Andoni Morales Alastruey  <amorales@flumotion.com>

	reviewed by: Xavier Queralt

	* flumotion/component/consumers/disker/disker.py:
	* flumotion/test/test_component_disker.py:
	Add an index class and unit tests

2010-11-26  Andoni Morales Alastruey  <amorales@flumotion.com>

	reviewed by: Xavier Queralt

	* flumotion/component/consumers/disker/disker.py:
	Ensure that recorded files have no gaps overlapping them

2010-11-16  Josep Joan Ribas  <jribas@flumotion.com>

	* flumotion/component/producers/videotest/wizard.glade:
	Fix pattern image display error.

2010-11-07  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/feedcomponent.py:
	  Show us what pipeline we can't parse.
	* flumotion/component/eater.py:
	* flumotion/component/feedcomponent010.py:
	  Comments and doc strings.

2010-11-07  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/test/test_component_padmonitor.py:
	* flumotion/component/padmonitor.py:
	  Make naming more uniform - an FREQUENCY is not an INTERVAL
	  Document and comment.

2010-11-04  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/producers/looper/looper.py:
	Call base class's method with instance as first argument as we
	should be doing.

2010-11-03  Josep Joan Ribas  <jribas@flumotion.com>

	reviewed by: Julien Le Goff

	* flumotion/component/combiners/switch/basicwatchdog.py:
	Add missing attribute to the SingleBasicWatchdog class that was
	causing a traceback when using the single-basic-watchdog-combiner
	component.

2010-11-02  Xavier Queralt  <xqueralt@gmail.com>

	reviewed by: Pepe Ribas

	* flumotion/twisted/reflect.py:
	- Strip the quotation marks from the exception's message to be
	compatible with python27's ihooks module.
	- Use twisted's reflect.namedAny if we have twisted 8.0 or greater.
	Fixes #1469

2010-10-29  Xavier Queralt  <xqueralt@flumotion.com>

	reviewed by: Julien Le Goff

	* flumotion/test/test_component_icystreamer.py:
	Fix the test to consider the changes in last revisions

2010-10-29  Andoni Morales Alastruey  <amorales@flumotion.com>

	reviewed by: Julien Le Goff 

	* flumotion/component/consumers/httpstreamer/httpstreamer.py:
	Really delete the ICY streamer code and the import
	* flumotion/component/consumers/httpstreamer/icystreamer.py:
	Add __revision__ and __all__

2010-10-29  Andoni Morales Alastruey  <amorales@flumotion.com>

	reviewed by: Julien Le Goff

	* flumotion/component/consumers/httpstreamer/Makefile.am:
	* flumotion/component/consumers/httpstreamer/httpstreamer.xml:
	* flumotion/component/consumers/httpstreamer/icystreamer.py:
	Fix bundling issue in the http-streamer component.
	icymux was being imported in httpstreamer.py, but icymux.py is only
	bundled for the icy-streamer component.

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

	reviewed by: Andoni Morales

	* flumotion/component/effects/deinterlace/deinterlace.py:
	If we plug in an identity, let us make it not verbose in the log!

2010-10-28  Andoni Morales Alastruey  <amorales@flumotion.com>

	reviewed by: Julien Le Goff

	* flumotion/component/consumers/disker/disker.py:
	Always sink in the last keyframe to avoid having gaps in the recorded
	files.

2010-10-26  Josep Joan Ribas  <jribas@flumotion.com>

	reviewed by: Julien Le Goff 

	* flumotion/component/base/http.py:
	Set the token attribute to an empty string by default so further
	checks of the token's length don't crash. See r8774

2010-10-25  Andoni Morales Alastruey  <amorales@flumotion.com>

	reviewed by: Marc-André Lureau 

	* flumotion/component/consumers/httpstreamer/httpstreamer.py:
	* flumotion/component/consumers/httpstreamer/httpstreamer.xml:
	Add the 'timeout' property to disconnect inactive clients

2010-10-21  Andoni Morales Alastruey  <amorales@flumotion.com>

	reviewed by: Marc-André Lureau

	* flumotion/component/consumers/httpstreamer/resources.py:
	Add the client only when we know that the fd is really opened

2010-10-21  Sébastien Merle  <sebastien@flumotion.com>

	* flumotion/component/misc/httpserver/httpserver.xml:
	Put back the issuer-class property, and changed the doc to show deprecation.

2010-10-21  Marek Kowalski  <mkowalski@flumotion.com>

	* flumotion/component/producers/icecast/icecast.py:
	Fix typo (incorrect method called)

2010-10-19  Andoni Morales Alastruey  <amorales@flumotion.com>

	reviewed by: Julien Le Goff 

	* flumotion/component/effects/deinterlace/deinterlace.py:
	fix again colorspace renegotiations switching the deinterlacer

2010-10-08  Andoni Morales Alastruey  <amorales@flumotion.com>

	reviewed by: Marc-André Lureau 

	* flumotion/component/consumers/disker/disker.py:
	Use the time zone time to name the first disker file, as it's done for
	the following ones.
	Close #1465

2010-10-08  Josep Joan Ribas  <jribas@flumotion.com>

	* flumotion/component/consumers/httpstreamer/httpstreamer.xml:
	There is no wizard for the icy-streamer component. Remove wizard entry
	from the registry.

2010-10-07  Andoni Morales Alastruey  <amorales@flumotion.com>

	* flumotion/test/test_component_video_converter.py:
	Fix video converter test. For the scalling tests do not use any deinterlacer

2010-10-07  Andoni Morales Alastruey  <amorales@flumotion.com>

	reviewed by: Julien Le Goff

	* flumotion/component/converters/video/video.py:
	Convert tuple to gst.Fraction

2010-10-07  Andoni Morales Alastruey  <amorales@flumotion.com>

	reviewed by: Julien Le Goff 
	* ChangeLog:
	* flumotion/component/effects/deinterlace/deinterlace.py:
	Reset the colorpsace converter after changing the deinterlacer
	for a proper re-negotiation

2010-10-07  Andoni Morales Alastruey  <amorales@flumotion.com>

	reviewed by: Julie Le Goff
	* flumotion/component/effects/deinterlace/deinterlace.py:
	Fix initialisation. The component was not switching the deinterlacer
	properly repecting the configuration.

2010-10-05  Xavier Queralt  <xqueralt@flumotion.com>

	* flumotion/twisted/flavors.py:
	Reintroduce the removed (in r8746) "_set" attribute for compatibility.

2010-10-05  Andoni Morales Alastruey  <amorales@flumotion.com>

	* flumotion/component/consumers/httpstreamer/Makefile.am:
	Add missing files to Makefile.am

2010-10-04  Marek Kowalski  <mkowalski@flumotion.com>

	* flumotion/test/test_component_icystreamer.py:
	Make streamer listen on random port not to interfere with other tests
	running.

2010-10-04  Marek Kowalski  <mkowalski@flumotion.com>

	* flumotion/component/consumers/httpstreamer/httpstreamer.py:
	Change streamer mood to happy after receiving first data buffer and
	calculating stream bitrate.

2010-10-04  Marek Kowalski  <mkowalski@flumotion.com>

	* flumotion/component/consumers/httpstreamer/admin_gtk.py:
	* flumotion/component/consumers/httpstreamer/httpstreamer.xml:
	* flumotion/component/consumers/httpstreamer/icytab.glade:
	Admin UI for http streamer.

2010-10-01  Marek Kowalski  <mkowalski@flumotion.com>

	* flumotion/component/consumers/httpstreamer/httpstreamer.py:
	* flumotion/component/consumers/httpstreamer/httpstreamer.xml:
	* flumotion/component/consumers/httpstreamer/resources.py:
	Introduce icy-streamer component and ICYResource class for parsing
	incoming request headers.
	* flumotion/test/test_component_icystreamer.py:
	Tests for new component.
	* flumotion/component/consumers/httpstreamer/icymux.py:
	Muxer producing application/x-icy stream combining title changes
	based on events.

2010-10-01  Marek Kowalski <mkowalski@flumotion.com>

	* flumotion/component/producers/icecast/icecast.py:
	Switch the iradio-mode on in icecast producer.
	Plug the icydemux component to produce audio stream.

2010-09-30  Marek Kowalski <mkowalski@flumotion.com>

	* flumotion/component/consumers/httpstreamer/httpstreamer.py:
	* flumotion/component/consumers/httpstreamer/resources.py:
	* flumotion/component/test/test_http.py
	Support for more than one sink in streamer component.

2010-09-28  Marek Kowalski <mkowalski@flumotion.com>

	* flumotion/component/consumers/httpstreamer/httpstreamer.py:
	* flumotion/component/consumers/httpstreamer/resources.py:
	Code refactoring in httpstreamer module.
	Split long methods into smaller parts so that it is
	easy to overload them in child class.

2010-10-04  Andoni Morales Alastruey  <amorales@flumotion.com>

	* flumotion/component/effects/audioresync/Makefile.am:
	Add missing files to Makefile.am
	* flumotion/component/effects/audioresync (svn:ignore):
	Add missing files to svn:ignore


2010-10-04  Andoni Morales Alastruey  <amorales@flumotion.com>

	reviewed by: Xavier Queralt
	* ChangeLog:
	* configure.ac:
	* flumotion/component/effects/Makefile.am:
	* flumotion/component/effects/audioresync/Makefile.am:
	* flumotion/component/effects/audioresync/__init__.py:
	* flumotion/component/effects/audioresync/admin_gtk.py:
	* flumotion/component/effects/audioresync/audioresync.glade:
	* flumotion/component/effects/audioresync/audioresync.py:
	* flumotion/component/effects/audioresync/audioresync.xml:
	Add audio resynchroniser effect

2010-10-04  Andoni Morales Alastruey  <amorales@flumotion.com>

	reviewed by: Xavier Queralt
	* flumotion/common/registry.py:
	Add more logging to the registry

2010-10-04  Andoni Morales Alastruey  <amorales@flumotion.com>

	reviewed by: Xavier Queralt
	* flumotion/component/decoders/generic/generic.py:
	Fix generic decoder's synchronisation element:
	 - Make it thread safe (audio and video can be in different threads).
	 - Retimestamp buffers using a common sync point for audio and video
		and adding the buffer's running time calculated from the start of
		the current segment to avoid desynchronisations whilst increasing
		continuously the timetamps of the outgoing buffers.
	 - Only drop new segment event and forward the rest.
	 - Send a flumotion-reset event when the decoder is restarted.

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

	* flumotion/component/feedcomponent010.py:
	  Log timestamp discontinuities with nanosecond precision, so we
	  actually see the 1 ns discontinuity on Theora.

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

	* flumotion/common/format.py:
	  Support displaying of negative values in seconds.
	  Fix up docstring.
	  This fixes displaying discontinuity duration as
	  6 days 23:59:59:999999999 when it's minus 1 nanosecond,
	  which sometimes seems to happen in the ogg-muxer for theora
	  streams.
	* flumotion/test/test_common_format.py:
	  Add a test for it.

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

	* doc/random/styleguide:
	* flumotion/test/test_common_format.py:
	  Don't use assert for comparisons in tests; it doesn't log the
	  actual value when the test fails.

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

	* doc/random/styleguide:
	* flumotion/component/converters/overlay/overlay.py:
	  Logging about every buffer should be at LOG level.

2010-09-29  Andoni Morales Alastruey  <amorales@flumotion.com>

	reviewed by: Julien Le Goff
	* flumotion/component/feedcomponent.py:
	factor out the buffer callback to ease subclassing
	the muxer component

2010-09-29  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/component.py:
	  An assert should give some more info so we can debug.

2010-09-29  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	* flumotion/component/consumers/Makefile.am:
	* flumotion/component/consumers/pipeline (added):
	* flumotion/component/consumers/pipeline/pipeline.xml (added):
	* flumotion/component/consumers/pipeline/__init__.py (added):
	* flumotion/component/consumers/pipeline/Makefile.am (added):
	* flumotion/component/consumers/pipeline/pipeline.py (added):
	  Add a pipeline-consumer component, since we already had
	  -producer and -converter.

2010-09-15  Xavier Queralt  <xqueralt@gmail.com>

	* configure.ac:
	Start the new development series.

2010-09-15  Xavier Queralt  <xqueralt@gmail.com>

	* configure.ac:
	Back to dev.

=== release 0.8.0 ===

2010-09-14  Xavier Queralt  <xqueralt@gmail.com>

	* NEWS:
	* RELEASE:
	* configure.ac:
	* flumotion.doap:
	* pkg/ubuntu-karmic/changelog:
	* pkg/ubuntu-lucid/changelog:
	Releasing 0.8.0 "7 Portes"

2010-09-14  Xavier Queralt  <xqueralt@gmail.com>

	* flumotion/admin/gtk/Makefile.am:
	* flumotion/admin/gtk/about.py:
	* flumotion/admin/gtk/dialogs.py:
	Use gtk's about dialog if possible, it simplifies a bit things.

2010-09-14  Xavier Queralt  <xqueralt@gmail.com>

	* flumotion/test/test_wizard_save.py:
	Once again, if the defaults change these tests need to be updated

2010-09-14  Xavier Queralt  <xqueralt@gmail.com>

	reviewed by: Josep Joan Ribas  <jribas@flumotion.com>

	* flumotion/component/producers/firewire/wizard_gtk.py:
	Default to ffmpeg deinterlacing mode.
	Set the width in the properties when using the padding correction
	* flumotion.spec.in:
	* pkg/ubuntu-karmic/control:
	* pkg/ubuntu-lucid/control:
	Depend on gstreamer-ffmpeg for the deinterlacing capabilities

2010-09-13  Marek Kowalski  <mkowalski@flumotion.com>

	* flumotion/component/bouncers/multibouncerplug.py
	Fixed one more incompatibility with 2.4.

2010-09-13  Marek Kowalski  <mkowalski@flumotion.com>

	* flumotion/component/bouncers/multibouncer.py
	Fixed usage of Expection().message argument incompatible with 2.4

2010-09-10  Marek Kowalski  <mkowalski@flumotion.com>

	* flumotion/component/base/http.py:
	* flumotion/test/test_bouncers_multibouncer.py:
	Tests for multibouncer with incorrect configuration and expiring 
	the keycards.
	Tracked one ugly silent fail.

2010-09-08  Marek Kowalski  <mkowalski@flumotion.com>

        * flumotion/test/test_bouncers_multibouncer.py:
	Tests for MultiBouncerPlug.

2010-09-08  Marek Kowalski  <mkowalski@flumotion.com>

	* flumotion/test/test_bouncers_multibouncer.py:
	Typo fix, fix the build.

2010-09-08  Marek Kowalski  <mkowalski@flumotion.com>

	* flumotion/test/test_bouncers_multibouncer.py:
	Add simple tests for multibouncer combination logic.

2010-09-07  Josep Joan Ribas  <jribas@flumotion.com>

	* flumotion/component/component.py:
	Add remote call to get the mood of the component.

2010-09-01  Xavier Queralt  <xqueralt@flumotion.com>

	* flumotion/component/decodercomponent.py:
	* flumotion/component/decoders/generic/generic.xml:
	Add the audiorate effect to the decoder's audio output.
	Completelly remove the deinterlace effect from the decoder.

2010-09-07  Xavier Queralt  <xqueralt@flumotion.com>

	reviewed by: Andoni Morales

	* configure.ac:
	* flumotion/component/effects/Makefile.am:
	* flumotion/component/effects/audiorate:
	* flumotion/component/effects/audiorate/Makefile.am:
	* flumotion/component/effects/audiorate/__init__.py:
	* flumotion/component/effects/audiorate/audiorate.py:
	* flumotion/component/effects/audiorate/audiorate.xml:
	Add an effect to resample audio streams

2010-09-07  Xavier Queralt  <xqueralt@flumotion.com>

	* flumotion/component/decoders/generic/generic.xml:
	Remove the deinterlace effect from the decoder for now

2010-09-07  Xavier Queralt  <xqueralt@flumotion.com>

	* flumotion/test/test_wizard_save.py:
	Fix tests to work with the new default configuration

2010-09-07  Xavier Queralt  <xqueralt@flumotion.com>

	patch by: Hiroaki Kawai<kawai@iij.ad.jp>

	* flumotion/component/producers/firewire/wizard_gtk.py:
	Set the deinterlacing method to tomsmocomp instead of the mode.

2010-08-31  Xavier Queralt  <xqueralt@flumotion.com>

	* flumotion/test/test_wizard_save.py:
	Fix tests to work with the new default configuration

2010-08-31  Xavier Queralt  <xqueralt@flumotion.com>

	* configure.ac:
	* pkg/ubuntu-karmic/changelog:
	* pkg/ubuntu-lucid/changelog:
	0.7.0.3 pre-release

2010-08-31  Xavier Queralt  <xqueralt@flumotion.com>

	reviewed by: Andoni Morales

	* flumotion/component/producers/firewire/wizard_gtk.py:
	Default to gstreamer's deinterlace

2010-08-31  Xavier Queralt  <xqueralt@flumotion.com>

	reviewed by: Andoni Morales

	* flumotion/component/producers/firewire/firewire.py:
	Set the name to the decoder so the effects can be plugged properly

2010-08-30  Andoni Morales Alastruey  <amorales@flumotion.com>

	reviewed by: Xavier Queralt

	* pkg/ubuntu-karmic/control:
	* pkg/ubuntu-lucid/control:
	Add missing 'python-dev' build dependency

2010-08-27  Xavier Queralt <xqueralt@gmail.com>

	* configure.ac:
	0.7.0.2 prerelase

2010-08-27  Xavier Queralt <xqueralt@gmail.com>

	* flumotion/admin/gtk/dialogs.py:
	Update the list of authors.

2010-08-27  Xavier Queralt <xqueralt@gmail.com>

	* pkg/ubuntu-karmic/changelog:
	* pkg/ubuntu-karmic/control:
	* pkg/ubuntu-lucid/changelog:
	* pkg/ubuntu-lucid/control:
	Update for the 0.7.0.2 pre-release

2010-08-27  Xavier Queralt <xqueralt@gmail.com>

	reviewed by: Andoni Morales

	* flumotion/component/producers/firewire/firewire.py:
	* flumotion/component/producers/firewire/firewire.xml:
	Factor the dv decoder out so the user can select which decoder the
	component is going to use in the configuration.
	* flumotion/component/producers/firewire/wizard_gtk.py:
	Force the firewire-producer to use the ffdec_dvvideo decoder element
	to improve performance and avoid a couple of bugs in dvdec.
	* flumotion/test/test_wizard_save.py:
	Update tests according to this behaviour.

2010-08-27  Xavier Queralt  <xqueralt@flumotion.com>

	* flumotion/component/feedcomponent.py:
	Set the effect bin to playing otherwise it can lock on getting the
	state.

2010-08-27  Xavier Queralt  <xqueralt@flumotion.com>

	* flumotion/common/config.py:
	* flumotion/common/errors.py:
	* flumotion/common/registry.py:
	Reintroduce (removed in r8746) "description" attribute so Pepe is happy

2010-08-27  Xavier Queralt  <xqueralt@flumotion.com>

	* pkg/ubuntu-lucid/changelog:
	* pkg/ubuntu-lucid/control:
	* pkg/ubuntu-lucid (added):
	Add the packaging files for ubuntu lucid.
	Remove unneeded build-requirements.

2010-08-27  Xavier Queralt  <xqueralt@flumotion.com>

	* flumotion/component/feedcomponent.py:
	Encoders and muxers are not reconfigurable anymore.

2010-08-27  Xavier Queralt  <xqueralt@flumotion.com>

	* flumotion/component/decodercomponent.py:
	* flumotion/component/decoders/generic/generic.xml:
	Enable the videorate, videscale and deinterlace effects to be used
	with the decoder component.

2010-08-27  Xavier Queralt  <xqueralt@flumotion.com>

	* flumotion/component/decoders/generic/generic.py:
	Only use the syncronizer with the A/V decoder. It doesn't make any
	sense when we're only decoding one media type.

2010-08-26  Xavier Queralt  <xqueralt@flumotion.com>

	* flumotion/component/decoders/generic/generic.py:
	Add an element to keep syncronization between video and audio output
	in a way that is consistent with the input timestamps.
	* flumotion/component/feedcomponent.py:
	Improve the way we're rid of old elements in the pipeline and disable
	the reconfiguration in encoders and muxers as it not working well yet.
	* flumotion/component/feedcomponent010.py:
	Allow the subclasses to decide wether they want to receive newsegments
	or not. Used for now by the decoder component to know when a new
	stream arrives.

2010-08-26  Xavier Queralt  <xqueralt@flumotion.com>

	* flumotion/component/Makefile.am:
	How do you expect the tests to pass? Add the new module to tarball.

2010-08-26  Xavier Queralt  <xqueralt@flumotion.com>

	* flumotion/component/decoders/generic/generic.py:
	* flumotion/component/feedcomponent.py:
	* flumotion/component/decodercomponent.py (added):
	Move the generic decoder to a new module

2010-08-26  Andoni Morales Alastruey  <amorales@flumotion.com>

	reviewed by: Xavier Queralt

	* flumotion/component/effects/videoscale/admin_gtk.py:
	* flumotion/component/effects/videoscale/videoscale.glade:
	* flumotion/component/effects/videoscale/videoscale.py:
	* flumotion/component/producers/firewire/firewire.py:
	* flumotion/component/producers/firewire/firewire.xml:
	Add support to keep DAR with black borders

2010-08-09  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/producers/icecast/icecast.py:
	  Make debug log messages on icecast server uniform so they're
	  much easier to grep consistently.

2010-08-04  Xavier Queralt  <xqueralt@flumotion.com>

	* flumotion/component/feedcomponent.py:
	Fix a typpo
	* flumotion/component/feedcomponent010.py:
	Reset headers backlog when we receive a NewSegment event.

2010-08-02  Xavier Queralt  <xqueralt@flumotion.com>

	* flumotion/component/producers/playlist/playlist.py:
	With the default value of clock type (monotonic) we got dates from the
	70s. Set it to realtime so we don't have to wait 40 years to see the
	playlist videos.

2010-08-02  Xavier Queralt  <xqueralt@flumotion.com>

	* flumotion/worker/checks/device.py:
	Use a generic error message instead of the firewire one.

2010-08-02  Xavier Queralt  <xqueralt@flumotion.com>

	* env.in:
	Let env be a symbolic link and figure out the correct path

2010-07-29  Jan Urbanski  <jurbanski@flumotion.com>

	* misc/flu-uninstalled:
	Revert previous mistaken commit.

2010-07-29  Jan Urbanski  <jurbanski@flumotion.com>

	* misc/flu-uninstalled:
	Do not run flu-uninstalled with -i.

2010-07-27  Xavier Queralt <xqueralt@gmail.com>

	* pkg/ubuntu-jaunty/changelog:
	Update development package
	* pkg/ubuntu-jaunty/control:
	Add myself as maitainer

2010-07-27  Xavier Queralt <xqueralt@gmail.com>

	* flumotion/common/config.py:
	Reintroduce the removed (in r8746) "socket" attribute to make
	Julien happy this time.

2010-07-26  Thodoris Paschidis <tpaschidis@flumotion.com>

	* flumotion/test/test_common_watched.py:
	Added some tests to make test complete.

2010-07-26  Thodoris Paschidis <tpaschidis@flumotion.com>

    * flumotion/common/watched.py:
	Minor syntax error change.

2010-07-26  Thodoris Paschidis <tpaschidis@flumotion.com>

	* flumotion/common/watched.py:
	* flumotion/test/test_common_watched.py:
	Wrote unit testing for watched.py and fixed some errors in code.

2010-07-23  Xavier Queralt  <xqueralt@gmail.com>

	* flumotion/manager/config.py:
	Reintroduce the removed (in r8746) "source" tag to make Jan happy.

2010-07-23  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/misc/httpserver/mimetypes.py:
	Add webm to the mimetype mapping.

2010-07-23  Xavier Queralt  <xqueralt@gmail.com>

	* flumotion/common/keycards.py:
	Set the token attribute to an empty string by default so further
	checks of the token's length don't crash

2010-07-23  Xavier Queralt  <xqueralt@gmail.com>

	reviewed by: Jan Urbanski  <jurbanski@flumotion.com>

	* flumotion/common/keycards.py:
	When unjellying the __init__ method is not called and, sadly, the
	attributes that are not common for all the old keycard types are not
	created. Initialize them for backwards compatibility with old
	keycards.

2010-07-23  Xavier Queralt  <xqueralt@gmail.com>

	reviewed by: Jan Urbanski  <jurbanski@flumotion.com>

	* flumotion/component/bouncers/multibouncer.py:
	We still need the old keycard classes to be allowed by the bouncer for
	backwards compatibility

2010-07-23  Xavier Queralt  <xqueralt@gmail.com>

	reviewed by: Jan Urbanski  <jurbanski@flumotion.com>

	* flumotion/component/consumers/httpstreamer/httpstreamer.xml:
	* flumotion/component/misc/httpserver/httpserver.py:
	Warn about deprecated property 'issuer-class' but do not fail.

2010-07-23  Xavier Queralt  <xqueralt@gmail.com>

	patch by: Jan Urbanski  <jurbanski@flumotion.com>

	* flumotion/common/keycards.py:
	Same issue as in r8769, the constructor of the Keycard class was
	overwriting parametersset by the other constructor.

2010-07-23  Xavier Queralt  <xqueralt@gmail.com>

	patch by: Jan Urbanski  <jurbanski@flumotion.com>

	* flumotion/common/keycards.py:
	Reverse the order of constructors, because the credentials.Token
	constructors sets the token property and the Keycard constructor
	overwrites it with None.

2010-07-23  Xavier Queralt  <xqueralt@gmail.com>

	patch by: Zaheer Abbas Merali <zaheerabbas@merali.org>

	* flumotion/common/keycards.py:
	Keycard base class needs to be initialised first, otherwise
	username gets overwritten.

2010-07-23  Xavier Queralt  <xqueralt@gmail.com>

	patch by: Zaheer Abbas Merali <zaheerabbas@merali.org>

	* flumotion/common/keycards.py:
	* flumotion/component/base/http.py:
	* flumotion/component/bouncers/multibouncer.py:
	* flumotion/component/consumers/httpstreamer/httpstreamer.py:
	* flumotion/component/consumers/httpstreamer/httpstreamer.xml:
	* flumotion/component/misc/httpserver/httpserver.py:
	* flumotion/component/misc/httpserver/httpserver.xml:
	* flumotion/test/test_bouncers_ipbouncer.py:
	* flumotion/test/test_http.py:
	* flumotion/test/test_keycards.py:
	* flumotion/test/test_pb.py:
	* flumotion/twisted/pb.py:
	Unify all non-challenge response bouncers to be KeycardGeneric.
	Have just one issuer for streamers (live and ondemand).
	Remove issuer-class from http-streamer and http-server.

2010-07-22  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/common/mimetypes.py:
	Add webm extension.

2009-11-04  Xavier Queralt  <xqueralt@flumotion.com>

	* flumotion/common/registry.py:
	Don't use string interpolation in log methods.
	See #1384

2010-07-19  Xavier Queralt  <xqueralt@flumotion.com>

	* flumotion/component/muxers/muxers.xml:
	Specify the wizard entry for webm-muxer so the checks are run
	* flumotion/component/muxers/webm.py:
	Require gst-plugins-good version 0.10.24 for the webm-muxer

2010-07-19  Xavier Queralt  <xqueralt@flumotion.com>

	reviewed by: zaheer

	* flumotion/admin/assistant/models.py:
	* flumotion/component/producers/firewire/wizard_gtk.py:
	* flumotion/component/producers/webcam/wizard.glade:
	* flumotion/component/producers/webcam/wizard_gtk.py:
	Fetch the devices in the worker to not have to hardcode them into the
	code. Also do not select the max resolution available by default.
	* flumotion/worker/checks/Makefile.am:
	* flumotion/worker/checks/package.xml:
	* flumotion/worker/checks/video.py:
	* flumotion/worker/checks/gst010.py:
	* flumotion/worker/checks/device.py (added):
	Generalize the fetch devices method to support any kind of GStreamer
	element that has a device probe available to fetch the devices (for
	now it is used by firewire and webcam producers).
	Closes #1024

2010-07-19  Xavier Queralt  <xqueralt@flumotion.com>

	* flumotion/admin/gtk/adminwindow.py:
	Use "set_" instead of "set" when adding a listener

2010-07-19  Xavier Queralt  <xqueralt@flumotion.com>

	* flumotion/common/config.py:
	* flumotion/common/keycards.py:
	* flumotion/common/messages.py:
	* flumotion/common/registry.py:
	* flumotion/common/signals.py:
	* flumotion/component/base/baseadminnode.py:
	* flumotion/manager/config.py:
	* flumotion/monitor/nagios/log.py:
	* flumotion/monitor/nagios/process.py:
	* flumotion/test/test_keycards.py:
	* flumotion/twisted/flavors.py:
	Remove deprecated code and support of deprecated configuration
	parameters for Flumotion 0.8

2010-07-15  Jan Urbanski  <jurbanski@flumotion.com>

	* flumotion.spec.in:
	Add BuildRequires necessary for docs building.

2010-07-15  Josep Joan Ribas  <jribas@flumotion.com>

	* flumotion/test/test_manager_config.py:
	* flumotion/test/test_wizard_save.py:
	Fix tests.

2010-07-15  Jan Urbanski  <jurbanski@flumotion.com>

	* flumotion/common/config.py:
	Sometimes the config parser gets passed ints, which breaks automatic
	radix detection.

2010-07-15  Josep Joan Ribas  <jribas@flumotion.com>

	reviewed by: Jan

	* flumotion/common/xmlwriter.py:
	Use utf-8 encoding for writing xml files.
	* flumotion/test/test_common_xmlwriter.py:
	Add new test case for unicode encoding and adapt the old tests.
	Fixes #1443

2010-07-13  Josep Joan Ribas  <jribas@flumotion.com>

	* data/image/36x36 (svn:ignore):
	Add Makefile to svn ignore

2010-07-13  Josep Joan Ribas  <jribas@flumotion.com>

	reviewed by: Xavier Queralt

	* configure.ac:
	* data/image/24x24/Makefile.am:
	* data/image/36x36/Makefile.am:
	* data/image/Makefile.am:
	* flumotion/component/converters/overlay/Makefile.am:
	* flumotion/component/converters/overlay/genimg.py:
	* flumotion/component/converters/overlay/overlay.xml:
	* data/image/24x24/fluendo.png (added):
	* data/image/24x24/cc.png (added):
	* data/image/24x24/xiph.png (added):
	* data/image/36x36 (added):
	* data/image/36x36/fluendo.png (added):
	* data/image/36x36/cc.png (added):
	* data/image/36x36/Makefile.am (added):
	* data/image/36x36/xiph.png (added):
	* flumotion/component/converters/overlay/cc.36x36.png (deleted):
	* flumotion/component/converters/overlay/fluendo.24x24.png (deleted):
	* flumotion/component/converters/overlay/xiph.36x36.png (deleted):
	* flumotion/component/converters/overlay/fluendo.36x36.png (deleted):
	* flumotion/component/converters/overlay/cc.24x24.png (deleted):
	* flumotion/component/converters/overlay/xiph.24x24.png (deleted):
	Move images from the overlay bundle to the shared image directory.
	Closes #1360

2010-07-13  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	reviewed by: Jan

	* configure.ac:
	* flumotion.spec.in:
	* flumotion/common/boot.py:
	Remove stupid configuration time checks that are not needed to build
	flumotion. We already check them at run-time.

2010-07-13  Josep Joan Ribas  <jribas@flumotion.com>

	reviewed by: Xavier Queralt
	patch by: Andoni Morales

	* flumotion/admin/gtk/adminwindow.py:
	* flumotion/admin/gtk/greeter.py:
	If a local manager/worker has been started from the greeter, let the
	user shut them down when closing the admin client. Closes #1005

2010-07-13  Josep Joan Ribas  <jribas@flumotion.com>

	reviewed by: Josep Ribas
	patch by: Andoni Morales

	* flumotion/common/eventcalendar.py:
	* flumotion/test/test_common_eventcalendar.py:
	Handle events with DTSTART+DURATION instead of DTSTART+DTEND.
	Closes #1150

2010-07-13  Jan Urbanski  <jurbanski@flumotion.com>

	* flumotion/component/base/http.py:
	* flumotion/component/consumers/httpstreamer/httpstreamer.py:
	* flumotion/component/consumers/httpstreamer/httpstreamer.xml:
	* flumotion/component/misc/httpserver/httpserver.py:
	* flumotion/component/misc/httpserver/httpserver.xml:
	* flumotion/test/test_http.py:
	Revert r8058, which was reverting r7950. This effectively brings back
	the allow-default property of streaming components.

2010-07-12  David Gay i Tello  <dgay@flumotion.com>

	reviewed by: Zaheer Abbas Merali

	* flumotion/manager/admin.py:
	Add remote call to list a component and its upstream components along with
	types and worker hosts.

2010-07-12  Josep Joan Ribas  <jribas@flumotion.com>

	reviewed by: Marc-Andre Lureau
	patch by: Andoni Morales

	* flumotion/common/eventcalendar.py:
	* flumotion/test/test_common_eventcalendar.py:
	* flumotion/test/test_icalbouncer.py:
	Add ical VTIMEZONE definition parsing. Closes #1377

2010-07-12  Josep Joan Ribas  <jribas@flumotion.com>

	reviewed by: Xavier Queralt

	* flumotion/admin/assistant/models.py:
	Add prefix and requiresPorter properties to the wizard Consumer
	models.
	* flumotion/admin/assistant/save.py:
	Use the Consumer prefix property instead of getting it from the
	consumerType.
	* flumotion/component/consumers/disker/wizard_gtk.py:
	* flumotion/component/consumers/httpstreamer/wizard_gtk.py:
	* flumotion/component/consumers/shout2/wizard_gtk.py:
	* flumotion/scenario/live/wizard_gtk.py:
	Use the Consumer requiresPorter property instead of getting it from
	the consumerType.

2010-07-09  Jan Urbanski  <jurbanski@flumotion.com>

	* flumotion/extern/log/log.py:
	Add comments about keeping the logging module generic.

2010-07-09  Jan Urbanski  <jurbanski@flumotion.com>

	* flumotion/extern/log/log.py:
	Remove mentions of Flumotion from log.py, it should be left as a
	generic module.

2010-07-09  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/feedcomponent010.py:
	Don't throw an exception when DEBUG_BIN_TO_DOT_FILE is not found.

2010-07-08  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	* flumotion/manager/config.py:
	* flumotion/twisted/flavors.py:
	flavours.ManagerComponentState has the type as a value in a dict so we
	need the itemgetter instead of the attrgetter.

2010-07-08  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	* flumotion/component/combiners/composite/composite.xml:
	* flumotion/manager/config.py:
	* flumotion/test/test.xml:
	* flumotion/test/test_admin_config.py:
	* flumotion/test/test_config.py:
	* flumotion/test/test_manager_config.py:
	* flumotion/test/test_registry.py:
	Update tests with deprecated content

2010-07-07  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	* flumotion/test/test_component_httpstreamer.py:
	Remove old test

2010-07-07  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	reviewed by: Jan

	* flumotion/common/common.py:
	* flumotion/component/consumers/httpstreamer/httpstreamer.py:
	* flumotion/component/encoders/theora/theora.py:
	* flumotion/component/producers/firewire/firewire.py:
	* flumotion/twisted/flavors.py:
	Remove deprecated code from Flumotion 0.5

2010-07-07  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	* flumotion/admin/gtk/componentlist.py:
	* flumotion/twisted/flavors.py:
	operator.methodcaller doesn't appear till python2.6, use itemgetter
	instead and a getter method to pb.RemoteCache

2010-07-07  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	reviewed by: Jan

	* flumotion/admin/assistant/configurationwriter.py:
	* flumotion/admin/connections.py:
	* flumotion/admin/gtk/adminwindow.py:
	* flumotion/admin/gtk/componentlist.py:
	* flumotion/common/bugreporter.py:
	* flumotion/common/python.py:
	* flumotion/component/producers/webcam/wizard_gtk.py:
	* flumotion/manager/config.py:
	Remove compatibility code with python <= 2.4

2010-07-07  Andoni Morales Alastruey  <amorales@flumotion.com>

	* flumotion/test/test_component_video_converter.py:
	Add more checks to make the buildbot happy

2010-07-07  Andoni Morales Alastruey  <amorales@flumotion.com>

	* flumotion/test/test_component_video_converter.py:
	Skip video-converter tests if the version of the 'deinterlace' element
	is too old and doesn't have the method property.

2010-07-07  Marc-André Lureau  <mlureau@flumotion.com>

	* flumotion/test/Makefile.am:
	* flumotion/test/test_component_video_converter.py (added):
	Simple tests for video-converter and effects.

2010-07-07  Andoni Morales Alastruey  <amorales@flumotion.com>

	* flumotion/component/converters/video/video.py:
	Use the the public member effectBin, instead of the method call which
	was finally removed.

2010-07-07  Andoni Morales Alastruey  <amorales@flumotion.com>

	reviewed by: Pepe Ribas

	* flumotion/component/producers/firewire/wizard_gtk.py:
	Display the real output width which is different from the 'width'
	argument passed to the scaller

2010-07-07  Andoni Morales Alastruey  <amorales@flumotion.com>

	reviewed by: Pepe Ribas

	* flumotion/component/producers/firewire/wizard_gtk.py:
	Don't update the scale correction when one of the options is toggled,
	only if 'height' or 'is-square' changed.
	Closes #1442

2010-07-07  Andoni Morales Alastruey  <amorales@flumotion.com>

	* flumotion/component/effects/videorate (svn:ignore):
	* flumotion/component/effects/deinterlace (svn:ignore):
	* flumotion/component/converters/video (svn:ignore):
	* flumotion/component/effects/videoscale (svn:ignore):
	Add missing files to svn:ignore

2010-07-07  Andoni Morales Alastruey  <amorales@flumotion.com>

	* flumotion/component/effects/videorate/videorate.py:
	Use 2 parameters in gst.Fraction to be compatible with older versions

2010-07-02  Andoni Morales Alastruey  <amorales@flumotion.com>

	reviewed by: Marc-Andre Lureau

	* flumotion/admin/gtk/overlaystep.py:
	* flumotion/component/converters/overlay/overlay.py:
	* flumotion/component/converters/overlay/overlay.xml:
	overlay: add suport for dynamic changes using the input stream
	caps.

	Former overlay component needs to know beforehand both the
	width and height of the imput stream to generate the image to
	overlay. The new implementation uses the caps of the input stream
	and generates a new image on each change, pushing buffer at the
	input framerate.

	admin: don't set width and height in the overlay component,
	it's now deprecated.
	Closes #1441

2010-07-02  Andoni Morales Alastruey  <amorales@flumotion.com>

	reviewed by: Marc-Andre Lureau

	* flumotion/component/producers/firewire/firewire.py:
	Check properties in class method check_properites()

2010-07-02  Andoni Morales Alastruey  <amorales@flumotion.com>

	reviewed by: Marc-Andre Lureau

	* configure.ac:
	* flumotion/component/converters/Makefile.am:
	* flumotion/component/converters/video/Makefile.am (added):
	* flumotion/component/converters/video/__init__.py (added):
	* flumotion/component/converters/video/video.py (added):
	* flumotion/component/converters/video/video.xml (added):
	Add video-converter element.
	Closes #1440

2010-07-02  Andoni Morales Alastruey  <amorales@flumotion.com>

	reviewed by: Marc-Andre Lureau

	* flumotion/component/producers/firewire/firewire.py:
	* flumotion/component/producers/firewire/firewire.xml:
	Add videorate effect to firewire producer.
	Closes #1439

2010-07-02  Andoni Morales Alastruey  <amorales@flumotion.com>

	reviewed by: Marc-Andre Lureau

	* configure.ac:
	* flumotion/component/effects/Makefile.am:
	* flumotion/component/effects/videorate/Makefile.am (added):
	* flumotion/component/effects/videorate/__init__.py (added):
	* flumotion/component/effects/videorate/videorate.py (added):
	* flumotion/component/effects/videorate/videorate.xml (added):
	Add videorate effect.
	Closes #1438

2010-07-02  Marc-André Lureau  <mlureau@flumotion.com>

	reviewed by: Andoni Morales

	* flumotion/component/producers/firewire/admin_gtk.py:
	* flumotion/component/producers/firewire/firewire.py:
	* flumotion/component/producers/firewire/firewire.xml:
	* flumotion/component/producers/firewire/wizard_gtk.py:
	firewire: add videoscale effect

	The admin GTK Node is disabled, because live changes causes
	some troubles even with the usage of "flumotion-reset" signal.
	It can still be enabled with FLU_VIDEOSCALE_DEBUG.

	Don't force any output size to allow passthrough, if no width and
	no height given.

2010-07-02  Marc-André Lureau  <mlureau@flumotion.com>

	reviewed by: Andoni Morales

	* configure.ac:
	* flumotion/component/effects/Makefile.am:
	* flumotion/component/effects/videoscale/Makefile.am (added):
	* flumotion/component/effects/videoscale/__init__.py (added):
	* flumotion/component/effects/videoscale/admin_gtk.py (added):
	* flumotion/component/effects/videoscale/videoscale.glade (added):
	* flumotion/component/effects/videoscale/videoscale.py (added):
	* flumotion/component/effects/videoscale/videoscale.xml (added):
	effects: add videoscale effect

	The videoscale effect allow resizing a video, while keeping
	aspect-ratio. It also ensures video width is a multiple of 8.

	If you use "is-square" 1/1 aspect-ratio, you should only
	specify either width or height.

	The admin UI is not well tested, in particular when applying
	changes while running, the downstream elements don't react
	very well (they become hungry or may crash). It is advised not
	show it in the admin UI for now.

	Calculate scale correction on each videoscale source caps
	change.
	Closes #1437

2010-07-01  Andoni Morales Alastruey  <amorales@flumotion.com>

	reviewed by: Marc-Andre Lureau

	* flumotion/component/producers/firewire/admin_gtk.py:
	* flumotion/component/producers/firewire/firewire.py:
	* flumotion/component/producers/firewire/firewire.xml:
	Add deinterlacer effect to the firewire producer
	Removed all the scalling tricks used to reduce the interlace
	artifacts, no needed anymore with the deinterlacer.

2010-07-01  Andoni Morales Alastruey  <amorales@flumotion.com>

	reviewed by: Marc-Andre Lureau

	* configure.ac:
	* flumotion/component/effects/Makefile.am:
	* flumotion/component/effects/deinterlace/Makefile.am:
	* flumotion/component/effects/deinterlace/__init__.py:
	* flumotion/component/effects/deinterlace/admin_gtk.py:
	* flumotion/component/effects/deinterlace/deinterlace.glade:
	* flumotion/component/effects/deinterlace/deinterlace.py:
	* flumotion/component/effects/deinterlace/deinterlace.xml:
	Add deinterlace effect
	Closes #1436

2010-07-01  Andoni Morales Alastruey  <amorales@flumotion.com>

	reviewed by: Marc-Andre Lureau

	* flumotion/component/component.py:
	Add new API to warn about deprecated properites

2010-07-01  Andoni Morales Alastruey  <amorales@flumotion.com>

	reviewed by: Marc-Andre Lureau

	* flumotion/component/feedcomponent.py:
	Add a new class for pluggable post processing effect

2010-07-05  Jan Urbanski  <jurbanski@flumotion.com>

	reviewed by: Sébastien Merle  <sebastien@flumotion.com>

	* flumotion/admin/command/component.py:
	Add a -r/--raw-output option to flumotion-command component
	invoke. When passed, it will prevent decorating and pretty-printing of
	the output. Useful if the invoked method returns binary data.

2010-06-30  Josep Joan Ribas  <jribas@flumotion.com>

	reviewed by: Jan Urbanski

	* flumotion/monitor/nagios/stream.py:
	Print errors fetching a segment in stdout instead of stderr.

2010-06-29  Aitor Guevara Escalante  <aitor@flumotion.com>

	* flumotion/manager/admin.py:
	Reusing code to build avatarIds. Component method invocation
	through pb now checks if the component exists first.

2010-06-29  Aitor Guevara Escalante  <aitor@flumotion.com>

	* flumotion/manager/admin.py:
	Added component method invocation through managers pb remote call.

2010-06-28  Julien Le Goff  <jlegoff@flumotion.com>

	* flumotion/admin/command/component.py:
	Add new command to get upstream components from a component id.

2010-06-25  Josep Joan Ribas  <jribas@flumotion.com>

	reviewed by: Xavier Queralt

	* flumotion/common/componentui.py:
	* flumotion/common/registry.py:
	* flumotion/component/consumers/httpstreamer/httpstreamer.xml:
	* flumotion/component/consumers/shout2/shout2.xml:
	* flumotion/scenario/steps/consumptionsteps.py:
	Add rank to wizard entries to set preferred consumers.
	Use accepted-format in consumers wizard entries to know if the
	consumer can be shown in the assistant.

2010-06-22  Jan Urbanski  <jurbanski@flumotion.com>

	reviewed by: Alvin Delagon

	* flumotion/component/misc/porter/porter.py:
	* flumotion/component/misc/porter/porter.xml:
	Add a new porter property, require-password. If set to False the porter
	does not perform user/password checking on component socket
	connections. Defaults to True.

2010-06-21  Josep Joan Ribas  <jribas@flumotion.com>

	* flumotion/test/test_registry.py:
	Fix tests.

2010-06-21  Josep Joan Ribas  <jribas@flumotion.com>

	reviewed by: Jan Urbanski

	* flumotion/common/registry.py:
	When a new version of flumotion gets installed, running managers
	reread the xml files but old code is used for parsing.
	Reload registry module is required to avoid inconsistencies between
	the reread registry xmls and the python module.

2010-06-21  Jan Urbanski  <jurbanski@flumotion.com>

	* flumotion/extern/log/log.py:
	* flumotion/extern/log/test_log.py:
	Make adapting the same logger multiple times a noop.

2010-06-18  Julien Le Goff  <jlegoff@flumotion.com>

	* flumotion/admin/command/component.py:
	Add a command to get the components list along with their types
	and the host they are running on.

2010-06-17  Josep Joan Ribas  <jribas@flumotion.com>

	* flumotion/test/test_wizard_save.py:
	Fix tests.

2010-06-17  Josep Joan Ribas  <jribas@flumotion.com>

	reviewed by: Julien Le Goff

	* data/glade/Makefile.am:
	* data/glade/consumption-wizard.glade:
	* flumotion/admin/assistant/interfaces.py:
	* flumotion/common/registry.py:
	* flumotion/component/consumers/disker/Makefile.am:
	* flumotion/component/consumers/disker/disker.xml:
	* flumotion/component/consumers/httpstreamer/Makefile.am:
	* flumotion/component/consumers/httpstreamer/httpstreamer.xml:
	* flumotion/component/consumers/shout2/Makefile.am:
	* flumotion/component/consumers/shout2/shout2.xml:
	* flumotion/scenario/steps/Makefile.am:
	* flumotion/scenario/steps/steps.xml:
	* flumotion/component/consumers/disker/wizard.glade (added):
	* flumotion/component/consumers/disker/wizard_gtk.py (added):
	* flumotion/component/consumers/httpstreamer/wizard.glade (added):
	* flumotion/component/consumers/httpstreamer/wizard_gtk.py (added):
	* flumotion/component/consumers/shout2/wizard.glade (added):
	* flumotion/component/consumers/shout2/wizard_gtk.py (added):
	* data/glade/disker-wizard.glade (deleted):
	* data/glade/shout2-wizard.glade (deleted):
	* data/glade/httpstreamer-wizard.glade (deleted):
	* flumotion/scenario/steps/diskersteps.py (deleted):
	* flumotion/scenario/steps/httpstreamersteps.py (deleted):
	* flumotion/scenario/steps/shout2steps.py (deleted):
	Move consumption steps (httpstreamer, shout2 and disker) to the component
	bundles they belong to. See #1297
	* flumotion/scenario/steps/consumptionsteps.py:
	* flumotion/scenario/steps/conversionsteps.py:
	Load consumption steps dynamically from the bundles.

2010-06-16  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	* flumotion/component/decoders/generic/generic.py:
	Set a empty list as default blacklist

2010-06-14  Andoni Morales Alastruey  <amorales@flumotion.com>

	reviewed by: Jan Urbanski
	* flumotion/monitor/nagios/stream.py:
	Check for errors fetching a segment and raise the appropiate nagios
	warning/error.

2010-06-14  Jan Urbanski  <jurbanski@flumotion.com>

	* flumotion/common/config.py:
	Make integer properties be interpreted taking the radix into account
	using normal Python integer literal rules.
	* flumotion/component/misc/porter/porter.py:
	* flumotion/component/misc/porter/porter.xml:
	Re-add socket-mode, as it now gets interpreted correctly.

2010-06-14  Jan Urbanski  <jurbanski@flumotion.com>

	* flumotion/component/misc/porter/porter.py:
	* flumotion/component/misc/porter/porter.xml:
	Revert previous patch, octal values are being interpreted as integer
	when read from the configuration.

2010-06-14  Jan Urbanski  <jurbanski@flumotion.com>

	* flumotion/component/misc/porter/porter.xml:
	Add a socket-mode property that specifies the permissions of the porter
	socket (in octal), defaulting to 0666.
	* flumotion/component/misc/porter/porter.py:
	Use the socket-mode property.

2010-06-14  Jan Urbanski  <jurbanski@flumotion.com>

	patch by: Alvin Delagon

	* 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-nagios.in:
	* bin/flumotion-rrdmon.in:
	* bin/flumotion-tester.in:
	* bin/flumotion-worker.in:
	* bin/flumotion.in:
	Check for .git in addition to .svn to run uninstalled Flumotion from a
	git clone.

2010-06-14  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	reviewed by: Josep Joan Ribas

	* flumotion/component/decoders/generic/generic.py:
	* flumotion/component/decoders/generic/generic.xml:
	Add a blacklist property to forbid the use of GStreamer elements when
	decoding.

2010-06-11  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	* flumotion/tester/httpclient.py:
	And delete old commented old-style raises

2010-06-11  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	* flumotion/tester/httpclient.py:
	Don't raise an string as it is not allowed in python2.6 and wіll fail

2010-06-11  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/feedcomponent.py:
	Add remote method to trigger dumping a graphviz dot file of the
	GStreamer pipeline. The job still needs to run with the
	GST_DEBUG_DUMP_DOT_DIR environment variable set.

2010-06-11  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	* flumotion.doap:
	Update for 0.6.1 release.

2010-06-11  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/feedcomponent010.py:
	Add method to dump a graphviz dot file.
	Run it on state change.
	Only gets run if GST_DEBUG_DUMP_DOT_DIR environment is set.

2010-06-11  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	* flumotion/admin/gtk/dialogs.py:
	Update the list of authors.

2010-06-10  Andoni Morales Alastruey  <amorales@flumotion.com>

	reviewed by: Xavier Queralt

	* flumotion/component/converters/overlay/genimg.py:
	'get_data()' is in pycairo since 1.2.6. replace it with
	'get_data_as_rgba()' for earlier versions.

2010-06-10  Xavier Queralt Mateu  <xqueralt@flumotion.com>

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

2010-06-10  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	reviewed by: Josep Ribas

	* flumotion/component/producers/webcam/wizard_gtk.py:
	* flumotion/worker/checks/video.py:
	Parse the FractionRange with the available framerates in the webcam
	check instead of just offering the high value which can quite annoying
	sometimes. Fixes #1425

2010-06-09  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	reviewed by: Jan Urbanski

	* flumotion/manager/admin.py:
	* flumotion/manager/manager.py:
	Add new remote method: invokeOnComponents to invoke a method on
	all components of a specified type.

2010-06-09  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	reviewed by: Zaheer Abbas Merali

	* flumotion/component/eater.py:
	* flumotion/component/feedcomponent.py:
	* flumotion/component/feedcomponent010.py:
	The decoder component needs the streamheader after at start and after
	each reset. Now it will keep track of the IN_CAPS buffers which would be
	dropped otherwise and send them downstream if needed after a reset.

2010-06-09  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	reviewed by: Zaheer Abbas Merali

	* flumotion/component/feedcomponent.py:
	Don't pass the reset event downstream when the component has the pads
	disconnected.

2010-06-09  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/muxers/webm.py:
	Use streamable property not indexed as it has changed in upstream
	git.

2010-06-09  Zaheer Abbas Merali  <zaheerabbas@merali.org>

	* flumotion/component/consumers/httpstreamer/httpstreamer.py:
	Add remote call to remove all clients.

2010-06-09  Jan Urbanski  <jurbanski@flumotion.com>

	* common/validate-registry.py:
	There is no reason why sockets should be instantiable. There once was,
	when the sockets were something more than just an identifier.

2010-06-08  Jan Urbanski  <jurbanski@flumotion.com>

	* flumotion/component/bouncers/multibouncer.py:
	Register the algorithm plugs in the static bouncer before starting them,
	otherwise if the setup of the plug takes a long time, setMedium
	can get called before that and then its remote interface will not get exposed.

2010-06-08  Jan Urbanski  <jurbanski@flumotion.com>

	* flumotion/component/bouncers/algorithms/icalbouncer.xml:
	* flumotion/component/bouncers/algorithms/ipbouncer.xml:
	* flumotion/component/bouncers/algorithms/tokentest.xml:
	* flumotion/component/bouncers/base.py:
	* flumotion/component/bouncers/multibouncer.xml:
	* flumotion/component/consumers/httpstreamer/httpstreamer.xml:
	* flumotion/component/misc/httpserver/httpserver.xml:
	Fix the socket name.

	* flumotion/component/consumers/httpstreamer/httpstreamer.py:
        Use the function from the correct module.

2010-06-08  Jan Urbanski  <jurbanski@flumotion.com>

	* flumotion/component/consumers/disker/disker.py:
	* flumotion/component/consumers/httpstreamer/httpstreamer.py:
	Don't use the newly added element_has_property, but the older
	element_factory_has_property to avoid bundling issues with recent managers
	vs not-so-recent workers.

2010-06-08  Jan Urbanski  <jurbanski@flumotion.com>

	* flumotion/component/consumers/httpstreamer/httpstreamer.py:
	Can't use a function from the common module in a bundled module.

2010-06-08  Jan Urbanski  <jurbanski@flumotion.com>

	* flumotion/component/base/http.py:
	Move the BOUNCER_SOCKET constant to the base module to avoid having to
	put flumotion.component.bouncers.component in the bundles for
	http-server and http-streamer.

2010-06-07  Andoni Morales Alastruey  <amorales@flumotion.com>

	reviewed by: Xavier Queralt

	* configure.ac:
	Remove pycairo check from configure. It's a runtime dependency and
	should be handled by packagers, as it was done for PIL.

2010-06-07  Jan Urbanski  <jurbanski@flumotion.com>

	* flumotion/component/component.py:
	Make returning None as the plug remote methods namespace expose the
	remote methods with their original names.

2010-06-07  Andoni Morales Alastruey  <amorales@flumotion.com>

	reviewed by: Josep Ribas

	* pkg/ubuntu-gutsy (deleted):
	* pkg/ubuntu-gutsy/changelog (deleted):
	* pkg/ubuntu-gutsy/control (deleted):
	Remove gutsy package, not supported anymore by ubuntu.

2010-06-07  Andoni Morales Alastruey  <amorales@flumotion.com>

	reviewed by: Josep Ribas

	* pkg/debian-common/control:
	* pkg/ubuntu-gutsy/control:
	* pkg/ubuntu-hardy/control:
	* pkg/ubuntu-intrepid/control:
	* pkg/ubuntu-jaunty/control:
	* pkg/ubuntu-karmic/control:
	Update debian packages to switch the dependency between PIL and cairo

2010-06-07  Andoni Morales Alastruey  <amorales@flumotion.com>

	reviewed by: Josep Ribas

	* README:
	* configure.ac:
	* flumotion.spec.in:
	* flumotion/admin/gtk/overlaystep.py:
	* flumotion/component/converters/overlay/Makefile.am:
	* flumotion/component/converters/overlay/genimg.py:
	* flumotion/component/converters/overlay/overlay.py:
	* flumotion/component/converters/overlay/overlay.xml:
	* flumotion/component/converters/overlay/Vera.ttf (deleted):
	Replace PIL by Cairo to render the overlayed image. The font is now
	configurable with a property and there is no need to distrubute it
	with the sources.
	Fixes #1386

2010-06-05  Alvin Delagon  <adelagon@flumotion.com>

	patch by: jurbanski

	* flumotion.spec.in:
	Add pyparsing to requires.

2010-06-04  Alvin Delagon  <adelagon@flumotion.com>

	* flumotion/component/bouncers/algorithms/Makefile.am:
	* flumotion/component/bouncers/algorithms (svn:ignore):
	Add ignores and fix some syntax errors in the Makefile

2010-06-03  Jan Urbanski  <jurbanski@flumotion.com>

	reviewed by: Julien Le Goff

	* flumotion/extern/log/log.py:
	* flumotion/extern/log/test_log.py:
	Add a way to integrate libraries using the standard Python logging
	module with the Flumotion logging.

2010-06-03  Alvin Delagon  <adelagon@flumotion.com>

	patch by: jurbanski

	* flumotion/component/bouncers/algorithms/icalbouncer.xml:
	* flumotion/component/bouncers/algorithms/ipbouncer.xml:
	* flumotion/component/bouncers/algorithms/tokentest.xml:
	* flumotion/component/bouncers/base.py:
	* flumotion/component/bouncers/multibouncer.xml:
	* flumotion/component/consumers/httpstreamer/httpstreamer.xml:
	* flumotion/component/misc/httpserver/httpserver.xml:
	Correct the BouncerAlgorithm socket path.

2010-06-03  Alvin Delagon  <adelagon@flumotion.com>

	* flumotion/component/bouncers/algorithms/icalbouncer.xml:
	* flumotion/component/bouncers/algorithms/ipbouncer.xml:
	* flumotion/component/bouncers/algorithms/tokentest.xml:
	* flumotion/component/bouncers/multibouncer.xml:
	* flumotion/component/consumers/httpstreamer/httpstreamer.xml:
	* flumotion/component/misc/httpserver/httpserver.xml:
	The flumotion.component.bouncers.algorithms.BouncerAlgorithm
	socket was right all along.

2010-06-03  Alvin Delagon  <adelagon@flumotion.com>

	* flumotion/component/bouncers/algorithms/icalbouncer.xml:
	* flumotion/component/bouncers/algorithms/ipbouncer.xml:
	* flumotion/component/bouncers/algorithms/tokentest.xml:
	* flumotion/component/bouncers/plug.xml:
	Fixed incorrect socket locations.

2010-06-03  Alvin Delagon  <adelagon@flumotion.com>


	* common/validate-registry.py:
	Remove the check where the plug type name should be the
	same as its class name.

	* flumotion/component/bouncers/base.py:
	* flumotion/component/bouncers/multibouncer.xml:
	* flumotion/component/consumers/httpstreamer/httpstreamer.xml:
	* flumotion/component/misc/httpserver/httpserver.xml:
	Fixed the source location of sockets.

2010-06-03  Alvin Delagon <adelagon@flumotion.com>

	patch by: jurbanski

	* flumotion/component/bouncers/combinator.py (added):
	* flumotion/component/bouncers/multibouncerplug.py (added):
	* flumotion/component/bouncers/multibouncerplug.xml (added):
	* flumotion/component/bouncers/multibouncer.py (added):
	* flumotion/component/bouncers/component.xml (added):
	* flumotion/component/bouncers/base.py (added):
	* flumotion/component/bouncers/plug.xml (added):
	* flumotion/component/bouncers/multibouncer.xml (added):
	Added more missing files form multibouncer patch.

2010-06-03  Alvin Delagon  <adelagon@flumotion.com>

	patch by: jurbanski

	* flumotion/component/bouncers/base.xml (added):
	* flumotion/test/test_component_bouncers_bouncer.py (deleted):
	* flumotion/component/bouncers/bouncer.py (deleted):
	* flumotion/component/bouncers/bouncer.xml (deleted):
	* flumotion/component/bouncers/deprecated.xml (deleted):
	* flumotion/component/bouncers/tokentest.py (deleted):
	Added and deleted the files from the multibouncer backport patch.

2010-06-03  Alvin Delagon  <adelagon@flumotion.com>

	patch by: jurbanski

	* flumotion/component/bouncers/algorithms (added):
	* flumotion/component/bouncers/algorithms/tokentest.xml (added):
	* flumotion/component/bouncers/algorithms/base.py (added):
	* flumotion/component/bouncers/algorithms/ipbouncer.xml (added):
	* flumotion/component/bouncers/algorithms/icalbouncer.xml (added):
	* flumotion/component/bouncers/algorithms/__init__.py (added):
	* flumotion/component/bouncers/algorithms/tokentest.py (added):
	* flumotion/component/bouncers/algorithms/base.xml (added):
	* flumotion/component/bouncers/algorithms/Makefile.am (added):
	* flumotion/component/bouncers/algorithms/ipbouncer.py (added):
	* flumotion/component/bouncers/algorithms/icalbouncer.py (added):
	Adding bouncer algorithms.

2010-06-03  Alvin Delagon <adelagon@flumotion.com>

	patch by: jurbanski

	* configure.ac:
	* flumotion/common/watched.py:
	* flumotion/component/base/http.py:
	* flumotion/component/bouncers/Makefile.am:
	* flumotion/component/bouncers/component.py:
	* flumotion/component/bouncers/htpasswdcrypt.py:
	* flumotion/component/bouncers/htpasswdcrypt.xml:
	* flumotion/component/bouncers/icalbouncer.py:
	* flumotion/component/bouncers/icalbouncer.xml:
	* flumotion/component/bouncers/ipbouncer.py:
	* flumotion/component/bouncers/ipbouncer.xml:
	* flumotion/component/bouncers/plug.py:
	* flumotion/component/bouncers/saltsha256.py:
	* flumotion/component/bouncers/saltsha256.xml:
	* flumotion/component/bouncers/tokentest.xml:
	* flumotion/component/bouncers/tokentestbouncer.py:
	* flumotion/component/component.py:
	* flumotion/component/consumers/httpstreamer/httpstreamer.xml:
	* flumotion/component/misc/httpserver/httpserver.xml:
	* flumotion/component/plugs/base.py:
	* flumotion/test/Makefile.am:
	* flumotion/test/bouncertest.py:
	* flumotion/test/test_component_bouncers_bouncer_authsession.py:
	* flumotion/test/test_component_bouncers_component.py:
	* flumotion/test/test_component_bouncers_plug.py:
	* flumotion/test/test_icalbouncer.py:
	* flumotion/test/test_manager_config.py:
	* flumotion/test/test_manager_manager.py:
	Add multi-bouncers. With this you can now combine different
	bouncers into one generic bouncer. I also fixed some pep8
	syntax violations.

2010-06-02  Josep Joan Ribas  <jribas@flumotion.com>

	reviewed by: Xavier Queralt

	* flumotion/ui/wizard.py:
	Clean stack when cleaning future steps.
	Fixes #1383

2010-06-02  Jan Urbanski  <jurbanski@flumotion.com>

	* flumotion/common/python.py:
	Add itertools.chain.from_iterable for python versions < 2.6

2010-06-02  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	* flumotion/component/encoders/Makefile.am:
	Add vp8 to dist

2010-06-02  Julien Le Goff  <jlegoff@flumotion.com>

	reviewed by: Josep Ribas

	* flumotion/common/gstreamer.py:
	* flumotion/component/consumers/disker/disker.py:
	* flumotion/component/consumers/httpstreamer/httpstreamer.py:
	Make disker not resend stream headers. Factor out property checks in
	gstreamer elements.

2010-06-01  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/muxers/muxers.xml:
	Remove non-existent mkv.py from bundle.

2010-06-01  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	reviewed by: Xavier Queralt

	* flumotion/component/encoders/Makefile.am:
	* flumotion/component/encoders/vp8/__init__.py:
	* flumotion/component/encoders/vp8/vp8.py:
	* flumotion/component/encoders/vp8/vp8.xml:
	* flumotion/component/encoders/vp8/wizard.glade:
	* flumotion/component/encoders/vp8/wizard_gtk.py:
	* flumotion/component/muxers/Makefile.am:
	* flumotion/component/muxers/muxers.xml:
	* flumotion/component/muxers/webm.py:
	* flumotion/component/muxers/wizard_gtk.py:
	* flumotion/component/muxers/webm.py (added):
	* flumotion/component/encoders/vp8 (added):
	* flumotion/component/encoders/vp8/vp8.py (added):
	* flumotion/component/encoders/vp8/__init__.py (added):
	* flumotion/component/encoders/vp8/wizard.glade (added):
	* flumotion/component/encoders/vp8/wizard_gtk.py (added):
	* flumotion/component/encoders/vp8/vp8.xml (added):
	WebM/VP8 support, yay!

2010-06-01  Julien Le Goff  <jlegoff@flumotion.com>

	reviewed by: Xavier Queralt

	* flumotion/component/feedcomponent.py:
	Abstract out the link pad creation for muxers.

2010-05-31  Andoni Morales Alastruey  <amorales@flumotion.com>

	reviewed by: Xavier Queralt

	* flumotion/component/converters/overlay/overlay.py:
	Force AYUV format in the 'alphacolor' source caps because videomixer needs
	the same colorspace in all the sink pads. Also add 'endianness' to
	the 'appsrc' source pad caps, needed by 'alphacolor' to negotiate caps
	properly.
	Fixes #1423

2010-05-28  Josep Joan Ribas  <jribas@flumotion.com>

	* flumotion/admin/gtk/workerlist.py:
	Fix wizzard issue when displaying long worker names.

2010-05-28  Xavier Martinez-Hidalgo  <xmartinez@flumotion.com>

	* flumotion/test/test_pb.py:
	Removed debug print.

2010-05-27  Xavier Martinez-Hidalgo  <xmartinez@flumotion.com>

	reviewed by: Jan Urbanski

	* flumotion/common/medium.py:
	* flumotion/test/test_common_medium.py:
	* flumotion/test/test_pb.py:
	* flumotion/twisted/pb.py:
	Reset ping and pingback timeout on successful PB message
	reception.
	Closes #1415.

2010-05-27  Xavier Martinez-Hidalgo  <xmartinez@flumotion.com>

	reviewed by: Jan Urbanski

	* flumotion/common/medium.py:
	* flumotion/test/test_common_medium.py:
	* flumotion/test/test_common_medium.py (added):
	Add test cases for PingingMedium.

	Use an explicit clock in PingingMedium, so that timeouts can be
	tested.

2010-05-26  Xavier Martinez-Hidalgo  <xmartinez@flumotion.com>

	reviewed by: Jan Urbanski

	* flumotion/twisted/compat.py:
	* flumotion/twisted/pb.py:
	Add compatibility code for Twisted 2.5.0 (reactor.seconds).

2010-05-26  Xavier Martinez-Hidalgo  <xmartinez@flumotion.com>

	reviewed by: Jan Urbanski

	* flumotion/test/test_pb.py:
	* flumotion/twisted/pb.py:
	Add test cases for PingableAvatar.

	Use an explicit clock in PingableAvatar, so that timeouts can be
	tested.

2010-05-26  Xavier Martinez-Hidalgo  <xmartinez@flumotion.com>

	* flumotion/test/test_component_feed.py:
	Marked slow test suite.

2010-05-25  Xavier Martinez-Hidalgo  <xmartinez@flumotion.com>

	reviewed by: Sébastien Merle and Julien Le Goff

	* flumotion/component/misc/httpserver/cachedprovider.py:
	* flumotion/test/test_component_providers.py:
	Open and stat cachedprovider source file in a separate thread, as
	it is usually located in a network mount and would block the
	reactor, otherwise.
	Closes #1419.

2010-05-23  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	* flumotion/admin/gtk/connections.py:
	We have RecentConnection objects in the model containing the connection
	information as attributes. Pick only the first column and compare the
	text with the manager attribute.
	Fixes #1421

2010-05-20  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	* flumotion/component/feedcomponent.py:
	Add missing parameter to event probe

2010-05-19  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	* flumotion/component/feedcomponent.py:
	We cannot link pads with this return statement here. Delete it and
	remember to check the code before commiting.

2010-05-19  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	* Makefile.am:
	Add .version to the tarball

2010-05-18  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	* flumotion/component/decoders/generic (svn:ignore):
	* flumotion/component/decoders (svn:ignore):
	Ignore files on newly created directories

2010-05-18  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	reviewed by: Xavier Martinez-Hidalgo

	* configure.ac:
	* flumotion/component/Makefile.am:
	* flumotion/component/decoders (added):
	* flumotion/component/decoders/__init__.py (added):
	* flumotion/component/decoders/decoders.xml (added):
	* flumotion/component/decoders/Makefile.am (added):
	* flumotion/component/decoders/generic (added):
	* flumotion/component/decoders/generic/generic.py (added):
	* flumotion/component/decoders/generic/__init__.py (added):
	* flumotion/component/decoders/generic/Makefile.am (added):
	* flumotion/component/decoders/generic/generic.xml (added):
	Add the generic decoder component (based on sebastien's branch) which
	can decode audio and video from an encoded stream and is aware of
	changes on upstream components.
	* flumotion/component/feedcomponent.py:
	Base class for the decoder component that contains the gstreamer bits

2010-05-18  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	* flumotion/test/test_component_feedcomponent.py:
	Fix the test for real (Remember to "make check" before each commit!!!)

2010-05-18  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	* flumotion/test/test_component_feedcomponent.py:
	Consider the new input queue of the muxers in the test

2010-05-18  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	reviewed by: Jan Urbanski and Zaheer Abbas Merali

	* flumotion/component/encoders/dirac/dirac.py:
	* flumotion/component/encoders/jpeg/jpeg.py:
	* flumotion/component/encoders/mulaw/mulaw.py:
	* flumotion/component/encoders/smoke/smoke.py:
	* flumotion/component/encoders/speex/speex.py:
	* flumotion/component/encoders/theora/theora.py:
	* flumotion/component/encoders/vorbis/vorbis010.py:
	Make the encoders reconfigurable

2010-05-18  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	reviewed by: Jan Urbanski and Zaheer Abbas Merali

	* flumotion/component/base/component.glade:
	* flumotion/component/base/componentnode.py:
	Show the reconfiguration count in admin UI if the component can
	be reconfigured.
	* flumotion/component/feedcomponent.py:
	Add base classes for reconfigurable encoders/muxers.
	Those components will rebuild their inner pipeline when a
	flumotion-reset event is received.

2010-05-18  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	* flumotion/admin/gtk/adminwindow.py:
	Allow to select multiple configuration files from the Import dialog
	Remember the last location of the dialogs

2010-05-17  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/test/test_component_feedcomponent.py:
	Allow tests to be run with the gtk2reactor.

2010-05-17  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	reviewed by: Xavier Queralt

	* flumotion/component/feedcomponent.py:
	* flumotion/component/muxers/multipart.py:
	* flumotion/component/muxers/ogg.py:
	* flumotion/test/test_component_feedcomponent.py:
	Create MuxerComponent class for muxers to inherit.
	This makes muxers link only after receiving data and makes them
	link to the compatible sink pad template according to the caps
	of the data coming in.
	Add test to check pipeline string output is correct.

2010-05-14  Xavier Martinez-Hidalgo  <xmartinez@flumotion.com>

	* flumotion/component/misc/httpserver/httpserver.py:
	Increase httpserver set up messages log level.

2010-05-14  Xavier Martinez-Hidalgo  <xmartinez@flumotion.com>

	* flumotion/component/misc/porter/porter.py:
	Increase porter set up messages log level.

2010-05-13  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/admin/assistant/models.py:
	Fix typo.

2010-05-07  Xavier Martinez-Hidalgo  <xmartinez@flumotion.com>

	reviewed by: Julien Le Goff  <jlegoff@flumotion.com>

	* flumotion/component/misc/httpserver/cachemanager.py:
	* flumotion/test/test_component_providers.py:
	Start and stop plug in LocalPathCachedProvider setup()/teardown().

	This fixes the race condition in the test suite execution, and
	removes the need for the ProcessOutputHelper wrapper.

2010-05-06  Xavier Martinez-Hidalgo  <xmartinez@flumotion.com>

	* flumotion/common/testsuite.py:
	* flumotion/test/test_common_eventcalendar.py:
	* flumotion/test/test_component_disker.py:
	* flumotion/test/test_component_httpserver.py:
	* flumotion/test/test_component_httpserver_httpcached_strategy.py:
	* flumotion/test/test_component_httpstreamer.py:
	* flumotion/test/test_component_padmonitor.py:
	* flumotion/test/test_comptest.py:
	* flumotion/test/test_dialogs.py:
	* flumotion/test/test_greeter.py:
	* flumotion/test/test_server_selector.py:
	* flumotion/test/test_testclasses.py:
	Do not decorate classes.  Support for class decorators was added
	in Python 2.6 (and we support Python >= 2.4).

2010-05-06  Xavier Martinez-Hidalgo  <xmartinez@flumotion.com>

	reviewed by: Sébastien Merle  <sebastien@flumotion.com>

	* flumotion/test/bouncertest.py:
	* flumotion/test/test_admin_admin.py:
	* flumotion/test/test_admin_multi.py:
	* flumotion/test/test_cache_manager.py:
	* flumotion/test/test_common_avltree.py:
	* flumotion/test/test_common_bundle.py:
	* flumotion/test/test_common_componentui.py:
	* flumotion/test/test_common_eventcalendar.py:
	* flumotion/test/test_common_process.py:
	* flumotion/test/test_component_disker.py:
	* flumotion/test/test_component_httpserver.py:
	* flumotion/test/test_component_httpserver_httpcached_strategy.py:
	* flumotion/test/test_component_httpstreamer.py:
	* flumotion/test/test_component_padmonitor.py:
	* flumotion/test/test_component_providers.py:
	* flumotion/test/test_comptest.py:
	* flumotion/test/test_defer.py:
	* flumotion/test/test_dialogs.py:
	* flumotion/test/test_greeter.py:
	* flumotion/test/test_pbstream.py:
	* flumotion/test/test_server_selector.py:
	* flumotion/test/test_testclasses.py:
	* flumotion/test/test_twisted_integration.py:
	* flumotion/test/test_ui_fgtk.py:
	Mark slow test cases with @attr('slow').

2010-05-06  Xavier Martinez-Hidalgo  <xmartinez@flumotion.com>

	reviewed by: Sébastien Merle  <sebastien@flumotion.com>

	* common/common.mk:
	* common/trial.mk:
	Add "make quicktest" target to run trial on flumotion.test
	skipping slow tests.

2010-05-06  Xavier Martinez-Hidalgo  <xmartinez@flumotion.com>

	* flumotion/common/testsuite.py:
	Fix local variable name.

2010-05-05  Xavier Martinez-Hidalgo  <xmartinez@flumotion.com>

	reviewed by: Marc-André Lureau  <mlureau@flumotion.com>

	* flumotion/common/testsuite.py:
	Add @attr decorator to testsuite, to help marking test
	suites/cases with an attribute.

	Test suites/cases can be decorated with @attr(todo='wip'),
	@attr(skip='reason'), or @attr('slow') (the last is only supported
	by flumotion-trial).

2010-05-05  Xavier Martinez-Hidalgo  <xmartinez@flumotion.com>

	reviewed by: Marc-André Lureau  <mlureau@flumotion.com>

	* common/flumotion-trial:
	* flumotion/common/testsuite.py:
	Add --skip-slow option to flumotion-trial to skip test suites and
	test cases marked with slow=True.

2010-05-05  Xavier Martinez-Hidalgo  <xmartinez@flumotion.com>

	reviewed by: Marc-André Lureau  <mlureau@flumotion.com>

	* flumotion/component/producers/icecast/icecast.py:
	Use souphttpsrc instead of gnomevfssrc, to avoid blocking on
	socket connect().
	Closes #1420.

2010-04-30  Xavier Martinez-Hidalgo  <xmartinez@flumotion.com>

	* flumotion/component/consumers/httpstreamer/httpstreamer.py:
	Log socket listening and porter login as INFO and include
	interface information.

2010-04-28  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	* flumotion/manager/config.py:
	Use common's versionStringToTuple when parsing the version

2010-04-28  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/manager/config.py:
	  Show unparseable version.

2010-04-27  Xavier Martinez-Hidalgo  <xmartinez@flumotion.com>

	* README:
	* configure.ac:
	* flumotion.spec.in:
	* pkg/debian-common/control:
	* pkg/ubuntu-gutsy/control:
	* pkg/ubuntu-hardy/control:
	* pkg/ubuntu-intrepid/control:
	* pkg/ubuntu-jaunty/control:
	* pkg/ubuntu-karmic/control:
	Bump the required version of Twisted to 2.5.0.
	Closes #1411.

2010-04-27  Xavier Martinez-Hidalgo  <xmartinez@flumotion.com>

	* common/trial.mk:
	Add timing information to "make check" trial output.

2010-04-27  Xavier Martinez-Hidalgo  <xmartinez@flumotion.com>

	* flumotion/test/test_pb.py:
	Fix test_pb.TestTwisted_PortalAuthChallenger in Twisted 8.0.
	Fixes #943.

2010-04-26  Xavier Martinez-Hidalgo  <xmartinez@flumotion.com>

	reviewed by: Jan Urbanski

	* flumotion/common/registry.py:
	* flumotion/test/test_registry.py:
	Rebuild registry when ComponentRegistry() instance is outdated,
	regardless of whether registry cache file is up-to-date.
	Fixes #1395.

2010-04-26  Xavier Martinez-Hidalgo  <xmartinez@flumotion.com>

	reviewed by: Jan Urbanski

	* flumotion/test/test_registry.py:
	Instance ComponentRegistry() with empty path list in test suite

	This avoids building the whole `flumotion` registry during the
	test suite execution, speeding it up by 20x.

	Note that the correctness of `flumotion` registry is already
	checked by validate-registry.py, so we do not need to re-check it
	during test_registry execution (which should only check registry
	code correctness).

2010-04-26  Xavier Martinez-Hidalgo  <xmartinez@flumotion.com>

	reviewed by: Jan Urbanski

	* flumotion/common/registry.py:
	Add paths, prefix, and cachePath keyword args to
	ComponentRegistry.__init__().

	This decouples ComponentRegistry initialization from the
	environment (configure and FLU_PROJECT_PATH), increasing its
	testability.

2010-04-15  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion.spec.in:
	  Since the rpm installs in /etc usually and there is no other way
	  to expand the location where rpm will put sysconf, hardcode it.

2010-04-15  Thomas Vander Stichele  <thomas at apestaart dot org>

	* common/validate-registry.py:
	  Only fail on deprecationwarnings that are ours.

2010-04-15  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/worker/base.py:
	  Log when we create a socket.
	* flumotion/worker/job.py:
	  Add log category to the two heavens that create sockets.

2010-04-14  Sébastien Merle  <sebastien@flumotion.com>

	* flumotion/test/test_import.py:
	Do not try to import everything from external.

2010-04-08  Marc-André Lureau  <mlureau@flumotion.com>

	reviewed by: Sébastien Merle

	* autogen.sh:
	* configure.ac:
	Fix automatic autoconf.
	* flumotion/common/common.py:
	Split version string such as '0.7.0.1-foo'

2010-04-08  Marc-André Lureau  <mlureau@flumotion.com>

	reviewed by: Sébastien Merle

	* configure.ac:
	* flumotion.spec.in:
	Fix flumotion.spec.in broken with version-gen changes.

2010-04-08  Sébastien Merle  <sebastien@flumotion.com>

	* common/common.mk:
	Do not check flumotion/extern with pep8.

2010-04-08  Marc-André Lureau  <mlureau@flumotion.com>

	reviewed by: Sébastien Merle

	* autogen.sh:
	Set default version to 0.7.0.1.
	Overridable with "VERSION=foo autogen.sh"
	Clean .version before autofoo.
	* flumotion/configure/configure.py:
	Split version string such as '0.7.0.1-foo'
	* common/common.mk:
	Make dist-hook use double-colon rule, to be able to add others
	dist-hook rules in different files.
	* common/version-gen (added):
	* Makefile.am:
	* configure.ac:
	* . (svn:ignore):
	Make version from SVN or GIT or tarball release.
	Ignore .version and .tarball-version

2010-04-06  Sébastien Merle  <sebastien@flumotion.com>

	* flumotion/extern/command/command.py:
	Fixed option parsing errors.
	Added a callback for sub-classes special error handling.

2010-04-06  Sébastien Merle  <sebastien@flumotion.com>

	* flumotion/extern/command/command.py:
	* flumotion/extern/command/help2man.py:
	* flumotion/extern/command/help2man.py (added):
	Updated external/command to revision 468.
	Fixed help2man.py to pass pepe8.

2010-04-06  Sébastien Merle  <sebastien@flumotion.com>

	* Makefile.am:
	Fixed the external update target.
	Command find's -prune do not work with -delete.

2010-04-06  Sébastien Merle  <sebastien@flumotion.com>

	reviewed by: Xavier Martinez

	* Makefile.am:
	* flumotion/extern/command/ChangeLog:
	* flumotion/extern/command/README:
	* flumotion/extern/command/__init__.py:
	* flumotion/extern/command/command.py:
	* flumotion/extern/command/test_command.py:
	* flumotion/extern (svn:externals):
	* flumotion/extern/command (added):
	* flumotion/extern/command/test_command.py (added):
	* flumotion/extern/command/command.py (added):
	* flumotion/extern/command/__init__.py (added):
	* flumotion/extern/command/ChangeLog (added):
	* flumotion/extern/command/README (added):
        Changed the SVN external for an export.

2010-03-18  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	* flumotion/component/misc/httpserver/httpfile.py:
	Avoid twisted's deprecation warnings for REAL and fix r8508

2010-03-18  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	* configure.ac:
	Accept version 'SVN-Trunk' in configure

2010-03-18  Xavier Queralt Mateu  <xqueralt@flumotion.com>


	* flumotion/component/misc/httpserver/httpfile.py:
	Avoid twisted's deprecation warnings

2010-03-17  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	* configure.ac:
	Check twisted's version properly.

2010-03-09  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	reviewed by: Xavier Martinez

	* flumotion/admin/command/component.py:
	Fix errback of the delete command. They were never called and the
	failure was not handled.
	Fixes #1404

2010-03-08  Andoni Morales Alastruey  <amorales@flumotion.com>

	reviewed by: Jan Urbanski

	* flumotion/component/base/scheduler.py:
	* flumotion/component/base/watcher.py:
	* flumotion/test/test_component_base_watcher.py:
	Prevent the watcher to stop polling for changes when a
	subscriber raises an Exception.
	Closes #1385

2010-03-03  Josep Joan Ribas  <jribas@flumotion.com>

	* flumotion/component/producers/soundcard/wizard_gtk.py:
	Check if samplerate is tuple or int. Fixes #1371.

2010-03-02  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	* flumotion/scenario/steps/conversionsteps.py:
	Ask the scenario if the stream has audio/video instead of getting the
	producer directly. Sometimes the same producer can offer audio-video or
	they can be already in the flow if we are adding a new stream/format.
	* flumotion/scenario/steps/productionsteps.py:
	Add two methods to set the audio/video producers.
	* flumotion/ui/wizard.py:
	Add a method to clear all the messages in wizard.

2010-03-02  Jan Urbanski  <jurbanski@flumotion.com>

	* flumotion/monitor/nagios/stream.py:
	Fix the flumotion-nagios stream command. In Python2.4 the properties of
	the object returned by urlparse.urlparse() cannot be access by name,
	only by index.

2010-03-02  Josep Joan Ribas  <jribas@flumotion.com>

	* flumotion/test/test_component_httpserver_httpcached_strategy.py:
	Fix tests.

2010-03-02  Josep Joan Ribas  <jribas@flumotion.com>

	* flumotion/admin/gtk/adminwindow.py:
	Reset ComponentView when performing actions on multiple components.

2010-02-25  Sébastien Merle  <sebastien@flumotion.com>

	* flumotion/component/misc/httpserver/httpcached/http_client.py:
	* flumotion/component/misc/httpserver/httpcached/request_manager.py:
	* flumotion/component/misc/httpserver/httpcached/strategy_base.py:
	Added the proxy info in some warning log entries.

2010-02-25  Josep Joan Ribas  <jribas@flumotion.com>

	* flumotion/ui/Makefile.am:
	Remove ondemandbrowser.py

2010-02-25  Josep Joan Ribas  <jribas@flumotion.com>

	* flumotion/component/misc/httpserver/Makefile.am:
	* flumotion/component/misc/httpserver/admin_gtk.py:
	* flumotion/component/misc/httpserver/httpserver.xml:
	* flumotion/component/misc/httpserver/ondemandbrowser.py (added):
	* flumotion/ui/ondemandbrowser.py (deleted):
	Add OndemandBrowser to the httpserver bundle.

2010-02-25  Josep Joan Ribas  <jribas@flumotion.com>

	* data/cortado-template.html:
	Replaced wrong url to get java.

2010-02-25  Josep Joan Ribas  <jribas@flumotion.com>

	* flumotion/component/misc/httpserver/admin_gtk.py:
	Disable OndemandBrowser when serving cortado.

2010-02-24  Josep Joan Ribas  <jribas@flumotion.com>

	reviewed by: xqueralt

	* flumotion/admin/gtk/adminwindow.py:
	* flumotion/admin/gtk/componentlist.py:
	* flumotion/admin/gtk/componentview.py:
	Added support in the admin view when multiple components selected.
	* flumotion/component/component.py:
	Added total memory to the component's uiState.
	* flumotion/component/base/Makefile.am:
	* flumotion/component/base/base.xml:
	* flumotion/component/base/multiple.py (added):
	Added admin view for multiple components.
	Show cpu/memory usage for each component selected.
	Closes #1317

2010-02-24  Josep Joan Ribas  <jribas@flumotion.com>

	reviewed by: xqueralt

	* data/glade/admin.glade:
	* data/glade/sectionwizard.glade:
	* flumotion/admin/gtk/adminwindow.py:
	* flumotion/admin/gtk/message.py:
	Improved the MessageView widget in the admin and wizard views.
	Fixed an issue when moving down the slider in the admin view.

2010-02-18  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	reviewed by: jribas, xqueralt
	patch by: Zaheer Abbas Merali

	* flumotion/component/eater.py:
	* flumotion/component/feedcomponent010.py:
	Fix case where streamheader gets repeated in-stream and causes
	client breakage.

2010-02-16  Andoni Morales Alastruey  <amorales@flumotion.com>

	reviewed by: Julien Le Goff

	* flumotion/component/misc/httpserver/httpfile.py:
	Remove unnecessary comment

2010-02-15  Andoni Morales Alastruey  <amorales@flumotion.com>

	reviewed by: Sebastien Merle

	* flumotion/component/misc/httpserver/cachedprovider.py:
	* flumotion/component/misc/httpserver/httpcached/file_provider.py:
	* flumotion/component/misc/httpserver/localpath.py:
	* flumotion/component/misc/httpserver/localprovider.py:
	Make 'path' from LocalPath a private variable.
	* flumotion/component/misc/httpserver/httpfile.py:
	Use the url path to retrieve the file's metadata information since
	the file's path is not the same for VirtualPath and LocalPath.

2010-02-11  Josep Joan Ribas  <jribas@flumotion.com>

	reviewed by: Zaheer Abbas Merali

	* flumotion/component/consumers/httpstreamer/httpstreamer.py:
	Do not resend streamheader when it changes in the caps.

2010-02-10  Sébastien Merle  <sebastien@flumotion.com>

	* flumotion/component/misc/httpserver/httpcached/strategy_base.py:
	Fixed a bug when temporary files creation failed synchronously.

2010-02-09  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	* flumotion/ui/linkwidget.py:
	Add a fake set_tooltip_text method to LinkWidget for when it is not
	available (it was introduced in PyGTK 2.12)

2010-02-03  Marc-André Lureau  <mlureau@flumotion.com>

	reviewed by: Zaheer Abbas Merali

	* flumotion/monitor/nagios/stream.py:
	Adding a simple nagios check for HLS stream.
	Removing 'token' dead code.

2010-01-22  Julien Le Goff  <jlegoff@flumotion.com>

	* flumotion/component/plugs/manhole.py:
	Fixed syntax error.

2010-01-22  Julien Le Goff  <jlegoff@flumotion.com>

	reviewed by: Sébastien

	* flumotion/component/plugs/manhole.py:
	* flumotion/component/plugs/plugs.xml:
	Created a component manhole based on the manager one.

2010-01-21  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	* flumotion/scenario/steps/conversionsteps.py:
	Forgot to commit the changes in this step at r8454. This will fetch the
	muxer plugin and check the elements the muxer needs in the worker side.

2010-01-21  Josep Joan Ribas  <jribas@flumotion.com>

	reviewed by: xqueralt

	* flumotion/admin/gtk/componentlist.py:
	Sad component names in the admin component list are red
	Closes #990

2010-01-21  Josep Joan Ribas  <jribas@flumotion.com>

	reviewed by: xqueralt

	* flumotion/component/producers/videotest/wizard.glade:
	* flumotion/component/producers/videotest/wizard_gtk.py:
	* data/image/wizard/Makefile.am:
	* data/image/wizard/pattern_blink.png (added):
	* data/image/wizard/pattern_black.png (added):
	* data/image/wizard/pattern_snow.png (added):
	* data/image/wizard/pattern_smpte.png (added):
	Add pattern example images on the video test source wizard page
	Closes #1092

2010-01-20  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	reviewed by: jribas

	* flumotion/component/muxers/Makefile.am:
	* flumotion/component/muxers/base.py (added):
	* flumotion/component/muxers/muxers.xml:
	* flumotion/component/muxers/wizard_gtk.py (added):
	Added wizard plugin to muxers.
	With them, require the elements the muxer needs when the worker changes
	and don't let the user to go forward if the check fails.
	Closes #855

2010-01-19  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	reviewed by: jribas

	* flumotion/admin/gtk/componentlist.py:
	Add a new column showing the worst message icon from the messages the
	component has.
	Closes #341

2010-01-20  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	* data/glade/Makefile.am:
	And another one...

2010-01-20  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	* configure.ac:
	Forgot to rename a file to its new name in last commit.

2010-01-20  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	reviewed by: jribas

	* flumotion/admin/assistant/save.py:
	* flumotion/scenario/Makefile.am:
	* flumotion/scenario/loadflow/Makefile.am:
	* flumotion/scenario/loadflow/loadflow.xml:
	* flumotion/scenario/loadflow/wizard_gtk.py:
	* flumotion/scenario/steps/Makefile.am:
	* flumotion/scenario/steps/loadflowstep.py:
	* flumotion/scenario/steps/steps.xml:
	* +    data/glade/loadflow-wizard.glade (added):
	* +    flumotion/scenario/loadflow (added):
	* +    flumotion/scenario/loadflow/loadflow.xml (added):
	* +    flumotion/scenario/steps/loadflowstep.py (added):
	* data/glade/loadconf-wizard.glade (deleted):
	* flumotion/scenario/loadconfiguration (deleted):
	* flumotion/scenario/loadconfiguration/__init__.py (deleted):
	* flumotion/scenario/loadconfiguration/loadconfiguration.xml (deleted):
	* flumotion/scenario/loadconfiguration/Makefile.am (deleted):
	* flumotion/scenario/loadconfiguration/wizard_gtk.py (deleted):
	* flumotion/scenario/loadflow/loadconfiguration.xml (deleted):
	* flumotion/scenario/steps/loadconfstep.py (deleted):
	Rename loadconfiguration scenario and related to loadflow, it's shorter

2010-01-15  Jan Urbanski  <jurbanski@flumotion.com>

	* doc/man/flumotion-worker.1:
	Fix spelling mistake, thanks to lintian for noticing.

2010-01-14  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	* flumotion/component/producers/soundcard/wizard_gtk.py:
	Use proper message id when calling the getAudioDevices worker check so
	the info message is replaced by an error message if any.
	Fixes #1397

2010-01-07  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/producers/looper/looper.py:
	Replace broken badly named gimme5 remote method with working
	restartLoop remote method.

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

	reviewed by: Jan

	* flumotion/extern/log/log.py:
	Revert previous patch.

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

	reviewed by: Jan

	* flumotion/extern/log/log.py:
	Make Loggable a new style object. Fixes weird issues when mixing
	multi-inheritance with gobject objects.

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

	reviewed by: Zaheer

	* flumotion/admin/gtk/componentlist.py:
	  Also fix the name.
	  Remove CPU from treeview.
	  show-popup-menu is now simply a callback, the menu pops up
	  somewhere else.

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

	reviewed by: Zaheer

	* tests/ComponentsView.py (deleted):
	  Remove old test that wasn't working anymore.
	* flumotion/admin/gtk/componentlist.py:
	  Migrate and update that code into the file straight away to have
	  a better chance at getting updated.

2009-12-10  Zaheer Abbas Merali  <zaheerabbas at merali 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-rrdmon.in:
	* bin/flumotion-tester.in:
	* bin/flumotion-worker.in:
	* bin/flumotion.in:
	Let configure expand the PYTHON macro instead of us hardcoding
	paths in our .in files.

2009-12-08  Jan Urbanski  <jurbanski@flumotion.com>

	* tools/flumotion-completion:
	Remove leftover brace.

2009-12-08  Jan Urbanski  <jurbanski@flumotion.com>

	* tools/flumotion-completion (added):
	Add bash completion functions for flumotion-admin and
	flumotion-command.

2009-12-08  Jan Urbanski  <jurbanski@flumotion.com>

	* flumotion/admin/command/main.py:
	Make flumotion-command use values from the default connections file,
	similar to what has been done for flumotion-admin in r8828.

2009-12-07  Jan Urbanski  <jurbanski@flumotion.com>

	* flumotion/common/process.py:
	Add a force flag to deletePidFile that makes it ignore errors due to
	the pid file not being present.

	* flumotion/service/service.py:
	Always remove the pid file of a process when asked to stop it,
	regardless of whether the stopping was successful or not.
	Remove stale pid files when asked to start a process.

2009-12-04  Sébastien Merle  <sebastien@flumotion.com>

	* flumotion/component/misc/httpserver/httpcached/file_reader.py:
	* flumotion/component/misc/httpserver/httpcached/http_utils.py:
	* flumotion/component/misc/httpserver/httpserver.py:
	* flumotion/test/test_component_httpserver_httpcached_httputils.py:
	Fixed a constant name clash for default values.
	Fixed the URL quoting.
	Removed the admin warning message when path is specified with a plug.

2009-12-03  Xavier Queralt  <xqueralt@flumotion.com>

	* flumotion/test/test_cache_manager.py:
	Fix fillTestCache. The `i' and `filesize' variables were not evaluated
	until the lambda function (callback) was fired. Unfortunately, when ALL
	the callbacks were fired, the last value of those two variables was used
	producing the same tempfiles overwriting them instead of making the
	cache grow.
	* flumotion/test/test_component_httpserver.py:
	Fix a typpo, we add a callback, not an errback

2009-12-03  Jan Urbanski  <jurbanski@flumotion.com>

	* flumotion/monitor/nagios/component.py (added):
	Add a separate component module.
	Add a FlipFlop check that connects to the manager and watches the state
	of a component for a given amout of time. Raises a critical if the mood
	alternates between two extremes (by default: happy and hungry) more
	than the given number of times.

	* flumotion/monitor/nagios/main.py:
	Move the Mood check to the component module.

	* flumotion/monitor/nagios/Makefile.am:
	Dist the new file.

2009-12-03  Jan Urbanski  <jurbanski@flumotion.com>

	* flumotion/monitor/nagios/main.py:
	Do not return an the status twice when failing to connect to a
	manager.
	The errback on manager connection was giving the correct status
	message, but the generic errback was also being fired. Prevent that by
	forwarding a NagiosException to the generic errback.

2009-12-03  Sébastien Merle  <sebastien@flumotion.com>

	* flumotion/component/misc/httpserver/httpserver.py:
	Fixed i18n of the 'path' property warning message.

2009-12-03  Sébastien Merle  <sebastien@flumotion.com>

	* flumotion/component/misc/httpserver/httpserver.py:
	Add a warning message to the http-server component when its property
	path has been set in conjunction with a file provider plug.

2009-12-02  Sébastien Merle  <sebastien@flumotion.com>

	* flumotion/component/misc/httpserver/httpcached/httpcached.xml:
	Fixed fileprovider-httpcached bundle definition.

2009-12-01  Sébastien Merle  <sebastien@flumotion.com>

	* flumotion/component/misc/httpserver/cachemanager.py:
	* flumotion/component/misc/httpserver/httpcached/file_reader.py:
	* flumotion/component/misc/httpserver/httpcached/httpcached.xml:
	* flumotion/component/misc/httpserver/httpcached/request_manager.py:
	* flumotion/component/misc/httpserver/httpcached/strategy_base.py:
	* flumotion/test/test_component_httpserver_httpcached_stats.py:
	Changed some property names and comments.
	Fixed a bug where the relative path only was used to generate the
	cache identifier, this could lead to cache collisions between
	http servers even with different mount-points.

2009-11-27  Guillem Solà  <garanda@flumotion.com>

	reviewed by: xqueralt

	* flumotion/component/producers/audiotest/wizard_gtk.py:
	fix lowercase names in r8413.

2009-11-27  Sébastien Merle  <sebastien@flumotion.com>

	* flumotion/component/misc/httpserver/httpcached/strategy_base.py:
	Fixed a bug when a connection is resumed while buffering.

2009-11-27 Guillem Solà  <garanda@flumotion.com>

	reviewed by: xqueralt

	* flumotion/component/producers/audiotest/admin_gtk.py:
	* flumotion/component/producers/audiotest/audiotest.py:
	* flumotion/component/producers/audiotest/audiotest.xml:
	* flumotion/component/producers/audiotest/wizard.glade:
	* flumotion/component/producers/audiotest/wizard_gtk.py:
	* flumotion/component/producers/videotest/admin_gtk.py:
	* flumotion/component/producers/videotest/wizard_gtk.py:
	* po/ca.po:
	* po/es.po:
	add wave property to audiotest.
	add choose wave in audiotest wizard.
	add blink pattern in videotest wizard.
	Fixes #1387.

2009-11-27  Sébastien Merle  <sebastien@flumotion.com>

	* flumotion/component/misc/httpserver/httpserver.xml:
	* flumotion/component/misc/httpserver/httpcached/strategy_fifo.py
	  (deleted):
	  Removed unused file, and fixed the bundle declaration.

2009-11-27  Sébastien Merle  <sebastien@flumotion.com>

	* flumotion/component/misc/httpserver/httpcached/strategy_base.py:
	* flumotion/test/test_component_httpserver_httpcached_stats.py:
	Put back the buffering for caching sessions, but still pausing.
	Fixed a cleanup bug that made tests fail sometimes.

2009-11-27  Guillem Solà  <garanda@flumotion.com>

	reviewed by: xqueralt

	* flumotion/component/producers/audiotest/wizard.glade:
	* flumotion/component/producers/videotest/wizard.glade:
	fix missing mnemonic wizard keys #1387

2009-11-26  Sébastien Merle  <sebastien@flumotion.com>

	* flumotion/component/misc/httpserver/httpcached/strategy_base.py:
	* flumotion/test/test_component_httpserver_httpcached_strategy.py:
	Do not bufferize data for copy sessions before having a temporary file,
	this could lead to big peaks of memory usage.

2009-11-26  Xavier Queralt  <xqueralt@flumotion.com>

	* configure.ac:
	* flumotion.spec.in:
	Update requirements of pygtk, pygst and gst and use them in the spec

2009-11-24  Xavier Queralt  <xqueralt@flumotion.com>

	* configure.ac:
	* flumotion.spec.in:
	* flumotion/extern/Makefile.am:
	Require at least pygtk 2.10
	* flumotion/ui/trayicon.py:
	Use only gtk.StatusIcon.
	* flumotion/extern/pytrayicon (deleted):
	* flumotion/extern/pytrayicon/pytrayicon.override (deleted):
	* flumotion/extern/pytrayicon/eggtrayicon.h (deleted):
	* flumotion/extern/pytrayicon/pytrayicon.defs (deleted):
	* flumotion/extern/pytrayicon/ltihooks.py (deleted):
	* flumotion/extern/pytrayicon/__init__.py (deleted):
	* flumotion/extern/pytrayicon/pytrayiconmodule.c (deleted):
	* flumotion/extern/pytrayicon/Makefile.am (deleted):
	* flumotion/extern/pytrayicon/config.h (deleted):
	* flumotion/extern/pytrayicon/eggtrayicon.c (deleted):
	Remove pytrayicon.

2009-11-25  Jan Urbanski  <jurbanski@flumotion.com>

	* flumotion/component/consumers/disker/disker.py:
	Do not import IStateCacheableListener from flumotion.twisted.flavors,
	as this module is not bundled. It seems that the price of breaking
	compatibility between old workers and new managers is too high for the
	small gain of having the component implement the interface.

2009-11-25  Marc-André Lureau  <mlureau@flumotion.com>

	* flumotion/test/test_cache_manager.py:
	* flumotion/test/test_component_httpserver_httpcached_stats.py:
	* flumotion/test/test_component_providers.py:
	In t2.0.1, ThreadPool() takes at most 3 arguments.

2009-11-24  Marc-André Lureau  <mlureau@flumotion.com>

	* flumotion/component/misc/httpserver/cachedprovider.py:
	Fix make check on buildbot, wait for CopySession to close().
	* flumotion/test/test_component_httpserver_httpcached_stats.py:
	Don't use hardcoded port, use ListenTCP(0) instead.

2009-11-24  Sébastien Merle  <sebastien@flumotion.com>

	* flumotion/test/test_component_httpserver_httpcached_stats.py:
	* flumotion/test/test_component_httpserver_httpcached_strategy.py:
	Should fix the make check on the build-bot.

2009-11-24  Guillem Solà  <garanda@flumotion.com>

	reviewed by: xqueralt

	* flumotion/component/producers/audiotest/audiotest.py:
	fixed a typo and definition not needed

2009-11-24  Marc-André Lureau  <mlureau@flumotion.com>

	* configure.ac:
	* flumotion/component/misc/httpserver/Makefile.am:
	* flumotion/component/misc/httpserver/cachedprovider.py:
	* flumotion/component/misc/httpserver/cachemanager.py:
	* flumotion/component/misc/httpserver/fileprovider.py:
	* flumotion/component/misc/httpserver/httpcached/Makefile.am:
	* flumotion/component/misc/httpserver/httpcached/common.py:
	* flumotion/component/misc/httpserver/httpcached/file_provider.py:
	* flumotion/component/misc/httpserver/httpcached/file_reader.py:
	* flumotion/component/misc/httpserver/httpcached/http_client.py:
	* flumotion/component/misc/httpserver/httpcached/http_utils.py:
	* flumotion/component/misc/httpserver/httpcached/httpcached.xml:
	* flumotion/component/misc/httpserver/httpcached/request_manager.py:
	* flumotion/component/misc/httpserver/httpcached/resource_manager.py:
	* flumotion/component/misc/httpserver/httpcached/server_selection.py:
	* flumotion/component/misc/httpserver/httpcached/strategy_base.py:
	* flumotion/component/misc/httpserver/httpcached/strategy_basic.py:
	* flumotion/component/misc/httpserver/httpfile.py:
	* flumotion/component/misc/httpserver/httpserver.xml:
	* flumotion/component/misc/httpserver/localpath.py:
	* flumotion/test/Makefile.am:
	* flumotion/test/test_cache_manager.py:
	* flumotion/test/test_component_httpserver_httpcached_strategy.py:
	* flumotion/test/test_component_providers.py:
	* flumotion/test (svn:ignore):
	* flumotion/component/misc/httpserver/httpcached (svn:ignore):
	*  (svnmerge-integrated):
	* flumotion/test/test_component_httpserver_httpcached_strategy.py
	  (added):
	* flumotion/test/test_server_selector.py (added):
	* flumotion/test/test_cache_manager.py (added):
	* flumotion/test/test_component_httpserver_httpcached_stats.py
	  (added):
	* flumotion/test/test_component_httpserver_httpcached_httputils.py
	  (added):
	* flumotion/component/misc/httpserver/cachemanager.py (added):
	* flumotion/component/misc/httpserver/mimetypes.py (added):
	* flumotion/component/misc/httpserver/httpcached (added):
	* flumotion/component/misc/httpserver/httpcached/common.py (added):
	* flumotion/component/misc/httpserver/httpcached/file_provider.py
	  (added):
	* flumotion/component/misc/httpserver/httpcached/server_selection.py
	  (added):
	* flumotion/component/misc/httpserver/httpcached/strategy_base.py
	  (added):
	* flumotion/component/misc/httpserver/httpcached/http_client.py
	  (added):
	* flumotion/component/misc/httpserver/httpcached/__init__.py
	  (added):
	* flumotion/component/misc/httpserver/httpcached/http_utils.py
	  (added):
	* flumotion/component/misc/httpserver/httpcached/httpcached.xml
	  (added):
	* flumotion/component/misc/httpserver/httpcached/file_reader.py
	  (added):
	* flumotion/component/misc/httpserver/httpcached/resource_manager.py
	  (added):
	* flumotion/component/misc/httpserver/httpcached/Makefile.am
	  (added):
	* flumotion/component/misc/httpserver/httpcached/request_manager.py
	  (added):
	* flumotion/component/misc/httpserver/httpcached/strategy_basic.py
	  (added):
	Merged 'fileprovider-httpcached' branch.

2009-11-24  Andoni Morales Alastruey  <amorales@flumotion.com>

	reviewed by: Julien LeGof

	* flumotion/component/base/scheduler.py:
	Catch errors parsing iCalendar files and output a warning
	message to allow reloading a new file.
	Closes #1385

2009-11-24  Xavier Queralt  <xqueralt@flumotion.com>

	* flumotion.spec.in:
	Revert r8360, this change should wait until buildbot is upgraded.

2009-11-24  Jan Urbanski  <jurbanski@flumotion.com>

	* flumotion/component/feedcomponent010.py:
	Revert r8319, dropping IN_CAPS buffers.
	It has been observed that after restarting an upstream component the
	log of the disker worker starts being filled with "buffer probe handler
	is None" messages, which suggests some kind of race where the buffer
	probe handler is set to None, but the probe itself is not removed.
	Reopens #1370.

2009-11-14  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/manager/config.py:
	  Add to docstring.

2009-11-10  Xavier Queralt  <xqueralt@flumotion.com>

	* flumotion/worker/checks/audio.py:
	Fix a pair of stupid copy-paste programming errors that make the
	soundcard worker check to fail from time to time.

2009-11-09  Andoni Morales Alastruey <amorales@flumotion.com>

	reviewed by: Julien Le Gof

	* flumotion/common/eventcalendar.py:
	Parse properly timezones in 'TZID' with a local path
	prepended (e.g.:/mozilla.org/20070129_1/Europe/Madrid)
	* flumotion/test/test_icalbouncer.py:
	Added test for timezones with a local path in 'TZID'
	Closes #1377

2009-11-06 Andoni Morales Alastruey <amorales@flumotion.com>

	reviewed by: Xavier Queralt

	* flumotion/test/test_common_managerspawner.py:
	Disable manager spawner test as they fail in 'fc5_64-quick-t2.0.1'

2009-11-06 Andoni Morales Alastruey <amorales@flumotion.com>

	reviewed by: Xavier Queralt

	* flumotion/common/managerspawner.py:
	Stop properly managers started by the LocalManagerSpawner
	* flumotion/test/Makefile.am:
	* flumotion/test/test_common_managerspawner.py:
	* flumotion/test/test_common_managerspawner.py (added):
	Add a test suite for the LocalManagerSpawner
	Close #1380

2009-11-06  Xavier Queralt  <xqueralt@flumotion.com>

	reviewed by: Julien

	* flumotion/admin/assistant/models.py:
	* flumotion/component/producers/firewire/wizard_gtk.py:
	* flumotion/admin/assistant/save.py:
	Delegate the comparisons to the component models. This way we can
	distinguish between two firewire producers with different guid.
	Fixes #1376

2009-11-05  Jan Urbanski  <jurbanski@flumotion.com>

	* flumotion/extern/log/log.py:
	Move the Unicode encoding logic down to the exception
	handler. Has the same effect as r8216, but avoids encoding
	when not necessary, which for frequently-called code like logging is
	important.
	Tests showed that r8216 amounted to a 10% slowdown of the logging, this
	change brings the lost performance back.

	* flumotion/extern/log/README:
	Document that logging Unicode objects will encode them with UTF-8 prior
	to emitting the log line.

2009-11-04  Xavier Queralt  <xqueralt@flumotion.com>

	* flumotion/admin/gtk/configurationassistant.py:
	Remember the previous step worker when going back on the wizard.
	See #1359

2009-11-04  Jan Urbanski  <jurbanski@flumotion.com>

	patch by: Zaheer Abbas Merali

	* flumotion/component/feedcomponent010.py:
	Drop all IN_CAPS buffers that come in after connecting to a feeder,
	until the first non-IN_CAPS buffer.
	The reason is that when streaming a format that has a streamheader,
	which can appear only at the beginning of a stream, a network glitch
	and a subsequent reconnection will cause the multifdsink of the
	upstream component to repeat the streamheader, which will then break
	the stream for downstream components.
	This is most visible  in a muxer->repeater->disker flow, because
	restarting the repeater will make the streamheader get replayed and the
	file produced by the disker will have the streamheader buffers twice.
	Fixes #1370.

2009-11-04  Jan Urbanski  <jurbanski@flumotion.com>

	patch by: Zaheer Abbas Merali

	* flumotion/component/base/http.py:
	* flumotion/component/consumers/httpstreamer/resources.py:
	* flumotion/component/misc/httpserver/httpfile.py:
	Always send a Connection: close header. Set the header as early as
	possible, to avoid not sendining it when there are errors.

	* flumotion/test/test_component_httpserver.py:
	Test if the Connection: close header always appears.

2009-11-04  Xavier Queralt  <xqueralt@flumotion.com>

	patch by: Andoni Morales

	* flumotion/scenario/steps/loadconfstep.py:
	Don't allow to go forward unless a file has been selected.
	Fixes #1382

2009-11-03  Xavier Queralt  <xqueralt@flumotion.com>

	patch by: Guillem Solà

	* flumotion/component/producers/firewire/wizard_gtk.py:
	Update guid on model in the firewire audio step.
	Fixes #1378

2009-11-03  Marc-André Lureau  <mlureau@flumotion.com>

	reviewed by: Xavier Queralt

	* flumotion/admin/gtk/adminwindow.py:
	Show a dialog when saving configuration fails.
	Closes: #1353

2009-11-03  Marc-André Lureau  <mlureau@flumotion.com>

	reviewed by: Xavier Queralt

	* flumotion/scenario/steps/productionsteps.py:
	Assistant: Production page forgets the producers when going
	backwards.
	Closes: #1345

2009-11-03  Xavier Martinez-Hidalgo  <xmartinez@flumotion.com>

	* flumotion/extern (svn:ignore):
	Ignore command.OLD.

	This gets generated in the buildbot slave when the external
	revision of the command package is changed.

2009-11-03  Xavier Martinez-Hidalgo  <xmartinez@flumotion.com>

	* flumotion/extern (svn:externals):
	Upstream update to command package (r455).

	From upstream log:

	- command.py:
	Fix pep8 error.

	Allow natural formatting of a list, identified by a line that
	starts with a space then a dash.

	Add aliases to the interpreter as well.

	Allow a command with subcommands to implement a specific do()
	as well if no arguments are given.
	Add a method to give you a cmd.Cmd-style object that can be used
	to implement a shell main loop.

2009-11-03  Xavier Queralt  <xqueralt@flumotion.com>

	* configure.ac:
	* data/glade/Makefile.am:
	* flumotion/scenario/Makefile.am:
	* flumotion/scenario/steps/Makefile.am:
	* flumotion/scenario/steps/steps.xml:
	* flumotion/admin/assistant/save.py:
	* data/glade/loadconf-wizard.glade (added):
	* flumotion/scenario/loadconfiguration (added):
	* flumotion/scenario/loadconfiguration/__init__.py (added):
	* flumotion/scenario/loadconfiguration/loadconfiguration.xml (added):
	* flumotion/scenario/loadconfiguration/Makefile.am (added):
	* flumotion/scenario/loadconfiguration/wizard_gtk.py (added):
	* flumotion/scenario/steps/loadconfstep.py (added):
	Add a new scenario that allows to load an existing configuration file.
	Closes #1131

2009-11-02  Xavier Martinez-Hidalgo  <xmartinez@flumotion.com>

	* flumotion/extern (svn:externals):
	Fixes moap/extern/command revision (r451).  Closes #1381.

2009-10-30  Sébastien Merle  <sebastien@flumotion.com>

	* flumotion/launch/main.py:
	* flumotion/launch/parse.py:
	* flumotion/test/Makefile.am:
	* flumotion/test/test_launch_parse.py:
	* flumotion/test/test_launch_parse.py (added):
	Added compound properties support in flumotion-launch.

2009-10-29  Sébastien Merle  <sebastien@flumotion.com>

	* flumotion/component/misc/httpserver/cachedprovider.py:
	Fixed a race condition that made a test fail randomly.

2009-10-16  Xavier Queralt  <xqueralt@flumotion.com>

	reviewed by: Jan

	* flumotion/admin/connections.py:
	* flumotion/admin/gtk/connections.py:
	* flumotion/test/test_admin_connections.py:
	Show manager names in the recent connections dialog.
	Closes #830

2009-10-15  Guillaume Quintard  <guillaume.quintard@flumotion.com>

	reviewed by: Sebastien Merle

	* flumotion/test/test_component_providers.py:
	Correct typos, reactivate testModifySrc, and do not depend on a delay for
	it.

2009-10-15  Xavier Queralt  <xqueralt@flumotion.com>

	* flumotion/component/plugs/cortado/wizard_gtk.py:
	* flumotion/scenario/steps/httpstreamersteps.py:
	* flumotion/ui/plugarea.py:
	Set the checkbutton unsensitive when the required plug is not available
	in the system and show a tooltip explaining what to do to enable it.
	Closes #1349

2009-10-14  Guillaume Quintard  <guillaume.quintard@flumotion.com>

	* flumotion/test/test_component_providers.py:
	Remove all the md5/urandom parts to stick with strings,
	and put testModifySrc in todo state until #1375 is fixed.

2009-10-14  Guillaume Quintard  <guillaume.quintard@flumotion.com>

	* flumotion/test/test_component_providers.py:
	Changes the import to use flumotion.common.python rather than md5 directly

2009-10-14  Guillaume Quintard  <guillaume.quintard@flumotion.com>

	reviewed by: Sebastien Merle

	* flumotion/test/test_component_providers.py:
	Adds a few tests for the cachedProvider

2009-10-13  Xavier Queralt  <xqueralt@flumotion.com>

	reviewed by: Zaheer

	* flumotion/component/producers/firewire/firewire.py:
	Use a drop factor of 1 for framerates greater than 12.5
	Fixes #1369


2009-10-08  Jan Urbanski  <jurbanski@flumotion.com>

	* flumotion/admin/connections.py:
	Always use ConnectionInfo objects to update the PBConnectionInfo with
	the username and the password.
	* flumotion/test/test_admin_connections.py:
	Adapt the tests to the fact that RecentConnections store a
	PBConnectionInfo, not a ConnectionInfo.

2009-10-08  Jan Urbanski  <jurbanski@flumotion.com>

	* flumotion/admin/connections.py:
	Store PBConnectionInfo in RecentConnection instances, not
	ConnectionInfo. A RecentConnection will never contain shell globs, so
	it's safe to parse the ConnectionInfo object into a PBConnectionInfo
	immediately in the constructor.
	Avoids breaking other parts of code due to the change of the
	RecentConnection 'info' instance variable type introduced in r8228.
	Closes #1373.

2009-10-07  Guillaume Quintard  <guillaume.quintard@flumotion.com>

	reviewed by: Zaheer Abbas Merali

	* flumotion/component/base/scheduler.py:
	* flumotion/component/bouncers/icalbouncer.py:
	* flumotion/test/test_icalbouncer.py:
	Revokes keycards in case the new calendar hasn't a current event.
	Closes #1157

2009-10-06  Guillaume Quintard  <guillaume.quintard@flumotion.com>

	reviewed by: Jan Urbanski, Sebastien Merle

	* flumotion/component/bouncers/icalbouncer.py:
	* flumotion/test/test_icalbouncer.py:
	Handles overlapping events in the ical-bouncer and adds the proper tests.
	Closes #1374

2009-10-06  Jan Urbanski  <jurbanski@flumotion.com>

	* flumotion/test/test_common_xdg.py:
	Avoid assertTrue in the tests, for dinosaur-age Twisted compatibility.

2009-10-06  Jan Urbanski  <jurbanski@flumotion.com>

	reviewed by: Sebastien Merle

	* flumotion/admin/connections.py:
	Implement default connection user and password file. The file looked
	for is named 'connections' and should be located in a location
	confirming to the XDG Base Directory spec. Usually, that means
	$HOME/.config/flumotion/connections.

	The format is an XML file containing a <connections> element, followed
	by a list of <connection> elements, that should be similar to the
	format of recent connection files, but can contain shell globs in the
	'host', 'port', 'use_insecure' and 'user' fields.

	Closes #1373.

	* flumotion/test/test_admin_connections.py:
	Extend the existing tests for recent connections and test the new
	default connections functionality.

2009-10-06  Jan Urbanski  <jurbanski@flumotion.com>

	reviewed by: Sebastien Merle

	* flumotion/common/xdg.py (added):
	Add a module implementing parts of the XDG Base Directory
	Specification.
	* flumotion/test/test_common_xdg.py (added):
	Test the new module.
	* flumotion/test/Makefile.am:
	* flumotion/common/Makefile.am:
	Distribute the new files.

2009-10-01  Jan Urbanski  <jurbanski@flumotion.com>

	* flumotion/monitor/nagios/stream.py:
	Make dumps files from failed Nagios checks group readable.

2009-10-01  Jan Urbanski  <jurbanski@flumotion.com>

	* flumotion/ui/fvumeter.py:
	Create a black graphic context instead of using the one from the style.
	Fixes a crash on recent Debian machines.

2009-09-30  Alvin Delagon  <adelagon@flumotion.com>

	reviewed by: Zaheer Abbas Merali

	* flumotion/extern/log/log.py:
	* flumotion/extern/log/test_log.py:
	Add support for non-ascii characters in the log system
	Fixes #1283.

2009-09-28  Alvin Delagon  <adelagon@flumotion.com>

	reviewed by: Jan Urbanski

	* flumotion/component/component.py:
	* flumotion/component/consumers/disker/disker.py:
	Stop the CPU and Memory pollers when there is no uiState observers.
	Closes #1363.

2009-09-22  Xavier Queralt  <xqueralt@flumotion.com>

	reviewed by: jribas

	* flumotion/admin/assistant/save.py:
	Keep track of existing muxers so when adding a new streamer there is no
	need to duplicate them in the flow and another can be reused.
	* flumotion/admin/gtk/adminwindow.py:
	Refractor _runAddNewFormatAssistant used now to add a new streamer too
	and add a new menu to add a new streamer to the flow using the
	existing muxers.
	* flumotion/admin/gtk/basesteps.py:
	Allow having a consumer step to be in a wizard without production steps
	* flumotion/scenario/live/wizard_gtk.py:
	Let the wizard work in 'addstreamer' mode. When an existing muxer is to
	be used notify the saver, create a new one otherwise.
	* flumotion/scenario/steps/conversionsteps.py:
	Add a SelectFormatStep that shows the existing muxers (formats) to use
	with the new streamer.
	* flumotion/scenario/steps/httpstreamersteps.py:
	Add a HTTPGenericStep for when it has not been possible to determine
	the type of a muxer/streamer. Uѕed when component names have not been
	generated by the admin.
	* flumotion/ui/wizard.py:
	Allow having instanced step sections as well as classes
	Closes #997

2009-09-22  Josep Joan Ribas  <jribas@flumotion.com>

	* flumotion/ui/ondemandbrowser.py:
	Context menu not shown if kiwi version < 1.9.22

2009-09-22  Josep Joan Ribas  <jribas@flumotion.com>

	reviewed by: Arek Korbik/Xavi Martinez

	* flumotion/common/errors.py:
	* flumotion/common/vfs.py:
	Improve exception handling.
	* flumotion/common/vfsgio.py:
	* flumotion/common/vfsgnome.py:
	* flumotion/component/misc/httpserver/admin_gtk.py:
	Add Ondemand browser tab to admin.
	* flumotion/component/misc/httpserver/httpserver.glade:
	* flumotion/component/misc/httpserver/httpserver.py:
	* flumotion/component/misc/httpserver/httpserver.xml:
	Add allow-browsing property.
	* flumotion/scenario/steps/ondemandstep.py:
	* flumotion/ui/Makefile.am:
	* flumotion/ui/fileselector.py:
	Improve exception handling.
	* flumotion/ui/ondemandbrowser.py (added):
	New Ondemand browser widget.
	* flumotion/worker/medium.py:
	Improve docstring for remote_ListDirectory.
	Closes #1108.

2009-09-16  Alvin Delagon  <adelagon@flumotion.com>

	* flumotion/component/consumers/disker/Makefile.am:
	Adding status.glade to Makefile.am.

2009-09-16  Alvin Delagon  <adelagon@flumotion.com>

	reviewed by: Arek Korbik/Jan Urbanski

	* flumotion/component/consumers/disker/admin_gtk.py:
	* flumotion/component/consumers/disker/disker.py:
	* flumotion/component/consumers/disker/disker.xml:
	* flumotion/component/consumers/disker/status.glade:
	* flumotion/component/consumers/disker/status.glade (added):
	Show more information on the disker admin.
	Closes #1191.

2009-09-14  Guillaume Quintard  <guillaume.quintard@flumotion.com>

	* doc/man/flumotion-worker.1:
	Corrects the syntax for -FPORTS

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

	* common/as-version.m4:
	  Update to newer version so we can remove m4 ugliness from
	  configure.ac
	  This will probably need following up in the other modules too.
	* configure.ac:
	  Remove m4 ugliness.
	  Add bug location.
	* flumotion.spec.in:
	  Use new release tag variable.

2009-09-11  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/misc/porter/porter.py:
	If config has no external-interface property set, set it to
	same as interface property. This makes any calls to getPorterDetails
	return something meaningful and correct for external-interface.

2009-09-10  Xavier Queralt  <xqueralt@flumotion.com>

	* flumotion/ui/linkwidget.py:
	Set the label of LinkButton.
	Actually, as stated in the documentation setting only the uri should
	be enough but, surprinsingly, this doesn't work with pygtk >=2.16

2009-09-10  Xavier Queralt  <xqueralt@flumotion.com>

	reviewed by: jurbanski

	* flumotion/component/plugs/Makefile.am:
	* flumotion/component/plugs/plugs.xml:
	Add wizard entries for requestlogger and forcedownload plugs
	* flumotion/component/plugs/wizard.glade (added):
	* flumotion/component/plugs/wizard_gtk.py (added):
	Add an UI for two http-server plugs.
	Closes #1337

2009-09-10  Xavier Queralt  <xqueralt@flumotion.com>

	reviewed by: jurbanski

	* data/glade/ondemand-wizard.glade:
	Add the plug area into the ondemand step and remove the static UI for
	the plugs used
	* flumotion/admin/assistant/interfaces.py:
	* flumotion/admin/assistant/models.py:
	Allow deleting a plug from a component
	* flumotion/common/registry.py:
	Add a new wizard plug type to be used by the httpserver plugs
	* flumotion/scenario/steps/ondemandstep.py:
	Get rid of the code that adds and treats the plugs. Do it dynamically
	using a PlugArea
	See #1337

2009-09-10  Xavier Queralt  <xqueralt@flumotion.com>

	* flumotion/component/plugs/adminaction.py:
	* flumotion/component/plugs/request.py:
	Fix a typo. Use errors.PropertyError instead of errors.PropertiesError
	that doesn't exist.

2009-09-10  Alvin Delagon  <adelagon@flumotion.com>

	reviewed by: Jan Urbanski

	* flumotion/twisted/flavors.py:
	Add helper methods that will allow objects to listen on uiState
	observer events.
	Fixes #1357

2009-09-10  Xavier Queralt  <xqueralt@flumotion.com>

	reviewed by: jurbanski

	* data/glade/httpstreamer-wizard.glade:
	* flumotion/admin/assistant/interfaces.py:
	* flumotion/component/plugs/cortado/wizard_gtk.py:
	Adapt cortado plug to the new plugarea
	* flumotion/scenario/steps/httpstreamersteps.py:
	* flumotion/ui/Makefile.am:
	* flumotion/ui/plugarea.py (added):
	Move PlugArea from inside the httpstreamersteps module to its own. So it
	can be used by other steps and generalized.
	See #1337

2009-09-09  Jan Urbanski  <jurbanski@flumotion.com>

	* Makefile.am:
	* common/common.mk:
	Also build .gz packages, some Debian packaging tools only
	understand that format.

	* doc/random/release:
	Mention uploading both .bz2 and .gz.

2009-09-09  Jan Urbanski  <jurbanski@flumotion.com>

	* doc/random/release:
	Refine the release process.

2009-09-09  Jan Urbanski  <jurbanski@flumotion.com>

	* flumotion.doap:
	Update for 0.6.1 release.

2009-09-09  Josep Joan Ribas  <jribas@flumotion.com>

	reviewed by: Julien Le Goff

	* flumotion/scenario/ondemand/wizard_gtk.py:
	* flumotion/scenario/steps/ondemandstep.py:
	Add a porter when creating an ondemand stream using the wizard.
	Closes #994.

2009-09-09  Jan Urbanski  <jurbanski@flumotion.com>

	* flumotion/admin/gtk/dialogs.py:
	Update the list of authors.

2009-09-09  Jan Urbanski  <jurbanski@flumotion.com>

	* flumotion/component/muxers/multipart.py:
	Add warnings about multipart deficiency in gst-plugins-good up to
	0.10.17.
	Closes #1342.

2009-09-09  Jan Urbanski  <jurbanski@flumotion.com>

	* flumotion/component/encoders/mulaw/mulaw.py:
	Force mulaw to be 8000 Hz mono.
	We only support mulaw in multipart and RFC2046 mandates the audio/basic
	content-type of multipart to be 8000 Hz single channel.

2009-09-09  Jan Urbanski  <jurbanski@flumotion.com>

	* flumotion/component/encoders/dirac/dirac.py:
	Add warnings about a bug that existed in schroenc before it was moved
	to gst-plugins-bad and released in 0.10.14.

	* flumotion/component/muxers/checks.py:
	Add warnings about the gdppay bug in gst-plugins-base 0.10.24.
	Closes #1341.

2009-09-07  Jan Urbanski  <jurbanski@flumotion.com>

	patch by: Xavier Queralt  <xqueralt@flumotion.com>

	* doc/man/flumotion-admin.1:
	* doc/man/flumotion-manager.1:
	* doc/man/flumotion-worker.1:
	Document missing command line options in manpages. Closes #1354.

2009-09-07  Jan Urbanski  <jurbanski@flumotion.com>

	* flumotion/component/consumers/disker/disker.py:
	Prevent the disker from starting if the ical-schedule property is set
	and one of the required modules is missing.
	Original coding forgot to raise an exception after adding an Error
	message to the component state, which resulted in a sad disker, but one
	that was still disking.
	Fixes #809.

2009-09-07  Jan Urbanski  <jurbanski@flumotion.com>

	* data/make-dummy-cert:
	Remove bashism from make-dummy-cert (possibly it was just a typo). We
	don't translate the usage message for that script anyway.
	See Debian bug #530971.

2009-09-07  Julien Le Goff  <jlegoff@flumotion.com>

	reviewed by: Jan

	* flumotion/monitor/nagios/stream.py:
	Use the timeout option.

2009-09-03  Guillaume Quintard  <guillaume.quintard@flumotion.com>

	reviewed by: Arek

	* flumotion/component/bouncers/icalbouncer.py:
	* flumotion/component/consumers/disker/disker.py:
	Catch more (possible) exceptions from the icalendar module
	Fixes #1267

2009-09-01  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/gtk/componentlist.py:
	  Remove unused variable. Thanks to Arek for spotting.

2009-09-01  Thomas Vander Stichele  <thomas at apestaart dot org>

	reviewed by: Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/admin/gtk/adminwindow.py:
	* flumotion/admin/gtk/componentlist.py:
	  Allow deletion of sleeping components with no worker logged in.
	  canStart == (canDelete && workers logged in).
	  Fixes #1348.

2009-09-01  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/gtk/componentlist.py:
	  Fix/normalize docstrings.

2009-08-28  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/misc/porter/porter.py:
	Fix initialisation of porter.

2009-08-26  Guillaume Quintard  <guillaume.quintard@flumotion.com>

	reviewed by: xmartinez/jan

	* flumotion/component/misc/httpserver/httpfile.py:
	avoid leaking of sockets in CLOSE_WAIT state
	solves #1327

2009-08-26  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	patch by: Jan Urbanski

	* flumotion/component/misc/porter/porter.py:
	* flumotion/component/misc/porter/porter.xml:
	Add external-interface property for porter.

2009-08-25  Alvin Delagon  <adelagon@flumotion.com>

	reviewed by: Zaheer Abbas Merali

	* flumotion/twisted/integration.py:
	Use tempfile.mkdtemp instead when making testDirs. Fixes #1347.

2009-08-21  Jan Urbanski  <jurbanski@flumotion.com>

	* configure.ac:
	Start the new development series.

2009-08-21  Jan Urbanski  <jurbanski@flumotion.com>

	* configure.ac:
	Back to dev.

=== release 0.6.0 ===

2009-08-21  Jan Urbanski  <jurbanski@flumotion.com>

	* NEWS:
	* RELEASE:
	* configure.ac:
	* flumotion.doap:
	Releasing 0.6.0 "Can Punyetes"

2009-08-21  Jan Urbanski  <jurbanski@flumotion.com>

	* flumotion/admin/gtk/dialogs.py:
	Update the list of authors.

2009-08-20  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/converters/overlay/overlay.py:
	Makes overlay work for > 0.10.23 gst-plugins-base.
	Fixes #1340

2009-08-20  Alvin Delagon  <adelagon@flumotion.com>

	reviewed by: Jan Urbanski

	* flumotion/component/muxers/checks.py:
	* flumotion/component/muxers/ogg.py:
	Add warnings about the oggmuxer bug in gst-plugins base 0.10.24

2009-08-20  Alvin Delagon  <adelagon@flumotion.com>

	reviewed by: Jan Urbanski

	* flumotion/component/consumers/disker/disker.py:
	* flumotion/component/consumers/disker/disker.xml:
	Have the disker overwrite the file if the file exists. Fixes #1339.

2009-08-12  Guillaume Quintard  <guillaume.quintard@flumotion.com>

	* po/fr.po:
	last batch, there are still some flaky or non-translated strings though.

2009-08-12  Guillaume Quintard  <guillaume.quintard@flumotion.com>

	* po/fr.po:
	going on with the french translations...

2009-08-12  Jan Urbanski  <jurbanski@flumotion.com>

	* configure.ac:
	0.5.4.2 prerelase

2009-08-12  Jan Urbanski  <jurbanski@flumotion.com>

	* configure.ac:
	Change the required version of Python to 2.4.0, which unbreaks the
	Python version detection logic in the autotools setup.

2009-08-12  Jan Urbanski  <jurbanski@flumotion.com>

	* data/make-dummy-cert:
	Remove bashism in the usage of the trap shell builtin.
	It made make-dummy-cert fail on systems that use a different shell than
	bash as their system shell, e.g. recent Ubuntus and Debians that use
	dash as the system shell.

2009-08-12  Jan Urbanski  <jurbanski@flumotion.com>

	* README:
	* configure.ac:
	* flumotion.spec.in:
	Bump the required version of Python to 2.4.

2009-08-11  Jan Urbanski  <jurbanski@flumotion.com>

	* flumotion/component/base/http.py:
	* flumotion/component/consumers/httpstreamer/httpstreamer.py:
	* flumotion/component/consumers/httpstreamer/httpstreamer.xml:
	* flumotion/component/misc/httpserver/httpserver.py:
	* flumotion/component/misc/httpserver/httpserver.xml:
	* flumotion/test/test_http.py:
	Revert r7950, the allow-default property of streaming components. There
	is no consensus about what the property should do and how it should be
	named. It may be reintroduced after the 0.6.0 release.

2009-08-10  Jan Urbanski  <jurbanski@flumotion.com>

	patch by: Murray Cumming  <murrayc@openismus.com>

	* data/glade/debug-marker.glade:
	* data/glade/encoding-wizard.glade:
	* data/glade/ondemand-wizard.glade:
	* data/glade/overlay-wizard.glade:
	* data/glade/welcome-wizard.glade:
	* flumotion/admin/gtk/adminwindow.py:
	* flumotion/admin/gtk/greeter.py:
	* flumotion/component/encoders/smoke/smoke.py:
	* flumotion/component/muxers/checks.py:
	* flumotion/component/producers/checks.py:
	* flumotion/component/producers/soundcard/wizard_gtk.py:
	* flumotion/component/producers/videotest/videotest.xml:
	* flumotion/scenario/steps/httpstreamersteps.py:
	* flumotion/ui/fileselector.py:
	* flumotion/worker/checks/audio.py:
	* flumotion/worker/checks/gst010.py:
	Minor improvements to user-visible strings after a review at the
	request of Thomas Vander Stichele.

2009-08-04  Guillaume Quintard  <guillaume.quintard@gmail.com>

	* flumotion/test/test_component_providers.py:
	Changes from assertIsInstance() to failUnless(isinstance())
	for compatibility with the buildbot.

2009-08-04  Guillaume Quintard  <guillaume.quintard@gmail.com>

	reviewed by: xmartinez

	* flumotion/component/misc/httpserver/cachedprovider.py:
	* flumotion/component/misc/httpserver/localpath.py:
	LocalPaths now won't check if the file exist before returning a child as
	the verification is done in the open()
	* flumotion/component/misc/httpserver/localprovider.py:
	For the three previous file, added a reference to the new test suite
	module
	* flumotion/test/test_component_providers.py:
	* flumotion/test/test_component_providers.py (added):
	New test suite for LocalPaths, covering the child and open methods.
	Fixes #1319

2009-08-04  Jan Urbanski  <jurbanski@flumotion.com>

	* flumotion/test/bouncertest.py:
	Add a helper class for writing bouncer tests.

	* flumotion/test/test_bouncers_ipbouncer.py:
	Use the helper class to test the IPBouncer.

2009-08-01  Thomas Vander Stichele  <thomas at apestaart dot org>

	* data/glade/httpstreamer-wizard.glade:
	* data/glade/ondemand-wizard.glade:
	  Change some strings.  Unmark some for translation.

2009-07-31  Guillaume Quintard  <guillaume.quintard@gmail.com>

	reviewed by: xmartinez

	* flumotion/test/test_component_httpserver.py:
	Removes testNotFound and adds a new class (TestNotFound) to cover
	http.NOT_FOUND errors.
	Note: shutil is now an import (used to clean the temp directory)

2009-07-30  Guillaume Quintard  <guillaume.quintard@gmail.com>

	reviewed by: arek

	* flumotion/component/misc/httpserver/localprovider.py:
	Handles the case where a directory of the path is actually a file, so
	httpserver returns a 404 error and not a 500 one.

2009-07-29  Guillaume Quintard  <guillaume.quintard@gmail.com>

	reviewed by: jlegoff

	* flumotion/test/test_component_httpserver.py:
	Adds testNotFound that check we actually get a 404 for an non-existing
	ressource. Plus reactivate testRangeTooBig as it seems to pass

2009-07-27  Xavier Queralt  <xqueralt@flumotion.com>

	* flumotion/component/producers/firewire/wizard.glade:
	Some glade tweaking so the window size and the message view don't affect
	the firewire step appearance.

2009-07-27  Guillaume Quintard  <guillaume.quintard@gmail.com>

	reviewed by: sebastien

	* README: updated to use playbin2 and follow the assistant defaults

2009-07-27  Josep Joan Ribas  <jribas@flumotion.com>

	* flumotion/ui/fileselector.py:
	Add fallback to generic file icon.

2009-07-27  Josep Joan Ribas  <jribas@flumotion.com>

	reviewed by: jlegoff

	* flumotion/worker/checks/check.py:
	Add a worker check for media files. Missing from r8025.

2009-07-27  Josep Joan Ribas  <jribas@flumotion.com>

	reviewed by: jlegoff

	* data/image/wizard/Makefile.am:
	* data/image/wizard/looper.png (added):
	* flumotion/component/producers/looper/Makefile.am:
	* flumotion/component/producers/looper/looper.xml:
	* flumotion/component/producers/looper/wizard.glade (added):
	* flumotion/component/producers/looper/wizard_gtk.py (added):
	Add looper to the production page in the Wizard. Fixes #834.


2009-07-24  Xavier Queralt  <xqueralt@flumotion.com>

	* flumotion/test/test_component_httpserver.py:
	Obviously cortado is not going to be installed always. Install a
	modified getCortadoFilename method to correct this.

2009-07-24  Xavier Queralt  <xqueralt@flumotion.com>

	reviewed by: Jan

	* flumotion/component/plugs/cortado/cortado.py:
	Map the root path to the index page by adding a new child instead of
	checking it for each request. This way the parameters the url can have
	are ignored and don't interfere.
	* flumotion/test/test_component_httpserver.py:
	Unit test cortado plug requests. With and without a GET parameter and
	for an unexistent file.

2009-07-23  Jan Urbanski  <jurbanski@flumotion.com>

	* flumotion/component/misc/httpserver/cachedprovider.py:
	* flumotion/monitor/nagios/stream.py:
	Clean up after Thomas. Revision r7990 made the python module export a
	sha1 name, but the code was still using sha.
	Spurious breakage FTW.

2009-07-23  Jan Urbanski  <jurbanski@flumotion.com>

	* flumotion/test/test_bouncers_ipbouncer.py (added):
	Add IP bouncer unit tests.

2009-07-22  Jan Urbanski  <jurbanski@flumotion.com>

	* data/upgrade-to-0.6.0.xsl (added):
	* data/Makefile.am:
	Add a 0.6.0 upgrade xsl. Fixes #1085.

2009-07-22  Xavier Queralt  <xqueralt@flumotion.com>

	reviewed by: Arek, Jan

	* flumotion/admin/admin.py (AdminClientFactory.clientConnectionLost):
	Fallback to the default behaviour when the extraTenacious attribute has
	been set or the admin has been authenticated before. Stop trying to
	connect otherwise.
	Don't import the whole SSL module only for catching a failure. The
	default message is ok.

2009-07-21  Xavier Queralt  <xqueralt@flumotion.com>

	* flumotion/admin/gtk/adminwindow.py:
	Ignore the NumLock key mask when reading the Ctrl-w combination.
	See #1074

2009-07-20  Xavier Queralt  <xqueralt@flumotion.com>

	* flumotion/common/mimetypes.py:
	Use gio if available when obtaining the application that handles a
	given content-type. GnomeVFS has been deprecated in favour of GIO.
	* flumotion/ui/linkwidget.py:
	Set the uri_hook for the LinkButton so the uri is not opened twice.

2009-07-20  Xavier Martinez-Hidalgo  <xmartinez@flumotion.com>

	reviewed by: Jan Urbanski

	* common/common.mk:
	Preserve PYTHONPATH and FLU_PROJECT_PATH set by ./env in
	check-local-registry.  Properly quote command to delay evaluation
	of PYTHONPATH and FLU_PROJECT_PATH to the context set by ./env.

2009-07-20  Thomas Vander Stichele  <thomas at apestaart dot org>

	* common/epydoc.mk:
	  Also add FLUMOTION_DIR to PYTHONPATH, so that depending projects
	  can build their docs.  Also show the doc generation line, to make
	  it easier to debug.

2009-07-20  Jan Urbanski  <jurbanski@flumotion.com>

	* flumotion/component/misc/httpserver/localpath.py:
	Make sure the .mp4 get a video/mp4 mime type.

2009-07-20  Jan Urbanski  <jurbanski@flumotion.com>

	* flumotion/component/misc/httpserver/httpfile.py:
	Make the default do_prepareBody implementation return an empty header
	string, as documented in the docstring. Returning None worked only by
	accident.

2009-07-20  Jan Urbanski  <jurbanski@flumotion.com>

	reviewed by: Sebastien Merle

	* flumotion/component/misc/httpserver/httpfile.py:
	Ignore malformed start GET parameters when serving FLV or MP4
	files.
	* flumotion/test/test_component_httpserver.py:
	Unit test the new behaviour.

2009-07-20  Jan Urbanski  <jurbanski@flumotion.com>

	reviewed by: Sebastien Merle

	* flumotion/component/misc/httpserver/httpfile.py:
	When splitting the MP4 file fails, serve the file from the
	beginning instead of returning a HTTP 500 error.
	* flumotion/test/test_component_httpserver.py:
	Unit test the new behaviour.

2009-07-20  Jan Urbanski  <jurbanski@flumotion.com>

	reviewed by: Sebastien Merle

	* flumotion/component/misc/httpserver/httpfile.py:
	Always seek in the provider with MP4 files.
	Sometimes the splitting library can return an offset of 0 and
	the provider still needs to seek.

2009-07-20  Jan Urbanski  <jurbanski@flumotion.com>

	reviewed by: Sebastien Merle

	* flumotion/test/test_component_httpserver.py:
	Test the MP4 file handling code in the HTTP server component.

2009-07-20  Jan Urbanski  <jurbanski@flumotion.com>

	reviewed by: Sebastien Merle

	* flumotion/component/misc/httpserver/httpfile.py:
	Add a subclass for handling MP4 files. Implement handling of
	the start GET parameter, tailored after the Apache
	mod_h264_streaming module.
	The handling requires an external Python library mp4seek.

	* flumotion/component/misc/httpserver/httpserver.py:
	Create MP4File resources for video/mp4 files.

2009-07-20  Jan Urbanski  <jurbanski@flumotion.com>

	reviewed by: Sebastien Merle

	* flumotion/component/misc/httpserver/httpfile.py:
	Allow do_prepareBody to return a deferred, that can fire with
	a string. That string will get written to the request before
	further processing.
	Write the header when seeking in FLV files just before
	attaching the producerConsumerProxy, not immediately after the
	seek. If there's an error in later on, we could end up
	returning the FLV header and a HTTP 500 response code to the
	client.

2009-07-20  Jan Urbanski  <jurbanski@flumotion.com>

	reviewed by: Sebastien Merle

	* flumotion/component/misc/httpserver/httpfile.py:
	Augment comments and docstrings to better explain what the
	code is doing.

2009-07-20  Jan Urbanski  <jurbanski@flumotion.com>

	reviewed by: Sebastien Merle

	* flumotion/test/test_component_httpserver.py:
	Test plain HEAD requests.

2009-07-20  Jan Urbanski  <jurbanski@flumotion.com>

	reviewed by: Sebastien Merle

	* flumotion/test/test_http.py:
	Set the default response code to http.OK in the FakeRequest,
	that's what real twisted.web.http.Request does.
	Assert we got http.OK when checking if the request got authorized.

2009-07-20  Jan Urbanski  <jurbanski@flumotion.com>

	reviewed by: Sebastien Merle

	* flumotion/test/test_http.py:
	Generate an id for the keycard in the fake authentication medium.

2009-07-20  Jan Urbanski  <jurbanski@flumotion.com>

	reviewed by: Sebastien Merle

	* flumotion/component/base/http.py:
	Remove deprecated API usage.

2009-07-20  Jan Urbanski  <jurbanski@flumotion.com>

	* flumotion/component/consumers/disker/disker.py:
	Fix usage of N_ and T_ i18n methods. N_ expects a format string, T_
	does the interpolation.

2009-07-20  Jan Urbanski  <jurbanski@flumotion.com>

	* flumotion/component/plugs/rrd.py:
	* flumotion/component/misc/httpserver/httpfile.py:
	Remove unused imports. Thanks, pychecker!

2009-07-20  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/plugs/requestmodifier.py:
	Fix set use as per previous commits.

2009-07-20  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/admin/gtk/configurationassistant.py:
	* flumotion/common/fxml.py:
	* flumotion/component/combiners/switch/switch.py:
	Fix problems in previous commit that was due to my bad
	review on Friday.

2009-07-17  Thomas Vander Stichele  <thomas at apestaart dot org>

	reviewed by: Zaheer Abbas Merali

	* flumotion/common/python.py:
	  Add 'set' name because sets.Set was deprecated in 2.6.
	* flumotion/admin/gtk/configurationassistant.py:
	* flumotion/common/fxml.py:
	* flumotion/common/messages.py:
	* flumotion/common/registry.py:
	* flumotion/component/combiners/switch/switch.py:
	  Adapt.

2009-07-17  Thomas Vander Stichele  <thomas at apestaart dot org>

	reviewed by: Zaheer Abbas Merali

	* flumotion/admin/admin.py:
	* flumotion/common/bundle.py:
	* flumotion/common/python.py:
	* flumotion/component/bouncers/bouncer.py:
	* flumotion/component/bouncers/htpasswdcrypt.py:
	* flumotion/component/bouncers/plug.py:
	* flumotion/component/bouncers/saltsha256.py:
	* flumotion/component/misc/httpserver/cachedprovider.py:
	* flumotion/monitor/nagios/stream.py:
	* flumotion/test/test_common_bundle.py:
	* flumotion/twisted/credentials.py:
	  Fix Python 2.6 DeprecationWarnings for sha and md5
	* common/validate-registry.py:
	  Add a comment with a line to uncomment when warnings are hard to
	  find.

2009-07-17  Xavier Martinez-Hidalgo  <xmartinez@flumotion.com>

	reviewed by: Zaheer Abbas Merali

	* common/pep8.py:
	Do not consider comments which are one a line by itself
	as blank lines and work around bug in Python < 2.6 tokenize.py.
	Fixes #1306.

2009-07-14  Jan Urbanski  <jurbanski@flumotion.com>

	* doc/random/http-ondemand-rendering.rst:
	Fix typos, add some RST formatting.

2009-07-14  Jan Urbanski  <jurbanski@flumotion.com>

	* doc/random/http-ondemand-rendering.rst (added):
	Add documentation explaining how the http-ondemand component renders
	requests.

2009-07-14  Jan Urbanski  <jurbanski@flumotion.com>

	* flumotion/common/errors.py:
	Extend the NoProjectError exception to include additional debug
	message.

	* flumotion/project/project.py:
	Include an additional debug message when raising NoProjectError.
	Fixes #955.

2009-07-13  Jan Urbanski  <jurbanski@flumotion.com>

	* flumotion/component/misc/httpserver/cachedprovider.py:
	Fix debug message that prints cache size in bytes and claims it's in
	megabytes.

2009-07-08  Xavier Queralt  <xqueralt@flumotion.com>

	reviewed by: Julien

	* flumotion/admin/admin.py:
	Make the connection to fail when it's the first time we're connecting
	and stop trying to reconnect.
	Show an useful error message when the connection failed because the
	manager is not using a secure connection (only plain TCP)

	* flumotion/admin/gtk/adminwindow.py:
	Don't quit the application only because the reconnection failed and
	let the model to keep trying to connect.
	Set the window un/sensitive when we are dis/connected and only allow
	to connect to a manager.

	* flumotion/admin/gtk/configurationassistant.py:
	Be aware of the dis/connection to manager and make the assistant
	un/sensitive accordingly.

	* flumotion/admin/gtk/main.py:
	Show the greeter and don't fail cowardly when the connection to the
	manager specified through command line doesn't succeed.
	Fixes #1252, #1315 and #1163


2009-07-08  Jan Urbanski  <jurbanski@flumotion.com>

	* flumotion/component/misc/porter/porter.py:
	Make the porter output two \r\n sequences when returning a Service
	Unavailable response, and a short explanatory text. This mimicks more
	closely what we do when returning Not Found, and not outputting an
	empty line makes conforming clients not process the response code
	(they assume the headers have not been sent fully yet).

2009-07-07  Jan Urbanski  <jurbanski@flumotion.com>

	* flumotion/extern/fdpass/fdpass.c:
	Handle out of memory conditions.
	Raise OSError, not a RuntimeError, when a system call fails.

	* flumotion/twisted/fdserver.py:
	Handle the right exception when trying to read file descriptors.

	* flumotion/worker/base.py:
	Handle the right exception when trying to send file descriptors.

	* flumotion/component/misc/porter/porter.py:
	Handle the exception that can happen when sending the request file
	descriptor to the component by writing a Service Unavailable response
	to the client and dropping the connection.
	Add a logCategory for the porter protocol.
	This is a partial forward-port of [7580].
	Fixes #1167.
	See #1304.

	* flumotion/test/test_porter.py:
	Unit test the new behaviour.

2009-07-01  Alvin Delagon  <adelagon@flumotion.com>

	reviewed by: Jan Urbanski

	* flumotion/manager/admin.py:
	Raise an UnknownComponentError on a remote call to a component that
	no longer exists or has already been deleted.
	Fixes #1243

2009-07-01  Jan Urbanski  <jurbanski@flumotion.com>

	Reviewed by: Arek

	* flumotion/common/boot.py:
	Make it possible to run Flumotion processes under profiling.
	Exporting the FLU_PROFILE environment variable the process
	will be profiled using the statprof module, if it's found.
	Exporting FLU_BUILTIN_PROFILE will use the builtin Python profiler.
	The results are stored in the system's temporary directory when the
	profiled process exits.
	Remove support for the FLU_ATEXIT environment variable kludge that has
	been added in r4060, for the sake of simplicity and cleanliness.

	* flumotion/job/main.py:
	Remove support for the FLU_PROFILE variable, it's now handled in
	boot.py.

2009-07-01  Jan Urbanski  <jurbanski@flumotion.com>

	Reviewed by: Arek

	* flumotion/component/misc/porter/porter.py:
	Make the porter inject a GET parameter into the accepted request before
	passing the file descriptor to the slaved component.
	The parameter is called FLUREQID and its value is a 256-bit random
	number in hexadecimal.
	Since the parameter then shows up in the logs of components processing
	the request, it can be used to track a single request across modules
	and components.

	* flumotion/test/test_porter.py:
	Test the new functionality.

2009-07-01  Alvin Delagon  <adelagon@flumotion.com>

	reviewed by: Zaheer Abbas Merali

	* flumotion/worker/config.py:
	Raise ConfigError if the port and transport is empty in the worker
	configuration file.
	Fixes #1214

2009-06-30  Julien Le Goff  <jlegoff@flumotion.com>

	reviewed by: Arek, Sebastien

	* flumotion/component/base/http.py:
	Ask the bouncer to delete its reference to a keycard when the
	corresponding request was interrupted before the authentification was
	finished.
	Fixes #1264

2009-06-29  Xavier Queralt  <xqueralt@flumotion.com>

	* flumotion/scenario/steps/httpstreamersteps.py:
	Fix errback method name
	* flumotion/worker/checks/check.py:
	Return True when the import check succeeds

2009-06-25  Alvin Delagon  <adelagon@flumotion.com>

	reviewed by: Jan Urbanski

	* flumotion/component/producers/playlist/playlist.py:
	Throw a meaningful error message if gnonlin is not installed
	Fixes #1313

2009-06-23  Xavier Queralt  <xqueralt@flumotion.com>

	reviewed by: Jan

	* flumotion/admin/gtk/configurationassistant.py:
	* flumotion/admin/gtk/overlaystep.py:
	Add help hyperlinks to online documentation on how to install new
	GStreamer elements and/or new python modules.
	* flumotion/admin/gtk/message.py:
	Insert a space between the message and an hyperlink.
	* flumotion/common/documentation.py:
	Added two methods to insert an hyperlink to a documentation's section.
	* flumotion/scenario/steps/httpstreamersteps.py:
	Wizard's methods requireElements and requireImport already set a
	proper error message. Don't do things twice!
	Don't populate the plugs if the worker checks have failed.
	* flumotion/worker/checks/check.py:
	Add hyperlinks to online documentation on how to fix permissions
	problems with the devices and how to install new GStreamer elements.
	Fixes #114

2009-06-23  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/extern/log/test_log.py:
	  Improve coverage some more by adding tests.

2009-06-24  Alvin Delagon  <adelagon@flumotion.com>

	* flumotion/component/feedcomponent.py:
	Reverting to NoneType return. Fixed the connectEater docstring

2009-06-23  Alvin Delagon  <adelagon@flumotion.com>

	* flumotion/component/feedcomponent.py:
	Return defer.succeed(None) instead

2009-06-23  Alvin Delagon  <adelagon@flumotion.com>

	* flumotion/component/feedcomponent.py:
	No need to do string interpolation in debug logging

2009-06-23  Alvin Delagon  <adelagon@flumotion.com>

	* flumotion/component/feedcomponent.py:
	Include Feed info in the debug log from the last commit

2009-06-23  Alvin Delagon  <adelagon@flumotion.com>

	* flumotion/component/feedcomponent.py:
	Added debug log on instances where eatFrom calls are ignored.

2009-06-22  Xavier Queralt  <xqueralt@flumotion.com>

	* flumotion/component/base/feedersnode.py:
	Force the first node to be selected when the selection vanishes, for
	example, because a row is collapsed.
	Fixes #1312

2009-06-20  Thomas Vander Stichele  <thomas at apestaart dot org>

	* common/common.mk:
	  Use COVERAGE_MODULES for the coverage runs; warn if not defined.
	* common/flumotion-trial:
	  This code snippet mangling sys.path is in Twisted's trial and
	  not in flumotion-trial.  Without it, no coverage is shown for
	  flumotion.extern.log even though its tests got run.

2009-06-20  Alvin Delagon  <adelagon@flumotion.com>

	reviewed by: Zaheer Abbas Merali

	* flumotion/component/feedcomponent.py:
	* flumotion/test/Makefile.am:
	* flumotion/test/test_component_feedcomponent.py (added):
	Ignore eatFrom calls if the feed is the same as the current one. Added
	feedcomponent unit test.
	Fixes #1277

2009-06-16  Jan Urbanski  <jurbanski@flumotion.com>

	* flumotion/component/misc/httpserver/httpserver.py:
	Log the exact timestamp of the request start.

2009-06-16  Xavier Queralt  <xqueralt@flumotion.com>

	* data/glade/connections.glade:
	Instantiate the ObjectList and set its callbacks from the glade file.
	* flumotion/admin/gtk/connections.py:
	Truncate hosts column when handling long hostnames. Remove unnecesary gtk
	code and gladify the widget.
	Fixes #879

2009-06-15  Jan Urbanski  <jurbanski@flumotion.com>

	reviewed by: Zaheer Abbas Merali

	* flumotion/component/base/http.py:
	Add a property called "allow-default" in HTTPAuthentication to permit
	clients through if the authorization attempt failed with an unexpected
	error. This can be caused by the manager being down and thus being
	unable to contact the bouncer, by the bouncer not being logged in, by
	network connection timeouts...
	A very similar property has been added in r5134 in the platform-3
	branch but has never been ported to trunk.
	Fixes #1310.

	* flumotion/component/misc/httpserver/httpserver.py:
	* flumotion/component/misc/httpserver/httpserver.xml:
	* flumotion/component/consumers/httpstreamer/httpstreamer.py:
	* flumotion/component/consumers/httpstreamer/httpstreamer.xml:
	Allow streaming components to read from config and set the newly added
	property of HTTPAuthentication.

	* flumotion/test/test_http.py:
	Unit test the new property.

2009-06-12  Julien Le Goff  <jlegoff@flumotion.com>

	* flumotion/monitor/nagios/process.py:
	Abstracted JobVSize to also track the vsize of worker + manager
	processes.

2009-06-11  Arek Korbik  <arkadini@gmail.com>

	* flumotion/twisted/pb.py (PingableAvatar.stopPingChecking):
	Release reference, stored in 'self', to what might be a closure
	over 'self' - breaks potential un-gc-able cycles, fixes #1311.

2009-06-11  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	* flumotion/admin/gtk/adminwindow.py(_setPlanetState):
	Update the components list if it has not been updated. It can be left
	un-updated if no component was present in the flow (only atmosphere
	componens).

2009-06-05  Josep Joan Ribas  <jribas@flumotion.com>

	* flumotion/component/misc/httpserver/Makefile.am:
	Added missing file (metadaprovider.py)

2009-06-05  Josep Joan Ribas  <jribas@flumotion.com>

	reviewed by: Arek

	* flumotion/component/misc/httpserver/httpfile.py:
	* flumotion/component/misc/httpserver/httpserver.py:
	* flumotion/component/misc/httpserver/httpserver.xml:
	* flumotion/component/misc/httpserver/metadataprovider.py (added):
	Added MetadataProvider Plug for ondemand http-server component.
	Fixes #1302

2009-06-04  Jan Urbanski  <jurbanski@flumotion.com>

	* flumotion/component/misc/porter/porter.py:
	Make the porter log the whole request line, not just the identifier,
	which for example does not include GET parameters.

2009-06-04  Alvin Delagon  <adelagon@flumotion.com>

	reviewed by: Zaheer Abbas Merali

	* flumotion/component/producers/playlist/Makefile.am:
	* flumotion/component/producers/playlist/playlist.py:
	* flumotion/component/producers/playlist/playlist.xml:
	* flumotion/component/producers/playlist/admin_gtk.py (added):
	* flumotion/component/producers/playlist/playlist.glade (added):
	Added admin UI for playlist-producer

2009-06-04  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	previous commit post-reviewed by: Jan Urbanski

	* flumotion/monitor/nagios/stream.py:
	Fix regexp to not require quick hack, courtesy perl-high Jan.
	Also remove log import, as it is not used by file.

2009-06-04  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/monitor/nagios/stream.py:
	Quick hack added to not pick up trailing " for url from asx
	playlists.

2009-06-03  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	reviewed by: Julien

	* flumotion/scenario/steps/httpstreamersteps.py:
	Change the default port to 8800 (the defined on configuration) and
	don't let the streamer to override the porter's port when it has not
	been set.

2009-06-03  Jan Urbanski  <jurbanski@flumotion.com>

	patch by: Thomas Vander Stichele  <thomas at apestaart dot org>
	reviewed by: Jan

	* flumotion/twisted/fdserver.py:
	Improve logging of FD receiving.

	* flumotion/component/misc/porter/porter.py:
	Add and improve logging of handling and passing the connection.

	* flumotion/component/consumers/httpstreamer/resources.py:
	* flumotion/component/misc/httpserver/httpserver.py:
	* flumotion/component/misc/httpserver/httpfile.py:
	Add logging of request handling stages.

	* flumotion/test/test_porter.py:
	Make the FakeAvatar in the porter test have an avatarId, sice it's
	logged during the test run.

2009-06-02  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	* flumotion/component/consumers/httpstreamer/httpstreamer.py:
	* flumotion/component/misc/httpserver/httpserver.py:
	Return a ComponentSetupHandledException when the setup fails if the
	exception has already been handled, preventing the component of having
	two messages for the same problem.
	Really Fixes #951. At r7922 the same issue for the porter was fixed,
	not for the streamer.

2009-06-02  Arek Korbik  <arkadini@gmail.com>

	reviewed by: Jan

	* flumotion/common/package.py:
	Patch ihooks's ModuleImporter class for increased python2.6
	compatibility. Fixes #1263.

2009-05-28  Xavier Martinez-Hidalgo  <xmartinez@flumotion.com>

	* doc/random/developer-introduction.rst:
	Add back Subversion commit instructions as an alternate workflow.

2009-05-28  Xavier Martinez-Hidalgo  <xmartinez@flumotion.com>

	* doc/random/developer-introduction.rst:
	Link to moap project and reference 'moap cl diff' and 'moap cl ci'
	commands.

2009-05-27  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	reviewed by: xmartinez

	* flumotion/component/misc/porter/porter.py:
	Return a ComponentSetupHandledException when the setup fails so the
	exception is not converted in a new message.
	Fixes #951

2009-05-27  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	* flumotion/test/test_parts.py:
	Added the worker name to the components created in the tests.
	Added a test for the checking the components cannot be started when
	their worker has not logged in.

2009-05-27  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	reviewed by: xmartinez

	* flumotion/admin/gtk/componentlist.py:
	Disable starting a component when its worker is not present
	Fixes #564

2009-05-27  Jan Urbanski  <jurbanski@flumotion.com>

	* flumotion/admin/command/component.py:
	Fix flumotion-command even more, cleaning up after r7224.
	The mood subcommand was looking for the component id in the wrong
	place.

2009-05-27  Josep Joan Ribas  <jribas@flumotion.com>

	reviewed by: Arek

	* doc/redhat/flumotion:
	Fixed clean function to accept arguments.

2009-05-26  Josep Joan Ribas  <jribas@flumotion.com>

	reviewed by: Arek

	* flumotion/service/service.py (Servicer.clean):
	Catch exception thrown when deleting non-existing pid files.

2009-05-26  Jan Urbanski  <jurbanski@flumotion.com>

	* flumotion/admin/gtk/adminwindow.py:
	Don't interpolate the message id in the debug string, because if the
	message id is a tuple, it will cause an error. Let the logging
	mechanism handle that

2009-05-22  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/monitor/nagios/stream.py:
	  Clean up import statements.

2009-05-22  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/monitor/nagios/stream.py:
	  Use tempfile to choose a temporary file instead of the handrolled
	  uniquifying process that was broken to begin with.
	  Do not use a potentially non-existing or non-writable directory
	  for saving dumps.
	  Privatize private variables.

2009-05-22  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/monitor/nagios/stream.py:
	  Clean up based on pychecker's findings.
	  This fixes an actual bug in the temporary file creation,
	  and removes chunks of either half-implemented code or
	  changed-but-not-cleaned-up code.

2009-05-22  Thomas Vander Stichele  <thomas at apestaart dot org>

	* doc/random/styleguide:
	  Add a note on pychecker use.

2009-05-22  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/worker/checks/gst010.py:
	  Remove unused import.

2009-05-22  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/monitor/nagios/stream.py:
	  Fix obviously unneeded search-and-replace of quotes introduced
	  in [7822].

2009-05-22  Thomas Vander Stichele  <thomas at apestaart dot org>

	* doc/random/styleguide:
	  Make Public vs Private explicit, since the API section clearly
	  mentions public and private but fails to explain what it means.

2009-05-21  Josep Joan Ribas  <jribas@flumotion.com>

	reviewed by: Zaheer

	* flumotion/component/feedcomponent010.py:
	Added a force flag to the try_start_pipepline to force setting
	pipeline to PLAYING.

	* flumotion/component/producers/icecast/icecast.py:
	Implemented a reconnect mechanism for the icecast producer
	component. Fixes #1298

	* flumotion/twisted/defer.py:
	Reset delay value when starting a RetryingDeferred.

2009-05-21  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/scenario/live/live.xml:
	* flumotion/scenario/ondemand/ondemand.xml:
	  The descriptions are used in the scenario selection step, so the
	  verbs should be imperative.

2009-05-21  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	reviewed by: arek

	* flumotion/admin/gtk/adminwindow.py (_appendComponent):
	Fix a typo that caused the trayicon not being updated with the correct
	mood when adding the components incrementally.

2009-05-21  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/monitor/nagios/stream.py:
	Fix stream check for streams which don't require a demuxer
	like mp3.

2009-05-21  Arek Korbik  <arkadini@gmail.com>

	patch by: Philippe Normand <philippe at fluendo dot com>

	* flumotion/extern/log/log.py (outputToFiles): Catch importing
	signal for improved win32 experience. Fixes #1295.

2009-05-20  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/producers/playlist/playlist.py:
	Fix import of gstreamer modules, fixed previous commit.

2009-05-20  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/producers/playlist/playlist.py:
	Use gst not gstreamer for import.

2009-05-19  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	reviewed by: jurbanski

	* data/glade/sectionwizard.glade:
	Avoid resize the wizard window if not needed setting the default size.
	* flumotion/component/producers/soundcard/wizard.glade:
	Reorganize the widgets without a table. A VBox and some HBoxes give
	more control on positioning and sizing options.
	* flumotion/component/producers/soundcard/wizard_gtk.py:
	The devices are fetched automatically using a worker check. The same
	is done for the parameters associated to the devices (tracks,
	number of channels, sample rate and the bit depth).
	The devices are listed by their name and the code has been cleaned
	and restructured.
	* flumotion/worker/checks/audio.py:
	Added a check that returns the available sound devices in the
	system according to the provided source factory.
	Modified the checkMixerTracks method to return the device
	capabilities too.
	Fixes #197, #804 and #952

2009-05-19  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	* flumotion/component/encoders/vorbis/vorbis010.py:
	Import forgotten gstreamer module for the check in r7887 to work.

2009-05-19  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	* flumotion/component/producers/audiotest/admin_gtk.py:
	* flumotion/component/producers/audiotest/audiotest.glade:
	Initialize the combo while loading the widgets not inside the glade
	file. Fixes #2261(pt)

2009-05-19  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/encoders/vorbis/vorbis010.py:
	Prefer legacyresample over audioresample where available.

2009-05-18  Josep Joan Ribas  <jribas@flumotion.com>

	reviewed by: Arek

	* flumotion/component/misc/httpserver/httpfile.py:
	Fixes #1280. Http-server not checking if a byte range request has an end
	range bigger than the filesize.

2009-05-18  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/producers/playlist/playlist.py:
	Prefer legacyresample over audioresample where available.

2009-05-18  Arek Korbik  <arkadini@gmail.com>

	reviewed by: Zaheer

	* flumotion/component/misc/httpserver/httpserver.py
	  (HTTPFileStreamer._timeoutRequests):
	Cleanup the _timeoutRequestsCallLater on entry. See #1281.

2009-05-18  Jan Urbanski  <jurbanski@flumotion.com>

	* flumotion/component/base/http.py:
	Log the return code when handling unauthorized connections. It doesn't
	always have to be 401, sometimes it can be 500 if the bouncer had an
	error.

2009-05-13  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	reviewed by: Julien Le Goff

	* flumotion/admin/gtk/componentlist.py:
	Added two methods to append and remove components incrementally to and
	from the componentlist used by the admin window.

	* flumotion/admin/gtk/adminwindow.py:
	Changed the algorithm used for updating the componentlist. Before it
	was extremelly inefficient because the list was cleaned and
	repopulated each time a component was added or removed. Now it appends
	or removes the components one by one when it is needed using the new
	methods of ComponentList. Fixes #1276
	This also fixes a race condition given when some components were
	selected from the admin and one of them was deleted. The
	selection-changed event and the component-deleted listener method were
	triggered at the same time both cleaning and rebuilding the list.
	Another issue fixed on this commit is the deselection of a component
	of the list when a new one is loaded. This shouldn't happen anymore
	because the situation is controlled when the component is loaded.
	Fixes #1159

2009-05-08  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/monitor/nagios/stream.py:
	Fix mimetype detection to not randomly look for src pads
	with template name "audio" or "video", instead to find the
	demuxer and look at its src pads and their caps.
	Also make fractions output as x/y not x:y.

2009-05-08  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	reviewed by: Arek

	* flumotion/admin/gtk/overlaystep.py:
	* flumotion/component/converters/overlay/genimg.py:
	* flumotion/component/converters/overlay/overlay.py:
	Make overlay use appsrc or a python src element if appsrc is
	not available.
	Fixes #1275

2009-04-30  Jan Urbanski  <jurbanski@flumotion.com>

	* flumotion/component/feedcomponent010.py:
	Drop all newsegment events except the first one in the gdp
	depayloader. Some components have problems when they see a second
	newsegment event coming in and Flumotion does not deal with newsegments
	in any special way anyway.
	Fixes #1278.
	See also #1277.

2009-04-30  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/config.py:
	  Show a list of allowed sockets when the socket type is
	  unsupported.

2009-04-29  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/feedcomponent010.py:
	Allow some feeders to be in pipeline, outputting a warning
	log message if it happens.
	Needed for single stream playlist producer to continue
	functioning.
	* flumotion/component/producers/playlist/playlistparser.py:
	Set discoveredDuration to be correct when there is no
	video or no audio in media file.

2009-04-28  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/producers/playlist/playlist.py:
	Subtract basetime from timestamp when adjusting gnlsources.

2009-04-23  Pedro Gracia  <pedro@flumotion.com>

	* flumotion/monitor/nagios/stream.py:
	Fixed a dependency of python2.5 checking ips.
	Fallback to get always video and audio mime types.

2009-04-21  Jan Urbanski  <jurbanski@flumotion.com>

	* configure.ac:
	Back to dev.

=== release 0.5.4 ===

2009-04-21  Jan Urbanski  <jurbanski@flumotion.com>

	* NEWS:
	* RELEASE:
	* configure.ac:
	* flumotion.doap:
	Releasing 0.5.4 "EAT".

2009-04-21  Jan Urbanski  <jurbanski@flumotion.com>

	* flumotion/admin/gtk/dialogs.py:
	Update the list of authors.

2009-04-21  Jan Urbanski  <jurbanski@flumotion.com>

	* flumotion/component/converters/overlay/overlay.py:
	Change the warning text, gst-plugins-good are still buggy.

	* flumotion/component/producers/looper/looper.py:
	Remove warnings about segfault-causing version of gst-python for
	versions that no longer have the buggy behaviour.

2009-04-21  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	* flumotion/worker/checks/gst010.py:
	Force using the video pad of dvdemux when cheking firewire
	capabilities in the worker check.
	Fixes #1274

2009-04-20  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/test/test_component_playlist.py:
	Fix tests.

2009-04-20  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/producers/playlist/playlist.py:
	Remove unused imports.
	Set filtercaps on gnlsource.
	Move identity sync=true before identity single-segment=true.
	Hack to expose feeder template.
	* flumotion/component/producers/playlist/playlistparser.py:
	position used is in terms of clock time, not in terms of
	running time
	* flumotion/component/producers/playlist/singledecodebin.py:
	Update to later version.

2009-04-16  Sebastien Merle  <sebastien@fluendo.com>

	* flumotion/component/bouncers/bouncer.py:
	Rename on_validation to on_validate for real.

2009-04-16  Sebastien Merle  <sebastien@fluendo.com>

	* flumotion/component/bouncers/bouncer.py:
	Removed a debug print, rename on_validation to on_validate
	and added a comment on returning keycard with state REFUSED
	when using authetication session.
	* flumotion/test/test_component_bouncers_bouncer_authsession.py:
	Use failIf and failUnless insteed of assertFalse and assertTrue.

2009-04-16  Sebastien Merle  <sebastien@fluendo.com>

	reviewed by: Arek, Zaheer

	* flumotion/component/bouncers/bouncer.py:
	* flumotion/test/Makefile.am:
	* flumotion/test/test_component_bouncers_bouncer_authsession.py:
	* flumotion/test/test_component_bouncers_bouncer_authsession.py
	  (added):
	Added a helper bouncer for authentication sessions
	like challenge/response. It provide a way to store and retrieve
	data related to the session, and validate/cancel sessions.

2009-04-16  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/admin/command/main.py:
	Make sure use_ssl gets passed to correct parameter! This fixes
	connection to non ssl managers with flumotion-command.

2009-04-16  Pedro Gracia  <pedro@flumotion.com>

	reviewed by: Jan Urbanski  <jurbanski@flumotion.com>

	* flumotion/monitor/nagios/main.py:
	* flumotion/monitor/nagios/stream.py:
	Store dumps if nagios check fails testing and check bouncer status too.

2009-04-15  Xavier Martinez-Hidalgo  <xmartinez@flumotion.com>

	* flumotion/test/test_import.py:
        Import flumotion.admin.rrdmon only if rrdtool is installed.

2009-04-15  Xavier Martinez-Hidalgo  <xmartinez@flumotion.com>

	* flumotion/test/Makefile.am:
	* flumotion/test/test_import.py:
 	Add a test case that imports all flumotion modules.

2009-04-08  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	* flumotion/admin/command/main.py:
	flumotion-command's transport parameter should expect an string
	parameter but it was treated as a flag in the option parser.

2009-04-07  Jan Urbanski  <jurbanski@flumotion.com>

	* flumotion/common/eventcalendar.py:
	* flumotion/test/test_common_eventcalendar.py:
	The RECURRENCE-ID in iCal files is returned as a vDDDTypes object, not
	a string. Fixes #1269, parsing RECURRENCE-IDs with TZID.

2009-04-07  Jan Urbanski  <jurbanski@flumotion.com>

	* flumotion/common/eventcalendar.py:
	* flumotion/test/test_common_eventcalendar.py:
	Don't raise NotImplementedErrors for implemented features. Fixes #1268.

2009-04-07  Jan Urbanski  <jurbanski@flumotion.com>

	* flumotion/common/eventcalendar.py:
	Add workaround for an apparent Google Calendar bug.

2009-04-01  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	* flumotion/scenario/steps/productionsteps.py:
	Hide the corresponent combo and check boxes if no audio or video
	producer exist on the flow when adding a new format from the admin
	window.

2009-03-26  Arek Korbik  <arkadini@gmail.com>

	* tools/genpls.py:
	Add a simple playlist generator.

2009-03-25  Jan Urbanski  <jurbanski@flumotion.com>

	* flumotion/admin/command/component.py:
	Further fix flumotion-command, after the fallout in r7224.
	See also r7691.

2009-03-25  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	* flumotion/admin/gtk/configurationassistant.py:
	Show the translations for the descriptions at scenario step.

2009-03-24  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/feedcomponent010.py:
	Fix discont log message.

2009-03-24  Sebastien Merle  <sebastien@fluendo.com>

	* flumotion/component/consumers/disker/disker.py:
	Fixed a NameError in an exception handler.

2009-03-24  Arek Korbik  <arkadini@gmail.com>

	* flumotion/component/producers/playlist/Makefile.am:
	* flumotion/component/producers/playlist/playlist.dtd:
	Add a DTD somewhat describing the playlist format.

2009-03-23  Arek Korbik  <arkadini@gmail.com>

	* flumotion/component/bouncers/icalbouncer.py:
	* flumotion/component/bouncers/tokentest.py:
	Make keycardClasses attribute to adhere to the spec.

2009-03-23  Jan Urbanski  <jurbanski@flumotion.com>

	reviewed by: arkadini

	* flumotion/component/misc/httpserver/httpfile.py:
	Guard against writing pending data to consumers if they already want
	away. Fixes #1257, a really tricky corner case.

2009-03-20  Jan Urbanski  <jurbanski@flumotion.com>

	reviewed by: arkadini

	* flumotion/component/misc/httpserver/cachedprovider.py:
	Handle files disappearing from the cache directory while we're
	estimating cache usage. Fixes #1255.

2009-03-20  Jan Urbanski  <jurbanski@flumotion.com>

	reviewed by: arkadini

	* flumotion/component/misc/httpserver/ratecontrol.py:
	Prevent proxying pauseProducing calls to producers that have already
	disconnected. Fixes #1256.

2009-03-18  Arek Korbik  <arkadini@gmail.com>

	* flumotion/test/common.py: Now stone age compatible, too!

2009-03-18  Arek Korbik  <arkadini@gmail.com>

	* flumotion/test/test_pb.py (TestTwisted_PortalAuthChallenger):
	_PortalAuthChallenger's __init__() signature changed in Twisted
	8.0 - mark those tests as 'skip' for now.

	* flumotion/test/test_icalbouncer.py: Fix for the compatibility
	breakage in dateutil 1.4; clean-up after ourselves, too.

	* flumotion/test/common.py:
	* flumotion/test/Makefile.am:
	New module for small utilities like haveTwisted().

2009-03-18  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	reviewed by: jlegoff

	* flumotion/scenario/steps/conversionsteps.py:
	Controll whether a muxer can or cannot be shown on the wizard
	depending on the configured media types (audio/video) and the ones it
	accepts.
	Helps #2074(pt)

2009-03-10  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	* data/cortado-template.html:
	* flumotion/component/plugs/cortado/cortado.py:
	* flumotion/component/plugs/cortado/cortado.xml:
	* flumotion/component/plugs/cortado/wizard_gtk.py:
	Framerate is no longer used on cortado, setting it to optional for
	compatibility reasons but not using it anymore.
	* flumotion/component/producers/webcam/wizard_gtk.py:
	Convert the framerate to a float instead of using a string.
	Fixes #970

2009-03-10  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	reviewed by: murrayc

	* data/glade/welcome-wizard.glade:
	Add a notice for the user about the safety of using the default
	options set on the wizard.
	Fixes #1100

2009-03-05  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	* flumotion/test/test_wizard_save.py:
	Fix the tests for the last commit's changes.

2009-03-05  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	* flumotion/component/producers/firewire/wizard.glade:
	* flumotion/component/producers/firewire/wizard_gtk.py:
	Change the default options of the the firewire wizard page to get
	better results when the source's width has to be corrected.
	Fixes #1135

2009-03-05  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	* flumotion/component/encoders/smoke/wizard.glade:
	* flumotion/component/encoders/smoke/wizard_gtk.py:
	Present the keyframe spacing in seconds on the wizard. Transform it to
	number of frames taking into account the producer's framerate.
	Fixes #829

2009-03-05  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	* flumotion/admin/gtk/adminwindow.py (_disconnectActionProxy):
	Fix the UIManager's disconnect from proxy callbac. It was expecting
	the callback ids as a pair (name, id) but we only had the ids.

2009-02-25  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	reviewed by: jlegoff

	* flumotion/admin/assistant/save.py:
	Don't set the name of the producers if it is already set before.
	This prevents adding new encoders feeding from an unexistent producer
	from the add-new-format wizard when the producer is a firewire camera
	or the producers names are not the default ones.
	* flumotion/admin/gtk/adminwindow.py:
	The add-new-format wizard knows the names of the existing producers so
	they are used instead of the proposed by the saver. It was a problem
	before when we wanted to use an audio-video producer as a audio/video
	only producer.
	* flumotion/component/producers/firewire/wizard_gtk.py:
	Set the default framerate to 12.5.
	* flumotion/scenario/steps/productionsteps.py:
	SelectProducersStep extends now LiveProductionStep. Most of all
	duplicate code between the two classes has now disappeared.
	* flumotion/test/test_wizard_save.py:
	Fixed the tests to fit the changes to the save module.
	Fixes #1253

2009-02-20  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	* flumotion/scenario/steps/conversionsteps.py:
	Ѕet the audio/video encoders to None when the producers are not
	present. When going back from an encoding step to remove a producer.
	The encoders would remain internally there (but not in the UI nor in
	the configuration).

2009-02-19  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	* flumotion/scenario/steps/productionsteps.py:
	Reverted the changes on last commit as they were probably a bad idea.
	The firewire production step was not appearing after the commit.
	This doesn't affect the bug fix.

2009-02-18  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	reviewed by: jlegoff

	* flumotion/admin/gtk/configurationassistant.py:
	Show an informative message when we are checking the existence of
	GStreamer elements on the workers. Fixes #898
	* flumotion/scenario/steps/conversionsteps.py:
	Remove the unncessary code that interfers with the message we show
	when checking the GStreamer elements. The worker was changed twice for
	the encoding steps thus, the messages were cleaned before the user
	could see them.
	* flumotion/scenario/steps/productionsteps.py:
	Clean those two pages as they were using extra code that is not
	needed anymore.

2009-02-18  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	* flumotion/component/producers/firewire/firewire.py:
	Fix an error when checking if the current-device-change property is
	present on the received message's structure. Before the line crashed
	without reporting anything to the user neither the (dis)connection
	messages.

2009-02-16  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	* flumotion/component/consumers/httpstreamer/admin_gtk.py:
	Disable the link button when we have not received the mime type.
	Fixes #1245

2009-02-12  Jan Urbanski  <jurbanski@flumotion.com>

	* flumotion/component/combiners/switch/switch.py:
	Get the UID of the event from the Event itself, not from the
	EventInstance that the code gives you. Also, add a logCategory for the
	switch ICal plug.

2009-02-11  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	* common/rpm.mk:
	Force deletion of rpm with -f otherwise the build fails.
	Use the PACKAGE variable for the name of the spec file this
	way other packages can use the same code for building rpm.

2009-02-11  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	reviewed by: jlegoff

	* flumotion/worker/checks/check.py:
	Add a method to check whether a file exists. Used as a worker check.
	Helps #2075 (pt)

2009-02-10  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	* flumotion/admin/gtk/dialogs.py:
	* flumotion/admin/gtk/greeter.py:
	Handle ConnectionRefusedError when trying to log in to the manager.
	Fixes #1138

2009-02-10  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	* flumotion/admin/gtk/dialogs.py:
	* flumotion/admin/gtk/main.py:
	Moved the exceptionHandler to dialogs.py so it can be used from other
	parts of the project.
	* flumotion/ui/wizard.py:
	Catch all the exceptions thrown while loading the steps and show the
	exception dialog.
	Fixes #2792 (pt)


2009-02-05  Jan Urbanski  <jurbanski@flumotion.com>

	* flumotion/component/plugs/rrd.py:
	Log the RRD updates with %r, not with %s. Fix format string with
	missing parameters.

2009-02-04  Julien Le Goff  <jlegoff@flumotion.com>

	* flumotion/component/misc/httpserver/cachedprovider.py:
	Flush the temporary cached file after calling the File.write method in
	order to avoid race problems (since that same file is read in a
	concurrent thread).
	Fixes #1244

2009-02-04  Jan Urbanski  <jurbanski@flumotion.com>

	* flumotion/component/plugs/rrd.py:
	Make updating the RRD file more robust and make it work with long
	values (as opposed to just working with ints). Fixes #1230.

2009-02-04  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	* flumotion/common/bundleclient.py:
	Revert r7753 and add a FIXME comment to remember that we cannot be
	completelly sure the bundle has the correct content only by checking
	that the directory exists.

2009-02-03  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	* flumotion/scenario/Makefile.am:
	* flumotion/scenario/live/live.xml:
	* flumotion/scenario/ondemand/ondemand.xml:
	* flumotion/scenario/steps/steps.xml:
	* flumotion/scenario/scenario.xml (added):
	Bundle the flumotion/scenario/__init__.py file. Otherwise the modules
	under that module were load from the local installation and not from
	the bundles.

2009-02-03  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	* flumotion/common/bundleclient.py:
	Don't fetch a bundle when it is already up-to-date!!

2009-01-30  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/misc/httpserver/httpfile.py:
	Ugly hack: do not send Accept-Ranges header if filename
	ends in .pdf.

2009-01-29  Jan Urbanski  <jurbanski@flumotion.com>

	* doc/redhat/flumotion:
	Change the 'status' service command to print useful output to stdout
	and possible errors to the logfile, instead of printing everything to
	stdout.

2009-01-29  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	reviewed by: Julien Le Goff <jlegoff@flumotion.com>

	* data/glade/Makefile.am:
	* data/glade/http-wizard.glade (deleted):
	* data/glade/httpstreamer-wizard.glade:
	The HTTPCommon step has been merged with the HTTPStreamer one.
	Now the	specific details of the streamer will be shown on the first
	step and hidden for the following ones unless the worker is changed
	or the user requests it.
	Fixes #1232
	* flumotion/admin/assistant/save.py:
	Updated the method for fetching the trailing digits using regexp
	instead of a loop. Thanks Julien.
	* flumotion/test/test_wizard_save.py:
	Fixed the tests of the HTTPStreamer step according to the changes made.
	* flumotion/admin/gtk/adminwindow.py:
	Now the adminwindow can manage multiple porters (actually only one was
	used was used).
	It also tells to the wizard the used mount points when a new format
	is going to be added so we can prevent reusing them.
	* flumotion/admin/gtk/configurationassistant.py:
	It has also been modified to support multiple porters and to track them
	Checks the used mountpoints from the adminwindow or the
	HTTPSstreamer steps to prevent duplicates.
	* flumotion/scenario/live/wizard_gtk.py:
	The way the flow is saved has been updated and it can manage the
	multiple porters we can have now.
	* flumotion/scenario/steps/consumptionsteps.py:
	The HTTPConsumptionStep has been deleted as we don't need it anymore.
	All of its functionality has been added to the HTTPStreamerStep.
	Some simplifications have been done to the ConsumptionStep.
	* flumotion/scenario/steps/httpstreamersteps.py:
	HTTPStreamerStep runs now a check when the mountpoint/port/worker has
	been changed. It warns the user when the mountpoint has already been
	used on the required host:port.
	The step initializes the next one with its data when Forward is
	pressed.
	Fixes #2873 (pt)
	Fixes #2871 (pt)
	Fixes #1231
	Fixes #995

2009-01-29  Arek Korbik  <arkadini@gmail.com>

	patch by: Aitor

	* flumotion/component/producers/playlist/playlist.py:
	Add forgotten (in r6983) keyword parameter change.

2009-01-29  Arek Korbik  <arkadini@gmail.com>

	* flumotion/admin/command/common.py:
	Make it possible to use None in 'invoke'.

2009-01-29  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	* scripts/run-local-manager:
	Rename the variable CONF to FLOW as they are the same

2009-01-29  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	* flumotion/ui/linkwidget.py:
	The link widget cannot have the focus now.
	* scripts/run-local-manager:
	Allow setting the flow file that the manager will use with -c option.

2009-01-28  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	* scripts/run-local-manager:
	Added the option -h to the script so the hostname where the manager
	and worker are going to run can be specified.

2009-01-27  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/effects/volume/volume.glade:
	  Explain the volume change option better.  Fixes #1210.

2009-01-26  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	reviewed by: Arek

	* flumotion/manager/component.py:
	* flumotion/twisted/flavors.py:
	Add FIXMEs in places where an ordered dict is needed.
	* flumotion/ui/wizard.py:
	Fixed the strange behaviour of the sidebar that never deletes the
	buttons and ends with a large list of ununsable buttons.
	Fixes #1126

2009-01-26  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	* flumotion/common/fraction.py:
	Calculating the module in one line.

2009-01-22  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	reviewed by: Arek

	* flumotion/admin/assistant/models.py:
	* flumotion/common/fraction.py:
	Fixed the fraction convertion from a float.
	The gcd is calculated now so no precission is lost.
	Fixes #910

2009-01-22  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	reviewed by: Arek

	* flumotion/common/vfsgnome.py:
	Removed an unnecesary call to os.path.abspath.
	* flumotion/component/plugs/base.py:
	Deleted the changes made to the plugs code on r7696.
	* flumotion/scenario/steps/ondemandstep.py:
	Added a model for the logger plug and using it.
	* flumotion/component/consumers/disker/disker.py:
	Marking the string to translate correctly.

2009-01-21  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	* flumotion/admin/gtk/adminwindow.py:
	Do not run the Assistant when the cleaning operation has not succeed.
	Fixes #1073

2009-01-20  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	* flumotion/admin/gtk/adminwindow.py:
	The "Add new format" action shouldn't be set sensitive until the wizard
	has finished, otherwise it can remain that way even if the wizard
	doesn't configure a flow successly.

2009-01-20  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	* flumotion/scenario/live/Makefile.am:
	* flumotion/scenario/ondemand/Makefile.am:
	* flumotion/scenario/steps/Makefile.am:
	Added scenarios registry files to the Makefiles so
	they are added to the packages.

2009-01-19  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	* flumotion/component/consumers/disker/disker.py:
	Fixed the arguments passed to a N_ method call.

2009-01-19  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	* flumotion/admin/gtk/componentlist.py:
	Fixed the behaviour of the component list when selecting a component.
	If the component is already selected the UI is not updated anymore.
	* flumotion/component/consumers/httpstreamer/admin_gtk.py:
	Don't create the Link button until the URI has been received.
	Fixes #1236

2009-01-19  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	* flumotion/admin/gtk/greeter.py:
	Hide 'Start new manager and connect to it' option on windows.
	Fixes #1179

2009-01-19  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	* flumotion/common/managerspawner.py:
	Do not translate worker and manager when they are part from a command.

2009-01-14  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	reviewed by: Julien Le Goff <jlegoff@flumotion.com>

	* flumotion/admin/assistant/models.py:
	Encoders, producers and muxers without a feeder are accepted.
	Fixes #1142

2009-01-14  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	reviewed by: Julien Le Goff <jlegoff@flumotion.com>

	* flumotion/admin/gtk/adminwindow.py:
	Added a way for the component list to know when a
	worker is connected or disconnected.
	* flumotion/admin/gtk/componentlist.py:
	Code concerning the tooltips rewritten.
	When a worker is offline its name would appear in italics and the
	tooltip of the component would explain that.
	Fixes #1036
	Fixes #1026

2009-01-13  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	* flumotion/scenario/steps/httpstreamersteps.py:
	* flumotion/test/test_wizard_save.py:
	Fixed the tests for the last changes done.

2009-01-13  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	* flumotion/scenario/steps/httpstreamersteps.py:
	Set the port from the porter and don't use the default one.
	Fixes #1209

2009-01-12  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	* data/glade/consumption-wizard.glade:
	* flumotion/scenario/steps/consumptionsteps.py:
	Added the callbacks for the disk consumer checkboxes so the forward
	button is enabled/disabled properly.
	Fixes #1125

2009-01-12  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	reviewed by: Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/consumers/disker/disker.py:
	Added a remote method to allow schedulling recordings with an ical
	file from the admin window.
	Fixes #1178

2009-01-12  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	reviewed by: Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* data/glade/ondemand-wizard.glade:
	* flumotion/common/vfsgio.py:
	* flumotion/common/vfsgnome.py:
	* flumotion/component/plugs/base.py:
	* flumotion/scenario/steps/ondemandstep.py:
	* flumotion/ui/fileselector.py:
	Added an optional apache logger to the on demand wizard page.
	Fixes #947

2009-01-07  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	reviewed by: Xavier Queralt Mateu  <xqueralt@flumotion.com>
	patch by: Jordi Massaguer i Pla  <jordi@flumotion.com>

	* flumotion/component/producers/firewire/wizard_gtk.py:
	Deleted unused code when obtaining firewire audio production step.
	Fixes #949

2009-01-07  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	reviewed by: Xavier Queralt Mateu  <xqueralt@flumotion.com>
	patch by: Pedro Gracia  <pedro@flumotion.com>

	* flumotion/component/encoders/smoke/smoke.py:
	Warn the user about the bug #565441 of Gstreamer smoke encoder.
	* flumotion/component/encoders/smoke/wizard_gtk.py:
	The smoke wizard page now uses the settings set by the user.
	Fixes #891

2009-01-05  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/consumers/httpstreamer/resources.py:
	  Add a link to the ticket that discusses stealing the fd from
	  the Twisted reactor.

2008-12-30  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/admin/command/component.py:
	Of course, noone actually tests flumotion-command to see if the
	commands work.
	Fix property subcommand of component.

2008-12-16  Sebastien Merle  <sebastien@fluendo.com>

	* flumotion/component/misc/httpserver/cachedprovider.py:
	Properly stop the copying thread when the component is stopped,
	the component do not stay waking forever anymore.

2008-12-15  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	* flumotion/common/vfsgnome.py:
	Fixed a minor error on vfsgnome.

2008-12-15  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	* flumotion/common/bugreporter.py:
	Fixed a typo, the bug reporter was serializing a tuple instead of a
	str for the component name.
	Fixes #1170

2008-12-02  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	* flumotion/component/producers/soundcard/soundcard.py:
	Fixed a return statement that returned nothing.
	It now returns the volume.
	Fixes #1208

2008-12-02  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	reviewed by: Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/common/vfs.py:
	* flumotion/common/vfsgio.py:
	* flumotion/common/vfsgnome.py:
	The files are fetched on the worker side now, so we view the remote
	files on the FileSelector.
	Fixes #1187

2008-12-02  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	* flumotion/component/producers/soundcard/wizard_gtk.py:
	Block the Forward button when the check fails.
	Fixes #1207

2008-12-01  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	reviewed by: Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/producers/firewire/wizard.glade:
	* flumotion/component/producers/firewire/wizard_gtk.py:
	Added a combo that lists the available firewire cameras on the worker,
	thus the user can choose one of them by its name.
	* flumotion/worker/checks/gst010.py:
	Modified to reflect the listing and selection of a camera by its guid.
	Reformulation of some error messages when the device is not there
	and/or it cannot be loaded.
	Fixes #1183
	Fixes #1063

2008-11-28  Thomas Vander Stichele  <thomas at apestaart dot org>

	* data/upgrade-to-0.5.3.xsl:
	  Fix selection of nodes to fix for rate->samplerate to only apply
	  for audiotest-producer and soundcard-producer.

2008-11-27  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	* flumotion/common/common.py:
	Added year 2008 to the flumotion copyright message (--version)

2008-11-26  Sebastien Merle  <sebastien@fluendo.com>

	* flumotion/component/misc/httpserver/httpfile.py:
	Fixed a bug in http-server when no request modifier are specified.

2008-11-26  Sebastien Merle  <sebastien@fluendo.com>

	* flumotion/component/consumers/httpstreamer/resources.py:
	Fixed a bug when no plug are specified.

2008-11-26  Sebastien Merle  <sebastien@fluendo.com>

	* flumotion/component/plugs/requestmodifier.py:
	* flumotion/component/plugs/requestmodifier.py (added):
	Added the new plug module forgoten in the last commit.

2008-11-26  Sebastien Merle  <sebastien@fluendo.com>

	reviewed by: Arek,Zaheer

	* flumotion/component/consumers/httpstreamer/httpstreamer.xml:
	* flumotion/component/consumers/httpstreamer/resources.py:
	* flumotion/component/misc/httpserver/httpfile.py:
	* flumotion/component/misc/httpserver/httpserver.py:
	* flumotion/component/misc/httpserver/httpserver.xml:
	* flumotion/component/plugs/plugs.xml:
	Added a new plug type for request modification
	in http-server and http-streamer.
	Added a plug to force browsers to ask the user to download
	a file instead of playing it automatically.

2008-11-26  Arek Korbik  <arkadini@gmail.com>

	* flumotion/manager/config.py (buildEatersDict):
	Don't warn about uniquifying alias names, it's only of debugging
	interest. Fixes #1176.

2008-11-26  Arek Korbik  <arkadini@gmail.com>

	* conf/examples/default.xml:
	* conf/examples/discont.xml:
	* conf/examples/twores.xml:
	Fix the wrong interpretation, introduced by r7619.
	Eater names are defined by the component, and multiple eater tags
	in a config file should only be used with multiple eaters.
	See #1176.

2008-11-26  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	reviewed by: Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/scenario/steps/diskersteps.py:
	Now the checkboxes and radiobuttons on the disker wizard step are used
	properly when configuring the flow.
	Fixes #1128

2008-11-26  Xavier Queralt Mateu <xqueralt@flumotion.com>

	* flumotion/test/test_wizard_save.py:
	  Fixed wizard tests

2008-11-25  Arek Korbik  <arkadini@gmail.com>

	* configure.ac:
	Back to dev.

=== release 0.5.3 ===

2008-11-25  Arek Korbik  <arkadini@gmail.com>

	* NEWS:
	* RELEASE:
	* configure.ac:
	* flumotion.doap:
	Releasing 0.5.3 "Ovella Negra".

2008-11-25  Arek Korbik  <arkadini@gmail.com>

	* flumotion/admin/gtk/dialogs.py:
	Update the list of authors.

2008-11-25  Arek Korbik  <arkadini@gmail.com>

	* flumotion/common/vfsgnome.py (GnomeVFSDirectory.getFiles):
	* flumotion/common/vfsgio.py (GIODirectory.getFiles):
	Lower log levels - that info is not that important.


2008-11-24  Pedro Gracia  <pedro@flumotion.com>

	* flumotion/monitor/nagios/stream.py:
	genToken isn't necesary.

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

	* flumotion.spec.in:
	  Change summary/description as requested by Fedora.

2008-11-20  Arek Korbik  <arkadini@gmail.com>

	* flumotion/component/producers/looper/looper.py:
	Add warnings about segfault-causing version of gst-python.

2008-11-20  Arek Korbik  <arkadini@gmail.com>

	* flumotion/component/converters/overlay/overlay.py
	  (Overlay.configure_pipeline):
	Add a warning about broken gstreamer versions.

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

	* conf/examples/bouncer.xml:
	* conf/examples/default.xml:
	* conf/examples/discont.xml:
	* conf/examples/ipbouncer.xml:
	* conf/examples/twores.xml:
	* data/upgrade-to-0.5.3.xsl:
	* flumotion/component/producers/audiotest/admin_gtk.py:
	* flumotion/component/producers/audiotest/audiotest.py:
	* flumotion/component/producers/audiotest/audiotest.xml:
	* flumotion/component/producers/audiotest/wizard.glade:
	* flumotion/component/producers/audiotest/wizard_gtk.py:
	* flumotion/component/producers/soundcard/soundcard.py:
	* flumotion/component/producers/soundcard/soundcard.xml:
	* flumotion/component/producers/soundcard/wizard.glade:
	* flumotion/component/producers/soundcard/wizard_gtk.py:
	* flumotion/test/test_wizard_save.py:
	  Change 'rate' property to 'samplerate'.
	  Explicit is better than implicit, especially when we have
	  framerate and bitrate too.
	  Also document the default samplerate, and sync between wizard
	  and component.

2008-11-19  Jan Urbanski  <jurbanski@flumotion.com>

	* bin/flumotion-admin-command (deleted):
	Complete the transition between flumotion-admin-command and
	flumotion-command by removing the obsoleted one. Fixes #725.

2008-11-13  Xavier Queralt Mateu  <xqueralt at flumotion dot com>

	* flumotion/component/consumers/disker/disker.py:
	Fix the disk-consumer size rotation type.
	It was not splitting the file correctly.

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

	* flumotion/component/misc/httpserver/httpserver.py:
	Properly setup the HTTP authenticator,
	to be able to expire keycard.
	Fixes #1155

2008-11-11  Jan Urbanski  <jurbanski@flumotion.com>

	* common/trial.mk:
	* common/Makefile.am:
	Use and dist flumotion-trial instead of flumotion-trial.in, as the
	latter dues noe require autoconf processing.

	* configure.ac:
	Remove the directive to generate flumotion-trial.

	* common/flumotion-trial.in (deleted):
	* common/flumotion-trial (added):
	Rename flumotion-trial.in to flumotion-trial.

2008-11-11  Xavier Queralt Mateu  <xqueralt at flumotion dot com>

	* flumotion/admin/assistant/Makefile.am:
	* flumotion/admin/gtk/Makefile.am:
	Deleted some moved files from the Makefiles

2008-11-11  Xavier Queralt Mateu  <xqueralt at flumotion dot com>

	reviewed by: Arek Korbik <arek@flumotion.com>
	reviewed by: Johan Dahlin  <johan@flumotion.com>

	After this update the wizard's scenarios are fetched and loaded
	dynamically from the manager as bundles and we reuse more code among
	all the wizard modules.

	* flumotion/admin/gtk/addformatassistant.py (deleted):
	Cleaning code. This is not needed as right now ConfigurationAssistant
	can act as an AddFormatAssistant.
	* flumotion/scenario (added):
	* flumotion/scenario/__init__.py (added):
	* flumotion/scenario/Makefile.am (added):
	Created a new module where the scenario bundles will be placed.
	* flumotion/scenario/live (added):
	* flumotion/scenario/live/__init__.py (added):
	* flumotion/scenario/live/Makefile.am (added):
	* flumotion/scenario/live/live.xml (added):
	* flumotion/scenario/live/wizard_gtk.py (added):
	Created the Live scenario's module. This module contains the registry
	file (live.xml) and the scenario's logic (wizard_gtk.py).
	* flumotion/scenario/ondemand (added):
	* flumotion/scenario/ondemand/__init__.py (added):
	* flumotion/scenario/ondemand/Makefile.am (added):
	* flumotion/scenario/ondemand/ondemand.xml (added):
	* flumotion/scenario/ondemand/wizard_gtk.py (added):
	Created the Ondemand scenario's module. This module contains the
	registry file (ondemand.xml) and the scenario's logic (wizard_gtk.py).
	* flumotion/admin/assistant/scenarios.py (deleted):
	Cleaning code. As by now the scenarios are bundled and have its own
	module this one is not needed anymore.
	* flumotion/scenario/steps (added):
	* flumotion/scenario/steps/__init__.py (added):
	* flumotion/scenario/steps/Makefile.am (added):
	Created a new module where the wizard steps will be placed.
	* flumotion/scenario/steps/steps.xml (added):
	Registry file for the steps bundle. The scenarios will depend on this.
	* flumotion/scenario/steps/summarysteps.py (added):
	* flumotion/scenario/steps/licensestep.py (added):
	* flumotion/admin/gtk/consumptionsteps.py (moved):
	New Location: flumotion/scenario/steps/consumptionsteps.py
	* flumotion/admin/gtk/diskersteps.py (moved):
	New Location: flumotion/scenario/steps/diskersteps.py
	* flumotion/admin/gtk/httpstreamersteps.py (moved):
	New Location: flumotion/scenario/steps/httpstreamersteps.py
	* flumotion/admin/gtk/shout2steps.py (moved):
	New Location: flumotion/scenario/steps/shout2steps.py
	* flumotion/admin/gtk/conversionsteps.py (moved):
	New Location: flumotion/scenario/steps/conversionsteps.py
	* flumotion/admin/gtk/productionsteps.py (moved):
	New Location: flumotion/scenario/steps/productionsteps.py
	* flumotion/admin/gtk/ondemandstep.py (moved):
	New Location: flumotion/scenario/steps/ondemandstep.py

	All the wizard steps were moved to the new module.

	* flumotion/admin/admin.py:
	Adding the proxy methods to the adminModel for fetching the scenarios.
	* flumotion/admin/assistant/interfaces.py:
	Added the IScenarioAssistantPlugin, implemented by the scenarios.
	* flumotion/admin/gtk/adminwindow.py:
	Modified the _runAddNewFormatAssistant method. It now creates a new
	ConfigurationAssistant and sets its mode to 'addformat'.
	* flumotion/admin/gtk/configurationassistant.py:a
	Various changes:
		- The ConfigurationAssistant has different modes. The normal
		wizard will use the 'normal' mode and the AddFormat wizard
		will use the 'addformat' mode.
		- The ConfigurationAsssitant now fetches the scenarios
		remotelly from the manager.
		- The LiveScenario's particular methods have been moved to the
		live scenario code.
	* flumotion/admin/gtk/overlaystep.py:
	* flumotion/common/registry.py:
	Added the methods in the parser to understand the scenario bundles.
	* flumotion/manager/admin.py:
	Added remote methods to the admin avatar for fetching the available
	scenarios and sending them to the remote client.
	* flumotion/component/encoders/theora/wizard_gtk.py:
	* flumotion/test/test_wizard_save.py:
	Modified an import because the step modules were moved.
	* configure.ac:
	Added the new directory 'flumotion/scenario' and its contents to the
	configure.ac
	* flumotion/Makefile.am:
	Fixes #1164

2008-11-10  Jan Urbanski  <jurbanski@flumotion.com>

	* flumotion/test/test_comptest.py:
	Change underscores to camel case in test names. No functional changes.

2008-11-10  Xavier Queralt Mateu <xqueralt at flumotion dot com>

	* flumotion/test/test_wizard_save.py:
	Fixed the tests for the changes on the previous commit.

2008-11-10  Xavier Queralt Mateu  <xqueralt at flumotion dot com>

	* flumotion/component/encoders/theora/wizard_gtk.py:
	Now the Theora encoder receives the correct bitrate from the wizard.
	Fixes #1185

2008-11-10  Sebastien Merle  <sebastien@fluendo.com>

	reviewed by: Jan Urbanski  <jurbanski@flumotion.com>

	* flumotion/component/misc/httpserver/ratecontrol.py:
	Fixed the rate control plug when clients were consuming
	slower than the specified bitrate.
	More comments from Jan.

2008-11-10  Xavier Queralt Mateu  <xqueralt at flumotion dot com>

	reviewed by: Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/admin/gtk/main.py:
	  Fix a bug with the windows version of twisted.
	* flumotion/ui/trayicon.py:
	  Use the gtk.StatusIcon instead of EggTrayIcon when gtk 2.10 or
	  greater is present.
	  Fixes #850

2008-11-07  Thomas Vander Stichele  <thomas at apestaart dot org>

	* common/common.mk:
	  Fail when any config fails to parse, not just the last one.
	* conf/examples/default.xml:
	* conf/examples/discont.xml:
	* conf/examples/twores.xml:
	  Remove <source> tags for <eater> tags.
	  Created related bug #1182.

2008-11-07  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/misc/httpserver/admin_gtk.py:
	* flumotion/component/misc/httpserver/cachedprovider.py:
	* flumotion/component/misc/httpserver/cachestats.py:
	* flumotion/component/misc/httpserver/httpserver.glade:
	  While canceled is allowed spelling, everywhere else we've
	  used cancelled instead.

2008-11-07  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/misc/httpserver/httpserver.xml:
	* flumotion/component/misc/httpserver/cachedprovider.py:
	  Use float from 0.0 to 1.0 instead of percentage.
	  Use ten-based powers for MB and KB.
	  Rename some properties to indicate low and high watermark.
	  Add some debugginf for cache cleanup.
	* conf/Makefile.am:
	* conf/examples/ondemand-cache.xml (added):
	  Add an example.

2008-11-05  Jan Urbanski  <jurbanski@flumotion.com>

	* common/show-coverage.py:
	Upgrade the algorithm that determines which lines were covered and
	which lines could be covered, but where not.

2008-11-04  Jan Urbanski  <jurbanski@flumotion.com>

	* flumotion/test/test_icalbouncer.py (added):
	Add a test case for the iCalendar bouncer. Fixes #1173.

2008-11-04  Jan Urbanski  <jurbanski@flumotion.com>

	* flumotion/component/consumers/disker/disker.py:
	Add missing import.

2008-11-04  Jan Urbanski  <jurbanski@flumotion.com>

	reviewed by: Arek Korbik <arek@flumotion.com>

	* flumotion/common/eventcalendar.py:
	Make the module importable without having icalendar and dateutils
	modules.
	Handle iCalendar files with "floating" date-time values.

	* flumotion/component/bouncers/icalbouncer.py:
	Make the iCal bouncer gracefuly handle the situation of missing
	icalendar and dateutil modules.
	Separate I/O exceptions from parsing exceptions when accessing an
	iCalendar file. Fixes #1171.

	* flumotion/component/consumers/disker/disker.py:
	Make the disker check for icalendar and dateutil support in the
	eventcalendar module after importing it. Fixes #1174.

2008-11-04  Pedro Gracia  <pedro@flumotion.com>

	* flumotion/monitor/nagios/stream.py:
	  Add support to check streams with timed token.

2008-11-03  Julien Le Goff <jlegoff@flumotion.com>

	reviewed by: Arek Korbik <arek@flumotion.com>

	* flumotion/manager/component.py:
	  Added a condition in the clock synchronization code that checks
	  whether components belong to the same flow.
	  Fixes #1160 and #1151

2008-11-03  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	* flumotion/worker/checks/gst010.py:
	  Fixed an identation error that makes the check to crash.

2008-11-03  Pedro Gracia  <pedro@flumotion.com>

	* flumotion/monitor/nagios/stream.py:
	  options error fixed and code clean up.

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

	* flumotion/manager/component.py:
	  If port can be None, it is a crime to debug it with %d.  Change
	  to %r instead.

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

	* flumotion/component/consumers/disker/disker.py:
	  Only import eventcalendar where we need it, so we don't always
	  drag in python-icalendar.

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

	* flumotion.spec.in:
	  Add a directory for rrd databases that the group can write to.

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

	* flumotion/component/plugs/plugs.xml:
	* flumotion/component/plugs/rrd.py:
	  Make it 8 days/weeks/months/years instead of 2.

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

	* common/Makefile.am:
	  Dist the source flumotion-trial.in, not the generated version.

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

	* flumotion/component/plugs/plugs.xml:
	  Add 'step-size' property.  Cleanups.
	* flumotion/component/plugs/rrd.py:
	  Make step-size configurable.  More cleanups.

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

	* flumotion/component/plugs/rrd.py:
	  camelcasing, privatizing, variable renaming, commenting,
	  logging changes.

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

	* flumotion/component/plugs/rrd.py:
	  Various style cleanups, logging changes, translation.

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

	* flumotion/component/producers/audiotest/audiotest.py:
	There was no check on the elements' existence.
	This would cause, if there was for example no level, the only
	error reported to be a failure in providing master clock.

2008-10-29  Johan Dahlin  <johan@flumotion.com>

	* flumotion/ui/wizard.py:
	Document WizardStep & SectionWizard.
	Make ui elements only used by section wizard private
	to avoid other modules importing them.

2008-10-29  Jan Urbanski  <jurbanski@flumotion.com>

	* flumotion/component/bouncers/icalbouncer.py:

	Fix a typo described in #1173. Use UTC time instead of local time for
	comparisions (the attempt at using local time was broken anyway, as it
	caused an import error).

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

	* flumotion/test/test_common_eventcalendar.py:
	  Add a test that shows the length of an event spanning a
	  daylight savings time change is correct.
	  Remove an assert that fails only during winter time due to
	  a possible bug in python-iCalendar; see
	  https://thomas.apestaart.org/thomas/trac/browser/tests/icalendar/

2008-10-27  Sebastien Merle  <sebastien@fluendo.com>

	* flumotion/component/bouncers/icalbouncer.py:
	* flumotion/component/bouncers/plug.py:
	* flumotion/component/bouncers/tokentest.py:
	* flumotion/test/bouncertest.py:
	Fixed the bouncer tests.
	Applied the bouncer fixes to the plug version of the bouncer.
	Fixed ical and tokentest bouncers use of addKeycard.

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

	* flumotion/common/messages.py:
	  also log debug if it's there.
	* flumotion/component/consumers/disker/disker.py:
	* flumotion/component/combiners/switch/switch.py:
	* flumotion/component/bouncers/icalbouncer.py:
	  Use calendar to get event instances.
	  Change to use eventInstanceStarted/Ended callbacks.
	* flumotion/component/base/scheduler.py:
	  Based on the mtime of a previous recording, decide whether to
	  overwrite (if it was part of a previous event) or change filename
	  (if it is part of the current event).
	  Add a simple duration check to the rescheduling, and complain
	  if it is more than half a second.
	  (It used to be 7 seconds for the simple urgent.ics test case.)
	  Compare old and new active events only by content, since
	  start and end times might have changed of the currently active
	  event.
	  Add self._calendar, getCalendar and setCalendar.
	  Remove removeEvent, calendars always keep their events and
	  schedule with instances.
	  Remove replaceEvents.
	  Change subscribe to take functions that notify about instances
	  starting and ending, instead of events.
	  Change the core, getNextEvent, to a function that gets the next
	  points, so that all points at that time get handled, not just
	  one.
	  Schedule handling of the next set of points as a group in one
	  callLater.
	* flumotion/test/test_component_base_scheduler.py:
	* flumotion/test/test_common_eventcalendar.py:
	* flumotion/common/eventcalendar.py:
	  Fix bug in getActiveInstances where it was ignoring events with
	  a RECURRENCE-ID that should specialize the rrule.
	  Switch to UTC for interpreting tz-less dates, since most likely
	  a file with no tz information will not magically happen to be
	  in the same time zone as the server that will run the component.
	  Add a new Calendar object to collect the EventSets parsed from
	  an iCalendarfile.
	  Make Points naturally sort end first.
	  Make clipping getPoints to start and end optional, because
	  you don't want asking the Calendar for points to be clipping.
	* flumotion/component/consumers/disker/disker.py:
	  Add next-points to the uiState, keeping track of the next
	  points on the schedule in the disker's window.
	* flumotion/component/consumers/disker/admin_gtk.py:
	  Expose the next-points with a kiwi object-list that gets updated
	  when the disker reschedules.
	* flumotion/test/Makefile.am:
	* flumotion/test/test_component_base_vevent.py:
	  Remove.
	* flumotion/admin/rrdmon/rrdmon.py:
	  Update to use new calendar interface, though I doubt the scheduler
	  ever worked for this program, since the rrule was passed as a
	  timedelta but nothing handled it as a timedelta.
	* flumotion/test/urgent.ics (added):
	  Add test ics from #821.

	  Merging branch ticket-1143

	  Fixes #1143 and #821.

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

	* flumotion/component/misc/httpserver/httpserver.py:
	  Make Request.fd public so the request can be identified.
	  When we time out sessions, give us a clue which session we're timing
	  out.

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

	* misc/jhbuildrc.flu:
	  JHBuild was changed, and apparently any variable without a _ prefix
	  is considered as an unknown parameter.

2008-10-21  Sebastien Merle  <sebastien@fluendo.com>

	* flumotion/component/bouncers/bouncer.py:
	Made addKeycard accept already added keycards.

2008-10-20  Pedro Gracia  <pedro@flumotion.com>

	* flumotion/monitor/nagios/stream.py:
	Nagios stream check do critical without delay if founds different
	stream params.

2008-10-20  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	reviewed by: Johan Dahlin  <johan@flumotion.com>

	* flumotion/admin/gtk/componentview.py:
	Delete the notebooks each time we open a new one,
	this way we don't have multiple notebooks.
	Fixes #1070

2008-10-20  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	reviewed by: Johan Dahlin  <johan@flumotion.com>

	* data/image/16x16/Makefile.am:
	* data/image/24x24/Makefile.am:
	* flumotion/admin/gtk/adminwindow.py:
	* flumotion/ui/icons.py:
	Replaced the custom play/stop icons for the stock ones.
	* data/image/24x24/pause.png (deleted):
	* data/image/24x24/play.png (deleted):
	* data/image/24x24/stop.png (deleted):
	* data/image/24x24/about.png (deleted):
	* data/image/16x16/pause.png (deleted):
	* data/image/16x16/play.png (deleted):
	* data/image/16x16/stop.png (deleted):
	* data/image/16x16/about.png (deleted):
	Custom images deleted from the tree as they are
	no longer used.
	Fixes #1014

2008-10-20  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	reviewed by: Johan Dahlin  <johan@flumotion.com>

	* flumotion/ui/glade.py:
	A temporal workaround, added a signal to GladeDelegate.
	Fixes #1124

2008-10-20  Xavier Queralt Mateu  <xqueralt@flumotion.com>

	reviewed by: Johan Dahlin  <johan@flumotion.com>

	* flumotion/admin/gtk/adminwindow.py:
	Clear the component list when connecting to a new
	manager and allow the wizard to reapear when it is
	closed without finishing the configuration.
	Fixes #695

2008-10-20  Xavier Queralt Mateu <xquearlt@flumotion.com>

	reviewed by: Johan Dahlin  <johan@flumotion.com>

	* data/glade/connection-dialog.glade:
	* data/glade/greeter-load_connection.glade:
	* flumotion/admin/gtk/connections.py:
	* flumotion/admin/gtk/greeter.py:
	Disables the connect button when the recent
	connections list is cleared.
	Fixes #1051

2008-10-20  Xavier Queralt  <xqueralt@flumotion.com>

	reviewed by: Johan Dahlin  <johan@flumotion.com>

	* flumotion/admin/admin.py:
	* flumotion/admin/gtk/adminwindow.py:
	Free the old connection when switching managers.
	Fixes #758

2008-10-20  Sebastien Merle  <sebastien@fluendo.com>

	* flumotion/component/bouncers/bouncer.py:
        Removed the UI state updates.

2008-10-20  Sebastien Merle  <sebastien@fluendo.com>

	* flumotion/component/bouncers/bouncer.py:
        Fixed the do_close method to return a deferred called when
        all keycard has been revoked.
        Made addKeycard return if the keycard has been added.
        Added two virtual methods where subclasses can safely
        update and cleanup data related to keycards.
        Fixes #1153

2008-10-27  Sebastien Merle  <sebastien@fluendo.com>

	* flumotion/component/bouncers/plug.py:
	Added a comment to remember the new expireKeycardIds
	API has not been duplicated to the plug version
	of the bouncer.

2008-10-22  Sebastien Merle  <sebastien@fluendo.com>

	* flumotion/component/bouncers/bouncer.py:
	Accept calls to expireKeycardIds that return None,
	because the current tests do not support return values.

2008-10-22  Sebastien Merle  <sebastien@fluendo.com>

	* flumotion/component/base/http.py:
	Fixed a bug in setIssuerClass.

2008-10-22  Sebastien Merle  <sebastien@fluendo.com>

	* flumotion/common/keycards.py:
	* flumotion/component/base/http.py:
	* flumotion/twisted/credentials.py:
	Added an HTTPGetArguments credential, keycard and issuer.

2008-10-20  Sebastien Merle  <sebastien@fluendo.com>

	* flumotion/component/base/http.py:
        Do not call back the bouncer when told to expire some keycard.
        Done by cleaning up all keycard lists when expiring a keycard,
        and not calling the bouncer in cleanAuth when the keycard
        has previously been cleaned up.
        Fixes #1155

2008-10-16  Sebastien Merle  <sebastien@fluendo.com>

	* flumotion/component/base/http.py:
	* flumotion/component/bouncers/bouncer.py:
	* flumotion/component/consumers/httpstreamer/httpstreamer.py:
	* flumotion/component/misc/httpserver/httpserver.py:
	* flumotion/manager/component.py:
	Added expireKeycardIds method to the base Bouncer class,
	the methods for the manager to forward the calls,
	and fixed the consumers to use the new method.

2008-10-16  Sebastien Merle  <sebastien@fluendo.com>

	* flumotion/manager/component.py:
	Added to the component avatar the method to forward
	keep-alive calls to the bouncers.
	Fixes #895

2008-10-15  Jan Urbanski  <jurbanski@flumotion.com>

	* common/Makefile.am:
	Add flumotion-trial to EXTRA_DIST in common/Makefile.am.

2008-10-15  Pedro Gracia  <pedro@flumotion.com>

	* flumotion/monitor/nagios/stream.py:
	Fixed an error that makes this script fail with playlists.

2008-10-14  Jan Urbanski  <jurbanski@flumotion.com>

	* Makefile.am:
	Temporarily add misc/flumotion-trial to CLEANFILES, because
	flumotion-trial.in has been moved from misc/ to common/ which might
	have left a stale generated file in old trees.

2008-10-14  Jan Urbanski  <jurbanski@flumotion.com>

	* flumotion/common/testsuite.py:
	Set the skip attribute on the testcase class instead of setting it on
	the instance. This is a workaround for Twisted 2.0.1.
	svn:ignore flu-saved-coverage.pickle

2008-10-14  Jan Urbanski  <jurbanski@flumotion.com>

	* flumotion/common/testsuite.py:
	Add more workarounds for ancient Twisted versions.

	* flumotion/test/test_comptest.py:
	Define an empty runTest method in the dummy TestCase so trial won't
	complain when it will try to instantiate it.

2008-10-13  Jan Urbanski  <jurbanski@flumotion.com>

	* flumotion/test/test_comptest.py:
	Work around broken Twisted < 2.5.0 trial, which has None as the default
	argument for TestCase.__init__

2008-10-13  Jan Urbanski  <jurbanski@flumotion.com>

	* flumotion/common/testsuite.py:
	Fix the build by checking for specific function signature instead of
	relying on the Twisted version number, which is not provided in SVN
	Twisted checkouts.

2008-10-13  Jan Urbanski  <jurbanski@flumotion.com>

	* flumotion/common/testsuite.py:
	Fix the build by supporting Twisted versions < 2.5.0

2008-10-13  Jan Urbanski  <jurbanski@flumotion.com>

	* common/flumotion-trial.in (added):
	* misc/flumotion-trial.in (deleted):
	Move flumotion-trial from misc/ to common/ in roder to have it picked
	up in flumotion-template

	* common/common.mk:
	* common/trial.mk:
	* configure.ac:
	Change the paths to flumotion-trial from misc/ to common/

2008-10-13  Jan Urbanski  <jurbanski@flumotion.com>

	* flumotion/test/comptest.py:
	* flumotion/test/test_comptest.py:
	Adapt comptest to the recent changes in component initialization
	protocol.
	* flumotion/common/testsuite.py:
	Extend flumotion.common.testsuite.TestCase to allow choosing supported
	reactors for each test case. Running a test case with a reactor that's
	not supported by it will result in a skip.
	* configure.ac:
	* misc/flumotion-trial.in:
	Add a wrapper script for Twisted trial to support an additional
	parameter --saved-coverage. It should point to a file which will store
	intermediate coverage results between consecutive trial runs. For more
	see http://docs.python.org/library/trace.html and the Trace class
	`infile' and `outfile' params.
	* common/common.mk:
	* common/trial.mk:
	Change the `check' and `coverage' make targets to take advantage of the
	new features. There will now be two separate flumotion-trial runs, with
	different reactors, and intermediate coverage results will get stored
	in a file. This allows for running test cases that require different
	reactors and still getting total coverage results.
	* flumotion/test/test_component_disker.py:
	Add a test for the Disker component using new comptest features.
	* flumotion/component/consumers/disker/disker.py:
	Fix confusing log message.
	* flumotion/component/padmonitor.py:
	Fix a bug in EaterPadMonitor where stopping the component inside a
	EaterPadMonitor.setInactive() call would result in the reactor ending
	up in an unclean state.

2008-10-13  Sebastien Merle  <sebastien@fluendo.com>

	* flumotion/component/misc/httpserver/httpfile.py:
	Fixed forgotten parameters in case of authentication failure.

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

	* scripts/check-sync-on-feeds:
	  Show me nicer timestamps.

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

	* flumotion/common/common.py:
	  Assertions need to have a reason.

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

	* flumotion/component/base/baseadminnode.py:
	Document self.wtree and self.widget.

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

	* flumotion/admin/gtk/connections.py:
	  Make typeahead actually useful by matching on 'contains', not
	  'starts with'.

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

	* flumotion/admin/command/common.py:
	  Import missing module.

2008-10-01  Johan Dahlin  <johan@flumotion.com>

	* flumotion/admin/gtk/configurationassistant.py:
	* flumotion/admin/gtk/productionsteps.py:
	Improve documentation, add a couple of docstrings explaining
	the design and implementation of the configuration assistant.
	No code changes.

2008-09-29  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/consumers/disker/disker.py:
	* flumotion/component/consumers/disker/disker_plug.py:
	  Change recording_started/_stopped to recordingStarted/Stopped to
	  conform to naming guidelines.

2008-09-27  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/command/common.py:
	  Add a method to connect to a manager.

2008-09-22  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/manager/component.py:
	  Document a method and add some debugging.

2008-09-21  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/test/test_component_httpserver.py:
	* flumotion/test/test_comptest.py:
	* flumotion/test/test_manager_component.py:
	* flumotion/test/test_manager_manager.py:
	  Fix MRO.

2008-09-21  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/consumers/disker/disker.py:
	  Add some debugging to help fix a problem.

2008-09-20  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/testsuite.py:
	  Make all TestCase objects Loggable.

2008-09-20  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/base/scheduler.py:
	  Get more useful logging to debug problems.

2008-09-19  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	reviewed by: Arek Korbik

	* flumotion/component/combiners/switch/switch.py:
	Use pad monitors for the sink pads in switch to check for active or
	inactive eaters.
	Rewrite new segment events coming in after an eater goes inactive to
	have a start time same as first buffer to avoid massive timestamp
	jumps in output of switch.

2008-09-17  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/monitor/nagios/stream.py:
	  Initialize self._gsterror

2008-09-17  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/monitor/nagios/stream.py:
	  Default to using gnomevfssrc, it's the oldest element and thus
	  more available, it's actually in base, and it throws a halfway
	  decent error on a 401, in contrast with the other two.
	  Add an option to treat resource read errors as OK; this is a
	  stopgap until this code gets changed to take a manager's bouncer
	  state for that streamer into account.

2008-09-16  Johan Dahlin  <johan@flumotion.com>

	* flumotion/common/i18n.py (installGettext):
	Check if bindtextdomain & textdomain are available before
	calling them.

	* flumotion/common/bundle.py: Make sure that renaming
	a temporary file in a bundle works on win32.

	* flumotion/common/netutils.py: Do nested import of fcntl,
	since it's not available on all platforms.

2008-09-15  Arek Korbik  <arkadini@gmail.com>

	* flumotion/common/config.py (parsePlug):
	* flumotion/manager/config.py (parseBool):
	Add some (old) deprecation warnings.

2008-09-16  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/monitor/nagios/stream.py:
	  gst.element_factory_make() raises gst.PluginNotFoundError, so
	  handle it.

2008-09-15  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/monitor/nagios/stream.py:
	  Also parse ELEMENT messages for missing-plugin.
	  Makes the checks work with neonhttpsrc and gnomevfssrc too.
	  Select the source element from a list of possibilities.
	  Import flumotion.common.log, easier to backport.

2008-09-15  Arek Korbik  <arkadini@gmail.com>

	* flumotion/admin/gtk/httpstreamersteps.py (checkElements):
	* flumotion/admin/gtk/overlaystep.py (checkElements):
	* flumotion/component/bouncers/ipbouncer.py (IPBouncer.do_setup):
	* flumotion/component/combiners/switch/switch.py (Switch.addWarning):
	* flumotion/component/converters/overlay/overlay.py
	  (Overlay.configure_pipeline):
	* flumotion/component/plugs/rrd.py (ComponentRRDPlug._check_import):
	* flumotion/worker/checks/check.py (checkPlugin):
	* flumotion/worker/checks/gst010.py (do_check):
	Remove deprecated use of 'id' keyword argument in calls of
	constructor of Message classes, use 'mid' instead.

	* flumotion/manager/component.py (ComponentAvatar.addMessage):
	* flumotion/manager/manager.py (Vishnu.addMessage):
	Rename the non-keyword 'id' argument to 'mid' in addMessage()
	methods.

2008-09-15  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/monitor/nagios/Makefile.am:
	  Actually dist stream.py

2008-09-15  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/monitor/nagios/util.py:
	  Add constructors for Nagios Exceptions.
	* flumotion/monitor/nagios/main.py:
	  Catch them from parsing.
	* flumotion/monitor/nagios/stream.py:
	  Make sure self._url is unchanged from the properties, so that
	  the script reports what URL was requested.
	  Check audio and video mime type against the encoded ones, which
	  is what we are interested in.
	  Only print one line in the case of a 404.
	  Document/comment.

2008-09-12  Arek Korbik  <arkadini@gmail.com>

	* common/validate-config.py:
	Make the script actually validate the whole flow file, not only
	the manager-specific parts.

2008-09-10  Johan Dahlin  <johan@flumotion.com>

	* flumotion/admin/assistant/scenarios.py:
	* flumotion/admin/gtk/adminwindow.py:
	* flumotion/admin/gtk/componentlist.py:
	Select a reasonable default component after closing the asssitant,
	fixes #1115

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

	* flumotion/component/plugs/plugs.xml:
	* flumotion/component/plugs/rrd.py:
	  Rename plug properties.  See #1111.

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

	* common/validate-registry.py:
	* flumotion/common/registry.py:
	* flumotion/launch/inspect.py:
	* flumotion/test/test_registry.py:
	* flumotion/component/bouncers/bouncer.xml:
	* flumotion/component/bouncers/tokentest.xml:
	* flumotion/component/misc/httpserver/httpserver.xml:
	* flumotion/component/plugs/cortado/cortado.xml:
	* flumotion/component/plugs/plugs.xml:
	  Add descriptions for plugs and their properties.
	  Add code to load and save them to the registry.
	  Validate that these are added to plugs and properties.
	  Closes #1139.

2008-09-05  Arek Korbik  <arkadini@gmail.com>

	* flumotion/configure/configure.py:
	Increase process termination timeouts, for now...

2008-09-05  Arek Korbik  <arkadini@gmail.com>

	* flumotion/configure/configure.py:
	* flumotion/common/medium.py (PingingMedium):
	* flumotion/twisted/pb.py (PingableAvatar):
	Unhardcode and (temporarily) increase the ping timeout multiplier.

2008-09-04  Thomas Vander Stichele  <thomas at apestaart dot org>

	* data/Makefile.am:
	* data/upgrade-to-0.5.3.xsl:
	* data/upgrade-to-0.5.3.xsl (added):
	  Add first stab at an upgrade xsl script.

2008-09-04  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/identity.py:
	* flumotion/component/plugs/identity.py:
	* flumotion/manager/config.py:
	* flumotion/manager/manager.py:
	* flumotion/test/test_config.py:
	  More IdentityProvider -> IdentityProviderPlug renames.

2008-09-04  Thomas Vander Stichele  <thomas at apestaart dot org>

	* common/validate-registry.py:
	  Add another check, instantiating the socket mentioned by a plug.
	* flumotion/component/misc/httpserver/cachedprovider.py:
	* flumotion/component/misc/httpserver/fileprovider.py:
	* flumotion/component/misc/httpserver/httpserver.xml:
	* flumotion/component/misc/httpserver/localprovider.py:
	* flumotion/component/plugs/plugs.xml:
	  Further Plug naming fixes.

2008-09-04  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/gtk/greeter.py:
	  Since the authentication method was removed, change the string.

2008-09-04  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/consumers/httpstreamer/httpstreamer.py:
	* flumotion/component/misc/httpserver/httpserver.py:
	* flumotion/manager/manager.py:
	  Fix more socket = '...' instances.
	* flumotion/test/test_component_httpstreamer.py:
	  Add a test for getStreamData.

2008-09-03  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/plugs/manhole.py:
	  lifecycle module is gone.
	* flumotion/extern/fdpass/__init__.py:
	  Insert some magic that makes flumotion.extern.fdpass.fdpass
	  importable in distcheck mode.

2008-09-03  Sebastien Merle  <sebastien@fluendo.com>

	* flumotion/component/misc/httpserver/admin_gtk.py:
	* flumotion/component/misc/httpserver/httpserver.glade:
	* flumotion/component/misc/httpserver/serverstats.py:
	Updated the http-server UI to better match the http-server UI.
	Removed some obscure statistics from the UI.
	Disabled the cache UI.

2008-09-03  Thomas Vander Stichele  <thomas at apestaart dot org>

	* common/validate-registry.py:
	  Make sure that all plugs can be instantiated.
	* flumotion/component/consumers/httpstreamer/httpstreamer.xml:
	* flumotion/component/misc/httpserver/cachedprovider.py:
	* flumotion/component/misc/httpserver/httpserver.py:
	* flumotion/component/misc/httpserver/httpserver.xml:
	* flumotion/component/misc/httpserver/localprovider.py:
	* flumotion/component/plugs/rrd.py:
	* flumotion/test/test_component_httpserver.py:
	  Further Plug class renaming.

2008-09-03  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/plugs/cortado/cortado.py:
	* flumotion/component/plugs/cortado/cortado.xml:
	  Properly fix ComponentCortadoPlug naming.
	  This fixes the build and fixes the assistant.

2008-09-03  Johan Dahlin  <johan@flumotion.com>

	* flumotion/component/plugs/cortado/cortado.xml:
	Clean up after Thomas. Rename Cortado plug in the xml too.

2008-09-02  Arek Korbik  <arkadini@gmail.com>

	* flumotion/component/plugs/Makefile.am:
	Fix after tired Thomas - add request.py to Makefile.am.

2008-09-02  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/consumers/httpstreamer/httpstreamer.xml:
	* flumotion/component/consumers/httpstreamer/resources.py:
	* flumotion/component/misc/httpserver/httpserver.py:
	* flumotion/component/misc/httpserver/httpserver.xml:
	* flumotion/component/plugs/plugs.xml:
	* flumotion/test/test.xml:
	* flumotion/test/test_component_httpstreamer.py:
	* flumotion/test/test_http.py:
	* flumotion/test/test_manager_config.py:
	* po/POTFILES.in:
	* flumotion/component/plugs/request.py (added):
	* flumotion/component/plugs/loggers.py (deleted):
	  Move loggers.py to request.py.  Part of fixing up after #946.

2008-09-02  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/plugs/Makefile.am:
	* flumotion/component/plugs/base.py:
	* flumotion/component/plugs/plugs.xml:
	* flumotion/component/plugs/lifecycle.py (deleted):
	  Remove lifecycle.py as mentioned in #946.

2008-09-02  Thomas Vander Stichele  <thomas at apestaart dot org>

	* common/validate-registry.py:
	  Validate plug naming.

2008-09-02  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/bouncers/bouncer.xml:
	* flumotion/component/bouncers/plug.py:
	* flumotion/component/bouncers/tokentest.py:
	* flumotion/component/bouncers/tokentest.xml:
	* flumotion/component/consumers/httpstreamer/httpstreamer.xml:
	* flumotion/component/consumers/httpstreamer/resources.py:
	* flumotion/component/misc/httpserver/cachedprovider.py:
	* flumotion/component/misc/httpserver/httpserver.py:
	* flumotion/component/misc/httpserver/httpserver.xml:
	* flumotion/component/misc/httpserver/localprovider.py:
	* flumotion/component/misc/httpserver/ratecontrol.py:
	* flumotion/component/plugs/adminaction.py:
	* flumotion/component/plugs/cortado/cortado.xml:
	* flumotion/component/plugs/cortado/wizard_gtk.py:
	* flumotion/component/plugs/identity.py:
	* flumotion/component/plugs/lifecycle.py:
	* flumotion/component/plugs/loggers.py:
	* flumotion/component/plugs/manhole.py:
	* flumotion/component/plugs/plugs.xml:
	* flumotion/component/plugs/streamdata.py:
	* flumotion/launch/main.py:
	* flumotion/manager/config.py:
	* flumotion/manager/manager.py:
	* flumotion/test/test.xml:
	* flumotion/test/test_component_bouncers_component.py:
	* flumotion/test/test_component_bouncers_plug.py:
	* flumotion/test/test_component_httpserver.py:
	* flumotion/test/test_component_httpstreamer.py:
	* flumotion/test/test_config.py:
	* flumotion/test/test_http.py:
	* flumotion/test/test_manager_config.py:
	  Rename plugs according to styleguide.  Fixes #946.

2008-09-02  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/misc/httpserver/httpserver.xml:
	* flumotion/component/plugs/plugs.xml:
	  Fix deprecated description attributes.
	* common/validate-registry.py:
	  Make using deprecated description attributes an error.

2008-09-02  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/test/test_manager_config.py:
	  Change so it won't break the 80 character rule after changing plug
	  names.

2008-09-02  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/plugs/rrd.py:
	  Fix header.

2008-09-02  Sebastien Merle  <sebastien@fluendo.com>

	* flumotion/component/misc/httpserver/Makefile.am:
	Added serverstats.py to the makefile.

2008-09-02  Sebastien Merle  <sebastien@fluendo.com>

	* flumotion/test/test_component_httpserver.py:
	Updated tests to pass with the new httpserver.

2008-09-02  Sebastien Merle  <sebastien@fluendo.com>

	* flumotion/component/misc/httpserver/httpfile.py:
	If asked for a range that include the whole file,
	respond with a range (206) as before instead of a normal request (200).
	Couldn't find a conclusive answer in the spec.

2008-09-02  Sebastien Merle  <sebastien@fluendo.com>

	* flumotion/component/misc/httpserver/httpfile.py:
	* flumotion/component/misc/httpserver/httpserver.py:
	Moved the response code and content type setting from
	the CancelableRequest class to the File class,
	for consistency and to make testing easier.

2008-09-02  Sebastien Merle  <sebastien@fluendo.com>

	* flumotion/component/misc/httpserver/httpserver.py:
	Properly cleanup the uptime update delayed call.

2008-09-01  Sebastien Merle  <sebastien@fluendo.com>

	Merged from svn branch httpserver-caching.

	* flumotion/component/misc/httpserver/Makefile.am:
	* flumotion/component/misc/httpserver/admin_gtk.py:
	* flumotion/component/misc/httpserver/httpfile.py:
	* flumotion/component/misc/httpserver/httpserver.glade:
	* flumotion/component/misc/httpserver/httpserver.py:
	* flumotion/component/misc/httpserver/httpserver.xml:
	* flumotion/component/misc/httpserver/cachedprovider.py:
	* flumotion/component/misc/httpserver/cachestats.py:
	* flumotion/component/misc/httpserver/fileprovider.py:
	* flumotion/component/misc/httpserver/localpath.py:
	* flumotion/component/misc/httpserver/localprovider.py:
	* flumotion/component/misc/httpserver/serverstats.py:
	Made the file browsing and serving of the httpserver component a plug.
	Added statistics gathering to the httpserver component.
	Added a local caching plug for the httpserver component.
	Fixed the source to pass pep8.py.

2008-09-01  Johan Dahlin  <johan@gnome.org>

	* data/glade/admin-wizard.glade:
	Change the title of the greeter, fixes #1012.

2008-09-01  Murray Cumming  <murrayc@murrayc.com>

	* flumotion/component/encoders/smoke/wizard.glade: Key frame instead of
	Keyframe.

2008-09-01  Murray Cumming  <murrayc@murrayc.com>

	* flumotion/component/encoders/theora/wizard.glade: Change keyframe
	to key frame in UI strings.

2008-08-30  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/command/component.py:
	* flumotion/admin/command/manager.py:
	* flumotion/admin/command/worker.py:
	* flumotion/monitor/nagios/log.py:
	* flumotion/monitor/nagios/main.py:
	* flumotion/monitor/nagios/process.py:
	* flumotion/monitor/nagios/stream.py:
	  Remove own name from usage.

2008-08-29  Thomas Vander Stichele  <thomas at apestaart dot org>

	* data/glade/welcome-wizard.glade:
	  Make first page less scary.  Fixes #1122.

2008-08-29  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/process.py:
	  Document and make SystemError correct.

2008-08-29  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/assistant/scenarios.py:
	  Make scenario descriptions consistent.  Fixes #1123.

2008-08-29  Pedro Gracia  <pedro@flumotion.com>

	* flumotion/common/netutils.py:
	  Changes to support Solaris.

2008-08-29  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/bouncers/Makefile.am:
	  Properly package ipbouncer.xml so make distcheck works again.

2008-08-29  Pedro Gracia  <pedro@flumotion.com>

	* flumotion/component/consumers/httpstreamer/httpstreamer.xml:
	* flumotion/component/misc/httpserver/httpserver.xml:
	* flumotion/component/plugs/plugs.xml:
	  Socket name have to follow the style guide.

2008-08-29  Pedro Gracia  <pedro@flumotion.com>

	reviewed by: Arek Korbik  <arkadini@gmail.com>

	* flumotion/component/consumers/httpstreamer/httpstreamer.xml:
	* flumotion/component/misc/httpserver/httpserver.py:
	* flumotion/component/misc/httpserver/httpserver.xml:
	* flumotion/component/plugs/Makefile.am:
	* flumotion/component/plugs/plugs.xml:
	* flumotion/component/plugs/rrd.py:
	  Streamers can write RRD files directly with this plug.
	  Fixes #1111.

2008-08-29  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/eventcalendar.py:
	  Fix repr interpolation.
	  Makes FLU_DEBUG=4 trial
	  flumotion.test.test_component_base_scheduler.SchedulerTest
	  not fail.

2008-08-29  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/monitor/nagios/main.py:
	  Fix comment.

2008-08-28  Johan Dahlin  <johan@flumotion.com>

	* flumotion/manager/config.py:
	* flumotion/test/test_manager_config.py:
	Make sure multiple config properties are serialized property.
	Add a test.

2008-08-28  Murray Cumming  <murrayc@murrayc.com>

	* flumotion/component/consumers/disker/disker.glade: Start New File
	button: Use header capitalization as per the HIG.

2008-08-28  Johan Dahlin  <johan@flumotion.com>

	* data/glade/sectionwizard.glade:
	* flumotion/ui/wizard.py:
	Revert wizard forward/finish change.
	Fixes #996

2008-08-27  Thomas Vander Stichele  <thomas at apestaart dot org>

	* common/common.mk:
	  Make sure we execute trial for coverage in the built environment.

2008-08-27  Thomas Vander Stichele  <thomas at apestaart dot org>

	* Makefile.am:
	  Make sure we validate the registry.
	* flumotion/component/consumers/httpstreamer/resources.py:
	* flumotion/component/misc/httpserver/httpserver.py:
	* flumotion/test/test_http.py:
	  Break some lines in preparation for a plug rename.

2008-08-27  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/twisted/compat.py:
	  Trigger deprecation on using a function, not importing.  This way
	  we can get a call site that is not in ihooks.py and have a hope
	  of fixing them.

2008-08-27  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/launch/inspect.py:
	  These two lines print the same thing, so might as well show it only
	  once.

2008-08-27  Johan Dahlin  <johan@flumotion.com>

	* flumotion/ui/wizard.py (WizardSidebar.jumpToStep): Sidebar is
	in wizard.

2008-08-27  Johan Dahlin  <johan@fluflumotion.com>

	* flumotion/component/producers/audiotest/audiotest.xml:
	* flumotion/component/producers/videotest/videotest.xml:
	Make the video/audio test component descriptions shorter

2008-08-27  Murray Cumming  <murrayc@murrayc.com>

	* data/glade/shout2-wizard.glade: Changed some labels and added some
	tooltips to make this slightly less confusing.

2008-08-27  Johan Dahlin  <johan@flumotion.com>

	* flumotion/ui/fileselector.py (FileSelector._rowActivated):
	raise NotImplementedError instead of just NotImplemented.

2008-08-26  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/worker/checks/gst010.py:
	New firewire stack does not create raw1394 device node so check
	for /dev/fw0 as well.

2008-08-26  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/command/common.py:
	* flumotion/admin/command/component.py:
	* flumotion/admin/command/manager.py:
	* flumotion/monitor/nagios/log.py:
	* flumotion/ui/fileselector.py:
	  pychecker cleanups.

2008-08-26  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/test/test_config.py:
	  Move config to the left so it doesn't exceed 80 chars after
	  renaming.  Maybe we should do this for all of them.

2008-08-26  Murray Cumming  <murrayc@murrayc.com>

	* flumotion/admin/gtk/httpstreamersteps.py:
	* flumotion/admin/gtk/shout2steps.py: Added docSection IDs for
	these assistant pages.

2008-08-26  Johan Dahlin  <johan@flumotion.com>

	* data/glade/sectionwizard.glade:
	Add left,right & bottom padding to the message view.

2008-08-25  Johan Dahlin  <johan@flumotion>

	* data/glade/http-wizard.glade:
	* flumotion/admin/gtk/consumptionsteps.py:
	* flumotion/admin/gtk/httpstreamersteps.py:
	* flumotion/component/plugs/cortado/wizard_gtk.py:
	* flumotion/worker/checks/http.py:
	Make it possible to override the public hostname.
	Fixes #928.

2008-08-25  Johan Dahlin  <johan@flumotion>

	* common/common.mk (check-local-pep8): Add --repeat here, so we
	can see more than just the first error.

2008-08-25  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/manager/config.py:
	  Add some newlines to serialization around flows/atmosphere and
	  components so the structure of the XML is visually clear again.

2008-08-25  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/producers/audiotest/audiotest.xml:
	* flumotion/component/producers/videotest/videotest.xml:
	  Update descriptions to talk about example and demonstration.
	  See #1090.

2008-08-24  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/gtk/adminwindow.py:
	* flumotion/admin/gtk/componentlist.py:
	  Instead of only removing locally added messages in the current
	  admin client, make sure that all admin clients remove their
	  locally added messages any time a component goes to sleeping.
	  Thanks to Arek for the suggestion.

2008-08-24  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/base/baseadminnode.py:
	  When there is a component UI error in a tab, say which tab.
	  When the error is because the component's Node still uses glade_file
	  then warnings.warn and show a component warning message, but
	  still work.

2008-08-24  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/base/baseadminnode.py:
	  Make the TypeError clearer by saying which method is responsible
	  for the bug.

2008-08-24  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/gtk/adminwindow.py:
	  Make sure that, when you stop a component, all client-side messages
	  are cleared from the state, so that the UI can remove them when
	  the component is sleeping.  This got broken again recently, please
	  take care when rewriting UI code.

2008-08-24  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/base/baseadminnode.py:
	  Make the id of render errors unique by using the title of the
	  Node.  This makes sure that render error messages from one node
	  do not get removed by the successful rendering of another node,
	  both deriving from the same base class.

2008-08-24  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/gtk/adminwindow.py:
	  Make docstrings adhere to style guide.
	  Document the fact that _componentDo can also take a None state,
	  in which case it will look at the current selection.

2008-08-24  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/command/common.py:
	* flumotion/admin/command/component.py:
	* flumotion/admin/command/manager.py:
	  Fixes and cleanups.

2008-08-24  Arek Korbik  <arkadini@gmail.com>

	* flumotion/common/bundle.py:
	Revert r6608 and r6614, as they introduced a fatal race condition
	in the unbundling code. Fixes #1116.

2008-08-23  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/service/main.py:
	  make it clear that condrestart is available.

2008-08-23  Murray Cumming  <murrayc@murrayc.com>

	* flumotion/admin/gtk/dialogs.py:
	* flumotion/admin/gtk/diskersteps.py:
	* flumotion/admin/gtk/greeter.py:
	* flumotion/admin/gtk/httpstreamersteps.py:
	* flumotion/admin/gtk/shout2steps.py:
	* flumotion/component/encoders/dirac/wizard_gtk.py:
	* flumotion/component/encoders/jpeg/wizard_gtk.py:
	* flumotion/component/encoders/mulaw/wizard_gtk.py:
	* flumotion/component/encoders/smoke/wizard_gtk.py:
	* flumotion/component/encoders/speex/wizard_gtk.py:
	* flumotion/component/encoders/theora/wizard_gtk.py:
	* flumotion/component/encoders/vorbis/wizard_gtk.py:
	* flumotion/component/producers/webcam/wizard_gtk.py:
	* flumotion/ui/simplewizard.py:
	Corrected the capitalization in dialog/assistant-page titles
	and assistant sidebar titles, as per
	http://library.gnome.org/devel/hig-book/stable/design-text-labels.html.en#layout-capitalization
	* flumotion/component/producers/firewire/wizard_gtk.py:
	Change the Firewire title to Firewire Video. Firewire Audio
	already has the corrected title.
	* flumotion/admin/gtk/ondemandstep.py: Change the title from
	Demand to On Demand.
	* flumotion/component/producers/webcam/wizard_gtk.py:
	Corrected a docSection.

2008-08-23  Murray Cumming  <murrayc@murrayc.com>

	* flumotion/admin/assistant/scenarios.py:
	* flumotion/admin/gtk/configurationassistant.py:
	* flumotion/admin/gtk/consumptionsteps.py:
	* flumotion/admin/gtk/httpstreamersteps.py:
	* flumotion/admin/gtk/ondemandstep.py:
	* flumotion/admin/gtk/overlaystep.py:
	* flumotion/component/encoders/dirac/wizard_gtk.py:
	* flumotion/component/encoders/jpeg/wizard_gtk.py:
	* flumotion/component/encoders/mulaw/wizard_gtk.py:
	* flumotion/component/encoders/smoke/wizard_gtk.py:
	* flumotion/component/encoders/speex/wizard_gtk.py:
	* flumotion/component/encoders/theora/wizard_gtk.py:
	* flumotion/component/encoders/vorbis/wizard_gtk.py:
	* flumotion/component/producers/audiotest/wizard_gtk.py:
	* flumotion/component/producers/bttv/wizard_gtk.py:
	* flumotion/component/producers/firewire/wizard_gtk.py:
	* flumotion/component/producers/soundcard/wizard_gtk.py:
	* flumotion/component/producers/videotest/wizard_gtk.py:
	Added docSection strings to enable the help buttons.
	I think that all of the possible assistant pages now have help buttons.

2008-08-22  Pedro Gracia  <pedro@flumotion.com>

	* flumotion/monitor/nagios/main.py:
	* flumotion/monitor/nagios/stream.py:
        More complete streams checking for flumotion-nagios.
        See #2058 (pt)

2008-08-22  Johan Dahlin  <johan@flumotion.com>

	* data/glade/sectionwizard.glade:
	* flumotion/admin/gtk/configurationassistant.py:
	* flumotion/common/registry.py:
	* flumotion/manager/admin.py:
	* flumotion/ui/wizard.py:
	Add a component description to the wizard.
	Fixes #1099

2008-08-22  Johan Dahlin  <johan@flumotion.com>

	* data/glade/welcome-wizard.glade:
	Replace the string in the initial step, Fixes #889
	Patch by Murray Cumming.

2008-08-22  Johan Dahlin  <johan@flumotion.com>

	* data/glade/admin-wizard.glade:
	* data/glade/welcome-wizard.glade:
	wizard -> assistant

2008-08-20  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/monitor/nagios/Makefile.am:
	* flumotion/monitor/nagios/main.py:
	* flumotion/monitor/nagios/log.py (added):
	  Add implementation of flumotion-nagios log recent which can
	  check if a given string was logged recently.

2008-08-20  Johan Dahlin  <johan@flumotion.com>

	* flumotion/admin/assistant/Makefile.am (component_PYTHON):
	* flumotion/admin/gtk/Makefile.am (component_PYTHON):
	Add new files

2008-08-20  Johan Dahlin  <johan@flumotion.com>

	* configure.ac:
	* flumotion/Makefile.am:
	* flumotion/admin/assistant/scenarios.py:
	* flumotion/admin/gtk/addformatassistant.py:
	* flumotion/admin/gtk/adminwindow.py:
	* flumotion/admin/gtk/basesteps.py:
	* flumotion/admin/gtk/configurationassistant.py:
	* flumotion/admin/gtk/consumptionsteps.py:
	* flumotion/admin/gtk/conversionsteps.py:
	* flumotion/admin/gtk/diskersteps.py:
	* flumotion/admin/gtk/httpstreamersteps.py:
	* flumotion/admin/gtk/ondemandstep.py:
	* flumotion/admin/gtk/overlaystep.py:
	* flumotion/admin/gtk/shout2steps.py:
	* flumotion/component/encoders/*/wizard_gtk.py:
	* flumotion/job/job.py:
	* flumotion/test/test_wizard_save.py:
	* flumotion/ui/icons.py:
	* flumotion/ui/simplewizard.py:
	* flumotion/wizard/*:
	Move the rest of the files out of wizard/ and into
	flumotion/admin

2008-08-20  Johan Dahlin  <johan@flumotion.com>

	* flumotion/component/converters/overlay/overlay.py
	(Overlay.configure_pipeline): Remove extra text argument which
	shouldn't be sent in to the logotype warning

2008-08-20  Johan Dahlin  <johan@flumotion.com>

	* flumotion/ui/wizard.py (SectionWizard.updateButtons): Do not require
	an anchor for the help button to be clickable

2008-08-20  Johan Dahlin  <johan@flumotion.com>

	* data/glade/sectionwizard.glade:
	Move help to the left side. Fixes #826

2008-08-20  Murray Cumming  <murrayc@murrayc.com>

	* flumotion/admin/gtk/configurationassistant.py:
	* flumotion/component/producers/soundcard/wizard_gtk.py:
	* flumotion/component/producers/webcam/wizard_gtk.py:
	* flumotion/wizard/conversionsteps.py:
	* flumotion/wizard/productionsteps.py:
	* flumotion/wizard/scenarios.py: Used the new docSection IDs
	for the online help.

2008-08-18  Johan Dahlin  <johan@flumotion.com>

	* flumotion/admin/gtk/Makefile.am:
	* flumotion/admin/gtk/configurationassistant.py:
	* flumotion/admin/gtk/workerlist.py:
	* flumotion/wizard/Makefile.am:
	* flumotion/wizard/worker.py:
	Move the workerlist to flumotion/admin/gtk

2008-08-13  Johan Dahlin  <johan@flumotion.com>

	* flumotion/wizard/__init__.py:
	More backwards compatibility

2008-08-13  Johan Dahlin  <johan@flumotion.com>

	* flumotion/component/converters/overlay/genimg.py:
	* flumotion/component/converters/overlay/overlay.py:
	Rewrite and simplify the overlay image routines. Add a new
	error message when the logos overflow.
	Fixes #1062

2008-08-13  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/messages.py:
	  Put back two translatable classes for compatibility reasons, so
	  trunk code can connect to platform-3 managers.

2008-08-12  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/command/common.py:
	* flumotion/admin/command/component.py:
	* flumotion/admin/command/main.py:
	* flumotion/admin/command/worker.py:
	  managerDeferred->loginDeferred
	  adminModel->medium
	  More generic variable names for subclassing.

2008-08-12  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	  Final renames.

2008-08-12  Thomas Vander Stichele  <thomas at apestaart dot org>

	* bin/flumotion-command.in:
	* flumotion/admin/command/main.py:
	  Final renames.

2008-08-12  Thomas Vander Stichele  <thomas at apestaart dot org>

	* bin/Makefile.am:
	* flumotion.spec.in:
	* flumotion/admin/command/Makefile.am:
	* bin/flumotion-command.in (added):
	* bin/flumotion-admin-command.in (deleted):
	  Rename.

2008-08-12  Thomas Vander Stichele  <thomas at apestaart dot org>

	* bin/flumotion-admin-command.in:
	* flumotion/admin/command/main.py (added):
	* flumotion/admin/command/mains.py (deleted):
	  Rename module.

2008-08-12  Thomas Vander Stichele  <thomas at apestaart dot org>

	* bin/Makefile.am:
	* configure.ac:
	* flumotion.spec.in:
	* flumotion/admin/command/Makefile.am:
	* bin/flumotion-command.in (deleted):
	* flumotion/admin/command/commands.py (deleted):
	* flumotion/admin/command/main.py (deleted):
	  Delete old flumotion-command.

2008-08-12  Thomas Vander Stichele  <thomas at apestaart dot org>

	* bin/flumotion-admin-command.in (added):
	  Add main binary.

2008-08-12  Thomas Vander Stichele  <thomas at apestaart dot org>

	* bin/Makefile.am:
	* bin/flumotion-admin-command:
	* configure.ac:
	* flumotion/admin/command/common.py (added):
	* flumotion/admin/command/worker.py (added):
	* flumotion/admin/command/manager.py (added):
	* flumotion/admin/command/component.py (added):
	* flumotion/admin/command/mains.py (added):
	* flumotion/admin/command/Makefile.am:
	  Add new flumotion-admin-command, better abstracted, and using command
	  class.  This will replace flumotion-command.
	  Closes #725.

2008-08-12  Johan Dahlin  <johan@flumotion.com>

	* flumotion/admin/gtk/configurationassistant.py:
	* flumotion/wizard/conversionsteps.py:
	Remember the muxer, audio and video encoders when switching
	pages. The wizard steps are not persistent, so store
	the persistent bits in the wizard itself instead.
	Fixes #1095

2008-08-12  Johan Dahlin  <johan@flumotion.com>

	* flumotion/wizard/__init__.py:
	Provide BW compat until we updated and rebuilt all
	external packages.

2008-08-12  Johan Dahlin  <johan@flumotion.com>

	* data/glade/overlay-wizard.glade: Add a tooltip for the
	show logo checkbutton. Fixes #1094

2008-08-11  Johan Dahlin  <johan@flumotion.com>

	* flumotion/wizard/Makefile.am (flumotion_PYTHON):
	And remove configurationwizard.py from here.

2008-08-11  Johan Dahlin  <johan@flumotion.com>

	* flumotion/admin/Makefile.am (SUBDIRS): Add assistant here too,
	this should fix distcheck.

2008-08-11  Johan Dahlin  <johan@flumotion.com>

	* data/glade/sectionwizard.glade:
	* flumotion/admin/assistant/interfaces.py:
	* flumotion/admin/gtk/Makefile.am:
	* flumotion/admin/gtk/addformatassistant.py:
	* flumotion/admin/gtk/addformatwizard.py:
	* flumotion/admin/gtk/adminwindow.py:
	* flumotion/admin/gtk/configurationassistant.py:
	* flumotion/test/test_public_ui_api.py:
	* flumotion/test/test_wizard.py:
	* flumotion/wizard/configurationwizard.py:
	* flumotion/wizard/scenarios.py:
	Rename configurationwizard and move it to f/admin/gtk.
	Rename addformatwizard too.

2008-08-11  Johan Dahlin  <johan@flumotion.com>

	* configure.ac:
	* flumotion/admin/assistant/Makefile.am:
	* flumotion/admin/assistant/__init__.py:
	* flumotion/admin/assistant/configurationwriter.py:
	* flumotion/admin/assistant/interfaces.py:
	* flumotion/admin/assistant/models.py:
	* flumotion/admin/assistant/save.py:
	* flumotion/admin/gtk/adminwindow.py:
	* flumotion/component/encoders/dirac/wizard_gtk.py:
	* flumotion/component/encoders/jpeg/wizard_gtk.py:
	* flumotion/component/encoders/mulaw/wizard_gtk.py:
	* flumotion/component/encoders/smoke/wizard_gtk.py:
	* flumotion/component/encoders/speex/wizard_gtk.py:
	* flumotion/component/encoders/theora/wizard_gtk.py:
	* flumotion/component/encoders/vorbis/wizard_gtk.py:
	* flumotion/component/plugs/cortado/wizard_gtk.py:
	* flumotion/component/producers/audiotest/wizard_gtk.py:
	* flumotion/component/producers/bttv/wizard_gtk.py:
	* flumotion/component/producers/firewire/wizard_gtk.py:
	* flumotion/component/producers/soundcard/wizard_gtk.py:
	* flumotion/component/producers/videotest/wizard_gtk.py:
	* flumotion/component/producers/webcam/wizard_gtk.py:
	* flumotion/test/test_wizard_models.py:
	* flumotion/test/test_wizard_save.py:
	* flumotion/wizard/Makefile.am:
	* flumotion/wizard/configurationwizard.py:
	* flumotion/wizard/configurationwriter.py:
	* flumotion/wizard/consumptionsteps.py:
	* flumotion/wizard/conversionsteps.py:
	* flumotion/wizard/diskersteps.py:
	* flumotion/wizard/httpstreamersteps.py:
	* flumotion/wizard/interfaces.py:
	* flumotion/wizard/models.py:
	* flumotion/wizard/ondemandstep.py:
	* flumotion/wizard/overlaystep.py:
	* flumotion/wizard/productionsteps.py:
	* flumotion/wizard/save.py:
	* flumotion/wizard/scenarios.py:
	* flumotion/wizard/shout2steps.py:
	Rename and move the non gtk parts of the configuration wizard to
	admin/assistant.

2008-08-08  Murray Cumming  <murrayc@murrayc.com>

	* flumotion/component/*/*.xml: Minor grammar and spelling corrections
	for the descriptions, so they look nicer in the reference section of
	the documentation.
	This time without the unicode character.

2008-08-08  Murray Cumming  <murrayc@murrayc.com>

	* flumotion/component/*/*.xml: Reverted my last commit, while I find
	out where I introduced a problematic unicode character.

2008-08-08  Murray Cumming  <murrayc@murrayc.com>

	* flumotion/component/*/*.xml: Minor grammar and spelling corrections
	for the descriptions, so they look nicer in the reference section of
	the documentation.

2008-08-06  Murray Cummin  <murrayc@murrayc.com>

	* data/glade/ondemand-wizard.glade: Corrected an it's to its.

2008-08-06  Johan Dahlin  <johan@flumotion.com>

	* flumotion/admin/gtk/addformatwizard.py:
	Set the title for this wizard to avoid duplicated title strings.
	Fixes #1012

2008-08-06  Johan Dahlin  <johan@flumotion.com>

	* flumotion/ui/wizard.py:
	Remove some internal validation checks which are no longer valid,
	which makes the wizard behave properly even when you do extensive
	back/forward:ing.
	Fixes #1048.

2008-08-05  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/documentation.py:
	  Add a method to annotate a message with information on how to
	  install a Python module, linking to the manual.
	* flumotion/component/consumers/disker/disker.py:
	  Use it.
	* po/POTFILES.in:
	  Add documentation.py for translation.
	* po/nl.po:
	  Translate these strings in Dutch so I can test.

2008-08-05  Johan Dahlin  <johan@flumotion.com>

	* flumotion/wizard/consumptionsteps.py
	(ConsumptionStep.haveHTTP): New method
	* flumotion/wizard/scenarios.py (LiveScenario.save):
	Only set porters if we're adding a http stream.
	Fixes #1107.

2008-08-05  Johan Dahlin  <johan@flumotion.com>

	* flumotion/ui/fileselector.py:
	Add a getDirectory method and use it from
	the getFilename method. This will have

	* flumotion/wizard/diskersteps.py:
	Move the registerVFSJelly from here to the fileselector.

	* data/glade/disker-wizard.glade:
	* flumotion/wizard/ondemandstep.py:
	Use the file selector for the disker.
	Fixes #1054.

2008-08-05  Thomas Vander Stichele  <thomas at apestaart dot org>

	* common/pep8.py (added):
	* misc/pep8.py (deleted):
	* Makefile.am:
	* common/Makefile.am:
	  Used in other projects, so should go in common.
	* common/common.mk:
	  Don't check built .py files, check their .in counterparts in srcdir.

2008-08-05  Johan Dahlin  <johan@flumotion.com>

	* flumotion/configure/installed.py.in:
	Use variables everywhere, to avoid using more than 79 characters
	when building in buildbot.

2008-08-05  Johan Dahlin  <johan@flumotion.com>

	* Makefile.am:
	dist misc/pep8.py

2008-08-05  Johan Dahlin  <johan@flumotion.com>

	* flumotion/wizard/diskersteps.py:
	Capitalize, reorder

2008-08-04  Johan Dahlin  <johan@flumotion.com>

	* flumotion/common/vfs.py:
	* flumotion/common/vfsgio.py:
	* flumotion/common/vfsgnome.py:
	* flumotion/ui/fileselector.py:
	Unbreak the fileselector. Make the GIO backend work as good
	as the GnomeVFS one. Show '..' in the gnomevfs backend instead
	of /. Fixes #1079.

2008-08-04  Johan Dahlin  <johan@flumotion.com>

	* flumotion/admin/gtk/adminwindow.py:
	Include Flumotion: in the tray message.

2008-08-04  Johan Dahlin  <johan@flumotion.com>

	* configure.ac: Avoid brackets around parameter to
	AS_VERSION

2008-08-04  Johan Dahlin  <johan@flumotion.com>

	* configure.ac: Send in package and version to AC_INIT instead
	of AM_INIT_AUTOMAKE. Add M4 defines for version components,
	so we don't have to duplicate the numbers.
	Add -Wno-portability, to avoid automake warnings when generating
	Makefiles.

2008-08-04  Johan Dahlin  <johan@flumotion.com>

	* flumotion/admin/gtk/message.py:
	* flumotion/common/messages.py:
	* flumotion/wizard/configurationwizard.py:
	Add an api to disable the timestamps in the messageview.
	Move getattr hacks to the Message class itself, add two
	new methods to encapsulate them.
	Disable timestamps for the messageview in the wizard.
	Fixes #1088

2008-08-04  Johan Dahlin  <johan@flumotion.com>

	* flumotion/admin/gtk/adminwindow.py:
	Listen to key presses on the window and quite if control-w
	is pressed. Fixes #1074

2008-08-04  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/common.py:
	  If we have versionTupleToString, we should have the reverse here
	  too.
	* flumotion/manager/manager.py:
	  Use versionStringToTuple.
	  Since version in the config is tied to the project, not core
	  Flumotion, check if the given project actually exists, and
	  then check the component's configured version against the project
	  version.

2008-08-04  Thomas Vander Stichele  <thomas at apestaart dot org>

	* common/common.mk:
	  pep8-check the flumotion subdirectories, not cache and friends.

2008-08-04  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/project/project.py:
	  Allow getting variables from core flumotion, to avoid having
	  to special-case code everywhere.

2008-08-04  Thomas Vander Stichele  <thomas at apestaart dot org>

	* common/common.mk:
	  set FLU_PROJECT_PATH when checking registry.

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

	* misc/flu.unstable.stable.modules:
	* misc/flu.unstable.unstable.modules:
	  Update the others too.
	  Might consider putting glib/gtk+/pygtk in unstable.unstable.

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

	* misc/flu.stable.stable.modules:
	  Update.

2008-08-01  Johan Dahlin  <johan@flumotion.com>

	* Makefile.am:
	Remove trailing :
	* common/common.mk:
	Also run it on all files in the sourcedir, in case
	they are not the same

2008-08-01  Johan Dahlin  <johan@flumotion.com>

	* Makefile.am:
	* common/common.mk:
	Add check-local-pep8 which runs the pep8.py script
	on all python files in the tree
	* misc/pep8.py:
	Return a non-zero exit code if there were any errors
	found

2008-08-01  Johan Dahlin  <johan@flumotion.com>

	* *.py: make flumotion pep-8 clean, try two
	- whitespace only changes were accidentially not
	  included
	- installed.py/uninstalled.py that were generated
	  are now updated
	- cortado_location.py is pep8 clean now aswell.

2008-08-01  Johan Dahlin  <johan@flumotion.com>

	* *.py: make flumotion pep-8 clean

2008-08-01  Thomas Vander Stichele  <thomas at apestaart dot org>

	* Makefile.am:
	* common/Makefile.am:
	* conf/Makefile.am:
	* misc/validate-config.py (deleted):
	* common/validate-config.py (added):
	  Move to common since we want to use it in other projects.
	  Change to setup package path so we can use it in other projects.
	* common/common.mk:
	  Remove check-local target since it can't be overridden properly.

2008-08-01  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/registry.py:
	  Write out the registry with _description tags.
	* flumotion/test/test_registry.py:
	  Update tests for new _description attribute.

2008-07-31  Johan Dahlin  <johan@flumotion.com>

	* *.py:
	Replace ",)" with ", )", according to PEP-8,
	removes a couple of 100 warnings spotted by
	pep8.py

2008-07-31  Johan Dahlin  <johan@flumotion.com>

	* data/glade/httpstreamer-wizard.glade:
	The mount point entry on the streamer page should be wider.
	Fixes #1102.

2008-07-31  Johan Dahlin  <johan@flumotion.com>

	* flumotion/component/producers/videotest/wizard.glade:
	* flumotion/component/producers/videotest/wizard_gtk.py:
	* flumotion/test/test_wizard_save.py:
	Remove YUV/RGB combo from video test src page in the wizard
	Fixes #1091.

2008-07-31  Johan Dahlin  <johan@flumotion.com>

	* data/Makefile.am:
	* data/image/Makefile.am:
	* flumotion/admin/gtk/dialogs.py:
	* flumotion/ui/icons.py:
	* flumotion/ui/simplewizard.py:
	* flumotion/ui/trayicon.py:
	* flumotion/ui/wizard.py:
	Update the icons, use the flumotion icon everywhere.

2008-07-31  Thomas Vander Stichele  <thomas at apestaart dot org>

	* Makefile.am:
	  pychecker more.
	* flumotion/monitor/nagios/process.py:
	  Fix a pychecker complaint.

2008-07-31  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/registry.py:
	  Also handle _description for compound-property.
	* flumotion/component/bouncers/bouncer.xml:
	* flumotion/component/bouncers/htpasswdcrypt.xml:
	* flumotion/component/bouncers/icalbouncer.xml:
	* flumotion/component/bouncers/ipbouncer.xml:
	* flumotion/component/bouncers/saltsha256.xml:
	* flumotion/component/bouncers/tokentest.xml:
	* flumotion/component/combiners/composite/composite.xml:
	* flumotion/component/combiners/switch/switch.xml:
	* flumotion/component/consumers/disker/disker.xml:
	* flumotion/component/consumers/gdp/gdp.xml:
	* flumotion/component/consumers/httpstreamer/httpstreamer.xml:
	* flumotion/component/consumers/preview/preview.xml:
	* flumotion/component/consumers/shout2/shout2.xml:
	* flumotion/component/converters/overlay/overlay.xml:
	* flumotion/component/converters/pipeline/pipeline.xml:
	* flumotion/component/encoders/dirac/dirac.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/misc/httpserver/httpserver.xml:
	* flumotion/component/misc/porter/porter.xml:
	* flumotion/component/misc/repeater/repeater.xml:
	* flumotion/component/muxers/muxers.xml:
	* flumotion/component/plugs/cortado/cortado.xml:
	* flumotion/component/producers/audiotest/audiotest.xml:
	* flumotion/component/producers/bttv/bttv.xml:
	* flumotion/component/producers/firewire/firewire.xml:
	* flumotion/component/producers/gdp/gdp.xml:
	* flumotion/component/producers/icecast/icecast.xml:
	* flumotion/component/producers/ivtv/ivtv.xml:
	* flumotion/component/producers/looper/looper.xml:
	* flumotion/component/producers/pipeline/pipeline.xml:
	* flumotion/component/producers/playlist/playlist.xml:
	* flumotion/component/producers/rtsp/rtsp.xml:
	* flumotion/component/producers/screencast/screencast.xml:
	* flumotion/component/producers/soundcard/soundcard.xml:
	* flumotion/component/producers/unixdomain/unixdomain.xml:
	* flumotion/component/producers/videotest/videotest.xml:
	* flumotion/component/producers/webcam/webcam.xml:
	  Fix deprecation of all description tags.  Let's get
	  translating!

2008-07-31  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/admin.py:
	  implement bundleErrback to correctly handle typical potential
	  problems with untrusted code nicely.
	* flumotion/admin/gtk/componentview.py:
	  Use it.  Properly mark some exceptions as handled so we only get
	  one message about them.

2008-07-31  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/gtk/componentview.py:
	  Clean up docstrings.

2008-07-31  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/base/eatersnode.py:
	  Fix docstring.

2008-07-31  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/registry.py:
	  Use _description for components and properties, so they are properly
	  extracted for translation.
	  Add a DeprecationWarning when using the untranslatable description
	  attribute, but still work.

2008-07-30  Johan Dahlin  <johan@flumotion.com>

	* flumotion/common/bugreporter.py:
	* flumotion/common/bundle.py:
	* flumotion/common/bundleclient.py:
	* flumotion/common/common.py:
	* flumotion/common/componentui.py:
	pep8.py:ify

2008-07-30  Johan Dahlin  <johan@flumotion.com>

	* misc/pep8.py:
	Add a script which checks PEP-8 compilance.

2008-07-30  Johan Dahlin  <johan@flumotion.com>

	* flumotion/common/avltree.py:
	* flumotion/common/boot.py:
	PEP-8 compilance, run the pep8.py script over this file.

2008-07-30  Johan Dahlin  <johan@flumotion.com>

	* flumotion/admin/gtk/adminwindow.py:
	Add a Help->Contents menu which launches gnome-help.
	Fixes #1076.

2008-07-30  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion.spec.in:
	  python-iCalendar is completely optional, not required.

2008-07-30  Johan Dahlin  <johan@flumotion.com>

	* data/glade/sectionwizard.glade:
	* flumotion/common/documentation.py:
	* flumotion/common/planet.py:
	* flumotion/component/producers/soundcard/wizard_gtk.py:
	* flumotion/component/producers/webcam/wizard_gtk.py:
	* flumotion/manager/manager.py:
	* flumotion/ui/wizard.py:
	* flumotion/wizard/configurationwizard.py:
	* flumotion/wizard/conversionsteps.py:
	* flumotion/wizard/productionsteps.py:
	* flumotion/wizard/scenarios.py:
	Add a help button to the wizard.
	Add docSection/docAnchor/docVersion class variables for the
	WizardSteps, add a couple of annotations.
	Export a version state variable over pb for the flumotion
	admin client to use.
	Add a new API for creating a link based on just section/anchor/version,
	which does not require a message.
	Fixes #826

2008-07-30  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/consumers/httpstreamer/httpstreamer.py:
	  Change the message about maximum clients to something more
	  friendly, and link to the documentation.  Worked on the first
	  try, whee!

2008-07-30  Thomas Vander Stichele  <thomas at apestaart dot org>

	* conf/Makefile.am:
	* conf/examples/ipbouncer.xml (added):
	* conf/examples/bouncer.xml (added):
	  Add two examples that use bouncers for stream authentication.
	  The first uses a htpasswdcrypt-bouncer, the second an ip bouncer.

2008-07-30  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/registry.py:
	  Complain when the type of a property is not in the list of
	  accepted types.
	* flumotion/component/bouncers/ipbouncer.xml:
	* flumotion/component/producers/playlist/playlist.xml:
	  Fix the two registry files that wrongly used boolean instead of
	  bool.

2008-07-30  Johan Dahlin  <johan@fluendo.com>

	* data/make-dummy-cert: Return 1 if we failed to generate
	the pem file, which probably means that the openssl binary
	is not installed.
	* flumotion/service/service.py (Servicer.createManager):
	Send in the full path to the generated .pem file if we could
	generate it successfully.
	Fixes #1020

2008-07-30  Johan Dahlin  <johan@fluendo.com>

	Update the fluendo logs to use the 'new' flumotion logo.
	Logos contributed by Eduardo Aquino.
	Fixes #1057

2008-07-29  Sebastien Merle  <sebastien@fluendo.com>

	* flumotion/common/process.py:
	Changed back the _daemonize function to daemonize,
	because it's used by external projects (ft).

2008-07-29  Johan Dahlin  <johan@flumotion.com>

	* flumotion/wizard/consumptionsteps.py:
	Only show shoutcast2 streams for ogg and mp3 content.
	Fixes #1059

2008-07-28  Johan Dahlin  <johan@flumotion.com>

	* flumotion/admin/gtk/adminwindow.py:
	Do not run the configuration wizard if there are lost components.
	Fixes #1066

2008-07-28  Johan Dahlin  <johan@flumotion.com>

	* flumotion/admin/gtk/adminwindow.py:
	Do not make it possible to run methods accessing the admin model
	before the wizard has connected to a server.
	Fixes #1075

2008-07-28  Johan Dahlin  <johan@flumotion.com>

	* flumotion/test/test_wizard.py:
	* flumotion/ui/wizard.py:
	Add wizard.getSteps(). Refactor wizard/sidebar to use it internally.
	Document it and use it in the tests.

2008-07-26  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/wizard/productionsteps.py:
	  Fix tooltips.

2008-07-26  Thomas Vander Stichele  <thomas at apestaart dot org>

	* common/validate-registry.py:
	  Fail if there are undocumented components or properties.
	* flumotion/component/bouncers/bouncer.xml:
	* flumotion/component/bouncers/icalbouncer.xml:
	* flumotion/component/combiners/switch/switch.xml:
	* flumotion/component/consumers/disker/disker.xml:
	* flumotion/component/consumers/httpstreamer/httpstreamer.xml:
	* flumotion/component/consumers/shout2/shout2.xml:
	* flumotion/component/encoders/vorbis/vorbis.xml:
	* flumotion/component/misc/httpserver/httpserver.xml:
	* flumotion/component/misc/porter/porter.xml:
	* flumotion/component/misc/repeater/repeater.xml:
	* flumotion/component/producers/audiotest/audiotest.xml:
	* flumotion/component/producers/bttv/bttv.xml:
	* flumotion/component/producers/icecast/icecast.xml:
	* flumotion/component/producers/ivtv/ivtv.py:
	* flumotion/component/producers/ivtv/ivtv.xml:
	* flumotion/component/producers/rtsp/rtsp.xml:
	* flumotion/component/producers/unixdomain/unixdomain.xml:
	* flumotion/component/producers/webcam/webcam.xml:
	  Document properties and components.
	  Fixes #1069 in 1.5 of the 6 estimated hours.

2008-07-26  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/encoders/theora/theora.py:
	* flumotion/component/encoders/theora/theora.xml:
	  If nobody understands the keyframe-threshold property then it
	  shouldn't even be exposed.

2008-07-26  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/messages.py:
	  deprecate id= keyword arg in favor of mid=
	* flumotion/component/base/baseadminnode.py:
	* flumotion/component/combiners/switch/patternswitch.py:
	* flumotion/component/component.py:
	* flumotion/component/consumers/disker/disker.py:
	* flumotion/component/encoders/theora/theora.py:
	* flumotion/component/feedcomponent010.py:
	* flumotion/component/muxers/checks.py:
	* flumotion/component/producers/bttv/wizard_gtk.py:
	* flumotion/component/producers/checks.py:
	* flumotion/component/producers/firewire/firewire.py:
	* flumotion/component/producers/firewire/wizard_gtk.py:
	* flumotion/component/producers/gdp/gdp.py:
	* flumotion/component/producers/looper/looper.py:
	* flumotion/component/producers/playlist/playlist.py:
	* flumotion/component/producers/soundcard/soundcard.py:
	* flumotion/component/producers/soundcard/wizard_gtk.py:
	* flumotion/component/producers/webcam/wizard_gtk.py:
	* flumotion/wizard/configurationwizard.py:
	* flumotion/worker/checks/check.py:
	* flumotion/worker/checks/encoder.py:
	  Follow through.

2008-07-26  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/producers/bttv/wizard_gtk.py:
	* flumotion/component/producers/firewire/wizard_gtk.py:
	* flumotion/component/producers/soundcard/wizard_gtk.py:
	* flumotion/component/producers/webcam/wizard_gtk.py:
	* flumotion/worker/checks/audio.py:
	* flumotion/worker/checks/video.py:
	  Change id to mid on all worker checks.

2008-07-25  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/common.py:
	* flumotion/component/base/scheduler.py:
	  Doc fixes.

2008-07-25  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/test/test_wizard.py:
	  Mark test as skip instead.

2008-07-25  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/gtk/message.py:
	  Override previous messages with the same id.
	* flumotion/worker/checks/check.py:
	* flumotion/worker/checks/gst010.py:
	  Make sure the message id is passed on so it can be overridden.
	  Fixes #1061.

2008-07-25  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/test/test_wizard.py:
	* flumotion/ui/wizard.py:
	  Fix Johan's build breakage.

2008-07-25  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/gtk/message.py:
	  Fix typo.  Fixes #1077.

2008-07-25  Thomas Vander Stichele  <thomas at apestaart dot org>

	* doc/random/styleguide:
	* flumotion/component/base/eatersnode.py:
	* flumotion/component/base/feedersnode.py:
	* flumotion/component/eater.py:
	* flumotion/component/feeder.py:
	* flumotion/test/test_component_feeder.py:
	  Fix uiState key naming to be lowercase-hyphenated.
	  feeder uiState:
	  - clientId                  -> client-id
	  - bytesReadCurrent          -> bytes-read-current
	  - bytesReadTotal            -> bytes-read-total
	  - lastConnect               -> last-connect
	  - lastDisconnect            -> last-disconnect
	  - lastActivity              -> last-activity
	  - buffersDroppedCurrent     -> buffers-dropped-current
	  - buffersDroppedTotal       -> buffers-dropped-total
	  eater uiState:
	  - eaterAlias                -> eater-alias
	  - eaterName                 -> eater-name
	  - lastConnect               -> last-connect
	  - lastDisconnect            -> last-disconnect
	  - totalConnections          -> total-connections
	  - countTimestampDiscont     -> count-timestamp-discont
	  - countOffsetDiscont        -> count-offset-discont
	  - totalTimestampDiscont     -> total-timestamp-discont
	  - totalOffsetDiscont        -> total-offset-discont
	  eater uiState, connection dict:
	  - feedId                    -> feed-id
	  - timeTimestampDiscont      -> time-timestamp-discont
	  - timestampTimestampDiscont -> timestamp-timestamp-discont
	  - lastTimestampDiscont      -> last-timestamp-discont
	  - totalTimestampDiscont     -> total-timestamp-discont
	  - countTimestampDiscont     -> count-timestamp-discont
	  - timeOffsetDiscont         -> time-offset-discont
	  - offsetOffsetDiscont       -> offset-offset-discont
	  - lastOffsetDiscont         -> last-offset-discont
	  - totalOffsetDiscont        -> total-offset-discont
	  - countTimestampDiscont     -> count-offset-discont
	  Fixes #1031.

2008-07-25  Johan Dahlin  <johan@flumotion.com>

	* data/glade/sectionwizard.glade:
	* flumotion/ui/Makefile.am:
	* flumotion/ui/sidebar.py:
	* flumotion/ui/wizard.py:
	* flumotion/wizard/configurationwizard.py:
	Move the wizard sidebar into the wizard.py file.
	Move all logic step/section/stack logic from the SectionWizard
	class into the sidear. This is an incremental change in the
	process of making the sidebars implementation nicer.

2008-07-25  Johan Dahlin  <johan@flumotion.com>

	* flumotion/wizard/consumptionsteps.py
	(ConsumptionStep._getSteps):
	Set the bandwidth_limit to a float instead of an int
	to make kiwi happy.

2008-07-25  Johan Dahlin  <johan@flumotion.com>

	* flumotion/extern/exceptiondialog.py
	(TracebackViewer._showException): scroll to the end

2008-07-25  Johan Dahlin  <johan@flumotion.com>

	* flumotion/admin/gtk/main.py:
	* flumotion/common/Makefile.am:
	* flumotion/common/bugreporter.py:
	Move the non-UI bits of the bug reporter to
	a separate file in flumotion.common.

2008-07-25  Johan Dahlin  <johan@flumotion.com>

	* flumotion/admin/gtk/main.py:
	use trac syntax, add filename revisions
	* flumotion/configure/configure.py:
	add branchName
	* flumotion/extern/exceptiondialog.py:
	add new api to fetch all involved filenames,
	refactor to avoid some duplication

2008-07-24  Arek Korbik  <arkadini@gmail.com>

	* flumotion/admin/gtk/dialogs.py:
	Keep authors sorted by last name.

2008-07-24  Johan Dahlin  <johan@gnome.org>

	* flumotion/test/test_wizard_save.py:
	* flumotion/wizard/consumptionsteps.py:
	Fix a typo in the bandwidth saving logic, add a test.

2008-07-24  Thomas Vander Stichele  <thomas at apestaart dot org>

	* data/glade/scenario-wizard.glade:
	* flumotion/wizard/scenarios.py:
	  Rephrase the scenario page a little.

2008-07-24  Johan Dahlin  <johan@gnome.org>

	* flumotion/admin/gtk/main.py:
	* flumotion/extern/Makefile.am:
	* flumotion/extern/exceptiondialog.py:
	Add an ExceptionDialog which is used to display an error message
	when an handled exception occurs. Hook it up with the
	gtk admin client.

2008-07-24  Johan Dahlin  <johan@flumotion.com>

	* flumotion/component/effects/volume/admin_gtk.py: check if the
	label is None before trying to call a method on it.

2008-07-24  Pedro Gracia  <pedro@flumotion.com>

	* flumotion/admin/gtk/dialogs.py:
	Add Jordi and myself in authors.

2008-07-24  Sebastien Merle  <sebastien@fluendo.com>

	reviewed by: Johan Dahlin  <johan@flumotion.com>

	* flumotion/admin/gtk/componentlist.py:
	Fix the behavior of the component list right-click context menu
	to keep current selection if done on a select component.

2008-07-24  Johan Dahlin  <johan@flumotion.com>

	* flumotion/admin/gtk/adminwindow.py:
	Add back kill component in context menu, fixes #1064

2008-07-23  Arek Korbik  <arkadini@gmail.com>

	* flumotion/admin/gtk/componentlist.py (ComponentList.stateSet):
	Update PID dynamically, too. Fixes #993.

2008-07-23  Johan Dahlin  <johan@flumotion.com>

	* flumotion/test/test_wizard_save.py:
	* flumotion/wizard/overlaystep.py:
	Change the default overlay text to Flumotion, update tests.

2008-07-22  Thomas Vander Stichele  <thomas at apestaart dot org>

	* data/glade/production-wizard.glade:
	* data/glade/select-producers-wizard.glade:
	* flumotion/component/producers/audiotest/audiotest.xml:
	* flumotion/component/producers/videotest/videotest.xml:
	  Use producer, not source.

2008-07-22  Thomas Vander Stichele  <thomas at apestaart dot org>

	* data/glade/Makefile.am:
	  Add a missing glade file.

2008-07-22  Johan Dahlin  <johan@gnome.org>

	* data/glade/summary-wizard.glade:
	it should be Finish instead of Apply.

2008-07-22  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/configure/uninstalled.py.in:
	  Find writable build dir by looking at srcdir, not cwd.
	  Fixes distcheck for depending projects.

2008-07-22  Pedro Gracia  <pedro@flumotion.com>

	* flumotion/common/i18n.py:
	Return untranslated singular strings with or
	without arguments.

2008-07-22  Johan Dahlin  <johan@flumotion.com>

	* flumotion/admin/gtk/componentlist.py:
	* flumotion/common/pygobject.py:
	Remove with_construct_properties and the last remaining callsite

2008-07-22  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion.spec.in:
	  Add gettext as buildrequires because intltool doesn't pull it in.

2008-07-21  Pedro Gracia  <pedro@flumotion.com>

	* flumotion/common/i18n.py:
	* flumotion/test/test_i18n.py:
	Return untranslated strings (singular and plural)
	with or without arguments ok.

2008-07-21  Johan Dahlin  <johan@flumotion.com>

	* flumotion/common/vfs.py:
	* flumotion/test/test_common_vfs.py:
	simplify imports, try to instantiate a directory to see
	if we get an import error or not, since this all changed
	due to pychecker, sigh.

2008-07-21  Jordi Massaguer i Pla  <jordi@flumotion.com>

	* flumotion.spec.in:
	Added pygtk2-libglade and python-dateutil packages.

2008-07-21  Johan Dahlin  <johan@gnome.org>

	* flumotion/common/vfsgio.py:
	* flumotion/common/vfsgnome.py:
	Add keepgoing and move the imports to scopes, this should
	fix buildbot on machines which lacks gnomevfs or gio

2008-07-21  Jordi Massaguer i Pla  <jordi@flumotion.com>

	* flumotion.spec.in:
	Added python-twisted-conch and python-iCalendar as Requires and
	BuildRequires.

2008-07-21  Johan Dahlin  <johan@gnome.org>

	* flumotion/common/errors.py:
	* flumotion/common/vfs.py:
	* flumotion/common/vfsgio.py:
	* flumotion/common/vfsgnome.py:
	Remove MissingDependencyError in favor of just ImportError.

2008-07-21  johan dahlin  <johan@flumotion.com>

	* data/glade/ondemand-wizard.glade:
	* flumotion/common/Makefile.am:
	* flumotion/common/errors.py:
	* flumotion/common/interfaces.py:
	* flumotion/common/vfs.py:
	* flumotion/common/vfsgio.py:
	* flumotion/common/vfsgnome.py:
	* flumotion/configure/configure.py:
	* flumotion/manager/worker.py:
	* flumotion/test/Makefile.am:
	* flumotion/test/test_common_vfs.py:
	* flumotion/ui/Makefile.am:
	* flumotion/ui/fileselector.py:
	* flumotion/wizard/configurationwizard.py:
	* flumotion/wizard/ondemandstep.py:
	* flumotion/worker/medium.py:
	Add a file selector dialog to the on demand step.
	Add a vfs framework with two backends (gnomevfs and gio),
	add tests and documentation. Fixes #1050

2008-07-18  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/connections.py:
	* flumotion/common/common.py:
	* flumotion/common/fraction.py:
	  Doc string fixes.

2008-07-18  Thomas Vander Stichele  <thomas at apestaart dot org>

	* data/glade/debug-marker.glade:
	  Fix string.
	* po/POTFILES.in:
	  Add for translation.
	* po/POTFILES.skip (added):
	  Don't scan i18n.py

2008-07-18  Johan Dahlin  <johan@gnome.org>

	* configure.ac:
	set BINDIR, so it gets properly expanded in installed.py

	* flumotion/test/test_greeter.py (WizardTest.testGreeter):
	Going prev/next unselected the previously selected option,
	workaround that by selecting the option we want again.

2008-07-18  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/test/gtkunit.py:
	  Assert more verbosely.

2008-07-17  Johan Dahlin  <johan@gnome.org>

	* flumotion/component/producers/bttv/wizard_gtk.py
	(TVCardStep._clearCombos): channel and norm was swapped.
	Rename norm to signal. Found by Rozstrojenie Jazni.

	* flumotion/admin/gtk/adminwindow.py
	(AdminWindow._componentSelectionChanged):
	It's compSet instead of _compSet. Now why didn't pychecker find this?

2008-07-16  Johan Dahlin  <johan@gnome.org>

	* flumotion/configure/configure.py:
	Document and avoid magic/locals() usage.

2008-07-16  Murray Cumming  <murrayc@murrayc.com>

	* data/glade/production-wizard.glade:
	* data/glade/select-producers-wizard.glade:
	* data/glade/summary-wizard.glade:
	* flumotion/component/producers/bttv/wizard_gtk.py
	  (TVCardStep._runChecks):
	* flumotion/component/producers/soundcard/soundcard.py
	  (Soundcard.configure_pipeline):
	* flumotion/component/producers/soundcard/wizard_gtk.py
	(SoundcardStep._updateInputs):
	* flumotion/component/producers/webcam/wizard_gtk.py
	  (WebcamStep._runChecks):
	* flumotion/test/test_i18n.py (TranslatorTest.testTranslateMessage):
	* flumotion/wizard/diskersteps.py (DiskBothStep):
	* flumotion/wizard/httpstreamersteps.py (HTTPBothStep):
	* flumotion/wizard/shout2steps.py (Shout2BothStep): Minor English
	corrections for translated strings.

2008-07-15  Jordi Massaguer i Pla  <jordi@flumotion.com>

	* flumotion/test/test_component_base_scheduler.py
	replaced asserts for asserts that are available on previous
	versions of twisted.

2008-07-15  Jordi Massaguer i Pla  <jordi@flumotion.com>

	* flumotion/test/test_component_base_scheduler.py:
	replaced asserts for asserts that are available on previous
	versions of twisted.

2008-07-15  Jordi Massaguer i Pla  <jordi@flumotion.com>

	* flumotion/common/Makefile.am: added eventcalendar
	* flumotion/test/Makefile.am: added test_component_base_vevent

2008-07-15  Jordi Massaguer i Pla  <jordi at flumotion dot com>

	* flumotion/test/Makefile.am:
	added the ics files.

2008-07-15  Jordi Massaguer i Pla  <jordi at flumotion dot com>

	* flumotion/test/test-exdate.ics:
	* flumotion/test/test-google.ics:
	They are needed for some tests and were missing.

2008-07-15  Jordi Massaguer i Pla  <jordi at flumotion dot com>

	* flumotion/common/eventcalendar.py:
	Added the datetime namespace.
	* flumotion/component/base/scheduler.py:
	renamed type to which as type was shadowing a builtin.

2008-07-15  Jordi Massaguer i Pla  <jordi at flumotion dot com>

	* flumotion/component/base/scheduler.py:
	rename type to which as type was shadowing a builtin.

2008-07-14  Jordi Massaguer i Pla  <jordi@flumotion.com>

	* flumotion/common/eventcalendar.py: Fixed docstring of Point._init

2008-07-14  Jordi Massaguer i Pla  <jordi at flumotion dot com>

	* flumotion/common/eventcalendar.py:
	Changed import order.

2008-07-14  Jordi Massaguer i Pla  <jordi at flumotion dot com>

	* flumotion/admin/rrdmon/rrdmon.py:
	* flumotion/common/eventcalendar.py:
	* flumotion/component/base/scheduler.py:
	* flumotion/component/bouncers/icalbouncer.py:
	* flumotion/component/combiners/switch/switch.py:
	* flumotion/component/consumers/disker/disker.py:
	* flumotion/test/test_component_base_scheduler.py:
	* flumotion/test/test_component_base_vevent.py:
	Extracted event and calendar code from scheduler to eventcalendar.
	Changed implementation so it handles better recur events and exdates.
	More tests have been added in order to have coverage.

2008-07-14  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/test/test_manager_manager.py:
	  Fix another set_ deprecation.

2008-07-14  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/messages.py:
	  Don't rename Warning just yet, suppress it.
	* misc/pycheckerrc:
	  Enable warning about shadowing builtins.

2008-07-14  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/errors.py:
	  Suppress SystemError shadows builtin.

2008-07-14  Thomas Vander Stichele  <thomas at apestaart dot org>

	* doc/random/tags:
	  add Python tags
	* flumotion/common/python.py:
	  comment pychecker tag
	* flumotion/admin/connections.py:
	* flumotion/component/producers/webcam/wizard_gtk.py:
	  add local pychecker suppression for P2.5 builtins

2008-07-14  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/twisted/flavors.py:
	  Deprecate set= kwarg, and add set_= kwarg as suggested by PEP-8.
	* flumotion/admin/command/commands.py:
	* flumotion/admin/gtk/adminwindow.py:
	* flumotion/admin/gtk/componentlist.py:
	* flumotion/admin/gtk/componentview.py:
	* flumotion/admin/text/view.py:
	* flumotion/common/planet.py:
	* flumotion/component/base/admin_gtk.py:
	* flumotion/component/base/baseadminnode.py:
	* flumotion/component/base/statewatcher.py:
	* flumotion/test/test_common_planet.py:
	* flumotion/test/test_flavors.py:
	* flumotion/ui/trayicon.py:
	  Update callers.

2008-07-14  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/test/test_component_httpserver.py:
	  Rename uses of file to httpfile.

2008-07-14  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/errors.py:
	  Deprecate errors.SystemError since it shadows Python's builtin.
	  Make errors.FatalError instead.
	* flumotion/common/boot.py:
	* flumotion/common/common.py:
	* flumotion/common/process.py:
	* flumotion/manager/main.py:
	* flumotion/service/service.py:
	* flumotion/worker/main.py:
	  Use errors.FatalError.

2008-07-14  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/twisted/flavors.py:
	  Don't shadow set.

2008-07-14  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/misc/httpserver/httpserver.xml:
	  Rename uses of file to httpfile.

2008-07-14  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/misc/httpserver/httpfile.py (added):
	* flumotion/component/misc/httpserver/file.py (deleted):
	  renamed to not clash with file builtin.
	* flumotion/component/misc/httpserver/Makefile.am:
	* flumotion/component/misc/httpserver/httpserver.py:
	  Rename uses of file to httpfile.

2008-07-14  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/producers/playlist/playlistparser.py:
	  One more shadow cleanup.

2008-07-14  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/bundle.py:
	* flumotion/common/common.py:
	* flumotion/common/config.py:
	* flumotion/common/dag.py:
	* flumotion/common/debug.py:
	* flumotion/common/package.py:
	* flumotion/common/planet.py:
	* flumotion/common/process.py:
	* flumotion/common/registry.py:
	* flumotion/component/bouncers/bouncer.py:
	* flumotion/component/bouncers/plug.py:
	* flumotion/component/consumers/disker/disker.py:
	* flumotion/twisted/flavors.py:
	* flumotion/twisted/portal.py:
	  shadow cleanups
	* flumotion/common/reload.py:
	* flumotion/component/component.py:
	  rename reload to reloadFlumotion

2008-07-14  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/bundle.py:
	* flumotion/component/base/eatersnode.py:
	* flumotion/component/base/feedersnode.py:
	* flumotion/component/bouncers/admin_gtk.py:
	* flumotion/component/consumers/httpstreamer/admin_gtk.py:
	* flumotion/component/consumers/httpstreamer/httpstreamer.py:
	* flumotion/component/misc/httpserver/file.py:
	* flumotion/component/misc/httpserver/httpserver.py:
	* flumotion/component/misc/porter/porter.py:
	* flumotion/component/producers/playlist/playlistparser.py:
	* flumotion/manager/admin.py:
	* flumotion/manager/base.py:
	* flumotion/manager/config.py:
	  More shadow cleanups.

2008-07-14  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/python.py:
	  Just like we conditionally implement any, do the same for all
	* flumotion/component/combiners/switch/switch.py:
	  Use it here.
	* flumotion/wizard/consumptionsteps.py:
	  Rename any to pany; I'd prefer python.any but I'll defer until
	  after discussing with Johan.

2008-07-14  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/admin.py:
	* flumotion/common/common.py:
	* flumotion/wizard/httpstreamersteps.py:
	* flumotion/wizard/overlaystep.py:
	* flumotion/wizard/ondemandstep.py:
	  Remove some builtin shadows.

2008-07-05  Johan Dahlin  <johan@flumotion.com>

	* flumotion/worker/medium.py: Fixup imports and avoid
	an unnecessary assignment.

2008-07-04  Johan Dahlin  <johan@flumotion.com>

	* flumotion/component/misc/httpserver/Makefile.am (httpserver_DATA):
	dist httpfile.glade too.

	* data/glade/httpstreamer-wizard.glade:
	Do not hard code a width of the mount point entry
	* flumotion/wizard/httpstreamersteps.py:
	Include the muxer format in the url, so instead of 'audio-video'
	it's now 'ogg-audio-video', to avoid collissions, part of #995

	* flumotion/admin/gtk/addformatwizard.py:
	* flumotion/wizard/configurationwizard.py:
	Set a scenario for the format wizard and update the component
	names of the scenario when the change if one is set, fixes
	a regression in the add format wizard.

2008-07-04  Johan Dahlin  <johan@gnome.org>

	* flumotion/wizard/productionsteps.py:
	Add back accidentally removed _() alias

2008-07-03  Johan Dahlin  <johan@flumotion.com>

	* flumotion/admin/gtk/adminwindow.py:
	* flumotion/common/format.py:
	* flumotion/component/converters/overlay/overlay.py:
	* flumotion/wizard/conversionsteps.py:
	* flumotion/wizard/productionsteps.py:
	Always import N_ instead of defining it.

2008-07-03  Johan Dahlin  <johan@flumotion.com>

	* flumotion/common/common.py:
	* flumotion/common/connection.py:
	* flumotion/common/keycards.py:
	* flumotion/test/test_common.py:
	Remove mergeImplements which has not been necessary since
	zope.interface was added to twisted.

2008-07-02  Johan Dahlin  <johan@flumotion.com>

	* flumotion/common/Makefile.am:
	* flumotion/common/common.py:
	* flumotion/common/poller.py:
	* flumotion/component/bouncers/bouncer.py:
	* flumotion/component/bouncers/plug.py:
	* flumotion/component/component.py:
	* flumotion/component/padmonitor.py:
	Move f.c.common.poller to a new file
	called f.c.poller. Update callsites and Makefiles

2008-07-02  Johan Dahlin  <johan@flumotion.com>

	* flumotion/common/common.py:
	* flumotion/common/format.py:
	* flumotion/component/consumers/disker/disker.py:

	Move f.c.common.strftime to f.c.format, update callsites
	and add documentation.

2008-07-02  Johan Dahlin  <johan@flumotion.com>

	* flumotion/common/avltree.py:
	* flumotion/common/boot.py:
	* flumotion/common/bundleclient.py:
	* flumotion/common/common.py:
	* flumotion/common/componentui.py:
	* flumotion/common/config.py:
	* flumotion/common/connection.py:
	* flumotion/common/dag.py:
	* flumotion/common/debug.py:
	* flumotion/common/documentation.py:
	* flumotion/common/enum.py:
	* flumotion/common/errors.py:
	* flumotion/common/fraction.py:
	* flumotion/common/fxml.py:
	* flumotion/common/gstreamer.py:
	* flumotion/common/i18n.py:
	* flumotion/common/identity.py:
	* flumotion/common/interfaces.py:
	* flumotion/common/keycards.py:
	* flumotion/common/log.py:
	* flumotion/common/managerspawner.py:
	* flumotion/common/manhole.py:
	* flumotion/common/medium.py:
	* flumotion/common/messages.py:
	* flumotion/common/mimetypes.py:
	* flumotion/common/netutils.py:
	* flumotion/common/options.py:
	* flumotion/common/package.py:
	* flumotion/common/planet.py:
	* flumotion/common/process.py:
	* flumotion/common/pygobject.py:
	* flumotion/common/reflectcall.py:
	* flumotion/common/registry.py:
	* flumotion/common/reload.py:
	* flumotion/common/server.py:
	* flumotion/common/setup.py:
	* flumotion/common/signals.py:
	* flumotion/common/startset.py:
	* flumotion/common/testsuite.py:
	* flumotion/common/watched.py:
	* flumotion/common/worker.py:
	* flumotion/common/xmlwriter.py:
	Update docstrings and reorganize imports, add
	whitespace and some FIXME/notices.

2008-07-02  Johan Dahlin  <johan@flumotion.com>

	* 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/addformatwizard.py:
	* flumotion/admin/gtk/adminwindow.py:
	* flumotion/admin/gtk/componentlist.py:
	* flumotion/admin/gtk/componentview.py:
	* flumotion/admin/gtk/connections.py:
	* flumotion/admin/gtk/debugmarkerview.py:
	* flumotion/admin/gtk/dialogs.py:
	* flumotion/admin/gtk/greeter.py:
	* flumotion/admin/gtk/main.py:
	* flumotion/admin/gtk/message.py:
	* flumotion/admin/gtk/statusbar.py:
	* flumotion/admin/multi.py:
	* flumotion/admin/rrdmon/__init__.py:
	* flumotion/admin/rrdmon/config.py:
	* flumotion/admin/rrdmon/main.py:
	* flumotion/admin/text/__init__.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:
	Add toplevel docstrings and reorganize some imports.

2008-07-02  Johan Dahlin  <johan@flumotion.com>

	* flumotion/admin/admin.py:
	Write the connection to disk before emitting the
	connected signal
	* flumotion/admin/connections.py:
	add a new function hasRecentConnections and refactor
	the rest of the code so we can reuse part of the logic
	from getRecentConnections.
	Simplify getRecentConnections by unwindling unnecessary
	list comprehensions
	* flumotion/admin/gtk/adminwindow.py:
	Disable the Open Recent Connection menu item when
	there are no recent connections.
	* flumotion/admin/gtk/connections.py:
	Disable clear/clear all buttons when there are
	no connections
	* flumotion/admin/gtk/greeter.py:
	Only show the recent connection option when
	we actually have recent connections.
	Fixes #1046

2008-07-02  Johan Dahlin  <johan@flumotion.com>

	* flumotion/admin/command/main.py:
	* flumotion/admin/connections.py:
	* flumotion/admin/gtk/adminwindow.py:
	* flumotion/admin/gtk/connections.py:
	* flumotion/admin/gtk/main.py:
	* flumotion/admin/rrdmon/config.py:
	* flumotion/admin/text/greeter.py:
	* flumotion/monitor/nagios/main.py:
	* flumotion/test/test_admin_connections.py:
	Rename get_recent_connections to getRecentConnections.
	Rename parsePBConnectionInfo to parsePBConnectionRecent.
	Update callsites and their import statements to be consistent

2008-06-30  Johan Dahlin  <johan@flumotion.com>

	* flumotion/component/producers/soundcard/wizard_gtk.py:
	Don't use enum. Convert underscores to camelcase

2008-06-29  Thomas Vander Stichele  <thomas at apestaart dot org>

	* common/epydoc.mk:
	  Try and get a hopefully unique DISPLAY number by calling getpid
	  and adding 10 (to stay out of the common 0-9 range).

2008-06-29  Thomas Vander Stichele  <thomas at apestaart dot org>

	* common/epydoc.mk:
	  Clean Xvfb.pid

2008-06-29  Arek Korbik  <arkadini@gmail.com>

	* flumotion/extern/log/log.py (Loggable.writeMarker): Fix
	docstring - please doc generator.

2008-06-28  Arek Korbik  <arkadini@gmail.com>

	* flumotion/manager/component.py: Make ComponentHeaven not
	reconnect components' eaters unnecesarily when it detaches
	components. Make getFeederAvatar() private again, as it
	should be. Split _connectEatersAndFeeders into two parts and reuse.

	* flumotion/test/test_manager_component.py: Remove todo markers -
	those tests should pass now.

2008-06-28  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	  Check for Xvfb
	* common/epydoc.mk:
	  Newer epydoc introspects, so we run a temporary Xvfb server
	  to handle gtk imports.
	* flumotion.spec.in:
	  BuildRequire Xvfb.

2008-06-27  Johan Dahlin  <johan@flumotion.com>

	* flumotion/admin/gtk/adminwindow.py
	(AdminWindow._componentDo): Change the components so they
	actually show up in the po files

2008-06-27  Arek Korbik  <arkadini@gmail.com>

	* flumotion/test/test_manager_component.py
	(TestComponentHeaven.testAttachDetachLinear): add missing reset.
	(TestComponentHeaven.testAttachDetachMultipleFeedersComplex): add
	a more complex test with multiple feeders and eaters in the same
	component.

2008-06-27  Johan Dahlin  <johan@flumotion.com>

	* flumotion/admin/gtk/adminwindow.py
	(AdminWindow._componentActivate): is unused, remove

2008-06-26  Johan Dahlin  <johan@flumotion.com>

	* flumotion/admin/gtk/adminwindow.py (AdminWindow._runWizard): Add
	missing space in error message.

2008-06-26  Johan Dahlin  <johan@flumotion.com>


	* flumotion/admin/gtk/addformatwizard.py: Update the imports
	after the last change.

2008-06-25  Johan Dahlin  <johan@flumotion.com>

	* data/glade/Makefile.am:
	* data/glade/production-wizard.glade:
	* data/glade/scenario-wizard.glade:
	* flumotion/ui/sidebar.py:
	* flumotion/ui/wizard.py:
	* flumotion/wizard/Makefile.am:
	* flumotion/wizard/configurationwizard.py:
	* flumotion/wizard/ondemandstep.py:
	* flumotion/wizard/productionsteps.py:
	* flumotion/wizard/scenarios.py:
	* po/POTFILES.in:
	Add a Scenario Wizard page, refactor the logic
	to separate Scenario classes. Fixes #999

2008-06-25  Arek Korbik  <arkadini@gmail.com>

	* flumotion/test/test_manager_component.py: Add testing of
	component feed reconnections by ComponentHeaven.

2008-06-24  Johan Dahlin  <johan@flumotion.com>

	* flumotion/test/test_parts.py:
	(TestComponentsView.testCanNotStartWhenNoSelection)
	(TestComponentsView.testCanNotStopWhenNoSelection):
	Disable the last check as it we emit selection-changed in an idle now

	* flumotion/admin/gtk/adminwindow.py:
	* flumotion/admin/gtk/componentlist.py:
	* flumotion/test/test_parts.py:
	Do not reset the selection when a component starts/stops.
	Rename update to clearAndRebuild to make it easier to understand
	what's doing on. Update tests. Fixes #1033

2008-06-24  Johan Dahlin  <johan@flumotion.com>

	* flumotion/admin/gtk/adminwindow.py: Clean up the
	componentDo method which calls remote actions and updates the
	statusbar. Add documentation, use plural gettext and make it
	only display one string when updating multiple components.

	* flumotion/admin/gtk/componentlist.py:
	(ComponentList._selectionChanged): Clean up the code to
	set the selection and emit the selection-changed in an idle
	for speed reasons.

	* flumotion/admin/gtk/adminwindow.py:
	* flumotion/admin/gtk/componentlist.py:
	Transform the context menu into using GtkUIManager, reuse
	the callbacks and logic already used for the menu/toolbar.
	Fixes #1034

2008-06-23  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/consumers/gdp/gdp.py:
	  Remove unused imports/symbols.

2008-06-23  Johan Dahlin  <johan@flumotion.com>

	* data/glade/videotest.glade:
	* flumotion/component/producers/bttv/wizard.glade:
	* flumotion/component/producers/videotest/wizard.glade:
	* flumotion/component/producers/webcam/wizard.glade:
	Framerate -> Frame Rate. Fixes #1018

2008-06-23  Johan Dahlin  <johan@flumotion.com>

	* flumotion/admin/gtk/connections.py (Connections.grab_focus): Use
	len() instead of relying on __nonzero__, avoids focus grabbing attempt
	of non existing items.

	* data/glade/sectionwizard.glade:
	* flumotion/ui/wizard.py:
	Set a mnemonic for the Finish button, fixes #1032

	* flumotion/component/encoders/speex/wizard_gtk.py:
	* flumotion/component/producers/firewire/wizard_gtk.py:
	* flumotion/ui/wizard.py:
	* flumotion/wizard/diskersteps.py:
	* flumotion/wizard/shout2steps.py:
	Add title for the rest of the wizard steps.
	Do not translate the stepname in getStep.
	Fixes #1015.

2008-06-20  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/consumers/preview/preview.py:
	  Use autovideosink instead.

2008-06-20  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	* flumotion/component/consumers/Makefile.am:
	* flumotion/component/consumers/gdp (added):
	* flumotion/component/consumers/gdp/gdp.py (added):
	* flumotion/component/consumers/gdp/__init__.py (added):
	* flumotion/component/consumers/gdp/Makefile.am (added):
	* flumotion/component/consumers/gdp/gdp.xml (added):
	  Add a GDP consumer.

2008-06-20  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/producers/gdp/gdp.py:
	  Add error for http://bugzilla.gnome.org/show_bug.cgi?id=532364

2008-06-20  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/launch/main.py:
	  Make sure errors are translated.

2008-06-18  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/gtk/adminwindow.py:
	  Don't add a message twice, only add it when its component is
	  in the selection (Fixes bug in changeset [6707]).

2008-06-16  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/i18n.py:
	  Extract installGettext() from gtk.main; since this should be usable
	  from other commands.
	* flumotion/admin/gtk/main.py:
	  Use it.

2008-06-16  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/monitor/nagios/main.py:
	  Short-circuit to end when usage/help of a subcommand got printed.

2008-06-16  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/common.py:
	  Mark a function for deprecation.
	  Assertion/debug fixes.

2008-06-16  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/wizard/configurationwizard.py:
	  Doc string cleanup.

2008-06-10  Jordi Massaguer i Pla  <jordi@flumotion.com>

	* flumotion/admin/gtk/Makefile.am:
	Added debugmarkerview.py

2008-06-06  Johan Dahlin  <johan@flumotion.com>

	* flumotion/admin/gtk/componentlist.py:
	Remove the column header and label and reduce the size
	of the icon to be 24x24 instead of 40x40.
	Fixes #171

2008-06-05  Johan Dahlin  <johan@flumotion.com>

	* flumotion/component/base/Makefile.am:
	Add properties.glade here
	* po/POTFILES.in:
	And newly added files here

2008-06-05  Johan Dahlin  <johan@flumotion.com>

	* flumotion/admin/gtk/componentview.py:
	* flumotion/component/base/Makefile.am:
	* flumotion/component/base/admin_gtk.py:
	* flumotion/component/base/base.xml:
	* flumotion/component/base/properties.glade:
	* flumotion/component/base/propertiesnode.py:
	Add a Properties Tab which is only visible in debug mode.
	First part of #832

2008-06-05  Johan Dahlin  <johan@flumotion.com>

	* flumotion/component/base/component.glade:
	* flumotion/component/base/componentnode.py:
	Add component type to the UI, fixes #987

2008-06-05  Johan Dahlin  <johan@flumotion.com>

	* flumotion/component/producers/bttv/wizard_gtk.py
	(TVCardStep.setup): Tweak last commit: avoid using a different
	combobox mode, just set an empty string, prevents errors
	when we get real values here.

	* flumotion/wizard/configurationwizard.py:
	* flumotion/wizard/conversionsteps.py:
	Do not call workerChanged each time a step is activated,
	add a convinience method on the wizard to check if it didn't
	change. Fixes #992

2008-06-05  Johan Dahlin  <johan@flumotion.com>

	* flumotion/component/producers/soundcard/wizard_gtk.py
	(SoundcardStep._update_inputs.checkFailed): trap RemoteRunFailure

	* flumotion/admin/gtk/message.py (MessagesView.addMessage):
	Reuse the firstButton
	(MessagesView._sortMessages): Return the first button sorted

	* flumotion/component/producers/bttv/wizard.glade: Rename
	tvnorm to signal.

	* flumotion/component/producers/bttv/wizard_gtk.py
	(TVCardStep.setup): We need to call prefill() before adding
	the widgets to the proxy

2008-06-04  Johan Dahlin  <johan@flumotion.com>

	* flumotion/component/base/admin_gtk.py
	(BaseAdminGtk.__init__):
	Trap and filter out SleepingComponentError.

	* flumotion/component/effects/volume/admin_gtk.py
	(VolumeAdminGtkNode.setUIState):
	check can be None, when shutting down.

	* flumotion/admin/gtk/adminwindow.py:
	Refactor and reuse the same error message when
	cleaning the components from the toolbar too, not just
	before running the wizard.

	* flumotion/admin/gtk/adminwindow.py:
	Add an errback after cleaning the components and show
	an error message if some components are busy.

	* data/glade/select-producers-wizard.glade:
	* flumotion/admin/gtk/adminwindow.py:
	* flumotion/wizard/productionsteps.py:
	Make sure that the select production step is only showing
	necessary widgets when opened.
	Only show checkbuttons and combos when needed.

2008-06-04  Johan Dahlin  <johan@flumotion.com>

	* flumotion/ui/kiwipatches.py (FluLibgladeWidgetTree.__init__):
	Do not require the view to have the gladeTypedict variable set.

	* flumotion/admin/gtk/adminwindow.py:
	clean up debug marker api and location.

	* flumotion/admin/gtk/adminwindow.py:
	(AdminWindow._createUI): Use kiwi GladeDelegate, make
	statusbar private

	* flumotion/admin/gtk/adminwindow.py:
	Rename internal variables and some internal methods to be easier
	to read. Use show instead of show_all.
	Call _updateComponents a bit more often.

	* flumotion/admin/gtk/componentview.py
	(ComponentView._componentInactiveToUnset): check if
	self._currentComponentState is None before using it to avoid
	a shutdown race.

2008-06-04  Jordi Massaguer i Pla  <jordi@flumotion.com>

	* flumotion/extern/log/log.py:
	* flumotion/manager/base.py:
	Fixes #1013: Sent the debug marker to all components that have
	an avatar. Refactor writeDebugMarker to use a table for the
	methods instead of using a if/elif/else structure.

2008-06-03  Jordi Massaguer i Pla  <jordi@flumotion.com>

	reviewed by: Johan Dahlin  <johan@flumotion.com>

	* data/glade/debug-marker.glade:
	New interface for sending a marker to the manager to write
	it on the log.
	* flumotion/admin/gtk/adminwindow.py:
	Added a new action on the debug menu that opens a window for sending
	a marker to the manager to write it on the log.
	* flumotion/admin/gtk/debugmarkerview.py:
	New interface for sending a marker to the manager to write it
	on the log.
	* flumotion/common/medium.py:
	Added a new remote method that writes a marker to the logs.
	* flumotion/extern/log/log.py:
	Added a new method that writes a marker to the logs.
	Added also new utility functions that gets the name and the int
	of a debug level.
	* flumotion/extern/log/test_log.py:
	Tests the previous.
	* flumotion/manager/base.py:
	Added a new perspective methos to write a marker on the logs.
	Fixes #979

2008-06-03  Johan Dahlin  <johan@flumotion.com>

	* flumotion/admin/gtk/adminwindow.py
	(AdminWindow._runConfigurationWizard): Make it possible to close
	the popup question dialog by clicking on the close button.

	* flumotion/admin/gtk/adminwindow.py
	(AdminWindow._runConfigurationWizard):
	Clean the state before running the configuration wizard,
	fixes #998.

2008-06-02  Johan Dahlin  <johan@flumotion.com>

	* flumotion/admin/gtk/componentlist.py: Rename iter to titer

2008-06-02  Jordi Massaguer i Pla  <jordi@flumotion.com>

	* env.in:
	Rolled back to the previous one. Previous commit of this file was
	an error.

2008-06-02  Jordi Massaguer i Pla  <jordi@flumotion.com>

	* env.in:
	* flumotion/admin/gtk/adminwindow.py (AdminWindow.__init__,
	  AdminWindow._wizardFinshed, AdminWindow._connectionOpened):
	  Fixes #927 by adding a self._configurationWizardIsRunning so
	  it can be controlled whether a wizard windows has been opened
	  so that a new one does not need to be opened.

2008-05-30  Johan Dahlin  <johan@flumotion.com>

	* flumotion/admin/gtk/adminwindow.py: Add a proper doc-string
	and remove a couple of more underscores.

	* flumotion/component/consumers/httpstreamer/admin_gtk.py
	(StatisticsAdminGtkNode._updateLabels): link can still be None,
	really protect against it.

	* flumotion/admin/gtk/adminwindow.py:
	call activateComponent with None if no component is selected, this
	allows you to deselect all to get back to the planet view

	* flumotion/admin/gtk/componentlist.py
	(ComponentList._selectionChanged): emit an empty list instead of None

	* flumotion/admin/gtk/componentview.py (PlanetPlaceholder.getWidget):
	Add a simple placeholder for planets, nothing to see yet, just improving
	the infrastructure in preparation for #986

	* flumotion/twisted/flavors.py (StateRemoteCache.addListener): Improve
	error message when an instance is already listening to remote cache

	* flumotion/admin/gtk/componentview.py:
	Avoid using timestamps, create an abstract base class
	for different kind of widgets called placeholder.
	Rename some variables to make even more sense.

	* flumotion/ui/wizard.py (SectionWizard.__init__): Remove last
	traces of getFirstStep.

	* flumotion/admin/gtk/adminwindow.py
	(AdminWindow._connectionOpened): update componentview callsite

	* flumotion/admin/gtk/componentview.py:
	CamelCasifying, fix imports, document, rename  methods and variables
	to make more sense

	* flumotion/admin/gtk/message.py: General maintainance,
	clean up imports, improve naming, refactor large methods
	into smaller ones, rename variables.
	And two tiny extra changes.

2008-05-29  Johan Dahlin  <johan@flumotion.com>

	* flumotion/admin/gtk/adminwindow.py:
	Handle the initial case where no porters are available
	* flumotion/ui/wizard.py:
	(SectionWizard.run): Invert the check of sections, so it work
	with an empty initial wizard.

	* data/glade/Makefile.am:
	* data/glade/select-producers-wizard.glade:
	* flumotion/admin/gtk/addformatwizard.py:
	* flumotion/admin/gtk/adminwindow.py:
	* flumotion/ui/wizard.py:
	* flumotion/wizard/configurationwizard.py:
	* flumotion/wizard/productionsteps.py:
	Add a new step in the format wizard which allows you
	to select producers. Query the wizard for wizard information
	about the steps before opening the wizard.

2008-05-29  Johan Dahlin  <johan@flumotion.com>

	* flumotion/ui/kiwipatches.py: raise EnvironmentError
	when the glade file is missing. Fixes #953

	* bin/flumotion-debug (main): avatar -> adminAvatar

	* flumotion/wizard/shout2steps.py:
	* flumotion/wizard/diskersteps.py:
	* flumotion/wizard/httpstreamersteps.py:
	Make pychecker happy by removing unused imports,
	Regression after fixing #913.

	* flumotion/wizard/shout2steps.py:
	I should test code before committing, I should test code before
	comitting, I should test code before committing, I should test code
	before comitting, I should test code before committing, I should
	test code before comitting, I should test code before comitting,
	I should test code before comitting, I shouldtest code before
	comitting I should test code before comitting
	Regression after fixing #913.

2008-05-29  Johan Dahlin  <johan@flumotion.com>

	* flumotion/test/test_wizard_save.py: Update import here too.

	* flumotion/wizard/save.py (WizardSaver._handleMuxers): Simplify
	muxer saving, fixes #931

	* data/glade/Makefile.am:
	* flumotion/component/consumers/disker/Makefile.am:
	* flumotion/component/consumers/disker/wizard.glade:
	* flumotion/component/consumers/disker/wizard_gtk.py:
	* flumotion/component/consumers/httpstreamer/Makefile.am:
	* flumotion/component/consumers/httpstreamer/wizard.glade:
	* flumotion/component/consumers/httpstreamer/wizard_gtk.py:
	* flumotion/component/consumers/shout2/Makefile.am:
	* flumotion/component/consumers/shout2/wizard.glade:
	* flumotion/component/consumers/shout2/wizard_gtk.py:
	* flumotion/wizard/Makefile.am:
	* flumotion/wizard/consumptionsteps.py:
	Move back consumer steps from f.c.c, to f.w, fixes #935

2008-05-28  Johan Dahlin  <johan@flumotion.com>

	* flumotion/admin/gtk/adminwindow.py:
	(AdminWindow._componentSelectionChanged): Reorganize callbacks and
	add a statusbar internal statusbar api.

	* flumotion/admin/gtk/message.py:
	* flumotion/ui/wizard.py:
	Rename add_message to -> addMessage &
	       clear_message to _clearMessage
    Rename _messages_view to _messageView.
	Fix a real bug at a callsite, which used to be addmessages.

2008-05-28  Jordi Massaguer i Pla  <jordi@flumotion.com>

	reviewed by: Arek Korbik  <arkadini@gmail.com>

	* flumotion/admin/gtk/adminwindow.py (AdminWindow._wizardFinshed):
	* flumotion/admin/gtk/statusbar.py (AdminStatusbar._clearContext):
	* flumotion/test/test_parts.py (TestAdminStatusbar.testClear,
	  TestAdminStatusbar.testClearAll):
	Fixes #890 . When finishing the wizard all previous messages are
	clean up.

2008-05-28  Jordi Massaguer i Pla  <jordi@flumotion.com>

	reviewed by: Johan Dahlin  <johan@flumotion.com>

	* flumotion/common/package.py (findEndModuleCandidates):
	On findEndModuleCandidates added checking that module is not None

2008-05-28  Johan Dahlin  <johan@flumotion.com>

	* flumotion/common/planet.py (ManagerComponentState.__repr__)
	(AdminComponentState.__repr__): Improve repr strings to print
	the whole path to the class.

	* flumotion/admin/gtk/Makefile.am:
	* flumotion/admin/gtk/adminwindow.py:
	* flumotion/admin/gtk/client.py:
	* flumotion/admin/gtk/main.py:
	Rename client.AdminClientWindow to adminwindow.AdminWindow.

2008-05-28  Johan Dahlin  <johan@flumotion.com>

	* flumotion/admin/gtk/componentview.py:
	Never delete admingtk, just set it to None and check before
	using it.

	* flumotion/component/base/componentnode.py:
	Add debug logging and do not set an initial debug mask, should
	really fix #977 :-)

	* flumotion/wizard/configurationwizard.py: Clean up documentation
	strings and change a few parameter names for improved readability

2008-05-27  Johan Dahlin  <johan@flumotion.com>

	* flumotion/admin/gtk/addformatwizard.py:
	* flumotion/wizard/configurationwizard.py:
	Fix audio-only regression, getAudio()/getVideo() needs to be
	implemented differently for the two wizards.
	Also remove unused getFirstStep() methods, and make a method
	private.

	* flumotion/test/test_parts.py (TestComponentsView):
	update this test to, to reflect the lastest changes

	* flumotion/admin/gtk/client.py:
	* flumotion/admin/gtk/componentlist.py:
	camelcasify ComponentList api.
	Clean up ComponentList:
	- move all ui creation to _createUI
	- make a few unused methods private
	- make the callbacks shorter by calling
	  private methods

2008-05-27  Johan Dahlin  <johan@flumotion.com>

	* flumotion/admin/gtk/Makefile.am:
	* flumotion/admin/gtk/client.py:
	* flumotion/admin/gtk/componentlist.py:
	* flumotion/admin/gtk/parts.py:
	* flumotion/admin/gtk/statusbar.py:
	* flumotion/test/test_parts.py:
	Attempt to clean up the components_view vs
	component_view mess, kill off f.a.g.parts,
	- componentsview is renamed to componentlist and
	  moved to componentlist.py
	- adminstatusbar is moved to statusbar.py
	Rename _components to -> _componentStatus
	       components_view to -> _components

2008-05-27  Johan Dahlin  <johan@flumotion.com>

	* flumotion/admin/gtk/client.py:
	Improve connection label,
	Do some more camelcasing, move a callback to
	a real method.

2008-05-27  Johan Dahlin  <johan@flumotion.com>

	* flumotion/common/fraction.py:
	* flumotion/common/netutils.py:
	Fix epydoc syntax

2008-05-27  Johan Dahlin  <johan@flumotion.com>

	* flumotion/component/producers/audiotest/admin_gtk.py:
	it's admin_gtk, not vadmin_gtk

2008-05-26  Johan Dahlin  <johan@flumotion.com>

	* flumotion/component/base/Makefile.am:
	* flumotion/component/base/admin_gtk.py:
	* flumotion/component/base/base.xml:
	* flumotion/component/base/baseadminnode.py:
	* flumotion/component/base/componentnode.py:
	* flumotion/component/base/eatersnode.py:
	* flumotion/component/base/effectsnode.py:
	* flumotion/component/base/feedersnode.py:
	* flumotion/component/base/statewatcher.py:
	* flumotion/component/bouncers/admin_gtk.py:
	* flumotion/component/combiners/switch/admin_gtk.py:
	* flumotion/component/consumers/disker/admin_gtk.py:
	* flumotion/component/consumers/httpstreamer/admin_gtk.py:
	* flumotion/component/misc/httpserver/admin_gtk.py:
	* flumotion/component/producers/audiotest/admin_gtk.py:
	* flumotion/component/producers/looper/admin_gtk.py:
	* flumotion/component/producers/videotest/admin_gtk.py:
	Split f.c.base.admin_gtk into seven smaller pieces, new are:
	- baseadminnode
	- componentnode
	- eatersnode
	- effectsnode
	- feedersnode
	- statewatcher

2008-05-26  Johan Dahlin  <johan@flumotion.com>

	* flumotion/component/base/admin_gtk.py:
	Be more careful when setting the debug gst/flu masks. Fixes #977

	* flumotion/admin/gtk/client.py:
	* flumotion/wizard/configurationwizard.py:
	Reuse http porters between wizards if the port is the same.
	(ConfigurationWizard.save): Add the porter logic here as well.

2008-05-26  Johan Dahlin  <johan@flumotion.com>

	* flumotion/wizard/configurationwizard.py:
	video/audio producer needs to be set before setting the overlay
	* flumotion/component/plugs/cortado/wizard_gtk.py:
	We need to convert to a fraction first, before attempting
	to parse it

	* flumotion/admin/gtk/Makefile.am:
	* flumotion/admin/gtk/addformatwizard.py:
	* flumotion/admin/gtk/client.py:
	* flumotion/admin/gtk/parts.py:
	Add a new menu item for adding a new streamer format.
	Fixes #933

2008-05-26  Johan Dahlin  <johan@flumotion.com>

	* flumotion/wizard/models.py:
	* flumotion/wizard/save.py:
	Add a new state to the models, which is used to reference
	to existing models, we do not want to write/validate or
	resolve naming conflicts on them

2008-05-26  Johan Dahlin  <johan@flumotion.com>

	* flumotion/component/plugs/cortado/wizard_gtk.py:
	framerate can be a fraction, but cortado only accepts floats,
	convert it appropriately here.

	* flumotion/common/xmlwriter.py (XMLWriter._calcAttrsLength):
	check if Value is None before quoting it, raise a helpful
	exception if it is.

	* flumotion/component/consumers/httpstreamer/wizard_gtk.py:
	* flumotion/component/encoders/theora/wizard_gtk.py:
	* flumotion/wizard/configurationwizard.py:
	* flumotion/wizard/conversionsteps.py:
	Add two getAudioProducer/getVideoProducer methods to the wizard,
	to avoid fetching the production step everywhere.
	Check if license step and production step exists before adding them.

2008-05-26  Johan Dahlin  <johan@flumotion.com>

	* flumotion/ui/wizard.py:
	Add a new method hasStep, skip calling getFirstStep as it is
	not used, update self._steps in _setStep instead of _showNextStep,
	so the first step is actually added to the dict.

2008-05-26  Johan Dahlin  <johan@flumotion.com>

	* flumotion/admin/gtk/client.py:
	* flumotion/wizard/configurationwizard.py:
	Remove a constructor argument from the configuration
	wizard and move it to a setter accessor.

2008-05-26  Johan Dahlin  <johan@flumotion.com>

	* flumotion/admin/gtk/client.py:
	Avoid saving references to the wizard in the admin window.

	* flumotion/wizard/configurationwizard.py:
	Make adding the steps and saving public, overridable methods.
	Remove workerStateHeaven from run() and add an extra
	setter.

2008-05-26  Johan Dahlin  <johan@flumotion.com>

	* flumotion/common/registry.py:
	Fix a typo, bundle->b

2008-05-26  Johan Dahlin  <johan@flumotion.com>

	* flumotion/admin/command/main.py:
	* flumotion/common/dag.py:
	* flumotion/common/package.py:
	* flumotion/common/registry.py:
	* flumotion/manager/manager.py:
	Use list comprehensions instead of filter + lambda combination.

2008-05-26  Johan Dahlin  <johan@flumotion.com>

	* flumotion/manager/manager.py (Vishnu.deleteFlow): Remove
	lisp cruft, use a simpler pythonic approach.
	* flumotion/test/test_manager_manager.py (TestVishnu.testDeleteFlow):
	Add test for this function

	* flumotion/admin/gtk/client.py (MAIN_UI): Make
	separator names unique and fix wizard.run() call,
	now when interactive keyword arg is removed.

2008-05-23  Johan Dahlin  <johan@flumotion.com>

	* flumotion/ui/wizard.py (SectionWizard.run):
	* flumotion/wizard/configurationwizard.py:
	(ConfigurationWizard.run):
	Remove interactive cruft, which is unused.

	* flumotion/component/consumers/httpstreamer/wizard_gtk.py:
	* flumotion/component/encoders/dirac/wizard_gtk.py:
	* flumotion/component/encoders/jpeg/wizard_gtk.py:
	* flumotion/component/encoders/mulaw/wizard_gtk.py:
	* flumotion/component/encoders/smoke/wizard_gtk.py:
	* flumotion/component/encoders/theora/wizard_gtk.py:
	* flumotion/component/encoders/vorbis/wizard_gtk.py:
	* flumotion/component/producers/audiotest/wizard_gtk.py:
	* flumotion/component/producers/bttv/wizard_gtk.py:
	* flumotion/component/producers/firewire/wizard_gtk.py:
	* flumotion/component/producers/soundcard/wizard_gtk.py:
	* flumotion/component/producers/videotest/wizard_gtk.py:
	* flumotion/component/producers/webcam/wizard_gtk.py:
	* flumotion/ui/wizard.py:
	* flumotion/wizard/configurationwizard.py:
	* flumotion/wizard/consumptionsteps.py:
	* flumotion/wizard/conversionsteps.py:
	* flumotion/wizard/ondemandstep.py:
	* flumotion/wizard/overlaystep.py:
	* flumotion/wizard/productionsteps.py:
	Add step.title and use that in user interfaces.
	Keep step.name, but never display it, use it only internally
	in the code. Fixes #902

2008-05-23  Johan Dahlin  <johan@flumotion.com>

	* flumotion/admin/gtk/client.py:
	* flumotion/admin/gtk/dialogs.py:
	* flumotion/test/test_dialogs.py:
	Remove unused code.

2008-05-23  Johan Dahlin  <johan@flumotion.com>

	* flumotion/admin/gtk/client.py:
	CamelCase rename internal methods and varibles.

2008-05-23  Johan Dahlin  <johan@flumotion.com>

	* flumotion/wizard/models.py (Component.link):
	Add back accidentally removed append statements

	* flumotion/admin/gtk/client.py (AdminClientWindow._connection_opened):
	Show the client window even if the configuration wizard isn't run.

	* flumotion/test/test_wizard_save.py:
	* flumotion/wizard/configurationwriter.py:
	* flumotion/wizard/models.py:
	* flumotion/wizard/save.py:
	Clean up models, remove unused code and fix the validation:
	- rename getFeeders to getEaters
	- swap link calls around in saving code
	- update tests lacking complete flows

2008-05-23  Johan Dahlin  <johan@flumotion.com>

	* flumotion/admin/gtk/client.py:
	* flumotion/admin/gtk/parts.py:
	* flumotion/test/test_wizard_save.py:
	* flumotion/wizard/configurationwizard.py:
	* flumotion/wizard/save.py:
	Resolve naming conflicts when a wizard stream, allows
	you to run the wizard several times and still have unique component
	names no matter what.

2008-05-23  Johan Dahlin  <johan@flumotion.com>

	* flumotion/test/test_wizard_save.py (TestWizardSave.testOndemand):
	Add a new test.

	* flumotion/admin/gtk/main.py: Return a proper error code
	when quitting, 0 for success non-zero for failure.

2008-05-22  Arek Korbik  <arkadini@gmail.com>

	* flumotion/component/misc/httpserver/file.py:
	Remove ratecontrol import - it's not used and shouldn't be there.

2008-05-21  Johan Dahlin  <johan@flumotion.com>

	* flumotion/admin/gtk/client.py:
	Add an option to dump the current configuration to the user interface

	* flumotion/admin/gtk/client.py
	(AdminClientWindow._export_configuration):
	Set the default export filename to configuration.xml and
	always append .xml if it's missing.

	* flumotion/test/test_parts.py (TestComponentsView.testUpdate):
	Add 'type' key to the test components, so the tests can pass
	after the latest sorting changes

	* flumotion/admin/gtk/client.py
	(AdminClientWindow._import_configuration):
	Add two file filters when importing configuration, one for *.xml
	and one for everything.

	* flumotion/admin/gtk/parts.py (ComponentsView.update): Sort the
	component list by component type, similar to the xml file.

	* flumotion/test/test_greeter.py (WizardTest.testGreeter): Remove test
	which checks auth_method_combo, which now is gone

	* flumotion/admin/gtk/connections.py (Authenticate.__init__):
	* data/glade/authenticate.glade:
	Remove the label and combobox for authentication method, since we
	only support one kind of method right now.

	* data/glade/production-wizard.glade: Change on demand radiobutton
	label to "Stream files on demand"

	* flumotion/admin/gtk/parts.py (ComponentsView._add_columns):
	Rename the mood column to status

	* flumotion/ui/wizard.py (SectionWizard._updateButtons): Use finish
	instead of apply when completing the wizard

	* flumotion/admin/gtk/client.py
	(AdminClientWindow._import_configuration)
	(AdminClientWindow._export_configuration): Import and Export dialogs
	should use a verb instead of just OK to confirm the dialog.

	* flumotion/wizard/consumptionsteps.py (HTTPConsumptionStep.section):
	Rename the streaming page from HTTP to HTTP Streaming.

	* data/image/16x16/Makefile.am:
	* data/image/16x16/pause.png:
	* data/image/24x24/Makefile.am:
	* data/image/24x24/pause.png:
	* flumotion/admin/gtk/client.py:
	Create a stop icon and use it instead of pause in the
	admin ui.

2008-05-21  Johan Dahlin  <johan@flumotion.com>

	* flumotion/component/plugs/cortado/cortado.xml: Change the
	description of the cortado plugin to be
	"Publish embedded Java player page"

	* flumotion/admin/gtk/dialogs.py: refactor already_connected_message
	into showConnectionErrorDialog.

	* flumotion/admin/gtk/client.py (AdminClientWindow._create_ui):
	Change the menu label to be "Connect to running manager"

2008-05-21  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/monitor/nagios/process.py:
	  Remove process with parent pid 1 before looping over them.

2008-05-21  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/monitor/nagios/Makefile.am:
	* flumotion/monitor/nagios/main.py:
	* flumotion/monitor/nagios/process.py:
	  Add a process subcommand that allows checking for multiple
	  worker/manager/job, vsize and orphaned status of jobs.

2008-05-19  Johan Dahlin  <johan@flumotion.com>

	* flumotion/admin/gtk/client.py:
	* flumotion/admin/gtk/greeter.py:
	* flumotion/wizard/configurationwizard.py:
	Add widget names for the toplevel windows and avoid using
	dashes in the menu items used in the ui manger.

2008-05-19  Johan Dahlin  <johan@flumotion.com>

	* flumotion/common/managerspawner.py (LocalManagerSpawner.stop):
	Add a new stop method which can be used to stop and optionally
	cleanup the temporary state created by the started manager & worker

2008-05-19  Johan Dahlin  <johan@flumotion.com>

	* flumotion/admin/gtk/main.py (_connectToManager, main):
	Make sure that ssl defaults to True so flumotion-admin -m...
	uses SSL and not TCP by default.

2008-05-19  Johan Dahlin  <johan@flumotion.com>

	* flumotion/common/managerspawner.py: Remove unused variable
	found by pychecker.

2008-05-19  Johan Dahlin  <johan@flumotion.com>

	* flumotion/admin/gtk/greeter.py:
	* flumotion/common/Makefile.am:
	* flumotion/common/managerspawner.py:
	* flumotion/wizard/configurationwizard.py:
	Move the manager spawning code out of the greeter to
	f.c.managerspawner.

2008-05-19  Johan Dahlin  <johan@flumotion.com>

	* flumotion/ui/sidebar.py:
	* flumotion/ui/wizard.py:
	* flumotion/wizard/configurationwizard.py:
	Don't use class variables to define the steps.
	- Add a new methods addSection
	- Use it in configuration wizard
	- Transform sidebar.set_sections into append_section

2008-05-19  Johan Dahlin  <johan@flumotion.com>

	* flumotion/admin/gtk/greeter.py (StartNew._startManager): save the
	port we're going to use in a variable for re-use later.
	(StartNew._startManager.done): The started manager uses ssl.

2008-05-19  Johan Dahlin  <johan@flumotion.com>

	* flumotion/test/gtkunit.py: Fix a couple of stupid typos.

2008-05-19  Jordi Massaguer i Pla  <jordi@flumotion.com>

	* flumotion/admin/gtk/parts.py (ComponentsView.selection_changed_cb):
	Check for availability of gtk.TreeView.set_rubber_banding

2008-05-19  Johan Dahlin  <johan@flumotion.com>

	* flumotion/test/gtkunit.py: Add back setWidget and toggle
	methods which are used by the tests in flumotion-template.

2008-05-19  Jordi Massaguer i Pla  <jordi@flumotion.com>

	* flumotion/admin/gtk/client.py (AdminClientWindow.__init__,
	  AdminClientWindow.stateSet,
	  AdminClientWindow.componentCallRemoteStatus,
	  AdminClientWindow._create_ui,
	  AdminClientWindow._update_component_actions,
	  AdminClientWindow._remove_component, AdminClientWindow._component_do,
	  AdminClientWindow._component_selection_changed,
	  AdminClientWindow.compAppend, AdminClientWindow.compRemove,
	  AdminClientWindow._components_view_activated_cb):
	  Added multi selection
	* flumotion/admin/gtk/message.py:
	  Added multi selection
	* flumotion/admin/gtk/parts.py (ComponentsView.selection_changed_cb,
	  ComponentsView._tree_view_query_tooltip_cb,
	  ComponentsView._view_cursor_changed_cb,
	  ComponentsView._view_button_press_event_cb,
	  ComponentsView._activated_cb, ComponentsView._get_selected,
	  ComponentsView.get_selected_names,
	  ComponentsView.get_selected_states, ComponentsView.can_start,
	  ComponentsView.can_stop, ComponentMenu.__init__):
	  Added multi selection by returning multiple elements ( a list )
	  instead of a single element on the get_selected*. Also, moved the
	  can_start and can_stop from the
	  flumotion.admin.gtk.client.AdminClientWindow
	  to this class as it is used for the context menu.
	* flumotion/test/test_parts.py :
	  Added tests for multi selection

2008-05-19  Johan Dahlin  <johan@flumotion.com>

	* flumotion/test/test_greeter.py (WizardTest.testGreeter):
	* flumotion/test/gtkunit.py (UITestCase._process):
	Transform the ui test functions into methods, camelcasify and remove
	the unused ones.

2008-05-19  Johan Dahlin  <johan@flumotion.com>

	* flumotion/admin/gtk/greeter.py:
	Clean up the manager invokation.
	* flumotion/common/netutils.py (tryPort):
	Move the checking if a port is open to here.
	(tryPort): Avoid using python 2.5 specific syntax

2008-05-16  Arek Korbik  <arkadini@gmail.com>

	* flumotion/component/misc/httpserver/ratecontrol.py
	(TokenBucketConsumer, TokenBucketConsumer.__init__,
	  TokenBucketConsumer._tryWrite, TokenBucketConsumer._doUnregister,
	  TokenBucketConsumer._doFinish, TokenBucketConsumer.stopProducing,
	  TokenBucketConsumer.finish, TokenBucketConsumer.unregisterProducer):
	Make finishing and unregistering work properly with our time
	scheduled modus operandi. Release reference to consumer when asked
	to stop producing and make the code work properly even when we don't
	have a consumer.

2008-05-16  Arek Korbik  <arkadini@gmail.com>

	* flumotion/component/misc/httpserver/file.py
	(FileTransfer.stopProducing):
	Finish the request even if we are stopped early (helps breaking
	circular references - fixes leaks).

	* flumotion/component/misc/httpserver/file.py (FileTransfer.__init__,
	  FileTransfer.resumeProducing):
	* flumotion/component/misc/httpserver/httpserver.xml:
	Add more comments, add logging, fix logging to be more conformant
	with the interface.

2008-05-16  Johan Dahlin  <johan@flumotion.com>

	* flumotion/common/Makefile.am (flumotion_PYTHON): Add
	i18n.py here, should fix distcheck

2008-05-16  Johan Dahlin  <johan@flumotion.com>

	* flumotion/admin/admin.py:
	* flumotion/admin/gtk/client.py:
	* flumotion/admin/gtk/message.py:
	* flumotion/common/common.py:
	* flumotion/common/documentation.py:
	* flumotion/common/messages.py:
	* flumotion/common/worker.py:
	* flumotion/component/base/admin_gtk.py:
	* flumotion/component/bouncers/ipbouncer.py:
	* flumotion/component/combiners/switch/patternswitch.py:
	* flumotion/component/combiners/switch/switch.py:
	* flumotion/component/component.py:
	* flumotion/component/consumers/disker/disker.py:
	* flumotion/component/consumers/httpstreamer/httpstreamer.py:
	* flumotion/component/consumers/httpstreamer/wizard_gtk.py:
	* flumotion/component/converters/overlay/overlay.py:
	* flumotion/component/encoders/dirac/dirac.py:
	* flumotion/component/encoders/theora/theora.py:
	* flumotion/component/feedcomponent.py:
	* flumotion/component/feedcomponent010.py:
	* flumotion/component/misc/httpserver/httpserver.py:
	* flumotion/component/misc/porter/porter.py:
	* flumotion/component/misc/repeater/repeater.py:
	* flumotion/component/muxers/checks.py:
	* flumotion/component/producers/audiotest/audiotest.py:
	* flumotion/component/producers/bttv/wizard_gtk.py:
	* flumotion/component/producers/checks.py:
	* flumotion/component/producers/firewire/firewire.py:
	* flumotion/component/producers/firewire/wizard_gtk.py:
	* flumotion/component/producers/looper/looper.py:
	* flumotion/component/producers/playlist/playlist.py:
	* flumotion/component/producers/screencast/screencast.py:
	* flumotion/component/producers/soundcard/soundcard.py:
	* flumotion/component/producers/soundcard/wizard_gtk.py:
	* flumotion/component/producers/videotest/videotest.py:
	* flumotion/component/producers/webcam/wizard_gtk.py:
	* flumotion/launch/main.py:
	* flumotion/manager/component.py:
	* flumotion/manager/manager.py:
	* flumotion/test/test_common_messages.py:
	* flumotion/test/test_i18n.py:
	* flumotion/ui/wizard.py:
	* flumotion/wizard/configurationwizard.py:
	* flumotion/wizard/ondemandstep.py:
	* flumotion/wizard/overlaystep.py:
	* flumotion/worker/checks/audio.py:
	* flumotion/worker/checks/check.py:
	* flumotion/worker/checks/encoder.py:
	* flumotion/worker/checks/gst010.py:
	* flumotion/worker/job.py:
	Move over getLL from f.c.common to f.c.i18n and
	Translatable functiosn f.c.messages to f.c.i18n.
	Update callsites and reorganize imports while we add it.
	Separate tests as well.

2008-05-16  Arek Korbik  <arkadini@gmail.com>

	* flumotion/component/misc/httpserver/httpserver.py
	  (HTTPFileStreamer.do_stop):
	Deregister properly when stopping, depending on whether we
	registered a path or a prefix.

2008-05-15  Johan Dahlin  <johan@flumotion.com>

	* flumotion/common/common.py:
	* flumotion/common/medium.py:
	* flumotion/common/netutils.py:
	* flumotion/manager/manager.py:
	* flumotion/test/test_common.py:
	* flumotion/test/test_common_netutils.py:
	* flumotion/twisted/pb.py:
	Move addressGetHost and addressGetPort from f.c.common
	to f.c.netutils. Update callsites and tests.

2008-05-15  Johan Dahlin  <johan@flumotion.com>

	* flumotion/admin/admin.py:
	* flumotion/admin/gtk/client.py:
	* flumotion/admin/gtk/message.py:
	* flumotion/common/common.py:
	* flumotion/common/format.py:
	* flumotion/common/messages.py:
	* flumotion/common/package.py:
	* flumotion/common/registry.py:
	* flumotion/common/worker.py:
	* flumotion/component/base/admin_gtk.py:
	* flumotion/component/bouncers/ipbouncer.py:
	* flumotion/component/combiners/switch/patternswitch.py:
	* flumotion/component/combiners/switch/switch.py:
	* flumotion/component/component.py:
	* flumotion/component/consumers/disker/disker.py:
	* flumotion/component/consumers/httpstreamer/httpstreamer.py:
	* flumotion/component/consumers/httpstreamer/wizard_gtk.py:
	* flumotion/component/converters/overlay/overlay.py:
	* flumotion/component/encoders/dirac/dirac.py:
	* flumotion/component/encoders/theora/theora.py:
	* flumotion/component/feedcomponent.py:
	* flumotion/component/feedcomponent010.py:
	* flumotion/component/misc/httpserver/httpserver.py:
	* flumotion/component/misc/porter/porter.py:
	* flumotion/component/misc/repeater/repeater.py:
	* flumotion/component/muxers/checks.py:
	* flumotion/component/producers/audiotest/audiotest.py:
	* flumotion/component/producers/bttv/wizard_gtk.py:
	* flumotion/component/producers/checks.py:
	* flumotion/component/producers/firewire/firewire.py:
	* flumotion/component/producers/firewire/wizard_gtk.py:
	* flumotion/component/producers/looper/looper.py:
	* flumotion/component/producers/playlist/playlist.py:
	* flumotion/component/producers/screencast/screencast.py:
	* flumotion/component/producers/soundcard/soundcard.py:
	* flumotion/component/producers/soundcard/wizard_gtk.py:
	* flumotion/component/producers/videotest/videotest.py:
	* flumotion/component/producers/webcam/wizard_gtk.py:
	* flumotion/manager/component.py:
	* flumotion/manager/config.py:
	* flumotion/manager/manager.py:
	* flumotion/service/main.py:
	* flumotion/test/test_common_messages.py:
	* flumotion/test/test_config.py:
	* flumotion/test/test_i18n.py:
	* flumotion/ui/wizard.py:
	* flumotion/wizard/configurationwizard.py:
	* flumotion/wizard/configurationwriter.py:
	* flumotion/wizard/ondemandstep.py:
	* flumotion/wizard/overlaystep.py:
	* flumotion/worker/checks/audio.py:
	* flumotion/worker/checks/check.py:
	* flumotion/worker/checks/encoder.py:
	* flumotion/worker/checks/gst010.py:
	* flumotion/worker/job.py:
	Use configure.PACKAGE instead of 'flumotion', when referring to:
	- the gettext domain
	- the default bundle project

2008-05-15  Johan Dahlin  <johan@flumotion.com>

	* flumotion/admin/rrdmon/main.py:
	* flumotion/common/Makefile.am:
	* flumotion/common/common.py:
	* flumotion/common/process.py:
	* flumotion/manager/main.py:
	* flumotion/service/service.py:
	* flumotion/test/Makefile.am:
	* flumotion/test/test_common.py:
	* flumotion/test/test_common_process.py:
	* flumotion/worker/base.py:
	* flumotion/worker/main.py:
	Move process related utilites from f.c.common to
	f.c.process. Mark the untested ones without callsites
	in flumotion as private.
	Update callsites and split the tests too.

2008-05-15  Johan Dahlin  <johan@flumotion.com>

	* flumotion/common/common.py (writePidFile):
	Refactor to avoid duplication.
	Set chmod to 644 of created pid files.
	Fixes #847

2008-05-15  Johan Dahlin  <johan@flumotion.com>

	* flumotion/admin/connections.py:
	* flumotion/admin/gtk/client.py:
	* flumotion/admin/gtk/dialogs.py:
	* flumotion/admin/gtk/greeter.py:
	* flumotion/admin/gtk/main.py:
	* flumotion/configure/configure.py:
	* flumotion/ui/simplewizard.py:
	Refactoring connection handling.
	This avoids a bit of duplication, improves the APIs.
	Do some underscore->camelcase renaming.
	gtk/main.py is considerably shorter and easier to understand.
	Add a PACKAGE variable used by gettext.

2008-05-15  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/monitor/nagios/main.py:
	  Use changes to Command class to be able to stop parsing when
	  usage or help is printed.
	* flumotion/monitor/nagios/util.py:
	  override .debug() properly

2008-05-15  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/monitor/nagios/main.py:
	  Put all manager-needing checks under a new command
	  called manager.

2008-05-14  Johan Dahlin  <johan@flumotion.com>

	* data/glade/production-wizard.glade:
	* flumotion/ui/wizard.py:
	* flumotion/wizard/productionsteps.py:
	Make sure so that enter on a radio button on the production step
	page goes to the next page. Add an API to go to the next page.
	Refactor a production step to be simpler.

2008-05-12  Johan Dahlin  <johan@flumotion.com>

	* flumotion/common/Makefile.am:
	* flumotion/common/common.py:
	* flumotion/common/format.py:
	* flumotion/component/base/admin_gtk.py:
	* flumotion/component/consumers/httpstreamer/httpstreamer.py:
	* flumotion/component/misc/httpserver/admin_gtk.py:
	* flumotion/test/Makefile.am:
	* flumotion/test/test_common.py:
	* flumotion/test/test_common_format.py:
	Move formattting functions out of flumotion.common.format.
	Translate formatTime using ngettext.
	Update callsites to import from flumotion.common.
	Split tests out to test_common_format.
	Fixes #938

2008-05-12  Johan Dahlin  <johan@flumotion.com>

	* data/glade/ondemand-wizard.glade:
	* flumotion/wizard/ondemandstep.py:
	* flumotion/worker/checks/check.py:
	Add a worker check to verify that the directory is
	a directory and readable. Add tooltip and accelerator
	for the directory entry.
	Fixes #959

2008-05-12  Johan Dahlin  <johan@flumotion.com>

	* flumotion/admin/gtk/greeter.py:
	The activate signal is emitted when activation changes, not
	just when it's true, add a check to make sure that the radio button
	is active before proceeding.
	Fixes #958

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

	* flumotion/common/common.py:
	* flumotion/test/test_common.py:
	  Don't raise an exception when signalling a pid for liveness
	  run by another user.
	  Fixes #971.

2008-05-09  Johan Dahlin  <johan@flumotion.com>

	* flumotion/common/Makefile.am:
	* flumotion/common/config.py:
	* flumotion/common/fraction.py:
	* flumotion/component/encoders/theora/wizard_gtk.py:
	* flumotion/component/producers/webcam/wizard_gtk.py:
	* flumotion/test/test_common_fraction.py:
	* flumotion/test/test_common_xmlwriter.py:
	* flumotion/wizard/models.py:
	Clear up confusion about fractions between webcam step and
	theora, add functions to convert to and from fractions.
	Fixes #968

2008-05-09  Johan Dahlin  <johan@flumotion.com>

	* flumotion/wizard/configurationwizard.py:
	Improve error message from stray taskFinished calls

	* flumotion/component/producers/webcam/wizard_gtk.py:
	Rename to camelCase.
	Refactor taskFinished call out of _clear. Document when _clear
	is called.
	Fixes #967

2008-05-08  Johan Dahlin  <johan@flumotion.com>

	* flumotion/common/registry.py:
	* flumotion/component/consumers/disker/wizard_gtk.py:
	* flumotion/component/consumers/httpstreamer/wizard_gtk.py:
	* flumotion/component/consumers/shout2/wizard_gtk.py:
	* flumotion/component/encoders/dirac/wizard_gtk.py:
	* flumotion/component/encoders/jpeg/wizard_gtk.py:
	* flumotion/component/encoders/mulaw/wizard_gtk.py:
	* flumotion/component/encoders/smoke/wizard_gtk.py:
	* flumotion/component/encoders/speex/wizard_gtk.py:
	* flumotion/component/encoders/theora/wizard_gtk.py:
	* flumotion/component/encoders/vorbis/wizard_gtk.py:
	* flumotion/component/plugs/cortado/wizard_gtk.py:
	* flumotion/component/producers/audiotest/wizard_gtk.py:
	* flumotion/component/producers/bttv/wizard_gtk.py:
	* flumotion/component/producers/firewire/wizard_gtk.py:
	* flumotion/component/producers/soundcard/wizard_gtk.py:
	* flumotion/component/producers/videotest/wizard_gtk.py:
	* flumotion/component/producers/webcam/wizard_gtk.py:
	* flumotion/test/test_wizard_save.py:
	* flumotion/wizard/configurationwizard.py:
	* flumotion/wizard/configurationwriter.py:
	* flumotion/wizard/conversionsteps.py:
	* flumotion/wizard/models.py:
	* flumotion/wizard/ondemandstep.py:
	* flumotion/wizard/overlaystep.py:
	* flumotion/wizard/productionsteps.py:
	* flumotion/wizard/save.py:
	Complete teh underscore_style to camelCase changes for
	flumotion/wizard/models.py.
	Also do a complete component_type -> componentType conversion,
	including backwards compat for external modules.

2008-05-08  Johan Dahlin  <johan@gnome.org>

	* flumotion/test/test_common_package.py
	(TestPackagePath.testPackagerWithNonePrefix):
	Don't require the xml.dom.html module to be installed

2008-05-08  Johan Dahlin  <johan@flumotion.com>

	* data/glade/Makefile.am (glade_DATA): Add http-wizard.glade and
	ondemand.glade, so it's included in the dist and thus ubuntu packages.

2008-05-08  Arek Korbik  <arkadini@gmail.com>

	* flumotion/admin/multi.py (get_admin_for_object):
	Fix brokennes in r6565 - don't import functions as modules!

2008-05-07  Johan Dahlin  <johan@flumotion.com>

	* data/glade/http-wizard.glade:
	* flumotion/component/consumers/httpstreamer/wizard.glade:
	* flumotion/component/consumers/httpstreamer/wizard_gtk.py:
	* flumotion/component/plugs/cortado/wizard_gtk.py:
	* flumotion/configure/configure.py:
	* flumotion/test/test_wizard_save.py
	* flumotion/wizard/configurationwizard.py:
	* flumotion/wizard/consumptionsteps.py:
	* flumotion/wizard/models.py:
	Create a new HTTP page with generic http options.
	Use :8800/audio-video instead of :8802 for audio/video streams etc.
	Fixes #963

2008-05-07  Johan Dahlin  <johan@flumotion.com>

	* flumotion/wizard/save.py (WizardSaver._handleMuxers): Rename
	from _handleConsumers

2008-05-07  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/worker/checks/audio.py:
	* flumotion/worker/checks/check.py:
	  Add handling of RESOURCE_WRITE errors.
	  Also handle alsasrc bug for gst-plugins-base <= 0.10.14
	  where it was actually sending RESOURCE_WRITE when it should have
	  sent RESOURCE_READ.

2008-05-07  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/messages.py:
	  Rename a terribly named method that is internal to the file.
	  Use it to log creation and addition of translatables to messages.

2008-05-07  Johan Dahlin  <johan@flumotion.com>

	* flumotion/component/producers/bttv/wizard_gtk.py:
	convert private methods and variables to camel case.

2008-05-07  Johan Dahlin  <johan@flumotion.com>

	* flumotion/component/producers/bttv/wizard.glade:
	* flumotion/component/producers/bttv/wizard_gtk.py:
	Speculative fix for BTTV: Add channel and signal properties

2008-05-07  Arek Korbik  <arkadini@gmail.com>

	* flumotion/component/producers/bttv/bttv.py (BTTV.configure_pipeline):
	Allow the 'signal' property to be optional in the code, too.

2008-05-07  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/encoders/speex/speex.xml:
	* flumotion/component/encoders/vorbis/vorbis.xml:
	  unify encoder description.

2008-05-06  Jordi Massaguer i Pla  <jordi@flumotion.com>

	reviewed by: Johan Dahlin  <johan@flumotion.com>

	* flumotion/wizard/conversionsteps.py:
	  Added theora and vorbis as default encoders. Fixes #926.

2008-05-06  Johan Dahlin  <johan@flumotion.com>

	* data/glade/ondemand-wizard.glade:
	* data/glade/production-wizard.glade:
	* flumotion/ui/wizard.py:
	* flumotion/wizard/Makefile.am:
	* flumotion/wizard/configurationwizard.py:
	* flumotion/wizard/ondemandstep.py:
	* flumotion/wizard/productionsteps.py:
	Add ondemand step to the wizard, fixes #932

2008-05-06  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/service/service.py:
	  Invoke cert generation through sh, fix for installed version.

2008-05-06  Thomas Vander Stichele  <thomas at apestaart dot org>

	* doc/random/styleguide:
	  Clear up trailing commas in tuples/lists case.
	* flumotion/common/gstreamer.py:
	* flumotion/common/keycards.py:
	* flumotion/common/medium.py:
	* flumotion/common/signals.py:
	* flumotion/component/bouncers/saltsha256.py:
	* flumotion/extern/log/log.py:
	* flumotion/extern/unixcrypt.py:
	* flumotion/test/test_common.py:
	* flumotion/test/test_common_messages.py:
	* flumotion/test/test_pb.py:
	* flumotion/twisted/checkers.py:
	* flumotion/twisted/pb.py:
	* flumotion/twisted/rtsp.py:
	* flumotion/worker/checks/check.py:
	  fix them up.

2008-05-06  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/component.py:
	  properly document uiState ivar.

2008-05-06  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/launch/main.py:
	  Respect ComponentStartError's prototype by passing it a "fake"
	  component state it can complain about.

2008-05-06  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/registry.py:
	  Use getExceptionMessage to convert an exception into a string.
	  Only show the exception if it's fatal.

2008-05-06  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/registry.py:
	* flumotion/project/project.py:
	  Add some debugging.  Fix up some debugging text.

2008-05-06  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/gstreamer.py:
	  Offset balance in the force by adding whitespace.

2008-05-06  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/base/admin_gtk.py:
	  Commenting and code reformatting.

2008-05-05  Johan Dahlin  <johan@flumotion.com>

	* data/glade/Makefile.am:
	* data/glade/wizard.glade:
	* data/glade/wizard_audio_encoder.glade:
	* data/glade/wizard_consumption.glade:
	* data/glade/wizard_encoding.glade:
	* data/glade/wizard_license.glade:
	* data/glade/wizard_overlay.glade:
	* data/glade/wizard_overview.glade:
	* data/glade/wizard_production.glade:
	* data/glade/wizard_summary.glade:
	* data/glade/wizard_welcome.glade:
	* flumotion/ui/wizard.py:
	* flumotion/wizard/basesteps.py:
	* flumotion/wizard/configurationwizard.py:
	* flumotion/wizard/consumptionsteps.py:
	* flumotion/wizard/conversionsteps.py:
	* flumotion/wizard/overlaystep.py:
	* flumotion/wizard/productionsteps.py:
	* po/POTFILES.in:
	Rename most glade files, wizard_* -> *-wizard and
	wizard -> section-wizard

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

	* flumotion/common/worker.py:
	  Counterintuitively, list.index() triggers a ValueError exception,
	  so catch that instead.

2008-05-05  Arek Korbik  <arkadini@gmail.com>

	* flumotion/component/encoders/smoke/smoke.xml:
	* flumotion/component/encoders/vorbis/vorbis.xml:
	Remove duplicate bundle entries.

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

	* doc/random/runtime-versions:
	* flumotion/common/server.py:
	* flumotion/manager/manager.py:
	  Document more.  Add original document on versioning of .py files
	  (which shows the URL bit is missing to know whether it's trunk or
	  not)

2008-05-05  Arek Korbik  <arkadini@gmail.com>

	* flumotion/component/plugs/cortado/Makefile.am:
	* flumotion/component/plugs/cortado/cortado.xml:
	* flumotion/component/plugs/cortado/wizard_gtk.py:
	* flumotion/component/encoders/dirac/dirac.xml:
	* flumotion/component/encoders/dirac/wizard.glade:
	* flumotion/component/encoders/dirac/wizard_gtk.py:
	* flumotion/component/encoders/theora/theora.xml:
	* flumotion/component/encoders/theora/wizard.glade:
	* flumotion/component/encoders/theora/wizard_gtk.py:
	* flumotion/component/encoders/speex/speex.xml:
	* flumotion/component/encoders/speex/wizard_gtk.py:
	* flumotion/component/encoders/vorbis/vorbis.xml:
	* flumotion/component/encoders/vorbis/wizard.glade:
	* flumotion/component/encoders/vorbis/wizard_gtk.py:
	* flumotion/component/encoders/jpeg/jpeg.xml:
	* flumotion/component/encoders/jpeg/wizard.glade:
	* flumotion/component/encoders/jpeg/wizard_gtk.py:
	* flumotion/component/encoders/mulaw/mulaw.xml:
	* flumotion/component/encoders/mulaw/wizard.glade:
	* flumotion/component/encoders/mulaw/wizard_gtk.py:
	* flumotion/component/encoders/Makefile.am:
	* flumotion/component/encoders/smoke/wizard.glade:
	* flumotion/component/encoders/smoke/wizard_gtk.py:
	* flumotion/component/encoders/smoke/smoke.xml:
	* flumotion/component/producers/bttv/Makefile.am:
	* flumotion/component/producers/bttv/wizard.glade:
	* flumotion/component/producers/bttv/wizard_gtk.py:
	* flumotion/component/producers/bttv/bttv.xml:
	* flumotion/component/producers/soundcard/soundcard.xml:
	* flumotion/component/producers/soundcard/Makefile.am:
	* flumotion/component/producers/soundcard/wizard.glade:
	* flumotion/component/producers/soundcard/wizard_gtk.py:
	* flumotion/component/producers/webcam/Makefile.am:
	* flumotion/component/producers/webcam/wizard.glade:
	* flumotion/component/producers/webcam/wizard_gtk.py:
	* flumotion/component/producers/webcam/webcam.xml:
	* flumotion/component/producers/audiotest/audiotest.xml:
	* flumotion/component/producers/audiotest/Makefile.am:
	* flumotion/component/producers/audiotest/wizard.glade:
	* flumotion/component/producers/audiotest/wizard_gtk.py:
	* flumotion/component/producers/videotest/videotest.xml:
	* flumotion/component/producers/videotest/Makefile.am:
	* flumotion/component/producers/videotest/wizard.glade:
	* flumotion/component/producers/videotest/wizard_gtk.py:
	* flumotion/component/producers/firewire/Makefile.am:
	* flumotion/component/producers/firewire/firewire.xml:
	* flumotion/component/producers/firewire/wizard.glade:
	* flumotion/component/producers/firewire/wizard_gtk.py:
	* flumotion/component/consumers/disker/Makefile.am:
	* flumotion/component/consumers/disker/wizard.glade:
	* flumotion/component/consumers/disker/wizard_gtk.py:
	* flumotion/component/consumers/httpstreamer/Makefile.am:
	* flumotion/component/consumers/httpstreamer/wizard.glade:
	* flumotion/component/consumers/httpstreamer/wizard_gtk.py:
	* flumotion/component/consumers/shout2/Makefile.am:
	* flumotion/component/consumers/shout2/wizard.glade:
	* flumotion/component/consumers/shout2/wizard_gtk.py:
	* flumotion/test/test_wizard_save.py:
	* flumotion/wizard/consumptionsteps.py:
	* po/POTFILES.in:

	Rename all the *_wizard.py files into wizard_gtk.py, and all
	the *-wizard.glade files into wizard.glade. Update makefiles and
	references in a few other files.

2008-05-02  Johan Dahlin  <johan@flumotion.com>

	* flumotion/common/Makefile.am:
	* flumotion/common/mimetypes.py:
	* flumotion/component/consumers/disker/disker.py:
	* flumotion/component/consumers/httpstreamer/admin_gtk.py:
	* flumotion/component/misc/httpserver/admin_gtk.py:
	Abstract launching an application and move it to f.c.mimetypes and
	also move conversion of a mime type to a file extension.
	Use subprocess instead of os.system on linux.
	Implement support for launching an app on win32.

2008-05-02  Johan Dahlin  <johan@flumotion.com>

	* flumotion/ui/Makefile.am:
	* flumotion/ui/url.py:
	* po/POTFILES.in:
	Remove flumotion.ui.url which is unused.

2008-05-02  Johan Dahlin  <johan@flumotion.com>

	* flumotion/common/bundle.py (Unbundler.unbundle):
	Remove the target file before renaming.

	* flumotion/component/base/admin_gtk.py
	(BaseAdminGtkNode.loadGladeFile):
	Fixes #942. Manager is assumed to work on / for now, while the
	admin client is using os.path.sep and converts back and forth
	when talking to the manager.

2008-05-02  Thomas Vander Stichele  <thomas at apestaart dot org>

	* common/common.mk:
	  put FLUMOTION_DIR first on PYTHONPATH.

2008-05-02  Johan Dahlin  <johan@flumotion.com>

	* flumotion/admin/gtk/componentview.py
	(ComponentView._get_widget_constructor.got_entry_point):
	Ditto for componentview. Part of #942

2008-05-02  Johan Dahlin  <johan@flumotion.com>

	* flumotion/component/consumers/httpstreamer/httpstreamer_wizard.py:
	* flumotion/wizard/configurationwizard.py
	(ConfigurationWizard._gotEntryPoint): Move out of
	(ConfigurationWizard.getWizardPlugEntry): this
	(ConfigurationWizard.getWizardEntry):  and this.
	Make getWizardPlugEntry public, refactor component/plug callback to a
	common path.
	Also replace the path separator given from the manager
	with os.path.sep, since that is what is expected on the
	admin client side of the story.
	Part of #942.

2008-05-01  Thomas Vander Stichele  <thomas at apestaart dot org>

	* common/common.mk:
	  Also get top_srcdir on the PYTHONPATH for when building nonscrdir.

2008-05-01  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/project/project.py:
	  Tell us the reason of an import error when trying to load a project.

2008-05-01  Thomas Vander Stichele  <thomas at apestaart dot org>

	* misc/validate-registry.py:
	* common/validate-registry.py:
	  Move from misc to common.
	* Makefile.am:
	* common/Makefile.am:
	* common/common.mk:
	  Fix up files for the move.

2008-05-01  Thomas Vander Stichele  <thomas at apestaart dot org>

	* misc/validate-registry.py:
	  Set up the package path as well.

2008-05-01  Thomas Vander Stichele  <thomas at apestaart dot org>

	* common/common.mk:
	  Run inside environment so flumotion can be imported.

2008-05-01  Thomas Vander Stichele  <thomas at apestaart dot org>

	* misc/validate-registry.py:
	  Add a simple script to validate the registry.
	* Makefile.am:
	* common/common.mk:
	  Run it as part of make check.
	* flumotion/common/bundle.py:
	  Add a method to get bundle names ...
	* flumotion/test/test_bundle.py:
	  ... and test it.

2008-04-30  Johan Dahlin  <johan@flumotion.com>

	* flumotion/ui/url.py: Fix typo which broke the case
	where gnomevfs is not installed.

2008-04-30  Johan Dahlin  <johan@flumotion.com>

	* flumotion/common/fxml.py:
	* flumotion/common/xmlwriter.py:
	* flumotion/manager/config.py:
	* flumotion/test/Makefile.am:
	* flumotion/test/test_common_xmlwriter.py:
	* flumotion/wizard/configurationwriter.py:
	Wrap long lines in the xml output by using xmlwriter when
	exporting xml from the planet. Sort the components and
	add a new function for ordering components by type.
	Fixes #939.

2008-04-30  Johan Dahlin  <johan@flumotion.com>

	* flumotion/test/Makefile.am:
	* flumotion/test/test_common_xmlwriter.py:
	Add xmlwriter tests.

2008-04-29  Arek Korbik  <arkadini@gmail.com>

	* flumotion/component/encoders/theora/theora.py (Theora.do_check):
	Import the used modules and invoke the check function properly.

2008-04-28  Johan Dahlin  <johan@gnome.org>

	* flumotion/wizard/configurationwizard.py (ConfigurationWizard.waitForTask):
	prevent a raise from happening when shutting down the wizard, check
	so the GdkWindow isn't None when setting a cursor.

2008-04-28  Johan Dahlin  <johan@flumotion.com>

	* flumotion/admin/gtk/connections.py:
	* flumotion/component/base/admin_gtk.py:
	* flumotion/component/consumers/disker/admin_gtk.py:
	* flumotion/component/consumers/disker/disker_wizard.py:
	* flumotion/component/consumers/httpstreamer/admin_gtk.py:
	* flumotion/component/consumers/httpstreamer/httpstreamer_wizard.py:
	* flumotion/component/consumers/shout2/shout2_wizard.py:
	* flumotion/component/effects/colorbalance/admin_gtk.py:
	* flumotion/component/effects/volume/admin_gtk.py:
	* flumotion/component/encoders/dirac/dirac_wizard.py:
	* flumotion/component/encoders/jpeg/jpeg_wizard.py:
	* flumotion/component/encoders/mulaw/mulaw_wizard.py:
	* flumotion/component/encoders/smoke/smoke_wizard.py:
	* flumotion/component/encoders/speex/speex_wizard.py:
	* flumotion/component/encoders/theora/theora_wizard.py:
	* flumotion/component/encoders/vorbis/vorbis_wizard.py:
	* flumotion/component/misc/httpserver/admin_gtk.py:
	* flumotion/component/producers/audiotest/admin_gtk.py:
	* flumotion/component/producers/audiotest/audiotest_wizard.py:
	* flumotion/component/producers/bttv/bttv_wizard.py:
	* flumotion/component/producers/firewire/firewire_wizard.py:
	* flumotion/component/producers/looper/admin_gtk.py:
	* flumotion/component/producers/soundcard/soundcard_wizard.py:
	* flumotion/component/producers/videotest/videotest_wizard.py:
	* flumotion/component/producers/webcam/webcam_wizard.py:
	* flumotion/test/test_wizard.py:
	* flumotion/ui/glade.py:
	* flumotion/ui/kiwipatches.py:
	* flumotion/ui/simplewizard.py:
	* flumotion/ui/wizard.py:
	* flumotion/wizard/basesteps.py:
	* flumotion/wizard/configurationwizard.py:
	* flumotion/wizard/consumptionsteps.py:
	* flumotion/wizard/conversionsteps.py:
	* flumotion/wizard/overlaystep.py:
	* flumotion/wizard/productionsteps.py:
	More camelCase renaming:
	  * _use_main -> _useMain
	  * current_section -> currentSection
	  * current_step -> currentStep
	  * gettext_domain -> gettextDomain
	  * glade_file -> gladeFile
	  * glade_typedict -> gladeTypedict
	  * has_next -> hasNext
	  * last_step -> lastStep
	  * next_step -> nextStep
	  * nexstep_class -> nextStepClass
	  * section_class -> sectionClass
	  * sidebar_name -> sidebarName

2008-04-28  Johan Dahlin  <johan@flumotion.com>

	* flumotion/common/xmlwriter.py:
	* flumotion/test/test_wizard_save.py:
	* flumotion/wizard/configurationwriter.py:
	Update xmlwriter from gobject-introspection copy, it
	can line write attributes properly.
	Update tests and change callsite slightly.

2008-04-28  Johan Dahlin  <johan@flumotion.com>

	* flumotion/common/xmlwriter.py:
	* flumotion/wizard/configurationwriter.py:
	Move xmlwriter out of the wizard.

2008-04-28  Johan Dahlin  <johan@flumotion.com>

	* flumotion/component/consumers/disker/disker_wizard.py:
	* flumotion/component/consumers/httpstreamer/httpstreamer_wizard.py:
	* flumotion/component/consumers/shout2/shout2_wizard.py:
	* flumotion/component/encoders/dirac/dirac_wizard.py:
	* flumotion/component/encoders/jpeg/jpeg_wizard.py:
	* flumotion/component/encoders/mulaw/mulaw_wizard.py:
	* flumotion/component/encoders/smoke/smoke_wizard.py:
	* flumotion/component/encoders/speex/speex_wizard.py:
	* flumotion/component/encoders/theora/theora_wizard.py:
	* flumotion/component/encoders/vorbis/vorbis_wizard.py:
	* flumotion/component/plugs/cortado/cortado_wizard.py:
	* flumotion/component/producers/audiotest/audiotest_wizard.py:
	* flumotion/component/producers/bttv/bttv_wizard.py:
	* flumotion/component/producers/firewire/firewire_wizard.py:
	* flumotion/component/producers/soundcard/soundcard_wizard.py:
	* flumotion/component/producers/videotest/videotest_wizard.py:
	* flumotion/component/producers/webcam/webcam_wizard.py:
	* flumotion/test/test_wizard.py:
	* flumotion/ui/wizard.py:
	* flumotion/wizard/basesteps.py:
	* flumotion/wizard/configurationwizard.py:
	* flumotion/wizard/consumptionsteps.py:
	* flumotion/wizard/conversionsteps.py:
	* flumotion/wizard/interfaces.py:
	* flumotion/wizard/overlaystep.py:
	* flumotion/wizard/productionsteps.py:
	* flumotion/wizard/worker.py:
	* flumotion/wizard/workerstep.py:
	Rename wizard variables, private and public API to use camelCase
	instead of under_scores.

2008-04-28  Johan Dahlin  <johan@flumotion.com>

	* flumotion/admin/admin.py:
	* flumotion/component/consumers/httpstreamer/httpstreamer_wizard.py:
	* flumotion/wizard/conversionsteps.py:
	* flumotion/wizard/productionsteps.py:
	Clean up thomas' "refactoring".

2008-04-28  Johan Dahlin  <johan@flumotion.com>

	* flumotion/test/test_common_messages.py:
	Remove a deferred generator

2008-04-26  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/test/test_http.py:
	  Remove the defer generator to bring out the traceback
	  that was being papered over as an actual error.
	  Fix the error by adding a .path to FakeRequest.

2008-04-26  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/keycards.py:
	  Properly document Keycard attributes instead of commenting.
	  Deprecate inconsistently named HTTPDigestKeycard.
	* flumotion/test/test_keycards.py:
	  Drive up coverage to 100%.

2008-04-25  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/signals.py:
	  Use the right variable.  Actually chain through to the
	  non-deprecated method.

2008-04-25  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/encoders/theora/theora.py:
	  Use the correctly imported module.

2008-04-25  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/multi.py:
	* flumotion/common/signals.py:
	* flumotion/test/test_common_signals.py:
	  Fix naming, but using DeprecationWarning

2008-04-25  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/multi.py:
	* flumotion/component/component.py:
	  Privatize variables and camelCase.

2008-04-25  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/encoders/theora/theora.py:
	* flumotion/component/encoders/theora/theora.xml:
	  Remove bundle with same name.
	  Use the check that was moved to the check module.

2008-04-25  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/monitor/nagios/main.py:
	  Return the exit code.
	  Don't traceback on Nagios Exceptions

2008-04-25  Thomas Vander Stichele  <thomas at apestaart dot org>

	* doc/reference/Makefile.am:
	* flumotion/admin/admin.py:
	* flumotion/common/common.py:
	* flumotion/component/base/admin_gtk.py:
	* flumotion/component/feed.py:
	* flumotion/manager/admin.py:
	* flumotion/twisted/integration.py:
	* flumotion/twisted/rtsp.py:
	* flumotion/ui/glade.py:
	* flumotion/ui/wizard.py:
	* flumotion/wizard/configurationwizard.py:
	* flumotion/worker/base.py:
	* flumotion/worker/feedserver.py:
	* flumotion/worker/medium.py:
	* flumotion/worker/worker.py:
	  Fix a bunch of documentation errors.

2008-04-25  Johan Dahlin  <johan@flumotion.com>

	* flumotion/extern/Makefile.am:
	* flumotion/extern/unixcrypt.py:
	* flumotion/twisted/credentials.py:
	Add a unixcrypt module as a fallback for crypt for platforms
	where it's not available fixes #941

=== release 0.5.2 ===

2008-04-25  Arek Korbik  <arkadini@gmail.com>

	* NEWS:
	* RELEASE:
	* configure.ac:
	* flumotion.doap:
	Releasing 0.5.2 "Can Tomas".

2008-04-25  Arek Korbik  <arkadini@gmail.com>

	* flumotion/component/component.py (BaseComponent.do_check,
	  BaseComponent.check_properties, BaseComponent.do_setup,
	  checkErrorCallback):
	Resurect a part of the code that was removed in r5566 (and
	mostly resurected in r6499): add checking for component's mood
	before continuing with do_setup(). Update API docstrings.
	Fixes #924.

	* doc/random/component-initialization-protocol:
	Make the documentation bits consistent with the implementation.

2008-04-24  Arek Korbik  <arkadini@gmail.com>

	* flumotion.doap:
	Update trac and repository URLs.

2008-04-24  Johan Dahlin  <johan@flumotion.com>

	* flumotion/component/producers/bttv/bttv.py:
	Workaround the case where no channels are specified,
	fixes #934

2008-04-24  Arek Korbik  <arkadini@gmail.com>

	* flumotion/component/consumers/shout2/shout2.py
	  (Shout2Consumer.get_pipeline_string,
	  Shout2Consumer.configure_pipeline):
	Quote the properties passed to parse_launch, they may contain
	spaces. Fix warning logging.

2008-04-24  Johan Dahlin  <johan@flumotion.com>

	* flumotion/component/consumers/shout2/shout2_wizard.py
	(Shout2Consumer.__init__): Make sure that all properties
	are saved to the configuration file

	* flumotion/component/consumers/shout2/shout2_wizard.py
	(Shout2Consumer.__init__):
	mount_point is a required property, always set it
	(Shout2Step.worker_changed): Set the worker name of the model.

	* flumotion/wizard/save.py (WizardSaver.addConsumer):
	it's called shout2-consumer, not shout2.

	* flumotion/ui/kiwipatches.py (_open_glade): Use os.path.sep instead
	of /.

2008-04-23  Johan Dahlin  <johan@flumotion.com>

	* flumotion/wizard/overlaystep.py:
	show_text moved to properties, fixes #936

2008-04-23  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/admin.py:
	  Store the connector when a connection is being made, so
	  we can mention it when we fail.

2008-04-23  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/admin.py:
	  Tell us what we fail to connect to so we can solve the problem.

2008-04-21  Johan Dahlin  <johan@flumotion.com>

	* flumotion/component/plugs/cortado/cortado_location.py.in:
	Add OpenSuSE location here too.

2008-04-21  Arek Korbik  <arkadini@gmail.com>

	* flumotion/common/planet.py (ManagerAtmosphereState.empty):
	Make a copy of a list before removing from it while iterating.
	Fixes #931.

2008-04-20  Thomas Vander Stichele  <thomas at apestaart dot org>

	* common/epydoc.mk:
	* common/filterdoc.py:
	  Filter the output when generating epydoc, suppressing output from
	  modules outside of flumotion, like gobject, gtk, and twisted.

2008-04-18  Johan Dahlin  <johan@flumotion.com>

	* flumotion/wizard/overlaystep.py (Overlay.getProperties): show-text
	should be saved as a real property. Fixes #929

	* flumotion/test/test_wizard_save.py (TestWizardSave):
	Update tests

2008-04-18  Johan Dahlin  <johan@flumotion.com>

	reviewed by: Zaheer

	* flumotion/component/consumers/httpstreamer/httpstreamer_wizard.py:
	* flumotion/component/plugs/cortado/cortado_wizard.py:
	* flumotion/worker/checks/Makefile.am:
	* flumotion/worker/checks/http.py:
	* flumotion/worker/checks/package.xml:

	Don't use localhost for the porter, guess the public hostname instead.
	Fixes #923

2008-04-17  Johan Dahlin  <johan@flumotion.com>

	* common/deb.mk:
	* pkg/debian-common/NEWS:
	* pkg/debian-common/README.Debian:
	* pkg/debian-common/TODO.Debian:
	* pkg/debian-common/compat:
	* pkg/debian-common/control:
	* pkg/debian-common/copyright:
	* pkg/debian-common/default.xml:
	* pkg/debian-common/dirs:
	* pkg/debian-common/flumotion.docs:
	* pkg/debian-common/flumotion.examples:
	* pkg/debian-common/flumotion.init:
	* pkg/debian-common/flumotion.install:
	* pkg/debian-common/flumotion.postinst:
	* pkg/debian-common/flumotion.postrm:
	* pkg/debian-common/flumotion.rtupdate:
	* pkg/debian-common/planet.xml:
	* pkg/debian-common/pycompat:
	* pkg/debian-common/rules:
	* pkg/debian-common/watch:
	* pkg/ubuntu-gutsy/NEWS:
	* pkg/ubuntu-gutsy/README.Debian:
	* pkg/ubuntu-gutsy/TODO.Debian:
	* pkg/ubuntu-gutsy/changelog:
	* pkg/ubuntu-gutsy/compat:
	* pkg/ubuntu-gutsy/control:
	* pkg/ubuntu-gutsy/copyright:
	* pkg/ubuntu-gutsy/default.xml:
	* pkg/ubuntu-gutsy/dirs:
	* pkg/ubuntu-gutsy/flumotion.docs:
	* pkg/ubuntu-gutsy/flumotion.examples:
	* pkg/ubuntu-gutsy/flumotion.init:
	* pkg/ubuntu-gutsy/flumotion.install:
	* pkg/ubuntu-gutsy/flumotion.postinst:
	* pkg/ubuntu-gutsy/flumotion.postrm:
	* pkg/ubuntu-gutsy/flumotion.rtupdate:
	* pkg/ubuntu-gutsy/planet.xml:
	* pkg/ubuntu-gutsy/pycompat:
	* pkg/ubuntu-gutsy/rules:
	* pkg/ubuntu-gutsy/watch:
	* pkg/ubuntu-hardy/changelog:
	* pkg/ubuntu-hardy/control:

	Move most of the files over from ubuntu-gutsy to debian-common.
	Add a new directory for ubuntu-hardy packages.
	Change the deb makerules to take this into account.

2008-04-16  Johan Dahlin  <johan@flumotion.com>

	* Makefile.am:
	* pkg/ubuntu-gutsy/NEWS:
	* pkg/ubuntu-gutsy/README.Debian:
	* pkg/ubuntu-gutsy/TODO.Debian:
	* pkg/ubuntu-gutsy/changelog:
	* pkg/ubuntu-gutsy/compat:
	* pkg/ubuntu-gutsy/control:
	* pkg/ubuntu-gutsy/copyright:
	* pkg/ubuntu-gutsy/default.xml:
	* pkg/ubuntu-gutsy/dirs:
	* pkg/ubuntu-gutsy/flumotion.docs:
	* pkg/ubuntu-gutsy/flumotion.examples:
	* pkg/ubuntu-gutsy/flumotion.init:
	* pkg/ubuntu-gutsy/flumotion.install:
	* pkg/ubuntu-gutsy/flumotion.postinst:
	* pkg/ubuntu-gutsy/flumotion.postrm:
	* pkg/ubuntu-gutsy/flumotion.rtupdate:
	* pkg/ubuntu-gutsy/planet.xml:
	* pkg/ubuntu-gutsy/pycompat:
	* pkg/ubuntu-gutsy/rules:
	* pkg/ubuntu-gutsy/watch:
	Add a package for ubuntu-gutsy

2008-04-16  Johan Dahlin  <johan@flumotion.com>

	* common/deb.mk: Add a makefile for building debian packages.

	* autogen.sh: Copy and force installation of missing files from automake
	and libtool.

2008-04-16  Arek Korbik  <arkadini@gmail.com>

	* flumotion/component/combiners/composite/composite.xml:
	Add note that z-order needs to be unique.

2008-04-15  Johan Dahlin  <johan@flumotion.com>

	* flumotion/wizard/basesteps.py (VideoEncoderStep.get_next):
	Move the get_next() method from all subclasses of VideoEncoderStep
	to VideoEncoderStep itself, avoids duplication

2008-04-15  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/monitor/nagios/util.py:
	  Return the exit codes as well, for convenience.
	  Add some exceptions, so we can use errbacks to handle error cases.

2008-04-15  Johan Dahlin  <johan@flumotion.com>

	* flumotion/component/producers/soundcard/soundcard_wizard.py
	(SoundcardStep._update_inputs):
	* flumotion/component/consumers/httpstreamer/httpstreamer_wizard.py
	(HTTPStep._check_elements.importError):
	Add annoying fixmes to remind us to fix these errbacks

	* flumotion/worker/checks/check.py (do_check): Add this function,
	missing from #921.

2008-04-15  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/encoders/dirac/dirac.xml:
	  Add component xml too.

2008-04-15  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/encoders/Makefile.am:
	* flumotion/component/encoders/dirac/__init__.py:
	* flumotion/component/encoders/dirac/dirac-wizard.glade:
	* flumotion/component/encoders/dirac/dirac.py:
	* flumotion/component/encoders/dirac/dirac_wizard.py:
	* flumotion/component/muxers/muxers.xml:
	  Add a Dirac encoder component.  Fixes #921.

2008-04-14  Thomas Vander Stichele  <thomas at apestaart dot org>

	* Makefile.am:
	* conf/Makefile.am:
	* misc/validate-config.py:
	  Add a script to validate config files.
	  Run it as part of make check on some sample config files.

2008-04-11  Johan Dahlin  <johan@flumotion.com>

	* flumotion/wizard/overlaystep.py:
	Do not add a overlay component if we're missing elements/python modules.
	Fixes #914

2008-04-11  Johan Dahlin  <johan@flumotion.com>

	Rubber-stamped by Arek

	* flumotion/component/consumers/httpstreamer/httpstreamer_wizard.py:
	* flumotion/component/producers/bttv/bttv_wizard.py:
	* flumotion/component/producers/soundcard/soundcard_wizard.py:
	* flumotion/component/producers/webcam/webcam_wizard.py:
	* flumotion/wizard/configurationwizard.py:
	* flumotion/wizard/conversionsteps.py:
	* flumotion/wizard/productionsteps.py:
	Introduce waitForTask/taskFinished methods on the configuration wizard
	which blocks the interface and prevents you from clicking next.
	This replaces the old block_next(True/False) calls which were
	dangerous since they weren't stacked.
	Fixes #917 and #888

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

	* bin/flumotion-nagios.in:
	  Don't use GStreamer.  as a side effect, makes -h/--help work.

2008-04-09  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/gtk/dialogs.py:
	  Add 2008.

2008-04-09  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/consumers/disker/disker.py:
	* flumotion/component/producers/looper/looper.py:
	* flumotion/worker/checks/check.py:
	  Fix some translatables.

2008-04-09  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/gtk/client.py:
	  Fix wrong translation string.

2008-04-09  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/common.py:
	* flumotion/manager/admin.py:
	  Add a message to some asserts.

2008-04-09  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/configure/configure.py:
	  Give programs more time to react to a TERM before getting KILLed.

2008-04-09  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/combiners/switch/basicwatchdog.py:
	Use correct variable when iterating.
	* flumotion/component/combiners/switch/switch.py:
	Extra debuging.

2008-04-09  Johan Dahlin  <johan@flumotion.com>

	* flumotion/component/producers/videotest/videotest_wizard.py
	(TestVideoProducerStep.worker_changed): Check for the level element,
	fixes #915

2008-04-08  Johan Dahlin  <johan@flumotion.com>

	* data/glade/wizard_encoding.glade:
	* flumotion/component/encoders/mulaw/mulaw-wizard.glade:
	Add a label to the encoding page.
	Don't expand vertically on the label on the mulaw page

2008-04-08  Arek Korbik  <arkadini@gmail.com>

	* flumotion/component/misc/httpserver/httpserver.py
	(CancellableRequest.finish): Use stored fd number, in case the
	transport's fd was closed early. Fixes #920.

2008-04-08  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/base/component.glade:
	* flumotion/component/base/eaters.glade:
	* flumotion/component/consumers/disker/disker.glade:
	* flumotion/component/consumers/httpstreamer/httpstreamer-wizard.glade:
	* flumotion/component/consumers/shout2/shout2-wizard.glade:
	* flumotion/component/encoders/theora/theora-wizard.glade:
	* flumotion/component/producers/looper/flufileinfo.glade:
	* flumotion/component/producers/looper/looper.glade:
	  Unmark strings for translation.
	  Add/fix some tooltips.

2008-04-04  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/keycards.py:
	  Put the id in the repr of keycards.

2008-04-04  Thomas Vander Stichele  <thomas at apestaart dot org>

	Reviewed by: Arek

	* flumotion/component/misc/httpserver/file.py:
	  Log the fd's and transfer ends.  Fixes #919.

2008-04-03  Johan Dahlin  <johan@flumotion.com>

	Reviewed by: Arek

	* flumotion/component/producers/firewire/firewire_wizard.py:
	* flumotion/test/test_wizard_save.py:
	* flumotion/wizard/save.py:
	Allow the firewire audio & video to be in different workers.
	Fixes #909

2008-04-03  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/wizard/overlaystep.py:
	  Click Forward, not Next.

2008-04-02  Pedro Gracia  <pedro@flumotion.com>

	* flumotion/common/keycards.py:
	* flumotion/component/base/http.py:
	  Added "path" to keycards in order to use a timed bouncer type.

2008-04-02  Johan Dahlin  <johan@flumotion.com>

	* data/glade/wizard_production.glade: Add description label
	and tooltips for the checkboxes

2008-04-02  Johan Dahlin  <johan@flumotion.com>

	* flumotion/component/producers/firewire/firewire-wizard.glade:
	* flumotion/component/producers/firewire/firewire_wizard.py:
	Refactor signal handles, make a method private, rename and
	merge a few others.

2008-04-02  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion.spec.in:
	  Add intltool buildrequires

2008-04-01  Pedro Gracia  <pgracia@flumotion.com>

	* flumotion/wizard/worker.py:
	  Add spacing between worker label and worker combo.
	  Fixes #883.

2008-03-28  Johan Dahlin  <johan@flumotion.com>

	* flumotion/component/producers/firewire/firewire_wizard.py
	(_FireWireCommon.trapRemoteError): trap RemoteRunFailure, to avoid
	printing warnings when firewire does not exist on a worker.

	* flumotion/test/test_wizard_save.py:
	* flumotion/wizard/save.py:
	http-server components should be in the atmosphere and not the flow.
	Fixes #901

2008-03-28  Michael Smith <msmith@fluendo.com>

	* flumotion/component/base/component.glade:
	  Make the debug header visible, so it's shown if debug is enabled.

2008-03-28  Johan Dahlin  <johan@flumotion.com>

	* flumotion/admin/gtk/componentview.py:
	* flumotion/component/base/admin_gtk.py:
	* flumotion/component/base/component.glade:
	* flumotion/component/component.py:
	Add an interface to the components tab to modify the
	gstreamer/flumotion logging on the fly.
	Introduce a new remote method setFluDebug on BaseComponentMedium.

2008-03-28  Arek Korbik  <arkadini@gmail.com>

	* flumotion/manager/config.py (PlanetConfigParser._parseFlow):
	Humanize error message.

2008-03-28  Johan Dahlin  <johan@flumotion.com>

	* flumotion/wizard/configurationwizard.py:
	* flumotion/wizard/productionsteps.py:
	Remove the worker list from the production page.
	Remove canSelectWorker which is now unused.

2008-03-27  Johan Dahlin  <johan@flumotion.com>

	* flumotion/wizard/save.py (WizardSaver.setVideoProducer)
	(WizardSaver.setAudioProducer): Update exception messages.

	* flumotion/test/test_wizard_save.py
	(TestWizardSave.testFirewireStreamer):
	Unbreak the testsuite too.

	* flumotion/component/producers/firewire/firewire_wizard.py:
	* flumotion/wizard/save.py:
	Make firewire finally work again, this fixes #867

2008-03-27  Johan Dahlin  <johan@flumotion.com>

	* misc/clean-flumotion:
	* scripts/run-local-manager:
	Add a script to run a local manager, move and rename the clean
	one to misc.

2008-03-27  Johan Dahlin  <johan@flumotion.com>

	* flumotion/component/producers/firewire/firewire_wizard.py:
	* flumotion/test/test_wizard_save.py:
	* flumotion/wizard/models.py:
	* flumotion/wizard/overlaystep.py:
	Generate proper feeder names and fix a typo of the step name
	Part of #867

2008-03-27  Johan Dahlin  <johan@flumotion.com>

	* flumotion/admin/command/main.py:
	Print errors on stderr and return an error code when it fails.
	Fixes #908

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

	* flumotion/component/producers/soundcard/soundcard.py:
	  Handle BUSY and OPEN_READ/OPEN_WRITE better so we get a nicer
	  message.  Fixes #743.
	* po/nl.po:
	  Add translation.

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

	* flumotion/component/feedcomponent010.py:
	  Wrap subclass method invoke into something that can catch
	  programming errors and shows them.

2008-03-26  Pedro Gracia  <pedro@flumotion.com>

	* flumotion/component/consumers/httpstreamer/httpstreamer-wizard.glade
	  Missing changes to fix #882.

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

	* flumotion/wizard/models.py:
	  Subclass from log.Loggable so we can debug.
	* flumotion/component/encoders/theora/theora_wizard.py:
	* flumotion/test/test_wizard_save.py:
	  Fix test by setting a default delta and checking for it.  Really
	  fixes #885

2008-03-26  Johan Dahlin  <johan@flumotion.com>

	* flumotion/wizard/configurationwizard.py
	(ConfigurationWizard._save):
	Unbreak non-audio streams bug introduced in last commit.

2008-03-26  Johan Dahlin  <johan@flumotion.com>

	reviewed by: Zaheer

	* flumotion/wizard/productionsteps.py:
	Add a public hasVideo() method

	* flumotion/wizard/configurationwizard.py:
	Use hasVideo() on the production step instead of
	checking if the overlay step has been shown.

	Fixes #906

2008-03-26  Sebastien Merle  <sebastien@fluendo.com>

	reviewed by: Zaheer Abbas Merali

	* flumotion/component/bouncers/admin_gtk.py:
	Updated to let the base class BaseAdminGtkNode handle
	the listener registration and cleanup.
	Fixes #900.

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

	* flumotion/component/consumers/httpstreamer/httpstreamer.py:
	  Pass the correct medium (the porter client medium) to
	  PorterClientFactory.startLogin().
	  Fixes #904.

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

	reviewed by: Johan Dahlin

	* flumotion/component/encoders/theora/theora-wizard.glade:
	* flumotion/component/encoders/theora/theora_wizard.py:
	  Use keyframe delta (in seconds), which is more natural than
	  keyframe spacing in frames.  Fixes #885.

2008-03-26  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/producers/soundcard/soundcard_wizard.py:
	Remove 8 bit option for soundcard completely.

2008-03-26  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	reviewed by: Johan Dahlin

	* flumotion/component/producers/soundcard/soundcard_wizard.py:
	Use sensible defaults for soundcard producer.
	Fixes #870.

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

	* flumotion/component/producers/audiotest/audiotest-wizard.glade:
	  Add units.

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

	* flumotion/component/producers/videotest/videotest-wizard.glade:
	  Add units.

2008-03-26  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	reviewed by: Michael Smith

	* flumotion/admin/gtk/client.py:
	* flumotion/manager/admin.py:
	Remove dangerous debug options. Fixes #893.

2008-03-26  Sebastien Merle  <sebastien@fluendo.com>

	reviewed by: Johan Dahlin

	* flumotion/admin/gtk/parts.py:
	Do not use data function for PID column, it cannot be sorted.
	Fixes #312.

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

	* data/glade/Makefile.am:
	* data/glade/wizard_source.glade:
	* data/glade/wizard_production.glade:
	* flumotion/component/consumers/httpstreamer/httpstreamer_wizard.py:
	* flumotion/component/producers/audiotest/audiotest_wizard.py:
	* flumotion/component/producers/bttv/bttv_wizard.py:
	* flumotion/component/producers/firewire/firewire_wizard.py:
	* flumotion/component/producers/soundcard/soundcard_wizard.py:
	* flumotion/component/producers/videotest/videotest_wizard.py:
	* flumotion/component/producers/webcam/webcam_wizard.py:
	* flumotion/test/test_wizard.py:
	* flumotion/wizard/basesteps.py:
	* flumotion/wizard/configurationwizard.py:
	* flumotion/wizard/conversionsteps.py:
	* flumotion/wizard/overlaystep.py:
	* flumotion/wizard/productionsteps.py:
	* po/POTFILES.in:
	  Change wrongly named source/Source instances to (p|P)roduc(er|tion).
	  Fixes #901.

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

	* flumotion/component/consumers/httpstreamer/admin_gtk.py:
	* flumotion/component/consumers/httpstreamer/httpstreamer.glade:
	* flumotion/component/consumers/httpstreamer/httpstreamer.py:
	  Add a row to the http admin showing the current aggregate client bitrate
	  usage. Rename 'Bitrate' to 'Average bitrate' to clarify what the other
	  one is.
	  Fixes #815.

2008-03-26  Pedro Gracia  <pedro@flumotion.com>

	* data/glade/authenticate.glade:
	* data/glade/open-connection.glade:
	* data/glade/wizard_encoding.glade:
	* data/glade/wizard_source.glade:
	* flumotion/component/consumers/disker/disker-wizard.glade:
	* flumotion/component/consumers/httpstreamer/httpstreamer-wizard.glade:
	* flumotion/component/consumers/shout2/shout2-wizard.glade:
	* flumotion/component/encoders/jpeg/jpeg-wizard.glade:
	* flumotion/component/encoders/smoke/smoke-wizard.glade:
	* flumotion/component/producers/audiotest/audiotest-wizard.glade:
	* flumotion/component/producers/soundcard/soundcard-wizard.glade:
	* flumotion/component/producers/videotest/videotest-wizard.glade:
	  xalign property in labels and alignments changed to 0.
	  Fixes #882.

2008-03-26  Johan Dahlin  <johan@flumotion.com>

	* flumotion/component/base/component.glade:
	Make all the labels in the newly added statistics tab selectable,
	as suggested by Mike.

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

	* flumotion/admin/gtk/componentview.py:
	  Don't attempt to display UI for sad components.
	  Fixes #899.

2008-03-26  Johan Dahlin  <johan@flumotion.com>

	* data/cortado-template.html:
	Add a check and redirect to www.flumotion.com/java if java is not installed.
	Fixes #887

2008-03-26  Johan Dahlin  <johan@flumotion.com>

	* flumotion/component/consumers/httpstreamer/httpstreamer_wizard.py:
	Require multifdsink and twisted.web.

	* flumotion/wizard/configurationwizard.py:
	Block based on presence of missing elements

2008-03-26  Sebastien Merle  <sebastien@fluendo.com>

	reviewed by: Johan Dahlin

	* flumotion/admin/gtk/componentview.py:
	* flumotion/component/bouncers/admin_gtk.py:
	Made the NodeBook a Loggable instance.
	Made the bouncer GTK admin set the keycard title to prevent warnings.

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

	* flumotion/wizard/configurationwizard.py:
	  Fix typo in API.

2008-03-26  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	reviewed by: Johan Dahlin

	* flumotion/component/encoders/Makefile.am:
	* flumotion/component/encoders/mulaw/mulaw-wizard.glade:
	* flumotion/component/encoders/mulaw/mulaw.xml:
	* flumotion/component/encoders/mulaw/mulaw_wizard.py:
	* po/POTFILES.in:
	Create a mulaw wizard. Fixes #194.

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

	* flumotion/manager/manager.py:
	  Delete messages from component state when stopping a sad component.
	  Fixes #797.

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

	* flumotion/test/test_wizard_save.py:
	* flumotion/wizard/save.py:
	  Make saving of config with a producer-video use consistent naming.

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

	* flumotion/common/documentation.py:
	  Forgot to rename an attribute to .section here too.  Fixes #897.

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

	* flumotion/configure/configure.py:
	  Figure out our directory early on, when configure is first imported
	  (before daemonising).
	* flumotion/worker/job.py:
	  Spawn jobs from this directory
	  Fixes #873.

2008-03-26  Johan Dahlin  <johan@flumotion.com>

	* flumotion/admin/gtk/connections.py (Connections.__init__):
	Make the recent hostname column in the connection dialog searchable.
	Fixes #880

2008-03-26  Johan Dahlin  <johan@flumotion.com>

	* flumotion/wizard/configurationwizard.py
	(ConfigurationWizard.hasAudio):
	Use the hasAudio method on the production step to find out
	if we will include audio. We can't just get the model, because
	it's not created yet.

	* flumotion/wizard/productionsteps.py (ProductionStep.hasAudio):
	New method.

	Fixes #884

2008-03-26  Johan Dahlin  <johan@flumotion.com>

	* flumotion/wizard/models.py:
	(Component.__repr__): print the fully qualified name of the class
	instead of always showing 'Component'

	* flumotion/wizard/models.py:
	Make the AudioProducer inheirt from Producer, not Component.

	* flumotion/wizard/save.py:
	Allow video and audio producers to be subclasses of Producer.

	* flumotion/test/test_wizard_save.py:
	Create one producer and use it for both audio and video

2008-03-26  Johan Dahlin  <johan@flumotion.com>

	* flumotion/test/test_wizard_save.py
	(TestWizardSave): avoid hard coding the version, otherwise we'll
	just break when the version number is bumped.

	* flumotion/test/test_wizard_save.py
	(TestWizardSave.testDefaultStream):  Add a firewire test.

	* flumotion/wizard/productionsteps.py (ProductionStep.setup):
	Populate production combos in setup() instead of activate(), to
	avoid reverting to the default state when going back to this step.

2008-03-25  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* doc/random/wizard-plugin:
	Fix up docs based on start of doing dvb wizard.

2008-03-25  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/base/Makefile.am:
	  Actually dist the base component.glade so the admin works again.

2008-03-25  Johan Dahlin  <johan@flumotion.com>

	* flumotion/component/producers/firewire/firewire_wizard.py
	(FireWireVideoProducer.getFeeders): chain up to VideoProducer, not
	AudioProducer

	* flumotion/wizard/productionsteps.py (ProductionStep.plugin_loaded):
	Do not call worker_changed an extra time, it's not necessary since
	the wizard is already calling it for us a bit later.

2008-03-24  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/admin/connections.py:
	  The recent connections code also uses registry dir, so ensure it.

2008-03-24  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/common/common.py:
	* flumotion/configure/installed.py.in:
	* flumotion/configure/uninstalled.py.in:

	  configure.get() should not have side effects like creating
	  directories.  Fixes #875.

2008-03-24  Thomas Vander Stichele  <thomas at apestaart dot org>

	reviewed by: Johan Dahlin

	* flumotion/admin/gtk/message.py:
	* flumotion/common/Makefile.am:
	* flumotion/common/documentation.py:
	* flumotion/common/messages.py:
	* flumotion/common/worker.py:
	  Add a way for messages to link to online documentation.
	  Fixes #874.

2008-03-24  Johan Dahlin  <johan@flumotion.com>

	* flumotion/admin/gtk/client.py:
	* flumotion/admin/gtk/componentview.py:
	* flumotion/admin/gtk/main.py:
	Add an enable debug option in the admin interface.
	Reviewed by Zaheer, fixes #825

2008-03-20  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/combiners/switch/basicwatchdog.py:
	Make sure autoswitch() is only run when all sink pads
	of all switch elements have received data, ie not in
	middle of startup.
	* flumotion/component/combiners/switch/switch.py:
	Set active-pad property on switch elements at start.
	Add some extra debug.

2008-03-20  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/combiners/switch/switch.py:
	Actually make idealFeed respect its definition and only
	change it when requested to by user or by external influence
	such as by ical event or pattern switch. This entails do_switch()
	allowing switch to feed other than the ideal feed and switch_to()
	only called when a change to the ideal feed is required.

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

	* flumotion/component/base/admin_gtk.py:
	  Don't pass unset values. Avoids an exception subtracting None from an
	  integer.
	* flumotion/component/producers/soundcard/soundcard.py:
	  Zero is not a good number to divide by.

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

	* flumotion/component/combiners/switch/switch.py:
	Emit signal with the pad not the name of the pad, maybe this
	will help it work.

2008-03-18  Arek Korbik  <arkadini@gmail.com>

	* flumotion/worker/base.py (JobProcessProtocol.processEnded):
	Don't blame GStreamer's corrupt registry for any early exit.

2008-03-18  Arek Korbik  <arkadini@gmail.com>

	* flumotion/common/python.py (makedirs):
	For python < 2.5 provide a local copy of python2.5's os.makedirs()
	that adds checks for EEXIST.

	* flumotion/common/bundle.py (Unbundler.unbundle):
	* flumotion/common/common.py (ensureDir):
	* flumotion/common/registry.py (ComponentRegistry.save):
	* flumotion/manager/admin.py (AdminAvatar._saveFlowFile):
	* flumotion/service/service.py (Servicer.createManager,
	  Servicer.createWorker):
	Use our new local makedirs() function. Fixes #865.

2008-03-18  Michael Smith <msmith@fluendo.com>

	* flumotion/component/base/admin_gtk.py:
	  Check for None and 0.

2008-03-18  Johan Dahlin  <johan@flumotion.com>

	* flumotion/component/base/admin_gtk.py
	(ComponentAdminGtkNode._updateVSize): check for None instead of 0,
	remove trailing whitespace.

2008-03-17  Michael Smith <msmith@fluendo.com>

	* flumotion/component/base/component.glade:
	  Change the glade file to remove some unused rows, and to set the label
	  defaults to N/A, rather than nonsense values.

2008-03-17  Michael Smith <msmith@fluendo.com>

	* flumotion/component/base/admin_gtk.py:
	* flumotion/component/base/base.xml:
	* flumotion/component/base/component.glade:
	* po/POTFILES.in:
	  Add a component tab for all components.
	  Displays uptime, cpu usage, virtual size, etc.
	  Fixes #806.

2008-03-17  Johan Dahlin  <johan@flumotion.com>

	* data/glade/connection-dialog.glade:
	* data/glade/greeter-load_connection.glade:
	* flumotion/admin/gtk/connections.py:
	* flumotion/admin/gtk/greeter.py:
	Remove dead selection code, prevents warnings
	in the test suite and fixes #863

2008-03-13  Michael Smith <msmith@fluendo.com>

	* doc/random/component-initialization-protocol:
	  Fix naming in docs to match actual implementation.

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

	* doc/random/component-initialization-protocol:
	  Update to describe the changes in this commit.
	* flumotion/component/component.py:
	  Call an instance method (setup_completed) when the do_setup chain is
	  completed.
	  Set mood to happy in base class implementation of this.
	* flumotion/component/feedcomponent010.py:
	  Override setup_completed to not set mood to happy (that is done when
	  the pipeline reaches PLAYING)
	  Do not wait for pipeline to get to playing in do_setup.
	  Fixes #862.

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

	* flumotion/component/producers/firewire/firewire_wizard.py:
	  Run a check that actually exists.  Amazingly, my Fedora 7 with
	  new firewire stack actually works as is with GStreamer.  But
	  the device is named /dev/fw0 so the check needs further fixing.

2008-03-10  Michael Smith <msmith@fluendo.com>

	* flumotion/component/base/http.py:
	  Ensure that all authentication errors (no matter what type) result in an
	  appropriate error code being sent to the user, and the user being
	  disconnected.

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

	* flumotion/component/misc/httpserver/file.py:
	  Allow createProducerConsumerProxy to return a deferred.
	* flumotion/component/misc/httpserver/ratecontrol.py:
	  Document this.

2008-03-07  Johan Dahlin  <johan@flumotion.com>

	* misc/clean-flumotion:
	Add a horribly broken, but still pretty useful script to
	clean up all flumotion temporary files in /tmp, when
	starting from the manager from the wizard.

2008-03-06  Johan Dahlin  <johan@flumotion.com>

	* data/glade/admin-wizard.glade:
	* data/glade/wizard.glade:
	Put the wizard buttons in the end, instead of separately.

2008-03-06  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/combiners/switch/switch.py:
	Sets are not jellyable, so convert to list otherwise error
	does not show.

2008-03-06  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/combiners/switch/switch.py:
	It actually changed name to input-selector not selector, but
	the plugin name is selector.
	Capsfilter was given an extra , between framerate and par.
	Properties are video-framerate and video-pixel-aspect-ratio
	not framerate and pixel-aspect-ratio.

2008-03-06  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/combiners/switch/switch.py:
	switch element changed name to selector between 0.10.5 and
	0.10.6

2008-03-05  Johan Dahlin  <johan@flumotion.com>

	* flumotion/manager/admin.py (AdminAvatar.perspective_cleanComponents):
	Undeprecate, since there are no alternatives.

2008-03-05  Michael Smith <msmith@fluendo.com>

	* configure.ac:
	* misc/flumotion-verify-config.in:
	  Add a simple test script to check that a config file is valid.

2008-03-05  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/twisted/compat.py:
	Fix typo.

2008-03-05  Johan Dahlin  <johan@flumotion.com>

	* flumotion/common/server.py (IServable): Remove self argument from
	methods.

	* flumotion/twisted/compat.py: Print a warning when imported, so
	extenal modules depend on it can be migrated.

2008-03-05  Arek Korbik  <arkadini@gmail.com>

	* flumotion/component/misc/httpserver/httpserver.py:
	Comment on the not-necessary-obvious calling context of the
	connectionLost() handler.

2008-03-04  Johan Dahlin  <johan@flumotion.com>

	* flumotion/wizard/configurationwizard.py (_set_worker_from_step):
	Remove unused method.

	* flumotion/wizard/Makefile.am:
	* flumotion/wizard/interfaces.py:
	Add a new file with wizard plugin interfaces:
	- IProductionPlugin
	- IEncoderPlugin
	- IHTTPConsumerPlugin

	* flumotion/component/encoders/jpeg/jpeg_wizard.py:
	* flumotion/component/encoders/smoke/smoke_wizard.py:
	* flumotion/component/encoders/speex/speex_wizard.py:
	* flumotion/component/encoders/theora/theora_wizard.py:
	* flumotion/component/encoders/vorbis/vorbis_wizard.py:
	* flumotion/component/plugs/cortado/cortado_wizard.py:
	* flumotion/component/producers/audiotest/audiotest_wizard.py:
	* flumotion/component/producers/bttv/bttv_wizard.py:
	* flumotion/component/producers/firewire/firewire_wizard.py:
	* flumotion/component/producers/soundcard/soundcard_wizard.py:
	* flumotion/component/producers/videotest/videotest_wizard.py:
	* flumotion/component/producers/webcam/webcam_wizard.py:
	Mark the plugin steps as implementing one of the three added interfaces

	* flumotion/wizard/conversionsteps.py:
	* flumotion/wizard/productionsteps.py:
	* flumotion/component/consumers/httpstreamer/httpstreamer_wizard.py:
	Add FIXME's so we remember to check the interfaces in the future

	Fixes #858

2008-03-04  Johan Dahlin  <johan@flumotion.com>

	* flumotion/common/interfaces.py: General maintainance:
	- Remove self from arguments
	- add @param to missing parameters
	- Add two empty new lines between classes (PEP-8)
	- Remove initial newline in docstring (PEP-8)
	- Remove unnecessary pass statements

2008-03-03  Johan Dahlin  <johan@flumotion.com>

	* flumotion/admin/gtk/greeter.py (Greeter.__init__): Fix the height of the
	greeter to avoid re-sizing it later on.
	Hopefully this will make me clear the list of recent connections by mistakes
	less times.

	* flumotion/wizard/productionsteps.py (ProductionStep._verify): Un-bitrot,
	- wait for all producers to be loaded before trying to figure out if
	  something should be prevented
	- use new canSelectWorker() method on parent, instead of relying of
	  external poking at internal variables from productionstep
        (ProductionStep._populate_combos): set an instance variable when we're done,
	so it can be checked in _verify.

	* flumotion/wizard/configurationwizard.py:
	Use isinstance instead of hasttr(worker), simplify model selection.
	(ConfigurationWizard.canSelectWorker): New method

	* flumotion/component/consumers/httpstreamer/httpstreamer_wizard.py
	(HTTPStreamer.getProperties)
	(HTTPStep.setup): Even if we use a porter, set the port of the streamer so
	it shows up correctly in the component admin interface.
	This makes fixes so the right port is shown when we use audio only or video
	only which has a different default port.

	* flumotion/component/consumers/httpstreamer/admin_gtk.py
	(StatisticsAdminGtkNode._updateLabels): set_uri/linkbutton constructor
	does not accept None, add a workaround for that.

	* flumotion/wizard/configurationwizard.py:
	Do not add an overlay step if we didn't visit one

	* flumotion/wizard/save.py:
	Don't allow a video overlay component to be added unless we haven't
	set a video producer first.

	* flumotion/test/test_wizard_save.py:
	Add a test for the above

	Should fix #854

2008-03-03  Johan Dahlin  <johan@flumotion.com>

	* flumotion/test/test_wizard_save.py (TestWizardSave.testOggStream):
	New test for audiotest/videotest/vorbis/theora and ogg

	* flumotion/wizard/save.py (WizardSaver._handleVideoProducer)
	(WizardSaver._handleAudioProducer): Raise ValueError exceptions if there
	are no encoders set

2008-03-03  Johan Dahlin  <johan@flumotion.com>

	* flumotion/test/test_wizard_save.py (TestWizardSave.testDefaultStream) :
	Refactor tests into methods, and reuse by other tests.

2008-03-03  Johan Dahlin  <johan@flumotion.com>

	* flumotion/test/test_wizard_save.py (TestWizardSave.testDefaultStream)
	* flumotion/component/consumers/httpstreamer/httpstreamer_wizard.py:
	set burst-on-connect to False by default, update tests.

2008-03-03  Johan Dahlin  <johan@flumotion.com>

	* flumotion/component/consumers/httpstreamer/httpstreamer_wizard.py:
	Make it work with kiwi 1.9.14, by setting a default value for booleans

2008-03-03  Pedro Gracia  <pgracia@flumotion.com>

	* flumotion/component/bouncers/bouncer.py:
	Added getEnabled function in bouncer.
	Fixes #856.

2008-03-01  Johan Dahlin  <johan@flumotion.com>

	* flumotion/worker/checks/encoder.py:
	* flumotion/worker/checks/gst010.py:
	* flumotion/worker/checks/video.py:
	* flumotion/worker/feedserver.py:
	* flumotion/worker/main.py:
	* flumotion/worker/medium.py:
	* flumotion/worker/worker.py:
	Remove unused imports to make pyflakes happier.

2008-02-29  Johan Dahlin  <johan@flumotion.com>

	* flumotion/test/test_wizard.py:
	* flumotion/ui/wizard.py:
	Remove get_state, get_step_option and get_step_options which are not used any
	longer. Horray!

2008-02-29  Johan Dahlin  <johan@flumotion.com>

	* flumotion/wizard/configurationwizard.py (ConfigurationWizard.hasAudio)
	(ConfigurationWizard.hasVideo): New methods
	* flumotion/wizard/consumptionsteps.py:
	* flumotion/wizard/conversionsteps.py:
	* flumotion/wizard/overlaystep.py:
	Replace get_step_option() for checking if there's audio or video
	with method calls to wizard.

2008-02-29  Johan Dahlin  <johan@flumotion.com>

	* flumotion/wizard/save.py (WizardSaver._handleProducers): Check so both
	audio and video producer exists before comparing their component_type.

2008-02-29  Johan Dahlin  <johan@flumotion.com>

	* flumotion/test/test_wizard_models.py:
	* flumotion/wizard/models.py:
	Do _ -> - conversion in __contains__ too, add tests.

2008-02-29  Johan Dahlin  <johan@flumotion.com>

	* flumotion/wizard/Makefile.am:
	* flumotion/wizard/configurationwizard.py:
	* flumotion/wizard/enums.py:
	* po/POTFILES.in:
	Get rid of LicenseType and use prefill directly.
	Kill flumotion/wizard/enums.py!

2008-02-29  Johan Dahlin  <johan@flumotion.com>

	* flumotion/test/test_wizard_save.py:
	(TestWizardSave.testMultiFeedProducer): Add another test for a multi feed
	component such as firewire.

	* flumotion/component/consumers/httpstreamer/httpstreamer_wizard.py
	(HTTPStreamer.getProperties): Only delete properties if they were set.
	* flumotion/wizard/configurationwriter.py:
	Add an assert on None, we want only strings here.
	* flumotion/test/test_wizard_save.py:
	Write a test which tests wizard saving class.

2008-02-29  Johan Dahlin  <johan@flumotion.com>

	* flumotion/wizard/save.py (WizardSaver._handleVideoOverlay):
	Simplify overlay handling by always linking video and then let the overlay
	unlink and relink. Rename and reorganize some methods.

	* flumotion/wizard/models.py (Component.unlink): New method

	* flumotion/component/consumers/httpstreamer/httpstreamer.glade:
	* flumotion/component/consumers/httpstreamer/admin_gtk.py:
	* flumotion/component/misc/httpserver/httpserver.glade:
	* flumotion/component/misc/httpserver/admin_gtk.py:
	Tweak the UI by moving the URL out of the toplevel table

2008-02-29  Johan Dahlin  <johan@flumotion.com>

	* flumotion/test/test_wizard_save.py: Remove unused imports

	* flumotion/wizard/save.py: Remove extra 4 at the top of the file. Grr.

	* flumotion/test/test_wizard_models.py:
	* flumotion/wizard/configurationwizard.py:
	* flumotion/wizard/models.py:
	Remove the Flow class and the tests, we never ended up using it, since the
	state is fetched after the completion of the wizard, not during.

2008-02-29  Johan Dahlin  <johan@flumotion.com>

	* flumotion/ui/wizard.py:
	Remove flowName here, it should only be set in a subclass

	* flumotion/wizard/conversionsteps.py:
	Remove get_muxer, we're not using it any longer.

	* flumotion/component/consumers/httpstreamer/httpstreamer_wizard.py:
	* flumotion/wizard/basesteps.py:
	Move getServerConsumers and getPorters to the base class

	* flumotion/wizard/configurationwizard.py:
	* flumotion/wizard/save.py:
	Separate the component building from extraction of step state,
	so the save logic can be reused by other interfaces.
	This completes the wizard MVC separation!

2008-02-29  Michael Smith <msmith@fluendo.com>

	* flumotion/component/converters/overlay/overlay.py:
	  Add a warning to the component if we're running with videomixer 0.10.7,
	  since it has a bug that results in many CRITICALs being printed (one per
	  frame).

2008-02-29  Johan Dahlin  <johan@flumotion.com>

	* flumotion/component/encoders/vorbis/vorbis_wizard.py
	(VorbisAudioEncoder.__init__):
	* flumotion/component/encoders/vorbis/vorbis-wizard.glade:
	Make the bitrate selected by default, both in the glade file
	and in the model.

2008-02-28  Johan Dahlin  <johan@flumotion.com>

	* flumotion/wizard/configurationwizard.py
	(ConfigurationWizard.getConsumtionSteps): New method

	* flumotion/ui/wizard.py (SectionWizard.getVisitedSteps):
	New method

	* flumotion/wizard/basesteps.py (ConsumerStep): New base class
	for all consumption steps.

	* flumotion/wizard/save.py (WizardSaver._handleConsumers):
	Simplify considerably, with help of the getConsumptionSteps method
	and ConsumerStep base class.

	* flumotion/component/consumers/disker/disker_wizard.py
	* flumotion/component/consumers/httpstreamer/httpstreamer_wizard.py
	* flumotion/component/consumers/shout2/shout2_wizard.py
	Update consumption steps to the new api.

	* flumotion/wizard/consumptionsteps.py: Avoid using strings to
	construct the steps we want to use, just use class references
	instead.

2008-02-27  Johan Dahlin  <johan@flumotion.com>

	* flumotion/test/test_wizard_save.py:
	Use the new Component class instead of the old one in save.py which
	is removed.

2008-02-27  Johan Dahlin  <johan@flumotion.com>

	* flumotion/wizard/save.py:
	Remove Component which is now unused, and disable Loggable in
	the WizardSaver is not used.

2008-02-27  Johan Dahlin  <johan@flumotion.com>

	* flumotion/component/consumers/shout2/shout2_wizard.py:
	* flumotion/wizard/save.py:
	Convert the shout2 step to use a model and proxy.

2008-02-27  Johan Dahlin  <johan@flumotion.com>

	* flumotion/component/consumers/disker/disker-wizard.glade:
	* flumotion/component/consumers/disker/disker_wizard.py:
	* flumotion/wizard/save.py:
	Convert the disker step to use a model and proxy.

2008-02-27  Johan Dahlin  <johan@flumotion.com>

	* flumotion/component/producers/firewire/firewire_wizard.py:
	Move old bits specific for the wirefire components from save.py
	to here.

	* flumotion/wizard/configurationwriter.py:
	eaters is a generator, so use list() around it.
	Call getProperties() instead of accessing props directly

	* flumotion/wizard/models.py:
	Add getFeeders() and link() methods and move over fraction logic
	here, since it only applies to producers.

	* flumotion/wizard/save.py:
	Send the components directly instead of using the middle layer component
	class. Still need to port over disker and shout2 components.
	Add getProperties and simplify getFeeders()

2008-02-27  Johan Dahlin  <johan@flumotion.com>

	* flumotion/component/producers/videotest/videotest-wizard.glade:
	* flumotion/component/producers/videotest/videotest_wizard.py:
	Make the width/height/framerate entries smaller and right align them

	* flumotion/wizard/conversionsteps.py (ConversionStep.get_muxer):
	Add a new method to get the muxer model.
	(ConversionStep.activated): When going back to this step, do not
	reset the options made by the user.
	(setup): Remove, code in here is unused.
	(ConversionStep._muxer_changed): Remove dead assignment to self._muxer

	* flumotion/component/consumers/httpstreamer/admin_gtk.py:
	Prevent error on component shutdown.

	* flumotion/admin/gtk/client.py: Fix a typo in a docstring

	* data/glade/wizard_summary.glade:
	* data/glade/wizard_welcome.glade:

	Use GtkLabel instead of GtkTextView

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

	* flumotion/component/consumers/disker/disker.py:
	  Remove a bitrotten remote method; the implementation was obviously
	  broken, and Zaheer says the semantics are no longer meaningful.

	* flumotion/component/misc/httpserver/ratecontrol.py:
	  Add some comment, tweak the drip interval for lower CPU usage.

	* flumotion/component/producers/playlist/playlist.py:
	  Fix up for API changes.

	* flumotion/component/producers/unixdomain/unixdomain.py:
	  Add a TODO to fix this one up for API changes.

2008-02-26  Michael Smith <msmith@fluendo.com>

	* flumotion/test/test_common_netutils.py:
	  Add a test to check that route iteration correctly goes from
	  most-specific to least specific.

2008-02-25  Johan Dahlin  <johan@flumotion.com>

	* flumotion/admin/gtk/greeter.py:
	Reset the stock label of the next button when going back.

	* flumotion/ui/simplewizard.py:
	on_next is not a callback, so put it in WizardStep section.
	Change the next button to 'connect' where appropriate.
	Grab focus, so the enter->enter->enter use case works as expected

2008-02-25  Johan Dahlin  <johan@flumotion.com>

	* flumotion/admin/gtk/greeter.py: Reorganize imports, group
	and annotate the methods of the wizard steps.

	* flumotion/wizard/configurationwizard.py:
	Add an new API to fetch a wizard entries

	* flumotion/component/consumers/httpstreamer/httpstreamer_wizard.py:
	* flumotion/wizard/conversionsteps.py:
	* flumotion/wizard/productionsteps.py:
	Use the new API here.

	* flumotion/manager/admin.py:
	Fix a syntax typo in a doc string

2008-02-25  Michael Smith <msmith@fluendo.com>

	* flumotion/component/misc/httpserver/ratecontrol.py:
	  Rewrite buffer handling to avoid doing so many buffer copies, in an
	  attempt to make it use less cpu.
	  Mostly unsuccessful.

2008-02-25  Johan Dahlin  <johan@flumotion.com>

	* flumotion/component/consumers/httpstreamer/httpstreamer.py:
	Do not unconditionally append the result of remove_all_clients, it might
	return None if the components bootstrap failed.

	* flumotion/component/consumers/httpstreamer/httpstreamer_wizard.py:
	Use the registry data before trying to instantiate the plugin, avoids
	importing a plugin which is not supported.

2008-02-25  Arek Korbik  <arkadini@gmail.com>

	* flumotion/common/medium.py (PingingMedium._ping):
	Add errback handler for the 'ping' remote call.

2008-02-25  Johan Dahlin  <johan@flumotion.com>

	* flumotion/test/test_wizard_save.py: remove the now unused socket
	attribute too.

2008-02-25  Michael Smith <msmith@fluendo.com>

	* flumotion/test/test_wizard_save.py:
	  Fix up test now that we're not writing the socket.

2008-02-25  Michael Smith <msmith@fluendo.com>

	* flumotion/component/plugs/cortado/cortado_wizard.py:
	  Remove 'socket' here; no longer needed since the config writer doesn't
	  use it now.

2008-02-25  Michael Smith <msmith@fluendo.com>

	* flumotion/common/config.py:
	  Nothing uses the 'socket' attribute on a plug. So, make it
	  optional/deprecated.
	* flumotion/manager/config.py:
	  Don't write the deprecated socket attribute.
	* flumotion/wizard/configurationwriter.py:
	  Don't write the deprecated socket attribute.

2008-02-25  Michael Smith <msmith@fluendo.com>

	* flumotion/component/misc/httpserver/httpserver.py:
	  Don't assert for things that aren't programming errors.
	* flumotion/component/misc/httpserver/httpserver.xml:
	  Clean up after Johan's renaming; finish it.

2008-02-25  Michael Smith <msmith@fluendo.com>

	* flumotion/admin/admin.py:
	Revert r6273. The added code was wrong, as was the commit message it came
	with.

2008-02-22  Johan Dahlin  <johan@flumotion.com>

	* configure.ac:
	* flumotion/component/misc/Makefile.am:
	* flumotion/component/misc/cortado/Makefile.am:
	* flumotion/component/misc/cortado/__init__.py:
	* flumotion/component/misc/cortado/cortado.py:
	* flumotion/component/misc/cortado/cortado.xml:
	* flumotion/component/misc/cortado/cortado_location.py.in:
	* flumotion/component/misc/cortado/cortado_wizard.py:
	* flumotion/component/plugs/Makefile.am:
	* flumotion/component/plugs/cortado/Makefile.am:
	* flumotion/component/plugs/cortado/cortado.py:
	* flumotion/component/plugs/cortado/cortado_wizard.py:

	Move the cortado plug from misc/ to plugs/

2008-02-22  Johan Dahlin  <johan@flumotion.com>

	* flumotion/component/consumers/httpstreamer/Makefile.am:
	* flumotion/component/consumers/httpstreamer/admin_gtk.py:
	* flumotion/component/consumers/httpstreamer/http-wizard.glade:
	* flumotion/component/consumers/httpstreamer/http.glade:
	* flumotion/component/consumers/httpstreamer/http.py:
	* flumotion/component/consumers/httpstreamer/http.xml:
	* flumotion/component/consumers/httpstreamer/http_wizard.py:
	* flumotion/component/consumers/httpstreamer/httpstreamer.xml:
	* flumotion/component/consumers/httpstreamer/httpstreamer_wizard.py:
	* flumotion/test/test_component_httpstreamer.py:
	* flumotion/wizard/consumptionsteps.py:
	* po/POTFILES.in:

	Rename httpstreamer/http* to httpstreamer/httpstreamer.

2008-02-22  Johan Dahlin  <johan@flumotion.com>

	* configure.ac:
	* flumotion/component/misc/Makefile.am:
	* flumotion/component/misc/httpfile/Makefile.am:
	* flumotion/component/misc/httpfile/__init__.py:
	* flumotion/component/misc/httpfile/admin_gtk.py:
	* flumotion/component/misc/httpfile/file.py:
	* flumotion/component/misc/httpfile/httpfile.glade:
	* flumotion/component/misc/httpfile/httpfile.py:
	* flumotion/component/misc/httpfile/httpfile.xml:
	* flumotion/component/misc/httpfile/ratecontrol.py:
	* flumotion/component/misc/httpserver/Makefile.am:
	* flumotion/component/misc/httpserver/admin_gtk.py:
	* flumotion/component/misc/httpserver/file.py:
	* flumotion/component/misc/httpserver/httpfile.xml:
	* flumotion/component/misc/httpserver/httpserver.glade:
	* flumotion/component/misc/httpserver/httpserver.py:
	* flumotion/component/misc/httpserver/httpserver.xml:
	* flumotion/component/misc/httpserver/ratecontrol.py:
	* flumotion/test/Makefile.am:
	* flumotion/test/test_component_httpserver.py:
	* flumotion/test/test_misc_httpfile.py:
	* po/POTFILES.in:

	Rename httpfile to httpserver in the file system hierarchy.
	Merge test_misc_httpfile into test_component_httpserver.
	Change the socketname to point to a class, check for plug
	presence by examining the dictionary value, not just the key.

2008-02-22  Michael Smith <msmith@fluendo.com>

	* flumotion/component/misc/httpfile/file.py:
	  Rename 'request' to 'consumer' in FileTransfer: it has always been used
	  as a generic consumer here; now in practice it's not a request object if
	  we use the rate control plug.
	* flumotion/component/misc/httpfile/httpfile.py:
	  Move RateController plug interface class to ratecontrol.py
	* flumotion/component/misc/httpfile/ratecontrol.py:
	  Add a concrete implementation of RateController: FixedRatePlug, which
	  serves all files at the same (fixed; in the config file) speed.
	* flumotion/component/misc/httpfile/httpfile.xml:
	  Add new plug and bundle for it.

2008-02-22  Michael Smith <msmith@fluendo.com>

	* flumotion/component/misc/httpfile/file.py:
	* flumotion/component/misc/httpfile/httpfile.py:
	* flumotion/component/misc/httpfile/httpfile.xml:
	  Add a plug interface for httpfile to put a producer/consumer proxy
	  between filetransfer and request. This can be used to hook up the rate
	  control stuff.

2008-02-22  Johan Dahlin  <johan@flumotion.com>

	* flumotion/admin/gtk/connections.py (Connections.grab_focus):
	Select and grab the focus of the treeview here instead of the
	constructor which is called too early.

	* flumotion/test/test_component_httpserver.py
	(PlugTest.testSetRootResourceMultiple): Add a new (disabled) test which
	shows that you cannot add two plugs to the same httpfile.

	* flumotion/component/consumers/httpstreamer/http_wizard.py:
	Enable all http consumer plugins by default and
	fix a bug in the plugin code to make that possible.
	* flumotion/component/misc/cortado/cortado_wizard.py:
	Check the type of the framerate property before attempting to
	parse it as a fraction.

2008-02-22  Johan Dahlin  <johan@flumotion.com>

	* flumotion/component/consumers/httpstreamer/http.py:
	PEP-8ify imports and docstrings
	Remove unused imports

	* flumotion/wizard/models.py (Plug.getProperties): Make a copy
	of the properties dict when saving, so we can freely delete properties
	we don't want to save without messing up the internal state of
	the component models.

	* flumotion/component/misc/cortado/cortado.py:
	Use endswith instead of [-1]

	* flumotion/component/misc/cortado/cortado_wizard.py:
	Export /cortado/, so clicking on the link works.

	* flumotion/component/misc/httpfile/admin_gtk.py:
	* flumotion/component/misc/httpfile/httpfile.glade:
	Use the new linkwidget to display the stream url.

	* flumotion/component/misc/httpfile/httpfile.py:
	Export the stream-url handler. Handle trailing / in resource names.

2008-02-22  Johan Dahlin  <johan@flumotion.com>

	* flumotion/ui/linkwidget.py: Do not import gobject
	* Makefile.am (PYCHECKER_BLACKLIST): Blacklist linkwidget.py

	* flumotion/component/consumers/httpstreamer/admin_gtk.py:
	* flumotion/component/consumers/httpstreamer/http.glade:
	* flumotion/ui/Makefile.am:
	* flumotion/ui/linkwidget.py:

	Clean up the http streamers admin interface, refactor the
	link widget to a separate file and add support for gtk.LinkButton
	present in gtk+ 2.10.

2008-02-22  Sebastien Merle  <sebastien@fluendo.com>

	* flumotion/admin/admin.py:
	The Deferred returned by connectToManager was never fired on success.

2008-02-22  Michael Smith <msmith@fluendo.com>

	* flumotion/component/misc/httpfile/ratecontrol.py:
	  Add a bunch of comments, rename class, clean up code.

2008-02-22  Sebastien Merle  <sebastien@fluendo.com>

	* flumotion/admin/admin.py:
	Only check one time for failure type :)

2008-02-22  Johan Dahlin  <johan@flumotion.com>

	* flumotion/component/misc/httpfile/admin_gtk.py:
	Clean up, make a few methods private and organize methods by type.
	Make all internal attributes private and avoid hasattr.

2008-02-21  Johan Dahlin  <johan@flumotion.com>

	* flumotion/component/misc/cortado/cortado_wizard.py
	(CortadoHTTPPlug.getProperties): the streamers framerate property
	is a fraction, convert it to an integer here which is what cortado
	expects.

	* flumotion/component/consumers/httpstreamer/http_wizard.py
	(HTTPStreamer.getProperties): Do not delete the ports property, it's
	used by the plugs.

2008-02-20  Johan Dahlin  <johan@flumotion.com>

	* flumotion/wizard/configurationwriter.py (ConfigurationWriter):
	Handle fractions, write x/y instead of (x, y).

	* flumotion/test/test_manager_config.py (TestPlanetConfigParser):
	Add a couple of new planet tests, clean up manager config ones to be
	consistent

2008-02-20  Johan Dahlin  <johan@flumotion.com>

	* flumotion/test/test_manager_config.py:
	* flumotion/manager/config.py:
	Add a new test file

	* flumotion/test/Makefile.am:
	Reindent and remove trailing whitespace

2008-02-20  Johan Dahlin  <johan@flumotion.com>

	* flumotion/test/test_component_httpserver.py
	Version test twisted using twisted.copyright.version, available
	since twisted 1.0.0.
	(PlugTest.testSetRootResource): Disable all tests on old twisted for now
	(PlugTest.setUp): Set component to None, in case it never gets set later.
	(MountTest.testFileMountEmpty): Re-enable all tests except the one which does not run
	locally on twisted 2.0.1/2.2.0.

	* flumotion/test/test_component_httpserver.py
	(MountTest.testDirMountEmpty, MountTest.properties):
	Disable on pre twisted 2.5.0, to make buildbots happy.

	* flumotion/test/test_component_httpserver.py (MountTest):
	Chain deferred by using DeferredList with fireOnOneErroback enabled, half of
	the tests before this change were actually failing.

	* flumotion/component/misc/httpfile/httpfile.py
	(HTTPFileStreamer._getDefaultRootResource): Do not strip the leading character,
	it will be done later in _createRootResourceForPath().

2008-02-19  Michael Smith <msmith@fluendo.com>

	* flumotion/component/misc/httpfile/Makefile.am:
	* flumotion/component/misc/httpfile/ratecontrol.py:
	  Add rate control code; not committing the bits to hook it into
	  http-server yet. First working version; still needs lots of cleanup.

2008-02-19  Johan Dahlin  <johan@flumotion.com>

	* flumotion/worker/checks/cortado.py (checkCortado): Oops, forgot
	  pychecker again. msg instead of filename

	* flumotion/admin/gtk/greeter.py (Initial.setup):
	  Fix a long-standing annoying bug: always keep a radio button focus on the
	  first greeter page and make pressing enter go to the next step.
	  Also refactor the initial step a bit, so it's actually understandable.

	* flumotion/worker/checks/cortado.py (checkCortado): Add debugging to the
	  cortado check

	* flumotion/admin/gtk/componentview.py
	(ComponentView._get_widget_constructor): Add component view wire
	  compatibility with platform-3.

2008-02-18  Johan Dahlin  <johan@flumotion.com>

	* flumotion/component/misc/cortado/cortado_location.py.in
	(getCortadoFilename):
	  Check for cortado.jar in /usr/share/cortado, where debian/ubuntu installs
	  it.

	* flumotion/manager/config.py (exportPlanetXml.component):
	  Break up into pieces which allows a simple if statement instead of crazy
	  and/or conditionals. Fixes a pychecker bug and makes the code easier to
	  understand.

2008-02-18  Michael Smith <msmith@fluendo.com>

	* flumotion/manager/config.py:
	  When exporting a planet config, ensure that we don't add clock-master
	  for atmosphere components, since those aren't valid in the XML.

2008-02-18  Johan Dahlin  <johan@flumotion.com>

	* flumotion/component/misc/cortado/cortado_location.py.in
	(getCortadoFilename):
	  Check the location ubuntu/debian installs cortado.

	* flumotion/wizard/configurationwriter.py:
	(XMLWriter._collectAttributes):
	  Quote the attribute values properly

	* flumotion/test/Makefile.am:
	* flumotion/test/test_wizard_save.py:
	* flumotion/wizard/Makefile.am:
	* flumotion/wizard/configurationwriter.py:
	* flumotion/wizard/save.py:
	  Move configuration writer out to a separate module.
	  Separate common parts to another class and subclass it in the
	  configuration writer.
	  Use a generic API for all xml generation.

2008-02-18  Johan Dahlin  <johan@flumotion.com>

	* flumotion/test/test_registry.py (TestRegistry._compareRegistryAfterDump):
	  Use testsuite.diffStrings here.

2008-02-18  Johan Dahlin  <johan@flumotion.com>

	* flumotion/common/testsuite.py:
	New api diffStrings which helps when comparing large strings

	* flumotion/test/test_wizard_save.py:
	* flumotion/wizard/save.py:
	Decouple xml saving from fetching state from the wizard.
	Write proper tests

2008-02-18  Johan Dahlin  <johan@flumotion.com>

	* flumotion/test/test_wizard_models.py:
	* flumotion/wizard/models.py:
	Map underscore to dashes for attribute accesses.
	This simplifies the getProperties() implementations as a side effect.

	* flumotion/component/consumers/httpstreamer/http_wizard.py:
	* flumotion/component/encoders/jpeg/jpeg_wizard.py:
	* flumotion/component/encoders/speex/speex_wizard.py:
	* flumotion/component/encoders/theora/theora_wizard.py:
	* flumotion/component/encoders/vorbis/vorbis_wizard.py:
	* flumotion/component/misc/cortado/cortado_wizard.py:
	* flumotion/wizard/overlaystep.py:
	* flumotion/wizard/save.py:
	We can use attributes instead of the uglier dictionary interface now.

2008-02-15  Johan Dahlin  <johan@flumotion.com>

	* configure.ac:
	* flumotion/component/consumers/httpstreamer/http-wizard.glade:
	* flumotion/component/consumers/httpstreamer/http_wizard.py:
	* flumotion/component/misc/cortado/Makefile.am:
	* flumotion/component/misc/cortado/cortado.py:
	* flumotion/component/misc/cortado/cortado.xml:
	* flumotion/component/misc/cortado/cortado_location.py.in:
	* flumotion/component/misc/cortado/cortado_wizard.py:
	* flumotion/wizard/configurationwizard.py:
	* flumotion/wizard/conversionsteps.py:
	* flumotion/wizard/models.py:
	* flumotion/wizard/save.py:
	* flumotion/worker/checks/Makefile.am:
	* flumotion/worker/checks/package.xml:
	* flumotion/worker/checks/cortado.py
	Make the http consumption step pluggable.
	Make the cortado presence detectable in runtime instead of at
	configure time.
	Migrate the cortado step to be a pluggable plug.
	Fixes #823

2008-02-15  Johan Dahlin  <johan@flumotion.com>

	reviewed by: Mike

	* flumotion/common/config.py:
	* flumotion/common/registry.py:
	* flumotion/component/component.py:
	* flumotion/component/muxers/muxers.xml:
	* flumotion/manager/admin.py:
	* flumotion/test/test_component_bouncers_component.py:
	* flumotion/test/test_component_httpserver.py:
	* flumotion/test/test_config.py:
	* flumotion/test/test_registry.py:
	* flumotion/worker/worker.py:

	In preparation for bug 823.
	Registry changes:
	* Allow multiple <entry>'s for a <plug>.
	* Allow <wizard> to be placed in <plugs> in the registry
	* Improve validation of format media types.
	Admin PB API:
	* Add getPlugEntry, which can be used to fetch an entry point in a plug
	* Update getWizardEntries to also return entries for plugs, not just
	  components
	Update worker, config, component modules, muxer xml and tests to take
	into account these changes.

2008-02-15  Johan Dahlin  <johan@flumotion.com>

	* flumotion/test/test_component_base_scheduler.py
	(EventTest.testRecurringOnce):
	  Check if dateutil is installed before running this test

2008-02-15  Johan Dahlin  <johan@flumotion.com>

	* flumotion/wizard/configurationwizard.py:
	* flumotion/wizard/consumptionsteps.py:
	Fix a few more imports

2008-02-15  Johan Dahlin  <johan@flumotion.com>

	* flumotion/wizard/productionstep.py: Forgot to save this file.
	* flumotion/wizard/workerstep.py: Import WizardStep too.

2008-02-15  Johan Dahlin  <johan@flumotion.com>

	* flumotion/component/consumers/disker/disker_wizard.py:
	* flumotion/component/consumers/httpstreamer/http_wizard.py:
	* flumotion/component/consumers/shout2/shout2_wizard.py:
	* flumotion/wizard/Makefile.am:
	* flumotion/wizard/basesteps.py:
	* flumotion/wizard/configurationwizard.py:
	* flumotion/wizard/conversionsteps.py:
	* flumotion/wizard/models.py:
	* flumotion/wizard/overlaystep.py:
	* flumotion/wizard/save.py:
	* flumotion/wizard/workerstep.py:
	* po/POTFILES.in:
	Rewrite overlay wizard step to use a model+proxy.
	Move overlay and worker step out of basesteps.
	Update import callsites.

2008-02-14  Johan Dahlin  <johan@flumotion.com>

	* flumotion/admin/gtk/client.py:
	Display tooltips when hovering over menu entries and tool buttons.
	Add tooltips for all actions. Fixes #827

2008-02-14  Johan Dahlin  <johan@flumotion.com>

	* flumotion/wizard/basesteps.py (VideoSourceStep.get_state):
	  Remove, all videosource steps uses separate model classes now.

	* flumotion/ui/wizard.py (WizardStep):
	  Remove unused method before_show.

	* flumotion/wizard/configurationwizard.py (LicenseStep)
	(WelcomeStep):
	  Disable changing of the style. Juse use the default background color.

	* flumotion/wizard/conversionsteps.py:
	  Use setup/activated instead of calling private methods from the wizard.

	* flumotion/component/consumers/shout2/shout2_wizard.py
	(Shout2Step.worker_changed):
	  Check elements in worker_changed instead of before_show.

	* flumotion/wizard/conversionsteps.py (ConversionStep._populate_combos):
	  Put ... in the combos while querying the manager and block the next
	  button meanwhile.	Disable the combos sensitivy while querying.
	* flumotion/wizard/productionsteps.py (ProductionStep._populate_combos):
	  Disable the combos sensitivy while querying.

2008-02-13  Johan Dahlin  <johan@flumotion.com>

	* flumotion/wizard/productionsteps.py (ProductionStep.__init__):
	Get rid of a FIXME; remove _setup() and split it into setup/activated logic.
	Put ... in the combos while querying the manager and block the next button
	meanwhile.

2008-02-13  Johan Dahlin  <johan@flumotion.com>

	* flumotion/wizard/conversionsteps.py:
	* flumotion/wizard/productionsteps.py:
	Block next while fetching the next page.

2008-02-09  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/feedcomponent.py:
	  Use the correct API to add messages to a component.

2008-02-09  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/component.py:
	  Make sure we at least debug exceptions, even if they're handled.

2008-02-07  Johan Dahlin  <johan@flumotion.com>

	* flumotion/wizard/productionsteps.py:
	(ProductionStep.plugin_loaded):
	First part of unifying the way plugins are fetched
	in production/converstion

	* flumotion/component/consumers/httpstreamer/http_wizard.py:
	* flumotion/component/encoders/jpeg/jpeg_wizard.py:
	* flumotion/component/encoders/smoke/smoke_wizard.py:
	* flumotion/component/encoders/speex/speex_wizard.py:
	* flumotion/component/encoders/theora/theora_wizard.py:
	* flumotion/component/encoders/vorbis/vorbis_wizard.py:
	* flumotion/component/producers/audiotest/audiotest_wizard.py:
	* flumotion/component/producers/bttv/bttv_wizard.py:
	* flumotion/component/producers/firewire/firewire_wizard.py:
	* flumotion/component/producers/soundcard/soundcard_wizard.py:
	* flumotion/component/producers/videotest/videotest_wizard.py:
	* flumotion/component/producers/webcam/webcam_wizard.py:
	* flumotion/wizard/basesteps.py:
	* flumotion/wizard/configurationwizard.py:
	* flumotion/wizard/conversionsteps.py:
	* flumotion/wizard/productionsteps.py:

	Change worker_changed to take a worker argument to simplify the
	callsites slightly.

2008-02-07  Johan Dahlin  <johan@flumotion.com>

	* flumotion/wizard/configurationwizard.py:
	Call block_next before requiring an element and block_next when
	we're done.

	* flumotion/component/producers/videotest/videotest_wizard.py
	(TestVideoSourceStep.worker_changed):
	Move the element check to worker_changed

	* data/glade/Makefile.am:
	* data/glade/wizard_http.glade:
	* flumotion/component/consumers/httpstreamer/Makefile.am:
	* flumotion/component/consumers/httpstreamer/http_wizard.py:
	* po/POTFILES.in:
	Move (and rename) wizard_http.glade to the httpstreamer directory.

2008-02-07  Johan Dahlin  <johan@flumotion.com>

	* flumotion/component/consumers/shout2/Makefile.am:
	(component_PYTHON): Add shout2_wizard.py

	* data/glade/Makefile.am:
	* data/glade/wizard_shout2.glade:
	* flumotion/component/consumers/shout2/Makefile.am:
	* flumotion/component/consumers/shout2/shout2_wizard.py:
	* flumotion/wizard/consumptionsteps.py:
	Move the shout2 component out of consumptionsteps.py

2008-02-07  Johan Dahlin  <johan@flumotion.com>

	* flumotion/component/misc/httpfile/httpfile.py:
	Raise an exception if the path property isn't set or if the
	setRootResource is not called.
	Fix the build by accessing self.filePath instead of just filePath.

	* data/glade/Makefile.am (glade_DATA): Remove wizard_disk.glade
	from here.

	* data/glade/wizard_disk.glade:
	* flumotion/component/consumers/disker/Makefile.am:
	* flumotion/component/consumers/disker/disker_wizard.py:
	* flumotion/component/misc/httpfile/httpfile.py:
	* flumotion/wizard/consumptionsteps.py:

	Move disk steps out of wizard/consumptionsteps.py and the
	disker glade file into the component directory.

2008-02-07  Johan Dahlin  <johan@flumotion.com>

	* flumotion/component/producers/soundcard/soundcard_wizard.py:
	* flumotion/component/producers/videotest/admin_gtk.py:
	* flumotion/wizard/consumptionsteps.py:
	* flumotion/wizard/enums.py:

	Move out enums which are only used once of wizard/enums.py into
	their respective callsites.

2008-02-06  Johan Dahlin  <johan@flumotion.com>

	* flumotion/component/misc/cortado/cortado.py:
	document and check the component type. remove unused methods.

	* flumotion/component/consumers/httpstreamer/http_wizard.py:
	improve documentation

	* data/Makefile.am (templatedir): Install .html files
	to pkgdatadir, not datadir.
	* flumotion.spec.in (user): Include all .html files

	* flumotion/component/misc/cortado/Makefile.am (cortado_DATA): Attempt to
	fix distcheck
	(cortado_PYTHON): Add cortado_location.py to cortado_PYTHON

	* configure.ac:
	* flumotion/component/misc/cortado/cortado_location.py.in:
	* README:

	Add an optional cortado dependency, store the location and
	update README.

	* data/Makefile.am:
	* data/cortado-template.html:
	* flumotion/component/misc/Makefile.am:
	* flumotion/component/misc/cortado/Makefile.am:
	* flumotion/component/misc/cortado/__init__.py:
	* flumotion/component/misc/cortado/cortado.py:
	* flumotion/component/misc/cortado/cortado.xml:

	Create a CortadoPlug which can be plugged into a http streaming
	component.

	* data/glade/wizard_http.glade:
	* flumotion/component/consumers/httpstreamer/http_wizard.py:
	* flumotion/wizard/models.py:
	* flumotion/wizard/save.py:

	Add support for streaming to cortado widgets in the admin wizard.

	Fixes #824

2008-02-06  Johan Dahlin  <johan@flumotion.com>

	(HTTPFileStreamer._createRootResourceForPath): Remove factory variable
	to silence pychecker.

	* flumotion/component/misc/httpfile/httpfile.xml:
	* flumotion/component/misc/httpfile/httpfile.py
	(HTTPFileStreamer.do_setup):
	Refactor root resource creation into two separate methods.
	(HTTPFileStreamer._fetchProperties): Rename from have_properties
	and make the path property optional
	(HTTPFileStreamer.setRootResource)
	(HTTPFileStreamer.getMountPoint): New methods

	* flumotion/test/test_component_httpserver.py:
	Add new tests for httpstreamer plugs

2008-01-31  Arek Korbik  <arkadini@gmail.com>

	* flumotion/component/consumers/httpstreamer/http.py
	(MultifdSinkStreamer.update_ui_state):
	Don't erase delayed call id if the method wasn't called by the
	reactor from a timeout - fixes memory leak introduced in r5661.

2008-01-31  Johan Dahlin  <johan@flumotion.com>

	* flumotion/component/misc/httpfile/httpfile.py
	(HTTPFileStreamer.updatePorterDetails):
	  Refactor and clean up updatePorterDetails.  Bump copyright and pep8ify.
	(HTTPFileStreamer._updatePath): comment and style changes

	* flumotion/ui/wizard.py (SectionWizard._set_step): Set the step earlier
	since the worker-changed signal is triggered before the end of this
	method, which will end up using the worker from the wrong step.

	* flumotion/component/consumers/httpstreamer/Makefile.am:
	* flumotion/component/consumers/httpstreamer/http_wizard.py:
	* flumotion/wizard/consumptionsteps.py:
	Move http_wizard over to the httpstreamer directory.
	Not yet pluggable, just separated.

2008-01-31  Johan Dahlin  <johan@flumotion.com>

	* flumotion/component/misc/porter/porter.py:
	* flumotion/test/realm.py:
	* flumotion/test/test_pbstream.py:
	* flumotion/worker/feedserver.py:
	Get rid of most __implements__ in favor of implements()

2008-01-31  Johan Dahlin  <johan@flumotion.com>

	* flumotion/wizard/productionsteps.py (ProductionStep):
	* flumotion/wizard/conversionsteps.py (ConversionStep):
	Fix production_step.get_audio/video_producer() to actually
	return None if there's no component selected.
	Update callsites.

	* flumotion/wizard/consumptionsteps.py (HTTPStep):
	Clean up the internal blocking api

2008-01-30  Johan Dahlin  <johan@flumotion.com>

	* flumotion/common/registry.py (RegistryParser._parseWizard):
	Verify that the wizard entries are somewhat correct.

	* doc/random/wizard-plugin: Add an initial draft of
	describing how to create a wizard-plugin.

	* configure.ac: Pointless change to trigger a new autogen.
	* common/intltool-Makefile.in.in:
	(check): Add back check which does nothing

2008-01-30  Johan Dahlin  <johan@flumotion.com>

	* flumotion/component/producers/firewire/firewire_wizard.py:
	(__pychecker__): Do not check return values

	* flumotion/component/producers/audiotest/audiotest_wizard.py:
	* flumotion/component/producers/bttv/bttv_wizard.py:
	* flumotion/component/producers/firewire/firewire_wizard.py:
	* flumotion/component/producers/soundcard/soundcard_wizard.py:
	* flumotion/component/producers/videotest/videotest_wizard.py:
	* flumotion/component/producers/webcam/webcam_wizard.py:
	* flumotion/wizard/productionsteps.py:

	Rename get_production_step to getProductionStep.
	Make the api similar to the conversion api by creating the models
	in the steps themselves instead of just point to a class.

2008-01-30  Johan Dahlin  <johan@flumotion.com>

	* flumotion/component/encoders/jpeg/jpeg_wizard.py:
	* flumotion/component/encoders/smoke/smoke_wizard.py:
	* flumotion/component/encoders/speex/speex_wizard.py:
	* flumotion/component/encoders/theora/theora_wizard.py:
	* flumotion/component/encoders/vorbis/vorbis_wizard.py:
	* flumotion/wizard/conversionsteps.py:

	Rename get_conversion_step to getConversionStep

2008-01-30  Johan Dahlin  <johan@flumotion.com>

	* configure.ac: Pointless change to trigger a new autogen.
	* common/intltool-Makefile.in.in:
	(check): Remove maintainer hack and checks

	* common/intltool-Makefile.in.in (itlocaledir):
	Don't depend on DATADIRNAME, just hardcode to $(prefix)/share
	(check): Clean up rpm directory before checking for files missing
	in POTFILES.in

2008-01-29  Arek Korbik  <arkadini@gmail.com>

	* flumotion/component/producers/firewire/firewire.py
	  (Firewire.get_pipeline_string):
	* flumotion/component/producers/firewire/firewire.xml:
	Add support for selecting device by GUID in the firewire producer.

2008-01-28  Johan Dahlin  <johan@flumotion.com>

	* autogen.sh:
	* common/intltool-Makefile.in.in:
	* intltool-extract.in:
	* intltool-merge.in:
	* intltool-update.in:

	Include intltool 0.37.0 files instead of depending on
	the system version.

2008-01-28  Johan Dahlin  <johan@flumotion.com>

	* flumotion/component/encoders/Makefile.am:
	Add a few missing \

2008-01-28  Arek Korbik  <arkadini@gmail.com>

	* flumotion/test/test_http.py
	(TestHTTPStreamingResource.deferAssertUnauthorized):
	Make sure the tests actually check that the authentication
	deferred is errbacked with NotAuthenticatedError on authentication
	failure.

2008-01-28  Johan Dahlin  <johan@flumotion.com>

	Make encoding and muxers pluggable in the wizard, fixes #822.

	* flumotion/ui/wizard.py:
	Make it possible for defered steps to return None, which means go to
	the next step in the section. This is used by the mulaw step.

	* flumotion/common/componentui.py:
	* flumotion/common/registry.py:
	Make sure that we can send the whole wizard entry class, including the
	formats over the fire. This is necessary to be able to do proper type
	finding. Add methods to the WizardEntryState to simplify this.

	* flumotion/component/encoders/base.xml:
	* flumotion/component/encoders/encodingprofile.py:
	* flumotion/component/encoders/encodingwizardplugin.py:
	Remove encodingprofile and encoding wizard plugin. They are unused,
	since we're still using the normal wizard steps. Remove the
	encoding-wizard bundle.

	* data/glade/Makefile.am:
	* flumotion/component/encoders/Makefile.am:
	* data/glade/wizard_audio_encoder.glade:
	* flumotion/component/encoders/jpeg/jpeg-wizard.glade:
	* flumotion/component/encoders/jpeg/jpeg.xml:
	* flumotion/component/encoders/jpeg/jpeg_wizard.py:
	* flumotion/component/encoders/mulaw/mulaw.xml:
	* flumotion/component/encoders/smoke/smoke.xml:
	* flumotion/component/encoders/smoke/smoke_wizard.py:
	* flumotion/component/encoders/speex/speex.xml:
	* flumotion/component/encoders/speex/speex_wizard.py:
	* flumotion/component/encoders/theora/theora-wizard.glade:
	* flumotion/component/encoders/theora/theora.xml:
	* flumotion/component/encoders/theora/theora_wizard.py:
	* flumotion/component/encoders/vorbis/vorbis-wizard.glade:
	* flumotion/component/encoders/vorbis/vorbis.xml:
	* flumotion/component/encoders/vorbis/vorbis_wizard.py:
	* flumotion/component/muxers/muxers.xml:

	Move over all glade files from the data directory, and put them
	into the encoder bundles.
	Remove encoding profiles. Use kiwi proxy for all properties.
	Create subclasses for the models.
	Add <wizard> tags for missing components.

	* data/glade/wizard_encoding.glade:
	Rename format to muxer.

	* flumotion/wizard/productionsteps.py:
	Reset the component type in the producers when disabling audio or video

	* flumotion/wizard/enums.py:
	Remove EncodingFormat, EncodingVideo, EncodingAudio

	* flumotion/wizard/models.py:
	Make component_type a class variable, so we can define it in a subclass
	Replace _ with - here in getProperties() instead of in save.py

	* flumotion/wizard/save.py:
	Adopt getAudioEncoder/getVideoEncoder to use the models.

	* flumotion/wizard/conversionsteps.py:
	Rewrite to be pluggable, add new method for fetching audio and video
	encoders. Move steps into plugins.

	* po/POTFILES.in:
	Update for renamed and new files

2008-01-28  Johan Dahlin  <johan@flumotion.com>

	* autogen.sh: Run libtoolize first, and aclocal after
	intltoolisize, run autopoint --force, mimics the behavior
	of gnome-autogen.sh and avoids autopoints complaints.

	* flumotion/wizard/productionsteps.py (ProductionStep.got_entries):
	Put the videotest-producer and audiotest-producer as the first
	entries. Fixes #840

	* configure.ac:
	* doc/Makefile.am:
	Add a --disable-docs option, fixes #838

2008-01-28  Johan Dahlin  <johan@flumotion.com>

	* common/common.mk (locale-uninstalled): Rewrite and simplify
	most of the rule

2008-01-28  Johan Dahlin  <johan@flumotion.com>

	* common/common.mk (locale-uninstalled): We're already inside
	the po dir
	(locale-uninstalled): Use basename instead of cut.

2008-01-25  Johan Dahlin  <johan@flumotion.com>

	* flumotion/test/test_wizard_models.py: We're back from the future

2008-01-24  Johan Dahlin  <johan@flumotion.com>

	* flumotion/admin/__init__.py:
	* flumotion/admin/admin.py:
	* flumotion/admin/command/commands.py:
	* flumotion/admin/command/main.py:
	* flumotion/admin/command/utils.py:
	* flumotion/admin/config.py:
	* flumotion/admin/connections.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/message.py:
	* flumotion/admin/gtk/parts.py:
	* flumotion/admin/multi.py:
	* flumotion/admin/rrdmon/__init__.py:
	* flumotion/admin/rrdmon/config.py:
	* flumotion/admin/rrdmon/main.py:
	* flumotion/admin/rrdmon/rrdmon.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/avltree.py:
	* flumotion/common/boot.py:
	* flumotion/common/bundle.py:
	* flumotion/common/bundleclient.py:
	* flumotion/common/common.py:
	* flumotion/common/componentui.py:
	* flumotion/common/config.py:
	* flumotion/common/connection.py:
	* flumotion/common/dag.py:
	* flumotion/common/debug.py:
	* flumotion/common/enum.py:
	* flumotion/common/errors.py:
	* flumotion/common/fxml.py:
	* flumotion/common/gstreamer.py:
	* flumotion/common/identity.py:
	* flumotion/common/interfaces.py:
	* flumotion/common/keycards.py:
	* flumotion/common/log.py:
	* flumotion/common/manhole.py:
	* flumotion/common/medium.py:
	* flumotion/common/messages.py:
	* flumotion/common/netutils.py:
	* flumotion/common/options.py:
	* flumotion/common/package.py:
	* flumotion/common/planet.py:
	* flumotion/common/pygobject.py:
	* flumotion/common/python.py:
	* flumotion/common/reflectcall.py:
	* flumotion/common/registry.py:
	* flumotion/common/reload.py:
	* flumotion/common/server.py:
	* flumotion/common/setup.py:
	* flumotion/common/signals.py:
	* flumotion/common/startset.py:
	* flumotion/common/testsuite.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/base/http.py:
	* flumotion/component/base/scheduler.py:
	* flumotion/component/base/watcher.py:
	* flumotion/component/bouncers/__init__.py:
	* flumotion/component/bouncers/admin_gtk.py:
	* flumotion/component/bouncers/bouncer.py:
	* flumotion/component/bouncers/component.py:
	* flumotion/component/bouncers/htpasswdcrypt.py:
	* flumotion/component/bouncers/icalbouncer.py:
	* flumotion/component/bouncers/ipbouncer.py:
	* flumotion/component/bouncers/plug.py:
	* flumotion/component/bouncers/saltsha256.py:
	* flumotion/component/bouncers/tokentest.py:
	* flumotion/component/bouncers/tokentestbouncer.py:
	* flumotion/component/combiners/composite/composite.py:
	* flumotion/component/combiners/switch/admin_gtk.py:
	* flumotion/component/combiners/switch/basicwatchdog.py:
	* flumotion/component/combiners/switch/patternswitch.py:
	* flumotion/component/combiners/switch/switch.py:
	* flumotion/component/component.py:
	* flumotion/component/consumers/disker/admin_gtk.py:
	* flumotion/component/consumers/disker/admin_text.py:
	* flumotion/component/consumers/disker/disker.py:
	* flumotion/component/consumers/disker/disker_plug.py:
	* flumotion/component/consumers/httpstreamer/admin_gtk.py:
	* flumotion/component/consumers/httpstreamer/http.py:
	* flumotion/component/consumers/httpstreamer/resources.py:
	* flumotion/component/consumers/preview/preview.py:
	* flumotion/component/consumers/shout2/shout2.py:
	* flumotion/component/converters/overlay/genimg.py:
	* flumotion/component/converters/overlay/overlay.py:
	* flumotion/component/converters/pipeline/pipeline.py:
	* flumotion/component/eater.py:
	* flumotion/component/effects/__init__.py:
	* flumotion/component/effects/colorbalance/admin_gtk.py:
	* flumotion/component/effects/colorbalance/colorbalance.py:
	* flumotion/component/effects/volume/admin_gtk.py:
	* flumotion/component/effects/volume/volume.py:
	* flumotion/component/encoders/encodingprofile.py:
	* flumotion/component/encoders/encodingwizardplugin.py:
	* flumotion/component/encoders/jpeg/jpeg.py:
	* flumotion/component/encoders/jpeg/jpeg_wizard.py:
	* flumotion/component/encoders/mulaw/mulaw.py:
	* flumotion/component/encoders/smoke/smoke.py:
	* flumotion/component/encoders/smoke/smoke_wizard.py:
	* flumotion/component/encoders/speex/speex.py:
	* flumotion/component/encoders/speex/speex_wizard.py:
	* flumotion/component/encoders/theora/theora.py:
	* flumotion/component/encoders/theora/theora_wizard.py:
	* flumotion/component/encoders/vorbis/vorbis.py:
	* flumotion/component/encoders/vorbis/vorbis010.py:
	* flumotion/component/encoders/vorbis/vorbis_wizard.py:
	* flumotion/component/feed.py:
	* flumotion/component/feedcomponent.py:
	* flumotion/component/feedcomponent010.py:
	* flumotion/component/feeder.py:
	* flumotion/component/misc/httpfile/admin_gtk.py:
	* flumotion/component/misc/httpfile/file.py:
	* flumotion/component/misc/httpfile/httpfile.py:
	* flumotion/component/misc/porter/__init__.py:
	* flumotion/component/misc/porter/porter.py:
	* flumotion/component/misc/porter/porterclient.py:
	* flumotion/component/misc/repeater/__init__.py:
	* flumotion/component/misc/repeater/repeater.py:
	* flumotion/component/muxers/checks.py:
	* flumotion/component/muxers/multipart.py:
	* flumotion/component/muxers/ogg.py:
	* flumotion/component/padmonitor.py:
	* flumotion/component/plugs/__init__.py:
	* flumotion/component/plugs/adminaction.py:
	* flumotion/component/plugs/base.py:
	* flumotion/component/plugs/identity.py:
	* flumotion/component/plugs/lifecycle.py:
	* flumotion/component/plugs/loggers.py:
	* flumotion/component/plugs/manhole.py:
	* flumotion/component/plugs/streamdata.py:
	* flumotion/component/producers/audiotest/admin_gtk.py:
	* flumotion/component/producers/audiotest/audiotest.py:
	* flumotion/component/producers/bttv/admin_gtk.py:
	* flumotion/component/producers/bttv/bttv.py:
	* flumotion/component/producers/checks.py:
	* flumotion/component/producers/firewire/admin_gtk.py:
	* flumotion/component/producers/firewire/firewire.py:
	* flumotion/component/producers/gdp/__init__.py:
	* flumotion/component/producers/gdp/gdp.py:
	* flumotion/component/producers/icecast/icecast.py:
	* flumotion/component/producers/ivtv/ivtv.py:
	* flumotion/component/producers/looper/admin_gtk.py:
	* flumotion/component/producers/looper/looper.py:
	* flumotion/component/producers/pipeline/pipeline.py:
	* flumotion/component/producers/playlist/playlist.py:
	* flumotion/component/producers/playlist/playlistparser.py:
	* flumotion/component/producers/playlist/singledecodebin.py:
	* flumotion/component/producers/playlist/smartscale.py:
	* flumotion/component/producers/rtsp/rtsp.py:
	* flumotion/component/producers/screencast/screencast.py:
	* flumotion/component/producers/soundcard/admin_gtk.py:
	* flumotion/component/producers/soundcard/soundcard.py:
	* flumotion/component/producers/unixdomain/__init__.py:
	* flumotion/component/producers/unixdomain/unixdomain.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/admin_gtk.py:
	* flumotion/component/producers/webcam/webcam.py:
	* flumotion/configure/__init__.py:
	* flumotion/configure/configure.py:
	* flumotion/extern/log/test_log.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/launch/parse.py:
	* flumotion/manager/__init__.py:
	* flumotion/manager/admin.py:
	* flumotion/manager/base.py:
	* flumotion/manager/component.py:
	* flumotion/manager/config.py:
	* flumotion/manager/main.py:
	* flumotion/manager/manager.py:
	* flumotion/manager/worker.py:
	* flumotion/monitor/nagios/main.py:
	* flumotion/monitor/nagios/util.py:
	* flumotion/project/project.py:
	* flumotion/test/__init__.py:
	* flumotion/test/bouncertest.py:
	* flumotion/test/comptest.py:
	* flumotion/test/gtkunit.py:
	* flumotion/test/realm.py:
	* flumotion/test/test_admin_admin.py:
	* flumotion/test/test_admin_config.py:
	* flumotion/test/test_admin_connections.py:
	* flumotion/test/test_admin_multi.py:
	* flumotion/test/test_bundle.py:
	* flumotion/test/test_checkers.py:
	* flumotion/test/test_common.py:
	* flumotion/test/test_common_avltree.py:
	* flumotion/test/test_common_componentui.py:
	* flumotion/test/test_common_connection.py:
	* flumotion/test/test_common_gstreamer.py:
	* flumotion/test/test_common_messages.py:
	* flumotion/test/test_common_netutils.py:
	* flumotion/test/test_common_package.py:
	* flumotion/test/test_common_planet.py:
	* flumotion/test/test_common_pygobject.py:
	* flumotion/test/test_common_signals.py:
	* flumotion/test/test_component.py:
	* flumotion/test/test_component_base_scheduler.py:
	* flumotion/test/test_component_base_watcher.py:
	* flumotion/test/test_component_bouncers_bouncer.py:
	* flumotion/test/test_component_bouncers_component.py:
	* flumotion/test/test_component_bouncers_plug.py:
	* flumotion/test/test_component_feed.py:
	* flumotion/test/test_component_feeder.py:
	* flumotion/test/test_component_httpserver.py:
	* flumotion/test/test_component_httpstreamer.py:
	* flumotion/test/test_component_init.py:
	* flumotion/test/test_component_padmonitor.py:
	* flumotion/test/test_component_playlist.py:
	* flumotion/test/test_comptest.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_i18n.py:
	* flumotion/test/test_keycards.py:
	* flumotion/test/test_logfilter.py:
	* flumotion/test/test_manager_admin.py:
	* flumotion/test/test_manager_manager.py:
	* flumotion/test/test_manager_worker.py:
	* flumotion/test/test_misc_httpfile.py:
	* flumotion/test/test_options.py:
	* flumotion/test/test_parts.py:
	* flumotion/test/test_pb.py:
	* flumotion/test/test_pbstream.py:
	* flumotion/test/test_porter.py:
	* flumotion/test/test_public_ui_api.py:
	* flumotion/test/test_reflect.py:
	* flumotion/test/test_registry.py:
	* flumotion/test/test_saltsha256.py:
	* flumotion/test/test_testclasses.py:
	* flumotion/test/test_twisted_integration.py:
	* flumotion/test/test_ui_fgtk.py:
	* flumotion/test/test_wizard.py:
	* flumotion/test/test_worker_config.py:
	* flumotion/test/test_worker_job.py:
	* flumotion/test/test_worker_medium.py:
	* flumotion/test/test_worker_worker.py:
	* flumotion/test/test_workerconfig.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/fdserver.py:
	* flumotion/twisted/flavors.py:
	* flumotion/twisted/integration.py:
	* flumotion/twisted/pb.py:
	* flumotion/twisted/portal.py:
	* flumotion/twisted/reflect.py:
	* flumotion/twisted/rtsp.py:
	* flumotion/ui/fgtk.py:
	* flumotion/ui/fvumeter.py:
	* flumotion/ui/glade.py:
	* flumotion/ui/icons.py:
	* flumotion/ui/sidebar.py:
	* flumotion/ui/simplewizard.py:
	* flumotion/ui/trayicon.py:
	* flumotion/ui/url.py:
	* flumotion/wizard/basesteps.py:
	* flumotion/wizard/configurationwizard.py:
	* flumotion/wizard/consumptionsteps.py:
	* flumotion/wizard/conversionsteps.py:
	* flumotion/wizard/enums.py:
	* flumotion/wizard/save.py:
	* flumotion/wizard/worker.py:
	* flumotion/worker/__init__.py:
	* flumotion/worker/base.py:
	* flumotion/worker/checks/audio.py:
	* flumotion/worker/checks/check.py:
	* flumotion/worker/checks/encoder.py:
	* flumotion/worker/checks/gst010.py:
	* flumotion/worker/checks/video.py:
	* flumotion/worker/config.py:
	* flumotion/worker/feedserver.py:
	* flumotion/worker/job.py:
	* flumotion/worker/main.py:
	* flumotion/worker/medium.py:
	* flumotion/worker/worker.py:

	Move down __version__ from the first part of the module,
	avoids breaking doc strings. Fixes #836

2008-01-24  Johan Dahlin  <johan@flumotion.com>

	* flumotion/common/errors.py:
	* flumotion/test/test_wizard_models.py:
	* flumotion/wizard/models.py:
	Use ComponentError from flumotion.common.errors
	Move ComponentValidationError to flumotion.common.errors, add
	a docstring.
	Add license headers to test.

2008-01-24  Johan Dahlin  <johan@flumotion.com>

	* flumotion/wizard/models.py (Properties):
	Implement __repr__ to help debugging saying that we really are
	a Properties object and not a dictionary.
	Do not allow properties to be set which clashes with dict methods.
	Improve documentation a bit

	* flumotion/test/test_wizard_models.py:
	Add tests

2008-01-24  Johan Dahlin  <johan@flumotion.com>

	Make all dialogs modal, so we can't click on the parent's while they
	are open.

	* flumotion/admin/gtk/client.py:
	Send in parents and make file chooser dialogs modal.
	* flumotion/admin/gtk/greeter.py:
	Add parent arguments and chain up
	* flumotion/ui/simplewizard.py (SimpleWizard): add a parent
	constructor argument and document it. Pass it on to GladeWindow.

2008-01-24  Johan Dahlin  <johan@flumotion.com>

	* flumotion/ui/glade.py (GladeWindow.__init__): Make the
	window modal too, so you can't click on the main window when
	running the configurationwizard.

2008-01-21  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/admin/gtk/parts.py:
	Fix KeyError when hovering on a lost component.

2008-01-20  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/test/test_component_base_scheduler.py:
	  Add a test case for when a recurring event has an UNTIL that is
	  past "now".
	* flumotion/component/base/scheduler.py:
	  Fix Event.__init__() for it

2008-01-20  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/base/scheduler.py:
	* flumotion/test/test_component_base_scheduler.py:
	  Add test-case-name lines.
	  Move public now() to test suite, which is its only consumer.
	  Document API some more.

2008-01-18  Johan Dahlin  <johan@flumotion.com>

	* flumotion/admin/gtk/client.py (AdminClientWindow._open_connection):
	Add an assert, to make sure we always send in a PBConnectionInfo
	instance.
	(AdminClientWindow.recent_activate): Send in conn.info.
	Fixes #835

	* flumotion/admin/gtk/parts.py (ComponentsView.__init__):
	Check for PyGTK 2.12.1 or higher, to avoid a crash in PyGTK bug #479012

2008-01-17  Johan Dahlin  <johan@flumotion.com>

	* flumotion/admin/gtk/componentview.py:
	* flumotion/admin/text/view.py:
	* flumotion/manager/admin.py:
	* flumotion/wizard/configurationwizard.py:
	Rename getEntry back to getEntryByType, reverses part of [6081]

2008-01-15  Johan Dahlin  <johan@flumotion.com>

	* flumotion/common/componentui.py:
	Update the name here too, to avoid breaking the build

	* flumotion/common/registry.py:
	* flumotion/manager/admin.py:
	* flumotion/wizard/productionsteps.py:
	Make RegistryWizardEntry Copyable.
	Return a list of WizardEntryState in getWizardEntries, update
	documentation and callsite.

2008-01-15  Johan Dahlin  <johan@flumotion.com>

	* flumotion/component/producers/soundcard/soundcard_wizard.py
	(SoundcardStep.setup): Make sure that it works using kiwi 1.9.14

2008-01-15  Thomas Vander Stichele  <thomas at apestaart dot org>

	* autogen.sh:
	  Fail if there is no intltoolize (I have no idea why it wasn't
	  made to fail in the first place)

2008-01-15  Thomas Vander Stichele  <thomas at apestaart dot org>

	* common/Makefile.am:
	* common/intltool.m4:
	  Add macro for people who don't have intltool installed.

2008-01-11  Johan Dahlin  <johan@flumotion.com>

	* common/gendoc.py: Import from posixbase, to avoid a deprecation
	message when running the testsuite.

2008-01-11  Johan Dahlin  <johan@flumotion.com>

	* flumotion/wizard/basesteps.py:
	* flumotion/wizard/conversionsteps.py:
	* flumotion/wizard/save.py:
	Get remove of a few (double) translations, left-overs from
	previous commit.

2008-01-11  Johan Dahlin  <johan@flumotion.com>

	* flumotion/component/producers/firewire/firewire_wizard.py:
	* flumotion/ui/wizard.py:
	* flumotion/wizard/consumptionsteps.py:
	* flumotion/wizard/save.py:
	Get rid of stupid _() to get_step() & friends.

2008-01-11  Johan Dahlin  <johan@flumotion.com>

	* flumotion/wizard/enums.py (EncodingVideo): Remove two
	unused enums

	* common/common.mk (locale-uninstalled): Workaround intltool bug
	and inline the whole target to copy the .gmo files.

2008-01-11  Johan Dahlin  <johan@flumotion.com>

	* common/common.mk (locale-uninstalled): Set itlocaledir too, intltool
	uses this rule to install .mo files instead of datadir which normal
	gettext uses

2008-01-10  Johan Dahlin  <johan@flumotion.com>

	* flumotion/test/test_registry.py (TestComponentEntry.setUp):
	Update the tests

	* configure.ac:
	* Makefile.am:
	* autogen.sh:
	* flumotion/admin/admin.py:
	* flumotion/common/registry.py:
	* flumotion/wizard/productionsteps.py:
	* flumotion/component/producers/bttv/bttv.xml:
	* flumotion/component/producers/soundcard/soundcard.xml:
	* flumotion/component/producers/webcam/webcam.xml:
	* flumotion/component/producers/audiotest/audiotest.xml:
	* flumotion/component/producers/videotest/videotest.xml:
	* flumotion/component/producers/firewire/firewire.xml:
	* flumotion/manager/admin.py:
	* po/POTFILES.in:
	Add a new registry entry <wizard>, which specifies how
	a page should appear in the wizard.
	Annotate all old production plugins.
	Add a new method for fetching wizard entries and use it in the
	wizard, removing the old hard coded list of components.
	Add intltool support, add the xml files to POTFILES.in

2008-01-10  Johan Dahlin  <johan@flumotion.com>

	* data/glade/Makefile.am:
	* data/glade/wizard_firewire.glade:
	* flumotion/component/producers/audiotest/audiotest_wizard.py:
	* flumotion/component/producers/bttv/bttv_wizard.py:
	* flumotion/component/producers/firewire/Makefile.am:
	* flumotion/component/producers/firewire/firewire.xml:
	* flumotion/component/producers/firewire/firewire_wizard.py:
	* flumotion/component/producers/soundcard/soundcard_wizard.py:
	* flumotion/component/producers/videotest/videotest_wizard.py:
	* flumotion/component/producers/webcam/webcam_wizard.py:
	* flumotion/wizard/productionsteps.py:
	* po/POTFILES.in:
	Move the firewire step + glade file out to a separate bundle.
	Change the API slightly to handle components which provides
	both an audio and video producer and update callsites.

2008-01-09  Johan Dahlin  <johan@flumotion.com>

	* po/POTFILES.in:
	Fix a typo

	* data/glade/Makefile.am:
	* data/glade/wizard_tvcard.glade:
	* flumotion/component/producers/bttv/Makefile.am:
	* flumotion/component/producers/bttv/bttv.xml:
	* flumotion/component/producers/bttv/bttv_wizard.py:
	* flumotion/wizard/productionsteps.py:
	* po/POTFILES.in:
	Move the bttv step + glade file out to a separate bundle

2008-01-09  Johan Dahlin  <johan@flumotion.com>

	* po/sv.po: Update swedish translation

	* data/glade/Makefile.am:
	* data/glade/wizard_webcam.glade:
	* flumotion/component/producers/webcam/Makefile.am:
	* flumotion/component/producers/webcam/webcam.xml:
	* flumotion/component/producers/webcam/webcam_wizard.py:
	* flumotion/wizard/productionsteps.py:
	* po/POTFILES.in:
	Move the webcam step + glade file out to a separate bundle

2008-01-09  Johan Dahlin  <johan@flumotion.com>

	* data/glade/Makefile.am:
	* data/glade/wizard_soundcard.glade:
	* flumotion/component/producers/soundcard/Makefile.am:
	* flumotion/component/producers/soundcard/soundcard.xml:
	* flumotion/component/producers/soundcard/soundcard_wizard.py:
	* flumotion/wizard/productionsteps.py:
	* po/POTFILES.in:
	Move the soundcard step + glade file out to a separate bundle

2008-01-09  Johan Dahlin  <johan@flumotion.com>

	* data/glade/Makefile.am (glade_DATA): Remove old glade files here.

	* data/glade/wizard_audiotest.glade:
	* data/glade/wizard_testsource.glade:
	* flumotion/component/producers/audiotest/Makefile.am:
	* flumotion/component/producers/audiotest/audiotest-wizard.glade:
	* flumotion/component/producers/audiotest/audiotest.xml:
	* flumotion/component/producers/audiotest/audiotest_wizard.py:
	* flumotion/component/producers/videotest/Makefile.am:
	* flumotion/component/producers/videotest/videotest-wizard.glade:
	* flumotion/component/producers/videotest/videotest.xml:
	* flumotion/component/producers/videotest/videotest_wizard.py:
	* flumotion/wizard/configurationwizard.py:
	* flumotion/wizard/productionsteps.py:
	* po/POTFILES.in:

	Make the productionstep of the wizard pluggable. Move the
	audiotest and videotest steps to the component and put them in
	separate bundles.
	Add a new method to the configuration wizard to fetch a wizard bundle.

2008-01-09  Johan Dahlin  <johan@flumotion.com>

	* flumotion/manager/admin.py (AdminAvatar.perspective_getEntryByType):
	Remove, in favor of getEntry.
	* flumotion/manager/admin.py (AdminAvatar.perspective_getEntry):
	A new simpler version of getEntryByType which takes a component type
	string instead of a component state. Also rename type to componentType
	to avoid clashing with the builtin 'type' and remove unused imports.
	As discussed in bug #812

	* flumotion/admin/text/view.py (AdminTextView.gotBundles):
	* flumotion/admin/gtk/componentview.py
	(ComponentView.sleeping_component):
	Update callsites

	* flumotion/ui/wizard.py:
	(SectionWizard.on_button_next_clicked): Sort out confusion,
	do not define _show_next_step twice. Pychecker actually caught
	a real bug, must be a first!

	* flumotion/ui/wizard.py (SectionWizard.run)
	(WizardStep.get_next): Improve documentation

	* flumotion/wizard/configurationwizard.py:
	Rename show_next_step to prepare_next_step.
	Split it into two parts, add support for returning a deferred
	instead of a wizard step instance.

2008-01-08  Johan Dahlin  <johan@flumotion.com>

	* Makefile.am (PYCHECKER_BLACKLIST): Put kiwipatches here.

	* flumotion/ui/kiwipatches.py (_open_glade): Another pychecker workaround
	(proxy_entry_init):

	* flumotion/admin/gtk/parts.py:
	Enable tooltips for moods, conditionally for Gtk 2.12 or higher.
	Fixes #820

	* flumotion/ui/kiwipatches.py:
	(old_proxy_entry_init): Attempt to fix pychecker

	* flumotion/ui/Makefile.am:
	* flumotion/ui/glade.py:
	* flumotion/ui/kiwipatches.py:
	* flumotion/wizard/basesteps.py:
	* flumotion/wizard/productionsteps.py:
	* po/POTFILES.in:
	Refactor kiwi monkey patches to a separate file.
	Add a monkey patch to workaround a bug fixed in kiwi 1.9.15.

2008-01-08  Johan Dahlin  <johan@flumotion.com>

	* data/glade/wizard_audiotest.glade:
	* data/glade/wizard_testsource.glade:
	* data/glade/wizard_tvcard.glade:
	* data/glade/wizard_webcam.glade:
	* flumotion/test/test_wizard.py:
	* flumotion/wizard/enums.py:
	* flumotion/wizard/models.py:
	* flumotion/wizard/productionsteps.py:
	* flumotion/wizard/save.py:

	Use proxies for all production steps so we can get rid
	of get_state(). Remove most of the enum usage in the production
	step at the same time. Merge firewire audio/video steps to a common
	step to avoid duplication.

2008-01-08  Johan Dahlin  <johan@flumotion.com>

	* po/sv.po: Update swedish translation

2008-01-07  Johan Dahlin  <johan@flumotion.com>

	* flumotion/worker/job.py (CheckJobHeaven.timeout): job.pid, not
	process.pid. Remove unused import too.

2008-01-07  Arek Korbik  <arkadini@gmail.com>

	* flumotion/admin/gtk/main.py:
	Add missing '_' definition for gettext.

2008-01-07  Johan Dahlin  <johan@flumotion.com>

	* flumotion/admin/gtk/componentview.py:
	Import gettext and set _

2008-01-07  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/manager/admin.py:
	  Raise SleepingComponentError with the proper argument, the state.

2008-01-04  Johan Dahlin  <johan@flumotion.com>

	* flumotion/admin/gtk/: Audit and mark more strings as translatable

	* flumotion/admin/gtk/client.py (AdminClientWindow._open_connection):
	Accept a PBConnectionInfo
	(AdminClientWindow.on_have_connection): Send in PBConnectionInfo here.
	Fixes #817

	* flumotion/admin/gtk/dialogs.py (connection_refused_message): Mark
	a few more strings as translatable, reorder classes and functions.

	* flumotion/admin/gtk/client.py: Avoid importing a few more modules,
	import the attributes directly instead

2008-01-04  Johan Dahlin  <johan@flumotion.com>

	* flumotion/admin/gtk/client.py (AdminClientWindow.refused_later):
	Send in the window instead of the instance, fixes #818
	(AdminClientWindow._fatal_error): Add a new method to show an error
	which is fatal.
	(AdminClientWindow._connection_refused)
	(AdminClientWindow._connection_failed): Refactor to use _fatal_error.

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

	* flumotion/component/component.py:
	  If login of a component fails for _any_ reason, ensure that we
	  disconnect immediately, so that the ReconnectingClientFactory can
	  schedule a reconnect attempt later.

2008-01-02  Johan Dahlin  <johan@flumotion.com>

	* flumotion/test/Makefile.am:
	* flumotion/test/test_admin_connections.py: Add a test.

	* flumotion/admin/connections.py (RecentConnection.parse_connection):
	Refactor try/except clause

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

	* flumotion/admin/config.py:
	* flumotion/component/encoders/encodingprofile.py:
	* flumotion/component/encoders/encodingwizardplugin.py:
	* flumotion/component/encoders/jpeg/jpeg_wizard.py:
	* flumotion/component/encoders/smoke/smoke_wizard.py:
	* flumotion/component/encoders/speex/speex_wizard.py:
	* flumotion/component/encoders/theora/theora_wizard.py:
	* flumotion/component/encoders/vorbis/vorbis_wizard.py:
	* flumotion/manager/config.py:
	* flumotion/test/test_admin_config.py:
	  Set svn:keywords on newly added files.

2008-01-02  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/admin/gtk/client.py:
	Fix recent connections shown on connections menu.

2007-12-28  Johan Dahlin  <johan@flumotion.com>

	* data/glade/wizard_disk.glade:
	* flumotion/wizard/consumptionsteps.py
	(DiskStep.on_checkbutton_rotate_toggled)
	(DiskStep._update_radio): Avoid relying on __nonzero__ which is gone.
	(DiskStep.on_radiobutton_has_time_toggled)
	(DiskStep.on_radiobutton_has_size_toggled):
	Use a separate method callback for each widget.

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

	* flumotion/manager/component.py:
	  When stopping explicitly, create a deferred. Fire it once shutdown is
	  complete. Return it from remote stop method.
	  Allows restart to work non-racily (it mostly worked in the normal admin
	  anyway, because the normal admin uses stop then start, not restart).

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

	* flumotion/manager/manager.py:
	  Raise an exception rather than silently returning if we fail to stop a
	  lost component when the worker says it's still running.
	  Don't disconnect avatar explicitly when stopping a running component;
	  it'll be disconnected when the shutdown completes. Add a FIXME here.
	  Remove some dead code in unregisterComponent. Remove a stale FIXME.

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

	* flumotion/admin/gtk/dialogs.py:
	  Replace "Seek your satisfaction via existing routes" with a more helpful
	  message.

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

	* flumotion/admin/Makefile.am:
	* flumotion/admin/config.py:
	  Split out admin config parser from common/config.py
	* flumotion/common/config.py:
	  Split out admin and manager config parsers into seperate files, keep
	  only the generic bits here.
	* flumotion/common/testsuite.py:
	* flumotion/launch/parse.py:
	  Use manager.config
	* flumotion/manager/Makefile.am:
	* flumotion/manager/config.py:
	  Split out manager/flow config parsers into here.
	  Fixed some debug messages.
	* flumotion/manager/main.py:
	* flumotion/manager/manager.py:
	* flumotion/manager/component.py:
	  Adapted for new imports.
	* flumotion/test/Makefile.am:
	  Added test_admin_config.py
	* flumotion/test/test_admin_config.py:
	  Moved these tests from test_config.py
	* flumotion/test/test_config.py:
	  Changes for file/import movements, move admin config tests into another
	  file.

2007-12-27  Johan Dahlin  <johan@flumotion.com>

	* flumotion/component/encoders/encodingwizardplugin.py:
	* flumotion/configure/configure.py:
	* flumotion/manager/manager.py:
	Fix a couple of docstrings.

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

	* flumotion/test/test_manager_manager.py:
	* flumotion/test/test_wizard.py:
	  Our testsuite should no longer print messages to Andy, as he's unlikely
	  to do anything about them.

2007-12-27  Johan Dahlin  <johan@flumotion.com>

	* flumotion/admin/rrdmon/config.py (ConfigParser): use fxml.Parser
	instead of common.BaseConfigParser

	* flumotion/common/bundle.py (MergedBundler.getSubBundlers): Move
	makeBundleFromLoadedModules from bundle to registry

	* flumotion/admin/text/view.py (AdminTextView.doRead): Remove
	a particularly evil try/except.

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

	* flumotion/admin/multi.py:
	  Remove private copy of WatchedDict, use one in common.
	* flumotion/common/watched.py:
	  Make a WatchedDict here too.

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

	* flumotion/component/bouncers/htpasswdcrypt.py:
	* flumotion/component/bouncers/icalbouncer.py:
	* flumotion/component/bouncers/saltsha256.py:
	  Don't import common.config, directly import errors and use ConfigError
	  from there.
	* flumotion/component/component.py:
	* flumotion/component/consumers/httpstreamer/http.py:
	* flumotion/job/job.py:
	* flumotion/manager/manager.py:
	* flumotion/manager/worker.py:
	* flumotion/worker/config.py:
	* flumotion/worker/worker.py:
	  Remove unused imports.

2007-12-26  Johan Dahlin  <johan@flumotion.com>

	* flumotion/*.py: Some simple low-hanging fruit cases of except:
	removed, part of bug #791

	* flumotion/ui/wizard.py (_WalkableStack.skip_to): Cleanup, use
	enumerate instead of range+len+getitem.

2007-12-24  Johan Dahlin  <johan@flumotion.com>

	* po/sv.po: Avoid mnemonic conflict for menubar items

2007-12-21  Johan Dahlin  <johan@flumotion.com>

	* flumotion/admin/admin/main.py (__version__):
	* flumotion/admin/command/main.py (__version__):
	* flumotion/admin/text/main.py (__version__):
	Remove pyflakes hacks, since it breaks pychecker

	* flumotion/twisted/Makefile.am:
	* flumotion/twisted/rtsp.py:
	* po/POTFILES.in:

	Remove flumotion.twisted.http and import twisted.web.http directly,
	since we're requiring twisted 2.0 anyway.

2007-12-21  Johan Dahlin  <johan@flumotion.com>

	* flumotion/admin/*: Make pyflakes clean

	* flumotion/component/encoders/encodingprofile.py (Int.__init__):
	Don't use **kwargs to make pychecker happy

	* flumotion/ui/icons.py (register_icons): Refactor the icon registration
	to be generic and explicit. Register stock icons for all moods, to be
	used by the admin client.

	* flumotion/ui/simplewizard.py (SimpleWizard.__init__): Forgot to
	commit which should have been a part of the fix for rev 6014

	* flumotion/component/encoders/*:

	Add encoding profiles and encoding wizard plugins,
	part of bug 812.

2007-12-21  Johan Dahlin  <johan@flumotion.com>

	* flumotion/admin/text/connection.py (connected): Remove e,
	should make pychecker happy.

	* flumotion/admin/text/view.py:
	Make sure it works again after some things got moved around

	* flumotion/admin/connections.py (RecentConnection.__init__):
	set the name attribute which is used by the text client

	* flumotion/admin/text/greeter.py (AdminTextGreeter.connectionLost):
	Implement a stub here, it might be called if an error happens very early on

	* flumotion/admin/text/connection.py (connected):
	Add some tracebacks helper, to print clean tracebacks instead of curses mangled ones

2007-12-20  Johan Dahlin  <johan@flumotion.com>

	* flumotion/component/effects/volume/admin_gtk.py
	(VolumeAdminGtkNode.volumeSet):
	  Ensure that the scale has an adjustment.
	  This is not a proper solution to a problem that can be when switching
	  components, but it avoids an unexpected segfault in set_value which
	  expects range->adjustment to be non-NULL

	* flumotion/common/registry.py (RegistryDirectory._rebuildNeeded):
	  Remove bogus assert, so FLU_PROJECT_PATH can be set to a directory
	  without registry files. Makes it possible to have a unified environment
	  for running both manager and fgc.

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

	* flumotion/admin/gtk/componentview.py: Make sure unjelliers
	for the componentui are registered.

2007-12-19  Johan Dahlin  <johan@flumotion.com>

	* data/glade/connections.glade:
	* flumotion/admin/gtk/connections.py (Connections):
	Reuse using ObjectList. Add a new column and sorting

	* flumotion/admin/connections.py (RecentConnection): New class,
	use this instead of a dictionary to represent a recently
	used connection

	* flumotion/admin/gtk/greeter.py:
	* flumotion/admin/text/greeter.py:
	Update callsites

	* flumotion/admin/gtk/client.py:
	Update the timestamp after successfully connecting to a manager

	Fixes #810

2007-12-19  Johan Dahlin  <johan@flumotion.com>

	* misc/pycheckerrc (blacklist): Add kiwi and kiwi.ui

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

	* flumotion/admin/command/commands.py:
	  Allow lists in flumotion-command invoke arguments.

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

	* flumotion/manager/manager.py
	(Vishnu._componentStopNoAvatar.stopLost)
	(Vishnu._componentStopWithAvatar):
	* flumotion/common/planet.py
	(ManagerComponentState.clearJobState): Fix #793.

	* flumotion/component/combiners/switch/switch.py
	(Switch.do_check): Check for a sufficiently new switch.

	* flumotion/worker/checks/check.py (checkPlugin): Add crack to
	allow user-defined checks to be run on particular plugin features.

	* flumotion/component/combiners/switch/patternswitch.py
	(PatternEventSwitcher._markers_event_probe): Minor fixes; this one
	is still bitrotten. Not an AP tho.

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

	* flumotion/component/combiners/switch/basicwatchdog.py
	(SingleBasicWatchdog.feedSetInactive)
	(SingleBasicWatchdog.feedSetActive)
	(AVBasicWatchdog.feedSetInactive, AVBasicWatchdog.feedSetActive):
	Use auto_switch().

	* flumotion/component/combiners/switch/switch.py (Switch.init):
	(Switch.create_pipeline): Don't throw away the priority ordering
	of get_logical_feeds() in the feedsByPriority list.
	(Switch.auto_switch): New function, automatically selects the
	highest-priority active feed. Should be used in the watchdogs.

	* flumotion/component/combiners/switch/switch.py (Switch.init):
	Remove self._started state variable -- subclasses should hack this
	in if needed.
	(Switch.configure_pipeline, Switch.install_logical_feed_watches)
	(Switch.feedSetActive, Switch.feedSetInactive): Rework to provide
	an activation api in terms of logical feeds instead of eaters, for
	simpler client code.
	(Switch.do_switch): Rename from try_switch(). Always succeed. The
	caller is responsible for ensuring that the feed is active, if
	necessary. Remove some comments fixed by improvements to the
	switch gstreamer element.

	* flumotion/component/component.py (BaseComponent._pollMemory): Be
	less verbose.

	* flumotion/component/combiners/switch/switch.py (Switch.init):
	Remove some unneeded variables.
	(Switch.try_switch): Change to reflect changes in the gst switch
	element.

2007-12-18  Johan Dahlin  <johan@flumotion.com>

	* data/glade/authenticate.glade:
	* flumotion/admin/gtk/connections.py
	(Authenticate.on_passwd_entry_activate):
	Go to the next step of the wizard when pressing enter in the password
	entry.

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

	* flumotion/manager/admin.py:
	  Unserialise PB arguments before passing them to admin action checkers.
	  Use new perspectiveMessageReceivedUnserialised function to avoid
	  double-unserialisation.
	* flumotion/twisted/pb.py:
	  Add perspectiveMessageReceivedUnserialised.

2007-12-18  Johan Dahlin  <johan@flumotion.com>

	* flumotion/test/test_common_signals.py
	(TestSignalMixin.testDisconnectByFunc):
	Add new function, to avoid having to save all signal ids

	* flumotion/common/signals.py (SignalMixin.disconnect_by_func):
	Add tests for disconnect_by_func

	* flumotion/admin/gtk/client.py (AdminClientWindow._clear_admin):
	Simplify reactor shutdown, do the right thing<tm> by disconnecting
	all admin callbacks before shutting down

2007-12-17  Johan Dahlin  <johan@flumotion.com>

	* flumotion/common/options.py: Unconditionally disable GOption, since
	it doesn't work to launch a manager + worker yet.
	(GOptionOptionParserClass): Fix import.

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

	* flumotion/component/combiners/switch/switch.py
	(Switch.try_switch): Drastically simplify, requiring the new
	switch from gst-plugins-bad.
	(withlock, collect_single_shot_buffer_probe): Throw our treasures
	into the deep, to one day be found by an unwitting aqualunged
	diver.

	* conf/managers/default/flows/switch-av.xml: Change to have two
	flows that will actually have the same caps. Different caps will
	bork most all encoders.

2007-12-17  Sebastien Merle  <sebastien@fluendo.com>

	* flumotion.spec.in:
	Fixes the build dependency declaration for kiwi.

2007-12-17  Johan Dahlin  <johan@flumotion.com>

	* flumotion/ui/simplewizard.py (SimpleWizard.on_finished):
	Workaround gtk+ bug #56070

	* flumotion/component/consumers/httpstreamer/resources.py
	(HTTPStreamingResource.getMaxAllowedClients):
	Fix indentation.

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

	* flumotion/component/consumers/httpstreamer/resources.py:
	  Log when we set the maximum fd # because of a python 2.4.3 bug.

2007-12-10  Johan Dahlin  <johan@flumotion.com>

	* flumotion/admin/gtk/client.py (AdminClientWindow._close): Call
	reactor.iterate after shutting down the reactor to make sure that
	the progress dialog is not flashing when shutting down the admin
	client in a normal way.

2007-12-07  Johan Dahlin  <johan@flumotion.com>

	* flumotion/component/encoders/theora/theora.py
	(Theora.checkCallback): inline defered callback
	(Theora.configure_pipeline): avoid duplication and
	improve readability.

2007-12-06  Johan Dahlin  <johan@flumotion.com>

	* flumotion/component/producers/videotest/admin_gtk.py:
	Remove unused imports and update to use FCProxyComboBox.

2007-12-05  Johan Dahlin  <johan@flumotion.com>

	* po/sv.po: Update swedish translation

	* flumotion/admin/gtk/client.py
	(AdminClientWindow._show_connection_lost_dialog):
	Use ProgressDialog instead of a MessageDialog, fixes #790

2007-12-05  Johan Dahlin  <johan@flumotion.com>

	* flumotion/admin/gtk/client.py
	(AdminClientWindow._connection_lost):
	Brain-o. Don't call boolean state, just check if it's set.

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

	* flumotion/component/component.py:
	  Add uiState keys, and code to update them:
	  	- virtual-size (virtual memory usage in bytes)
		- start-time
		- current-time (these two for uptime reporting)
	  This will all be used by the component tab when it gets added.

2007-12-05  Johan Dahlin  <johan@flumotion.com>

	* flumotion/admin/gtk/componentview.py (ComponentView):
	Mark attributes and methods as private,
	(NodeBook.render): Simplify and refactor label creation.

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

	* flumotion/component/component.py:
	  When time.clock() wraps around, make sure we've already updated the
	  measurements, so that the next polling interval will give us a useful
	  answer.

2007-12-05  Johan Dahlin  <johan@flumotion.com>

	* data/glade/admin.glade:
	Add an etched in shadow border around the components view

	* flumotion/admin/gtk/main.py (failure):
	Trap WizardCancelled here.
	Clear up addCallbacks() confusion.
	Add a fallback exception handler which prints out the error
	to stderr. Move default greeter creation to inside
	startAdminFromGreeter, delay gtk initialization a bit more.

2007-12-05  Pedro Gracia  <pedro@flumotion.com>

	* po/es.po:
	More strings translated.

2007-12-05  Johan Dahlin  <johan@flumotion.com>

	* po/sv.po: Update swedish translation

	* po/POTFILES.in: Add more glade files

	* po/sv.po: Update swedish translation

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

	* flumotion/manager/manager.py:
	  When overwriting a (non-running) component, delete the old one first.

2007-12-05  Johan Dahlin  <johan@flumotion.com>

	* flumotion/component/producers/looper/admin_gtk.py
	(FileInfo.set_audio): Call set_text instead of set_markup.

	* flumotion/ui/glade.py:
	Monkey patch _open_glade and remove LibgladeWidgeTree monkey patch.
	Which allows you to specify a path instead of a resource string.

	* flumotion/component/producers/looper/flufileinfo.glade:
	Hide the window by default.
	* flumotion/component/producers/looper/looper.glade:
	Rename the main window to window1 for consistency

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

	* flumotion/manager/component.py:
	  Make a message a little more explicit when a stale config logs in.
	* flumotion/manager/manager.py:
	  Allow overwriting configuration for non-running components, as the code
	  appears to have intended to do.

2007-12-05  Johan Dahlin  <johan@flumotion.com>

	* flumotion/component/producers/looper/looper.glade: Remove () here
	too.

	* flumotion/wizard/configurationwizard.py
	(ConfigurationWizard.destroy): set self._admin to None instead of
	deleting it, the gc will collect the old instance.
	Avoids a race when shutting down the wizard with pending worker jobs.

	* flumotion/admin/gtk/connections.py:
	* flumotion/admin/gtk/dialogs.py:
	* flumotion/admin/gtk/parts.py:
	* flumotion/test/test_common_pygobject.py:
	* flumotion/tester/httpclient.py:
	* flumotion/ui/sidebar.py:
	* flumotion/ui/wizard.py:
	* flumotion/wizard/worker.py:
	* tests/videotest.py:
	We're depending on PyGTK 2.8 now, so use gobject.type_register()
	directly. It won't print out silly deprecation warnings any longer.

2007-12-05  Johan Dahlin  <johan@flumotion.com>

	* flumotion/admin/gtk/message.py (MessagesView.__init__): Add
	an etched in border around the message view.

	* flumotion/admin/gtk/client.py:
	* flumotion/admin/gtk/main.py (main):
	Rename Window to AdminClientWindow.
	Delay ui imports until they're actually used, in an attempt to
	make --help and command line parsing faster.

	* data/glade/Makefile.am:
	* data/glade/spyglass.glade:
	* flumotion/admin/gtk/Makefile.am:
	* flumotion/admin/gtk/spyglass.py:
	* po/POTFILES.in:
	Remove spyglass, it's been bitrotten since 0.10.

2007-12-05  Johan Dahlin  <johan@flumotion.com>

	* flumotion/test/test_greeter.py:
	Update imports after moving simplewizard

	* flumotion/admin/gtk/client.py:
	* flumotion/admin/gtk/greeter.py:
	* flumotion/admin/gtk/wizard.py:
	* flumotion/ui/simplewizard.py:
	Rename wizard to simplewizard to avoid confusion with the sectionwizard
	and move it to flumotion/ui.

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

	* flumotion/component/combiners/switch/switch.py
	(Switch.configure_pipeline): More debug.
	(Switch.try_switch.set_switching): More debug.
	(Switch.try_switch.set_blocked): Block and unblock all pads.
	(AVSwitch.get_pipeline_string): Fix pipeline.

	* conf/managers/default/flows/switch-simple.xml:
	* conf/managers/default/flows/switch-av.xml: Add switch example
	configs.

2007-12-05  Johan Dahlin  <johan@flumotion.com>

	* flumotion/admin/gtk/client.py:
	Clean up imports

	* flumotion/admin/gtk/client.py (Window):
	Do not show the connection lost dialog when shutting
	down the application normally.

	* flumotion/wizard/basesteps.py (OverlayStep.setup): Set
	the default text here to workaround ProxyEntry bug.

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

	* flumotion/admin/gtk/client.py:
	  Don't use automated pretty-printer, didn't output very nicely.
	* flumotion/common/fxml.py:
	  Make the sxml outputter pretty-print in a nice custom way.
	  Fixes #801

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

	* flumotion/component/combiners/switch/switch.py
	(Switch.do_check): Require new switch to avoid locking badness.

2007-12-04  Johan Dahlin  <johan@flumotion.com>

	* flumotion/*.py:
	Move __version__ from the end of the file to
	the beginning, just after the license header

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

	* flumotion/admin/command/commands.py:
	  Add 'workerremoteinvoke' to invoke a pb method, mirroring invoke
	  for components and managerinvoke.
	* flumotion/common/debug.py:
	  Add a getVersions() method that traverses sys.modules, and for all
	  flumotion modules with __version__ info, packages up that info and
	  returns it.
	* flumotion/component/component.py:
	* flumotion/manager/admin.py:
	* flumotion/worker/medium.py:
	  Provide PB method to get versions via debug.getVersions() in components,
	  managers, workers.

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

	* flumotion/admin/gtk/client.py (Window._component_kill):
	* flumotion/admin/gtk/parts.py (ComponentMenu.__init__): Add "kill
	job" to component right-click menu.

	* flumotion/component/feedcomponent.py
	(MultiInputParseLaunchComponent.get_pipeline_string): Put the
	muxer string at the end so that even if there are elements after
	the muxer element, a default ! @feeder:default@ will work.

	* flumotion/component/combiners/switch/switch.py
	(Switch.do_setup, Switch.create_pipeline): Fix some bugaboos.
	(Switch.configure_pipeline.getDownstreamElement): Element.pads is
	a function, not an attribute. Ghetto!
	(Switch.try_switch.set_switching): Return True on success.
	(Switch.try_switch.set_stop_time): Only update stop-value when it
	is not CLOCK_TIME_NONE.
	(Switch.try_switch.switch): Hrm, turns out active-pad is a string
	property, not an object property. Whoops!

	* flumotion/common/gstreamer.py (verbose_deep_notify_cb): %r
	instead of %s.

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

	* 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/componentview.py:
	* flumotion/admin/gtk/connections.py:
	* flumotion/admin/gtk/dialogs.py:
	* flumotion/admin/gtk/greeter.py:
	* flumotion/admin/gtk/main.py:
	* flumotion/admin/gtk/message.py:
	* flumotion/admin/gtk/parts.py:
	* flumotion/admin/gtk/spyglass.py:
	* flumotion/admin/gtk/wizard.py:
	* flumotion/admin/multi.py:
	* flumotion/admin/rrdmon/__init__.py:
	* flumotion/admin/rrdmon/config.py:
	* flumotion/admin/rrdmon/main.py:
	* flumotion/admin/rrdmon/rrdmon.py:
	* flumotion/admin/text/__init__.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/avltree.py:
	* flumotion/common/boot.py:
	* flumotion/common/bundle.py:
	* flumotion/common/bundleclient.py:
	* flumotion/common/common.py:
	* flumotion/common/componentui.py:
	* flumotion/common/config.py:
	* flumotion/common/connection.py:
	* flumotion/common/dag.py:
	* flumotion/common/debug.py:
	* flumotion/common/enum.py:
	* flumotion/common/errors.py:
	* flumotion/common/fxml.py:
	* flumotion/common/gstreamer.py:
	* flumotion/common/identity.py:
	* flumotion/common/interfaces.py:
	* flumotion/common/keycards.py:
	* flumotion/common/log.py:
	* flumotion/common/manhole.py:
	* flumotion/common/medium.py:
	* flumotion/common/messages.py:
	* flumotion/common/netutils.py:
	* flumotion/common/options.py:
	* flumotion/common/package.py:
	* flumotion/common/planet.py:
	* flumotion/common/pygobject.py:
	* flumotion/common/python.py:
	* flumotion/common/reflectcall.py:
	* flumotion/common/registry.py:
	* flumotion/common/reload.py:
	* flumotion/common/server.py:
	* flumotion/common/setup.py:
	* flumotion/common/signals.py:
	* flumotion/common/startset.py:
	* flumotion/common/testsuite.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/base/http.py:
	* flumotion/component/base/scheduler.py:
	* flumotion/component/base/watcher.py:
	* flumotion/component/bouncers/__init__.py:
	* flumotion/component/bouncers/admin_gtk.py:
	* flumotion/component/bouncers/bouncer.py:
	* flumotion/component/bouncers/component.py:
	* flumotion/component/bouncers/htpasswdcrypt.py:
	* flumotion/component/bouncers/icalbouncer.py:
	* flumotion/component/bouncers/ipbouncer.py:
	* flumotion/component/bouncers/plug.py:
	* flumotion/component/bouncers/saltsha256.py:
	* flumotion/component/bouncers/tokentest.py:
	* flumotion/component/bouncers/tokentestbouncer.py:
	* flumotion/component/combiners/__init__.py:
	* flumotion/component/combiners/composite/__init__.py:
	* flumotion/component/combiners/composite/composite.py:
	* flumotion/component/combiners/switch/__init__.py:
	* flumotion/component/combiners/switch/admin_gtk.py:
	* flumotion/component/combiners/switch/basicwatchdog.py:
	* flumotion/component/combiners/switch/patternswitch.py:
	* flumotion/component/combiners/switch/switch.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/disker/disker_plug.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/consumers/shout2/__init__.py:
	* flumotion/component/consumers/shout2/shout2.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/eater.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/vorbisutils.py:
	* flumotion/component/feed.py:
	* flumotion/component/feedcomponent.py:
	* flumotion/component/feedcomponent010.py:
	* flumotion/component/feeder.py:
	* flumotion/component/misc/__init__.py:
	* flumotion/component/misc/httpfile/__init__.py:
	* flumotion/component/misc/httpfile/admin_gtk.py:
	* flumotion/component/misc/httpfile/file.py:
	* flumotion/component/misc/httpfile/httpfile.py:
	* flumotion/component/misc/porter/__init__.py:
	* flumotion/component/misc/porter/porter.py:
	* flumotion/component/misc/porter/porterclient.py:
	* flumotion/component/misc/repeater/__init__.py:
	* flumotion/component/misc/repeater/repeater.py:
	* flumotion/component/muxers/__init__.py:
	* flumotion/component/muxers/checks.py:
	* flumotion/component/muxers/multipart.py:
	* flumotion/component/muxers/ogg.py:
	* flumotion/component/padmonitor.py:
	* flumotion/component/plugs/__init__.py:
	* flumotion/component/plugs/adminaction.py:
	* flumotion/component/plugs/base.py:
	* flumotion/component/plugs/identity.py:
	* flumotion/component/plugs/lifecycle.py:
	* flumotion/component/plugs/loggers.py:
	* flumotion/component/plugs/manhole.py:
	* flumotion/component/plugs/streamdata.py:
	* flumotion/component/producers/__init__.py:
	* flumotion/component/producers/audiotest/__init__.py:
	* flumotion/component/producers/audiotest/admin_gtk.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/checks.py:
	* flumotion/component/producers/firewire/__init__.py:
	* flumotion/component/producers/firewire/admin_gtk.py:
	* flumotion/component/producers/firewire/firewire.py:
	* flumotion/component/producers/gdp/__init__.py:
	* flumotion/component/producers/gdp/gdp.py:
	* flumotion/component/producers/icecast/__init__.py:
	* flumotion/component/producers/icecast/icecast.py:
	* flumotion/component/producers/ivtv/__init__.py:
	* flumotion/component/producers/ivtv/ivtv.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/playlist/__init__.py:
	* flumotion/component/producers/playlist/playlist.py:
	* flumotion/component/producers/playlist/playlistparser.py:
	* flumotion/component/producers/playlist/singledecodebin.py:
	* flumotion/component/producers/playlist/smartscale.py:
	* flumotion/component/producers/rtsp/__init__.py:
	* flumotion/component/producers/rtsp/rtsp.py:
	* flumotion/component/producers/screencast/__init__.py:
	* flumotion/component/producers/screencast/screencast.py:
	* flumotion/component/producers/soundcard/__init__.py:
	* flumotion/component/producers/soundcard/admin_gtk.py:
	* flumotion/component/producers/soundcard/soundcard.py:
	* flumotion/component/producers/unixdomain/__init__.py:
	* flumotion/component/producers/unixdomain/unixdomain.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/extern/__init__.py:
	* flumotion/extern/code.py:
	* flumotion/extern/fdpass/__init__.py:
	* flumotion/extern/log/__init__.py:
	* flumotion/extern/log/log.py:
	* flumotion/extern/log/termcolor.py:
	* flumotion/extern/log/test_log.py:
	* flumotion/extern/pytrayicon/__init__.py:
	* flumotion/extern/pytrayicon/ltihooks.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/launch/parse.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/monitor/__init__.py:
	* flumotion/monitor/nagios/__init__.py:
	* flumotion/monitor/nagios/main.py:
	* flumotion/monitor/nagios/util.py:
	* flumotion/project/__init__.py:
	* flumotion/project/project.py:
	* flumotion/service/__init__.py:
	* flumotion/service/main.py:
	* flumotion/service/service.py:
	* flumotion/test/__init__.py:
	* flumotion/test/bouncertest.py:
	* flumotion/test/comptest.py:
	* flumotion/test/gtkunit.py:
	* flumotion/test/realm.py:
	* flumotion/test/test_admin_admin.py:
	* flumotion/test/test_admin_multi.py:
	* flumotion/test/test_bundle.py:
	* flumotion/test/test_checkers.py:
	* flumotion/test/test_common.py:
	* flumotion/test/test_common_avltree.py:
	* flumotion/test/test_common_componentui.py:
	* flumotion/test/test_common_connection.py:
	* flumotion/test/test_common_gstreamer.py:
	* flumotion/test/test_common_messages.py:
	* flumotion/test/test_common_netutils.py:
	* flumotion/test/test_common_package.py:
	* flumotion/test/test_common_planet.py:
	* flumotion/test/test_common_pygobject.py:
	* flumotion/test/test_common_signals.py:
	* flumotion/test/test_component.py:
	* flumotion/test/test_component_base_scheduler.py:
	* flumotion/test/test_component_base_watcher.py:
	* flumotion/test/test_component_bouncers_bouncer.py:
	* flumotion/test/test_component_bouncers_component.py:
	* flumotion/test/test_component_bouncers_plug.py:
	* flumotion/test/test_component_feed.py:
	* flumotion/test/test_component_feeder.py:
	* flumotion/test/test_component_httpserver.py:
	* flumotion/test/test_component_httpstreamer.py:
	* flumotion/test/test_component_init.py:
	* flumotion/test/test_component_padmonitor.py:
	* flumotion/test/test_component_playlist.py:
	* flumotion/test/test_comptest.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_i18n.py:
	* flumotion/test/test_keycards.py:
	* flumotion/test/test_logfilter.py:
	* flumotion/test/test_manager_admin.py:
	* flumotion/test/test_manager_manager.py:
	* flumotion/test/test_manager_worker.py:
	* flumotion/test/test_misc_httpfile.py:
	* flumotion/test/test_options.py:
	* flumotion/test/test_parts.py:
	* flumotion/test/test_pb.py:
	* flumotion/test/test_pbstream.py:
	* flumotion/test/test_porter.py:
	* flumotion/test/test_public_ui_api.py:
	* flumotion/test/test_reflect.py:
	* flumotion/test/test_registry.py:
	* flumotion/test/test_saltsha256.py:
	* flumotion/test/test_testclasses.py:
	* flumotion/test/test_twisted_integration.py:
	* flumotion/test/test_ui_fgtk.py:
	* flumotion/test/test_wizard.py:
	* flumotion/test/test_wizard_models.py:
	* flumotion/test/test_worker_config.py:
	* flumotion/test/test_worker_job.py:
	* flumotion/test/test_worker_medium.py:
	* flumotion/test/test_worker_worker.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/compat.py:
	* flumotion/twisted/credentials.py:
	* flumotion/twisted/defer.py:
	* flumotion/twisted/fdserver.py:
	* flumotion/twisted/flavors.py:
	* flumotion/twisted/http.py:
	* flumotion/twisted/integration.py:
	* flumotion/twisted/pb.py:
	* flumotion/twisted/portal.py:
	* flumotion/twisted/reflect.py:
	* flumotion/twisted/rtsp.py:
	* flumotion/ui/__init__.py:
	* flumotion/ui/fgtk.py:
	* flumotion/ui/fvumeter.py:
	* flumotion/ui/glade.py:
	* flumotion/ui/icons.py:
	* flumotion/ui/sidebar.py:
	* flumotion/ui/trayicon.py:
	* flumotion/ui/url.py:
	* flumotion/ui/wizard.py:
	* flumotion/wizard/__init__.py:
	* flumotion/wizard/basesteps.py:
	* flumotion/wizard/configurationwizard.py:
	* flumotion/wizard/consumptionsteps.py:
	* flumotion/wizard/conversionsteps.py:
	* flumotion/wizard/enums.py:
	* flumotion/wizard/models.py:
	* flumotion/wizard/productionsteps.py:
	* flumotion/wizard/save.py:
	* flumotion/wizard/worker.py:
	* flumotion/worker/__init__.py:
	* flumotion/worker/base.py:
	* flumotion/worker/checks/__init__.py:
	* flumotion/worker/checks/audio.py:
	* flumotion/worker/checks/check.py:
	* flumotion/worker/checks/encoder.py:
	* flumotion/worker/checks/gst010.py:
	* flumotion/worker/checks/video.py:
	* flumotion/worker/config.py:
	* flumotion/worker/feedserver.py:
	* flumotion/worker/job.py:
	* flumotion/worker/main.py:
	* flumotion/worker/medium.py:
	* flumotion/worker/worker.py:
	  For all python code:
	    - add __version__ = "$Rev$"
	    - set svn:keywords to substitute $Rev$

2007-12-04  Johan Dahlin  <johan@flumotion.com>

	Revert commit:

	* data/glade/wizard_consumption.glade:
	* data/glade/wizard_encoding.glade:
	* data/glade/wizard_license.glade:
	* data/glade/wizard_overlay.glade:
	* data/glade/wizard_soundcard.glade:
	* data/glade/wizard_source.glade:
	* data/glade/wizard_tvcard.glade:
	Remove signals which are connected automatically by Kiwi.

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

	* flumotion/component/combiners/switch/switch.py
	(collect_single_shot_buffer_probe): New helper, runs a function on
	one buffer from all pads, firing a deferred in the main thread
	when all values are collected.
	(SwitchMedium.remote_switchTo): New remote method.
	(ICalSwitchPlug, Switch.do_setup): Factor ICal stuff out into a
	plug, which currently is not exported as such, but in the future
	could be.
	(Switch.init): Rework the state of the switcher, and document it.
	Going back to the idealEater formulation that Zaheer had. Removed
	lock, unnecessary as all switch code happens in the main thread.
	(Switch.clearWarning): New helper.
	(Switch.is_active): Less evil.
	(Switch.eaterSetActive): Don't muck with a dict of deferreds; the
	idea is just to retry switching as necessary.
	(Switch.switch_to): Rework to set the idealEater and then call
	try_switch().
	(Switch.try_switch): Put prepare() and finish() code inside, which
	I hope is more readable. The diff sucks tho.

2007-12-04  Johan Dahlin  <johan@flumotion.com>

	* data/glade/wizard_consumption.glade:
	* data/glade/wizard_encoding.glade:
	* data/glade/wizard_license.glade:
	* data/glade/wizard_overlay.glade:
	* data/glade/wizard_soundcard.glade:
	* data/glade/wizard_source.glade:
	* data/glade/wizard_tvcard.glade:
	Remove signals which are connected automatically by Kiwi.

2007-12-04  Johan Dahlin  <johan@flumotion.com>

	* flumotion/ui/glade.py (FluLibgladeWidgetTree.get_sizegroups): Add a
	kiwi monkey patch for the libglade loader
	(GladeBacked.__init__): Port over to use the delegate.
	(GladeWindow.destroy): Don't inherit from GObject direcetly the Delegate
	already does that.
	Remove unused modules.

	* data/glade/connection-dialog.glade: Rename the dialog to window1 too,
	for consistency

	* flumotion/wizard/save.py (WizardSaver._set_fraction_property): Catch
	ValueError, fixes the webcam step.

	* data/glade/admin-wizard.glade:
	* data/glade/authenticate.glade:
	* data/glade/greeter-authenticate.glade:
	* data/glade/wizard.glade:
	Call the toplevel names window1, for consistency

	* flumotion/ui/glade.py: Remove unused import.
	(GladeWindow.__init__): Remove unused signal connection mechanism.

	* flumotion/ui/wizard.py (SectionWizard.__nonzero__):
	Implement __nonzero__, so if wizard: works as expected.

	* flumotion/component/misc/porter/porterclient.py:
	Avoid a mutable default function argument.

	* flumotion/wizard/save.py (WizardSaver.handleConsumers):
	Link and add muxers after adding consumers, not before.

	* flumotion/wizard/consumptionsteps.py:
	Use a separate signal handler for all three widgets, for consistency.

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

	* flumotion/common/registry.py (RegistryParser.parseRegistryFile)
	(RegistryParser.parseRegistry): Fix code to match intentions, I
	think.

2007-12-03  Johan Dahlin  <johan@flumotion.com>

	* flumotion/common/common.py (argRepr):
	* flumotion/test/test_common.py:
	Kill argRepr and remove tests

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

	* flumotion/common/registry.py:
	  Provide more useful debug output by using filenames where possible
	* flumotion/twisted/pb.py:
	  Log remote calls slightly more correctly.
	* flumotion/test/test_manager_manager.py:
	  Fix one of the skipped tests.

2007-12-03  Johan Dahlin  <johan@flumotion.com>

	* data/glade/admin.glade:
	* data/glade/connection-dialog.glade:
	* data/glade/greeter-authenticate.glade:
	* data/glade/greeter-connect_to_existing.glade:
	* data/glade/greeter-load_connection.glade:
	* data/glade/wizard.glade:
	Remove trailing () so we can avoid eval.

	* flumotion/ui/glade.py (_flumotion_glade_custom_handler):
	Rewrite, use namedAny instead of eval.
	Remove unused methods and mark methods as private.

2007-12-03  Johan Dahlin  <johan@flumotion.com>

	* flumotion/ui/glade.py:
	* flumotion/ui/url.py:
	* flumotion/ui/wizard.py:
	Remove unused imports and make pyflakes happy.

2007-12-03  Johan Dahlin  <johan@flumotion.com>

	* flumotion/ui/wizard.py (SectionWizard._jump_to_step):
	When jumping to the same step don't do anything to
	avoid unnecessary ui flashes

	* flumotion/ui/sidebar.py (SidebarSection.__init__):
	rename steps to buttons

	* po/POTFILES.in: Updae path to sidebar.py

	* data/glade/wizard.glade:
	* flumotion/ui/Makefile.am:
	* flumotion/wizard/Makefile.am:
	* flumotion/wizard/sidebar.py:
	Move sidebar.py from wizard/ to ui/

2007-12-03  Johan Dahlin  <johan@flumotion.com>

	* flumotion/test/test_wizard.py: Remove a bitrotten test case

	* flumotion/ui/wizard.py:
	Refactor and simplify

	* flumotion/wizard/consumptionsteps.py (HTTPStep.__init__):
	set _missing_element to none in the constructor, it happens
	when clicking on the step in the sidebar.

	* flumotion/ui/wizard.py (WizardStep): Remove unused vmethods.

	* flumotion/wizard/conversionsteps.py (ConversionStep):
	avoid duplication

	* data/glade/wizard_theora.glade:
	* data/glade/wizard_vorbis.glade:
	* flumotion/wizard/conversionsteps.py (VorbisStep)
	(TheoraStep): move over values to the glade files.
	(ConversionStep.hasOggmux):

	* po/sv.po: Update swedish translation

	* data/glade/wizard_http.glade: Make it a bit prettier by
	aligning the spinbuttons/entries better and avoid expanding them
	so much.

2007-11-30  Johan Dahlin  <johan@flumotion.com>

	* data/glade/wizard_overlay.glade:
	* flumotion/wizard/basesteps.py (OverlayStep):
	Remove get_state() and widget naming prefix. Rename signals.
	Rename widgets to match their state name, simplify element parts

	* flumotion/wizard/save.py (WizardSaver):
	Refactor overlay saving

	* data/glade/wizard_soundcard.glade:
	* flumotion/wizard/productionstep.py (SoundCardStep):
	Remove get_state() and widget naming prefix. Rename signals.
	Rename widgets to match their state name, simplify element parts

	* data/glade/wizard_encoding.glade:
	* flumotion/wizard/productionstep.py (TVCardStep):
	Remove get_state() and widget naming prefix. Rename signals.
	Add default values to the model

	* flumotion/wizard/save.py:
	Move fraction denomination from the step to the save logic

	* flumotion/test/test_wizard.py (WizardStepTest.testLoadSteps):
	(WizardStepTest.testStepComponentProperties): Enable these, they are
	working on my machine

	* flumotion/ui/fgtk.py:
	Remove all now unused widgets, add SpinButton to the list
	of converted widgets.

	* data/glade/wizard_smoke.glade:
	* flumotion/wizard/conversionsteps.py (SmokeStep):
	Remove get_state() and widget naming prefix.

	* data/glade/wizard_encoding.glade:
	* flumotion/wizard/conversionsteps.py (ConversiontStep):
	Remove get_state() and widget naming prefix. Rename signals.

	* data/glade/wizard_shout2.glade:
	* flumotion/wizard/consumptionsteps.py (Shout2Step):
	Remove get_state() and widget naming prefix. Rename signals.

	* data/glade/wizard_consumption.glade:
	* flumotion/wizard/consumptionsteps.py (ConsumptionStep):
	Remove get_state() and widget naming prefix. Rename signals.

	* data/glade/wizard_source.glade:
	* flumotion/wizard/productionsteps.py (ProductionStep):
	Remove get_state() and widget naming prefix. Rename signals.

	* data/glade/wizard_license.glade:
	* flumotion/wizard/configurationwizard.py:
	(LicenseStep): remove widget naming prefix, the name of the widget
	is the state name

	* flumotion/ui/wizard.py (WizardStep.get_state):
	reimplement using proxy widget state.

	* flumotion/ui/fgtk.py (ProxyWidgetMapping): Add
	radio and entry.

	* flumotion/wizard/conversionsteps.py (JPEGStep.get_state):
	_fraction_from_float, fix typo

	* flumotion/ui/wizard.py (WizardStep): use ProxyWidgetMapping here
	and remove it on all known subclasses.
	* flumotion/wizard/configurationwizard.py
	(LicenseStep): use ProxyWidgetMapping

	* flumotion/wizard/basesteps.py:
	* flumotion/wizard/conversionsteps.py:
	(JPEGStep.get_state):
	Move over the consumption steps to ProxyWidgetMapping

	* flumotion/wizard/conversionsteps.py (ConversionStep):
	Use ProxyWidgetMapping, refactor/simplify video/audio page
	(ConversionStep._get_video_page): Yay for pychecker

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

	* flumotion/component/combiners/switch/switch.py (withlock): New
	helper.
	(Switch.init, Switch._create_scheduler): Change idealEater to
	_switchingToFeed, protected by the switch lock. The switch lock
	just protects data, not code.
	(Switch.create_pipeline, SingleSwitch.get_logical_feeds)
	(AVSwitch.get_logical_feeds): get_logical_feeds returns a list of
	tuples now instead of a dict so that it can be in order of
	preference. Remove some code duplication.
	(Switch._prepare_switch, Switch.switch_to)
	(Switch._finish_switch): Rework switching so that it is the same
	in the single and in the multiple case. Dunno if this is really a
	good idea though. Untested!

2007-11-29  Johan Dahlin  <johan@flumotion.com>

	* flumotion/wizard/basesteps.py:
	* flumotion/wizard/configurationwizard.py:
	Only inherit from WorkerWizardStep when necessary and
	mark worker_list as private.

2007-11-29  Johan Dahlin  <johan@flumotion.com>

	* flumotion/wizard/basesteps.py (AudioEncoderStep.get_next):
	Use ProxyWidgetMapping

	* flumotion/wizard/configurationwizard.py (ConfigurationWizard.before_show_step):
	Only do something interesting in workersteps.

	* flumotion/wizard/consumptionsteps.py:
	Convert to ProxyWidgetMapping,
	avoid inheriting workerstep where not necessary

	* flumotion/wizard/basesteps.py (WorkerWizardStep.run_in_worker):
	* flumotion/wizard/productionsteps.py:
	Move ProxyWidgetMapping to base classes, remove production section
	where it is not necessary to specify it.

	* flumotion/wizard/productionsteps.py:
	(SoundcardStep, TestSourceStep): Use ProxyWidgetMapping
	and refactor away most of the enum usages, avoid catching
	AttributeError it just leads to hard to find bugs.
	(SoundcardStep._update_inputs): Add a message saying what's
	going on when probing soundcard
	(FireWireAudioStep): Use ProxyWidgetMapping, make the both firewire
	steps consistent.

	* flumotion/wizard/enums.py (SoundcardSystem): Remove a couple of
	enum abuses.

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

	* flumotion/component/combiners/switch/switch.py
	(Switch.configure_pipeline): Populate an internal dict,
	switchPads, mapping eater aliases to switch elements and the
	corresponding sink pad. Watch feeds for activity, and set the
	initially active pads on the switch elements.
	(Switch.get_switch_elements, SingleSwitch.get_switch_elements)
	(AVSwitch.get_switch_elements): New vmethod, returns a list of
	switch elements in the pipeline.
	(Switch.switch_to): Put a base implementation here. Will need to
	expand to cover the AVSwitch case.
	(Switch.eaterSetActive, Switch.eaterSetInactive): Debitrotten.
	Fold in common functionality from subclasses.
	(Switch.switch_to_for_event.feed_unavailable): Fix up for name
	changes.
	(SingleSwitch): Simplify, all code is in base class now.
	(AVSwitch.addError): New helper.
	(AVSwitch.do_check): Simplify with use of sets.
	(AVSwitch.init): Store the prop name -> caps prop name mapping on
	the class.
	(AVSwitch.get_pipeline_string): Reflagellate to be more
	entertaining.

	* flumotion/component/padmonitor.py (PadMonitor.addWatch)
	(PadMonitor.addWatch, PadMonitor.setInactive)
	(PadMonitor.__init__): Manage a list of functions that can be
	notified when pads go active or inactive instead of just one pair
	of functions.

	* flumotion/component/eater.py (Eater.addWatch): New API, takes
	two functions, which will be called with the eater alias as an
	argument when an eater goes active or inactive, respectively.

2007-11-29  Johan Dahlin  <johan@flumotion.com>

	* flumotion/wizard/productionsteps.py (FireWireStep):
	Use ProxyWidgetMapping

2007-11-29  Pedro Gracia  <pedro@flumotion.com>

	* po/es.po:
	Spanish 100% again

2007-11-29  Johan Dahlin  <johan@flumotion.com>

	* flumotion/wizard/productionsteps.py (TVCardStep.errRemoteRunError):
	Remove defer_generator_method, add a probing message like the webcam
	component, clear the combos when a device is not found.
	(TVCardStep): use ProxyWidgetMapping
	(FireWireStep): Use ProxyWidgetMapping

	* configure.ac: kiwi not found, not kiwi found when kiwi is not found.

	* flumotion/wizard/productionsteps.py
	(WebcamStep.on_combobox_size_changed): Set the height to the height
	of the selected size and not the width!
	(WebcamStep._run_checks): Catch RemoteRunError and make it impossible
	to select the device when it does not exist.
	(TestVideoSourceStep, WebcamStep): use ProxyWidgetMapping
	(WebcamStep._run_checks): get_string->get_selected, forgot to merge this
	change from my rejected patch, grr.

2007-11-28  Pedro Gracia  <pedro@flumotion.com>

	* flumotion/admin/gtk/client.py:
	Pretty print in XML export - fixes #801

2007-11-28  Johan Dahlin  <johan@flumotion.com>

	* flumotion/wizard/basesteps.py:
	* flumotion/wizard/configurationwizard.py:
	* flumotion/wizard/consumptionsteps.py:
	* flumotion/wizard/conversionsteps.py:
	* flumotion/wizard/productionsteps.py:
	* flumotion/wizard/save.py:
	* flumotion/wizard/worker.py:
	Mark strings visible in the user interface as translatable.

	* po/ca.po:
	* po/de.po:
	* po/es.po:
	* po/fr.po:
	* po/nl.po:
	* po/no.po:
	* po/pt_BR.po:
	* po/sv.po:
	Update translation files and update swedish translation.

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

	* flumotion/component/combiners/switch/switch.py: Shorten logging
	categories.
	(Switch.logicalFeeds, Switch.create_pipeline)
	(Switch.get_logical_feeds, SingleSwitch.get_logical_feeds)
	(AVSwitch.get_logical_feeds): There are only three important
	numbers in computer science: 0, 1, and N. We have passed one.
	(Switch.addWarning, Switch._create_scheduler, Switch.is_active)
	(Switch.switch_to_for_event, SingleSwitch.switch_to): More
	flagellation.

2007-11-28  Johan Dahlin  <johan@flumotion.com>

	* README:
	* configure.ac:
	* flumotion.spec.in:
	* flumotion/common/boot.py:
	Add a dependency on Kiwi 1.9.13

	* flumotion/ui/fgtk.py:
	Add a ProxyWidgetMapping and a custom subclass of the
	proxy that can handle flumotion enums

	* flumotion/wizard/productionsteps.py:
	Use proxy comboboxes in the source step

2007-11-28  Pedro Gracia  <pedro@flumotion.com>

	* po/es.po: 100% traslated 100% to spanish

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

	* flumotion/component/combiners/switch/switch.py: Rework imports.
	(Switch._create_scheduler.addWarning, Switch.do_check)
	(Switch.do_setup): Reflaggelate some setup code.

	* configure.ac: Back to dev?

2007-11-28  Pedro Gracia  <pedro@flumotion.com>

	* po/es.po: updated spanish translation again

2007-11-28  Johan Dahlin  <johan@flumotion.com>

	* configure.ac:
	* flumotion/common/boot.py:
	* flumotion/common/pygobject.py:

	Require PyGTK 2.8.4 and Twisted 2.0.1
	Remove PyGTK 2.6 comaptibility

	* README:
	Document the new requirements

2007-11-28  Johan Dahlin  <johan@flumotion.com>

	* flumotion/ui/fvumeter.py:
	* flumotion/ui/fgtk.py:
	Fixup imports in these two files, oops.

	* flumotion/component/effects/volume/admin_gtk.py:
	* flumotion/test/test_ui_fgtk.py:
	* flumotion/ui/Makefile.am:
	* flumotion/ui/fgtk.py:
	* flumotion/ui/fvumeter.py:

	Move FVUMeter out of fgtk.py to a separate file, update callsites.

2007-11-28  Johan Dahlin  <johan@flumotion.com>

	* flumotion/ui/fgtk.py (FComboBox._get_column_content): Mark as private
	(FComboBox.__len__) Remove,
	Reorganize method order

	* data/glade/videotest.glade:
	* data/glade/wizard_audiotest.glade:
	* data/glade/wizard_disk.glade:
	* data/glade/wizard_firewire.glade:
	* data/glade/wizard_license.glade:
	* data/glade/wizard_soundcard.glade:
	* data/glade/wizard_source.glade:
	* data/glade/wizard_testsource.glade:
	* data/glade/wizard_tvcard.glade:
	* data/glade/wizard_webcam.glade:
	Remove all static ComboBox item strings, they are overwritten by the
	enums later anyway.

	* flumotion/common/enum.py:
	* flumotion/wizard/enums.py:
	Mark strings that should be translatable as such.
	Use lists instead of tuples for elements of the same kind,
	reorganize to make it a bit more readable

	* po/sv.po:
	Update swedish translation

2007-11-28  Johan Dahlin  <johan@flumotion.com>

	* 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_shout2.glade:
	* data/glade/wizard_smoke.glade:
	* data/glade/wizard_soundcard.glade:
	* data/glade/wizard_source.glade:
	* data/glade/wizard_testsource.glade:
	Set label/checkbutton alignments, table width,
	do not expand port spinbuttons

	* po/sv.po: Update swedish translation

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

	* flumotion/component/combiners/switch/switch.py:
	  First steps towards making switch work again (it still doesn't work, but
	  some bits are cleaned up?)

2007-11-28  Johan Dahlin  <johan@flumotion.com>

	* flumotion/wizard/productionsteps.py (WebcamStep._run_checks.errback):
	Get rid of a defer generator method

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

	* flumotion.doap: Update for release.

	* configure.ac: Back to dev, again

=== release 0.5.1 ===

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

	* NEWS:
	* RELEASE:
	* configure.ac: Retag as 0.5.1 to change release name

	* configure.ac: Back to de

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

	* NEWS:
	* RELEASE:
	* configure.ac: Update for release

	* po/*.po: For some reason svn wants me to commit these.

2007-11-27  Johan Dahlin  <johan@flumotion.com>

	* flumotion/admin/gtk/client.py:
	Test all reload code and avoid throwing errors

2007-11-27  Johan Dahlin  <johan@flumotion.com>

	* flumotion/component/base/admin_gtk.py (FeedersAdminGtkNode.setUIState):
	Check if selection is not None, fixes a startup race.

	* data/glade/authenticate.glade: Avoid aligments,
	label alignment fix and add trailing :

	* data/glade/open-connection.glade: Avoid alignments where
	not necessary, shrink the size of the port entry, align the
	labels to the right, add trailing : to their labels, and
	put the radiobutton in alignment with the entries, not the
	labels.

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

	* flumotion/component/plugs/lifecycle.py:
	* flumotion/component/plugs/plugs.xml:
	  Add component lifecycle plug (and sample implementation) mirroring the
	  manager lifecycle plug.
	* flumotion/component/consumers/httpstreamer/http.xml:
	* flumotion/component/misc/httpfile/httpfile.xml:
	  Add socket for lifecycle plug to both streamers.

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

	* flumotion/test/test_config.py:
	* flumotion/test/test_registry.py:
	  Fix tests to provide base attribute now that the parser checks for it.

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

	* flumotion/common/registry.py:
	  Make 'base' on components required (it is present on all of them
	  currently, and should be required.
	  Comment out 'inherit' handling; it's unreachable ('inherit' is not an
	  optional attribute in the parser) and needs redesigning anyway.

2007-11-26  Johan Dahlin  <johan@flumotion.com>

	* po/LINGUAS: Add swedish here

	* po/sv.po: Fix errors and update translation

	* flumotion/admin/gtk/wizard.py:
	(Wizard.__init__): Don't put state in the class, we have more
	than one subclass of the wizard and we really want the steps
	to be specific to instances, really.

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

	* flumotion/admin/gtk/client.py:
	* flumotion/admin/gtk/wizard.py:
	* flumotion/admin/text/view.py:
	* flumotion/common/bundleclient.py:
	* flumotion/common/keycards.py:
	* flumotion/common/netutils.py:
	* flumotion/common/registry.py:
	* flumotion/common/testsuite.py:
	* flumotion/component/base/admin_gtk.py:
	* flumotion/component/base/watcher.py:
	* flumotion/component/consumers/httpstreamer/resources.py:
	* flumotion/component/feedcomponent.py:
	* flumotion/component/feedcomponent010.py:
	* flumotion/component/misc/httpfile/file.py:
	* flumotion/extern/log/log.py:
	* flumotion/manager/component.py:
	* flumotion/manager/manager.py:
	* flumotion/twisted/pb.py:
	* flumotion/twisted/portal.py:
	* flumotion/twisted/rtsp.py:
	* flumotion/ui/glade.py:
	* flumotion/worker/base.py:
	* flumotion/worker/medium.py:
	* flumotion/worker/worker.py:
	  Documentation fixes to produce fewer epydoc warnings.

2007-11-26  Johan Dahlin  <johan@flumotion.com>

	* flumotion/admin/gtk/client.py:
	* flumotion/admin/gtk/wizard.py:
	Handle WizardCancelled for the ConnectionDialog

2007-11-26  Johan Dahlin  <johan@flumotion.com>

	* data/glade/connection-dialog.glade:
	* flumotion/admin/gtk/connections.py (ConnectionsDialog):
	Don't connect ::delete-event directly to self.destroy(),
	create a separate function which calls it in instead

	* po/sv.po: Add swedish translation

	* flumotion/wizard/productionsteps.py
	(FireWireAudioStep.on_update_output_format)
	(FireWireStep.on_update_output_format): width_corrections is not
	private a class variable.
	(SoundcardStep): Some methods are private now.
	(SoundcardStep._update_inputs): Add an errback which clears the combos
	and prevents the user from going forward, fixes #803

2007-11-26  Pedro Gracia  <pedro@flumotion.com>

	* po/es.po: Spanish translation updated.

2007-11-26  Johan Dahlin  <johan@flumotion.com>

	* flumotion/admin/gtk/greeter.py: Remove unused imports

2007-11-23  Johan Dahlin  <johan@flumotion.com>

	* data/glade/Makefile.am (glade_DATA): Add videotest.glade
	(glade_DATA): add spyglass.glade

	* flumotion/admin/gtk/Makefile.am (component_PYTHON): Add spyglass.py

	* flumotion/admin/text/Makefile.am (component_PYTHON): Add admin_text.py

	* flumotion/test/Makefile.am (EXTRA_DIST): Add all python files.

	* flumotion/extern/pytrayicon/Makefile.am (flumotion_PYTHON):
	Add ltihooks.py

	* po/POTFILES.in:
	* flumotion/component/producers/jukebox: Remove all traces of the
	jukebox component

	* flumotion/twisted/fdserver.py:
	use map() instead of a string to workaround gettext encoding problems.

	* po/POTFILES.in: Add all glade files and python files here.

	* po/*.po: Update

2007-11-22  Johan Dahlin  <johan@flumotion.com>

	* flumotion/admin/gtk/connections.py (Connections.__init__):
	use scroll_to_cell instead of set_cursor, to actually go to the select
	the connection used the last time.

	* flumotion/wizard/conversionsteps.py (TheoraStep.worker_changed)
	(VorbisStep.worker_changed.hasVorbis, ConversionStep._verify):
	Get rid of defer_generator_method.

	* flumotion/wizard/basesteps.py:
	(OverlayStep._worker_changed.importError): Get rid
	of defer_generator_method.

2007-11-22  Thomas Vander Stichele  <thomas at apestaart dot org>

	* doc/redhat/flumotion:
	  Make a better condrestart for the case where you restart only one
	  specific manager/worker.

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

	* flumotion/common/registry.py (READ_CACHE)
	(ComponentRegistry.__init__): Don't read the cache on startup, so
	as not to cause a memory usage spike. See #799.

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

	* flumotion/common/config.py:
	  Serialise fractions correctly.
	* flumotion/manager/admin.py:
	  Verify the registry when loading a new configuration, so that new
	  or changed components can be loaded successfully.

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

	* flumotion/wizard/save.py:
	  Don't use the registry here; it's the only thing in the admin that
	  does, and it's slow and memory-hungry. The bugs we were using this
	  to detect haven't existed in a couple of years.

2007-11-21  Johan Dahlin  <johan@flumotion.com>

	* data/glade/wizard_consumption.glade:
	Set inconsistent to false for checkbutton_shout2_audio_video

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

	* flumotion/common/package.py (Packager.getPathsForPackage):
	Style.
	(Packager.registerPackagePath): Style, and a couple of checks that
	we don't pass files to dir-walking functions. Potentially one of
	the checks is redundant, but this function is so sucky that I
	cannot be arsed to refactor.
	(_listDirRecursively): Rework to require a directory, and to not
	recurse into .svn directories. Reduces the IO load when running
	uninstalled.

	* flumotion/common/bundle.py (BundledFile.__init__)
	(BundledFile.hasChanged, BundledFile.pack, Bundler.bundle)
	(Bundler._buildzip, BundlerBasket.add, BundlerBasket.add)
	(BundlerBasket.add): Don't stat and md5sum files as they are
	registered, rather, only as they are zipped up. Saves I/O costs on
	startup, and over the long term because normally we only serve a
	fraction of bundles.

2007-11-21  Johan Dahlin  <johan@flumotion.com>

	* data/glade/wizard_consumption.glade: Revert the defaults to
	False for all video only/audio only consumptions.

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

	* doc/redhat/flumotion:
	* flumotion/service/main.py:
	* flumotion/service/service.py:
	  Forward-port of platform-3 [5820]

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

	* flumotion/manager/manager.py
	(Vishnu.loadManagerConfigurationXML):
	* flumotion/common/registry.py (RegistryParser.parseRegistryFile)
	(RegistryParser.parseRegistry):
	* flumotion/common/config.py (FlumotionConfigXML.parse)
	(ManagerConfigParser._parseManagerWithoutRegistry)
	(ManagerConfigParser._parseManagerWithRegistry)
	(ManagerConfigParser.unlink, AdminConfigParser._parse): Unlink DOM
	objects, and try not to hold onto them. Frees up some memory.

2007-11-20  Arek Korbik  <arkadini@gmail.com>

	* flumotion/component/combiners/composite/composite.py:
	* flumotion/component/combiners/composite/composite.xml:
	* flumotion/component/combiners/composite/__init__.py:
	* flumotion/component/combiners/composite/Makefile.am:
	* flumotion/component/combiners/Makefile.am:
	* configure.ac:
	Initial import of the composite combiner component.

2007-11-20  Johan Dahlin  <johan@flumotion.com>

	* flumotion/wizard/Makefile.am (flumotion_PYTHON): Add
	configurationwizard.py here

	* po/POTFILES.in: Update

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

	* flumotion/common/options.py: Rewrite with some crazy crack so
	that we don't import gobject unless boot.py tells us that we
	should.

	* flumotion/common/boot.py (boot, init_option_parser): Detect at
	boot-time whether or not we should use gobject.option.

2007-11-20  Johan Dahlin  <johan@flumotion.com>

	* flumotion/wizard/Makefile.am (flumotion_PYTHON): fix typo

	* flumotion/wizard/productionsteps.py:
	* flumotion/wizard/consumptionsteps.py:
	Make it work on pre python 2.5 by importing
	our sorted/any re-implementations.

2007-11-20  Johan Dahlin  <johan@flumotion.com>

	* flumotion/admin/gtk/client.py:
	* flumotion/test/test_public_ui_api.py:
	* flumotion/test/test_wizard.py:
	* flumotion/wizard/Makefile.am:
	* flumotion/wizard/basesteps.py:
	* flumotion/wizard/classes.py:
	* flumotion/wizard/configurationwizard.py:
	* flumotion/wizard/consumptionsteps.py:
	* flumotion/wizard/conversionsteps.py:
	* flumotion/wizard/productionsteps.py:
	* flumotion/wizard/steps.py:
	* flumotion/wizard/worker.py:

	Remove unused module classes.
	Separate wizard steps into pieces, move the wizard
	to f.w.configurationwizard and rename it to just ConfigurationWizard.

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

	* flumotion/extern/log/log.py:
	  Build the debug format string correctly when it includes kwargs.

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

	* flumotion/common/config.py (ConfigEntryComponent._buildConfig):
	Cope with 2- or	3-tuples for the eaters list.
	(BaseConfigParser._parseFeed, BaseConfigParser._parseEater): Parse
	out an "alias" attribute on <feed>.
	(exportPlanetXml.component): Fix serialization of eaters.

	* flumotion/test/test_config.py
	(TestConfig.testParseComponentsWithMultipleSources): Add test for
	specifying aliases for eaters.

2007-11-20  Johan Dahlin  <johan@flumotion.com>

	* flumotion/test/test_public_ui_api.py:
	Import changed

	* flumotion/wizard/steps.py:
	(FirstTimeWizard): cp is the best merge tool ever

	* flumotion/ui/Makefile.am:
	* flumotion/ui/wizard.py:
	* flumotion/wizard/Makefile.am:
	* flumotion/wizard/steps.py:
	* flumotion/wizard/wizard.py:
	* po/POTFILES.in:
	Move flumotion.wizard.wizard.Wizard to
	flumotion.ui.wizard.SectionWizard

2007-11-20  Johan Dahlin  <johan@flumotion.com>

	* data/glade/wizard.glade:
	* flumotion/wizard/steps.py:
	(FirstTimeWizard): remove extra erroeous run_in_worker method
	(FirstTimeWizard.show_next_step): Set default values on constructor,
	the tests depends on this

	* flumotion/wizard/wizard.py:
	Split out the specific parts of the first time wizard:
	workers, admin etc to the subclass

2007-11-20  Johan Dahlin  <johan@flumotion.com>

	* flumotion/test/test_wizard.py: Fix test after the latest
	wizard changes

	* flumotion/test/test_public_ui_api.py:
	* flumotion/wizard/steps.py:
	* flumotion/wizard/wizard.py:
	Replace WizardSection with WizardStep
	(Wizard.__init__): Merge in Scenario, mark most attributes
	and methods as private.

2007-11-19  Johan Dahlin  <johan@flumotion.com>

	* flumotion/wizard/wizard.py (Wizard.__init__):
	Check before trying to access self.sections and raise
	an exception if it's not set properly
	* flumotion/test/test_wizard.py: Fix test

	* flumotion/admin/gtk/client.py:
	* flumotion/wizard/steps.py:
	* flumotion/wizard/wizard.py:
	Rework the way steps are added to the wizard, require
	a subclass to be made with)
	- a list of sections to be provieded
	- the initial step

2007-11-19  Johan Dahlin  <johan@flumotion.com>

	* flumotion/wizard/save.py:
	Update getitem callsites here too.

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

	* flumotion/admin/text/view.py: Remove unused import. Stupid
	pychecker.

	* flumotion/component/component.py
	(BaseComponentMedium.remote_reloadComponent): Streamline.
	(BaseComponentMedium._reloaded): Remove useless method.

	* flumotion/common/reload.py (reload): Wrap SyntaxError in a
	pb.Error, as callers of reload() were doing; I am unclear how
	useful this is.

	* flumotion/admin/gtk/client.py (Window._component_reload)
	(Window._reload_manager, Window._reload_admin)
	(Window._reload_all): Push the reload implementation up the stack.
	See #260.

	* flumotion/admin/admin.py: Clean up imports.
	(AdminModel.reloadAdmin, AdminModel.reload)
	(AdminModel.reload_async, AdminModel.reloadManager): Removed, the
	form of these interfaces is specific to the needs of the admin
	client.

	* flumotion/manager/component.py
	(ComponentAvatar.reloadComponent): Remove, callers now use
	componentCallRemote directly.

	* flumotion/manager/admin.py (AdminAvatar._reloaded)
	(AdminAvatar.perspective_reloadComponent): Remove some needless
	proxy methods, just do a componentCallRemote to reload a
	component.
	(AdminAvatar.perspective_reloadManager): Streamline.

2007-11-19  Johan Dahlin  <johan@flumotion.com>

	* flumotion/wizard/wizard.py (Wizard.__getitem__):
	Rename to get_step() and update callsits
	* flumotion/wizard/steps.py: Update callsites

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

	* flumotion/common/reload.py (reload): Adjust the ignore list to
	adapt to log.py's new location. Still have NFI why reloading
	log.py causes logging to stop. Perhaps it is because of the global
	variables in the module getting reset? At least it appears to work
	now. See #260.
	(reload): Remove the ignore hack, it was just that the log system
	needed reinitialization.

2007-11-19  Johan Dahlin  <johan@flumotion.com>

	* flumotion/test/test_wizard.py (WizardStepTest.testLoadSteps):
	Update WizardStep import

	* po/POTFILES.in: Remove step.py

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

	* flumotion/manager/admin.py
	(AdminAvatar.perspectiveMessageReceived): Chain up instead of cut
	and paste.

	* flumotion/twisted/pb.py (Referenceable.remoteMessageReceived)
	(Avatar.perspectiveMessageReceived): Use maybeDeferred to reduce
	duplicate code paths.

2007-11-19  Johan Dahlin  <johan@flumotion.com>

	* flumotion/wizard/step.py: svn remove this
	* flumotion/test/test_public_ui_api.py (TestPublicUI.testPublicUIAPI):
	Update the public API, f.w.step is gone

	* flumotion/wizard/sidebar.py:
	* flumotion/wizard/wizard.py:
	Clean up the sidebar API and avoid class variables

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

	* flumotion/component/consumers/disker/disker.py
	(Disker.change_filename): Use common.strftime. Fixes #740.

	* flumotion/common/common.py (strftime): A slow wrapper around
	python's strftime() that can support unicode inputs.

	* flumotion/test/test_config.py (TestConfig.testParseEmpty):
	Remove call to nonexistent function.

2007-11-19  Johan Dahlin  <johan@flumotion.com>

	* flumotion/wizard/Makefile.am:
	* flumotion/wizard/save.py:
	* flumotion/wizard/step.py:
	* flumotion/wizard/steps.py:
	* flumotion/wizard/wizard.py:
	Move WizardStep and WizardSection into wizard.py,
	remove unused api.
	(WizardStep, Wizard): rename workerRun to run_in_worker
	and move most of the code to the wizard so we can remove
	a few public apis. Remove add_msg/clear_msg aliases in
	the steps.
	(WizardStep.iterate_widgets): Move back to public API, since
	it's used by the tests.

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

	* flumotion/common/config.py (exportPlanetXml): Remove a print.
	Thanks Arek.

	* flumotion/manager/manager.py (Vishnu.getConfiguration): Call the
	new exportPlanetXml with the whole planet state -- makes it so
	that you can always export a manager's configuration, regardless
	of how the manager got configured that way.
	(Vishnu.loadComponentConfigurationXML): Don't hold onto the
	configuration object, it's unnecessary.

	* flumotion/common/fxml.py (sxml2unicode, SXML): Code to write
	XML as s-expressions. See exportPlanetXml for a use example.

	* flumotion/common/config.py (CURRENT_VERSION): Remove duplicate
	and incorrect definition; the real one is later in the file.
	(BaseConfigParser.export): Removed, no longer used.
	(exportPlanetXml): New function, takes a planet state and makes
	XML out of it. Nifty, and somewhat evil.

2007-11-19  Johan Dahlin  <johan@flumotion.com>

	* flumotion/wizard/wizard.py:
	Reorganize, group the methods by their type. Remove unused
	API.

2007-11-19  Johan Dahlin  <johan@flumotion.com>

	* data/glade/wizard_tvcard.glade:
	* flumotion/wizard/steps.py:
	Unbreak the non-testsource video producers.
	Fix two typos.
	(FireWireAudioStep): Move down _get_width_height to have a similar
	order to the firewire video step. *args -> checkbutton

2007-11-19  Johan Dahlin  <johan@flumotion.com>

	* flumotion/wizard/steps.py:
	Store instance variables in the instances instead of in classes,
	really. Also mark them as private.
	(VideoEncoderStep.__init__): Re-order the video/audio steps
	Add section comments and group the methods by their type.
	Mark a few more methods as private

2007-11-19  Johan Dahlin  <johan@flumotion.com>

	* flumotion/wizard/steps.py (ConsumptionStep.activated): improve
	comment
	(ConsumptionStep.get_next): Refactor a bit and sort out my
	misunderstanding of the audio/video only code paths.
	Add comments explaining what's going on here, since it's non-obvious
	at a first glance.

2007-11-16  Johan Dahlin  <johan@flumotion.com>

	* flumotion/wizard/Makefile.am (flumotion_PYTHON):
	* flumotion/test/Makefile.am: (EXTRA_DIST):
	Update these, add the new files in the repo.

	* data/glade/wizard_encoding.glade: Remove parts which are going to
	be overwritten in runtime
	* data/glade/wizard_testsource.glade: Connect to two more signals
	* flumotion/test/test_wizard_models.py:
	* flumotion/wizard/models.py:
	* flumotion/wizard/steps.py:
	* flumotion/wizard/wizard.py:
	First step of MVC migration of the wizard.
	Add a Flow and Component model, start using them
	in parts of the wizard, but don't use them to do much interesting.

	Make some of the indivudal steps create the upcoming step instead of just
	returning the name, this allows us to pass the model on to the next step.

2007-11-16  Johan Dahlin  <johan@flumotion.com>

	* data/glade/wizard_consumption.glade: Set the audio/video only
	sub checkbuttons to true by default

	* flumotion/wizard/steps.py:
	Remove unused imports, refactor method order in the overlay step,
	make a few methods private. Make sure that all audio sources inherit
	from the audio source step.
	(ProductionStep.get_next): Remove duplicated get_next()

	* flumotion/wizard/wizard.py (BasicScenario.__init__):
	Rename all step classes to end with Step

	* flumotion/wizard/wizard.py (BasicScenario.__init__): Allow us to
	return a WizardStep instance instead of a string in get_next()
	methods.

	* flumotion/ui/fgtk.py (FCheckButton): Remove the __nonzero__
	hack.

	* data/glade/admin.glade: center the window when displaying it
	for the first time.

2007-11-15  Johan Dahlin  <johan@flumotion.com>

	* flumotion/wizard/steps.py (Consumption.activated,
	Consumption.get_next): Continue refactoring, avoids plenty
	of duplication here
	(Production.verify): Revert the hasattr change

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

	* flumotion/admin/gtk/parts.py:
	  Remove CPU column, since we no longer have CPU in the jobState, and
	  we're going to show this in the component tab soon.

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

	* flumotion/manager/manager.py (Vishnu.unregisterComponent):
	* flumotion/component/component.py (BaseComponent.init)
	(BaseComponent.do_stop, BaseComponent._pollCPU): Add CPU to the
	uistate.

	* flumotion/admin/gtk/parts.py
	(ComponentsView._add_columns.type_cpu_datafunc): Hack around CPU
	usage being absent.

	* flumotion/common/planet.py (_jobStateKeys, WorkerJobState)
	(ManagerComponentState):
	* flumotion/test/test_manager_manager.py
	(FakeComponentMind.__init__): Remove cpu from the jobstate.

2007-11-14  Johan Dahlin  <johan@flumotion.com>

	* flumotion/common/python.py:
	Attempt to fix pychecker.
	(sorted): Okay, slice the first two items, <= doesn't work,
	only < and >.
	(any): Try to use getattr to get around pychecker being too smart.
	(any): Use try/except technique, disable shadowing of builtins
	(sorted): Revert to earlier attempt, disable __pychecker__

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

	* flumotion/component/component.py
	(BaseComponentMedium.remote_getConfig): With trunk, components
	always have their config, no need for special cases.
	(BaseComponent.__init__): Remove obsolete comment from Feb 05.
	(BaseComponent.init, BaseComponent._pollCPU): Move the CPU poller
	to be a common.Poller.

2007-11-14  Johan Dahlin  <johan@flumotion.com>

	* flumotion/wizard/steps.py:
	* flumotion/common/Makefile.am (flumotion_PYTHON):
	* flumotion/common/python.py: New file, forward compatibility with
	python 2.4 and 2.5.

	* flumotion/wizard/steps.py (Consumption): More __nonzero__ cleanups,
	(Consumption.activated): Simplify logic and use the any() concept
	from python 2.5

	* data/glade/wizard_consumption.glade: Connect all shout checkbuttons
	to the signal, just as for disk/http.

	* flumotion/wizard/steps.py (Production): Clean up the production step
	a little, avoid some code duplication and depending on __nonzero__.

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

	* flumotion/admin/multi.py (MultiAdminModel.addManager):
	* flumotion/admin/admin.py (AdminModel.__init__)
	(AdminModel.connectToManager, AdminModel.setRemoteReference): Add
	keyword argument to addManager/connnectToManager to control
	generation of the connection XML cache file.

	* flumotion/test/test_admin_admin.py
	(AdminTest.testConnectSuccess)
	(AdminTest.testReconnect, AdminTest.testConnectFailure):
	* flumotion/test/test_admin_multi.py
	(MultiAdminTest.testConnectSuccess)
	(MultiAdminTest.testConnectFailure)
	(MultiAdminTest.testReconnect): Don't record manager connection
	details when connecting to test managers. Fixes tests adding to
	the recent connections box in the admin UI.

	* flumotion/manager/worker.py: Comments from 2004 la la la
	(WorkerHeaven.__init__): Remove unused instance var.
	(WorkerHeaven.workerAttached, WorkerHeaven.workerDetached):
	Prettify logging.

	* flumotion/admin/admin.py (AdminModel.__init__)
	(AdminModel.setRemoteReference.gotWorkerHeavenState)
	(AdminModel.setRemoteReference.remoteDisconnected)
	(AdminModel.isConnected): Store the connected state as a bool
	rather than a string. Praisebejesus.
	(AdminModel._callRemoteCallback, AdminModel._callRemoteErrback):
	Remove logging callbacks, unnecessary now that our base medium
	class does this for us.
	(AdminModel.workerCallRemote, AdminModel.componentCallRemote):
	Remove some unnecessary debug.
	(AdminClientFactory.gotDeferredLogin.error): More specific log
	here.
	(AdminModel._defaultErrback): Removed; this was always used after
	a remote call, which now logs exceptions via the BaseMedium
	callRemote logging infrastructure.
	(AdminModel.reload, AdminModel.reloadManager)
	(AdminModel.reloadComponent, AdminModel.checkElements)
	(AdminModel.checkImport): Remove _defaultErrback usage.

	* flumotion/test/test_manager_admin.py (TestAdminAvatar): Rewrite
	test to use real objects, and no useless functions.

	* flumotion/admin/admin.py (AdminModel): Remove IStateListener
	implementation, we do not use this any more.
	(AdminModel.get_components, AdminModel.getComponents): Remove
	function without callers.
	(AdminModel._setWorkerHeavenState): Remove function without
	callers.

	* flumotion/manager/base.py (ManagerAvatar.hasRemoteReference):
	Remove unused method, there for a case that cannot exist.

	* flumotion/manager/manager.py (Vishnu._componentStopWithAvatar):
	Call methods on the componentAvatar, not callRemote directly.

	* flumotion/manager/component.py (ComponentAvatar.stop): Remove
	silliness.

	* flumotion/admin/multi.py (MultiAdminModel.removeManager)
	(MultiAdminModel._managerConnected): Fix removing a manager to
	which we connected one or more times, but is disconnected now.
	Case (4) in the comment.

2007-11-14  Johan Dahlin  <johan@flumotion.com>

	* flumotion/test/Makefile.am (EXTRA_DIST): Add test_public_ui_api.py
	* flumotion/test/test_public_ui_api.py (TestPublicUI):
	New test to check our public API UI API

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

	* flumotion/manager/manager.py (Vishnu.unregisterComponent): No
	need to muck with the component state here, planet.py does
	everything we need.

	* flumotion/common/planet.py (ManagerComponentState.set): If we
	are setting the mood to a value equal to the moodPending, clear
	moodPending. Restores previous behaviour.

2007-11-13  Johan Dahlin  <johan@flumotion.com>

	* flumotion/ui/trayicon.py (FluTrayIcon):
	* flumotion/admin/gtk/client.py (Window):
	Refactor trayicon integration, avoid poking at private client functions,
	emit a signal to tell the window that we want to quit instead.

	* flumotion/admin/gtk/connections.py (Connections): fix one more range
	I forgot last time.

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

	* flumotion/component/feedcomponent010.py:
	  Pass the gst.Message on to have_error, which expects a message, not a
	  string.

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

	* flumotion/common/gstreamer.py:
	  Wingo doesn't like punctuation. Add more punctuation to make this into a
	  tuple instead of a call.

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

	* flumotion/manager/component.py (FeedMap.componentDetached): Fix
	my premature optimization. DAMN YOU DONALD KNUTH

	* flumotion/manager/admin.py (AdminAvatar.sendLog)
	(AdminAvatar.getComponentStates, AdminHeaven.avatarsCallRemote)
	(AdminHeaven.__init__): Remove more unused code.

2007-11-13  Johan Dahlin  <johan@flumotion.com>

	* bin/flumotion-debug: Add a new script which
	makes it easier to debug a manager. So far only a vishnu
	and admin avatar are exposed.

	* flumotion/admin/gtk/componentview.py:
	* flumotion/admin/gtk/parts.py:
	* flumotion/common/keycards.py:
	* flumotion/common/messages.py:
	* flumotion/tester/client.py:
	* flumotion/ui/fgtk.py:
	use range() for enums

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

	* flumotion/manager/admin.py (AdminAvatar.perspective_shutdown):
	Remove some poorly-considered, uncalled code from July 2004.

	* flumotion/admin/admin.py (AdminModel.setProperty)
	(AdminModel.getProperty):
	* flumotion/admin/text/admin_text.py
	(BaseAdminText.setElementProperty)
	(BaseAdminText.propertyErrback)
	(BaseAdminText.getElementProperty):
	* flumotion/manager/component.py
	(ComponentAvatar.setElementProperty)
	(ComponentAvatar.getElementProperty):
	* flumotion/component/feedcomponent.py
	(FeedComponentMedium.remote_setElementProperty)
	(FeedComponentMedium.remote_getElementProperty):
	* flumotion/component/base/admin_gtk.py
	(BaseAdminGtk.propertyErrback, BaseAdminGtk.setElementProperty)
	(BaseAdminGtk.getElementProperty)
	(BaseAdminGtkNode.getElementProperty)
	(BaseAdminGtkNode.setElementProperty)
	(BaseAdminGtkNode.propertyErrback):
	* flumotion/component/base/admin_text.py
	(BaseAdminText.propertyErrback, BaseAdminText.setElementProperty)
	(BaseAdminText.getElementProperty): Remove getElementProperty /
	setElementProperty interfaces; users of the former should use
	uiStates, and users of the latter should use custom interfaces.

	* flumotion/component/producers/videotest/admin_gtk.py
	(PatternNode.cb_pattern_changed):
	* flumotion/component/producers/videotest/admin_text.py
	(VideoTestAdminText.runCommand):
	* flumotion/component/producers/videotest/videotest.py
	(VideoTestMedium, VideoTestMedium.remote_setPattern): Rework to
	use a custom interface rather than getElementProperty and
	setElementProperty.

	* flumotion/manager/component.py: Remove a comment bitrotten since
	December 2004.
	(ComponentAvatar.removeKeycardId)
	(ComponentAvatar.expireKeycard): Remove redundant debug.

	* flumotion/component/base/admin_gtk.py
	(BaseAdminGtk.propertyChanged):
	* flumotion/component/base/admin_text.py
	(BaseAdminText.propertyChanged):
	* flumotion/admin/text/admin_text.py
	(BaseAdminText.propertyChanged): Removed unused interface.

	* flumotion/component/bouncers/admin_gtk.py
	(KeycardsNode.propertyChanged): Removed, a vestigial
	copy-and-pasteo.

2007-11-13  Johan Dahlin  <johan@flumotion.com>

	* flumotion/admin/gtk/main.py (main):
	* flumotion/admin/gtk/client.py (Window.setAdminModel):
	Add setAdminModel as public API.
	Call the constructor before connecting and setAdminModel
	when connected, this makes it less painful to debug errors
	in the admin client happening at the startup.

	* data/glade/admin.glade:
	* flumotion/admin/gtk/client.py:
	Move over to using GtkUIManager, which has proper UI merging
	(used by recent connections) and proper stock icon support,
	and actions which makes it easier to set state on more than
	one item (menu, toolbar)

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

	* flumotion/manager/component.py (ComponentAvatar.__init__)
	(ComponentAvatar.addMoodListener, ComponentAvatar.stateSet):
	Remove happydefer code, as it's unused. Remove mood logger, it
	was leaky and the code is now in planet.py.
	(ComponentAvatar.__repr__, ComponentAvatar.makeComponentState):
	Move around.
	(ComponentAvatar.upgradeConfig): Nationalize.
	(ComponentAvatar.onShutdown): Move some logic to planet.py.
	(FeedMap.getFeederAvatar): Log feed choices only for virtual
	feeds.
	(ComponentHeaven.componentDetached): Don't reconnect components if
	we are shutting down.

	* flumotion/manager/manager.py (Vishnu.__init__.setStopped):
	Manager a self.running attribute, False when we are shutting down.

	* flumotion/common/planet.py (ManagerComponentState.set): Log mood
	changes here; removes the need for extra StateCache listeners in
	other places.
	(ManagerComponentState.setMood): Don't do anything if the mood is
	the same. Add more debugging.
	(ManagerComponentState.clearJobState): Add more logic from
	manager/component.py, clearing out any messages proxied from the
	job state, and setting the mood to sleeping or lost, depending on
	whether the logout was forseen or not.

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

	* flumotion/component/consumers/httpstreamer/resources.py:
	  Use maybeDeferred properly. Not sure how this worked previously.
	* flumotion/component/misc/httpfile/httpfile.py:
	  Add remote expireKeycard method (as in httpstreamer), so that explicit
	  keycard expiry will cause client disconnection as intended.

	  Implement waiting for clients to disconnect and loggers to complete
	  logging on shutdown, so we log properly on shutdown.

2007-11-13  Johan Dahlin  <johan@flumotion.com>

	* flumotion/admin/gtk/client.py:
	Continue to refactor all the code in the callbacks
	to separate methods, to have a clear separation
	between internal api and callbacks used by the ui.

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

	* flumotion/manager/component.py (ComponentAvatar.__init__)
	(ComponentAvatar.onShutdown, ComponentAvatar.onShutdown): Remove
	some unused code.

2007-11-13  Johan Dahlin  <johan@flumotion.com>

	* flumotion/admin/gtk/client.py:
	* flumotion/admin/gtk/main.py:
	* flumotion/ui/icons.py:

	Register the window and stock icons, move it to a function
	to avoid relying on import side effects.

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

	* flumotion/manager/component.py (FeedMap.__init__)
	(FeedMap.componentAttached, FeedMap.componentDetached): Maintain
	an ordered list of avatars.
	(FeedMap._recalc): If multiple components supply a feed, prefer
	the one that has been logged in longer.

2007-11-13  Johan Dahlin  <johan@flumotion.com>

	* flumotion/admin/gtk/client.py:
	(Window._admin_connected_cb): Use consistent naming and
	put private callLater callbacks in nested scopes

	* flumotion/admin/gtk/parts.py:
	* flumotion/test/test_parts.py:
	* tests/ComponentsView.py:
	Rename the ComponentsView signal has-selection to selection-changed,
	which better reflects the arguments given.

2007-11-12  Johan Dahlin  <johan@flumotion.com>

	* flumotion/admin/gtk/client.py:
	Reorder methods, rename to gtk-style namings, mark methods and attributes
	as private, fix imports etc.

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

	* flumotion/component/misc/porter/porter.py (PorterAvatar.logout)
	(PorterRealm.requestAvatar): More debugging.

	* conf/managers/default/flows/porter.xml: Add http-server to the
	mix.

	* flumotion/component/misc/httpfile/httpfile.py
	(HTTPFileStreamer.do_setup): Pass a valid remote referenceable
	object when we start to log in. Fixes problem where the porter
	thinks we logged out.

2007-11-12  Johan Dahlin  <johan@flumotion.com>

	* common/epydoc.mk (EPYDOC_ARGS): Remove the --ignore-mismatch-parameter
	argument which is not present in epydoc 3.0, fixes #783

	* flumotion/common/Makefile.am (flumotion_PYTHON):
	* flumotion/test/Makefile.am (flumotion_PYTHON):
	Update, remove removed, add added.

	* flumotion/common/testsuite.py (TestCase): Add a assertFailure
	alias for failUnlessFailure

	* flumotion/commmon/test_*.py: Use testsuite.TestCase, fix imports
	to be pep-8 compatible, get rid of sibling imports, remove unused
	imports. This replaces two old CompatTestCases.

	* flumotion/common/testsuite.py (TestCase): New class with backwards
	compatibility API for twisted 2.0.x

	* flumotion/test/__init__.py: New file, move everything from f.t.common
	here

	* flumotion/common/testsuite.py: New file with a TestCase and the
	old parts of f.t.testclasses.

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

	* flumotion/manager/component.py
	(ComponentAvatar.makeComponentState.verifyExistingComponentState):
	Fix debug line.

	* flumotion/component/consumers/httpstreamer/http.py
	(MultifdSinkStreamer.remove_all_clients): Fix in the case that we
	never went happy.

	* conf/managers/default/failover.xml: New file, demonstrates
	failover.

	* flumotion/manager/component.py (ComponentAvatar.getVirtualFeeds)
	(FeedMap._recalc): Fix.

	* flumotion/component/base/admin_gtk.py
	(BaseAdminGtk.gettext_domain): Set to None instead of 'flumotion'
	so that we hit the non-translated codepath; otherwise some kind of
	error makes us not add the feeders and eaters tabs.
	(BaseAdminGtk.setup.fetchTranslations): Assume that gettext_domain
	is there, an interface that checks for an attr is pretty bad.
	Instead check if it is None.

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

	* flumotion/component/plugs/loggers.py:
	  Logger plug can now optionally return a deferred from event handlers.

	* flumotion/component/consumers/httpstreamer/resources.py:
	  Use maybeDeferred() on logger plug return; move firing disconnect
	  deferreds to after logging successfully completes.

2007-11-12  Johan Dahlin  <johan@flumotion.com>

	* flumotion/wizard/steps.py (Webcam.run_checks): Reverse the list of
	resolution so we get the largest one first instead of last.
	(FireWire.run_checks): Make it work on 2.3. Use a nicer api to append
	data to the tree model.

2007-11-09  Johan Dahlin  <johan@flumotion.com>

	* flumotion/test/test_component_playlist.py: assertTrue -> failUnless

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

	* flumotion/component/base/admin_gtk.py:
	  Rename a variable that was shadowing an import that we were then trying
	  to use.
	* flumotion/component/effects/volume/volume.py:
	  If we have an invalid value in the list, change the value in the list
	  rather than in a local variable that we then discard. Fixes #792.
	* flumotion/component/producers/soundcard/soundcard.py:
	  Update for component API changes.

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

	* flumotion/component/consumers/httpstreamer/resources.py:
	  Add removeAllClients() method; returns a deferred firing once all
	  clients have been removed successfully.
	* flumotion/component/consumers/httpstreamer/http.py:
	  Remove all clients on stop, don't continue shutdown until removal is
	  complete.

2007-11-08  Johan Dahlin  <johan@flumotion.com>

	* flumotion/component/base/admin_gtk.py (BaseAdminGtkNode.render):
	Unbreak the flumotion-template test.
	(BaseAdminGtk): Set gettext_domain to silent pychecker.

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

	* flumotion/admin/gtk/client.py:
	  Add a debug line.
	* flumotion/component/base/admin_gtk.py:
	  Clean up previous error messages about rendering.

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

	* flumotion/component/base/admin_gtk.py (BaseAdminGtkNode.error,
	  BaseAdminGtkNode.haveWtree, BaseAdminGtkNode.loadGladeFileErrback,
	  BaseAdminGtkNode.renderFinished,
	  BaseAdminGtkNode.renderFinishedErrback, BaseAdminGtkNode.addMessage):
	  This should teach me to fix code being refactored.
	  Handle errors in component UI code better.
	  Don't put anything in the UI (except for debug info) that is
	  not translated.
	  Put error messages in the message area where they belong, and add
	  a method for it to do it consistently.

2007-11-07  Johan Dahlin  <johan@flumotion.com>

	* flumotion/admin/gtk/client.py (Window.help_about_cb):
	* flumotion/admin/gtk/dialogs.py:
	Move over AboutDialog to dialogs.

	* flumotion/admin/gtk/client.py (Window.debug_reload_all_cb):
	Refactor, use consistent naming for call/errbacks, use variables
	from the parent nested scopes to avoid sending them as arguments
	to all callbacks.

	* flumotion/test/test_options.py:
	Use the new log settings APIs and renable commented out tests.

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

	* flumotion/manager/component.py (FeedMap.__init__)
	(FeedMap.componentAttached, FeedMap.componentDetached)
	(FeedMap.getFeederAvatar, FeedMap._recalc): Add a new dataset,
	virtualfeeddeps, which is the set of components that should be
	reconnected when one virtual feed provider logs out. As a separate
	change, treat virtualFeeds purely as a cache -- don't manage it in
	attached()/detached().
	(FeedMap.getEatersForFeeders): Make documentation match intent.
	(FeedMap.__init__, FeedMap.componentDetached)
	(FeedMap.getFeederAvatar, FeedMap._recalc): s/virtual//, we manage
	all feeds generically now. Yay.

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

	* flumotion/manager/component.py (dictlist): New class, a dict of
	nonempty lists.
	(FeedMap.__init__, FeedMap.componentAttached)
	(FeedMap.componentDetached, FeedMap._recalc)
	(FeedMap.getEatersForFeeders): Use dictlists for virtualFeeds,
	simplifying code, and for eatersForFeeders, which was erroneously
	assuming one eater per feeder before. Oops.

	* flumotion/manager/component.py
	(ComponentAvatar.getVirtualFeeds): Return a dict more similar to
	the return of getFeedersForEaters.
	(FeedMap.__init__, FeedMap.componentAttached)
	(FeedMap.componentDetached): Manage a dict of virtual feeds.
	(FeedMap.getFeederAvatar): If there is no component with a given
	feed name, check to see if someone is offering a virtual feed.

	* flumotion/admin/gtk/componentview.py
	(ComponentView.logCategory): Satisfy the swedish mafia.

	* flumotion/admin/multi.py (MultiAdminModel.removeManager): Avoid
	disconnecting from signals twice.

	* flumotion/manager/component.py (FeedMap.__init__)
	(FeedMap.componentAttached, FeedMap.componentDetached)
	(FeedMap._recalc, FeedMap.getFeedersForEaters)
	(FeedMap.getEatersForFeeders): Maintain a cache of eater-feeder
	mappings, invalidated when components log in or out, keyed by full
	feed ID. Recalculate the cache in a single O(N) pass. Don't add
	mappings for feeders that are not present.
	(ComponentHeaven._connectEatersAndFeeders): No need to deal with
	the feeder-not-present case.

2007-11-07  Johan Dahlin  <johan@flumotion.com>

	* flumotion/test/test_options.py (TestOptions): Make sure to turn
	all logging of after running the OptionParser tests.
	Also remove a whole copy of the file.
	(TestOptions.testParser): Disable the logging tests until we
	can restore the logging options set before we modify them.

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

	* flumotion/manager/component.py (ComponentAvatar.getWorker):
	Remove, there was already getWorkerName.
	(ComponentHeaven.feedServerAvailable): Fix crack.
	(FeedMap): Factor getEatersForFeeders and getFeedersForEaters into
	a separate object -- will allow some memoization opportunities.
	(ComponentHeaven.__init__):
	(ComponentHeaven._connectEatersAndFeeders): Make and use the
	feedMap.
	(ComponentAvatar.onShutdown): Notify the heaven on logout so that
	it can e.g. reconnect other components that eat from virtual
	feeds.
	(ComponentHeaven.componentAttached): Take the avatar directly.
	Change some warnings into asserts.
	(ComponentHeaven.componentDetached): New function. Notify the feed
	map, and reconnect any components that need to be reconnected.

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

	* flumotion/component/consumers/httpstreamer/resources.py:
	  Import fcntl in global scope as well. There's no reason to do this
	  locally, and it's somewhat of a hot path (client connection).

2007-11-07  Johan Dahlin  <johan@flumotion.com>

	* flumotion/common/common.py:
	* flumotion/common/config.py:
	Avoid importing locale in a non-global scope, should help us
	avoid some locking. Also only modify LC_NUMERIC on 2.3 since
	PEP 331 went into 2.4.

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

	* flumotion/component/consumers/httpstreamer/http.py:
	  Throttle uiState updates in the streamer.

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

	* flumotion/manager/component.py (ComponentAvatar.getWorker)
	(ComponentAvatar.getClockMaster): New accessors.
	(ComponentAvatar.perspective_removeKeycardId)
	(ComponentAvatar.perspective_expireKeycard): Simplify.
	(ComponentHeaven.feedServerAvailable)
	(ComponentHeaven._setupClocking): Use accessors.
	(ComponentHeaven.masterClockAvailable): Remove check for detached
	component.
	(ComponentHeaven.feedServerAvailable): Fix broken refactor.

	* flumotion/test/Makefile.am:
	* flumotion/test/test_manager_depgraph.py: Remove.

	* flumotion/manager/depgraph.py: Removed, no more users. Add back
	when we decide that we need more complexity?

	* flumotion/manager/component.py (ComponentHeaven.mapNetFeed): Fix
	poor implementation of the last changeset; allow a None toPort to
	just fall through.
	(ComponentHeaven._getFeedersForEaters)
	(ComponentHeaven._getFeederAvatar): Factor out the process of
	mapping a feedId to an avatar/feedName pair into another method.

	* flumotion/manager/component.py (ComponentHeaven.mapNetFeed):
	Instead of raising TryAgain on failure, debug and return None,
	None.
	(ComponentHeaven._connectEatersAndFeeders.connect): Handle a
	mapNetFeed failure with a nice debug statement.
	(ComponentHeaven._connectEatersAndFeeders): Remove TryAgain foo.

	* flumotion/manager/component.py
	(ComponentHeaven._getFeedersForEaters)
	(ComponentHeaven._getEatersForFeeders)
	(ComponentHeaven._connectEatersAndFeeders): It's not possible to
	have what we used to call a "detached avatar", due to the ordering
	in the cleanup() function in Vishnu.requestAvatar(), so remove
	those code paths. Note that getEatersForFeeders is suboptimal.

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

	* flumotion/manager/component.py
	(ComponentHeaven._connectEatersAndFeeders): Coalesce
	_connectEaters, _connectEaterUpstream, _connectFeeders, and
	_connectFeederDownstream into this one laconism.
	(ComponentHeaven.mapNetFeed): "Implement" a network map.
	(ComponentHeaven._getFeedersForEaters)
	(ComponentHeaven._getEatersForFeeders): Return more info.
	(ComponentHeaven.componentAttached): Adapt to call
	_connectEatersAndFeeders.
	(ComponentHeaven.masterClockAvailable): Prevent endless loops.
	(ComponentHeaven._componentIsLocal):
	(ComponentHeaven.getComponentAvatarForState): Removed, no callers.
	(TryAgain): An exception for local use.
	(ComponentAvatar.feedTo, ComponentAvatar.eatFrom): More debug.
	(ComponentAvatar.getFullFeedId): New function.
	(ComponentAvatar.provideMasterClock): Call masterClockAvailable in
	the case where the clock has already been provided, it's just a
	component logging in again.
	(ComponentAvatar.onShutdown): Fold the mood functions in here,
	they are not public and may only be called in certain
	circumstances.

	* flumotion/manager/manager.py (Vishnu.workerAttached): Unhappily,
	the worker is not in the avatars dict at this point, so
	callLater(0) on a function that requires it to be there. Boo.
	Maybe fix later.

	* flumotion/manager/component.py
	(ComponentHeaven._getEatersForFeeders)
	(ComponentHeaven._getFeedersForEaters): Moved here, off of the
	component avatar.
	(ComponentHeaven._connectEaters)
	(ComponentHeaven._connectFeeders): Use the new functions.

	* flumotion/manager/component.py (ComponentAvatar.getFeedId): New
	function.
	(ComponentAvatar.getEatersForFeeders)
	(ComponentHeaven._connectEaters)
	(ComponentHeaven._connectFeeders): Use new function.

	* flumotion/test/test_manager_manager.py: Update calls to
	loadComponent for the virtualFeeds argument.

	* flumotion/manager/component.py (ComponentAvatar.getEaters)
	(ComponentAvatar.getFeeders, ComponentAvatar.getVirtualFeeds): New
	accessors.
	(ComponentAvatar.getFeedersForEaters)
	(ComponentAvatar.getEatersForFeeders): Use accessors.

	* flumotion/common/config.py (buildVirtualFeeds):
	* flumotion/test/test_config.py (TestConfig.testVirtualFeeds):
	Expect a feedId, not a fullFeedId, like in the eaters dict.

	* flumotion/common/common.py (parseFeedId): Assert that we do not
	have a fullFeedId.

	* flumotion/manager/manager.py (Vishnu.__pychecker__): Pacify
	pychecker.

	* flumotion/common/config.py (ConfigEntryComponent._buildConfig):
	Fix bug when virtualFeeds is not specified.

	* flumotion/manager/admin.py
	(AdminAvatar.perspective_loadComponent):
	* flumotion/manager/manager.py (Vishnu.loadComponent): Add virtual
	feeds support to loadComponent().

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

	Add concept of "virtual feeds" to component configuration; a
	component can provide a number of "virtual feeds", which in the
	future will be used by the manager to provide failover between
	separate components.

	* flumotion/common/config.py (buildVirtualFeeds): New helper
	procedure.
	(ConfigEntryComponent.__pychecker__): Muahahahahahaha
	(ConfigEntryComponent.__init__): Take optional thirteenth
	argument, virtualFeeds.
	(ConfigEntryComponent._buildConfig): Set conf['virtual-feeds'].
	(BaseConfigParser.parseComponent)
	(BaseConfigParser._parseVirtualFeed): Parse virtual feeds out of
	configuration.

	* flumotion/test/test_config.py (TestConfig.testVirtualFeeds): New
	test.

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

	* flumotion/manager/component.py:
	* flumotion/manager/worker.py:
	* flumotion/worker/feedserver.py: Remove unneeded import.

	* flumotion/job/job.py (JobClientFactory.login):
	* flumotion/manager/manager.py (Vishnu.deleteFlow): Adeu,
	generator.

2007-11-05  Johan Dahlin  <johan@flumotion.com>

	* flumotion/job/main.py (main): Remove --version here,
	it's already added by the common optparse options.

2007-11-05  Johan Dahlin  <johan@flumotion.com>

       * flumotion/admin/command/main.py:
       * flumotion/admin/gtk/main.py:
       * flumotion/admin/rrdmon/main.py:
       * flumotion/admin/text/main.py:
       * flumotion/common/options.py:
       * flumotion/job/main.py:
       * flumotion/launch/inspect.py:
       * flumotion/launch/main.py:
       * flumotion/manager/main.py:
       * flumotion/service/main.py:
       * flumotion/test/test_options.py:
       * flumotion/worker/main.py:
       * misc/pycheckerrc:
       Refactor command-line parsing to use a base class which
       provides the common options and optinally uses GOption if
       we use a sufficiently new pygobject.
       Ignore optparse in pychecker since we're not interested in bugs
       in the standard library.

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

	* flumotion/component/base/admin_gtk.py: Exorcise defer_generator
	from another file.

2007-11-05  Johan Dahlin  <johan@flumotion.com>

	* flumotion/common/options.py: Don't assume gobject.pygobject_version
	is present, fixes build on FC5.

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

	* flumotion/admin/admin.py
	(AdminClientFactory.gotDeferredLogin.error)
	(AdminModel.connectToManager.connection_error): Fix for
	refactoring.

	* flumotion/admin/text/view.py (AdminTextView.getEntry): Move here
	from admin.py:AdminModel, and make not a defgen.

	* flumotion/admin/admin.py
	(AdminClientFactory.gotDeferredLogin.error): Simplify to not be a
	defer generator. See #385.
	(AdminModel.getEntry): Removed this defgen, it has no more
	callers. componentview.py has what should be done.
	(AdminModel.reload_async): Refactor to not be a defgen; still
	krappy.

	* flumotion/admin/gtk/componentview.py: Remove unneeded import.

2007-11-05  Johan Dahlin  <johan@flumotion.com>

	* flumotion/ui/fgtk.py (FVUMeter.do_realize): Fix inconsistent tabbing
	found by reindent.py

	* flumotion/common/Makefile.am: Remove accidentally commited changes

2007-11-05  Michael Smith <msmith@fluendo.com>

	* flumotion/common/netutils.py:
	  Document two methods in the routing table class.

2007-11-05  Johan Dahlin  <johan@flumotion.com>

	* all python files in the tree: run reindent.py, fixes #789

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

	* flumotion/common/medium.py (BaseMedium.runBundledFunction)
	(BaseMedium.getBundledFunction): Refactor to not be defer
	generators. See #385.

	* flumotion/manager/manager.py (Vishnu._componentStopNoAvatar)
	(Vishnu._componentStopWithAvatar, Vishnu.componentStop): Split the
	ballooning componentStop function into parts. Only set lost
	components to sleeping if the worker does not detect a running job
	with that PID. Fixes #787.

	* flumotion/test/test_component_bouncers_component.py
	(TrivialBouncerTest.setKeycardExpireInterval): Fondle the bouncer
	better.

	* flumotion/component/bouncers/plug.py (BouncerPlug): Fix up to
	use a Poller instead of rolling our own timeouts, like in
	bouncer.py.

	* flumotion/component/bouncers/bouncer.py (Bouncer): Expire
	keycards every 2 minutes instead of every 60. Makes memory usage
	more stable.
	(Bouncer.init, Bouncer.setEnabled, Bouncer._expire)
	(Bouncer.authenticate, Bouncer.addKeycard, Bouncer.removeKeycard)
	(Bouncer.expireKeycardId): Use a Poller instead of rolling our
	own.
	(Bouncer.expireKeycardId): Remove the keycard properly, which
	takes care of the keycardData / uiState structures, preventing
	memleaks. Fixes #723. Already fixed in the bouncer plug code.

	* flumotion/test/bouncertest.py
	(TrivialBouncerTest.setKeycardExpireInterval): Use private API to
	set the expirer timeout. Hacky, but hey.

2007-11-02  Johan Dahlin  <johan@flumotion.com>

	* flumotion/admin/gtk/dialogs.py (PropertyChangeDialog): Use show()
	on all individual items instead of show_all() once.

	* flumotion/component/effects/volume/volume.glade: Change the
	shortcut for changing the volume from C to V, C is already used
	by the Connection menu in the admin interface.

2007-11-01  Johan Dahlin  <johan@flumotion.com>

	* data/glade/authenticate.glade:
	* data/glade/connections.glade:
	* data/glade/greeter-authenticate.glade:
	* data/glade/greeter-initial.glade:
	* data/glade/greeter-load_connection.glade:
	* data/glade/greeter-start_new.glade:
	Set visible to False by default, to avoid flashing
	windows when starting up the admin interface the first time.
	Fixes #784.

2007-11-01  Johan Dahlin  <johan@flumotion.com>

	* flumotion/component/base/admin_gtk.py (BaseAdminGtkNode.render):
	Remove trailing whitespace and prefix all error messages in the render
	method with render.

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

	* flumotion/component/consumers/httpstreamer/admin_gtk.py:
	  Respect the 80 character punch card limit more.

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

	* flumotion/component/padmonitor.py (EaterPadMonitor.__init__)
	(EaterPadMonitor.setInactive, EaterPadMonitor.setActive)
	(EaterPadMonitor.detach): When the eater monitor is inactive,
	periodically reconnect using another poller. Fixes bug whereby the
	monitor would only attempt to reconnect once.

	* flumotion/manager/component.py
	(ComponentAvatar.perspective_reservePortsOnWorker): Removed, it
	had no callers. Fixes #745.

	* flumotion/component/component.py
	(BaseComponentMedium.remote_callMethod): Removed, it had no
	callers, and the correct way is to make the component have a
	medium that defines the appropriate remote_* method.

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

	* flumotion/component/padmonitor.py (PadMonitor): Refactor to use
	the Poller. Incidentally fixes #788, and a bug whereby downstream
	components would not attempt to reconnect to a missing upstream
	component.
	(PadMonitor.detach): Fix. Yay previously-written test suites!

	* flumotion/component/feedcomponent010.py
	(FeedComponent.eatFromFD): No need to try to start the pipeline if
	it was already started.

	* flumotion/common/common.py (Poller): New class, abstracts the
	process of a periodically calling a procedure.

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

	* flumotion/component/feedcomponent010.py
	(FeedComponent.do_setup): try_start_pipeline, not start_pipeline;
	we can't set the pipeline to PLAYING if it has eaters for which we
	have not set fd's. Fixes #782.
	(FeedComponent.install_eater_event_probes): Moved around.
	(FeedComponent._setup_pipeline): Add pad monitors and event probes
	here, before we set the pipeline to PLAYING.
	(FeedComponent.set_master_clock): try_start_pipeline.
	(FeedComponent.try_start_pipeline): Renamed from start_pipeline.
	The eater probes and pad monitors were moved to _setup_pipeline;
	this function only sets the pipeline to PLAYING if the necessary
	conditions are fulfilled.
	(FeedComponent.eatFromFD): Call try_start_pipeline(); with the new
	code, pipelines don't go to PLAYING until all of their eaters are
	connected.

	* flumotion/component/eater.py (Eater.__init__): Add an fd
	attribute, which is None if the eater is disconnected.
	(Eater.connected): Set the uiState and fd directly, because
	connected() is only called from the reactor thread.
	(Eater.disconnected.updateUIState): Null out the fd attribute as
	well.

	* flumotion/component/base/admin_gtk.py
	(FeedersAdminGtkNode.setUIState): Fix appearance of feeders tab
	when initially selected.

	* flumotion/component/base/feeders.glade:
	* flumotion/component/base/admin_gtk.py:
	(FeedersAdminGtkNode.setFeederClientName)
	(FeedersAdminGtkNode.haveWidgetTree): Hacks to allow the feeder
	and eater names to be present at one time. Fixes #540.

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

	* flumotion/component/base/admin_gtk.py:
	  Revert the generic ComponentAdminGtkNode bit that's not done yet.

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

	* flumotion/manager/component.py: Remove unneeded import.

	* flumotion/common/bundleclient.py: Import things more normally,
	now that we don't need to fake out pychecker.
	(BundleLoader.getBundles): Not a defer generator. Don't call
	getBundleZips on an empty set of bundles. Fix some format string
	problems.
	(BundleLoader.loadModule, BundleLoader.getBundleByName)
	(BundleLoader.getFile): Similar de-generatorification.

	* flumotion/manager/component.py (ComponentAvatar.setElementProperty)
	(ComponentAvatar.getElementProperty)
	(ComponentAvatar.reloadComponent, ComponentAvatar.authenticate)
	(ComponentAvatar.removeKeycardId, ComponentAvatar.expireKeycard):
	Remove references to _mindErrback, which is unnecessary because it
	is handled by mindCallRemote. Fixes #775.

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

	* flumotion/admin/gtk/componentview.py:
	* flumotion/component/base/admin_gtk.py:
	  Fix translation breakage from [5166]
	* flumotion/component/base/eaters.glade:
	* po/POTFILES.in:
	  Add this file, and use colons like we do in other glade files.
	* configure.ac:
	  Down boy down.

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

	* flumotion/component/component.py:
	  Add some comments, move some code from stop() to do_stop(), where it
	  makes more sense.
	* flumotion/component/feedcomponent010.py:
	  Add a debug line.

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

	* flumotion/common/errors.py:
	  New exception for a cancelled operation.
	* flumotion/test/test_defer.py:
	  Tests for new class.
	* flumotion/twisted/defer.py:
	  New class for a exponentially-backing-off retriable deferred.

2007-10-17  Michael Smith <msmith@fluendo.com>

	* flumotion/test/test_component_playlist.py:
	  Add a better test for the bug in the playlist fixed yesterday; the
	  test that caught it mostly did so by accident.

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

	* flumotion/common/registry.py:
	  Description attributes can (and sometimes do, in practice) contain
	  characters that need escaping. So, escape them.
	  Fixes cases where some (private) components would cause us to never
	  be able to parse the registry cache.
	* flumotion/test/test_registry.py:
	  Add a test for the above; refactor the dumping tests a little to
	  reduce code duplication.

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

	* flumotion/component/producers/playlist/playlistparser.py:
	  Make implementation match comments (the comments were correct) when
	  finding the next scheduled item.
	  Fixes problems when adding an item before, but partially overlapping
	  with, the first item in the schedule.

	* flumotion/test/test_component_playlist.py:
	  Add a new test that is fixed by this commit.

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

	* flumotion/component/component.py:
	  Fix plug instantiation.

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

	* flumotion/twisted/rtsp.py:
	  If our render() deferred errbacks, then respond with an internal
	  server error rather than silently not responding.

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

	* flumotion/component/producers/soundcard/soundcard.py
	(Soundcard.getVolume): Avoid dividing by 0 if GStreamer reports 0
	channels. Strange, but fixes #715.

	* configure.ac:
	  bump the minor version, this is the crazy development
	  branch

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

	* flumotion/manager/component.py (ComponentAvatar.__init__)
	(ComponentAvatar.makeComponentState): Set self.componentState
	before calling self.addMessage.

	* flumotion/component/producers/rtsp/rtsp.py
	(Rtsp.get_pipeline_string):
	* flumotion/component/producers/ivtv/ivtv.py
	(Ivtv.get_pipeline_string):
	* flumotion/component/producers/looper/looper.py
	(Looper.get_pipeline_string): Fix naming of feeders.

	* flumotion/manager/component.py
	(ComponentAvatar.makeAvatarInitArgs): Revert to previous
	implementation.

	* flumotion/component/component.py
	(BaseComponentMedium.remote_getMasterClockInfo): Implement for all
	components, as it seems that all components have clock-master in
	the config.

	* flumotion/common/config.py: Update comment.

	* flumotion/manager/component.py
	(ComponentAvatar.makeAvatarInitArgs): Only callRemote to
	getMasterClockInfo if the component has 'clock-master' in its
	config. Slightly hacky, but at least it doesn't assume that all
	components are feed components. Should we just make the base
	Component have a getClockMaster implementation?

	* flumotion/component/feed.py (FeedMedium._doFeedTo): Remove
	monkeypatch, now that we are forcing restarts. See #619.

	* flumotion/launch/main.py:
	* flumotion/launch/parse.py: Fix flumotion-launch, albeit a bit
	hackily. At least clock master selection is more like core now.

	* flumotion/component/component.py (BaseComponent.__init__)
	(BaseComponent.__init__, BaseComponent.addMessage): Hackily add
	another error reporting mechanism for programmatically running
	components; probably needs more thought.

	* flumotion/manager/manager.py (Vishnu._loadManagerBouncer): Fix
	to conform to init protocol; still seems hacky.

	* flumotion/job/job.py (JobMedium._createComponent): Pass the
	config to createComponent(). No need to setup() any more.

	* flumotion/component/consumers/httpstreamer/http.py
	(MultifdSinkStreamer):
	* flumotion/component/producers/unixdomain/unixdomain.py
	(UnixDomainProvider):
	* flumotion/component/producers/playlist/playlist.py
	(PlaylistProducer):
	* flumotion/component/producers/looper/looper.py (Looper): Conform
	to initialization protocol.

	* flumotion/component/misc/httpfile/httpfile.py
	(HTTPFileStreamer): Conform to initialization protocol. Reorder
	some functions.

	* flumotion/component/converters/overlay/overlay.py (Overlay.do_stop):

	* flumotion/component/component.py (maybe_deferred_chain): New
	helper, chains a set of methods.
	(BaseComponent.__init__): Take the component config as an arg. Set
	self.config directly, and run setup() after running init().
	(BaseComponent.init): We can set self.name directly.
	(BaseComponent.do_check): Refactor this base implementation a bit.
	(BaseComponent.do_setup): Do work here that had been done in
	setup(). Fix bugs in the presence of plugs. Chain calls to
	do_check().
	(BaseComponent.setup): No longer take the config, __init__ set it
	already. Push lots of details into the base do_setup(). Go happy
	after the do_setup() chain succeeds, and ensure that messages are
	posted (and the mood changed) on failure.
	(BaseComponent.start): Removed, no longer used.
	(BaseComponent.stop): Chain calls to do_stop(). Push some details
	into the base do_stop().
	(BaseComponent.setMood, BaseComponent.waitForHappy): Add
	infrastructure for getting a deferred that will be fired on ->
	happy; seems a bit hackish. Mostly used by tests and in-process
	manager bouncers. (In-process manager bouncers should probably be
	plugs instead.)

	* flumotion/component/bouncers/component.py (Bouncer.do_setup):
	Rename from do_start.
	(Bouncer.setMedium): Proxy the setMedium to the plug.

	* flumotion/common/common.py (get_all_methods): New public method,
	the guts of call_each_method.

	* flumotion/common/reflectcall.py (createComponent): Take new
	argument, the component config.

	* flumotion/test/test_component_bouncers_bouncer.py
	(TrivialBouncerTest.setUp):
	* flumotion/test/test_htpasswdcrypt.py
	(TestHTPasswdCryptUACPP.setUp, TestHTPasswdCryptUACPCC.setUp):
	* flumotion/test/test_component.py (PipelineTest.__init__)
	(TestExpandElementNames.setUp, TestParser.parse)
	(TestParser.testErrors):
	* flumotion/test/test_saltsha256.py (TestWrongKeycardClass.setUp)
	(TestSaltSha256USCPCC.setUp):
	* flumotion/test/test_component_feed.py (FeedTestCase.setUp):
	* flumotion/test/test_pb.py (Test_BouncerWrapper.setUp)
	(Test_FPBClientFactory.setUp):
	* flumotion/test/realm.py (TestRealm.getFactory):
	* flumotion/test/test_component_httpserver.py
	(MountTest.makeComponent):
	* flumotion/test/test_component_bouncers_component.py
	(TrivialBouncerTest.setUp):
	* flumotion/test/test_component_httpstreamer.py
	(TestOldProperties.setUp): Update component __init__.

	* flumotion/test/test_component_init.py (TestInit.testInit): We
	can't successfully __init__ generically any more, now that
	__init__ takes the config. Load the modules anyway though.

	* flumotion/test/comptest.py (ComponentWrapper):
	* flumotion/test/test_comptest.py
	(TestComponentWrapper.test_instantiate_errors)
	(TestComponentWrapper.test_gstreamer_error)
	(TestCompTestSetup.test_success): Update for component init
	protocol changes.

	* flumotion/test/test_manager_manager.py
	(FakeWorkerMind.remote_getPorts):
	* flumotion/test/test_manager_worker.py
	(FakeWorkerMind.remote_getPorts): Fix to work with the random port
	change of last week.

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

	* doc/random/component-initialization-protocol: Updates. setup()
	is now called directly from __init__, which takes the config dict
	directly. do_check, do_setup, and do_stop methods are
	automatically chained, and do not need to chain up. Start has been
	removed, reflecting the code.

	* doc/random/component-initialization-protocol: Convert to be
	restructured text. No changes.

	* flumotion/manager/component.py (ComponentAvatar.feedTo)
	(ComponentHeaven._connectFeederDownstream): Updates to pass the
	right thing to callRemote('feedTo', ...).

	* flumotion/component/feedcomponent.py (FeedComponentMedium):
	De-bitrot downsteam connections. Changed the remote call to feedTo
	to be more like eatFrom. Uses the feed medium. Works,
	astonishingly.

	* flumotion/test/test_component_feed.py
	(TestDownstreamFeedClient.testRequestFeed): New test, tests the
	high level 'requestFeed' interface.

	* flumotion/component/feed.py (FeedMedium.requestFeed.error)
	(FeedMedium.sendFeed.error): Propagate the errors to the client;
	avoids successful None returns when the remote feed is not
	available.

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

	* flumotion/job/job.py (JobClientBroker.fileDescriptorsReceived):
	* flumotion/worker/feedserver.py (FeedServer.eatFromFD)
	(FeedAvatar._sendFeedReplyCb)
	(FeedAvatar.perspective_receiveFeed, FeedAvatar._doReceiveFeed):
	* flumotion/worker/job.py (ComponentJobAvatar.receiveFeed):
	* flumotion/worker/worker.py (WorkerBrain.eatFromFD): De-bitrot
	the downstream connection code.

	* flumotion/component/feed.py (FeedMedium.sendFeed): Add stub
	implementation, not tested yet.

	* flumotion/worker/feedserver.py (FeedAvatar.eatFromFd)
	* flumotion/test/test_component_feed.py
	(TestDownstreamFeedClient): Add downstream connection tests.
	(TestFeedClient): Refactored common tests to a separate suite.

2007-09-27  Michael Smith <msmith@fluedo.com>

	* flumotion/component/padmonitor.py:
	  If we never receive data in the first timeout period, then go
	  to inactive.

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

	* flumotion/component/misc/httpfile/httpfile.py:
	  description should be a string, not a tuple. Remove stray comma.

2007-09-27  Andy Wingo  <wingo@pobox.com>

	* flumotion/component/feedcomponent010.py
	(FeedComponent.provide_master_clock.pipelinePaused): Get the
	listening port from the time provider.
	(FeedComponent.provide_master_clock.pipelinePaused): Fuck python's
	lexicals!!!!!

	* flumotion/common/worker.py (PortSet.reservePorts): Avoid
	infinite loops.
	(PortSet.__init__): Actually pay attention to the initarg.

	* flumotion/manager/worker.py
	(WorkerAvatar.makeAvatarInitArgs.havePorts)
	(WorkerAvatar.__init__):  New initarg, randomPorts, true if the
	worker will be allocating ports randomly.

	* flumotion/worker/medium.py (WorkerMedium.remote_getPorts):
	Update docs.

	* flumotion/worker/worker.py (WorkerBrain.getPorts): Return a
	pair, the ports and the randomPorts bool.

	* flumotion/common/worker.py (PortSet.__init__): New optional arg,
	randomPorts.
	(PortSet.reservePorts): If we have randomPorts, return 0.

	* flumotion/worker/main.py (_readConfig): Actually respect a
	random=true argument in the worker config.

	* flumotion/test/Makefile.am
	* flumotion/test/test_worker_config.py
	(WorkerConfigTest.testRandomFeederPorts): New test.

	* flumotion/component/feedcomponent010.py
	(FeedComponent._setup_pipeline): Set the pipeline to READY even if
	we have a delayed start due to a slaved clock.

	* flumotion/worker/worker.py (WorkerBrain.create.getBundles): Get
	any necessary plug bundles.

	* flumotion/component/component.py
	(BaseComponent._instantiate_plugs): New method, factored out of
	setup().
	(BaseComponent.setup): Remove the bundle-fetching behavior of
	setup_plugs, just instantiate the plugs directly now. No more need
	for a registry in components, yay :)

	* flumotion/common/config.py (ConfigEntryPlug.__init__): Make the
	config here directly. Include the module name and entry point so
	that components won't have to load the registry.
	(buildPlugsSet): Take the config generated by the plug.

	* flumotion/test/test_config.py
	(TestConfig.testParseManagerWithPlugs)
	(TestConfig.testParsePlugs)
	(TestConfig.testParsePlugsWithCompoundProperties): Update tests.

	* flumotion/common/reflectcall.py (reflectCall): New method.

	* doc/random/component-initialization-protocol
	(BaseComponent.setup): Change to note that setup is called
	directly by the job.

	* flumotion/component/producers/firewire/firewire.py
	(Firewire.get_pipeline_string): Fix some of the @feeder@ strings
	for changes on 2007-09-12.

2007-09-26  Andy Wingo  <wingo@pobox.com>

	* flumotion/test/test_comptest.py
	(TestComponentWrapper.test_setup_and_stop):
	* flumotion/test/test_manager_manager.py
	(TestVishnu.testConfigBeforeWorker):
	(TestVishnu.testConfigAfterWorker): Skip these tests for now, will
	get around to fixing them before the release.

	* flumotion/test/test_manager_manager.py
	(TestVishnu.testLoadConfiguration)
	* flumotion/test/test_component.py (TestParser):
	* flumotion/test/test_manager_admin.py (TestAdminAvatar):
	* flumotion/test/test_component_httpstreamer.py
	(TestOldProperties.tearDown):
	* flumotion/test/test_manager_worker.py: Update tests.

	* flumotion/manager/component.py
	(ComponentAvatar.__init__): Verify/upgrade the config here, at
	initialization time.
	(ComponentAvatar.makeComponentState): New method, taken from
	manager.py's _getComponentState.
	(ComponentAvatar.addMessage, ComponentAvatar.addMessageObject):
	New convenience methods.
	(ComponentAvatar.onShutdown): A lot of the detached() code moved
	here; still, it's a lot of code.
	(ComponentAvatar.provideMasterClock): New method.
	(ComponentAvatar.setClocking): New method, akin to the old
	callRemote('start'), but for clock slaves.
	(ComponentHeaven.feedServerAvailable)
	(ComponentHeaven.masterClockAvailable): Some depgraph-like
	functions. Since eatFrom and provideClockMaster both depend on
	worker port allocations, and workers or the clock master may or
	may not be logged in, we need to react to the comings and goings
	of clock masters.
	(ComponentHeaven._setupClocking): New method, run when a component
	logs in and in some other circumstances; either tells a component
	to provide a master clock, tells it about master clocking info, or
	does nothing if the component is cool without clocking info.
	(ComponentHeaven.componentAttached): When a component logs in,
	tell it about clocking info, and tell it about how to connect its
	eaters and feeders. Should re-fix #721.
	(ComponentHeaven._connectEaterUpstream):
	(ComponentHeaven._connectFeederDownstream): Don't rely on feed
	availability, it's not guaranteed.
	(ComponentHeaven._connectEaters)
	(ComponentHeaven._connectFeeders): Connect all possible eaters and
	feeders, starting the connection from the remote side if
	necessary. A subtle and clever extension that makes arbitrary
	start order possible.

	* flumotion/manager/manager.py (Dispatcher.requestAvatar): Rework
	so that avatars can be constructed with a deferred. Remove the old
	attached/detached behavior. Shortcut past the heavens for creating
	avatars, and managing the heavens' avatar sets.
	(Vishnu): Remove bits about the depgraph. The depgraph was a good
	idea, but in the end was too complicated to be reliable; instead
	by removing some core complications, we remove the need for the
	depgraph.
	(Vishnu.workerAttached.workerAvatarComponentListReceived): Tell
	the component heaven that the feedserverport is available. The
	general idea is good here, but the code intricacies are still
	messy. Pointy boat outside the window.
	(Vishnu.addComponentToFlow): New method, pulled out of the
	component config verification code.
	(Vishnu.registerComponent): New method, pulled out of the
	component config verification code.
	(Vishnu.getWorkerFeedServerPort): Return None if no worker is
	available. Refactoring needed.
	(Vishnu.getComponentMapper): New function, perhaps unnecessary.

	* flumotion/manager/base.py (ManagerAvatar): Refactor so
	that the remote reference is available at __init__-time. Remove
	attached() and unattached(). Use more of the base
	fpb.PingableAvatar.
	(ManagerAvatar.makeAvatarInitArgs): New class method, useful if
	you need to make some remote calls before the avatar can be
	created.
	(ManagerHeaven.createAvatar, ManagerHeaven.removeAvatar): Removed,
	now handled by the dispatcher in manager.py.
	* flumotion/manager/worker.py (WorkerAvatar): Adapt.
	(WorkerAvatar.makeAvatarInitArgs): Get the feed server port and
	port set here.
	* flumotion/manager/admin.py (AdminAvatar):
	* flumotion/manager/component.py (ComponentAvatar)
	(ComponentAvatar.makeAvatarInitArgs): Get the job state, conf, and
	clocking info here, becore making the avatar.

	* flumotion/manager/manager.py
	(Vishnu._workerCreateComponentDelayed):
	* flumotion/manager/worker.py (WorkerAvatar.createComponent):
	* flumotion/job/job.py (JobMedium.remote_create)
	(JobMedium._createComponent):
	* flumotion/worker/medium.py (WorkerMedium.remote_create):
	* flumotion/worker/job.py (ComponentJobAvatar.haveMind.create)
	(ComponentJobInfo, ComponentJobHeaven.spawn)
	(ComponentJobHeaven.spawn):
	* flumotion/worker/worker.py (WorkerBrain.create)
	(WorkerBrain.create.spawnJob): New argument when telling a worker
	to create a component, the component configuration, which is
	passed directly to the job in the create() call, obviating the
	need for the manager->component setup() phase.

	* flumotion/component/consumers/httpstreamer/http.py
	(MultifdSinkStreamer.do_pipeline_playing)
	(MultifdSinkStreamer.start_pipeline): Some hacks to get the
	httpstreamer working with the new code. Probably should revise the
	component inititialization protocol.

	* flumotion/component/feedcomponent.py
	(FeedComponentMedium.connectEater): Shortcut out if we have not
	yet been informed of the location of the remote feed.
	(FeedComponentMedium.remote_getEaterDetail): Removed, unnecessary.
	(FeedComponentMedium.remote_setMasterClock): New call, proxies
	directly to FeedComponent.set_master_clock().

	* flumotion/component/feedcomponent010.py
	(FeedComponent.do_setup): Start the pipeline directly unless we
	are slaving our master clock.
	(FeedComponent._setup_pipeline, FeedComponent.set_master_clock):
	Only disable base_time handling if we are slaving our clock
	remotely. If we are resetting our master clock info, stop then
	start the pipeline; this bit is untested, but then again before it
	failed without errors or warnings, so that's OK. Start the
	pipeline after setting master clock information.
	(FeedComponent.get_master_clock): Since we now overload
	_master_clock_info to be valid in the slaved case as well, only
	return a tuple if we are actually providing a clock master.
	(FeedComponent.provide_master_clock): Since providing a master
	clock can be done with a PLAYING pipeline, don't mess with
	pipeline state here, instead assuming that setup() set the
	pipeline to PLAYING already. Return the existing data if we are
	already providing a master clock.
	(FeedComponent.start_pipeline): Rename from do_start(). Remove
	clocking argument and behavior, that's handled separately.

	* flumotion/component/component.py (remote_setup, remote_start):
	Remove these remote methods. Now, the config passed in setup() is
	instead given from the worker to the job in create(), and the
	clocking info passed in start() is given via the separate
	remote_provideMasterClock/remote_setMasterClock calls. The
	pipeline starts automatically after create(), unless it needs
	master clocking info, in which case it starts after
	setMasterClock().

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

	* flumotion/admin/admin.py:
	  Set AdminModel logName to the managerId to make log files more
	  comprehensible when there are multiple AdminModels in a process.

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

	* flumotion/admin/admin.py:
	  Revert r5537, it causes problems.

2007-09-25  Andy Wingo  <wingo@pobox.com>

	* flumotion/component/component.py
	(BaseComponent.setup.setup_plugs): Only load up the registry if we
	actually have plugs to instantiate. Speeds up component start
	dramatically in the normal case of no plugs.

	Loading the registry should not be necessary at all; the manager
	should give the component all of the information that it needs so
	that it can find the plugs on the local filesystem.

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

	* flumotion/manager/base.py:
	  Update a comment.
	* flumotion/manager/component.py:
	  Rearrange component attach and detach code to be clearer and saner.
	  Remove register/unregister from component heaven.
	* flumotion/manager/manager.py:
	  Call avatar.attached() directly from login code, so that we do all
	  this during login, rather than at various later points.
	* flumotion/manager/worker.py:
	  Remove a fixme, raise an exception if a duplicate worker somehow
	  gets into the heaven twice.
	* flumotion/test/test_manager_manager.py:
	  Update tests for avatars attaching during login.

	  Fixes #624.

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

	Patch by: daniel.hnn@gmail.com
	* flumotion/component/consumers/shout2/shout2.py:
	  Trivial fix to shout2 consumer to allow streaming to a non-localhost
	  server. Fixes #754.

2007-09-18  Arek Korbik  <arkadini@gmail.com>

	* flumotion/admin/command/commands.py (do_avatar_action):
	Do not operate on non-existing components. Fixes #757.

	* flumotion/admin/command/main.py (parse_commands):
	Make command's flow part of the main deferred (and print traceback
	on errors, too). Fixes #727.

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

	* flumotion/admin/admin.py:
	  Don't emit disconnected from the admin model unless we actually
	  managed to connect first.

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

	* flumotion/test/test_component.py (PipelineTest.connect_feeders):
	Stub out.

	* flumotion/manager/component.py
	(ComponentAvatar.perspective_feedReady)
	(ComponentAvatar.perspective_error): Remove unused remote methods.

	* flumotion/component/padmonitor.py (EaterPadMonitor.__init__)
	(EaterPadMonitor.setInactive): Changes to fix the FeedComponent
	reconnectEater problem.

	* flumotion/component/component.py (BaseComponent): Remove signal
	stuff, as I had meant to do before.

	* flumotion/component/producers/playlist/playlist.py
	(PlaylistProducer.create_pipeline):
	* flumotion/component/feedcomponent.py
	(ParseLaunchComponent.create_pipeline): Don't connect_feeders, the
	base class will do this.

	* flumotion/component/feedcomponent010.py (FeedComponent.init):
	New instance var, _clock_slaved. Will be used later.
	(FeedComponent.do_setup): Set _clock_slaved to True if we should
	expect to slave our clock to another one. Call connect_feeders()
	on the pipeline instead of expecting create_pipeline() to do so.
	(FeedComponent.stop_pipeline): Rename from pipeline_stop.
	(FeedComponent.cleanup): It's stop_pipeline now.
	(FeedComponent.do_start): Fix bug in eater pad monitors whereby it
	would call back with the fdsrc name, not the eater alias.
	(FeedComponent.feedToFD): Clean up the fd in an error case.

	* flumotion/component/consumers/httpstreamer/http.py
	(MultifdSinkStreamer)
	(MultifdSinkStreamer._client_removed_handler):
	* flumotion/component/consumers/httpstreamer/resources.py
	(HTTPStreamingResource.__init__)
	(HTTPStreamingResource.clientRemoved):
	* flumotion/component/feedcomponent.py
	(FeedComponentMedium.__init__):
	* flumotion/component/feedcomponent010.py
	(FeedComponent.__signals): Remove signals from components, which
	were a bit cracky.

	* flumotion/component/feedcomponent010.py
	(FeedComponent.connect_feeders): Fold the client-fd-removed signal
	handler into the method.
	(FeedComponent.install_eater_event_probes): New helper, installs
	the necessary event probes, which are now folded into the method.
	(FeedComponent.do_start): Call install_eater_event_probes.
	(FeedComponent.bus_message_received_cb): Clean up (to my eyes).
	(FeedComponent.unblock_eater): Move around.
	(FeedComponent.reconnectEater): Move around. Perhaps now I should
	start making bugs again.

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

	* flumotion/component/feedcomponent010.py
	(FeedComponent.attachPadMonitorToFeeder): Improved variable
	existence.
	(FeedComponent.cleanup): Further fixage.

	* flumotion/component/padmonitor.py (PadMonitor.__init__):
	Publicize monitor.name.
	(PadMonitorSet): New object, factored out of FeedComponent.

	* flumotion/component/feedcomponent010.py (FeedComponent.init):
	Make _pad_monitors a PadMonitorSet, which still derives from dict.
	(attachPadMonitor, removePadMonitor, setPadMonitorActive)
	(setPadMonitorInactive): Removed, now part of the PadMonitorSet.

	* flumotion/component/eater.py (Eater.setPadMonitor)
	(Eater.isActive): New methods, for indexing pad monitors by eater.

	* flumotion/component/feedcomponent010.py
	(FeedComponent.attachPadMonitorToFeeder)
	(FeedComponent.bus_message_received_cb):
	* flumotion/component/eater.py (Eater.__init__)
	* flumotion/component/feeder.py (Feeder.__init__): Detwingle names
	more.

	* flumotion/component/feedcomponent010.py
	(FeedComponent.isEaterActive): Removed, use the eater directly.

	* flumotion/component/combiners/switch/switch.py
	(Switch.is_active): Update to new API.

2007-09-12  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/consumers/disker/disker.py:
	Fix disker's use of old method on remote call to add events.

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

	* flumotion/test/test_component_feeder.py (TestFeeder):
	* flumotion/test/test_component_padmonitor.py (TestPadMonitor):
	Split out tests from test_feedcomponent010.py, which wasn't even
	being disted, and which now is empty and deleted. Update to use
	new API.

	* flumotion/component/feeder.py (Feeder):
	* flumotion/component/eater.py (Eater): Move out to separate
	files.

	* flumotion/component/padmonitor.py (PadMonitor)
	(EaterPadMonitor): Move to a separate file; take the callbacks in
	__init__() so that we don't have to introduce a dependency on the
	naming of the component's interface.

	* flumotion/common/gstreamer.py (StateChangeMonitor): Move here
	from feedcomponent010.py; requires extra imports in this file, but
	that shouldn't be a problem.

	* flumotion/component/feedcomponent010.py: Import helper classes
	from external modules.

	* flumotion/component/Makefile.am (component_PYTHON):
	* flumotion/component/component.xml: Add new files to bundles and
	dist.

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

	* flumotion/component/feedcomponent010.py (StateChangeMonitor):
	New class, abstracts out the state change deferred struct,
	unfucking some of the api badness.
	(FeedComponent): Refactor to use the StateChangeMonitor.

	* flumotion/common/gstreamer.py (get_state_change): New public
	function, moved here from feedcomponent010.py.

	* flumotion/test/test_component.py: Fix test cases to use 'eater'
	rather than 'source'.

	* flumotion/component/feedcomponent010.py
	(FeedComponent.install_eater_continuity_watch): New public method,
	watches some elements for discontinuity message; palliates some
	magical element naming intertwingliness.
	(FeedComponent.get_eater_name_for_feed_id): Remove; although
	switch needs it, switch should be refactored to make more use of
	Eater objects.
	(FeedComponent.do_start): Rename from link() and incorporate
	do_start() from ParseLaunchComponent, allows implementation of
	pure FeedComponent classes. Fixes #646.

	* flumotion/component/feedcomponent.py
	(ParseLaunchComponent.FDSRC_TMPL)
	(ParseLaunchComponent.DEPAY_TMPL)
	(ParseLaunchComponent.FEEDER_TMPL): Moved here from FeedComponent.
	(ParseLaunchComponent.EATER_TMPL): New template variable, computed
	at init-time as a combination of FDSRC_TMPL, DEPAY_TMPL,
	get_queue_string(), and identity, if we are checking stream
	continuity.
	(ParseLaunchComponent.set_pipeline): Install an eater continuity
	watch if needed.
	(ParseLaunchComponent.get_eater_template)
	(ParseLaunchComponent.parse_pipeline)
	(ParseLaunchComponent.get_feeder_template)
	(ParseLaunchComponent.get_queue_string)
	(MultiInputParseLaunchComponent.get_queue_string): Detwingle.

	* flumotion/component/feedcomponent.py
	(ParseLaunchComponent.get_eater_template): Fix naming of eater
	identities.

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

	* flumotion/launch/main.py (ComponentWrapper.eatFromFD)
	(make_pipes, start_components.do_start): Changes to make
	flumotion-launch work, after the eaterAlias changes.

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

	Restructure the FeedComponent and ParseLaunchComponent base
	classes to name their eaters by eaterAlias and feeders by feedName
	instead of by remoteFeedId and feedId, respectively. See #694.
	Incompatibly breaks the manager<->component interface, because the
	manager needs to refer to eaters internally and over the wire by
	eaterAlias and not by the id of the feeder that they initially
	eat from.

	* flumotion/manager/component.py (ComponentAvatar.attached):
	Revert #721; this function spewed warnings on manager restart, and
	will be obviated by virtual feed-related changes.
	(ComponentAvatar.getFeedersForEaters)
	(ComponentAvatar.getEatersForFeeders)
	(ComponentHeaven._connectEaters)
	(ComponentHeaven._connectFeeders): Refactor a bit, reflecting the
	fact that we can refer to individual eaters by eaterAlias.
	(ComponentHeaven._connectEaterUpstream): Pass the eaterAlias to
	the remote eatFrom call.

	* flumotion/component/feedcomponent.py (FeedComponentMedium): Some
	data structure keying updates. Don't connect to feed-ready, the
	manager doesn't do anything with it. (Dunno why.)
	(FeedComponentMedium.remote_eatFrom): Add the eaterAlias argument,
	an incompatible remote method signature change.
	(FeedComponentMedium._getAuthenticatorForEater): Change from
	_getAuthenticatorForFeeder, take an eaterAlias instead.
	(FeedComponentMedium.connectEater): Take an eaterAlias instead.
	(FeedComponentMedium.remote_feedTo): A minimal update attempt, but
	the code is bitrotten.
	(ParseLaunchComponent.add_default_eater_feeder)
	(ParseLaunchComponent.parse_tmpl)
	(ParseLaunchComponent.parse_pipeline):
	(MultiInputParseLaunchComponent.get_queue_string): Rewrite the
	template parsing code to be more simple, and to not encode remote
	feeder names into eater element names. See #694.

	* flumotion/component/base/eaters.glade:
	* flumotion/component/base/admin_gtk.py (FeedersAdminGtkNode)
	(EatersAdminGtkNode): Update for uistate changes; show feedId
	separately from the eaterName in the eaters page.

	* flumotion/component/feedcomponent010.py (Feeder): Key by
	feederName instead of feedId; including the component name is
	redundant.

	* flumotion/component/feedcomponent010.py (Eater): Key by
	eaterAlias instead of by the id of the feed that we initially eat
	from. Adds new uiState keys 'eaterName' and 'eaterAlias', and
	moves 'eaterId' to be named 'feedId' in the connections dict.
	(Eater.connected): Add argument feedId, to indicate which feed we
	are eating from.

	* flumotion/component/feedcomponent010.py (FeedComponent.init):
	Remove 'eaterNames' and 'feederNames' from the jobstate, they were
	not used. Publicize self.eaters and self.feeders, which are keyed
	by eater alias and feeder name, respectively.
	(FeedComponent.do_setup): Simplify the parsing of the 'eater' and
	'feed' config keys.
	(FeedComponent.get_eater_names, FeedComponent.get_feeder_names)
	(FeedComponent.get_feed_names): Removed, along with the
	attributes. Use component.eaters and component.feeders directly.
	(FeedComponent.bus_message_received_cb): Deal with changes; nasty
	in all cases.
	(FeedComponent.isEaterActive): New function, for switch. Needs
	review; probably better to have an isActive() method on eaters
	directly.
	(FeedComponent.get_element): Warn if the element is not found.
	(FeedComponent.eatFromFD): Add argument, eaterAlias. An
	incompatible change. Pass it on to Eater.connected().

	* flumotion/component/converters/overlay/overlay.py
	(Overlay.get_pipeline_string): Simplify.

	* flumotion/component/combiners/switch/switch.py: Some changes to
	attempt to make things work, but switch in trunk wasn't working
	anyways. Fix later...

	* flumotion/component/feed.py (FeedMedium.__init__): Remove the
	legacy mode of operation where the FeedMedium would automatically
	call eatFromFD on the component. requestFeed is the replacement.

	* flumotion/test/test_component_feed.py
	(TestUpstreamFeedClient.testConnectAndFeedLegacy): Since we
	removed the legacy interface on FeedMedium we can remove this test
	as well.
	* flumotion/test/test_component_feed.py (TestUpstreamFeedClient):
	Update tests to cope with FeedMedium changes.

	* flumotion/test/test_manager_manager.py
	(FakeComponentMind.remote_eatFrom): New arg in the prototype.

	* flumotion/test/test_component.py (TestExpandElementName):
	Removed, as the complicated code that it tested is gone. Yay!
	(TestParser): Update the tests to reflect what the new code should
	do.

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

	* flumotion/component/feedcomponent.py
	(FeedComponentMedium.remote_eatFrom): Remove a FIXME, we will drop
	the old connection when the new connection suceeds, not when we
	start connecting.

	* flumotion/common/config.py (upgradeAliases, UPGRADERS): Add an
	upgrader for eater alias changes.
	(buildEatersDict): Instead of returning the eater config property
	as a list of feedIds, have it be a list of feedId, eaterAlias
	tuples. The eaterAlias will be constant across the lifetime of the
	component, but in the future the manager will be able to switch
	the feedId that the component is eating from. See #694.

	* flumotion/test/test_config.py
	(TestFunctions.testBuildEatersDict): Add some checks for the
	aliasing behavior.

	* flumotion/common/config.py:
	* flumotion/component/converters/overlay/overlay.py:
	* flumotion/component/feedcomponent.py:
	* flumotion/component/feedcomponent010.py:
	* flumotion/manager/component.py:
	* flumotion/manager/depgraph.py:
	* flumotion/test/comptest.py:
	* flumotion/test/test_component.py:
	* flumotion/test/test_component_httpstreamer.py:
	* flumotion/test/test_comptest.py:
	* flumotion/test/test_manager_depgraph.py: Update code and tests
	for changes to config['eater'].

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

	* flumotion/manager/manager.py
	(Vishnu._upgradeComponentConfig.upgradeFailedWarning):
	* flumotion/common/config.py (upgradeEaters, UPGRADERS): Move
	upgraders to config.py, where they're more appropriate. Manager
	CURRENT_VERSION automagically.
	(upgradeEaters): Fix bug caught by pychecker.

	* flumotion/manager/manager.py (Vishnu._upgradeComponentConfig)
	(Vishnu._getComponentState): Factor out the config upgrading into
	a separate method.

	* flumotion/common/config.py (CURRENT_VERSION)
	(ConfigEntryComponent._buildConfig): Add a 'config-version'
	element to the config, to be incremented when the config needs
	upgrading.

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

	* flumotion/common/manhole.py (SSHPublicKeyChecker): Stub out if
	we have a twisted without ISSHPrivateKey.
	(SSHPublicKeyChecker): Try a different hack.

	* flumotion/manager/depgraph.py: Editorialize more.

	* flumotion/manager/depgraph.py: Add documentation for the
	depgraph, along with some editorials.

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

	* flumotion/common/boot.py:
	  Fail to start if python is 2.5 or newer, and Twisted is older than
	  2.5.0

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

	* flumotion/admin/command/commands.py (do_managerinvoke): New
	command, invokes an arbitrary remote method on the manager.

	* flumotion/common/manhole.py (openSSHManhole)
	(openAnonymousTelnetManhole): New optional argument, the port
	number to request.

	* flumotion/component/plugs/Makefile.am (component_PYTHON):
	* flumotion/component/plugs/plugs.xml: Add to bundles and dist.

	* flumotion/component/plugs/manhole.py: New file, implements a
	manager plug that starts a manhole, either on ssh or telnet, and
	which can be opened or closed over the admin interface.

	* conf/Makefile.am (EXTRA_DIST):
	* conf/managers/default/manhole.xml: Add example for manhole plug.

	* flumotion/common/Makefile.am (flumotion_PYTHON):
	* flumotion/common/manhole.py: Add manhole module. MUAHAHA

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

	* flumotion/test/test_component_feed.py (FeedTestCase.tearDown):
	Appeasement.

	* flumotion/test/common.py (TestCaseWithManager.tearDown): Flush
	errors, in an attempt to appease twisted < 2.5.

	* flumotion/test/test_pb.py
	(Test_FPBClientFactory.flushNotAuthenticatedError)
	(Test_FPBClientFactory.tearDown): Reinstate some of the error
	flushing in an attempt to appease the bots.

	* flumotion/worker/medium.py:
	(WorkerClientFactory.gotDeferredLogin): Fix some nasties.

	* flumotion/admin/admin.py:
	* flumotion/component/bouncers/bouncer.py:
	* flumotion/component/bouncers/htpasswdcrypt.py:
	* flumotion/component/bouncers/plug.py:
	* flumotion/component/bouncers/saltsha256.py:
	* flumotion/component/component.py:
	* flumotion/manager/manager.py:
	* flumotion/test/common.py:
	* flumotion/test/test_checkers.py:
	* flumotion/test/test_component_feed.py:
	* flumotion/test/test_pb.py:
	* flumotion/twisted/checkers.py:
	* flumotion/twisted/credentials.py:
	* flumotion/twisted/pb.py:
	* flumotion/twisted/portal.py:
	* flumotion/worker/feedserver.py:
	* flumotion/worker/medium.py: Change to return
	errors.NotAuthenticatedError from authentication
	procedures/bouncers instead of cred.error.UnauthorizedLogin. This
	lets the error be serialized across a PB connection instead of
	causing a printout and a need for hacks in the test suite.
	Fixes #44.

	* flumotion/twisted/checkers.py (FlexibleCredentialsChecker):
	Don't subclass from InMemoryUsernamePasswordDatabaseDontUse, just
	pull its code in. Allows us to control the type of the returned
	failure (so it can be a pb.Error subclass).

	* flumotion/twisted/credentials.py (IUsernamePassword)
	(IUsernameHashedPassword): Re-export these from
	twisted.cred.credentials.

	* flumotion/twisted/pb/portal.py
	(BouncerPortal.getKeycardClasses): Don't return a failure here, as
	we don't have a pointer to the transport (so that we can drop the
	connection).
	(BouncerPortal.login): If we error because we have no bouncer,
	drop the connection as well. Otherwise both sides will chill in
	this state with an open TCP connection, and no reconnect attempts.

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

	* flumotion/component/bouncers/tokentest.xml: Final fix to get
	things working again.

	* flumotion/component/bouncers/tokentestbouncer.py: Fix a bug!

	* flumotion/component/base/http.py (HTTPAuthentication.__init__):
	Fix a bug.

	* flumotion/component/bouncers/tokentest.py: Changed to implement
	a token test base class and plug.

	* flumotion/component/bouncers/tokentestbouncer.py: New file,
	broken out of tokentest.py.

	* flumotion/component/bouncers/tokentest.xml: Note that the token
	test component moved to tokentestbouncer.py. Add registry things
	about the token test plug.

	* flumotion/component/bouncers/Makefile.am (component_PYTHON): Add
	tokentestbouncer.

	* flumotion/component/misc/httpfile/httpfile.py
	(HTTPFileStreamer.init HTTPFileStreamer.do_setup)
	(HTTPFileStreamer.do_stop, HTTPFileStreamer.do_start)
	(HTTPFileStreamer.requestFinished): Fix bugs related to httpauth
	factoring.

	* flumotion/component/consumers/httpstreamer/http.xml: Add
	BouncerPlug socket to httpstreamer.

	* flumotion/component/base/http.py (HTTPAuthentication): Change to
	not be a mixin. Add the beginnings of plug-based authentication.
	(HTTPAuthentication.authenticateKeycard)
	(HTTPAuthentication.keepAlive)
	(HTTPAuthentication.cleanupKeycard)
	(HTTPAuthentication.clientDone): Instead of being vmethods,
	standardize on what the component should provide for us. This
	doesn't work for keycards expired on httpfile, though.

	* flumotion/component/consumers/httpstreamer/http.py:
	* flumotion/component/consumers/httpstreamer/resources.py:
	* flumotion/component/misc/httpfile/httpfile.py:
	* flumotion/component/misc/httpfile/file.py:
	* flumotion/test/test_http.py: Update for making
	HTTPAuthentication not a mixin.

	* flumotion/test/Makefile.am (EXTRA_DIST): Add to dist.

	* flumotion/test/bouncertest.py
	(TrivialBouncerTest.setKeycardExpireInterval): New vmethod, so
	that test cases can virtualize this hack.

	* flumotion/test/test_component_bouncers_component.py: New test
	for the generic bouncer.

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

	* scripts/check-sync-on-feeds (usage, main, failed, getFeed,
	  gotFeedServerPort, managerConnected, gotPlanetState,
	  gotWorkerHeavenState):
	Made script connect to manager to get host name and port of
	feed servers.

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

	* flumotion/component/bouncers/component.py (Bouncer.do_start):
	Set the medium on the plug.
	(Bouncer.authenticate): Pass the right arguments to the plug.

	* flumotion/test/test_component_bouncers_bouncer.py:
	* flumotion/test/test_component_bouncers_plug.py: Refactor to use
	the base class.

	* flumotion/test/Makefile.am (EXTRA_DIST):
	* flumotion/test/bouncertest.py: Factored out a test base class.

	* flumotion/component/bouncers/plug.py (BouncerPlug.setMedium):
	New method to set the medium on a bouncer plug. Optional.
	(BouncerPlug.expireKeycardId): Actually do the callRemote.

	* flumotion/test/Makefile.am (EXTRA_DIST):
	* flumotion/test/test_component_bouncers_plug.py
	(TrivialBouncerTest): New test, taken from the one for the
	deprecated bouncer interface.

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

	* flumotion/common/common.py (version, mergeImplements,
	  parseComponentId):
	  Fix copyright header.  Remove pre-Twisted 2 stuff.  Add doc.

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

	* flumotion/wizard/save.py (Component.toXML):
	  Consistently use 2-space indent in config xml.

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

	* flumotion.spec.in:
	Add flumotion-nagios to spec.

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

	* scripts/check-sync-on-feeds (videoEventProbe, audioEventProbe,
	  sendNewsegments, videoBufferProbe, audioBufferProbe):
	Improve the debug logging.

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

	* scripts/check-sync-on-feeds:
	Script that probably could do with a bit of refactoring, to
	play back video and audio given video feeder and audio feeder
	details.
	Useful for checking sync at different points in a Flumotion
	flow.

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

	* bin/Makefile.am:
	* bin/flumotion-nagios.in:
	* configure.ac:
	* flumotion/Makefile.am:
	* flumotion/monitor/Makefile.am:
	* flumotion/monitor/__init__.py:
	* flumotion/monitor/nagios/Makefile.am:
	* flumotion/monitor/nagios/__init__.py:
	* flumotion/monitor/nagios/main.py (Mood, Mood.addOptions,
	  Mood.handleOptions, Mood.do, Mood._callback, Mood.gotMoodCb, Nagios,
	  Nagios.addOptions, Nagios.handleOptions, Nagios.parse, Nagios.cb,
	  Nagios.eb, Nagios.run, Nagios.connect, Nagios._connectedCb,
	  Nagios._connectedEb, main):
	* flumotion/monitor/nagios/util.py (LogCommand, LogCommand.__init__,
	  findComponent, ok, warning, critical):
	  Add a first stab at a flumotion-nagios binary, and an implementation
	  of the mood check.

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

	* flumotion/component/bouncers/Makefile.am: Autotoolage.

	* flumotion/component/bouncers/plug.py: New file, copied from
	bouncer.py, refactors bouncer functionality into a plug. The code
	for dealing with the uistate was removed, for better or for worse.

	* flumotion/component/bouncers/bouncer.xml: New file, declares the
	bouncer component, the bouncer plug bundles, and an implementation
	for the trivial bouncer. As yet untested.

	* flumotion/component/bouncers/component.py: New file, breaks out
	a generic bouncer component that can support bouncer plugs.

	* flumotion/component/bouncers/saltsha256.xml:
	* flumotion/component/bouncers/icalbouncer.xml:
	* flumotion/component/bouncers/ipbouncer.xml:
	* flumotion/component/bouncers/tokentest.xml:
	* flumotion/component/bouncers/htpasswdcrypt.xml: Depend on the
	base bouncer component bundle.

	* flumotion/component/bouncers/Makefile.am (component_DATA):
	* flumotion/component/bouncers/deprecated.xml: New file,
	registering a bundle for the current bouncer code, which will be
	deprecated.

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

	* flumotion/component/producers/playlist/playlist.py:
	  Remove queues; they're not needed add just add complexity.

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

	* doc/random/manager-dependency-graph:
	  Some docs on how we use the depgraph.
	* flumotion/test/test_feedcomponent010.py:
	  Increase a timeout; this test sometimes spuriously fails.

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

	* flumotion/test/test_porter.py:
	  Fix tests to shut down connections properly so we don't have pending
	  calls remaining.

2007-08-17  Arek Korbik  <arkadini@gmail.com>

	* flumotion/component/producers/playlist/playlist.py
	  (PlaylistProducer._watchDirectory):
	Block discovery while the watcher is first being started.

	* flumotion/component/producers/playlist/playlistparser.py
	  (PlaylistParser):
	Make discoverer blockable/suspendable, sort pending playlist entries
	before starting discoverer.
	  (PlaylistXMLParser.parseFile):
	Block discoverer until the whole file has been processed.

	* flumotion/test/test_component_playlist.py
	  (TestPlaylistXMLParser):
	Add tests for entry sorting and discovery blocking.

2007-08-17  Arek Korbik  <arkadini@gmail.com>

	* flumotion/component/base/watcher.py (BaseWatcher.checkFiles,
	  BaseWatcher.isNewFileStable):
	Make file watchers recognize old files (with mtime in the past) in
	the first scan.

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

	* flumotion/component/misc/porter/porter.py:
	  Implement porter client timeouts, so that we (reasonably quickly)
	  time out clients that connect to the porter but never send a
	  complete first line.
	  Change some debug/log statements to more appropriate levels.

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

	* flumotion/component/feedcomponent010.py:
	  Don't track inactive pad monitors separately; it's bug-prone and
	  makes subclassing this stuff harder than it needs to be.

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

	* flumotion/component/feedcomponent010.py:
	  Don't call methods that no longer exist.
	  Fixes #741.

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

	* flumotion/component/producers/playlist/playlist.py:
	  identity doesn't seem to handle new segments very well when syncing.
	  So, use two identities: one early in the pipeline with
	  single-segment=true, and one late in the pipeline doing
	  synchronisation.

2007-08-14  Arek Korbik  <arkadini@gmail.com>

	* flumotion/test/comptest.py (ComponentTestHelper.run_flow):
	Unbox DeferredList result properly.

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

	* flumotion/component/feedcomponent010.py:
	  Some fixes for EaterPadMonitor code; don't call None or cancel
	  already-called deferred calls.

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

	* flumotion/component/feedcomponent010.py
	  (FeedComponent.bus_message_received_cb):
	Check if the identity is actually the identity from an eater
	not just if it starts with 'eater'.

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

	* flumotion/component/feedcomponent010.py:
	  Refactor eater probes to use PadMonitor code.
	  Refactor PadMonitor to allow an EaterPadMonitor subclass to handle
	  the eater-specific things properly.
	  Some cleanups of unused code and variables.

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

	* flumotion/component/feedcomponent010.py
	  (FeedComponent.bus_message_received_cb):
	Only handle imperfect timestamps and offsets if they are
	actually from identity elements in the eaters.

2007-08-10  Arek Korbik  <arkadini@gmail.com>

	* flumotion/admin/admin.py (AdminModel.connection_error):
	Make the errback accept the deffered arg that it uses!

2007-08-09  Pedro Gracia  <pedro@flumotion.com>

	* flumotion/manager/component.py: removed componentId.

2007-08-09  Pedro Gracia  <pedro@flumotion.com>

	* flumotion/manager/component.py: now pass unittest.

2007-08-09  Pedro Gracia  <pedro@flumotion.com>

	* flumotion/component/feedcomponent.py:
	* flumotion/manager/component.py:
	  Reconect eaters from components when the worker is launched
	  with another IP address. references #721.

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

	* flumotion/component/producers/playlist/playlist.py:
	  Put the synchronising identity after the videorate/audiorate,
	  so that if there's a substantial gap in the video frames coming out
	  of the gnlcomposition, videorate can fill in frames so that we never
	  have to wait for synchronisation for too long.
	  Doesn't fix audio, as audiorate will output a single large buffer.

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

	* flumotion/component/producers/playlist/playlist.py:
	  Override some additional clocking related methods to ensure we have
	  sane behaviour when asked to provide a master clock.
	  Periodically report what our pipeline clock says the time is.

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

	* flumotion/component/combiners/switch/switch.py
	  (AVSwitch._check_start_times_received):
	Revert bad commit that set start-time differently for each switch
	element.

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

	* flumotion/component/base/http.py (HTTPAuthentication.__init__)
	(HTTPAuthentication.doCleanupKeycard)
	(HTTPAuthentication.cleanupAuth): If a call to cleanupKeycard
	fails, try again later.

	* flumotion/component/bouncers/bouncer.py (Bouncer.init): Make
	keycard ids shorter, no need to be so long.
	(Bouncer.expireKeycardId, Bouncer.addKeycard): Be less verbose,
	expiring happens all the time now.

	* flumotion/component/base/http.py (HTTPAuthentication.keepAlive):
	Fix argument count of unused method.

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

	* flumotion/component/feedcomponent010.py:
	  Fix build errors that I failed to commit properly last night?

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

	* flumotion/component/consumers/httpstreamer/http.py
	(MultifdSinkStreamer.do_stop)
	(MultifdSinkStreamer.do_start.turnHappy):
	* flumotion/component/misc/httpfile/httpfile.py
	(HTTPFileStreamer.do_stop)
	(HTTPFileStreamer.do_start.setComponentHappy): Start and stop the
	keepAlive callbacks.

	* flumotion/component/base/http.py (HTTPAuthentication.keepAlive):
	New vmethod.
	(HTTPAuthentication.authenticate): Set the issuerName and ttl.
	(HTTPAuthentication._stopKeepAlive)
	(HTTPAuthentication._scheduleKeepAlive):
	(HTTPAuthentication.KEYCARD_TRYAGAIN_INTERVAL)
	(HTTPAuthentication.KEYCARD_KEEPALIVE_INTERVAL)
	(HTTPAuthentication.KEYCARD_TTL): Infrastructure to send keepAlive
	requests to the bouncer.

	* flumotion/component/consumers/httpstreamer/http.py
	(HTTPMedium.keepAlive):
	* flumotion/component/consumers/httpstreamer/resources.py
	(HTTPStreamingResource.keepAlive):
	* flumotion/component/misc/httpfile/httpfile.py
	(HTTPFileMedium.keepAlive, HTTPFileStreamer.keepAlive): Implement
	the keepAlive hooks.

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

	* flumotion/component/feedcomponent010.py:
	  Fix some typos.

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

	* flumotion/component/producers/playlist/playlist.py:
	  Log when we expect an item to start/end, since this information is
	  difficult to recover from the existing log messages.

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

	* flumotion/component/feedcomponent.py:
	* flumotion/component/feedcomponent010.py:
	  Add more crack!
	  Remote method to attach a pad monitor to a named feeder.

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

	* flumotion/manager/base.py (ManagerAvatar.perspective_keepAlive):
	* flumotion/component/bouncers/bouncer.py
	(BouncerMedium.remote_keepAlive, Bouncer.keepAlive): Instead of
	passing all keycard IDs to be kept alive, instead pass an
	identifier of the object that initially issued the keycards. This
	to renew a keycard, you will have to mark the it with an
	issuerName.

	* flumotion/test/test_component_bouncers_bouncer.py
	(TrivialBouncerTest.testKeepAlive): Adapt test to new keepAlive
	semantics.

	* flumotion/twisted/pb.py (Authenticator.ttl): OK! Since, in
	challenge-response authentication we have to allocate a keycard id
	<-> challenge pair, and we use challenge-response authentication
	by default, default to 30 seconds of ttl, so that we keep the
	keycard long enough to recognize a valid response, but not too
	long so that we leak memory by default.

	* flumotion/worker/main.py (main): Remove unneccessary ttl=0 line.

	* flumotion/twisted/pb.py (Authenticator.ttl): Default to 0. There
	is no reason for the bouncer to cache keycards in authentications
	made with an authenticator, only in authentications made at
	streamers.

	* flumotion/worker/main.py (main): Give the authenticator a TTL of
	0, so that the manager never stores the keycards. Should fix
	keycard leaks in reconnecting worker<->manager,
	component<->manager, and component<->feedserver connections.

	* flumotion/twisted/pb.py (Authenticator.ttl): New attribute, None
	by default.
	(Authenticator.issue): If self.ttl is not None, attach it to the
	keycard.

	* flumotion/manager/base.py (ManagerAvatar.perspective_keepAlive):
	New remote call, allows something logged into the manager to keep
	any keycards that it has authenticated from being expired.

	* flumotion/component/bouncers/bouncer.py: More doc.
	(Bouncer.addKeycard): If the keycard has a ttl <= 0, don't bother
	adding it to our data structures.

	* flumotion/test/test_component_bouncers_bouncer.py
	(TrivialBouncerTest.testAutoExpire): New test.

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

	* flumotion/component/combiners/switch/switch.py:
	Remove commented crufty code.

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

	* flumotion/component/bouncers/bouncer.py: Doc more.
	(BouncerMedium.remote_keepAlive, Bouncer.keepAlive): Implement
	keepAlive.

	* flumotion/test/test_component_bouncers_bouncer.py
	(TrivialBouncerTest.testKeepAlive): Test for keepAlive.

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

	* flumotion/component/combiners/switch/switch.py
	  (AVSwitch._set_last_timestamp):
	Add warning message when timestamps of current source differ
	between video and audio by at least 10 seconds, when swicthing
	to new source.

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

	* flumotion/component/bouncers/bouncer.py
	(Bouncer._scheduleTimeout.timeout, Bouncer.authenticate):
	* flumotion/test/test_component_bouncers_bouncer.py
	(TrivialBouncerTest.testTimeoutAlgorithm)
	(TrivialBouncerTest.testTimeoutAlgorithm.checkTimeout)
	(TrivialBouncerTest.testTimeoutAlgorithm): s/expiration/ttl/.

	* flumotion/component/bouncers/bouncer.py: Add some module docs.
	(Bouncer.authenticate): Always return a deferred.
	(Bouncer.expireKeycardId): Be nice if we have no medium.

	* flumotion/test/test_component_bouncers_bouncer.py
	(TrivialBouncerTest.testAuthentication)
	(TrivialBouncerTest.testTimeoutAlgorithm): Refactor to assume that
	comp.authenticate() returns a deferred.

	* flumotion/component/bouncers/bouncer.py
	(Bouncer._scheduleTimeout.timeout, Bouncer._unscheduleTimeout):
	Infrastructure to time out keycards automatically if the keycard
	has a "ttl" attribute. Need to add support for resetting keycards'
	TTL values.
	(Bouncer.expireKeycardId): Actually pop out the keycard here,
	instead of waiting for confirmation.
	(Bouncer.expireAllKeycards): With expireKeycardId popping the
	cards, we need to iterate over a copy.
	(TrivialBouncer.do_authenticate): Add the keycard to the bouncer
	set.
	(Bouncer.do_stop): Implement so that we can cancel any pending
	calls.

	* flumotion/test/Makefile.am (EXTRA_DIST):
	* flumotion/test/test_component_bouncers_bouncer.py: New file,
	tests the trivial bouncer, and tests that timing out keycards
	actually works.

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

	* flumotion/component/combiners/switch/switch.py
	  (AVSwitch._set_last_timestamp):
	Logic mistake from yesterday, the stop-value needs to be
	set to the highest last timestamp of the 2 switch elements.

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

	* flumotion/component/bouncers/bouncer.py (Bouncer.init)
	(Bouncer.generateKeycardId): Make keycard ids more globally
	uniquer.

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

	* flumotion/component/combiners/switch/switch.py
	  (AVSwitch._check_start_times_received):
	Fix syntax error.

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

	* flumotion/component/combiners/switch/switch.py
	  (AVSwitch._set_last_timestamp,
	  AVSwitch._check_start_times_received):
	Change switch's behaviour to not assume the video and audio
	eaters for the same "source" (ie master or backup) are in
	sync.

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

	* flumotion/component/feedcomponent.py:
	  oops. No port argument to getMasterClockInfo()
	* flumotion/manager/manager.py:
	  Pass correct arguments to setMasterClockInfo() in deferred.

2007-08-02  Arek Korbik  <arkadini@gmail.com>

	* flumotion/launch/inspect.py (main):
	Don't use python2.5 features.

2007-08-02  Arek Korbik  <arkadini@gmail.com>

	* flumotion/launch/inspect.py:
	Add support for compound properties in flumotion inspect.

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

	* flumotion/admin/rrdmon/main.py:
	* flumotion/manager/main.py:
	* flumotion/worker/main.py:
	  When not daemonizing, don't fail to start.

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

	* flumotion/admin/rrdmon/main.py:
	* flumotion/manager/main.py:
	* flumotion/worker/main.py:
	  When daemonizing, default for daemonizeTo should be '/', not None.
	  Fixes #734.

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

	* flumotion/admin/admin.py (AdminModel.remote_log): Removed, not
	used since time memorial.

	* flumotion/test/common.py (useGtk2Reactor): Following popular but
	impolite demands, don't default to randomness.

	* flumotion/test/Makefile.am (EXTRA_DIST): Fix import, for the
	last time.

	* flumotion/test/common.py: Provide a way to use either the gtk2
	or the select reactor in tests. Fixes #675. By default choose
	randomly. Perhaps a bad idea?

	* flumotion/test/test_common_package.py: Reorder imports so
	reactor install workses.

	* flumotion/test/Makefile.am (EXTRA_DIST): Add signal mixin test,
	this time correctly.

2007-07-30  Arek Korbik  <arkadini@gmail.com>

	* flumotion/test/gtkunit.py (GtkTestCase.set_widget):
	flumotion-template does use the set_widget() method - revert part
	of the r5316.

2007-07-30  Arek Korbik  <arkadini@gmail.com>

	* flumotion/test/test_comptest.py (CompatTestCase.failUnlessFailure):
	FINE, just provide the whole method.

2007-07-30  Arek Korbik  <arkadini@gmail.com>

	* flumotion/test/test_comptest.py (CompatTestCase.failUnlessFailure):
	Fine, provide the method more explicitly.

2007-07-30  Arek Korbik  <arkadini@gmail.com>

	* flumotion.spec.in:
	Add flumotion-rrdmon.

2007-07-30  Arek Korbik  <arkadini@gmail.com>

	* flumotion/test/test_comptest.py (CompatTestCase, CompTestTestCase,
	  TestComponentWrapper):
	Add failUnlessFailure method (for Twisted 2.0 compatibility).

2007-07-30  Arek Korbik  <arkadini@gmail.com>

	* flumotion/test/test_comptest.py:
	Use assertEquals instead of failUnlessEquals (for Twisted 2.0
	compatibility).

2007-07-30  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/feedcomponent.py
	  (FeedComponentMedium.remote_setGstDebug):
	  Fix setting the debug stream to a glob.
	  Tested with bin/flumotion-command -m localhost:7531 invoke
	  /default/http-audio setGstDebug s multi*:5

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

	* flumotion/component/feedcomponent.py:
	* flumotion/component/feedcomponent010.py:
	  Keep master clock info. Provide it by a remote method.

	* flumotion/manager/component.py:
	* flumotion/manager/manager.py:
	  Store clock master info when a clockmaster logs in. Trigger
	  deferreds waiting for it.

2007-07-30  Arek Korbik  <arkadini@gmail.com>

	* flumotion/common/config.py:
	Add compound-property support: add xml-parsing and update config
	dict building methods.

	* flumotion/test/test_config.py:
	Add test cases for compound properties.

2007-07-30  Arek Korbik  <arkadini@gmail.com>

	* flumotion/common/registry.py:
	Add compound-property support: add RegistryEntryCompoundProperty
	class and parsing methods, update property parsing methods to look
	for 'compound-property'; modify RegistryWriter to print nested
	compound and simple properties properly.

	* flumotion/test/test_registry.py:
	Add test cases for compound properties.

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

	* flumotion/component/component.py: Don't import sys.

	* flumotion/admin/admin.py (AdminModel): This is a changelog for
	the last change to admin.py. It makes the AdminModel not be a
	gobject. It does not change the admin's interface. Apologies for
	the fuckups!

	* flumotion/common/signals.py (SignalMixin.emit): Iterate over a
	list copy.

	* flumotion/test/test_common_signals.py
	(TestSignalMixin.testDisconnect):
	* flumotion/common/signals.py (SignalMixin.connect): Return the
	signal ID.

	* flumotion/common/signals.py (SignalMixin.emit):
	* flumotion/test/test_common_signals.py
	(TestSignalMixin.testEmitSelf): Er, check to make sure that
	emitting also passes the self object.

	* bin/flumotion-admin.in: Don't import gstreamer, we don't use it.

	* data/glade/admin-wizard.glade:
	* data/glade/spyglass.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_overview.glade:
	* data/glade/wizard_shout2.glade:
	* data/glade/wizard_smoke.glade:
	* data/glade/wizard_soundcard.glade:
	* data/glade/wizard_source.glade:
	* data/glade/wizard_summary.glade:
	* data/glade/wizard_testsource.glade:
	* data/glade/wizard_theora.glade:
	* data/glade/wizard_tvcard.glade:
	* data/glade/wizard_vorbis.glade: Don't require gnome libs, we
	don't use them.

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

	* bin/flumotion-admin.in: Don't import gstreamer.

	* flumotion/component/consumers/httpstreamer/http.py
	(MultifdSinkStreamer): Don't register type; register signals via
	SignalMixin interface.

	* flumotion/component/consumers/preview/preview.py
	(Preview.get_pipeline_string):
	* flumotion/component/consumers/disker/disker.py
	(Disker._on_marker_start): No need to register gtypes.

	* flumotion/manager/main.py (main): Remove gstreamer arg munger.

	* flumotion/component/feedcomponent010.py
	(FeedComponent.__signals__): Define the signals via the mixin.

	* flumotion/component/component.py (BaseComponent): Don't import
	gobject. Make components have the SignalMixin; they are not
	GObjects any more.

	* flumotion/common/Makefile.am (flumotion_PYTHON):
	* flumotion/common/signals.py: New mixin, emulates the GObject
	connection mechanism in Python so that we can remove dependencies
	on GLib in more places.

	* flumotion/test/Makefile.am (EXTRA_DIST):
	* flumotion/test/test_common_signals.py: Tests for SignalMixin.

	* bin/flumotion-manager.in: Don't install the gtk2reactor, we can
	use the selectreactor.

	* flumotion/worker/job.py (CheckJobHeaven.__init__): Keep a pool
	of idle jobs for running checks.
	(CheckJobHeaven.getCheckJobFromPool): New function, tries to reuse
	an idle job instead of starting a new one every time.
	(CheckJobHeaven.runCheck.haveJob.haveResult): Don't kill the job
	right when it finishes; keep it around for a while in case we want
	to run another check on it. Makes the wizard fast again.

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

	* flumotion/extern/log/log.py:
	  Fix0r pychecker stuff broken by coloured-logs code.

2007-07-26  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* scripts/output-feed (usage, gotFeed, main):
	Add raw ghetto script (now using optparse) to connect to a
	feeder on a component running in a job.

2007-07-25  Arek Korbik  <arkadini@gmail.com>

	* flumotion/component/consumers/disker/disker.py
	  (Disker._plug_recording_started, Disker._plug_recording_stopped):
	Add plug socket checks, fixes #730.

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

	* flumotion/worker/main.py (main): Don't log our GStreamer
	version; we don't use GStreamer.

	* flumotion/worker/medium.py (WorkerMedium.remote_checkElements)
	(WorkerMedium.remote_checkImport): Run the new bundled functions
	instead of the in-process workerbrain functions. Fixes #667.

	* flumotion/worker/worker.py (WorkerBrain): Don't import
	gstreamer. Remove in-process check methods.

	* flumotion/worker/checks/check.py (checkImport, checkElements):
	Moved here, out of the worker brain.

	* flumotion/common/boot.py (boot): Always monkeypatch the reactor,
	even when not installing it.

	* bin/flumotion-worker.in: Don't import gtk or gstreamer.

	* flumotion/job/job.py (JobMedium.remote_bootstrap): Allow
	operation without an authenticator.
	(JobMedium.remote_runFunction): New remote method, used to run
	checks on behalf of the worker.

	* flumotion/worker/medium.py (WorkerMedium.remote_runCheck):
	Rename from runFunction, but keep the old alias. Dispatch to the
	brain instead of running the function directly.

	* flumotion/worker/base.py (JobProcessProtocol.__init__): Use
	getWorkerName accessor.

	* flumotion/worker/job.py (ComponentJobAvatar)
	(ComponentJobHeaven): New avatar and heaven for checks. Runs
	checks in job processes. See #667.

	* flumotion/worker/worker.py (WorkerBrain.__init__)
	(WorkerBrain.listen, WorkerBrain.shutdownHandler): Make a
	checkHeaven, running alongside the heaven for jobs that start
	components.
	(WorkerBrain.runCheck): New function, fetches bundles, then asks
	the checkHeaven to run a check.

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

	* flumotion/worker/base.py:
	  Add an assertion to ensure that we aren't allowing duplicate logins
	  in the worker heaven.

2007-07-25  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/bouncers/bouncer.py (Bouncer.hasKeycard,
	  Bouncer.generateKeycardId, Bouncer.addKeycard):
	Split out keycard id generation from keycard addition. Useful
	for when a bouncer does not want to store keycards.

2007-07-24  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/combiners/switch/switch.py
	  (SingleSwitch.switch_to, AVSwitch.switch_to,
	  AVSwitch._check_start_times_received):
	Trivial reject for switching before pipeline configured.

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

	* flumotion/common/debug.py (UncollectableMonitor): New helper
	object, monitors for uncollectable objects without requiring
	pysizer.

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

	* flumotion/extern/Makefile.am (log_PYTHON): Dist/install log.py's
	new termcolor file.

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

	* flumotion/component/feedcomponent010.py:
	  Some fixes to PadMonitor code. Including making it threadsafe with
	  nasty trickery.
	* flumotion/test/test_feedcomponent010.py:
	  Unit tests for PadMonitors.

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

	* flumotion/component/feed.py (FeedMedium.stopConnecting): Drop
	any remote reference, just in case.
	(FeedMedium._doFeedTo): Drop the remote reference after the pb
	handshaking is finished and the transport is closed. Fixes
	uncollectable object leaks when reconnecting feeds.

	* flumotion/common/debug.py (AllocMonitor.analyze)
	(AllocMonitor._printCycle, AllocMonitor._printParents)
	(AllocMonitor._printKids): More informative printing of object
	cycles.

	* flumotion/test/test_component_feed.py (TestUpstreamFeedClient):
	Add assertions regarding the state of the feedmedium's reference
	to the RemoteReference.

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

	* flumotion/component/feedcomponent010.py:
	  Don't call twisted reactor methods from non-reactor threads.

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

	* flumotion/component/feedcomponent010.py:
	  Generalise the eater probes/data flow checks as a PadMonitor class,
	  so that other components can use it on other parts of a pipeline.
	  Partially (not yet fully) move the eater checks over to using it.

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

	* flumotion/common/debug.py (AllocMonitor): New object, uses
	PySizer (http://pysizer.8325.org/) to periodically monitor the
	python heap and print out information about allocations.

	* flumotion/test/test_common_netutils.py
	(TestRoutingTable.testRouteNamesOrder): New test, that
	getRouteNames() returns the names in the order in which they are
	first seen by the routing table.

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

	* flumotion/component/producers/playlist/playlist.py
	  (PlaylistProducer._buildAudioPipeline):
	Force output audio to be 16bit width and depth.

2007-07-23  Pedro Gracia  <pedro@flumotion.com>

	* flumotion/admin/gtk/client.py:
	Reverted changes from ticket #293. It's useful to stop
	components with mood different to 'happy'.

2007-07-23  Arek Korbik  <arkadini@gmail.com>

	* flumotion/test/Makefile.am:
	* flumotion/test/pond.py:
	* flumotion/test/comptest.py:
	* flumotion/test/test_pond.py:
	* flumotion/test/test_comptest.py:
	Rename 'Pond' -> 'ComponentTestHelper'.

2007-07-23  Arek Korbik  <arkadini@gmail.com>

	* flumotion/test/pond.py:
	Fix component clock synchronization and startup dealy code; turn
	some callback functions into less implicit helper functions.

	* flumotion/test/test_pond.py:
	Add tests for providing clocking info and for startup delays,
	remove redundant/useless tests, fix spelling, replace unclear
	callbacks.

2007-07-20 Pedro Gracia  <pedro@flumotion.com>

	* flumotion/admin/gtk/client.py:
	Closed ticket #293

2007-07-20  Arek Korbik  <arkadini@gmail.com>

	* flumotion/test/pond.py (Pond.set_flow):
	Don't use 9 lines of code where 1 is enough.

2007-07-20  Arek Korbik  <arkadini@gmail.com>

	* flumotion/test/pond.py (ComponentWrapper.get_unique_name,
	  Pond.do_stop, Pond.stop_flow):
	Don't use language elements not available in python2.3.

2007-07-20  Arek Korbik  <arkadini@gmail.com>

	* flumotion/test/pond.py:
	* flumotion/test/test_pond.py:
	* flumotion/test/Makefile.am:
	Add a component test helper class.

2007-07-20 Pedro Gracia <pedro@flumotion.com>

	* flumotion/wizard/steps.py:
	Webcam sizes are displayed ordered in its wizard step.

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

	* flumotion/common/planet.py:
	  We permit stopping a lost component in the manager (and in the
	  admin). Change the moods.can_stop() predicate to match; it's used in
	  flumotion-command (and private modules).

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

	* flumotion/component/feedcomponent010.py:
	  Fix Thomas's untested and broken message changes.

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

	* flumotion/manager/depgraph.py:
	  Don't execute things that are already set to true when progressing
	  through the depgraph.
	* flumotion/manager/manager.py:
	  When a happy running component logs back in, set things in the
	  depgraph in reverse order to avoid trying to restart it.

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

	* flumotion/manager/manager.py:
	  When a component reconnects that is already happy, clear
	  moodPending. It probably turned happy while it was disconnected.

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

	* flumotion/component/feed.py:
	  Call up to the right superclass.

	* flumotion/manager/component.py:
	  When looking for other components to connect feeders to, only
	  consider components that are fully logged in (i.e. where
	  componentAvatar.componentState != None).

	  Fixes #699 - components going sad when starting multiple components
	  at the same time.

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

	* flumotion/manager/component.py:
	  Import twisted.internet.error as terror, use terror where there's a
	  local function called error.

	* flumotion/manager/depgraph.py:
	  Add a comment.

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

	* flumotion/manager/depgraph.py:
	  Add some comments, simplify a bit of code.

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

	* flumotion/test/test_manager_depgraph.py:
	* flumotion/test/test_manager_manager.py:
	  Fix up testsuite for depgraph changes.

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

	* flumotion/manager/depgraph.py:
	  Remove Feeder, Eater classes, which are unused.
	  Make state dict contain a callable as well as a boolean for each DAG
	  node.
	  All methods that add a node now get passed a callable as well.
	  Remove whatShouldBeStarted entirely.
	  On _setState(True), call appropriate down-graph callables, if we
	  can.
	  All actions needed by the depgraph are now directly driven from the
	  depgraph code.
	* flumotion/manager/component.py:
	  Remove tryWhatCanBeStarted. Split the individual things out into
	  separate methods. These are used as callables in the depgraph now.
	* flumotion/manager/manager.py:
	  Changes for depgraph API additions.

	  Fixes #691.

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

	* flumotion/component/feedcomponent010.py:
	  Break up a translatable string so we reuse an existing one.

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

	* po/POTFILES.in:
	  Add feedcomponent010.py which contains translatable strings.

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

	* flumotion/admin/gtk/client.py:
	  Translatable strings with more than one variable need to be done
	  with a dict so translators can change ordering of strings.
	  Clean up some > 80 character lines.
	  Fix instances of "Failed to Stop component"

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

	* data/glade/greeter-start_new_error.glade:
	* data/glade/greeter-start_new_success.glade:
	  Set visible to False.  This fixes the "two small windows are
	  popping up when flumotion-admin starts" problem.  I have no idea
	  why it's fine for all the other steps' glade files to have this
	  set to True, but it seems it is.

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

	* common/common.mk:
	  Put coverage in _trial_coverage so other trial runs don't
	  remove the expensive coverage data.

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

	* flumotion/admin/gtk/main.py:
	  Add a FIXME.
	* flumotion/admin/gtk/wizard.py (Wizard, Wizard.finished):
	  Hide when we're finished.
	* flumotion/test/test_greeter.py (WizardTest.testGreeter):
	* flumotion/test/test_ui_fgtk.py (VUTest.testWidget):
	* flumotion/test/test_parts.py (TestAdminStatusbar.tearDown,
	  TestComponentsView.tearDown):
	  iterate the main context to make sure windows unmap during tests
	* flumotion/test/gtkunit.py:
	  remove an unused method

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

	* flumotion/component/feedcomponent010.py:
	  When switching fd for fdsrc in feed component pipelines, remove the
	  element from its parent rather than the toplevel pipeline.
	  Fixes components that put the source elements in a bin.

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

	* flumotion/component/base/http.py:
	  Don't accept a keycard with an id that's already in use.

2007-07-10  Arek Korbik  <arkadini@gmail.com>

	* flumotion/launch/inspect.py:
	Add printing of plugs' property description strings and
	right-align the property names. Fixes #717.

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

	* flumotion/worker/Makefile.am:
	* flumotion/component/consumers/disker/Makefile.am:
	  Dist files added recently so that installed flumotion works again.

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

	* flumotion/test/test_config.py:
	  Add a test that specifying a source for a component with no eaters
	  raises ConfigError.

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

	* flumotion/common/config.py:
	  If a <source> is specified for a component that has no eaters, raise
	  a ConfigError with an appropriate message.

	* flumotion/manager/manager.py:
	  If we fail to parse a config, call fail() instead of faile(), it
	  exists more.
	  Fixes #713.

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

	* flumotion/manager/depgraph.py:
	  Make the exception have correct text so I can follow what's going
	  on.

2007-07-06  Arek Korbik  <arkadini@gmail.com>

	* flumotion/component/consumers/disker/disker.py
	  (Disker.change_filename, Disker.stop_recording,
	  Disker._plug_recording_started, Disker._plug_recording_stopped):
	Add disker plug hooks. Remove duplication of code of the
	stop_recording() method.

	* flumotion/component/consumers/disker/disker_plug.py:
	Add base class for disker plugs.

	* flumotion/component/consumers/disker/disker.xml:
	Add disker plug registry entries.

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

	* flumotion/common/registry.py (RegistryDirectory._getFileLists):
	Fix error caught by pychecker.

	* flumotion/worker/worker.py (WorkerBrain.__init__): Adapt to
	jobheaven name change.

	* flumotion/worker/job.py (ComponentJobAvatar)
	(ComponentJobHeaven): Implement a special avatar and heaven for
	components. The intention is later to add analogs for checks run
	by workers; see #667.

	* flumotion/worker/base.py (_getSocketPath, JobInfo)
	(JobProcessProtocol, BaseJobHeaven, BaseJobAvatar): Factor some
	bits out into a base class.

	* flumotion/common/config.py (parsePropertyValue): Allow native
	bools and fractions, as we do with other types. Fixes #682.

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

	* flumotion/component/base/watcher.py:
	  %f is not a filename specifier. Fix warning logging.
	* flumotion/component/producers/playlist/playlist.py:
	  Don't throw KeyError when trying to unschedule something not
	  scheduled. Fixes #703.

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

	* flumotion/common/bundle.py (BundlerBasket.getDependencies):
	Handle case where bundle has no dependencies. Fixes #665, finally.

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

	* flumotion/component/producers/playlist/playlist.py:
	  Return item if we successfully scheduled it.
	* flumotion/component/producers/playlist/playlistparser.py:
	  Unlink item from list if we failed to schedule it, so we don't have
	  stale entries that we can't clean up properly.
	* flumotion/test/test_component_playlist.py:
	  Return item in FakeProducer as API now requires it.

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

	* flumotion/common/registry.py (RegistryDirectory.__init__)
	(RegistryDirectory._getFileLists): Keep a list of dirs to watch as
	well as files. Don't descend into .svn dirs.
	(RegistryDirectory.rebuildNeeded): Check the dirs as well.
	See #665.

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

	* flumotion/component/combiners/switch/switch.py
	  (Switch.switch_to_for_event, Switch.switch_to_cb):
	switch_to can return a deferred or a boolean, so callback
	on a maybeDeferred. Fixes pychecker warning of comparing to
	False.

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

	* flumotion/component/combiners/switch/patternswitch.py
	  (PatternEventSwitcher.checkConfig):
	Fix typo.

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

	* flumotion/common/fxml.py (Parser.checkAttributes): Remove
	unnecessary call to str().
	(Parser.parseAttributes): Don't call str() always; instead allow
	the caller to decide, while defaulting to the existing behavior.
	Fixes #661.

2007-07-04  Arek Korbik  <arkadini@gmail.com>

	* flumotion/component/combiners/switch/switch.xml:
	Fix misnamed dependency.

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

	* flumotion/admin/admin.py (AdminModel.connection_failed):
	connection_failed was being passed 3 arguments all the time,
	so make it take 3!

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

	* flumotion/common/config.py:
	* flumotion/component/feedcomponent010.py:
	  Change comment to not say that <source> is deprecated. It's not.
	* flumotion/test/test_config.py:
	  <source> has not been deprecated, rename test methods for clarity.

2007-07-03  Pedro Gracia <pedro@flumotion.com>

	* po/es.po: updated spanish translation.

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

	* conf/managers/default/flows/looper.xml:
	* conf/managers/default/flows/ogg-test-theora.xml:
	* conf/managers/default/flows/porter.xml:
	Change examples to use new eater syntax.

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

	* flumotion/manager/manager.py (Vishnu.getBundlerBasket): If the
	registry needs a rebuild, avoid scanning the directories twice.

	* flumotion/common/registry.py (RegistryDirectory.rebuildNeeded):
	Change from lastModified, returns whether a directory needs a
	rebuild. Catch OSError for missing files. Also see if the
	directory mtime changed to catch new files.
	(ComponentRegistry.rebuildNeeded): Check to see if the set of
	paths changed, as well.
	(ComponentRegistry._getRegistryPathsFromEnviron): New helper.
	(ComponentRegistry.verify): Use rebuildNeeded(), as it does
	everything we need. See #665. Fixes #641.

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

	* flumotion/admin/gtk/client.py (Window._clearMessages): Fix bug
	when the manager goes away.

	* flumotion/component/base/scheduler.py (Event.__init__): Add some
	assertions, and the ability to specify recur as a timedelta.
	(Scheduler.addEvent): Document recur as timedelta.

	* flumotion/admin/rrdmon/config.py (ConfigParser._parseSource):
	Require absolute filenames for <rrd-file>. Add <component-id>,
	also required. Add docs.

	* flumotion/admin/rrdmon/rrdmon.py: Actually implement. Add docs.
	Fixes #626.

	* conf/managers/default/flows/ogg-test-theora.xml: Fix up for The
	Great Renaming.

	* conf/rrdmon/default.xml: Fix up; require <rrd-file>.

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

	* flumotion/admin/gtk/componentview.py
	  (ComponentView.object_active_to_inactive):
	Keep compatibility with managers running older code.

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

	* flumotion/component/combiners/switch/patternswitch.py
	  (PatternEventSwitcher, PatternEventSwitcher.do_check,
	  PatternEventSwitcher.checkConfig,
	  PatternEventSwitcher.configure_pipeline):
	Get the pad as the value stored is a string not a pad!
	Validate the eater-with-stream-markers property value passed
	in.
	* flumotion/component/combiners/switch/switch.py
	  (Switch.switch_to_for_event):
	Fix some stupid logic.

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

	* flumotion/component/combiners/switch/Makefile.am:
	* flumotion/component/combiners/switch/patternswitch.py
	  (PatternEventSwitcher, PatternEventSwitcher.configure_pipeline,
	  PatternEventSwitcher._markers_event_probe):
	* flumotion/component/combiners/switch/switch.xml:
	New switch based component that switches based on patterns, similar
	to how the disker starts and stops based on patterns.
	* flumotion/component/combiners/switch/switch.py (Switch.eventStarted,
	  Switch.eventStopped, Switch.switch_to_for_event):
	Share code switch_to_for_event between ical event switching and
	"other" event based switching like pattern based.

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

	* flumotion/worker/job.py:
	  Make killJob work again by using the right variable. Jobs can now
	  again be killed from the admin.

2007-06-28  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/manager/manager.py (Dispatcher.setBouncer):
	Fix docstring.

2007-06-28  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/manager/manager.py (Dispatcher.__init__,
	  Dispatcher.setBouncer, Dispatcher._bouncerLogout,
	  Dispatcher.bouncerResponse, Dispatcher.bouncerError,
	  Dispatcher.removeAvatar, Vishnu.__init__, Vishnu.setBouncer):
	* flumotion/twisted/portal.py:
	Just set bouncer in dispatcher not the portal and move logout to
	the dispatcher.
	Addresses #696.

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

	* flumotion/worker/worker.py:
	  Don't run the shutdown handler twice, as it tracebacks if we do so.
	  Fixes #697.

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

	* configure.ac:
	* conf/rrdmon/default.xml:
	* bin/Makefile.am (bin_SCRIPTS):
	* bin/flumotion-rrdmon.in:
	* flumotion/admin/Makefile.am:
	* flumotion/admin/rrdmon/config.py:
	* flumotion/admin/rrdmon/main.py:
	* flumotion/admin/rrdmon/Makefile.am:
	* flumotion/admin/rrdmon/rrdmon.py:
	* flumotion/admin/rrdmon/__init__.py: Add scaffolding for a daemon
	that can monitor components' UIState keys, logging them to an RRD
	file.

	* flumotion/admin/multi.py (MultiAdminModel.removeListener): New
	method.
	(MultiAdminModel._managerConnected)
	(MultiAdminModel._managerDisconnected): New internal methods.
	Listen for reconnections. Fixes #664.
	(MultiAdminModel.addManager): Refactor to use the admin's deferred
	connection interface. This shows that the interface is sufficient.
	Fixes #621.
	(MultiAdminModel.removeManager): Remove reconnection signals, and
	treat the manager as disconnected immediately. No need to use
	deferred stops.

	* flumotion/test/test_admin_multi.py (MultiAdminTest): Use
	TestCaseWithManager.
	(MultiAdminTest.testConnectSuccess)
	(MultiAdminTest.testConnectFailure)
	(MultiAdminTest.testReconnect): Add tests.

	* flumotion/test/common.py:
	* flumotion/test/test_admin_admin.py: Move the TestCaseWithManager
	to common.py.

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

	* flumotion/component/feedcomponent010.py:
	  != != ==

2007-06-27  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/manager/manager.py (Dispatcher.__init__,
	  Dispatcher.setBouncerPortal, Dispatcher.removeAvatar,
	  Vishnu.__init__):
	  Pass bouncer portal to Dispatcher instead of Vishnu.
	  Check for existence of portal and bouncer before calling
	  logout, fixes test where there is no bouncer.

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

	* flumotion/component/feedcomponent010.py:
	  Pacify commentfascist.

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

	* flumotion/component/feedcomponent010.py:
	  Don't accept file descriptors for feeders unless we've actually
	  started the pipeline (READY or above).

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

	* flumotion/manager/component.py
	(ComponentAvatar.getEatersForFeeder): Pacify pyfascist.

	* flumotion/test/test_admin_admin.py (AdminTest.testReconnect):
	New test. Nifty!

	* flumotion/admin/admin.py (AdminModel.connectToManager): Some
	fixes to the deferred connection interface such that it respects
	keepTrying. The bit about keepTrying=True doesn't have tests yet
	though. See #621.
	(AdminModel.shutdown): Cancel the pending deferred connect, if
	there is one.

	* flumotion/common/errors.py (ConnectionCancelledError): New
	error.

	* flumotion/test/test_admin_admin.py (TestCaseWithManager.setUp)
	(TestCaseWithManager.tearDown): Add foo such that twisted
	exceptions don't cause errors. A better solution would be nice.
	(AdminTest.testConnectSuccess, AdminTest.testConnectFailure): New
	tests for the deferred connection interface.

	* flumotion/test/Makefile.am (EXTRA_DIST):
	* flumotion/test/test_admin_admin.py: New test, not quite fleshed
	out yet.

	* flumotion/manager/manager.py (Vishnu.shutdown): New method,
	mostly for test cases.

2007-06-27  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/manager/manager.py (Dispatcher.__init__,
	  Dispatcher.cleanup, Dispatcher.removeAvatar, Vishnu.__init__):
	* flumotion/twisted/portal.py (BouncerPortal.logout):
	Remove keycards from manager bouncer when clients disconnect
	from manager. Fixes #688.

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

	* flumotion/admin/admin.py
	(AdminModel.connectToManager.disconnected): Handle one case in
	which the returned deferred would not get fired. See #621.

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

	* flumotion/worker/job.py: Rename the _deferredStarts member to
	_startSet.
	(JobProcessProtocol.__init__): Finish some renaming.
	(JobProcessProtocol.processEnded): Port to startSet. This code is
	pretty hacky.
	(DeferredStartSet): Remove, replaced with the code in startset.
	(JobHeaven.__init__, JobHeaven.spawn, JobAvatar.setMind.success)
	(JobAvatar.perspective_cleanShutdown): Port to startset. Fix one
	part of [5207] that didn't get rolled back. Fixes #620.

	* flumotion/common/startset.py (StartSet.createRegistered): Commit
	a similar fix to the startset as the one Mike just committed to
	the copy in worker/job.py.

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

	* flumotion/manager/manager.py:
	  If a component with no manager-side state and no config logs in,
	  just immediately tell it to shut down and then disconnect it.
	  We can't possibly do anything useful with it other than this, and
	  the previous approach (creating a fake config) didn't handle it
	  right.
	  Fixes a private bug.

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

	* flumotion/worker/job.py:
	  Back out most of r5207, which didn't work right (it left stale
	  processes around).
	  Replace with a simpler patch that correctly handles restarting
	  components without temporarily making them sad.

2007-06-26  Christian Schaller <christian@fluendo.com>

	* data/91-flumotion-device-policy.fdi: Add
	policy file for HAL correct set device access

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

	* flumotion/manager/component.py (ComponentAvatar.getEaters):
	Return just the list of eater names.
	(ComponentAvatar.getFeedersForEater): New function, returns a list
	of remote feedIds to which an eater should connect.
	(ComponentAvatar.getFeeders, ComponentAvatar.getEatersForFeeder):
	Likewise for feeders, although getting eaters for feeders is more
	expensive. See #694.
	(ComponentHeaven._connectEaterUpstream)
	(ComponentHeaven._connectEaters)
	(ComponentHeaven._connectFeeders)
	(ComponentHeaven._connectFeederDownstream)
	(ComponentHeaven._startComponent): Break startComponent into its
	pieces.
	(ComponentHeaven._setupComponent): Remove some now-unnecessary
	code.

	* flumotion/test/test_manager_manager.py
	(testComponentEatersEmpty): Remove test of removed internal method.

2007-06-26  Sebastien Merle  <sebastien@fluendo.com>

	* flumotion/twisted/flavors.py (StateRemoteCache._notifyListeners):
	None was used as logging category, and it's not supported.

2007-06-26  Christian Schaller <christian@fluendo.com>

	* data/flumotion-admin.desktop.in: Update Categories according to
	these instructions:
	http://live.gnome.org/GnomeGoals/ApplicationCategory
	correct set device access

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

	* flumotion/test/test_component_feed.py (FeedTestCase): Split
	fixture out into base class.
	(TestUpstreamFeedClient): Rename from TestFeedClient so we can
	test downstream connections in a separate class.

	* flumotion/component/feedcomponent.py
	(FeedComponentMedium._getAuthenticatorForFeed): New helper.
	(FeedComponentMedium.connectEater): Attempt to identify ourself to
	the remote side with our fullFeedId, if possible.

	* flumotion/twisted/pb.py (RemoteAuthenticator.copy): New method,
	mostly useful if you want to log in with different avatarIds, as
	is the case for component eaters into a remote feedserver.

	* flumotion/component/feedcomponent010.py
	(FeedComponent._reconnectEater): Don't reconnect if we don't have
	a medium, as in flumotion-launch. Fixes #616.

2007-06-25  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/producers/firewire/firewire.py
	  (Firewire.get_pipeline_string):
	* flumotion/component/producers/firewire/firewire.xml:
	Add dv feeder for firewire. Uses patch from #632 with
	modification.
	Fixes #632.

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

	* flumotion/manager/component.py
	(ComponentAvatar._mindPropertyErrback)
	(ComponentAvatar.reloadComponent._reloadComponentErrback):
	* flumotion/common/boot.py (boot):
	* flumotion/configure/installed.py.in (get):
	* flumotion/configure/uninstalled.py.in (get):
	* flumotion/twisted/flavors.py (StateRemoteCache.addListener): Fix
	the fixes.

	* flumotion/manager/component.py
	(ComponentAvatar._mindPropertyErrback)
	(ComponentAvatar.reloadComponent._reloadComponentErrback):
	* flumotion/component/producers/screencast/screencast.py
	(Screencast.get_pipeline_string):
	* flumotion/admin/admin.py (AdminModel._callRemoteErrback):
	* flumotion/common/boot.py (boot):
	* flumotion/common/common.py (daemonize):
	* flumotion/twisted/flavors.py (StateRemoteCache.addListener):
	* flumotion/configure/uninstalled.py.in:
	* flumotion/configure/installed.py.in: Use safeprintf instead of
	print everywhere it can be called from a daemonized process.
	Fixes #613.

	* flumotion/component/consumers/httpstreamer/http.py
	(MultifdSinkStreamer.check_properties): Change to implement
	check_properties instead of do_check.

	* flumotion/component/component.py (BaseComponent.do_check): By
	default, call the check_properties vmethod.
	(BaseComponent.check_properties): New vmethod.
	(BaseComponent.setup): Rearrange some code; no semantic change.

	* doc/random/component-initialization-protocol (check_properties):
	New vmethod. Fixes #605.

2007-06-25  Arek Korbik  <arkadini@gmail.com>

	* flumotion/component/consumers/disker/disker.py
	  (Disker.configure_pipeline, Disker._markers_event_probe,
	  Disker._on_marker_stop, Disker._on_marker_start):
	* flumotion/component/consumers/disker/disker.xml:
	Make disker able to react to stream markers, take 2.

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

	* flumotion/component/base/admin_gtk.py (BaseAdminGtk.cleanup):
	Set uiState to None when we stop listening.
	(BaseAdminGtkNode.__init__, BaseAdminGtkNode.gotUIState)
	(BaseAdminGtkNode.render): Fix bug that could cause cleanup() to
	raise an exception, corrupting the state of the GTK+ UI.

	* flumotion/admin/gtk/componentview.py
	(ComponentView.get_widget_constructor): Rewrite to not be a
	defgen.
	(ComponentView.object_inactive_to_active.got_widget_constructor)
	(ComponentView.object_active_to_inactive): Increment callstamp
	when going to inactive, so we can simplify the check in
	got_widget_constructor. Add an assertion in got_widget_constructor
	that we don't already have a widget.

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

	* flumotion/component/feedcomponent010.py:
	  Revert an accidental commit from some days ago.

2007-06-25  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/admin/gtk/componentview.py
	  (ComponentView.object_active_to_inactive):
	widget in componentview can either be a gtk.Label or a
	NodeBook object. Handle case where it is not a NodeBook
	on removal of widget.
	Fixes #687.

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

	* flumotion/manager/main.py: Pacify pyfascist.

	* flumotion/component/producers/looper/looper.py
	(Looper.make_message_for_gstreamer_error): Make a nicer error if
	we can.

	* flumotion/component/feedcomponent010.py
	(FeedComponent.make_message_for_gstreamer_error): New public,
	overridable method.
	(FeedComponent.bus_message_received_cb): Call
	make_message_for_gstreamer_error so that components can give more
	informative messages. Fixes #598.

	* doc/random/component-initialization-protocol: Add documentation
	for make_message_for_gstreamer_error.

	* conf/managers/default/flows/looper.xml: Update for the great
	renaming.

	* flumotion/manager/main.py (_initialLoadConfig): No more need to
	catch errors and print here, as flumotion.manager.manager does the
	right thing now.

	* flumotion/manager/manager.py
	(Vishnu.loadComponentConfigurationXML): Set a file-specific
	message ID if the configuration is being loaded from a file. Catch
	UnknownComponentError, adding a message for that case, and generic
	exceptions as well.

	* flumotion/admin/gtk/client.py (Window.setPlanetState): Show any
	planet messages as soon as we have the planet state.

	* flumotion/component/feedcomponent010.py
	(Feeder.clientDisconnected): Pass the fd being disconnected to the
	client.
	(FeederClient.connected): If we already have an FD, process the
	UIState as if the old one had disconnected.
	(FeederClient._updateUIStateForDisconnect): Factored out of
	disconnect().
	(FeederClient.disconnected): Add FD argument. Only update the UI
	state if the fd being disconnected is the "current" one.
	Fixes #591.

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

	* flumotion/extern/log/log.py:
	  Fix epydoc warnings.

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

	* flumotion/component/consumers/httpstreamer/http.glade:
	  Fix HIG breakage done by Mike.

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

	* flumotion/admin/command/commands.py (do_invoke, do_workerinvoke):
	Run quit function (callLater of reactor.stop) in error cases where
	we yield None.
	Catch invokes on components that are not started and so manager sends
	us SleepingComponentError.

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

	* flumotion/component/feedcomponent010.py
	(FeedComponent._reconnectEater, FeedComponent.do_setup)
	(FeedComponent.init): No longer any need for lastConnectD, which
	was badly named anyway.

	* flumotion/component/feedcomponent.py
	(FeedComponentMedium.connectEater): Simplify via use of the
	FeedMedium's requestFeed, which is actually tested. As a new
	feature, cancel any pending connection before starting a new one.

	* flumotion/wizard/steps.py (Overlay.worker_changed_010): Fix so
	as to allow the user to proceed without PIL. We should use cairo
	instead, but whatevs...

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

	* flumotion/manager/manager.py:
	  If a component without config logs into the manager, add
	  'clock-master' and 'plugs' into the synthesised config we give it.
	  Should prevent KeyError: 'plugs' if someone/something tries to start
	  it (though starting it will still fail), and the clock-master will
	  prevent an exception being thrown that stops logout from completing
	  cleanly (which means that stopping the component doesn't work).

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

	* flumotion/component/producers/webcam/admin_gtk.py
	(component_effectPropertyChanged):
	* flumotion/component/producers/bttv/admin_gtk.py
	(component_effectPropertyChanged):
	* flumotion/component/feedcomponent010.py (effectPropertyChanged):
	Remove, the property change notifications now go through UI
	states.

2007-06-20  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/consumers/disker/disker.py
	  (Disker.change_filename):
	Add extensions for flv and ts.

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

	* flumotion/component/feedcomponent010.py (FeedComponent.init):
	s/ as and when available//, thank Jeebus.

	* flumotion/manager/main.py (main): Parse all files for manager
	config, not just the first one.

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

	* flumotion/manager/main.py:
	* flumotion/manager/manager.py:
	  Start manager plugs once the reactor is running, as we used to.

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

	* flumotion/worker/job.py:
	  Fix call to killJobByPid()

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

	* flumotion/component/producers/screencast/screencast.py
	  (Screencast.get_pipeline_string):
	Force damage use to be false because it is broken and
	was probably always.

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

	* flumotion/job/job.py:
	* flumotion/worker/job.py:
	* flumotion/worker/worker.py:
	  Make the worker tracks jobs by PID, not avatarId, because avatarId
	  isn't unique when restarting components.
	  Fixes #683.

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

	* configure.ac:
	* flumotion/component/producers/Makefile.am (SUBDIRS):
	* flumotion/component/producers/screencast/Makefile.am:
	* flumotion/component/producers/screencast/__init__.py:
	* flumotion/component/producers/screencast/screencast.xml:
	* flumotion/component/producers/screencast/screencast.py: Add new
	producer, screencast-producer. See #579.

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

	* flumotion/component/combiners/switch/switch.py (Switch.cb,
	  AVSwitch.do_check, AVSwitch.checkConfig,
	  AVSwitch.get_pipeline_string):
	* flumotion/component/combiners/switch/switch.xml:
	Add caps properties to the audio video switchers so that
	they force both master and backup streams going into the
	switch elements to be of same caps.

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

	* flumotion/component/producers/videotest/videotest.py
	  (VideoTest.get_pipeline_string):
	* flumotion/component/producers/videotest/videotest.xml:
	Force the src caps to have a pixel-aspect-ratio.
	This is needed for any downstream component that wants
	to videoscale to pixel aspect ratio 1/1. It is a workaround
	for a GStreamer bug in videoscale that currently has no
	resolution date.

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

	* flumotion/manager/manager.py
	(Vishnu.loadComponentConfigurationXML): Add a message to the
	planet state if the config XML fails to parse. Fixes #578.

	* conf/managers/default/flows/porter.xml: Fix up for The Great
	Renaming.

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

	* flumotion/component/combiners/switch/admin_gtk.py
	  (SwitchingNode.stateSet):
	Pass the actual signal id not the dict :)

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

	* flumotion/admin/gtk/componentview.py (NodeBook.__init__): Avoid
	calling show_all in a way that would unconditionally show
	admin/gtk contents. Fixes #575, I think, although that bug was
	filed when the code was significantly different.

	* flumotion/test/test_manager_manager.py: Import common, so that
	we set up logging &c.
	(FakeWorkerMind.waitForComponentsCreate): New method, keeps track
	of the deferreds returned from _loginComponent, so that later one
	can wait for them all to be given avatars.
	(TestVishnu._requestAvatar.got_result): Don't call
	reactor.iterate. Fixes #569.
	(TestVishnu.testConfigBeforeWorker.gotWorker)
	(TestVishnu.testConfigAfterWorker.loadConfigAndOneWorker): Wait
	for components to log in before verifying things.
	(TestVishnu._logoutAvatar): Remove one more call to
	reactor.iterate; fortunately this one seems superfluous.

	* flumotion/twisted/flavors.py (StateRemoteCache.addListener): Add
	a note to remove this in 0.6.

	* flumotion/test/test_component_feed.py (TestFeedClient.tearDown):
	* flumotion/test/test_pb.py
	(Test_FPBClientFactory.flushUnauthorizedLogin): Avoid deprecated
	log flush method for twisted 2.5.

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

	* flumotion/common/common.py (_acquirePidFile, writePidFile)
	(daemonizeHelper): Open the PID file for writing before forking.
	Fixes #558.
	(_acquirePidFile): Hush pychecker.

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

	* flumotion/component/combiners/switch/admin_gtk.py
	  (SwitchingNode.__init__, SwitchingNode.stateSet):
	Use signal blocks to stop extra remote calls unnecessarily.

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

	* flumotion/admin/gtk/componentview.py
	  (ComponentView.object_active_to_inactive):
	* flumotion/component/base/admin_gtk.py (BaseAdminGtk.__init__,
	  BaseAdminGtk.cleanup, BaseAdminGtkNode.__init__,
	  BaseAdminGtkNode.cleanup):
	Actually remove the ui state listeners when removing admin
	widgets.
	Fixes #674

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

	* flumotion/component/base/scheduler.py:
	Remove unused variables.

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

	* flumotion/component/base/scheduler.py (ICalScheduler.parseCalendar):
	Gracefully handled errors in parsing an event.

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

	* flumotion/component/producers/playlist/playlist.py:
	* flumotion/component/producers/playlist/playlist.xml:
	  Configurable default pattern/wave for playlist.

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

	* flumotion/manager/component.py:
	  Don't detach unattached avatars.

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

	* flumotion/component/combiners/switch/basicwatchdog.py
	  (SingleBasicWatchdog, SingleBasicWatchdog.eaterSetInactive,
	  SingleBasicWatchdog.eaterSetActive):
	Fix SingleBasicWatchdog to actually work.
	* flumotion/component/combiners/switch/switch.py
	  (Switch.eaterSetActive):
	Use a platform-3 backportable way of figuring out if component
	has started.

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

	* flumotion/component/feedcomponent.py
	  (MultiInputParseLaunchComponent.get_pipeline_string):
	* flumotion/component/feedcomponent010.py (FeedComponent.do_setup,
	  FeedComponent.parseEaterConfig):
	Forward port from platform-3 of fix when upgrading managers
	without restarting.

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

	* flumotion/component/combiners/switch/switch.py (Switch.cb):
	* flumotion/component/consumers/disker/disker.py
	  (Disker.update_symlink, Disker._client_error_cb,
	  Disker.configure_pipeline):
	Actually show warnings in admin ui when ical file is not
	parsable and when ical file has been specified but the python
	modules required are not installed on worker.
	Fixes #671
	Fixes #670

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

	* flumotion/component/base/scheduler.py (Event.__init__,
	  ICalScheduler.parseCalendar):
	Fix where we have a recurrence rule with dtstart/dtend with non
	UTC timezone.
	Fixes #673
	Fix debug statement.

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

	* flumotion/admin/gtk/client.py:
	  Sort author names by surname, rather than mostly by first name but
	  with new people randomly added to the bottom.
	  Add Arek.

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

	* flumotion/component/base/eaters.glade:
	* flumotion/component/base/feeders.glade: Fix some spacing issues;
	unfortunately one of the things that we have lost is consistent
	horizontal alignment between column 2 of different tables.
	Something to fix in the future. But do not do so via reintroducing
	homogeneous tables, that makes the page way too wide. See #540.

	* flumotion/component/base/admin_gtk.py
	(FeedersAdminGtkNode.setFeederClientLastConnect)
	(FeedersAdminGtkNode.setFeederClientLastDisconnect)
	(FeedersAdminGtkNode.setFeederClientLastActivity)
	(EatersAdminGtkNode._setEaterConnectionItem)
	(EatersAdminGtkNode._setEaterConnectionItem)
	(EatersAdminGtkNode._setEaterLastConnect): Use formatTimestamp so
	that the timestamp isn't quite so wide.

	* flumotion/common/common.py (formatTimeStamp): New function,
	formats a timestamp.

	* data/glade/admin.glade: Prevent irritating effect whereby
	component UI can leave artifacts on the vpane's handle.

	* flumotion/admin/gtk/client.py (Window.admin_disconnected_cb):
	Disconnect from the planet state, clear messages, and clear the
	component list when we disconnect, not when we reconnect. Fixes
	#520 and similar.

	* flumotion/twisted/flavors.py
	(StateRemoteCache._notifyListeners): Warn if an exception is
	raised in a StateCache handler. Fixes #512.

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

	* flumotion/manager/manager.py:
	  Raise appropriate exceptions rather than KeyError or AttributeError
	  when invoking remote methods on already-deleted components.
	  Raise a more specific exception type when trying to stop a component
	  that is already stopped.
	  Fixes #652, #653, #654.

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

	* flumotion/test/test_component_base_scheduler.py
	(SchedulerTest.testSimple): Add test.

	* flumotion/component/base/scheduler.py (Event.__repr__): Add a
	nice repr.
	(EventStore): New class inheriting from AVLTree, warns when an
	identical event is added instead of throwing an exception.
	(Scheduler.replaceEvents): Use EventStore rather than the base
	AVLTree.

	* flumotion/admin/gtk/client.py (Window.__init__)
	(Window._setAdminModel, Window._create_ui, show_component)
	(_instanceSetup, _setupCallback, _setupErrback)
	(_nodeRenderCallback, _nodeRenderErrback)
	(_setCurrentComponentCallback, Window.stateSet)
	(_component_view_set_widget, _component_view_clear):
	(Window.property_changed_cb, Window._remove_component): Remove
	cruftiness!
	(Window.admin_connected_cb)
	(Window._components_view_has_selection_cb): Tell the component
	view about the selected object.

	* flumotion/admin/gtk/Makefile.am (component_PYTHON):
	* flumotion/admin/gtk/componentview.py: New file, pulled in from
	f-g-c. Fixes #459, I think.

	* flumotion/admin/admin.py (AdminModel): Remove unused
	component-property-changed signal.

	* data/glade/admin.glade: Use the componentview.

	* flumotion/common/bundle.py (Unbundler.unbundle): Write files
	atomically. Fixes #373.
	(Unbundler.unbundle): Er, fdopen with 'wb'.

	* flumotion/admin/admin.py (AdminModel.connectToManager):
	* flumotion/job/job.py (JobMedium._createComponent):
	* flumotion/worker/medium.py (WorkerMedium.startConnecting):
	* flumotion/common/server.py (Server.startSSL): When asked to
	listen or connect with SSL, first assert that it is available, so
	that we get a common exception. Fixes #371.

	* flumotion/common/errors.py (NoSSLError):
	* flumotion/common/common.py (assertSSLAvailable): New utility,
	asserts that SSL is available, raising NoSSLError if that is not
	the case.

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

	* flumotion/component/base/scheduler.py (Scheduler._eventStarted)
	(Scheduler._eventStopped): Call eventStarted and eventStopped with
	the whole event, not just the content. Fixes to match
	documentation and the code in the disker.

	* flumotion/test/test_component_base_scheduler.py
	(SchedulerTest.testSimple): Expect the events, not the content in
	the event callbacks.

	* configure.ac: Only check for codegen things if we have the other
	dependencies to build the trayicon (GTK and python.h). Now there
	are no mandatory GTK+ checks, note that the pygtk one checks for
	pygtk.py, a part of pygobject. Fixes #224.

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

	* flumotion/component/bouncers/admin_gtk.py:
	  Don't use variables that don't exist in HTPasswd bouncer admin.

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

	* flumotion/component/producers/webcam/webcam.py
	(Webcam.get_pipeline_string): (comment)

	* flumotion/component/consumers/httpstreamer/http.py
	(MultifdSinkStreamer.configure_pipeline): Add a message if we have
	to reduce the client limit, fixes #214.

	* flumotion/wizard/steps.py (HTTP): Hook up the checkbuttons to
	spinbutton sensitivity, and only save limits if the checkbuttons
	were on.

	* data/glade/wizard_http.glade: Add checkbuttons beside user-limit
	and bandwidth-limit. Bandwidth limiting defaults to off. Default
	to a user limit of 500 to avoid rlimit issues.

2007-06-12  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/component.xml:
	I am stupid, I added combiners twice.

2007-06-12  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/component.xml:
	Bundle combiners.

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

	* flumotion/admin/command/commands.py (do_workerinvoke): Add new
	command, invokes a function on a worker.
	(do_workerinvoke): Fixor.

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

	* flumotion/component/misc/httpfile/file.py:
	  Add a debug statement to help track down unexpected/unexplained
	  exceptions in logs.

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

	* flumotion/twisted/fdserver.py:
	  Add more colon for Dirty Andy.

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

	* flumotion/twisted/fdserver.py:
	  If we receive an unconnected socket, log this, close it, and return,
	  rather than passing something that won't work properly to the new
	  client.

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

	* flumotion/component/base/http.py:
	  Don't return None from authentication errback; instead return the
	  failure.
	* flumotion/component/consumers/httpstreamer/http.py:
	  Don't add an errback to the authentication remote call that
	  swallows the failure.
	* flumotion/component/consumers/httpstreamer/resources.py:
	  Add an errback to prevent auth failures from reaching the logs as a
	  reactor traceback.
	* flumotion/component/misc/httpfile/file.py:
	  As above.

2007-06-08  Arek Korbik  <arkadini@gmail.com>

	* flumotion/component/producers/bttv/admin_gtk.py (BTTVAdminGtk.setup):
	Make sure setup() method returns a deffered.

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

	* flumotion/component/combiners/switch/basicwatchdog.py
	  (AVBasicWatchdog.eaterSetInactive, AVBasicWatchdog.eaterSetActive):
	* flumotion/component/combiners/switch/switch.py (Switch.init,
	  Switch.cb, Switch.eventStarted, Switch.eventStopped,
	  SingleSwitch.configure_pipeline, AVSwitch.configure_pipeline):
	Renamed startingEater to idealEater so the watchdog can know
	which eater is the current one it should switch to when it comes
	back online.

2007-06-07  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/combiners/switch/basicwatchdog.py
	  (SingleBasicWatchdog.eaterSetActive,
	  AVBasicWatchdog.eaterSetInactive, AVBasicWatchdog.eaterSetActive):
	Add debug, check to see if component has started before switching
	when eaters go inactive or active.
	* flumotion/component/combiners/switch/switch.py (Switch.init,
	  Switch.switch_to, Switch.eventStarted, Switch.eventStopped,
	  Switch.do_pipeline_playing, AVSwitch.get_pipeline_string,
	  AVSwitch.configure_pipeline):
	Add a flag that denotes whether component has started or not, used
	in watchdogs. Fix calls to non-existant methods. Make identity
	elements silent.

2007-06-07  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/admin/gtk/client.py (Window._instanceSetup):
	Fix bug where there is an exception in setup() of an
	admin gtk, we instead always were outputting setup()
	does not return a deferred.

2007-06-07  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/combiners/switch/basicwatchdog.py
	  (SingleBasicWatchdog.eaterSetActive):
	Bad logic in SingleBasicWatchdog. Fixed.
	* flumotion/component/combiners/switch/switch.py (Switch.eventStarted,
	  Switch.eventStopped, SingleSwitch.eaterSetActive,
	  AVSwitch._check_start_times_received, AVSwitch.eaterSetActive):
	Finish off the deferred firing and callback on response to ical
	events.
	Untested!

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

	* flumotion/component/producers/playlist/playlistparser.py:
	  Handle non-ascii filenames properly. Assumes a UTF-8 filesystem.

2007-06-07  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/combiners/switch/switch.py (Switch.init,
	  SingleSwitch.configure_pipeline, SingleSwitch.eaterSetActive,
	  AVSwitch.configure_pipeline):
	Add a set of deferreds and fire relevant ones when eater becomes
	active for the SingleSwitch case.
	Fix use of method name that has been renamed.

2007-06-07  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/combiners/switch/basicwatchdog.py
	  (SingleBasicWatchdog.eaterSetInactive,
	  SingleBasicWatchdog.eaterSetActive, AVBasicWatchdog.eaterSetInactive,
	  AVBasicWatchdog.eaterSetActive):
	Use renamed method name.

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

	* flumotion/component/producers/webcam/webcam.py
	(Webcam.get_pipeline_string): Support v4l or v4l2, depending on
	element-factory. v4l2 currently does not work because the driver
	needs to copy its buffers instead of having a limited set of mmap
	buffers.

	* flumotion/worker/checks/video.py (checkWebcam.tryV4L2): Add
	check for V4L2, only passes currently if you have CVS -good.

	* flumotion/component/producers/webcam/webcam.xml: Add optional
	property, element-factory, defaulting to v4lsrc.

	* flumotion/worker/checks/video.py (checkWebcam.probeDevice):
	* flumotion/wizard/steps.py (Webcam.run_checks)
	(Webcam.get_state): Add probed element factory name to check.

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

	* flumotion/component/combiners/switch/switch.py (Switch.init,
	  Switch.cb, SingleSwitch.configure_pipeline,
	  AVSwitch.configure_pipeline):
	If there are current events when we start, switch to correct
	eater when starting component. Untested!

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

	* flumotion/component/consumers/disker/disker.py
	(Disker.eventStarted, Disker.change_filename): When rotating from
	ical, take the rotate time from the ical event. Incidentally this
	time will be against the timezone specified in the ical file,
	either local or UTC. Update comment to document this. Untested!

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

	* flumotion/component/base/watcher.py:
	  Don't leak files that were seen changing but not stable, then
	  deleted. Remove code that deleted from the changing dict where it
	  wasn't possibly there.

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

	* flumotion/component/producers/playlist/playlist.py:
	  Add a message to component state when we fail to parse a file.
	  Remove this message if we later re-parse the file, or it is deleted.

	* flumotion/component/producers/playlist/playlistparser.py:
	  Fix base directory handling for relative paths in playlist files.
	  Don't raise KeyError when a file is removed after parsing it failed.

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

	* flumotion/component/base/watcher.py:
	  Don't mutate a dict we're iterating over; instead iterate over the
	  keys of the dict.

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

	* flumotion/manager/manager.py (Vishnu.fixOldEaterConfig):
	Only add an eater node in config if there are source nodes.

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

	* flumotion/manager/manager.py (Vishnu.fixOldEaterConfig):
	conf is a dict, don't use set!
	Fix up the source node in the config correctly on newly
	logging in components.

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

	* flumotion/component/combiners/switch/basicwatchdog.py
	  (AVBasicWatchdog.eaterSetInactive):
	Use correct method name.
	* flumotion/component/combiners/switch/switch.py (Switch.is_active,
	  SingleSwitch.configure_pipeline):
	Change to use get_eater_name_for_feed_id.
	Add some verbose debugging for seeing pads.
	* flumotion/component/feedcomponent010.py
	  (FeedComponent.get_eater_name_for_feed_id):
	Rename to get_eater_name_for_feed_id.

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

	* flumotion/worker/checks/video.py (checkWebcam): Erm, actually
	work.

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

	* flumotion/test/test_component_httpstreamer.py
	  (TestOldProperties.setUp):
	Fix test to have a full feed id.

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

	* flumotion/common/config.py (BaseConfigParser._parseFeedId,
	  BaseConfigParser.parseBool, BaseConfigParser._parseSource,
	  BaseConfigParser._parseEater):
	Finish move of checking full feed id to the parser.

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

	* flumotion/component/feedcomponent010.py
	  (FeedComponent.get_eater_name_for_feedId):
	Document new api for feedcomponent.

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

	* flumotion/worker/checks/video.py (checkWebcam):
	* flumotion/wizard/steps.py (Webcam):
	* data/glade/wizard_webcam.glade: Update to present discrete
	choices rather than spinbuttons.

	Patch by: Sebastien Merle  <sebastien@fluendo.com>

	* flumotion/admin/gtk/parts.py:
	* flumotion/admin/gtk/client.py:
	* flumotion/launch/parse.py:
	* flumotion/manager/manager.py:
	* flumotion/manager/admin.py:
	* flumotion/common/config.py:
	* flumotion/test/test_config.py:
	* flumotion/test/test_manager_manager.py:
	The components can now have a human-readable guaranteed label,
	which is set in the config dict. If not specified, no label will
	be set in the dict. Fixes #658.

2007-06-05  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/feedcomponent010.py
	  (FeedComponent.parseEaterConfig):
	Moved checking of full feed id to parser, so redundant.
	* flumotion/test/test_component.py (TestParser.testOneSource,
	  TestParser.testOneSourceWithout, TestParser.testTwoSources,
	  TestParser.testTwoBoth):
	Fix tests now that the component will not append :default
	for you.

2007-06-05  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/common/config.py (BaseConfigParser.parseFeedId):
	Make sure feedIds stored in eater dict are proper feedIds.
	* flumotion/manager/manager.py (Vishnu.parseFeedId,
	  Vishnu.fixOldEaterConfig, Vishnu.verifyExistingComponentState,
	  Vishnu.makeNewComponentState):
	Move common code out to new function. Translate feedIds to proper
	feedIds.

2007-06-05  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/test/test_component.py (PipelineTest.__init__,
	  PipelineTest.config):
	* flumotion/test/test_component_httpstreamer.py
	  (TestOldProperties.setUp):
	* flumotion/test/test_manager_depgraph.py
	  (testDepGraph._createComponent):
	Add source key back so that tests more accurately reflect reality
	because parser adds this key.

2007-06-05  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/converters/overlay/overlay.py
	  (Overlay.get_pipeline_string):
	Fix to use eater dict.
	* flumotion/component/muxers/multipart.py:
	Port to MultiInputParseLaunchComponent, turns out this fixes
	it to use eater dict.

2007-06-05  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/manager/manager.py (Vishnu.verifyExistingComponentState,
	  Vishnu.makeNewComponentState):
	Do not assume "default" as the eater name when building the
	eater dict. Use flumotion.common.config.buildEaterDict to do the
	actual building.
	Also handle the other case where component logging in has no
	eater dict in its config.

2007-06-05  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/manager/manager.py (Vishnu.verifyExistingComponentState):
	Handle case where logged in component has no eater dict in its
	config but does have a list of source(s). Manager config is
	changed to reflect component config + a generated eater dict
	based from source list.

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

	* flumotion/component/base/scheduler.py (LocalTimezone): New
	class, based on documentation of datetime.tzinfo.
	(now): New function, like datetime.now() but returns a datetime
	qualified against the local timezone.
	(Event.__init__): Make a datetime against the local timezone. If
	start or end times lack timezone info, log and interpret them as
	being against the local timezone.
	(Scheduler.addEvent, Scheduler.replaceEvents)
	(Scheduler._reschedule): Make datetimes against the local
	timezone.

	* flumotion/test/test_component_base_scheduler.py
	(EventTest.testSimple, EventTest.testUpdateRecurring)
	(EventTest.testComparison, SchedulerTest.testSimple): Use the new
	scheduler.now(), which returns a datetime against the local
	timezone.
	(EventTest.testTimeZones): New test, tests that dates without
	timezones are treated as local times.

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

	* flumotion/component/misc/httpfile/httpfile.py:
	Move fd arg to end of requestFinished.

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

	* flumotion/component/misc/httpfile/httpfile.py:
	Pass fd because loseConnection() may/will delete it.

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

	* flumotion/component/misc/httpfile/httpfile.py:
	Cleanup authentication dicts when a request ends. Fixes a big leak.

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

	* flumotion/component/misc/httpfile/httpfile.py:
	* flumotion/component/misc/httpfile/httpfile.xml:
	  Add support for configurable description to on-demand server as
	  well.

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

	* flumotion/component/consumers/httpstreamer/http.xml:
	  Add a description property (which the code already tries to use!)

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

	* flumotion/component/bouncers/icalbouncer.xml:
	* flumotion/component/consumers/disker/disker.xml:
	Add base-scheduler dependency on the component bundles.

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

	* flumotion/component/consumers/disker/disker.py:
	Add docs to how the filename strftime should work for
	ical triggered events.

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

	* flumotion/component/base/scheduler.py (Event.__init__,
	  Scheduler.addEvents, ICalScheduler.parseCalendarFromFile,
	  ICalScheduler.parseCalendar):
	Fix debug statement.
	Add new method addEvents that adds (and not replaces) events to the
	scheduler.
	Make parseCalendar return a list of events and not do the replace
	just yet.
	Make parseCalendarFromFile do the replace after running parseCalendar.
	* flumotion/component/consumers/disker/disker.py
	  (DiskerMedium.remote_scheduleRecordings, Disker.configure_pipeline):
	Fix regression of the remote method for scheduling additional
	recordings.

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

	* flumotion/component/misc/porter/porterclient.py:
	* flumotion/twisted/fdserver.py:
	  When creating a new connection in a porter client, get the socket
	  peer address immediately.
	  Use this to respond to getPeer() later, more closely mirroring
	  tcp.Server's behaviour.
	  Fixes errors in httpfile client shutdown in some cases.

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

	* flumotion/component/bouncers/icalbouncer.py (IcalBouncer.do_setup,
	  IcalBouncer.do_authenticate):
	Port ical bouncer to new scheduling code.

	* flumotion/component/consumers/disker/disker.py
	  (Disker.configure_pipeline):
	Fix typo.
2007-06-01  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/consumers/disker/disker.py
	  (Disker._notify_caps_cb, Disker.configure_pipeline,
	  Disker.eventStarted, Disker.eventStopped):
	Port of disker to new scheduling code.

2007-05-30  Michael Smith <msmith@fluendo.com>

	* flumotion/component/misc/httpfile/httpfile.py:
	  Two serious bugs fixed: connected-clients in the uiState should be
	  the number of clients currently connected, so don't try to put the
	  entire connected_clients list in there.
	  Don't use the wrong (non-existing) variable for the number of bytes
	  written for a running connection.

2007-05-30  Michael Smith <msmith@fluendo.com>

	* flumotion/worker/feedserver.py:
	  Thanks to Andy for pointing out that I forgot to actually commit the
	  change here:
	  Change to calling loseConnection() to drop the connection, since the
	  lambda trick only works with the selectreactor (not gtk2reactor).

2007-05-29  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/combiners/switch/switch.py (Switch.init,
	  Switch.cb, Switch.is_active, Switch.eventStarted,
	  Switch.eventStopped, AVSwitch.switch_to, AVSwitch._block_cb,
	  AVSwitch._block_switch_sink_pads):
	* flumotion/component/combiners/switch/switch.xml:
	Remove the code that waits for pad blocks to actually get called
	back, was unnecessary and cannot work for cases where no data
	gets transferred over some sink pads.
	Add ical scheduling code, with some FIXMEs for later.

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

	* flumotion/component/base/scheduler.py (ICalScheduler.__init__):
	Actually start the watcher.

	* flumotion/component/base/watcher.py (BaseWatcher.start): Add a
	comment.

	* flumotion/component/base/scheduler.py (Scheduler._reschedule):
	Only cancel the call if it hasn't been called yet. Fixes #650.

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

	* flumotion/worker/feedserver.py:
	  This code only passes the testsuite because the testsuite runs with
	  a different reactor (selectreactor, rather than gtk2reactor).
	  Drop the connection in a more sensible way...
	  Prevents leaking all connections to the feed server (eek!)

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

	* flumotion/manager/manager.py:
	  Don't remove messages we might not have added while we're still
	  proxying state from the remote side.
	  Fixes #582.

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

	* flumotion/test/test_manager_manager.py
	(TestVishnu.testLoadComponent.loadProducerFromFile): Can I blame
	Dirty Mike for this?

	* flumotion/launch/inspect.py (printMultiline): Clean up after
	Dirty Mike.

	* flumotion/test/Makefile.am (EXTRA_DIST):
	* flumotion/test/testLoadComponent.xml: Add forgotten file.

	* flumotion/manager/manager.py (Vishnu.loadComponent): Fix
	cutnpaste.

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

	* flumotion/launch/inspect.py:
	  Nicely format long descriptions.
	  Fixes #640.

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

	Patch by: Sebastien Merle  <sebastien@fluendo.com>

	* flumotion/manager/manager.py
	(Vishnu._updateStateFromConf.checkNotRunning): Clear any
	loadComponent messages here.
	(Vishnu.loadComponent): New method, loads just one component.
	Fixes #610.

	* flumotion/manager/admin.py
	(AdminAvatar.perspective_loadComponent): New remote method for
	admins, loads just one component.

	* flumotion/common/errors.py (ComponentWorkerConfigError): Remove
	this error, it's not used any more.

	* flumotion/common/config.py
	(ConfigEntryComponent._buildVersionTuple): Raise ConfigError
	instead of ComponentWorkerConfigError.

	* flumotion/test/test_manager_manager.py
	(TestVishnu.testLoadComponentWithSynchronization)
	(TestVishnu.testLoadComponent.loadProducerFromFile): New tests for
	loadComponent.

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

	* flumotion/manager/manager.py (Vishnu._addComponent): Only add a
	version mismatch warning if versions are really incompatible.
	(Vishnu._getComponentState.verifyExistingComponentState): If we
	post a stale-config message, just post the conf differences, not
	the entire dicts.

	* flumotion/common/common.py (checkVersionsCompat): New function,
	checks if versions are compatible in the sense of being able to
	use the same config files.

	* flumotion/manager/manager.py (Vishnu.addMessage): Change
	prototype to perhaps be easier.
	(Vishnu.addMessageObject): Fix typo.
	(Vishnu._addComponent): Clear any loadComponent-related messages
	for a component if we actually get to the point of calling
	addComponent.
	(Vishnu._updateStateFromConf): If, when loading a configuration,
	we find that there is already a component running with this name,
	warn the admin if the configurations are different without
	modifying the manager's state.
	(Vishnu.emptyPlanet): Clean all messages from the planet.
	(Vishnu._startComponents, Vishnu._loadComponentConfiguration): No
	need to pass conf in here.

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

	* flumotion/ui/trayicon.py:
	  Connect to the correct callback in the tray icon's right click menu.
	  Fixes #633.

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

	* flumotion/component/consumers/httpstreamer/admin_gtk.py:
	* flumotion/component/consumers/httpstreamer/http.glade:
	* flumotion/component/consumers/httpstreamer/http.py:
	  Display current stream bitrate in addition to lifetime average
	  bitrate.
	  Fixes #636.

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

	* flumotion/test/test_config.py (TestDictDiff.testHumanReadable)
	(TestDictDiff.testRecursive, TestDictDiff.testSimple): Testes.

	* flumotion/common/config.py (dictDiffMessageString, dictDiff):
	Add some awesome functions for diffing dicts of dicts and other
	things.

2007-05-28  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/common/config.py (BaseConfigParser._parseEater):
	Raise a ConfigError when an eater node is parsed without
	child feed nodes.

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

	* flumotion/component/feedcomponent010.py:
	  Make link() return a deferred that fires when the pipeline goes
	  playing; removes special-casing in statechange message handlers.
	* flumotion/component/feedcomponent.py:
	  Now that link() returns a deferred, use that deferred.
	* flumotion/component/consumers/httpstreamer/http.py:
	  If using a porter, don't go happy until we've logged in.
	  Fixes #537.

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

	* flumotion/component/consumers/httpstreamer/resources.py:
	  Improve positioning of parentheses.

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

	* flumotion/component/misc/porter/porter.py:
	  Use DeferredList correctly.

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

	* flumotion/manager/manager.py (Vishnu.addMessage)
	(Vishnu.addMessageObject, Vishnu.clearMessage): New methods to add
	messages to the manager's planet state.

	* flumotion/common/planet.py (ManagerPlanetState.__init__): Add
	messages.

	* flumotion/admin/gtk/client.py (Window.setPlanetState): Listen to
	planetState for messages from manager.
	(Window.stateSet)
	(Window._components_view_has_selection_cb.compSet)
	(Window._components_view_has_selection_cb, Window._clearMessages):
	Add hack so that after calling clear() on the messages view, that
	we re-add manager messages. Yay flumotion-admin?

2007-05-28  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/wizard/save.py (Component.toXML):
	Fix wizard creation of new eater config syntax.

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

	* flumotion/test/test_common_messages.py
	(SerializeTest.testDefaultMessageId): Add test that all messages
	have IDs, not just those whose ID was specified explicitly.

	* flumotion/common/messages.py (Message.__init__): Document the id
	attribute. If not given, construct a default ID from the
	translatable.
	(TranslatablePlural.defaultMessageId)
	(TranslatableSingular.defaultMessageId): Implement a method to
	determine a default message ID for messages made with this
	translatable.

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

	* flumotion/component/misc/porter/porter.py:
	  Oops; unbreak pychecker/buildbots.

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

	* flumotion/component/misc/porter/porter.py:
	  Fix porter shutdown path for proper socket file removal.

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

	* flumotion/component/misc/httpfile/httpfile.py:
	  Track the right deferred call, so we don't traceback on shutdown.

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

	* flumotion/component/producers/playlist/playlist.py:
	   GNonLin apparently likes leaving elements in PLAYING when you
	   remove them. Set them to NULL on removal. Hopefully this will fix
	   memory leaks.

2007-05-28  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/consumers/disker/disker.py
	  (Disker.change_filename):
	Log the disker's filename change more nicely for admins.

2007-05-25  Michael Smith <msmtih@fluendo.com>

	* flumotion/component/base/http.py:
	  Fix re-raising handled error in authentication in http components;
	  avoids useless/noisy traceback logging.
	  Fixes #623.

2007-05-25  Michael Smith <msmith@fluendo.com>

	* flumotion/component/consumers/httpstreamer/resources.py:
	  Reject clients using bandwidth limit if adding this client would
	  take us over the limit, not only if we're _already_ over the limit.
	  Fixes #217.

2007-05-25  Sebastien Merle  <sebastien@fluendo.com>

	* flumotion/common/config.py:
	Fixed a bug that made manager name become a list.
	Fixes #610

2007-05-24  Michael Smith <msmith@fluendo.com>

	* configure.ac:
	  Prod so that buildbots reautogen to get new po files.
	* po/de.po:
	  Fix so that the translation doesn't cause make errors.

2007-05-24  Michael Smith <msmith@fluendo.com>

	* po/de.po:
	  Add german translation.
	  Fixes #544.

2007-05-24  Michael Smith <msmith@fluendo.com>

	* flumotion/manager/manager.py:
	  Remove unused local to appease pychecker.

2007-05-24  Michael Smith <msmith@fluendo.com>

	* flumotion/twisted/portal.py:
	  If we have no bouncer, don't use log.error (which raises
	  SystemError, which isn't jellyable). Instead fail appropriately, so
	  that the connecting client (admin, etc) gets a clear error message.
	  Fixes #559.

2007-05-24  Michael Smith <msmith@fluendo.com>

	* flumotion/manager/manager.py:
	  When a component not known to the manager logs in, make sure we call
	  all the appropriate functions to rebuild the entire depgraph
	  correctly, not just fragments of it.
	  Fixes #574.

2007-05-24  Michael Smith <msmith@fluendo.com>

	* flumotion/test/test_common_messages.py:
	  Actually port a test to twisted 2 that was never ported.
	* flumotion/twisted/integration.py:
	  Another 1.3 compat chunk.

2007-05-24  Michael Smith <msmith@fluendo.com>

	* flumotion/test/common.py:
	* flumotion/test/test_dialogs.py:
	* flumotion/test/test_http.py:
	* flumotion/test/test_manager_manager.py:
	* flumotion/test/test_twisted_integration.py:
	  Remove more 1.3 compatibility code.

2007-05-24  Michael Smith <msmith@fluendo.com>

	* flumotion/twisted/Makefile.am:
	* flumotion/twisted/compat.py:
	  Restore minimal compat module; needed so that admins can work with
	  old managers/components.

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

	* flumotion/component/bouncers/ipbouncer.py
	(IPBouncer.do_authenticate): Accept challenge-response keycards,
	as they also support the address attribute.

	* flumotion/twisted/portal.py (BouncerPortal.login): Reset
	keycard.address if it is there.

	* flumotion/common/config.py (buildEatersDict): Document.
	(buildPropertyDict): Document.
	(buildPlugsSet): Document.

2007-05-23  Michael Smith <msmith@fluendo.com>

	* flumotion/test/test_component.py:
	  Rewrite this test in a twisted-2.0 compatible way.

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

	* flumotion/wizard/steps.py (Vorbis.worker_changed): Remove print.

	* flumotion/worker/job.py (JobAvatar.setMind.error): Fix debug
	statement which triggered tracebacks in error paths.

2007-05-23  Michael Smith <msmith@fluendo.com>

	* flumotion/test/test_defer.py:
	* flumotion/test/test_pb.py:
	  Remove deprecated uses of reactor.iterate() which aren't needed.
	  There are some remaining.

2007-05-23  Michael Smith <msmith@fluendo.com>

	* flumotion/component/component.py:
	  Allow the component to respond to getState() remote calls before
	  login is complete, so that we can (in a later version) avoid some
	  races (e.g. #624) in connecting components. Unfortunately we can't
	  do that right now or a new manager will break existing components.

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

	* flumotion/launch/parse.py (Component.complete_and_verify):
	Update for change to ConfigEntryComponent.

	* flumotion/common/config.py (ConfigEntryComponent._buildConfig)
	(ConfigEntryComponent.__init__, BaseConfigParser.parseComponent):
	Parse "project" attributes on components, and add them to the
	config dict.

	* flumotion/test/test_config.py
	(TestConfig.testParseComponentWithProject): Add a test for parsing
	<component> entries with project=foo.

	* flumotion/component/bouncers/ipbouncer.xml: Fix the xml.

	* flumotion/common/fxml.py (Parser.parseTextNode): Move here from
	config.py, and document. Accept CDATA_SECTION_NODE nodes.
	(Parser.parseTextNode): Raise self.parserError, not ConfigError.

	* flumotion/manager/manager.py
	(Vishnu.loadManagerConfigurationXML): Untested fix.

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

	* flumotion/test/test_component.py:
	  Fix parser error test, stop skipping it.

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

	* flumotion/component/bouncers/Makefile.am.
	* flumotion/component/bouncers/ipbouncer.xml:
	* flumotion/component/bouncers/ipbouncer.py: Add a bouncer to
	authenticate based on remote IP address. Shouldn't currently be
	used because we currently take address to be whatever the remote
	side set it to be; need to sanitize in remote_login in pb.py.
	See #167.

	* flumotion/common/config.py (parsePropertyValue): Reintroduce
	some old Py2.3 compat code.

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

	* flumotion/component/combiners/switch/basicwatchdog.py
	  (SingleBasicWatchdog.eaterSetInactive,
	  SingleBasicWatchdog.eaterSetActive, AVBasicWatchdog.eaterSetInactive,
	  AVBasicWatchdog.eaterSetActive):
	* flumotion/component/combiners/switch/switch.py (SwitchMedium,
	  SwitchMedium.remote_switchToMaster,
	  SwitchMedium.remote_switchToBackup, Switch.switch_to,
	  Switch.is_active, SingleSwitch.switch_to, AVSwitch.init,
	  AVSwitch.get_pipeline_string, AVSwitch._on_message,
	  AVSwitch.configure_pipeline, AVSwitch.switch_to,
	  AVSwitch._set_last_timestamp, AVSwitch._block_cb,
	  AVSwitch._block_switch_sink_pads, AVSwitch.on_pads_blocked,
	  AVSwitch._add_pad_probes_for_start_time,
	  AVSwitch._start_time_buffer_probe,
	  AVSwitch._check_start_times_received):
	Code dump. Changed some method names etc. Also made it switch almost
	reliably. Still have some issues that need resolving with respect to
	switching really fast between eaters with audio and video.

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

	* flumotion/test/test_component.py:
	  Oops; accidently committed stuff here; set back to skipping.

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

	* flumotion/component/producers/playlist/smartscale.py:
	  Older versions of gst-python don't have gst.Fraction.__float__, so
	  don't use it.

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

	* misc/pycheckerhelp.py
	* flumotion/admin/admin.py:
	* flumotion/admin/command/commands.py:
	* flumotion/admin/gtk/client.py:
	* flumotion/admin/gtk/parts.py:
	* flumotion/admin/text/admin_text.py:
	* flumotion/admin/text/greeter.py:
	* flumotion/admin/text/view.py:
	* flumotion/common/interfaces.py:
	* flumotion/common/keycards.py:
	* flumotion/common/medium.py:
	* flumotion/common/planet.py:
	* flumotion/common/server.py:
	* flumotion/component/base/admin_gtk.py:
	* flumotion/component/base/admin_text.py:
	* flumotion/component/bouncers/admin_gtk.py:
	* flumotion/component/bouncers/tokentest.py:
	* flumotion/component/component.py:
	* flumotion/component/consumers/httpstreamer/http.py:
	* flumotion/component/feed.py:
	* flumotion/component/feedcomponent.py:
	* flumotion/component/misc/httpfile/httpfile.py:
	* flumotion/job/job.py:
	* flumotion/manager/admin.py:
	* flumotion/manager/base.py:
	* flumotion/manager/component.py:
	* flumotion/manager/manager.py:
	* flumotion/test/Makefile.am:
	* flumotion/test/test_checkers.py:
	* flumotion/test/test_common.py:
	* flumotion/test/test_common_componentui.py:
	* flumotion/test/test_common_messages.py:
	* flumotion/test/test_common_planet.py:
	* flumotion/test/test_component.py:
	* flumotion/test/test_flavors.py:
	* flumotion/test/test_htpasswdcrypt.py:
	* flumotion/test/test_keycards.py:
	* flumotion/test/test_manager_manager.py:
	* flumotion/test/test_pb.py:
	* flumotion/test/test_saltsha256.py:
	* flumotion/test/test_twisted_compat.py:
	* flumotion/twisted/Makefile.am:
	* flumotion/twisted/checkers.py:
	* flumotion/twisted/compat.py:
	* flumotion/twisted/credentials.py:
	* flumotion/twisted/flavors.py:
	* flumotion/twisted/pb.py:
	* flumotion/ui/trayicon.py:
	* flumotion/wizard/worker.py:
	* flumotion/worker/feedserver.py:
	* flumotion/worker/job.py:
	* flumotion/worker/medium.py:
	* flumotion/worker/worker.py:
	  Kill twisted 1.3 compatibility code.

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

	* flumotion/launch/parse.py: Refactor to use the new things in
	config.py. Code reduction. ALSO! THIS IS COMMIT 5000!!!!

	* flumotion/common/config.py (buildPlugsSet)
	(ConfigEntryPlug.__init__)
	(BaseConfigParser.parsePlugs.parsePlug): Change so that a parsed
	plug entry doesn't have the socket; it doesn't seem to be
	necessary.
	(parsePropertyValue): Raise a ConfigError if a property fails to
	parse, with a hopefully helpful debug message.
	(ConfigEntryComponent.__init__): Give context to which component
	is being parsed.

	* flumotion/test/test_config.py
	(TestConfig.testParseManagerWithBogusPlug): Change the expected
	exception.

	* flumotion/worker/config.py (WorkerConfigXML.parseFeederports):
	Use common.strToBool.

	* flumotion/common/config.py (buildEatersDict)
	(parsePropertyValue, buildPropertyDict, buildPlugsSet): New
	exposed functions. Probably will be useful for -launch.
	(ConfigEntryComponent): Rewritten to do more: takes a parsed but
	potentially not valid input, validates it against the defs, and
	produces the canonical config dict.
	(ConfigEntryFlow.__init__): Add components list to constructor,
	and verify that it has unique component names.
	(BaseConfigParser): Rewrite so as to do no validation that would
	require the defs. Push component parsing down to here. Do all
	parsing via parseFromTable.
	(FlumotionConfigXML): Update for above changes; do validating
	parses via parseFromTable.
	(AdminConfigParser, ManagerConfigParser): Update for above
	changes.

	* flumotion/test/test_config.py (TestFunctions): Test one of the
	new functions we expose.
	(AdminConfigTest.testUnknownPlug): Change the expected assertion.

	* common/pychecker.mk (%.pychecker): New target, make
	flumotion/common/config.py.pychecker does a pycheck. Neat!

	* flumotion/common/registry.py (ComponentRegistry.getComponent)
	(ComponentRegistry.hasComponent)
	(ComponentRegistry.getComponents, ComponentRegistry.getPlug)
	(ComponentRegistry.hasPlug, ComponentRegistry.getPlugs): Use
	parser methods if they are available.

	* flumotion/common/errors.py (UnknownPlugError): New error.

	* flumotion/common/registry.py (RegistryParser.getPlug): Raise
	UnknownPlugError if the plug type is unknown.

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

	* flumotion/component/producers/playlist/README:
	  Add a brief readme for the playlist component.

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

	* flumotion/component/producers/playlist/playlist.py:
	  Handle removing playlist files, and changing existing files.

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

	* flumotion/component/producers/playlist/playlist.xml:
	  Add playlist-directory, base-directory properties. Make playlist
	  optional.

	* flumotion/component/producers/playlist/playlist.py:
	  Watch playlist-directory (if any) for changes. Currently only
	  supports adding new files. Read base directory and pass to parser.

	* flumotion/component/producers/playlist/playlistparser.py:
	  Use base directory to resolve relative paths.

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

	* flumotion/common/fxml.py (Parser.checkAttributes): Treat an
	empty attribute as missing; if you are going to specify foo="",
	you might as well leave it out.

	* flumotion/common/config.py
	(BaseConfigParser.parseVersionString): New util in the base class.
	(FlumotionConfigXML.__init__): Remove the call to parse() at
	__init__ time. No longer have a 'manager' attribute.
	(_ignore): Factor this util out to the module; update all users.
	(FlumotionConfigXML.parse): Use a table parser; no more
	"noRegistry" case.
	(FlumotionConfigXML._parseAtmosphere): Use a table parser.
	(FlumotionConfigXML._parseComponent): Use parseAttributes.
	(ManagerConfigParser._parseComponent): Actually parse the version
	string, doh...

	* flumotion/test/test_config.py (TestConfig.testParseWrongConfig):
	Update to reflect semantic XML parsing at parse() time, not
	__init__() time.
	(TestConfig.testParseComponentNoWorker)
	(TestConfig.testParseComponentNoWorker): Update to expect
	different exception.

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

	* flumotion/component/producers/playlist/playlist.py:
	  Add getCurrentPosition function.
	  Don't set pipeline to None (oops!).
	  Remove sources after they're finished, so we don't leak huge amounts
	  of memory.

	* flumotion/component/producers/playlist/playlistparser.py:
	  Don't discover files that wouldn't be played anyway due to being
	  scheduled for the past.

	* flumotion/test/test_component_playlist.py:
	  Adapt for API changes in playlist component

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

	* flumotion/test/test_config.py (TestConfig.testParseManager)
	(TestConfig.testParseManagerWithPlugs)
	(TestConfig.testParseManagerWithBogusPlug)
	(TestConfig.testParseManagerError): Update for
	parseBouncerAndPlugs rename.

	* flumotion/common/config.py
	(ManagerConfigParser.parseBouncerAndPlugs)
	(ManagerConfigParser._parseManagerWithRegistry)
	(ManagerConfigParser._parseManagerWithoutRegistry)
	(ManagerConfigParser._parseParameters): Split the code that parses
	manager parameters and the code that parses the bouncers and
	plugs; the latter requires the registry, which we can't use at
	first. Although they traverse the same data structure they do
	different things.
	(ManagerConfigParser.__init__): Add attributes: bouncer and plugs.
	self.manager is not used for bouncer and plug data.

	* flumotion/manager/manager.py
	(Vishnu.loadManagerConfigurationXML)
	(Vishnu._loadManagerBouncer, Vishnu._loadManagerPlugs): New
	methods, load manager config XML; specifically, bouncers and
	plugs.
	(Vishnu._loadComponentConfiguration): Don't listen to clients'
	requests to change the manager's bouncer or plugs.

	* flumotion/manager/main.py: Load the manager config XML right
	after making the Vishnu.

	* flumotion/manager/manager.py
	(Vishnu.loadComponentConfigurationXML)
	(Vishnu._loadComponentConfiguration): Rename methods from
	loadConfiguration; the goal being to separate manager
	configuration loading from component conf loading. All callers
	changed.

	* flumotion/common/config.py
	(ManagerConfigParser._parseManager.enum.eparse): Distract
	pychecker.

	* flumotion/manager/main.py (main): Parse the manager config with
	the new ManagerConfigParser.

	* flumotion/common/config.py (ManagerConfigParser): New config
	parser, parses the manager configuration out of a planet file.
	This will allow simplification of the other parser.

	* flumotion/test/test_config.py: Fix some tests to test
	ManagerConfigParser instead of the flow parser.

	* flumotion/common/registry.py (RegistryParser.getComponent):
	Raise UnknownComponentError if the component type is unknown.

	* flumotion/common/fxml.py (Parser.parserError): Allow
	customization of the parser error exception class.
	(Parser.getRoot, Parser.checkAttributes, Parser.parseFromTable):
	Throw the custom exception class, defaulting to ParserError as
	before.

2007-05-18  Michael Smith <msmith@fluendo.com>

	* flumotion/component/producers/playlist/playlistparser.py:
	  Format exception messages properly when parsing fails.

2007-05-18  Michael Smith <msmith@fluendo.com>

	* flumotion/component/producers/playlist/playlistparser.py:
	  Parse timestamps correctly in the format we defined.
	  Specifically: require and parse the fractional seconds part (it is
	  discarded, however; we only schedule on whole second boundaries),
	  and parse as UTC, not local time.

2007-05-17  Michael Smith <msmith@fluendo.com>

	* flumotion/component/producers/playlist/playlistparser.py:
	  Throttle discoverer rate to avoid using too much cpu when adding a
	  long playlist.

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

	* flumotion/manager/admin.py (AdminHeaven): Fix #107: kill dead
	code.

	* flumotion/configure/uninstalled.py.in (get):
	* flumotion/configure/installed.py.in (get): If FLU_CACHE_DIR is
	set, read and write our cache (bundle, connections) and registry
	data there. Fixes #102.

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

	Patch by: Gergely Nagy

	* flumotion/component/encoders/theora/theora.xml:
	* flumotion/component/encoders/theora/theora.py
	(Theora.configure_pipeline): Add support for sharpness parameter.

	* data/glade/wizard_theora.glade:
	* flumotion/wizard/steps.py (Theora.get_state): Add Advanced
	settings area to the Theora encoder wizard page. Fixes #74.

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

	* flumotion/wizard/wizard.py
	(Wizard.require_elements.got_missing_elements): Return the missing
	elements from the deferred.

	* flumotion/wizard/steps.py (Overlay.worker_changed_010): Reflow.
	(HTTP.worker_changed.got_missing, HTTP.verify, HTTP.activated)
	(on_entry_mount_point_changed): There are two things that can
	prevent next from being pressed, lack of multifdsink and lack of a
	mount point. Make sure that both are necessary conditions for
	next. Fixes #68.

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

	* data/glade/Makefile.am (glade_DATA): Fix distcheck.

	* flumotion/wizard/steps.py (Vorbis.get_state, Speex.get_state):
	Apparently a kilobit is 1000 bits? According to Mike?
	(HTTP.get_state): When the user says 10 megabits, she does not
	mean 10 bits.

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

	* flumotion/component/consumers/httpstreamer/http.py:
	  The wizard used (and still does, actually) set bandwidth-limit to
	  unreasonably low values, thinking it was in Mb/s (it's b/s).
	  If the bandwidth-limit is < 1000 bps, multiply by 1e6 to make it
	  sensible.

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

	* flumotion/component/misc/httpfile/httpfile.xml:
	  Bundle file.py as well.

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

	* flumotion/component/producers/playlist/playlist.py:
	* flumotion/component/producers/playlist/playlistparser.py:
	  Factor generic playlist parsing support code out into a separate
	  class; add new PlaylistXMLParser class for the XML case.

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

	* flumotion/wizard/enums.py (EncodingVideo, EncodingAudio):
	* flumotion/wizard/steps.py (Conversion.get_audio_page)
	(Conversion.get_next, Theora, Smoke, JPEG, Vorbis, Speex): Make
	the encoder pages have a header in the wizard of "Foo encoder". A
	bit complicated because of wizard magic. Fixes #22.

	* flumotion/component/converters/overlay/genimg.py
	(generate_overlay): Return True if the text was too wide, False
	otherwise.

	* flumotion/component/converters/overlay/overlay.py
	(Overlay.configure_pipeline): Warn if the text is too wide.
	Fixes #21.

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

	Patch by: Gergely Nagy

	* flumotion/component/consumers/Makefile.am (SUBDIRS):
	* flumotion/component/consumers/shout2/shout2.py:
	* flumotion/component/consumers/shout2/Makefile.am:
	* flumotion/component/consumers/shout2/__init__.py:
	* flumotion/component/consumers/shout2/shout2.xml:
	* flumotion/wizard/steps.py (Consumption.on_checkbutton_shout2_toggled)
	(Consumption.verify, Consumption.get_next)
	(Shout2.component_type, Shout2Both.name, Shout2Audio.name)
	(Shout2Video.name):
	* flumotion/wizard/save.py (WizardSaver.handleConsumers):
	* data/glade/wizard_consumption.glade:
	* data/glade/wizard_shout2.glade:
	* configure.ac: Add shout2 consumer, updated from Gergely's patch.
	Fixes #239.

	* flumotion/launch/parse.py (Component.as_config_dict): Make an
	eater dict instead of a sources list, fixes flumotion-launch.

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

	* flumotion/test/test_component_playlist.py:
	  Don't use twisted 2.1-and-later API in tests.

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

	* flumotion/component/producers/playlist/playlist.py:
	* flumotion/component/producers/playlist/playlistparser.py:
	* flumotion/test/test_component_playlist.py:
	  Fix up reflecting changes to playlist items back into the gnonlin
	  objects.

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

	* flumotion/component/producers/playlist/playlistparser.py:
	  Return new item from addItem (used in tests)
	* flumotion/test/test_component_playlist.py:
	  Add a test, randomly prod something to make buildbots maybe happier?

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

	* flumotion/test/Makefile.am:
	* flumotion/test/test_component_playlist.py:
	  First round of simple tests for playlist stuff

	* flumotion/component/producers/playlist/playlistparser.py:
	  First bug fixed due to tests of playlist stuff.

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

	* flumotion/component/producers/playlist/playlist.py:
	* flumotion/component/producers/playlist/playlistparser.py:
	  Refactor playlist stuff to make it more testable. Tests to come.

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

	* flumotion/launch/inspect.py (main): Indent all properties
	evenly.

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

	* flumotion/component/base/scheduler.py (ICalScheduler.__init__):
	Watch the ical file for changes. Untested, woo.

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

	* flumotion/component/producers/playlist/playlist.py:
	  Never schedule an item for the past or very recent future. Allow
	  scheduling something 5 seconds or more in the future.

	* flumotion/component/producers/playlist/playlistparser.py:
	  Fix duration adjustment for inserting new items.

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

	* flumotion/component/base/watcher.py: Update copyrights.

	* flumotion/component/base/base.xml:
	* flumotion/component/base/Makefile.am (component_PYTHON):
	* flumotion/component/base/watcher.py: New module, defines a file
	monitoring object.

	* flumotion/test/Makefile.am (EXTRA_DIST):
	* flumotion/test/test_component_base_watcher.py: Add a minimal test.

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

	* flumotion/component/combiners/switch/basicwatchdog.py
	  (SingleBasicWatchdog.eaterSetInactive,
	  SingleBasicWatchdog.eaterSetActive, AVBasicWatchdog,
	  AVBasicWatchdog.eaterSetInactive, AVBasicWatchdog.eaterSetActive,
	  AVBasicWatchdog.isActive):
	* flumotion/component/combiners/switch/switch.py (Switch.isActive,
	  SingleSwitch, SingleSwitch.switchToMaster,
	  SingleSwitch.switchToBackup, AVSwitch.switchToMaster,
	  AVSwitch.switchToBackup, AVSwitch._setLastTimestamp):
	Set the stop value on the switches so that the resulting stream
	is synched if video or audio stops before the other.
	Do not allow switching to master or backup if eaters are inactive.

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

	* flumotion/admin/gtk/main.py (startAdminFromGreeter.failed): This
	is the bug that zapek found, yall. Remember this bug!

	* flumotion/component/base/scheduler.py (Scheduler.addEvent): Add
	a now argument.
	(Scheduler.getCurrentEvents): New accessor.
	(Scheduler._reschedule): Convert timedelta objects to seconds.

	* flumotion/test/test_component_base_scheduler.py
	(SchedulerTest.testSimple): Test some more scheduler bits.

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

	* flumotion/component/producers/playlist/playlist.py:
	* flumotion/component/producers/playlist/playlistparser.py:
	  Make scheduling more consistent with design. Remove a race or two.

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

	* flumotion/component/base/scheduler.py (Event.__init__): Rework a
	bit, avoid a call to now() if possible.
	(Event.reschedule): Add optional now argument.
	(Event.toTuple, Event.__lt__, Event.__gt__, Event.__eq__): Compare
	events like tuples. I'd subclass from tuple if it were earlier in
	the day.

	* flumotion/test/test_component_base_scheduler.py
	(EventTest.testSimple, EventTest.testUpdateRecurring)
	(EventTest.testComparison): Add some more tests.

	* flumotion/component/base/Makefile.am (component_PYTHON):
	* flumotion/component/base/base.xml:
	* flumotion/component/base/scheduler.py (Event, Scheduler)
	(ICalScheduler): New classes, meant to replace the ical things in
	the icalbouncer and in the disker.

	* flumotion/test/Makefile.am (EXTRA_DIST):
	* flumotion/test/test_component_base_scheduler.py (SchedulerTest):
	Very minimal test.

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

	* flumotion/component/combiners/switch/switch.py
	  (SingleSwitch.configure_pipeline, AVSwitch.configure_pipeline):
	* flumotion/component/feedcomponent010.py
	  (FeedComponent.get_eater_name_for_feedId):
	s/feedid/feedId

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

	* flumotion/component/combiners/switch/Makefile.am:
	* flumotion/component/combiners/switch/basicwatchdog.py
	  (SingleBasicWatchdog, SingleBasicWatchdog.eaterSetInactive,
	  SingleBasicWatchdog.eaterSetActive, SingleBasicWatchdog.isActive,
	  AVBasicWatchdog, AVBasicWatchdog.eaterSetInactive,
	  AVBasicWatchdog.eaterSetActive, AVBasicWatchdog.isActive):
	* flumotion/component/combiners/switch/switch.xml:
	Add basic watchdogs that will automatically switch to backup if
	master eater(s) go(es) hungry.

2007-05-11  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/combiners/switch/Makefile.am:
	Add admin ui to Makefile.

2007-05-11  Michael Smith <msmith@fluendo.com>

	* flumotion/test/test_http.py:
	  Fix a test that used an internal method in resource.py.

2007-05-11  Michael Smith <msmith@fluendo.com>

	* flumotion/component/consumers/httpstreamer/http.py:
	* flumotion/component/consumers/httpstreamer/http.xml:
	* flumotion/component/consumers/httpstreamer/resources.py:
	  Implement bandwidth-limit in http streamer.
	  Implement redirecting clients to a different location when the
	  server is full (hitting either bandwidth limit or client limit)

2007-05-10  Sebastien Merle  <sebastien@fluendo.com>

	* flumotion/common/enum.py:
	Corrected a bug when creating a generic enum instance.

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

	* flumotion/component/combiners/switch/switch.py (Switch, SingleSwitch,
	  AVSwitch):
	Change log categories.

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

	* flumotion/component/Makefile.am:
	* flumotion/component/component.xml:
	Fix distcheck and fix bundling of switch component.

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

	* configure.ac:
	* flumotion/component/combiners/Makefile.am:
	* flumotion/component/combiners/__init__.py:
	* flumotion/component/combiners/switch/Makefile.am:
	* flumotion/component/combiners/switch/__init__.py:
	* flumotion/component/combiners/switch/admin_gtk.py (SwitchingNode,
	  SwitchingNode.__init__, SwitchingNode.cb_toggled,
	  SwitchingNode.setUIState, SwitchingNode.stateSet, SwitcherAdminGtk,
	  SwitcherAdminGtk.setup):
	* flumotion/component/combiners/switch/switch.py (SwitchMedium,
	  SwitchMedium.remote_switchToMaster,
	  SwitchMedium.remote_switchToBackup, Switch, Switch.init,
	  Switch.do_check, Switch.cb, Switch.switchToMaster,
	  Switch.switchToBackup, SingleSwitch, SingleSwitch.init,
	  SingleSwitch.get_pipeline_string, SingleSwitch.configure_pipeline,
	  SingleSwitch.switchToMaster, SingleSwitch.switchToBackup, AVSwitch,
	  AVSwitch.init, AVSwitch.get_pipeline_string,
	  AVSwitch.configure_pipeline, AVSwitch.switchToMaster,
	  AVSwitch.switchToBackup):
	* flumotion/component/combiners/switch/switch.xml:
	Add switching components with very simple gtk admin for now.

2007-05-10  Sebastien Merle  <sebastien@fluendo.com>

	* flumotion/common/enum.py:
	Made the unjellyer an diffrent class than Enum, because
	Twsited 2.0.1 need the unjellyer to be a classic style class.

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

	* flumotion/common/enum.py:
	Modified the Enum jellying for the enum to be unjellyed
	even without knowing the custom enum class.
	It allow a peer to proxy an enum value without having to
	know about the enum custom class.
	In practice it allow a component to declar custom enums,
	and an admin/ui to use it without the manager knowing about it.

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

	* flumotion/test/test_enum.py:
	* flumotion/common/enum.py:
	Added the ability for the enum values (not the proper enum) to
	be jellyed and unjellyed. Now an enum value can be directly
	used with spread without converting to int.

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

	* flumotion/worker/main.py (main):
	* flumotion/launch/main.py (main):
	* flumotion/manager/main.py (main): --verbose sets a baseline for
	--debug, not overriding it. Fixes #82.

	* flumotion/manager/component.py (ComponentAvatar.cleanup): Add a
	comment.

2007-05-09  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/test/test_manager_depgraph.py
	  (testDepGraph._createComponent):
	Fix tests for depgraph to use the eater key.

2007-05-09  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/feedcomponent010.py
	  (FeedComponent.get_eater_name_for_feedid):
	Add helper method.
	* flumotion/manager/depgraph.py (DepGraph.mapEatersToFeeders,
	  DepGraph.whatShouldBeStarted):
	Migrate depgraph to use the eater key rather than the source key.

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

	* flumotion/component/producers/playlist/playlistparser.py:
	  Fix duration adjustment for making sources fit into timeline.

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

	* flumotion/component/misc/httpfile/file.py (File.renderAuthenticated,
	  File.do_prepareBody, MimedFileFactory, FLVFile,
	  FLVFile.do_prepareBody, FileTransfer):
	  Make sure start= requests on FLV files give me the right mime type
	  by not writing before all headers are set.
	  factor out an overridable do_prepareBody in which FLV and the like
	  can do their manipulative trickery.
	  Re-fixes #618.
	* flumotion/test/test_misc_httpfile.py (TestTextFile.finishCallback,
	  TestDirectory.finish, TestDirectory.finish, TestDirectory.finish,
	  TestDirectory.testFLVRangeStart, TestDirectory.finish):
	  Add tests.  Be more assertive.

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

	* flumotion/component/producers/playlist/playlist.py:
	* flumotion/component/producers/playlist/playlist.xml:
	* flumotion/component/producers/playlist/playlistparser.py:
	  Allow audio-only or video-only compositions to be configured.

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

	* flumotion/component/producers/playlist/playlistparser.py:
	  Remove unused local to satisfy pychecker.

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

	* flumotion/component/producers/playlist/playlistparser.py:
	  Use the discoverer on files before adding them.

2007-05-09  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/common/config.py (FlumotionConfigXML.parseFeed,
	  FlumotionConfigXML.addFeed):
	Used table parser to parse subnodes of eater. This guarantees
	that only feed nodes are children of the eater node.

2007-05-09  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/wizard/steps.py (Soundcard.update_inputs):
	Commit forgotten when moving audio checks to audio.py.

2007-05-09  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* flumotion/component/feedcomponent.py
	  (MultiInputParseLaunchComponent.get_pipeline_string):
	* flumotion/component/feedcomponent010.py (FeedComponent.init,
	  FeedComponent.do_setup, FeedComponent.parseEaterConfig):
	Use the eater key not the source key for building up the
	eaters list. Build a mapping for feedId -> name of eater so
	we can quickly look it up in elements needing to find the eater
	name that a feedId (hence eater's element name) corresponds to.
	* flumotion/test/test_component.py (PipelineTest.__init__,
	  PipelineTest.config):
	* flumotion/test/test_component_httpstreamer.py
	  (TestOldProperties.setUp):
	Fix up tests to use eater key not source key.
	* flumotion/wizard/save.py (Component.toXML):
	Output non-deprecated config form for wizard.

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

	* flumotion/component/producers/playlist/Makefile.am:
	  Add playlistparser.py to Makefile.am

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

	* flumotion/admin/command/commands.py:
	  Allow flumotion-command invoke arguments to include the contents of
	  a file as a string argument using the 'F' format character.

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

	* flumotion/component/producers/playlist/playlist.py:
	  Fix remote method to use proper variable.

	* flumotion/component/producers/playlist/playlistparser.py:
	  When truncating an existing gnlsource duration, also change the
	  media-duration, to avoid unwanted speedups.

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

	* flumotion/component/misc/httpfile/file.py (loadMimeTypes):
	  Add .flv mime type in the code.

2007-05-09  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* TODO:
	* flumotion/common/config.py (FlumotionConfigXML._parseEaters):
	Thanks Andy, using the helper method parseAttributes.

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

	* flumotion/test/test.xml:
	Update xml flow used in tests to use new way of configuring
	eaters.

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

	* flumotion/common/config.py (FlumotionConfigXML._parseComponent,
	  FlumotionConfigXML._parseEaters, FlumotionConfigXML._parseSources):
	* flumotion/test/test_config.py
	  (TestConfig.testParseComponentsWithEaters,
	  TestConfig.testParseComponentsWithEatersNotSpecified,
	  TestConfig.testParseComponentsWithEatersDeprecatedWay,
	  TestConfig.testParseComponentsWithTwoEaters,
	  TestConfig.testParseComponentsWithTwoEatersDeprecatedWay,
	  TestConfig.testParseComponentsWithMultipleEater,
	  TestConfig.testParseComponentsWithMultipleEaterDeprecatedWay,
	  TestConfig.testGetComponentEntriesWrong):
	Add new way of configuring eaters in the XML along with tests.
	Fixes #200.

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

	* configure.ac:
	* flumotion/component/feedcomponent.py:
	* flumotion/component/feedcomponent010.py:
	* flumotion/component/producers/Makefile.am:
	* flumotion/component/producers/playlist/Makefile.am:
	* flumotion/component/producers/playlist/__init__.py:
	* flumotion/component/producers/playlist/playlist.py:
	* flumotion/component/producers/playlist/playlist.xml:
	* flumotion/component/producers/playlist/playlistparser.py:
	* flumotion/component/producers/playlist/singledecodebin.py:
	* flumotion/component/producers/playlist/smartscale.py:
	  Merge playlist component back to trunk now that the basics are
	  functional.

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

	* flumotion/component/misc/httpfile/file.py (File, File.__init__,
	  File.getChild, File.renderAuthenticated, MimedFileFactory,
	  MimedFileFactory.__init__, MimedFileFactory.create, FLVFile,
	  FLVFile.renderAuthenticated):
	  Add a subclass for handling FLV files.
	  Implement handling of the start= GET parameter, just like in
	  Apache and lighthttpd.  Fixes #618.
	  Add a MimedFileFactory that allows us to create even the root
	  resource as a mime-type-dependent subclass.
	* flumotion/component/misc/httpfile/httpfile.py (HTTPFileStreamer.init,
	  HTTPFileStreamer.do_start):
	* flumotion/test/test_misc_httpfile.py (TestDirectory,
	  TestDirectory.setUp, TestDirectory.tearDown,
	  TestDirectory.testGetChild, TestDirectory.testFLV,
	  TestDirectory.finish, TestDirectory.testFLVStart,
	  TestDirectory.finish, TestDirectory.testFLVStartZero,
	  TestDirectory.finish):
	  Add tests for this.

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

	* flumotion/component/misc/httpfile/file.py (File.getChild):
	* flumotion/component/misc/httpfile/httpfile.py
	  (HTTPFileStreamer.do_setup, HTTPFileStreamer.do_start):
	  We still need to distinguish between the root resource being the
	  File resource directly, and a tree.  Apparently client.getPage()
	  in the tests does not mimic correctly what something like wget would
	  do, making it hard to test for the Root resource tree being set up
	  correctly.

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

	* flumotion/component/misc/httpfile/httpfile.py (HTTPFileStreamer.init,
	  HTTPFileStreamer.getDescription, HTTPFileStreamer.do_setup,
	  HTTPFileStreamer.do_stop, HTTPFileStreamer.do_start,
	  HTTPFileStreamer.requestFinished, HTTPFileStreamer.getStreamData):
	  Rearrange imports.
	  Privatize some variables.
	  Store some variables for resources we need to clean up.
	  Set self.port from what we're actually listening to, so we can
	  listen to port 0 then figure out which port it chose.
	  Make sure we can work without any loggers.
	  Fix handling of empty and / mount points, as well as getting
	  empty or / resources - fixes #567
	* flumotion/test/Makefile.am:
	* flumotion/test/test_component_httpserver.py (MountTest,
	  MountTest.setUp, MountTest.tearDown, MountTest.start,
	  MountTest.getURL, MountTest.testDirMountEmpty,
	  MountTest.testDirMountRoot, MountTest.testDirMountOnDemand,
	  MountTest.testFileMountEmpty, MountTest.testFileMountOnDemand):
	  Add tests for http-server component with various mount points
	  and serving either a directory or a file.
	* flumotion/component/misc/httpfile/file.py (File.getChild,
	  File.renderAuthenticated):
	  Restat the file on every request, to make sure we handle changed
	  lengths of files.
	  Handle requests ending with /

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

	* flumotion/worker/medium.py (WorkerMedium.remote_killJob): New
	remote method, kills a job by avatarId, defaulting to SIGKILL.
	Callable via flumotion-command invoke sss workerCallRemote
	WORKERNAME killJob AVATARID. Fixes #499.

	* flumotion/worker/worker.py (WorkerBrain.killJob): New function,
	proxies to JobHeaven.killJob.

	* flumotion/worker/job.py (JobHeaven.killJob): New function, kills
	a job by avatarId.
	(JobHeaven.kill): Use killJob.

	* flumotion/common/common.py (signalPid): New function.
	(termPid, killPid, checkPidRunning): Use signalPid.

	* flumotion/manager/manager.py (Vishnu.__init__): Remove a FIXME
	made irrelevant by [3299].

	* flumotion/twisted/fdserver.py (PassableServerPort.transport):
	Remove the passable client things, they are in feed.py now.

	* flumotion/extern/Makefile.am (clean-local): rm -rf _trial_temp,
	not -r.

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

	* flumotion/worker/worker.py (WorkerBrain.getFeedServerPort):
	Whoops, fix the case when we don't listen with a feedserver.

	* flumotion/admin/multi.py (MultiAdminModel.__init__): Use a
	StartSet instead of our own ghetto homebrew.
	(MultiAdminModel.addManager): API change: take a PBConnectionInfo.
	Use the StartSet to arbitrate making only one connection per
	managerId. Returns a deferred that will fire with the admin, or
	error on error.
	(MultiAdminModel.removeManager): API change: renamed from
	close_admin. Uses the start set to cancel any connection, existing
	or in progress.

	* flumotion/common/errors.py (AlreadyConnectingError): New error.

	* flumotion/admin/gtk/main.py (startAdminFromGreeter.failed):
	* flumotion/admin/gtk/dialogs.py (connection_failed_message):
	* flumotion/admin/gtk/client.py
	(Window.on_open_connection.refused): Change interface to some of
	the dialogs.

	* flumotion/common/Makefile.am (flumotion_PYTHON):
	* flumotion/common/startset.py (StartSet): New data structure,
	factored out of flumotion.worker.job.DeferredStartSet. Still need
	to port the jobheaven to use this though.

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

	* flumotion/twisted/pb.py
	(FPBClientFactory.login.getKeycardClassesCb)
	(FPBClientFactory._cbSendKeycard)
	(FPBClientFactory._cbLoginCallback, Authenticator.issue)
	(Authenticator.respond_KeycardUACPCC)
	(Authenticator.respond_KeycardUASPCC): Tweak some logging back to
	LOG.
	(FPBClientFactory.disconnect): Error as terror, like protocol.py.

	* flumotion/common/medium.py (BaseMedium.setRemoteReference): Not
	every remote side is a manager.

	* flumotion/admin/admin.py
	(AdminClientFactory.clientConnectionFailed): Leave some logging to
	the base class.
	(AdminModel.shutdown): Reorder some calls to make logging nicer.

	* flumotion/twisted/pb.py (FPBClientFactory.startedConnecting)
	(FPBClientFactory.disconnect): Interestingly, there is a window in
	which calling disconnect() and stopTrying() on a factory still
	leaves a connection attempt pending. Plug this window, calling a
	function that will only have effect during the window period.
	(ReconnectingFPBClientFactory.clientConnectionFailed): Log when we
	are going to reconnect (or not)

	* flumotion/twisted/portal.py
	(BouncerPortal.login.onErrorCloseConnection): Close the connection
	if the login attempt fails, in all cases: database timeout, bad
	password, etc. Prevents FD leakage on reconnect if the worker
	can't contact the manager.

	* flumotion/test/test_component_feed.py (TestFeedClient.setUp)
	(TestFeedClient.tearDown): Use some terrible code that I found in
	test_pb.py to make trial not count UnauthorizedLogin errors as
	test errors, since we plan to make them. Trial gets these errors
	because Flumotion passes failures across the wire whose class is
	not derived from pb.Error, viz.
	twisted.cred.error.UnauthorizedLogin. We should pass
	pb.Error-derived errors, but my brain is too weak right now to
	handle all of the implications.
	(TestFeedClient.testBadPass): Enable test.

	* flumotion/test/test_pb.py: Remove
	ifWeHaveAnOldTwistedAndProgrammerNameEqualsZaheer invocations.

	* flumotion/common/debug.py (print_stack): New kwarg "file",
	defaulting to stdout.

	* flumotion/component/feed.py
	(FeedMedium._doFeedTo.mungeTransport._closeSocket): Fix too-clever
	code.

	* flumotion/admin/admin.py (AdminClientFactory.gotDeferredLogin):
	Remove old challenge-response code; base classes do it for us now.

	* flumotion/twisted/portal.py (BouncerPortal.login): Return a
	failure if no bouncer is configured instead of None. Refactor
	slightly.

	* flumotion/twisted/pb.py (FPBClientFactory._cbLoginCallback):
	Client-side remote_login() returns will never be None; remove this
	case.
	(_BouncerWrapper.remote_login): The one case in which None would
	be passed as return from BouncerPortal.login() was when no bouncer
	was configured; since that's fixed, no need to check for None
	here. Refactor slightly.

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

	* flumotion/test/test_http.py (FakeRequest.__init__):
	  Requests have args

2007-04-25  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/Makefile.am:
	  Actually dist feed.py.

2007-04-25  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/feed.py:
	  socket was missing.

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

	* flumotion/test/test_component_feed.py
	(TestFeedClient.testBadPass): Add failing test.

	* flumotion/component/feedcomponent.py:
	* flumotion/component/feedcomponent010.py: Get feed from
	flumotion.component.

	* flumotion/component/component.xml: Add feed.py to the bundle.

	* flumotion/worker/Makefile.am (flumotion_PYTHON):
	* flumotion/component/Makefile.am (component_PYTHON):
	* flumotion/component/feed.py: Moved from flumotion.worker.feed.
	Include the fdserver stuff so that everything can be bundled and
	old workers can enjoy new feed code.

	* flumotion/test/Makefile.am (EXTRA_DIST):
	* flumotion/test/test_component_feed.py: Moved from
	test_worker_feed.py.

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

	* flumotion/admin/gtk/client.py
	  (Window._set_stop_start_component_sensitive):
	* flumotion/admin/gtk/parts.py (ComponentsView.update_start_stop_props,
	  ComponentMenu.__init__):
	Fix ability to stop lost components.
	Delete should only be possible on sleeping components.

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

	* flumotion/worker/feed.py (FeedMedium.__init__): Make component
	an optional argument, only for back compatibility.
	(FeedMedium.requestFeed): New helper method, returns a deferred as
	the result of the whole operation: success with fds or error with
	a failure.
	(FeedMedium._doFeedTo): Adapt so that both the old eatFromFD and
	the new deferred interface are supported.

	* flumotion/test/test_worker_feed.py
	(TestFeedServer.testConnectAndFeed.feedReady)
	(TestFeedServer.testConnectAndFeedLegacy.feedReady): I fixed the
	FIXME, so I fix the comment.
	(TestFeedServer.testConnectAndFeed): New test for the new
	requestFeed interface.

	* flumotion/worker/feed.py (FeedMedium.startConnecting)
	(FeedMedium.stopConnecting): New helper functions. You can still
	connect using functions outside of the medium if that is your
	thing, which is the case with older feedcomponent.py bundles.
	(FeedMedium._doFeedTo): AUGMENT THE TERROR! (It is commented.)

	* flumotion/worker/feedserver.py (FeedAvatar._sendFeedReplyCb):
	Expand comment.

	* flumotion/twisted/fdserver.py (_SocketMaybeCloser): Factor out
	an awesome mixin, like _SocketCloser, but sometimes not.
	(PassableServerConnection): Use the mixin.
	(PassableClientConnection, PassableClientConnector): New classes,
	the analogs of PassableServerConnection/Port for client-side
	connections.

	* flumotion/test/test_worker_feed.py
	(TestFeedServer.testConnectAndFeedLegacy): Copy from
	testConnectAndFeed, a test that existing clients continue to work.
	(TestFeedServer.testConnectAndFeed): Use the new
	FeedMedium.startConnecting interface, which means we use a
	PassableClientConnector.

	* flumotion/worker/feed.py (FeedMedium._doFeedTo): Add a FIXME.

	* flumotion/test/test_worker_feed.py
	(TestFeedServer.testConnectAndFeed): Clean up some prints, and add
	comments.

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

	* flumotion/worker/feedserver.py:
	  Calling connectionLost() on a transport is fundamentally unsafe in
	  twisted.
	  Instead, we can make use of some undocumented behaviour to ensure
	  that the reactor will (safely) do it for us.

	* flumotion/test/test_worker_feed.py:
	  Unskip test, make it pass (but needs some work)

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

	* flumotion/test/test_worker_feed.py (FakeWorkerBrain): Add method
	to wait on feed server receiving FD.
	(FakeComponent): Add method to waith on receiving fd from feed
	medium.
	(TestFeedServer.assertAdditionalFDsOpen): Temporarily disable
	(TestFeedServer.testConnectWithoutDroppingPB.cleanup): Add a
	comment.
	(TestFeedServer.testConnectWithoutDroppingPB): New test, does not
	yet work

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

	* configure.ac:
	* flumotion/component/producers/Makefile.am:
	* flumotion/component/producers/rtsp/Makefile.am:
	* flumotion/component/producers/rtsp/__init__.py:
	* flumotion/component/producers/rtsp/rtsp.py (Rtsp,
	  Rtsp.get_pipeline_string):
	* flumotion/component/producers/rtsp/rtsp.xml:
	New rtsp-producer component, for receiving streams from rtsp.
	Tested with an Axis network camera.

2007-04-25  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/misc/httpfile/file.py (File, File.__init__,
	  File.render, File.terminateSimpleRequest, File.renderAuthenticated,
	  File.createSimilarFile):
	  Comment and document.
	  Remove bogus pychecker inhibition.
	  Privatize File._component.
	  Instead of commenting badly named variables, use self-documenting
	  names.
	  Be a bit more strict about range headers we accept.
	  Make the start/end logic shorter and easier to grok by adding
	  first/last variables and simplifying.
	* flumotion/test/test_misc_httpfile.py
	  (TestTextFile.testWrongEmptyBytesRange,
	  TestTextFile.testWrongNoRange, TestTextFile.testWrongTypeRange,
	  TestTextFile.testRangeSet):
	  Add two tests, fix one.

2007-04-25  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/test/Makefile.am:
	* flumotion/test/test_misc_httpfile.py:
	  Add a test before refactoring.
	  Increases coverage for file.py from 19% to 79%.

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

	* flumotion/worker/feedserver.py (FeedServer.listen): Use a normal
	portal, now that we can, with the modifications below.

	* flumotion/worker/worker.py (ProxyBouncer): Move here from
	feedserver.ManagerProxyBouncer, and pass to the feedserver on
	creation. No need to qual() the classes, they are already qual()'d
	remotely.

	* flumotion/twisted/portal.py (BouncerPortal.getKeycardClasses):
	Add some API behavior: if the bouncer has a 'getKeycardClasses'
	attribute, call it instead of accessing the keycardClasses
	attribute.

	* flumotion/test/test_worker_feed.py (countOpenFileDescriptors):
	Interesting function!
	(TestFeedServer.testConnectWithoutDroppingPB): Add test, asserting
	on the number of open file descriptors at opportune times.

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

	* flumotion/component/producers/ivtv/ivtv.py
	  (Ivtv.get_pipeline_string):
	* flumotion/component/producers/ivtv/ivtv.xml:
	Make the deinterlacer configurable.

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

	* po/POTFILES.in:
	Remove file that no longer exists.

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

	* flumotion/component/effects/volume/volume.py (Volume):
	volume effect does volume setting for all known components
	that use it.

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

	* flumotion/component/producers/soundcard/soundcard.py
	  (Soundcard.get_pipeline_string):
	FIXME was fixed last week.

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

	* flumotion/worker/checks/Makefile.am:
	* flumotion/worker/checks/package.xml:
	* flumotion/worker/checks/video.py:
	* flumotion/worker/checks/audio.py:
	Move checkMixerTracks to audio.py.
	* flumotion/worker/checks/video010.py:
	* flumotion/worker/checks/gst010.py:
	Rename video010.py to gst010.py.

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

	* flumotion/worker/main.py (main): More use of PBConnectionInfo.

	* flumotion/worker/feed.py: Remove server-related code; client
	code has to stay here, because components call it.

	* flumotion/worker/medium.py: Factored out of worker.py,
	dispatches all requests to the worker brain.

	* flumotion/worker/feedserver.py (FeedServer): Server code
	factored out of flumotion.worker.feed. Synthesized a server object
	to be the calling-point for feedserver-related operations.
	(FeedAvatar.__init__): Take the mind directly instead of in
	attached. Fixes #566. Use the fpb.Avatar infrastructure for
	callremote, which gives us free logging. Remove use of crack
	IFeedServerParent.

	* flumotion/worker/job.py: Consolidate classes such that the
	JobHeaven object acts as the one calling-point for job-related
	functions. Factor the deferredstart code out into a separate
	testable class. Attach mind to job components directly instead of
	via a callLater; see #566.
	(JobInfo): Renamed from "Kid".
	(JobHeaven.spawn): Renamed from Kindergarten.play.
	(JobHeaven.getJobInfo, JobHeaven.getJobInfos)
	(JobHeaven.getJobAvatarIds): Renamed from getKid*.
	(JobHeaven.jobStopped): New method combining lostAvatar and
	removeKidByPid.
	(JobHeaven.shutdown): I believe the previous
	shutdown-but-possibly-kill code was buggy, and that this code is
	not.
	(JobAvatar.__init__): Take a mind directly in the init function,
	instead of via attached/detached. Derive from fpb.Avatar.
	(JobAvatar.setMind): Code moved here from attached(), no longer a
	defgen.
	(JobAvatar._sendFileDescriptor): FD sending factored into method.
	(JobAvatar.receiveFeed): Port mind-possibly-logged-out fix here
	from sendFeed.

	* flumotion/worker/worker.py: Eviscerate. Moved medium and
	jobheaven code out to separate files; all that is left is the
	WorkerBrain.

	* flumotion/component/consumers/preview/preview.py (Preview):
	Disable QOS in the preview component; it's still not very usable
	though.

	* flumotion/twisted/pb.py (Avatar.setMind): Update docs to say
	that it's best to setMind directly, not from a callLater.

	* flumotion/test/realm.py: New file, some infrastructure for
	setting up a PB realm listening on a random available port.

	* flumotion/test/test_worker_medium.py: Move medium/clientfactory
	tests here; use the testrealm infrastructure to actually connect
	to a TCP socket.

	* flumotion/test/test_worker_worker.py: Remove removeKidByPid
	test, that code is no longer there. Add test for initing worker
	brain.

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

	* flumotion/component/producers/soundcard/soundcard.xml:
	Soundcard should have higher clock priority than firewire.
	This is due to soundcard not working at all when slaved
	to a different clock.
	Fixes #547

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

	* data/glade/admin.glade:
	* flumotion/admin/gtk/client.py
	  (Window._set_stop_start_component_sensitive,
	  Window._component_restart, Window._component_delete,
	  Window._component_do, Window.manage_stop_component_cb,
	  Window.manage_delete_component_cb):
	* flumotion/admin/gtk/parts.py (ComponentMenu.__init__):
	Add ability to delete one component.
	Fixes #445

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

	* data/glade/wizard_firewire.glade:
	Change frame name to something representing the frame so it can
	be used in the code.
	* flumotion/wizard/enums.py:
	Firewire audio now has a step (when not used in combination with
	firewire video).
	* flumotion/wizard/steps.py (Production.verify, (FireWire.run_checks,
	  FireWireAudio, FireWireAudio.setup, FireWireAudio.set_sensitive,
	  FireWireAudio.on_update_output_format,
	  FireWireAudio._get_width_height, FireWireAudio.update_output_format,
	  FireWireAudio.get_state, FireWireAudio.worker_changed,
	  FireWireAudio.run_checks, FireWireAudio.firewireCheckDone,
	  FireWireAudio.get_next, Webcam, Overlay.worker_changed_010,
	  Overlay.get_next):
	Fix logic in verify().
	Create new FirewireAudio wizard step for use when firewire audio
	is being used without firewire audio. Remove whitespace. This
	class shares no code with the Firewire class because this wizard
	code badly needs refactoring.
	Add more stupid hardcoding in Overlay's get_next(). Refer to
	refactoring comment above.
	Fixes #111

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

	* flumotion/wizard/steps.py (Soundcard.soundcardCheckComplete):
	Fix callback to take the correct args.

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

	* flumotion/component/bouncers/bouncer.py:
	Remove import that is no longer required.
	* flumotion/component/effects/volume/admin_gtk.py
	  (VolumeAdminGtkNode.haveWidgetTree, VolumeAdminGtkNode.setUIState,
	  VolumeAdminGtkNode.volumeSet):
	* flumotion/component/effects/volume/volume.glade:
	* flumotion/component/effects/volume/volume.py (Volume.__init__,
	  Volume.setUIState, Volume._bus_message_received_cb,
	  Volume.effect_setVolume, Volume.effect_getVolume):
	Allow volume effect to be configured to not allow increasing volume
	> 1.0 and also to be configured to not allow setting the volume.
	Soundcard's volume setting will go to 1.0 only.
	Soundcard component without gst-python 0.10.7 or later cannot set the
	volume.
	Expose these configurations in uiState so admin UIs can adapt.
	Adapt gtk admin page to make sensitive the widgets concerned with
	setting volume/increasing volume as appropriate.
	* flumotion/component/producers/soundcard/soundcard.py (Soundcard,
	  Soundcard.get_pipeline_string, Soundcard.configure_pipeline,
	  Soundcard._set_input_track, Soundcard.setVolume,
	  Soundcard.getVolume):
	* flumotion/component/producers/soundcard/soundcard.xml:
	Add new property "input-track". Implement setting of volume for
	volume effect. Use input track and set it to record.
	* flumotion/wizard/steps.py (Soundcard.soundcardCheckComplete,
	  Soundcard.get_state):
	Remove use of defer generator.  Actually pass the input track
	so it gets added to the config for the soundcard component.
	* flumotion/worker/checks/video.py (get_tracks):
	Make check do state change in a thread.

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

	* doc/random/playlists:
	  Add playlist document describing scheduling format.

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

	* tools/split-flu-log: New script, splits a flumotion log into a
	number of chunks, on line boundaries, with the date of the first
	log statement as part of the chunked output file name.

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

	* flumotion/component/effects/volume/admin_gtk.py
	  (VolumeAdminGtkNode.haveWidgetTree,
	  VolumeAdminGtkNode._createEnoughLevelWidgets,
	  VolumeAdminGtkNode.peakSet, VolumeAdminGtkNode.decaySet,
	  VolumeAdminGtkNode._check_toggled_cb):
	* flumotion/component/effects/volume/volume.glade:
	Dynamically create level meters for every channel rather than
	having one averaged over all channels.
	Remove unnecessary whitespace.

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

	* flumotion/admin/admin.py (AdminClientFactory.clientConnectionFailed):
	* flumotion/twisted/pb.py
	  (ReconnectingFPBClientFactory.clientConnectionFailed,
	  ReconnectingFPBClientFactory.clientConnectionLost):
	Add destination of where the connection was failed to in debug
	output.

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

	* flumotion/twisted/pb.py
	  (ReconnectingPBClientFactory.clientConnectionFailed,
	  ReconnectingPBClientFactory.clientConnectionLost):
	Add destination of where the connection was failed to in debug.
	Fixes #612.

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

	* env.in:
	  Actually put the pkgconfig directory in.

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

	* flumotion/component/producers/ivtv/ivtv.xml:
	Correct directory containing ivtv.

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

	* flumotion/component/producers/ivtv/ivtv.xml:
	We are no longer in our own project!

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

	* configure.ac:
	* flumotion/component/producers/Makefile.am:
	* flumotion/component/producers/ivtv/Makefile.am:
	* flumotion/component/producers/ivtv/__init__.py:
	* flumotion/component/producers/ivtv/ivtv.py (Ivtv,
	  Ivtv.get_pipeline_string):
	* flumotion/component/producers/ivtv/ivtv.xml:
	New ivtv-producer component.

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

	* flumotion/admin/gtk/main.py (main):
	Fix grammar.

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

	* data/glade/admin.glade:
	Fix open recent connection button tooltip and where it maps to.
	Add "Open Existing Connection" menu item.
	* flumotion/admin/gtk/client.py (Window.connection_open_recent_cb,
	  Window.connection_open_existing_cb, Window.got_state,
	  Window.on_import_response):
	Add support for "Open Existing Connection"
	* flumotion/admin/gtk/greeter.py (Greeter, Greeter.__init__,
	  ConnectExisting):
	Add new greeter wizard that just does the steps for opening
	an existing connection.

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

	* data/glade/admin.glade:
	* flumotion/admin/gtk/client.py (Window._append_recent_connections,
	  Window.connection_open_recent_cb,
	  Window.connection_import_configuration_cb,
	  Window.connection_export_configuration_cb,
	  Window.connection_quit_cb):
	Rename menu items and methods for them to be connection_
	instead of file_.
	Rename menu item label to "Open Recent Connection".
	* flumotion/admin/gtk/connections.py (Connections):
	Remove whitespace.

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

	* tools/httpdigesthasher.py:
	  Use a proper realm; that was a server bug, not a
	  windows-media-encoder bug.

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

	* flumotion/component/component.py (BaseComponent.start,
	  BaseComponent.start_plugs, BaseComponent.setMood):
	* flumotion/component/feedcomponent010.py
	  (FeedComponent.do_pipeline_playing,
	  FeedComponent.bus_message_received_cb):
	  Improve debugging for setMood, showing caller.
	  Factor out a do_pipeline_playing() vmethod so that components can
	  choose not to go HAPPY just because their pipeline hits PLAYING.

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

	* conf/Makefile.am:
	* conf/examples/default.xml:
	  Add the default config as an example.

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

	* flumotion/extern/log/log.py (getDebug, setPackageScrubList):
	  add getDebug() ...
	* flumotion/worker/worker.py (Kindergarten.play):
	  ... and use it.

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

	* flumotion/extern/log/log.py (doLog):
	  file -> filePath

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

	* flumotion/component/producers/videotest/videotest.py
	  (VideoTest.get_pipeline_string):
	* flumotion/component/producers/videotest/videotest.xml:
	  Booleans should be named actively.  Repent by documenting
	  some other properties.

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

	* common/pychecker.mk (pychecker, PYCHECKER_OPTIONS):
	  make verbose run output all warnings (or at least, 1000 of them)
	* flumotion/manager/manager.py (Vishnu._workerCreateComponents,
	  Vishnu._workerCreateComponentDelayed, Vishnu.componentAttached,
	  Vishnu.getComponentStates, Vishnu._emptyPlanetCallback):
	* flumotion/service/service.py (Servicer.status, Servicer.clean,
	  Servicer.create):
	* flumotion/worker/worker.py (WorkerMedium.remote_checkElements):
	  More cleanups.
	* misc/pycheckerrc:
	  Admit defeat, there's too many of them.

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

	* flumotion/extern/Makefile.am:
	  Install correctly.

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

	* po/nl.po:
	  Updated Dutch translation.

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

	* flumotion/component/producers/videotest/admin_gtk.py
	  (PatternNode.patternSet):
	* flumotion/ui/fgtk.py (FComboBox.get_column_content,
	  FComboBox.set_enum, FComboBox.set_list):
	* flumotion/ui/glade.py (GladeBacked.__init__):
	* flumotion/wizard/save.py (WizardSaver.handleConsumers):
	* flumotion/wizard/steps.py (FireWire.on_update_output_format):
	* flumotion/wizard/wizard.py (Wizard.getConfig):
	  Various pychecker fixes.

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

	* Makefile.am:
	* flumotion/extern/Makefile.am:
	* flumotion/extern/log/log.py (doLog, TwistedLogObserver.__init__,
	  TwistedLogObserver.emit, TwistedLogObserver.ignoreErrors):
	* flumotion/extern/log/test_log.py (TestGetExceptionMessage.func3,
	  TestGetExceptionMessage.testLevel2):
	* misc/pycheckerrc:
	  Enable shadowglobals, fix distcheck.

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

	* flumotion/extern/Makefile.am:
	  Add check rule.
	* flumotion/test/Makefile.am:
	* flumotion/test/test_log.py:
	  deleted.

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

	* flumotion/extern/Makefile.am:
	* flumotion/extern/log/__init__.py:
	* flumotion/extern/log/log.py (registerCategory, scrubFilename,
	  errorObject, TwistedLogObserver, TwistedLogObserver.clearIgnores,
	  _getTheTwistedLogObserver, addLogHandler, init, reopenOutputFiles,
	  logTwisted, setDebug, setPackageScrubList, getExceptionMessage):
	  Extract a log.py that can be used by other projects and is
	  standalone.  To that end, have init() take the name of an
	  environment variable that controls the debug level, and add
	  setPackageScrubList method to define which packages to scrub.
	  Also, raise SystemExit instead of a flumotion error.  Let's hope
	  that doesn't have unwanted side effects.
	* flumotion/common/log.py (init):
	  Now a rather barren file with stubs and compatibility stuff.
	* flumotion/test/test_log.py (TestLog.testLimitedError):
	  Small fix.
	  Fixes #594 and #595.

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

	* flumotion/component/base/admin_gtk.py (BaseAdminGtk.setup):
	  Debug when config is not part of state.
	  Import gettext; brought out by a test on -template.

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

	* doc/redhat/flumotion.logrotate:
	  Make it conform to other Fedora/Red Hat logrotate scripts.
	* flumotion.spec.in:
	  make-dummy-cert moved, no need to install it anymore.

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

	* common/trial.mk:
	  Revert patch to run trial flumotion.test always.

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

	* flumotion/component/producers/videotest/videotest.py
	  (VideoTest.get_pipeline_string):
	* flumotion/component/producers/videotest/videotest.xml:
	  Add a timestamp-overlay property that overlays timestamps on the
	  video feed.

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

	* doc/random/component-initialization-protocol:
	  Small clarification.
	* flumotion/component/feedcomponent010.py (FeedComponent,
	  FeedComponent.do_setup, FeedComponent.get_element,
	  FeedComponent.eatFromFD):
	  Some debugging.

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

	* flumotion/launch/main.py (ComponentWrapper,
	  ComponentWrapper.__init__, ComponentWrapper.feedToFD,
	  ComponentWrapper.eatFromFD, starter):
	  Log some more.

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

	* flumotion/component/producers/firewire/firewire.py
	  (Firewire.setVolume): Remove unnecessary whitespace.
	  (Firewire._bus_message_received_cb): Fix bug detecting camera
	  disconnection. Turns out gst.Structure is no longer iterable.

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

	* flumotion/admin/multi.py
	(MultiAdminModel._pushPendingConnection)
	(MultiAdminModel._popPendingConnection)
	(MultiAdminModel.addManager): Refactor the pending connections to
	not pop pending status for a tenacious connect.
	(MultiAdminModel.close_admin): Pop from pending here too.

	* flumotion/admin/multi.py (MultiAdminModel.addManager): Punt on
	fixing whatever is causing _pending underflows, and make the next
	person that sees this send me a bug report.

	* flumotion/common/messages.py (FancyEqMixin): Pull in from
	twisted.python.util, with a bugfix to allow for different versions
	of compareAttributes.

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

	* flumotion/admin/gtk/message.py (MessagesView.__init__):
	Automatic horizontal scrolling; works around gtk+ bug #428255.

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

	* tools/httpdigesthasher.py:
	  Add small tool to generate HTTP digest auth entries for files.

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

	* flumotion/common/keycards.py:
	* flumotion/twisted/credentials.py:
	  Implement challenger and keycard for http digest authentication.

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

	* flumotion/admin/gtk/dialogs.py (already_connected_message): New
	dialog box.

	* flumotion/admin/multi.py (MultiAdminModel.addManager): Maintain
	a set of admins that we are currently connecting to. Raise an
	AlreadyConnectedError if we are asked to connect to an
	already-running admin, or one to which we are in the process of
	connecting.

2007-04-09  Thomas Vander Stichele  <thomas at apestaart dot org>

	* env.in:
	* misc/flu-uninstalled:
	  Don't add empty paths to PATH variables.

2007-04-09  Thomas Vander Stichele  <thomas at apestaart dot org>

	* common/trial.mk:
	* flumotion/test/Makefile.am:
	  Set TRIAL_ENV from the calling Makefile.am
	* flumotion/common/netutils.py (RoutingTable.fromFile):
	* flumotion/component/base/admin_gtk.py
	  (FeedersAdminGtkNode.addFeederClient):
	* flumotion/component/feedcomponent010.py
	  (FeedComponent._buffer_probe_cb):
	  doc fixes

2007-04-09  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/feedcomponent010.py
	  (FeedComponent.provide_master_clock, FeedComponent.pipelinePaused):
	  Adapt the doc string to what is actually being done.
	  defer.succeed is shorter than doing it by hand.
	* flumotion/launch/main.py (ComponentWrapper.provideMasterClock):
	  Add comment.

2007-04-07  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/twisted/flavors.py (StateRemoteCache.invalidate):
	  Don't use setattr if we don't need to.
	* flumotion/twisted/rtsp.py (RTSPRequest.process):
	  Don't trigger an IndexError when there are no headers in the
	  request.

2007-04-07  Thomas Vander Stichele  <thomas at apestaart dot org>

	* flumotion/component/feedcomponent010.py (FeedComponent.init,
	  FeedComponent.bus_message_received_cb, FeedComponent.setup_pipeline,
	  FeedComponent.cleanup):
	* flumotion/worker/checks/video010.py (BusResolution,
	  BusResolution.cleanup, message_rcvd):
	  bus.connect returns signal handler id's, not watch id's.

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

	* common/trial.mk:
	  Fix up the way we invoke trial to work for other projects too.
	* env.in:
	  Use common shell construct to prepend to PATH variables.
	* flumotion/test/Makefile.am:
	  Remove TRIAL_ENV var already set in trial.mk

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

	* conf/Makefile.am:
	* conf/examples/ondemand.xml:
	  Add an ondemand example.

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

	* flumotion/common/common.py (formatStorage):
	  function def fix
	* flumotion/component/misc/httpfile/admin_gtk.py
	  (StatisticsAdminGtkNode.setStats,
	  StatisticsAdminGtkNode.registerLabel,
	  StatisticsAdminGtkNode.updateLabels,
	  StatisticsAdminGtkNode.haveWidgetTree, HTTPFileAdminGtk.setup):
	  Add translated title to UI page, so admin displays it.
	  Format total bytes consumed.
	* flumotion/component/misc/httpfile/httpfile.py
	  (HTTPFileStreamer.do_check):
	  http-streamer doesn't require a port, so http-server shouldn't
	  either.

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

	* flumotion/admin/command/main.py (setup_reactor):
	* flumotion/admin/gtk/main.py (startAdminFromGreeter.got_state)
	(startAdminFromManagerString, startAdminFromGreeter.refused):
	* flumotion/admin/gtk/client.py (Window.on_open_connection):
	* flumotion/admin/text/connection.py (connect_to_manager):
	* flumotion/admin/multi.py (MultiAdminModel.addManager): Use the
	new admin connection interface.

	* flumotion/admin/admin.py (AdminClientFactory.__init__): Take
	maxDelay as an optional keyword argument.
	(AdminModel.__init__): Incompatible change: no authenticator arg
	to __init__, and ...
	(AdminModel.connectToManager): Renamed from connectToHost (so as
	to catch bugs), and take a PBConnectionInfo, including the
	authenticator.
	(AdminModel.shutdown): More robust implementation.
	(AdminModel.reconnect): Don't much with clientFactory, just call
	shutdown() and then connectToManager().
	(AdminModel.connectionInfoStr, AdminModel.managerInfoStr)
	(AdminModel.connectionFailed, AdminModel.setRemoteReference):
	Update code that assumed presence of self.host, self.port, and
	self.use_insecure.

	* flumotion/twisted/flavors.py
	(StateRemoteCache._notifyListeners): Factor out the notification
	code into a method. Allow the set of listeners to change during
	the emission.

	* flumotion/ui/glade.py (flumotion_glade_custom_handler): Add a
	comment.

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

	* flumotion/common/common.py:
	  This function is deprecated, not depreciated.

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

	* flumotion/component/base/admin_gtk.py
	(BaseAdminGtkNode.loadGladeFile): Add a comment.

	* flumotion/common/medium.py (BaseMedium.setRemoteReference):
	Update for new bundleclient interface.

	* flumotion/common/bundleclient.py (BundleLoader.__init__): Take a
	callRemote function instead of a remote reference. Allows us to
	hook into the logging from medium.Medium. Update callers to use
	self.callRemote.

	* flumotion/manager/admin.py
	(AdminAvatar.perspective_getEntryByType): Allow the caller to
	specify the componentType, instead of requiring it to come from a
	non-sleeping component state.

	* flumotion/common/medium.py (BaseMedium.getBundledFunction):
	Split out of runBundledFunction.
	(BaseMedium.runBundledFunction): Use getBundledFunction.

=== 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 en
	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 btt

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@flumotion.com>

	* 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@flumotion.com>

	* flumotion/common/registry.py:
	* flumotion/component/consumers/httpstreamer/http.xml:
	* flumotion/manager/manager.py:

2004-11-26  Johan Dahlin  <johan@flumotion.com>

	* 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@flumotion.com>

	* 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@flumotion.com>

	* 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@flumotion.com>

	* 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@flumotion.com>

	* 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@flumotion.com>

	* 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@flumotion.com>

	* 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@flumotion.com>

	* 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@flumotion.com>

	* 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@flumotion.com>

	* flumotion/component/producers/firewire/firewire.py:

	proper width and height in here, avoids unnecessary and ugly scaling.

2004-10-26  Johan Dahlin  <johan@flumotion.com>

	* 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@flumotion.com>

	* flumotion/wizard/save.py:

	Don't add firewire audio component twice.

2004-10-26  Johan Dahlin  <johan@flumotion.com>

	* 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@flumotion.com>

	* 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@flumotion.com>

	* flumotion/component/producers/firewire/firewire.py:

	Add width, height and framerate

2004-10-25  Johan Dahlin  <johan@flumotion.com>

	* 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@flumotion.com>

	* 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@flumotion.com>

	* 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@flumotion.com>

	* 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@flumotion.com>

	* Makefile.am:
	* misc/pycheckerrc:
	Add pychecker target and a configuration file that disables
	the most retarded checks.

2004-10-22  Johan Dahlin  <johan@flumotion.com>

	* 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@flumotion.com>

	* 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@flumotion.com>

	* 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@flumotion.com>

	* 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@flumotion.com>

	* 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@flumotion.com>

	* flumotion/admin/gtk/client.py:
	* flumotion/common/common.py:
	* flumotion/common/config.py:
	* flumotion/wizard/wizard.py:

2004-10-19  Johan Dahlin  <johan@flumotion.com>

	* 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@flumotion.com>

	* 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@flumotion.com>

	* 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@flumotion.com>

	* 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@flumotion.com>

	* 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@flumotion.com>

	* 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@flumotion.com>

	* 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@flumotion.com>

	* 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@flumotion.com>

	* flumotion/component/producers/audiotest/audiotest.py:
	* flumotion/component/producers/audiotest/audiotest.xml:

	Add freq property.

2004-10-19  Johan Dahlin  <johan@flumotion.com>

	* 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@flumotion.com>

	* 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@flumotion.com>

	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@flumotion.com>

	* 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@flumotion.com>

	* 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@flumotion.com>

	* 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 btt

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@flumotion.com>

	* 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@flumotion.com>

	* 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@flumotion.com>

	* 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@flumotion.com>

	* 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@flumotion.com>

	* 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@flumotion.com>

	* 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@flumotion.com>

	* 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@flumotion.com>

	* 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@flumotion.com>

	* 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@flumotion.com>

	* 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@flumotion.com>

	* 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@flumotion.com>

	* 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@flumotion.com>

	* 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@flumotion.com>

	* 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@flumotion.com>

	* 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@flumotion.com>

	* 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@flumotion.com>

	* 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@flumotion.com>

	* 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@flumotion.com>

	* 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@flumotion.com>

	* 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@flumotion.com>

	* 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@flumotion.com>

	* 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@flumotion.com>

	* 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@flumotion.com>

	* 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@flumotion.com>

	* 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@flumotion.com>

	* 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@flumotion.com>

	* 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@flumotion.com>

	* 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@flumotion.com>

	* 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@flumotion.com>

	* 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@flumotion.com>

	* 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@flumotion.com>

	* 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@flumotion.com>

	* 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@flumotion.com>

	* 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@flumotion.com>

	* 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@flumotion.com>

	* 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@flumotion.com>

	* 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@flumotion.com>

	* 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@flumotion.com>

	* 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@flumotion.com>

	* 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@flumotion.com>

	* 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@flumotion.com>

	* 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@flumotion.com>

	* 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@flumotion.com>

	* 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@flumotion.com>

	* 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@flumotion.com>

	* 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@flumotion.com>

	* 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@flumotion.com>

	* 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@flumotion.com>

	* 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@flumotion.com>

	* 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@flumotion.com>

	* 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@flumotion.com>

	* 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@flumotion.com>

	* 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@flumotion.com>

	* 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@flumotion.com>

	* 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@flumotion.com>

	* 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@flumotion.com>

	* 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@flumotion.com>

	* 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@flumotion.com>

	* 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@flumotion.com>

	* 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@flumotion.com>

	* 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@flumotion.com>

	* 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@flumotion.com>

	* 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@flumotion.com>

	* 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@flumotion.com>

	* 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@flumotion.com>

	* 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@flumotion.com>

	* 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@flumotion.com>

	* 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@flumotion.com>

	* flumotion/server/controller.py (Dispatcher.requestAvatar): Clean
	up, clean up imports as well
	* flumotion/server/*: Futher logging cleanups

2004-07-22  Johan Dahlin  <johan@flumotion.com>

	* 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@flumotion.com>

	* 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@flumotion.com>

	* 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@flumotion.com>

	* flumotion/server/*: Add support for changing properties

2004-06-27  Johan Dahlin  <johan@flumotion.com>

	* 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@flumotion.com>

	* 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@flumotion.com>

	* 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@flumotion.com>

	* 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@flumotion.com>

	* 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@flumotion.com>

	* 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@flumotion.com>

	* 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@flumotion.com>

	* 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@flumotion.com>

	* 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@flumotion.com>

	* 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

