2007-04-15  Jason Tackaberry <tack@urandom.ca>

	* src/config.py: Support for implicit indexing of lists.

	* src/notifier/async.py: Remove unneeded sys module.

	* src/notifier/thread.py, src/notifier/async.py,
	* src/notifier/jobserver.py, src/notifier/yieldfunc.py:
	Pass exc_info triplet in any exception raised asynchronously and log
	full traceback in default async exception handler.

	* src/extensions/inotify/__init__.py:
	Fix typo; don't automatically remove watch on DELETE_SELF after all.

	* src/config.py:
	INotify fixes; change api a bit for set_default and get_description:
	they now accept a VarProxy object; fix some constructor instantiation
	problems as a result of MI in VarProxy.

	* src/extensions/inotify/__init__.py:
	Handle case where event callback removes a watch for which we've
	already buffered more events. Before this would log an error, but now
	we keep track of recently removed watches in order to suppress the
	error. Also add MOVED_FROM and MOVED_TO to default event mask.

2007-04-09  Jason Tackaberry <tack@urandom.ca>

	* src/extensions/inotify/__init__.py:
	Remove watch data on more appropriate inotify event.

2007-03-30  Dirk Meyer <dischi@freevo.org>

	* src/notifier/popen.py: add back completed signal

	* src/distribution/core.py, src/xmlutils.py:
	add warning when xml.py is still there

2007-03-28  Dirk Meyer <dischi@freevo.org>

	* src/notifier/callback.py, src/extensions/inotify/__init__.py,
	* src/db.py, src/notifier/thread.py, TODO, src/extensions/objectrow.c,
	* src/input/lirc.py, src/extensions/inotify/inotify.c, AUTHORS,
	* src/notifier/__init__.py, test/config2.py, src/input/stdin.py,
	* src/strutils.py, src/notifier/sockets.py, NEWS, src/notifier/timer.py,
	* src/utils.py:
	metadata update

	* test/config2.py (added): second config test

	* src/distribution/core.py
	* kaa-base.ebuild (removed):
	remove ebuild generation

2007-03-23  Dirk Meyer <dischi@freevo.org>

	* trunk/base, src/distribution/svn2log.py, src, ChangeLog.in,
	* MANIFEST.in, src/distribution, NEWS:
	Improve MANIFEST and ChangeLog file support and set svn ignore
	properties to ignore generated files.

	* src/xmlutils.py: fix a small stupig bug

	* src/xmlutils.py: fix typo

	* src/distribution/svn2log.py: only create ChangeLog if there is a .svn

	* src/xmlutils.py: return children by name with getattr

	* src/distribution/svn2log.py, test/async_lock.py, src/xmlutils.py:
	update svn properties

	* ChangeLog.in: change Tack's mail address

	* MANIFEST.in
	* ChangeLog.in (added):
	create ChangeLog.in and add ChangeLog to MANIFEST

	* src/distribution/core.py
	* src/distribution/svn2log.py (added):
	add code to generate ChangeLog files from svn log and ChangeLog.in

	* src/xmlutils.py (added): some xml helper functions

	* NEWS
	* src/xml.py (removed):
	remove kaa.xml libxml2 wrapper, not needed in any kaa module anymore

2007-03-19  Dirk Meyer <dischi@freevo.org>

	* ChangeLog (removed)
	* NEWS (added):
	rename ChangeLog to NEWS and update it

2007-03-18  Dirk Meyer <dischi@freevo.org>

	* test/async_lock.py (added)
	* src/notifier/yieldfunc.py:
	add code to lock yield_execution functions while running

2007-03-17  Jason Tackaberry <tack@urandom.ca>

	* src/distribution/__init__.py: Check for python 2.4

2007-03-16  Dirk Meyer <dischi@freevo.org>

	* src/notifier/__init__.py: make it possible to import kaa from a thread

2007-03-13  Jason Tackaberry <tack@urandom.ca>

	* src/extensions/objectrow.c: Another py2.5 fix.

	* src/extensions/objectrow.c: Support Py_ssize_t on python 2.5.

	* src/extensions/shmmodule.c:
	Hopefully eliminate compiler warning on 64 bit platforms.

2007-03-11  Dirk Meyer <dischi@freevo.org>

	* ChangeLog (added):
	add ChangeLog for released modules, please keep it up-to-date

	* src/notifier/url.py: return url return code if not 200

2007-02-28  Dirk Meyer <dischi@freevo.org>

	* src/notifier/yieldfunc.py: handle StopIteration on first call

2007-02-26  Dirk Meyer <dischi@freevo.org>

	* setup.py: append src to get access to python xml

	* src/distribution/xmlconfig.py:
	Replace kaa.xml with minidom for parsing cxml files. This removes an
	extra dependency just for installing kaa modules.

2007-02-26  Jason Tackaberry <tack@urandom.ca>

	* src/distribution/core.py
	* setup.cfg (added):
	Make bdist_rpm work again; prefix RPM package names with python-;
	remove unneeded spec file from kaa.imlib2.

2007-02-15  Dirk Meyer <dischi@freevo.org>

	* src/utils.py: bugfix

	* src/notifier/__init__.py: do not import url as default

2007-02-14  Dirk Meyer <dischi@freevo.org>

	* src/config.py:
	create functions to set default and get desc without using _ vars

2007-02-13  Dirk Meyer <dischi@freevo.org>

	* src/notifier/sockets.py, src/notifier/callback.py,
	* src/notifier/timer.py, src/notifier/event.py,
	* src/notifier/nf_wrapper.py:
	Move NotifierCalback(s) to nf_wrapper to start cleanup callback.py

	* src/notifier/popen.py:
	Remove the "completed" signal from Process and return an InProgress
	object instead on start(). Since an InProgress object is a Signal the
	only difference for current code is that you can only register after
	start and need to reregister on each start. There is no problem with
	short running processes, the signal won't be called before the next
	main loop iteration, enough time to register. The good think about
	this is that you can use this InProgress object in async functions
	using yield_execution. It also makes the interface look similar to
	code already using InProgress. As a next step I will use InProgress
	for Threads. Since InProgress objects contain a second Signal for
	exceptions, this would make the interface simpler.

2007-02-12  Dirk Meyer <dischi@freevo.org>

	* src/extensions/inotify/inotify.c: 64 bit patch by Mathias Weber

2007-02-11  Dirk Meyer <dischi@freevo.org>

	* test/signals.py, src/tmpfile.py, src/notifier/url.py: update properties

	* src/tmpfile.py:
	Respect TMPDIR env and don't care about extra flags in the mode like
	the sticky bit as long as group and others have no read, write and
	execute rights.

2007-02-10  Dirk Meyer <dischi@freevo.org>

	* src/distribution/xmlconfig.py: handle dict type

	* src/xml.py: add unlink function

2007-02-07  Dirk Meyer <dischi@freevo.org>

	* src/distribution/xmlconfig.py: escape ' in desc

	* src/config.py:
	Dict with more than one Var fix; return items in Group in correct
	order on iter

2007-02-04  Dirk Meyer <dischi@freevo.org>

	* src/config.py: make it possible to interate over the config

2007-02-03  Dirk Meyer <dischi@freevo.org>

	* src/config.py: support - in config file

2007-01-23  Dirk Meyer <dischi@freevo.org>

	* src/notifier/url.py: use correct callbacks

	* src/notifier/__init__.py
	* src/notifier/url.py (added):
	add urllib2 wrapper based on threads

	* src/utils.py: rename Memberfunction to MemberFunction

	* src/utils.py: add Singleton class

2007-01-22  Jason Tackaberry <tack@urandom.ca>

	* test/callbacks.py, src/notifier/callback.py:
	Rework Signal class to use Callback and WeakCallback objects: when a
	callback is connected, a Callback object will be returned; fixed bug
	where doing cb == Callback(cb) wouldn't be True; simplified
	WeakCallback a bit (removed __call__ and created get_user_args()
	method); added __nonzero__ method that always returns True for Signal
	objects

2007-01-22  Dirk Meyer <dischi@freevo.org>

	* src/notifier/yieldfunc.py:
	support Signals/functions in YieldCallback.__init__

	* src/notifier/async.py: Always use once=True for InProgress

2007-01-20  Dirk Meyer <dischi@freevo.org>

	* src/notifier/nf_wrapper.py:
	Default recursive_depth of 2 is not enough when using yield functions
	and step() in epg. I need at least 3, so let us use 5.:)

	* src/notifier/yieldfunc.py: support yieldfunctions without return

2007-01-19  Dirk Meyer <dischi@freevo.org>

	* setup.py: set version higher than last release

2007-01-16  Jason Tackaberry <tack@urandom.ca>

	* src/extensions/shmmodule.c:
	Use PyObject_DEL instead of PyMem_DEL which no longer works as of
	Python 2.5; fix provided by Pierre Ossman.

2007-01-16  Rob Shortt <rob@tvcentric.com>

	* src/config.py: if filename is None expanduser() fails

2007-01-15  Jason Tackaberry <tack@urandom.ca>

	* src/distribution/core.py:
	Add extra_libraries kwarg to check_cc() and compile() methods; fix
	kaa.display setup.py to use this for checking dfb evas engine.

2007-01-14  Jason Tackaberry <tack@urandom.ca>

	* src/config.py:
	Add _hash() method to each class and store schema hash with the config
	file; by default, do not overwrite config file if schema hasn't
	changed.

	* src/notifier/thread.py: Log an error when thread pipe has no data.

	* src/config.py:
	Call expanduser on load/save filename. Add 'create' kwarg to load for
	creating config files if they don't exist.

2007-01-13  Dirk Meyer <dischi@freevo.org>

	* src/utils.py: create function to track if a kaa app is running

	* src/__init__.py
	* src/tmpfile.py (added):
	move TEMP variable to extra file and add tempfile function

2007-01-12  Dirk Meyer <dischi@freevo.org>

	* src/config.py: fix unicde bug

	* src/notifier/callback.py: do not confuse Jason

	* test/signals.py (added)
	* src/notifier/callback.py:
	add Signals class (dict) for easier use of signal dicts

2007-01-09  Dirk Meyer <dischi@freevo.org>

	* src/extensions/inotify/__init__.py:
	Set fd paramater when we know it worked

2007-01-05  Dirk Meyer <dischi@freevo.org>

	* src/config.py: translate _ to - if needed

	* src/input/lirc.py: expose signal direct in the module

	* src/distribution/xmlconfig.py:
	make it possible to add default values for dict

	* src/config.py:
	Fix dict in dict or group in dict on save. It should still work for
	all the other cases, some stuff in it was very strang and made no
	sense. :)

2007-01-02  Dirk Meyer <dischi@freevo.org>

	* src/distribution/xmlconfig.py, src/distribution/__init__.py: prop set

	* src/config.py: make it look better (tested on popcorn config)

2006-12-30  Jason Tackaberry <tack@urandom.ca>

	* src/extensions/inotify/__init__.py:
	Use non-block socket and log an error if data handler got no data;
	don't allow constructor to be called more than once (for singleton)

2006-12-30  Dirk Meyer <dischi@freevo.org>

	* src/config.py:
	Create INotify object when needed and not global. If it is done global
	the inotify fd will connect to the mainloop on import. Forking a
	helper process like beacon after the fd is connected causes some
	strange errors resulting in calling the wrong callback in the other
	process.

2006-12-30  Jason Tackaberry <tack@urandom.ca>

	* src/distribution/core.py, setup.py:
	Better support for RPM packaging via distutils bdist_rpm command.

	* src/distribution/core.py: More pythonic

2006-12-29  Jason Tackaberry <tack@urandom.ca>

	* src/distribution/core.py, setup.py:
	Check that Python.h exists if need to compile an extension module
	(hopefully solves a FAQ); indicate that lack of inotify in glibc is
	not an error (hopefully solves another FAQ).

2006-12-26  Jason Tackaberry <tack@urandom.ca>

	* src/distribution/core.py:
	Library.compile() should add include and library paths for that
	library.

2006-12-10  Jason Tackaberry <tack@urandom.ca>

	* src/distribution/core.py:
	When calling check_cc for an Extension, add all include and library
	paths as compile argments for all libraries added to that ext.

	* src/distribution/core.py: Use $CC, $CFLAGS, and $LDFLAGS.

2006-12-10  Dirk Meyer <dischi@freevo.org>

	* src/notifier/sockets.py: catch socket error

2006-12-09  Jason Tackaberry <tack@urandom.ca>

	* src/rpc.py: Better order.

	* src/rpc.py:
	Put DoS check back, but make it work for the case when server sends
	large amount of data along with response to client challenge.

2006-12-09  Dirk Meyer <dischi@freevo.org>

	* src/rpc.py: remove some extra check, I hope we do not need it

2006-12-02  Dirk Meyer <dischi@freevo.org>

	* src/notifier/callback.py: raise better exception

	* src/distribution/core.py: typo

2006-11-30  Dirk Meyer <dischi@freevo.org>

	* src/distribution/xmlconfig.py:
	remove <schema> from xml, use 4 spaces indent

2006-11-29  Dirk Meyer <dischi@freevo.org>

	* src/distribution/xmlconfig.py: add group and list parser, cleanup

	* src/distribution/xmlconfig.py (added)
	* src/distribution/build_py.py (added)
	* src/distribution/core.py:
	add config xml to python converter

	* src/distribution/__init__.py (added): add missing __init__.py

	* src/version.py
	* src/distribution/core.py (added)
	* src/distribution (added)
	* src/distribution.py (removed)
	* src/distribution/version.py (added):
	move distribution.py into a subdir

2006-11-29  Jason Tackaberry <tack@urandom.ca>

	* src/distribution.py:
	Include newline at end of code to compile (lack of newline flags a
	compiler warning)

2006-11-27  Jason Tackaberry <tack@urandom.ca>

	* src/ipc.py (removed): Move kaa.ipc into DEPRECATED/

2006-11-27  Dirk Meyer <dischi@freevo.org>

	* setup.py, MANIFEST.in: fix MANIFEST.in and release 0.1.1

2006-11-27  Jason Tackaberry <tack@urandom.ca>

	* src/rpc.py: Pad generated auth key to SHA1 block size, as with HMAC.

	* src/rpc.py: log auth failure on client end.

	* src/rpc.py:
	Don't read all data on socket unless authenticated; prevents possible
	DoS

2006-11-27  Dirk Meyer <dischi@freevo.org>

	* setup.py: update license

2006-11-27  Jason Tackaberry <tack@urandom.ca>

	* src/rpc.py: Remove more code duplication.

	* src/notifier/async.py: Better form.

	* src/rpc.py:
	Add some logging for authentication; fix bug where server could send a
	non-auth command to client before authentication completed; remove
	some code duplication.

	* src/rpc.py: Simplify the code path for packets before authentication.

	* src/rpc.py:
	Use a modified CRAM-SHA for authentication as opposed to a double-SHA
	(CRAM is makes offline attacks more difficult); add a comment that
	chosen plaintext attacks aren't very likely. (The salt was necessary
	with kaa.ipc where the client would initiate auth, but with rpc the
	server initiates auth, so salting the response only thwarts a CPA if
	the server is rogue.)

2006-11-26  Jason Tackaberry <tack@urandom.ca>

	* src/rpc.py:
	Merge back most of the auth logic (and comments) from kaa.ipc -- fixes
	2 DoS attacks and extends the auth process to be a 3-way handshake
	instead of 2-way to prevent server from being able to do rpc calls on
	client when secrets don't match; allow connecting an exposed function;
	some cleanups with __repr__

2006-11-22  Jason Tackaberry <tack@urandom.ca>

	* src/distribution.py:
	Don't use &> for redirection as it assumes bash, which may not be
	default shell.

2006-11-21  Dirk Meyer <dischi@freevo.org>

	* src/notifier/pynotifier/__init__.py,
	* src/notifier/pynotifier/dispatch.py,
	* src/notifier/pynotifier/nf_generic.py, src/notifier/pynotifier/log.py,
	* src/notifier/pynotifier/version.py, src/notifier/pynotifier/nf_gtk.py:
	sync with pynotifier trunk:

	fixed indentation

	removed $Id$ from header

	globally catch KeyboardInterrupt and SystemExit exceptions in step  to
	preserve maximum resursion depth errors

2006-11-21  Jason Tackaberry <tack@urandom.ca>

	* src/distribution.py:
	Fix problem where modules in src/extensions/foo were getting
	translated to a python path of kaa.module.extensions.foo instead of
	kaa.module.foo.

2006-11-19  Jason Tackaberry <tack@urandom.ca>

	* src/notifier/pynotifier/nf_generic.py:
	Fix bug in notifier where KeboardInterrupt was not being handled
	during select in step().

2006-11-17  Jason Tackaberry <tack@urandom.ca>

	* src/distribution.py:
	Refactor distribution stuff to minimize code duplication.

2006-11-16  Dirk Meyer <dischi@freevo.org>

	* kaa-base.ebuild (added): add ebuild templates

	* setup.py: use setup from distribution.py

	* src/distribution.py: add support for ebuild generation

2006-11-12  Jason Tackaberry <tack@urandom.ca>

	* src/distribution.py: Remove needless string join.

	* src/distribution.py: Actually use maxlen :)

	* src/distribution.py: Don't error when version found == min version.

	* src/distribution.py:
	Use lexical comparison for versions, but pad version components to be
	equal length so cmp actually works right.

2006-11-12  Duncan Webb <duncan@freevo.org>

	* src/extensions/shmmodule.c: Changed functions to be a correct prototype

	* src/distribution.py:
	check does not work in all cases, eg SDL 1.2.5 is greater than 1.2.11
	This fixes this and should work in all cases

2006-11-09  Jason Tackaberry <tack@urandom.ca>

	* src/extensions/objectrow.c: Add Id keyword.

	* src/extensions/inotify/__init__.py: Fix copyright.

	* src/extensions/inotify/__init__.py:
	Fix INotify MOVE event to no longer require MOVED_TO event for a
	corresponding MOVED_FROM event to occur in the same call to
	_handle_data().

	* src/extensions/inotify/__init__.py: Implement as singleton.

	* src/config.py:
	This assert is redundant. (Callback constructor already does it.)

2006-11-06  Dirk Meyer <dischi@freevo.org>

	* src/notifier/popen.py:
	deliver all data in queue before handling dead child

2006-11-01  Dirk Meyer <dischi@freevo.org>

	* test/callbacks.py: svn propset

	* src/extensions/objectrow.c, src/extensions/inotify/inotify.c:
	respect C standard, needs to be fixed in other modules, too

2006-10-30  Dirk Meyer <dischi@freevo.org>

	* src/extensions/inotify/__init__.py: oops, I broke it

	* src/decorators.py, src/config.py, setup.py, src/ioctl.py, src/ipc.py,
	* src/logger.py, src/extensions/inotify/__init__.py,
	* src/distribution.py, src/input/stdin.py, src/rpc.py, src/weakref.py,
	* src/db.py, src/extensions/objectrow.c, TODO, src/input/lirc.py,
	* src/strutils.py, COPYING, src/extensions/inotify/inotify.c,
	* src/__init__.py, src/utils.py, src/xml.py:
	Relicence kaa.base under LGPL. Add header to all files and point to
	the LGPL in all headers. Also remove trailing whitespaces.

	* src/input/bluetooth.py (removed):
	move bluetooth out of kaa.base, it is not LGPL compatible

2006-10-27  Dirk Meyer <dischi@freevo.org>

	* src/logger.py: use internal reference to original makeRecord

	* src/logger.py: next try to fix logger for python 2.5

	* src/logger.py: make logger work with python 2.5 (without testing)

2006-10-15  Jason Tackaberry <tack@urandom.ca>

	* src/extensions/objectrow.c:
	Look in pickle for attribute if ATTR_INDEXED_IGNORE_CASE, not if
	ATTR_IGNORE_CASE.

2006-10-06  Dirk Meyer <dischi@freevo.org>

	* src/extensions/inotify/inotify.c: use perror to show the problem

2006-10-04  Jason Tackaberry <tack@urandom.ca>

	* src/db.py, test/callbacks.py, src/notifier/callback.py:
	Support weakref for functions; don't update types table if type hasn't
	really changed; support the case when modifying an existing type
	attribute; commit after registering object type attr, just to be safe;
	reload object types after updating attributes of an existing object
	type.

2006-09-26  Dirk Meyer <dischi@freevo.org>

	* src/notifier/thread.py, src/notifier/sockets.py,
	* src/notifier/callback.py, src/notifier/async.py,
	* src/notifier/__init__.py, src/notifier/timer.py,
	* src/notifier/event.py, src/notifier/jobserver.py,
	* src/notifier/popen.py, src/notifier/yieldfunc.py,
	* src/notifier/nf_wrapper.py, src/notifier/decorators.py:
	put kaa.notifier under LGPL 2.1

2006-08-11  Jason Tackaberry <tack@urandom.ca>

	* src/extensions/objectrow.c: Fix the "major kaa.db bug"

2006-08-08  Dirk Meyer <dischi@freevo.org>

	* src/rpc.py: call callback signal even without connected stuff

2006-08-07  Dirk Meyer <dischi@freevo.org>

	* src/utils.py: add wait in daemonize to block until the child is ready

2006-08-06  Dirk Meyer <dischi@freevo.org>

	* src/notifier/timer.py: incr. log level to see if the bug is fixed

2006-08-05  Dirk Meyer <dischi@freevo.org>

	* src/notifier/popen.py:
	close the child socket is a good idea to avoid running out of
	filehandles :)

2006-08-04  Jason Tackaberry <tack@urandom.ca>

	* src/extensions/shmmodule.c:
	Don't check memory status when detaching shmem segment. Actually this
	basic logic is broken in shmmodule, because it is possible for a
	segment to be destroyed (or rather marked for destruction) which means
	it technically doesn't exist, but it should otherwise function fine
	for any processes that have attached it. I'll revisit this code later,
	but for now this change allows us to detach from a shmem segment after
	it has been marked for destruction in another process.

2006-08-03  Dirk Meyer <dischi@freevo.org>

	* src/notifier/nf_wrapper.py: support notifier init options

	* src/notifier/pynotifier/__init__.py,
	* src/notifier/pynotifier/version.py, src/notifier/pynotifier/nf_gtk.py:
	sync with new pynotifier

	* src/db.py: require some higher sqlite version

2006-08-02  Jason Tackaberry <tack@urandom.ca>

	* src/db.py, src/extensions/objectrow.c:
	Support pickling ObjectRow objects; fixes a bug in beacon when doing
	dirname queries of a new directory that isn't yet in the db. (beacon
	returns a list of pickled ObjectRows instead.)

2006-08-01  Dirk Meyer <dischi@freevo.org>

	* src/db.py: check pysqlite version

2006-08-01  Jason Tackaberry <tack@urandom.ca>

	* src/db.py, src/extensions/objectrow.c:
	Integrate new ObjectRow row factory with kaa.db; remove all the cruft
	from kaa.db that has to do with normalizing rows; remove query_raw(),
	it's just query() now.

	* setup.py: Make glib optional.

2006-07-31  Dirk Meyer <dischi@freevo.org>

	* src/distribution.py: fix version check when using pkg-config

	* setup.py: print error

2006-07-31  Jason Tackaberry <tack@urandom.ca>

	* setup.py: Require glib.

	* src/extensions/objectrow.c (added)
	* setup.py:
	Initial work on custom C-based sqlite row factory. This is about 2-4
	times faster than the current normalize code. This introduces a
	dependency on glib, which isn't really a problem as glib is a pretty
	standard library nowadays.  Not integrated yet with kaa.db; will do
	that tomorrow.

2006-07-23  Dirk Meyer <dischi@freevo.org>

	* src/extensions/inotify/__init__.py: no need for the signal anymore

	* src/notifier/callback.py: return active() == false on python shutdown

	* src/rpc.py: raise special ConnectError exception

2006-07-22  Jason Tackaberry <tack@urandom.ca>

	* src/notifier/callback.py:
	Rename _notifier_running to something more descriptive; add comment
	describing it.

2006-07-21  Dirk Meyer <dischi@freevo.org>

	* src/extensions/inotify/__init__.py: add small todo

	* src/notifier/callback.py:
	prevent weakrefs from calling anything on python shutdown

	* src/notifier/__init__.py: disconnect all signals on shutdown

	* src/config.py: remember loaded filename for save

	* src/rpc.py: fix error on debug

	* src/notifier/decorators.py: adjust to notifier change

2006-07-19  Jason Tackaberry <tack@urandom.ca>

	* test/callbacks.py (added): Add callbacks test script.

2006-07-18  Dirk Meyer <dischi@freevo.org>

	* src/notifier/callback.py: recursion can not happen with new pynotifier

2006-07-17  Dirk Meyer <dischi@freevo.org>

	* src/notifier/yieldfunc.py: support two kinds of __call__

2006-07-16  Dirk Meyer <dischi@freevo.org>

	* src/notifier/pynotifier/nf_generic.py, src/rpc.py,
	* src/notifier/pynotifier/log.py, test/asynctest.py,
	* src/notifier/pynotifier/__init__.py,
	* src/notifier/pynotifier/dispatch.py,
	* src/notifier/pynotifier/nf_gtk.py, src/input/stdin.py,
	* src/notifier/nf_wrapper.py, src/notifier/async.py, src/utils.py,
	* src/notifier/yieldfunc.py:
	set missing properties

	* src/notifier/pynotifier/__init__.py,
	* src/notifier/pynotifier/dispatch.py,
	* src/notifier/pynotifier/nf_generic.py, src/notifier/pynotifier/log.py,
	* src/notifier/pynotifier/version.py, src/notifier/pynotifier/nf_gtk.py:
	switch to pynotifier 0.5 (LGPL)

	* src/notifier/yieldfunc.py:
	make it possible to create a YieldFunction directly

2006-07-15  Dirk Meyer <dischi@freevo.org>

	* src/extensions/inotify/__init__.py: unregister socket on shutdown

	* src/rpc.py: avoid double close

	* src/rpc.py: write and read as fast as possible

	* src/rpc.py: close on shutdown

	* test/asynctest.py (added): add test for async calls

	* src/rpc.py: change interface and always return an InProgress object

	* src/notifier/__init__.py: adjust to moved fuctions/classes

	* src/notifier/thread.py:
	use InProgress on async MainThreadCallback calls

	* src/notifier/jobserver.py, src/notifier/decorators.py:
	move execute_in_thread to job.py and return an InProgress object when
	such a function is called.

	* src/notifier/yieldfunc.py:
	update yield function to accepts InProgress as return

	* src/notifier/async.py (added):
	InProgress not inherits from Signal and is moved to async.py

2006-07-13  Dirk Meyer <dischi@freevo.org>

	* src/notifier/pynotifier/__init__.py,
	* src/notifier/pynotifier/nf_generic.py,
	* src/notifier/pynotifier/nf_gtk.py:
	sync with pynotifier trunk

	* src/utils.py: do not reset umask

	* src/db.py: accept list and tuple in QExp

2006-07-12  Jason Tackaberry <tack@urandom.ca>

	* src/notifier/callback.py:
	Fix not creating log object; Update Callback.__cmp__ to also check if
	the passed object is the callback object itself, as well as check if
	it's the callback we're wrapping. (Fixes a bug in connect_weak: when
	the referance dies, the callback doesn't get properly disconnected.
	This manifested itself during animations.)

2006-07-12  Dirk Meyer <dischi@freevo.org>

	* src/notifier/callback.py: error handling for emit callbacks

	* src/rpc.py: send delayed messages after auth

2006-07-11  Dirk Meyer <dischi@freevo.org>

	* src/notifier/pynotifier/__init__.py,
	* src/notifier/pynotifier/nf_generic.py, src/notifier/nf_wrapper.py:
	fix pynotifier generic

	* src/notifier/pynotifier/__init__.py (added)
	* src/notifier/pynotifier/dispatch.py (added)
	* src/notifier/pynotifier/nf_generic.py (added)
	* src/notifier/pynotifier/log.py (added)
	* setup.py
	* src/notifier/pynotifier/version.py (added)
	* src/notifier/nf_generic.py (removed)
	* src/notifier/pynotifier/nf_gtk.py (added)
	* src/notifier/pynotifier (added)
	* src/notifier/nf_wrapper.py:
	Copy current pynotifier with generic and gtk support into
	kaa.notifier.

	* src/notifier/popen.py: accept tuple

	* src/notifier/thread.py: move missing variables around

2006-07-11  Jason Tackaberry <tack@urandom.ca>

	* src/extensions/shmmodule.c:
	Fix bug on 64 bit arg. (Should submit this upstream to RH)

	* src/notifier/nf_wrapper.py: Add default value for condition arg.

2006-07-10  Jason Tackaberry <tack@urandom.ca>

	* src/distribution.py:
	Support custom extra_compile_args; copy libraries, library_dirs, etc.
	in constructor so they can be safely modified after instantiaton.

2006-07-10  Dirk Meyer <dischi@freevo.org>

	* src/notifier/thread.py
	* src/notifier/sockets.py
	* src/notifier/callback.py
	* src/notifier/__init__.py
	* src/notifier/timer.py
	* src/notifier/popen.py
	* src/notifier/nf_wrapper.py (added):
	Create real notifier instance when needed. This makes it possible to
	select a new mainloop even after kaa is imported. After timer or
	sockets are added, a mainloop switch is not possible.

	* src/config.py: support multi-line doc in list

2006-07-10  Jason Tackaberry <tack@urandom.ca>

	* src/config.py, src/db.py, src/extensions/inotify/__init__.py:
	Get rid of the NoCopyCallback kludge -- kludge moved to Callback
	class. Fix bugs with deepcopying Config objects; add an autosave
	feature to Config.

	* src/notifier/callback.py: Implements cmp for callbacks.

	* src/notifier/callback.py: See docstring.

	* src/config.py:
	Fix bug where List with a Group schema would be saved as, for example,
	list.[0].foo = bar. It should be list[0].foo = bar. Also added repr to
	all objects for useful debugging.

	* src/config.py: Fixes for the lame deepcopy problem.

	* src/config.py:
	Add watch() API to config for config file monitoring; add
	set_filename() method for setting the default filename for the config
	object. load() no longer remembers the value passed to it, so code
	that relies on this will have to be changed.

	* src/extensions/inotify/__init__.py:
	Fix bug where watch doesn't get fully removed when DELETE_SELF occurs.

2006-07-09  Jason Tackaberry <tack@urandom.ca>

	* src/extensions/inotify (added)
	* setup.py
	* src/extensions/inotify/__init__.py:
	Always build shm module, but put under kaa.shm; move inotify to
	kaa.base.

	* src/distribution.py: Terminology fixes.

	* src/distribution.py: Fix for building kaa modules on x86_64.

	* src/extensions/shmmodule.c: Fix some compiler warnings under -Wall

2006-07-09  Dirk Meyer <dischi@freevo.org>

	* src/notifier/thread.py: create _thread_notifier_pipe when needed

2006-07-09  Jason Tackaberry <tack@urandom.ca>

	* src/notifier/thread.py, src/notifier/__init__.py:
	Fixes for when kaa.main() is started in another thread.

	* src/utils.py: A bit more elegant.

2006-07-08  Jason Tackaberry <tack@urandom.ca>

	* src/utils.py:
	Don't return a list of results for which(); just the first one.

	* src/utils.py: Fix zombie when exit=False

	* src/utils.py (added): Add some utility functions.

2006-07-08  Dirk Meyer <dischi@freevo.org>

	* src/notifier/thread.py, src/notifier/popen.py:
	fix some exception handling

2006-07-06  Dirk Meyer <dischi@freevo.org>

	* src/rpc.py: update debug

	* src/notifier/__init__.py
	* src/notifier/yieldfunc.py (added):
	add support and doc(!) for using yield in functions

2006-06-24  Dirk Meyer <dischi@freevo.org>

	* src/rpc.py: add more doc

	* src/rpc.py: add doc

2006-06-23  Dirk Meyer <dischi@freevo.org>

	* src/notifier/__init__.py: stop at system exit

	* src/rpc.py (added):
	Add a simple rpc module. It has much less features than kaa.ipc but it
	is possible to use this without any blocking (step() calling)

2006-06-11  Dirk Meyer <dischi@freevo.org>

	* src/notifier/__init__.py: nicer exception debug

2006-04-29  Jason Tackaberry <tack@urandom.ca>

	* src/notifier/callback.py, src/notifier/__init__.py:
	Change signal emit default return value to True, if any handlers
	return False then emit will return False. Removed step signal wrapper
	and pass the emit method directly to notifier again. (If any step
	signal handlers return False this dispatcher will get removed, but
	that's not a big deal, we just make sure we don't do that).

2006-04-29  Dirk Meyer <dischi@freevo.org>

	* src/notifier/__init__.py: rename idle signal to step

	* src/xml.py: prevent crash

2006-04-28  Jason Tackaberry <tack@urandom.ca>

	* src/notifier/__init__.py:
	Wrap idle signal emit in a function that ignores return value so
	notifier doesn't remove the dispatcher.

2006-04-25  Jason Tackaberry <tack@urandom.ca>

	* src/ipc.py: Stupid annoying exceptions on shutdown

	* src/ipc.py:
	Return false if read from socket failed (due to socket close, not due
	to nonblock read with no data) so that notifier will remove the fd
	handler; remove custom _debug and use logger debug instead.

	* src/db.py:
	Add vacuum method; add get_db_info method that returns some info about
	the database such as total object count, indexed keywords, available
	object types, count breakdown by type.

	* src/notifier/timer.py:
	And the clouds parted and a wonderous voice hath spake unto me from
	the heavens above: "thou shalt edit timer.py and modify thine inactive
	callback warning to debug." And the heathens and infidels trembled
	before the mighty voice, and the commandment was passed into law.

2006-04-22  Jason Tackaberry <tack@urandom.ca>

	* src/ipc.py: Don't propagate KeyboardInterrupt exceptions to remote.

	* src/db.py:
	Revert coersion for limit kwarg; changed my mind, this should be the
	caller's responsibility.

	* src/db.py:
	Also coerge string of digits to numeric type for limit kwarg.

	* src/db.py:
	Coerce string of digits into numeric type; fix typo in _query_keywords
	__doc__

	* src/db.py: Split keywords on digits too.

2006-04-21  Dirk Meyer <dischi@freevo.org>

	* src/weakref.py: better None support

	* src/weakref.py: revert change

	* src/notifier/popen.py: prevent recursion

	* src/weakref.py: fix a second True/False bug when _ref() is not None

2006-04-20  Dirk Meyer <dischi@freevo.org>

	* src/weakref.py: create weakref also for "False" objects

2006-04-19  Jason Tackaberry <tack@urandom.ca>

	* src/db.py: Some minor optimizations to keyword searching.

	* src/ipc.py: Exception cleanup

2006-04-17  Dirk Meyer <dischi@freevo.org>

	* src/notifier/nf_generic.py: fix typo

2006-04-16  Dirk Meyer <dischi@freevo.org>

	* src/notifier/callback.py, src/notifier/__init__.py:
	small code to support gtk notifier

2006-04-07  Dirk Meyer <dischi@freevo.org>

	* src/db.py: remove debug

	* src/ipc.py: remove debug

	* src/input/__init__.py, src/input/stdin.py:
	update stdin stuff, you must import kaa.input.stdin now

	* src/input/stdin.py: fix another bug when porting getch

	* TODO, src/notifier/__init__.py: update to missing utils file

	* src/input/__init__.py: import stdin as default (maybe not later)

	* src/ipc.py
	* src/notifier/__init__.py
	* src/input/stdin.py (added)
	* src/utils.py (removed):
	move stdin signal code (getch) from util to input

2006-03-31  Jason Tackaberry <tack@urandom.ca>

	* src/db.py:
	remove "ON CONFLICT REPLACE" clause from index as it was removed from
	sqlite as of 3.3.3

2006-03-31  Dirk Meyer <dischi@freevo.org>

	* test/xml.py, test/decorator.py, src/input/bluetooth.py, src/config.py,
	* src/logger.py, src/notifier/decorators.py, test/config.py,
	* src/decorators.py, src/strutils.py, src/xml.py:
	set properties

	* src/notifier/.cvsignore (removed)
	* src/input/.cvsignore (removed)
	* src/.cvsignore (removed):
	remove .cvsignore files, we now use svn

2006-03-31  Jason Tackaberry <tack@urandom.ca>

	* src/notifier/thread.py: Silence stupid exceptions on shutdown.

2006-03-27  Jason Tackaberry <tack@urandom.ca>

	* src/db.py:
	Add case-insensitive columns via ATTR_IGNORE_CASE flag. For non-
	indexed  columns it will just call lower(column) in the sql query. For
	indexed columns it will actually store the value lower case in that
	column and use the pickle for the actual value. This means case-
	insensitive queries on indexed columns can still benefit from the
	index.

2006-03-25  Jason Tackaberry <tack@urandom.ca>

	* src/db.py: Finish a comment I started :)

	* src/db.py:
	Deprecated ATTR_KEYWORDS_FILENAME and instead added a heuristic to see
	if the text to index is a possible filename or not.

2006-03-25  Dirk Meyer <dischi@freevo.org>

	* src/logger.py: do not set log level

	* src/ipc.py: remove launch code

2006-03-21  Dirk Meyer <dischi@freevo.org>

	* src/config.py: fix comment stuff

	* src/ipc.py: prevent crash on shutdown

2006-03-19  Jason Tackaberry <tack@urandom.ca>

	* src/notifier/sockets.py:
	Socket keeps ref cycle with notifier only while connected, so that
	disconnected sockets get deallocated without intervention from gc.

	* src/notifier/sockets.py: Add listen support to Socket class

2006-03-18  Dirk Meyer <dischi@freevo.org>

	* src/db.py: change doc to make highlight work with emacs :)

	* src/notifier/timer.py: do not call timer when already inactive

	* src/notifier/decorators.py: prevent recursion

2006-03-18  Jason Tackaberry <tack@urandom.ca>

	* src/db.py: Add "like" operator to QExpr

2006-03-18  Dirk Meyer <dischi@freevo.org>

	* src/db.py: do not use print

	* src/ipc.py: stop warning on shutdown

	* src/ipc.py: user logger and not print

2006-03-16  Rob Shortt <rob@tvcentric.com>

	* src/ipc.py:
	it will IPCDisconnectedError if disconnected, so return False

	* src/db.py: classic int() fix

2006-03-11  Dirk Meyer <dischi@freevo.org>

	* src/__init__.py, src/notifier/decorators.py:
	fix name conflict with weakref as module and function

	* test/xml.py (added)
	* src/libxml2.py (removed)
	* src/xml.py (added)
	* test/libxml2.py (removed):
	rename libxml2.py to xml.py

	* setup.py: there is no base dir anymore

	* src/libxml2.py (added)
	* src/ioctl.py (added)
	* src/weakref.py (added)
	* test/libxml2.py
	* src/ipc.py (added)
	* src/notifier/__init__.py
	* src/distribution.py (added)
	* src/utils.py (added)
	* src/config.py (added)
	* src/logger.py (added)
	* src/base (removed)
	* src/notifier/decorators.py
	* src/db.py (added)
	* src/version.py (added)
	* test/config.py
	* src/decorators.py (added)
	* src/strutils.py (added)
	* src/__init__.py:
	restructure kaa.base

2006-03-10  Dirk Meyer <dischi@freevo.org>

	* src/base/libxml2.py: handle empty attributes

	* src/base/distribution.py: fix stupid bug when using the global setup.py

	* src/base/distribution.py: start moving some stuff around

2006-03-05  Dirk Meyer <dischi@freevo.org>

	* src/input/bluetooth.py: only send when connected

2006-03-04  Dirk Meyer <dischi@freevo.org>

	* src/base/ipc.py: be more verbose

	* src/input/bluetooth.py: fix bluetooth init

	* src/base/distribution.py: make better test file

2006-02-26  Dirk Meyer <dischi@freevo.org>

	* src/base/libxml2.py: make it possible to read from memory

	* src/notifier/__init__.py: better shutdown handling

2006-02-24  Dirk Meyer <dischi@freevo.org>

	* src/base/distribution.py: change stdout/stderr handling

	* src/base/distribution.py: create Configfile class outside extention

2006-02-19  Dirk Meyer <dischi@freevo.org>

	* src/base/ipc.py: add function to autostart server if needed

2006-02-18  Dirk Meyer <dischi@freevo.org>

	* src/notifier/decorators.py: make timers weak to help the gc

2006-02-13  Dirk Meyer <dischi@freevo.org>

	* src/base/libxml2.py: add better import warning

	* src/base/libxml2.py:
	Some content unicode bugfixes, also replace all & with &amp; when
	using .content. If you need to set something with an entity, use
	set_content_raw. Also make it possible to add any kind of object as
	child as long as it as __xml__ defined returning a node

	* src/base/libxml2.py: fix unicode bug

	* src/base/decorators.py (added): start decorators module

	* test/libxml2.py, src/base/libxml2.py:
	update iterator to go thru all nodes

2006-02-12  Dirk Meyer <dischi@freevo.org>

	* test/libxml2.py (added)
	* src/base/libxml2.py (added):
	add libxml2 wrapper

2006-02-05  Dirk Meyer <dischi@freevo.org>

	* test/decorator.py, src/notifier/decorators.py:
	fix bug with more than one exposed function in a class

	* test/decorator.py (added)
	* src/notifier/__init__.py
	* src/notifier/decorators.py (added):
	Add some decorators to avoid duplicate code all this time. In many
	cases Timer or used to simulate stepping or delayed callbacks. And the
	execute_in_thread and execute_in_mainloop decorators will make sure a
	function is called in the correct thread context.

2006-02-02  Dirk Meyer <dischi@freevo.org>

	* AUTHORS (added)
	* TODO (added)
	* setup.py
	* COPYING (added)
	* MANIFEST.in (added)
	* README (added):
	add metadata

2006-02-01  Dirk Meyer <dischi@freevo.org>

	* src/notifier/popen.py: use isinstance and not type()

2006-01-30  Dirk Meyer <dischi@freevo.org>

	* src/input/lirc.py:
	Update lirc to make it possible to stop the lirc connection later and
	add some docs.

2006-01-29  Dirk Meyer <dischi@freevo.org>

	* src/input/lirc.py: add fixme

	* src/base/config.py: format multiline descriptions

	* src/notifier/callback.py: remove default notifier logger

	* src/base/logger.py: remove debug

2006-01-21  Dirk Meyer <dischi@freevo.org>

	* src/notifier/thread.py:
	better exception handling for thread/mainloop interaction

2006-01-15  Dirk Meyer <dischi@freevo.org>

	* src/input/bluetooth.py (added): add bluetooth into system

2006-01-09  Jason Tackaberry <tack@urandom.ca>

	* src/notifier/sockets.py: SocketDispatcher missing from __all__

	* src/notifier/thread.py, src/notifier/sockets.py,
	* src/notifier/callback.py, test/config.py, src/notifier/__init__.py,
	* src/notifier/popen.py:
	Some cleanup in notifier/__init__.py (no need to explicitly reference
	what  things to import from notifier modules, since __all__ is
	specified); new function set_current_as_mainthread() which is called
	when notifier.loop() is called, which allows the main loop to run in
	another thread; fix for Process.is_alive()

2006-01-08  Jason Tackaberry <tack@urandom.ca>

	* src/base/config.py: Some fixes for proxying bool config variables.

	* src/base/ipc.py, src/base/weakref.py, src/base/config.py:
	Refactor config code a bit, and add monitor support; bug fixes in ipc;
	fixes in weakref for non-callable objects.

2006-01-05  Dirk Meyer <dischi@freevo.org>

	* src/base/strutils.py:
	add format function to take care of string and unicode

2006-01-05  Jason Tackaberry <tack@urandom.ca>

	* src/input/lirc.py: Fixes for lirc shutdown.

2006-01-02  Dirk Meyer <dischi@freevo.org>

	* src/base/strutils.py: fix copy error

	* src/base/config.py: use strutils to convert between str and unicode

	* src/__init__.py:
	import base.logger to make sure the python logging module is updated

	* src/base/__init__.py, src/base/db.py:
	adjustments to the new logger/string module

	* src/base/logger.py (added):
	add "fixes" to the python logging module to handle unicode

	* src/base/utils.py
	* src/base/strutils.py (added):
	move string utils into an extra file and add some more

	* src/base/config.py: add get and __nonzero__ function to Dict

	* src/base/config.py:
	handle empty values and print errors with the logger

2006-01-01  Dirk Meyer <dischi@freevo.org>

	* src/base/config.py: some more improvements for new types

2005-12-30  Dirk Meyer <dischi@freevo.org>

	* src/base/__init__.py: import weakref directly

	* test/config.py (added): config test app

	* src/base/config.py: clean up config module

2005-12-29  Dirk Meyer <dischi@freevo.org>

	* src/base/config.py: allow = in dict key and value

	* src/base/config.py:
	replace descr with desc

	fix more str/unicode bugs

	read config file in the specified encoding

	* src/base/config.py: fix unicode error handling

	* src/base/config.py: more or less final version

	* src/base/config.py: try different config layout using an extra object

2005-12-28  Dirk Meyer <dischi@freevo.org>

	* src/base/config.py: use dicts not lists

2005-12-28  Jason Tackaberry <tack@urandom.ca>

	* src/notifier/callback.py:
	Override __repr__ for WeakCallback to display more information.

	* src/notifier/callback.py: Use __repr__ instead of __str__

2005-12-27  Jason Tackaberry <tack@urandom.ca>

	* src/input/lirc.py: Don't die if lirc config file doesn't exist.

	* src/notifier/timer.py: Add get_interval() method to Timer

	* src/base/distribution.py:
	Update check_library to use foo-config first, and then fall back on
	pkg-config

2005-12-26  Jason Tackaberry <tack@urandom.ca>

	* src/base/distribution.py:
	When using pkg-config, need to use --modversion to get the library
	version, since --version returns pkg-config's version.

2005-12-24  Jason Tackaberry <tack@urandom.ca>

	* src/base/distribution.py: Update check_library to support pkg-config

2005-12-23  Dirk Meyer <dischi@freevo.org>

	* src/base/config.py (added): first draft of config reader

2005-12-10  Jason Tackaberry <tack@urandom.ca>

	* src/notifier/nf_generic.py:
	Fix bug in notifier where if a timer callback called unregister() on
	itself, it would not get properly unregistered. (Actually, it would
	get unregistered, but then it would get added again.)

	* src/notifier/callback.py:
	For callbacks connected with connect_once, disconnect before calling
	callback.

2005-12-08  Jason Tackaberry <tack@urandom.ca>

	* src/notifier/callback.py:
	Handle the situation where a weak callback connected to a signal loses
	its ref during the signal emission process.

	* src/notifier/callback.py:
	Fix bug where WeakCallback._get_callback() could return None even
	though the reference was still alive (if the object it was proxying
	implements __len__ or __nonzero__); fix bug in signal disconnection if
	WeakCallback was specified (which as a result fixes a bug where weak
	callbacks would fail to get automatically disconnected when their ref
	died).

2005-12-06  Jason Tackaberry <tack@urandom.ca>

	* src/base/ipc.py: Add __ipc_noproxy_args kwarg.

	* src/notifier/callback.py, src/notifier/popen.py:
	Preseve old flags when setting descriptors non-block in IOHandler; fix
	Signal to support weak callbacks for the iterator; implent
	__contains__ for Signal.

2005-12-03  Jason Tackaberry <tack@urandom.ca>

	* src/base/ipc.py:
	Several cleanups for shutdown handling. Use WeakSocketDispatcher and
	ensure proxied objects get removed on shutdown, so that their
	destructors will get  called.

	* src/notifier/__init__.py:
	Added a small sleep to step() when called from non-mainthread to
	prevent  busy loops.

	* src/notifier/thread.py, src/notifier/sockets.py,
	* src/notifier/__init__.py, src/notifier/popen.py:
	Split Process.killall into top steps: stopall and killall. stopall is
	called before the kaa shutdown signal emits, whereas killall is called
	afterward. Also fixed a bug where notifier.step() could be called from
	a thread -- it was causing _thread_notifier_run_queue to be executed
	in non-mainthread and resulting in infinite loop in between that
	function and MainThreadCallback.__call__. Now calling step() from a
	thread simply calls wakeup(). (It should probably sleep a little bit
	as well, to prevent a busy loop.)

	* src/base/ipc.py:
	Fix bugs on shutdown where client sockets wouldn't get properly
	unregistered from notifier.

	* src/notifier/nf_generic.py: Replace tabs with spaces.

2005-11-30  Dirk Meyer <dischi@freevo.org>

	* src/notifier/nf_generic.py: use logging module

	* src/notifier/thread.py, src/notifier/sockets.py,
	* src/notifier/callback.py, src/notifier/__init__.py,
	* src/notifier/nf_generic.py, src/notifier/timer.py,
	* src/notifier/popen.py:
	switch to new pyNotifier version

2005-11-23  Dirk Meyer <dischi@freevo.org>

	* setup.py, src/base/ipc.py, src/input/lirc.py, src/input/__init__.py,
	* src/notifier/event.py, src/notifier/timer.py, src/notifier/sockets.py,
	* src/base/weakref.py, src/__init__.py, src/notifier/callback.py,
	* src/notifier/nf_generic.py, src/notifier/popen.py,
	* src/base/__init__.py, src/base/utils.py, src/notifier/__init__.py,
	* src/base/version.py, src/notifier/thread.py, src/base/distribution.py,
	* src/notifier/jobserver.py, src/base/ioctl.py, test/jobserver.py,
	* src/base/db.py:
	set keyword property

2005-11-19  Jason Tackaberry <tack@urandom.ca>

	* src/base/ipc.py:
	Rename isproxy to is_proxy; add is_proxy_alive function.

2005-11-19  Dirk Meyer <dischi@freevo.org>

	* src/base/__init__.py, src/notifier/__init__.py:
	move logging stuff to an extra function to enable it withut calling
	step()

2005-11-17  Dirk Meyer <dischi@freevo.org>

	* src/notifier/thread.py:
	acquire look only when needed (fix race condition)

	* src/notifier/thread.py: handle error when there is nothing to read

	* src/notifier/thread.py: fix bad wakeup timing whenusing notifier.step

2005-11-06  Jason Tackaberry <tack@urandom.ca>

	* src/base/ipc.py:
	Don't needlessly incref proxies in _proxy_data(); handle StopIteration
	exception so iterating over a remote object works properly.

	* src/base/ipc.py:
	Fix bug where proxied objects weren't getting associated with the
	IPCChannel for async replies.

	* src/notifier/sockets.py:
	Fix bug when async callback is specified in Socket.connect

	* src/base/ipc.py, src/notifier/sockets.py, src/notifier/__init__.py:
	Notifier-aware socket class

2005-10-31  Jason Tackaberry <tack@urandom.ca>

	* src/base/db.py: Fix bug introduced by last check-in

	* src/base/db.py:
	Ensure ATTR_SIMPLE attributes which are set to None still get included
	in the normalized result rows.

2005-10-31  Dirk Meyer <dischi@freevo.org>

	* src/notifier/thread.py, src/notifier/__init__.py:
	make it possible to wake up main thread

2005-10-31  Jason Tackaberry <tack@urandom.ca>

	* src/base/ipc.py:
	Handle "resource temporarily unavailable" exceptions for socket writes

2005-10-25  Jason Tackaberry <tack@urandom.ca>

	* src/base/db.py:
	Raise exception when registering object type with no keywords or
	attributes specified.

	* src/base/db.py: Remove automatic adding of 'dir' object type.

2005-10-17  Jason Tackaberry <tack@urandom.ca>

	* src/base/db.py: Bug fixes.

	* src/base/ipc.py:
	Raise IPCRemoteException when remote exceptions occur on server.

	* src/notifier/callback.py: Fix bugs in signal disconnection

2005-10-16  Jason Tackaberry <tack@urandom.ca>

	* src/notifier/callback.py:
	Added set_prevent_recursion() method to Callback base class, which
	prevents a callback from recursing into itself.

2005-10-14  Jason Tackaberry <tack@urandom.ca>

	* src/base/ipc.py: Comment clarifications.

	* src/base/ipc.py:
	Add salt to auth response to prevent chosen plaintext attacks; add
	more comments for the auth code.

2005-10-13  Jason Tackaberry <tack@urandom.ca>

	* src/base/ipc.py:
	Implement authentication and this time try not to make it suck. Needs
	review.

	* src/base/ipc.py:
	Implement simple challenge authentication in ipc; various cleanups;
	fix bug with async calls.

	* src/base/db.py:
	Move some variable declarations to the top of the function.

	* src/notifier/callback.py:
	Removed unused dictionary interface from Signal; added __iter__ to
	Signal that iterates over callbacks for that signal.

2005-10-12  Jason Tackaberry <tack@urandom.ca>

	* src/base/ipc.py, src/base/db.py:
	Use list instead of string concatentation for constructing query
	string. Allow support for QExpr in parent attribute for queries.

	* src/notifier/__init__.py:
	Er, check notifier handler in both loop() and step()

	* src/notifier/__init__.py:
	Set default handler in step() rather than loop() for client apps that
	don't call main()

	* src/base/utils.py, src/base/db.py:
	Renamed query to query_raw and query_normalized to query. Added some
	convenience functions for dealing with raw datasets.

	* src/base/ipc.py: Support for pickling buffer objects

2005-10-10  Jason Tackaberry <tack@urandom.ca>

	* src/base/db.py:
	Added some internal convenience functions (_get_type_id and
	_get_type_attrs); changed the interface to register_object_type_attrs
	so that db attributes are specified as keyword arguments; added
	support for multi-column indexes.

2005-10-09  Jason Tackaberry <tack@urandom.ca>

	* setup.py: Change the message about shm module.

	* src/base/db.py:
	Change index on words_map to (object_id,object_type) instead of
	(object_type, object_id) for better performance; use triggers to
	handle decrementing file count in words table and keywords_objectcount
	in meta table; rename  _value_to_printable back to _list_to_printable;
	new method  _type_has_keyword_attr which returns True if the specified
	type has any  attribute that's ATTR_KEYWORDS; add method
	delete_by_query which allows deleting multiple objects based on an
	arbitrary query; fixed a bug when attrs keyword is specified in
	query(); fixed a bug where specifying a query limit could return more
	rows than requested.

2005-10-08  Jason Tackaberry <tack@urandom.ca>

	* src/base/db.py (added): Moved db to kaa.base

2005-10-07  Jason Tackaberry <tack@urandom.ca>

	* src/base/ipc.py: Implement support for async calls

2005-09-23  Dirk Meyer <dischi@freevo.org>

	* src/notifier/__init__.py
	* src/notifier/signals.py (removed):
	remove unix signal support (never worked right)

2005-09-21  Jason Tackaberry <tack@urandom.ca>

	* src/base/distribution.py: Add -Wall to extra_compile_args

2005-09-18  Jason Tackaberry <tack@urandom.ca>

	* src/notifier/popen.py:
	Add set_stop_command to Process class. A string or callback can be set
	here and will be used to try to gracefully terminate the process in a
	call to stop(). Since stop() gets automatically called on shutdown, in
	order to terminate processes gracefully on SystemExit, this method
	must be used to set a stop command/callback.

	* src/base/ipc.py:
	Turn debugging back off; make shutdown handling a bit less retarded;
	fix a KeyError bug I introduced in the last checkin.

	* src/base/ipc.py:
	Remove socket file on shutdown; don't send replies to decref/incref
	requests; don't raise exception if the socket is disconnected when we
	try to send a reply -- that's not really a serious condition and it
	can be handled by connecting to the "client_closed" or "closed"
	signals; some other small fixups I forget.

	* src/extensions/shmmodule.c (added)
	* src/extensions (added)
	* src/input/lirc.py
	* setup.py:
	Use SocketDispatcher for lirc instead of polling; add copy of
	shmmodule and install if it's not already available (seems shmmodule
	is not a standard distro module as I thought).

2005-09-18  Dirk Meyer <dischi@freevo.org>

	* src/base/ipc.py:
	test before reusing a unix domain socket, add support for kaa.TEMP

	* src/__init__.py: make sure we have a secure temp directory to play with

2005-09-15  Jason Tackaberry <tack@urandom.ca>

	* setup.py: Update setup.py for kaa.input

	* src/input/.cvsignore (added)
	* src/input (added)
	* src/input/lirc.py (added)
	* src/input/__init__.py (added):
	Add kaa.input, what will become an input subsystem for kaa. I have no
	idea yet how this will be designed, but I wanted to get some of my
	mebox lirc code here because I wanted lirc support in kaaplayer.
	kaaplayer will soon be rewritten to actually be useful, rather than a
	staging ground for spaghetti test code. kaa.input design will need to
	be discussed.

2005-09-11  Rob Shortt <rob@tvcentric.com>

	* src/base/ioctl.py (added): Add ioctl module from Freevo.

2005-09-11  Dirk Meyer <dischi@freevo.org>

	* src/base/distribution.py: remove bad kaa file hack

2005-09-10  Dirk Meyer <dischi@freevo.org>

	* src/base/distribution.py:
	Somebad hacks to make coding in C a little bit easier. Yes, I know
	it's ugly and a bad hack, I will correct it later.

2005-09-10  Jason Tackaberry <tack@urandom.ca>

	* src/base/ipc.py:
	Fix for 64bit arch; fix for __ipc_oneway calls still sometimes timing
	out (on high latency links).

2005-09-02  Jason Tackaberry <tack@urandom.ca>

	* src/base/ipc.py:
	Added get_ipc_from_proxy() function; renamed get_proxy_type() to
	_get_proxy_type() since it's not a public API; fixed a bug where
	proxied empty lists or dicts weren't getting properly registered for
	pickling.

	* src/notifier/sockets.py: Typo.

	* src/notifier/popen.py: Handle non-blocking I/O in popen wrapper.

	* src/notifier/sockets.py, src/notifier/nf_generic.py,
	* src/notifier/__init__.py, src/notifier/timer.py:
	Fix for step() in nf_generic to prevent infinite recursion when a
	timer callback calls step() (this patch was submitted upstream); fix
	SocketDispatcher unregister() so it passes the condition to
	notifier.removeSocket(); fix for Timer.stop() from other threads.

	* src/base/ipc.py (added):
	Initial import of my IPC stuff. It's working, but obviously lots of
	work needs to be done on it. :)

2005-09-01  Jason Tackaberry <tack@urandom.ca>

	* src/base/utils.py: Unicode helper functions

2005-08-25  Dirk Meyer <dischi@freevo.org>

	* test/jobserver.py (added)
	* src/notifier/__init__.py
	* src/notifier/jobserver.py (added)
	* test (added):
	add jobserver to handle callbacks in a sequence in a thread

2005-08-11  Dirk Meyer <dischi@freevo.org>

	* src/notifier/timer.py: add some doc

	* src/notifier/callback.py:
	remove hack with id, it can be solved otherwise

	* src/notifier/callback.py:
	Better unregister handling in __call__. Add a __str__ function for
	debug

2005-08-07  Dirk Meyer <dischi@freevo.org>

	* src/notifier/event.py: handle system exit exceptions

2005-08-06  Dirk Meyer <dischi@freevo.org>

	* src/notifier/event.py:
	adjust to kaa.notifier.Timer.start now using seconds

	* src/notifier/timer.py: set timer start parameter to be seconds

	* src/notifier/popen.py: set __dead to false on start

	* src/notifier/popen.py: change interface back to send the exit code

	* src/notifier/popen.py: add extra signal for completed with exit code

	* src/notifier/popen.py: add extra signal for completed with exit code

	* src/notifier/timer.py: remove bad assumtion, it breaks Freevo

2005-08-05  Jason Tackaberry <tack@urandom.ca>

	* src/notifier/popen.py:
	Add start() method to Process -- process no longer gets automatically
	started in constructor, it must be started explicitly. The start()
	method can take a list or string of parameters to get appended on the
	command line. Command lines passed as strings now get converted to a
	list of parameters (quoting is honored). "completed" signal callbacks
	are passed the exit code of the process.

2005-08-05  Dirk Meyer <dischi@freevo.org>

	* src/notifier/popen.py:
	rename "died" signal in kaa.notifier to "completed"

	* src/notifier/popen.py: remove old callback code

	* src/notifier/thread.py: remove old callback code

2005-08-02  Jason Tackaberry <tack@urandom.ca>

	* src/notifier/callback.py: Make signal.connect_once() work.

	* src/notifier/popen.py:
	Remove Process.readlines() because dischi doesn't like it :)

	* src/notifier/thread.py, src/notifier/sockets.py,
	* src/notifier/callback.py, src/notifier/__init__.py,
	* src/notifier/timer.py, src/notifier/popen.py:
	Ensure shutdown() is called from main thread; allow shutdown() to be
	called when notifier raises exception; add "exception" and
	"unregistered" signals to NotifierCallback -- attach to the exception
	signal of any notifier callback (Timer, SocketDispatcher, Weak*) and
	it will get called with the exception object, giving the callback an
	opportunity to stop the notifier callback from being unregistered;
	catch exceptions in popen.killall(); add "completed" and "exception"
	signals to Thread class.

	* src/notifier/thread.py, src/notifier/__init__.py:
	Collect zombies in kaa.shutdown(); make Thread exception handler
	handle any exception, not just those derived from Exception.

	* src/notifier/__init__.py:
	Check shutdown recursion after testing if the loop is still running.

	* src/notifier/__init__.py, src/__init__.py:
	Import shutdown() into kaa module; make shutdown() safe to be called
	from shutdown callbacks.

	* src/notifier/__init__.py, src/notifier/popen.py:
	Add signals to Process class so that it can be useful without
	subclassing; add readlines() function to Process class to read lines
	from process immediately rather than going through the notifier loop;
	kill processes after shutdown signal emits, rather than before.

2005-08-01  Jason Tackaberry <tack@urandom.ca>

	* src/notifier/thread.py: Use insert/pop

2005-07-29  Jason Tackaberry <tack@urandom.ca>

	* src/notifier/thread.py:
	Explicitly return None in MainThreadCallback for asynchronous
	invocation.

2005-07-27  Viggo Fredriksen <vifredr@users.sf.net>

	* src/notifier/popen.py: Fix typo.

2005-07-25  Jason Tackaberry <tack@urandom.ca>

	* src/notifier/thread.py:
	_thread_notifier_run_queue needs to return True explicitly now that
	it's no longer being called by SocketDispatcher.

2005-07-25  Dirk Meyer <dischi@freevo.org>

	* src/notifier/popen.py: make stop thread safe

	* src/notifier/thread.py
	* src/notifier/sockets.py (added)
	* src/notifier/callback.py
	* src/notifier/__init__.py
	* src/notifier/timer.py (added)
	* src/notifier/signals.py
	* src/notifier/popen.py
	* src/notifier/event.py:
	make Timer, SocketDispatcher and Process thead safe

	* src/notifier/thread.py, src/notifier/__init__.py:
	add function to delect if we are in a thread or not

	* src/notifier/event.py: make it thread safe and change interface

	* src/notifier/thread.py, src/notifier/callback.py,
	* src/notifier/__init__.py:
	move thread stuff from callback.py to thread.py and adjust this file

2005-07-25  Jason Tackaberry <tack@urandom.ca>

	* src/notifier/callback.py, src/notifier/__init__.py:
	New MainThreadCallback. The other classes (Timer, SocketDispatcher and
	their weakref varients) could derive from this as well. It provides a
	callback that executes in the main thread with optional synchronous
	execution (i.e. block until the main thread executes and returns).
	This will probably deprecate the stuff in thread.py as it doesn't
	require registering the thread with the notifier (i.e. you don't need
	to use notifier.Thread, which is impossible if the thread is created
	from C space). It's also better in that it will wake up the thread if
	it's sleeping inside a select.

2005-07-24  Dirk Meyer <dischi@freevo.org>

	* src/notifier/callback.py: set socket fd to _id

2005-07-23  Jason Tackaberry <tack@urandom.ca>

	* src/base/utils.py, src/notifier/__init__.py:
	Add space/backspace names to getch(); rename keypress to
	stdin_key_press_event.

2005-07-22  Dirk Meyer <dischi@freevo.org>

	* src/base/weakref.py: fix crash when ref is set

2005-07-22  Jason Tackaberry <tack@urandom.ca>

	* src/base/utils.py:
	Make getch suck a little bit less. Still needs work. Will return
	strings now (translated keycode or the literal letter) instead of
	integers.

2005-07-19  Jason Tackaberry <tack@urandom.ca>

	* src/notifier/callback.py:
	Sanity check to detect if Python is shutting down.

	* src/notifier/callback.py, src/notifier/__init__.py:
	WeakCallback should return the callback's return value, not blindly
	return False.

2005-07-17  Dirk Meyer <dischi@freevo.org>

	* src/notifier/callback.py:
	add variable to prevent timer from restart when active

2005-07-16  Dirk Meyer <dischi@freevo.org>

	* src/base/distribution.py:
	check all parameters in a different call (needed for libpng-config)

	* src/notifier/event.py: copy list to make sure nothing is missed

	* src/notifier/event.py: rename self.args to self.arg

	* src/notifier/event.py: rename self.args to self.arg

	* src/notifier/event.py: add missing self

2005-07-15  Dirk Meyer <dischi@freevo.org>

	* src/notifier/__init__.py
	* src/notifier/event.py (added):
	add event class and handler

2005-07-14  Dirk Meyer <dischi@freevo.org>

	* src/notifier/callback.py, src/notifier/__init__.py:
	remove select_notifier, use notifier.init before importing kaa

	* src/notifier/signals.py:
	use OneShotTimer from callback to schedule signal

2005-07-14  Jason Tackaberry <tack@urandom.ca>

	* src/notifier/callback.py: Bug fixes to weakref destroy callback stuff.

	* src/notifier/callback.py:
	For Signal and WeakrefCallback, handle the case where weakrefs to user
	args become invalid. For Signals, automatically disconnect the
	callback, for WeakNotifierCallback, automatically call unregister.

	* src/notifier/callback.py, src/notifier/__init__.py:
	Fix bug in Signal.disconnect; add keypress signal for handling keys on
	stdin using utils.getch. Once we add an event subsystem to kaa, this
	would get moved there.

2005-07-13  Jason Tackaberry <tack@urandom.ca>

	* src/notifier/callback.py:
	Fix bug in Signal.emit() where user args weren't getting passed.

2005-07-13  Dirk Meyer <dischi@freevo.org>

	* src/notifier/thread.py: use Timer

	* src/notifier/__init__.py
	* src/notifier/signals.py (added)
	* src/notifier/posixsignals.py (removed):
	rename posixsignals.py to signals.py again

	* src/notifier/__init__.py: remove import

2005-07-13  Jason Tackaberry <tack@urandom.ca>

	* src/base/__init__.py
	* src/base/utils.py
	* src/notifier/callback.py
	* src/base/weakref.py
	* src/notifier/__init__.py
	* src/notifier/nf_generic.py
	* src/notifier/signals.py (removed):
	Rewrote Signal class and moved it into callback.py; removed
	signals.py; fixed typo in nf_generic.py in removeDispatcher().

	* src/notifier/__init__.py: Fix typo of SIGNAL_DISCONNECTED

	* src/notifier/callback.py, src/notifier/__init__.py:
	Implement WeakOneShotTimer; don't weakref functions (only instance
	methods) so we can use closures for the Weak* family.

	* src/notifier/callback.py
	* src/notifier/__init__.py
	* src/__init__.py
	* src/notifier/signals.py
	* src/notifier/wrapper.py (removed):
	Refactored (ok, rewrote :))
	Callback/Timer/OneShotTimer/SocketDispatcher and weakref variants
	thereof, added shutdown and idle handlers as signals and provided
	kaa.signals dict to connect to them. Removed deprecated code for the
	above. Deprecated Function class and folded that functionality into
	Callback class via set_ignore_caller_args() method. Also added
	set_user_args_first() method.

2005-07-13  Dirk Meyer <dischi@freevo.org>

	* src/notifier/wrapper.py: add waek timer

2005-07-12  Dirk Meyer <dischi@freevo.org>

	* src/notifier/__init__.py
	* src/notifier/wrapper.py (added):
	add notifier wrapper classes

2005-07-12  Jason Tackaberry <tack@urandom.ca>

	* src/notifier/nf_generic.py, src/notifier/__init__.py,
	* src/notifier/signals.py:
	Catch and log exceptions when executing dispatchers; replace some tabs
	with spaces.

2005-07-11  Jason Tackaberry <tack@urandom.ca>

	* src/base/weakref.py, src/notifier/__init__.py:
	Add container interface to weakref; when exceptions raise during main
	loop, print the stack trace before raising a new exception. (FIXME:
	need to find some way to propagate the traceback when raising the new
	exception.)

2005-07-10  Jason Tackaberry <tack@urandom.ca>

	* src/base/weakref.py:
	Use __getattribute__ and proxy __class__ so that isinstance() will
	succeed when you really want to test for the proxied object. Also test
	if wrapping an existing weakref proxy.

	* src/base/__init__.py
	* src/base/weakref.py (added):
	Add the weakref proxy class from freevo

	* src/base/utils.py: Make utf8() handle existing unicode strings.

	* src/base/utils.py (added)
	* src/notifier/__init__.py
	* src/notifier/signals.py
	* src/notifier/posixsignals.py (added):
	Added Signal class for callbacks in signals.py; Renamed old signals.py
	to posixsignals.py. Added utils for getch, utf8, and some weakref
	functions that will probably get replaced by something better.

	* src/__init__.py: Make kaa.main() do stuff :)

2005-07-07  Dirk Meyer <dischi@freevo.org>

	* src/base/version.py: use python cmp function

	* src/base/distribution.py
	* src/base/version.py (added):
	add extra version module

	* src/base/distribution.py: fix varname

	* src/notifier/.cvsignore (added)
	* src/notifier/thread.py (added)
	* src/notifier (added)
	* setup.py
	* src/notifier/callback.py (added)
	* src/notifier/nf_generic.py (added)
	* src/notifier/__init__.py (added)
	* src/notifier/signals.py (added)
	* src/notifier/popen.py (added):
	move notifier to base

	* src/base/distribution.py: make sure the config file is there

	* src/base/distribution.py: add function to check with cc

	* src/base/distribution.py: some path fixes

	* src/.cvsignore (added)
	* src (added)
	* src/base/distribution.py (added)
	* setup.py (added)
	* src/base/__init__.py (added)
	* src/__init__.py (added)
	* src/base/.cvsignore (added)
	* trunk/base (added)
	* src/base (added):
	add first version of kaa.base

