* Tue 16 Oct 2008 - ksCopy - ksNeedSort removed from public header - ksNeedsSort renamed - ksDup - ksClear removed from public header - ksSort: example, docu - ksGetSize - ksAppendKey, ksAppend - ksPop - ksHead, ksTail - ksGetCursor, ksSetCursor - ksLookup - removed ksLookupByString, ksLookupByBinary - ksNew - errno away from keyset - kdbOpen, kdbClose - kdbGet - stdio.h and errno.h away from kdbos.h - kdbGetByName - kdbGetKey, kdbSetKey - removed kdbStatKey (trivial) - kdbGetString, kdbSetString, kdbRemove * Wed 15 Oct 2008 - keyName, keyBaseName and keyOwner return 0 on 0 pointer - keyOwner, keyGetOwnerSize, keyGetOwner - keySetOwner - keyValue, keyGetValueSize - keyGetString, keySetString, keySetRaw(removed) - keyGetBinary, keySetBinary - comments - keyNew - errno bei key*.c weg - errno in backend docu weg - DESIGN document updated - keyName, keyBaseName, keyOwner, keyValue, keyComment synced - test cases for binary data * Tue 14 Oct 2008 - keySetDir, keyGetMode, keySetMode - enum types are now integer types - hide enum for flags: keyflag_t keyswitch_t - keyGetType, keySetType - ATime, MTime, CTime - keyName - keyGetName - keySetName - keyFullName - keyBaseName - keyAddBaseName, keySetBaseName * Mon 13 Oct 2008 - keyStat, keyRemove - remove SYNC flag when removing key - keyNeedsStat, keyNeedsSync, keyNeedsRemove - keyNeedsStat, keyNeedsSync, keyNeedsRemove renamed to keyNeedStat, keyNeedSync, keyNeedRemove - keyIsSystem, keyIsUser - keyIsBelow, keyIsDirectBelow - keyIsInactive - keyIsDir, keyIsBinary, keyIsString - @errors renamed to @err - keyGetUID, keySetUID, keyGetGID, keySetGID - keyGetType, keySetType * Sat 11 Oct 2008 - Versioning for backends - check all functions again: - keyDup - keyCopy: removed keyClear, keySetName(,0) - keyDel, keyIncRef, keyDecRef, keyGetRef: example * Wed 08 Oct 2008 - print_info outputs limits, constants and sizeof of elektra types - examples now compile - added iterate example - BUG: segfault on xml import/export (reason: closed library too early) - xml is again default mode for exporting - always export recursive - run test_script - add xml tests in scripts - validate -cmp files - now use type_t for types - eliminate [u]int8,16,32_t - eliminate kdbStrError - make examples more iso c - remove keyCompare and ksGetCommonParentName * Thu 07 Oct 2008 - Copy autoconf files instead of linking - exportsymbols.sh now generate more ansi conforming code - libloader: extern in header and more strict function prototype - fstab.h added, better declarations - passwd.h better declarations - template.h better declarations - dont use (), use (void) - small fixes in headers - libelektratools - make not exported functions static - uid, gid at one place - header cleanup - compile with icc -Wall - dont use multiple function calls as parameters - keyIsBelowOrSame static - some casting - dont define DEBUG by flag, use config.h - define VERBOSE (as 0) - only use valgrind when available - check for stdio.h - some things I broke with icc transition - valgrind should now check correctly - kdbOpen(void) does not accept arguments anymore - source environment for zsh works - removed some TODOs - remove some spaces in kdb.h - kdbos.h cleanup: POSIX and WIN32 part - KeyCursor renamed to cursor_t - use the enum option_t instead of unsigned long - KDBOptions renamed to option_t * Thu 02 Oct 2008 - svn version for latest test - ELEKTRA_VERSION_API in configure.ac - check funcs of testing suite - search path - Docu about search path - libdir, ulibdir added in search path - hlvlbackenddir used for libelektratools - typedef corrected * Wed 01 Oct 2008 - BUG 37: uid/gid mismatch - kdbSetKey use const as second parameter - don use name elektra in kdb.h - some updates to KDB in cpp binding - Mac Port - dont use -n or -e for echo - dont use symbols starting with _ * Mon 29 Sep 2008 - add canonical target - remove AC_LIBTOOL_WIN32_DLL - using libtool support from sox - use INCLUDES for -I include and INCLTDL - dont cd to LIBLTDL, it could be -lltdl (on grml 1.1 second install) - check HAVE_LIBLTDL header - dont use ENOKEY (not posix) use EFAULT instead * Fri 26 Sep 2008 - xsltproc works again - don't prefix slash at end of docbook path - check the files and not the path - cleaned up capability (will use other api later on) - dont provide mount API - exclude most of kdbc* functions (not needed) - capability removed from documentation - add get (ByName) in c++ binding - remove subsections in main page - rename keyName to keyname in parameter - give trivial kdbRemoveKey away - regroup kdb* - renaming of libhelper files - module section naming - use singular - KeyDB renamed to KDB - changed pictures - KDBHandle renamed to KDB - kdbGetByName now handles mountpoints correctly (and deserves to be in highlevel) - preload now directly uses /etc/hosts and /etc/fstab for system - but continues to use /tmp for user - kdbGetHelper now used by kdbGetKey and kdbGetByName - hosts comments - use bigger buffer - be more safe on buffer limits - add comments in hosts.xml - write examples and update tutorial - kdbGetKey should set errno to KDB_ERR_NOTFOUND - versions fixed, provide kdbStrVersion - use rm -f instead of -rm - remove keyName functions and keyNext (why was that there?) - the great renaming: bringing key in its modules - bringing keyset in correct order - ksAppendKeys renamed to ksAppend (last plural eliminated) - ksAppend renamed to ksAppendKey - issues on numbers fixed - all numbers may return -1 - removed print_splitted * Thu 25 Sep 2008 - KDB_O_NORECURSIVE now only gives back keys direct below keys - fix a bug in compare_keyset (it removed value/comments on request) - merge details of kdbSet and kdbGet together - doxygen updated (to 1.5.6) - document parameters - UID, GID docu update - make keyIsDir more clearly - removed kdbGetRootKeys - removed kdbSetKeys and kdbGetKeys (plural) - removed kdbGetChildKeys (has swapped parameters) - introduce kdbGetByName with cascading (replaced kdbGetChildKeys) - fixed name bugs in ksLookup() - remove user code of kdb-tool which implemented the same - 32 bit issues - make clean more robust - kdb info prints where key is located * Wed 24 Sep 2008 - introduce libhelper for system dependent but backend independent functions - source and folders in CODING document - helpers is not a backend anymore - remove kdbc properties - check for failed opendir (may fail because of permissions) - place readlock in hosts after check if open failed - use const char for kdbc* char properties - give correct uid, gid so that keys can be compared - use DEBUG && VERBOSE to be only verbose when debugging is enabled - rename access to mode - make uninstall install runs fine again - --help prints default locations - check for sed - remove hook for libelektratools - provide uninstall hook for default backend - will now use "default" backend rather then "filesys" as default * Tue 23 Sep 2008 - add backend helpers - use c++98 std for c++ - add dependency to filesys and preload - kdbbackendhelpers.c disappeared (libelektra should now be clean ansi build, see next commit) - now compiles without warnings (but not ansi flags) - core and cpp binding compile with ansi flags - all parts should have DBG and OPT cflags - added time.h header - remove kdbi* functions out of kdb-tool - ifndef TIME_H should be ifdef! - bring ks and key streaming functions in other order - header files rewriting, always HAVE_FILE_H ifdef around - implement kdbiStrCaseCmp - ctype for islower - move APPROXIMATE_NR_OF_BACKENDS to header - delete langinfo.h, sys/* dependencies - removed kdbPrintError - core can only print something when DEBUG is enabled - changed examples and kdb-tool a bit to work without kdbPrintError - remove unistd.h header files - errnosaver added for filesys, hosts and fstab - dont fill up uid, gid and username properties - dont fill up uid and gid in keyInit - text for keyCompare reformated - dont link against helper library * Mon 22 Sep 2008 - autoconf setup revisited - group together similar setup items - define DEBUG in config.h - define the conditional DEBUG (should always be set together and not confuse) - DESIGN document updates - some more code examples - rename keyGetReference to keyGetRef - don't use KEY_NEW as first parameter, use 0 * Son 21 Sep 2008 - added REGEXP and explanation how to use - regenerate error codes - leave comments of sections in error codes - add url for bug reports - clear returned so that updating keyset works * Fri 19 Sep 2008 - disable iconv conversations by default - Use correct help strings for debug - don't check iconv header file, fork and signal - add tests for code conversations - Filesys will now return -1 on UTF8Engine errors - added tests for UTF8 needed and conversation - added more docu to UTF8 engine about the problem * Thu 18 Sep 2008 - remove dependency from pthread.h - dont store pid and tid in kdbhandle - locking was disabled - check for more headers, funcs - dont fail if no locking in hosts - use KDB_ERR_NOLOCK - make distcheck works - leak: delete append keyset in filesys in error condition - use init() for every testcase - fail without error when backends are not available - srcdir file now works with empty environment - delete own malloc for tests - dont use own setenv declaration (fails when its in header) - dont leave files behind - cleanup in error condition in test_kdb - some more cleanup * Tue 16 Sep 2008 - functional example - remove ksForEach and ksFilter out of elektra (too easy to implement) - delete keyset in test_kdb - ksPop behaves more sane - keyDel is much more safer (hard to do it wrong now) - remove functional from example - decrement is now something else then delete (cpp binding) - keyIncRef and keyDecRef introduced (keyInc renamed) - links will not make it into 0.7.0 * Mon 15 Sep 2008 - kdb -R implemented - passwd no segfault when it cant open file - REMOVEONLY works - missing sort before kdbSet_backend() - document kdbGet() options much better - filesys now only stat and do not open file - propagate KDB_O_NOSTAT to parentKey - add testcases for nostat and statonly - better always duplicate parentKey - done that in fstab (rewrite get) - clear returned before appending appended - filesys now handles stat and lock - filesys optimization: not appending to returned - now remove with KDB_O_REMOVEONLY - use init() in test_kdb - only remove value/comment when backend supports kdbcGetnoStat * Fri 12 Sep 2008 - preserving of comments in /etc/hosts now work - wrote new append_comment function to catch comment and empty lines - wrote find_comment to deduce correct length (sscanf could not do that) - write init() function for tests (clearenv + loadToolsLib) - remove Link keys (not working anyway, not fitting to access logic and not tested...) - remove *parent functions (real C programmers know how to concat strings) - renamed enums - BUG: changed KEY_VALUE flag? in keyNew - BUG: keyCompare returned KEY_FLAG_SYNC - give away the nasty keyCompare code - test keyCompare - renamed warn_if to warn_if_fail - lock/unlock in hosts - kdbbLock functions set errno themselves - making hosts backend much faster * Thu 11 Sep 2008 - The final libelektratools release for 0.7 (more work will be investigated after release) - libelektratools and kdb-tool is not part of the official 0.7 release - remove streaming of cpp binding - add enum for streaming into kdbtools.h - DYN_LINK macro for weak dependency (not shown in ldd) - add -G -O options in kdb-tool to generate c code and output per line - move ksLookupRE and ksCompare to libelektratools (commented out) - asprintf removed (not ansi) one step closer to use only kdbi* memory management - command export now also exports root key * Wed 10 Sep 2008 - Don't track .gdb_history files - document only full get - always add the parentKey in filesys - watch out that all keys clear their KEY_FLAG_SYNC flag - note, every modification resets the sync flag - reorganize kdb options - rename KDB_O_IGNORESYNC to KDB_O_SYNC - rename KDB_O_DELPARENT to KDB_O_DEL - rename KDB_O_POPPARENT to KDB_O_POP - write nomeclature in kdbmain.c - delete not used options - reorganize test_kdb (create_root_key and create_conf) - Test cases reorganized - use setenv - create_root_key now creates for a specific backend - create_conf for a specific file - #ifdef all headers, - remove warings - xml cleanup: #ifdefs in includes - memory leak in ksToStream - remove grp and pwd dependency - remove non-ansi dependence (isdigit, mkstemp, write) - give code example how to check if xml is valid - test uid, gid and access * Tue 09 Sep 2008 - delete ksPop()ed keys - doxygen: sort by group names - update mainpage - make sections in kdbGet() and overview of backends - update and explain conditions more detailed - add an example for kdbGet_backend - add option_t::KDB_O_NOSTAT in docu - define groups for backendhelpers, backendhandle - add section cascading - stat logic changed, STAT remains after key was stated - SYNC will be deleted for every key synced in backend - use POP for returned keyset - Introduced more error codes to be used by backends - explain how to properly update the keyset - give some more links @see in documentation - BUG: ksAppendKeys may be one byte to small * Mon 08 Sep 2008 - Reset the update kdbGet mechanism - add keyCopy and keyClear - fix docu for keyDel - add testcase for keyCopy, keyClear - some warnings less - BUG: keySetName(k,"system*") did not reset owner - add ksCopy, ksClear - make keyset more robust (memory errors) - warnings in test cases - Introduced KDB_O_POP - BUG: ksSetCursor on rewinded keyset - make sections in docu for ksLookup - test cases for lookup with pop * Fri 05 Sep 2008 - KDB_O_WITHOWNER was wrong in docu of ksLookup - extend and test example application - add keyIsDirectBelow() for direct relation ship (parent to son) - update ksLookup Docu (KDB_O_WITHREMOVE?) - BUG: ksLookup() did not sort! - updating of a keyset now works - functional programming: ksForEach, ksFilter added * Thu 04 Sep 2008 - write documentation about ENVIRONMENT - KDB_USER now can override USER - make sure that proper owner is written (+ testcases) - don't add owner in keyGet* methods - KDB_DIR let you specify the exact user-configuration directory - preload where prints the path where your configuration lies - document errors for kdbbGetFullFilename - added KDB_ERR_TOOLONG for a string too long which cant be trunced - added KDB_ERR_CONVERT for utf8 convert errors - BUG: incorrect return values (-1) for keyIsUser and keyIsSystem lead to keyGetNamespace failure, kdbbGetFullFilename was affected - BUG: handle situation correctly where buffer does not fit filename - BUG: dont remove escaped slashes - simplify kdbGetFilesys a lot by using kdbbGetFullKeyName - kdbbFilenameToKeyName handle too long string correctly - test cases for encoding - Locking of files in filesys implemented NOTE: thus only a single key is locked it only prevents from shredded files - keys in kdbGet will now be updated when already in returned * Tue 02 Sep 2008 - introduced internal kdbi* functions in internals.c - renamed strblen to kdbiStrLen - introduced kdbiMalloc, kdbiFree, kdbiStrDup - renamed srealloc to kdbiRealloc - enhanced backendhelpers and renamed to kdbb* functions - renamed kdbbLock and kdbbUnlock - renamed kdbbEncode and kdbbDecode - renamed kdbbEncodeChar and kdbbDecodeChar - all functions are defined in kdbbackend.h - added test for backendhelpers - added test for internals (with small multichar seq test) - distinguish between PATH_SEPARATOR and KEY_SEPARATOR - added MAX_KEY_LENGTH to say explicit that the length of the key name is limited for filesys - KDB_KEY_MOUNTPOINTS holds keyname for mountpoint database (system/elektra/mountpoints) - KDB_KEY_USERS holds keyname for user database (system/users) - the *_LEN makros give their sizeof value - introduced makro variables for KDB_DB_HOME (fallback where /home resides) - keys for user/ hierarchy may have different locations on disk now, see kdbbGetFullFilename - memory leak in passwd backend + fclose was missing - renamed kdbbKeyNameToRelativeFilename and kdbbKeyCalcRelativeFilename and return -1 on failure - preload now return error codes if it worked * Mon 12 May 2008 - updated documentation of kdbGet_backend and kdbSet_backend - use post, invariant and pre conditions to document - introduce @err tag to describe how errno is propagated - add example path to include files in documentation from there - Use @since tag for pluggable backend description - updated kdbSet and kdbGet documentation: - Errors, Post, Pre cond, Return values - Explain return value in @return value - rewind keyset - basic implementation of kdb class in cpp binding - add keyRemove and keyStat in keymeta * Thu 08 May 2008 - enabling and disabling of backends now work - ini compiles again - mntent.h fix - berkleydb compiles fine but does not link - added enabling and disabling of bindings - cpp binding keyset finished except iterator * Thu 24 Apr 2008 - Key support Reference Pointer Semantics - Some Basic Functions for Keyset (non-functional) - Some Basic Tests for Keyset - ksLookup (KeySet, Key,..) added to docu - sed changed for macosx compatibility - 0.7.0rc3 announcement * Mon 21 Apr 2008 - kdb::KeySet output, generate,.. - added test_keyset.cpp - fixed signature ssize_t ksToStream - changed signature keyDel() - added keyInc() (increment Reference) - keyDel() also before appending (always after ksPop()!) - updated documentation for ksPop(), ksCurrent(), ksNext()... - Streaming got its own Module in documentation (group keystream) * Sun 20 Apr 2008 - also set CXXFlags - namespace directly in kdb.h for c++ - Key for cpp binding now complete with lots of tests - use const - casting between kdb::Key and ckdb::Key for KeySets - copy constructors - adding keyVNew and ksVNew to pass va_list and use it in c++ binding * Tue 15 Apr 2008 - Don't output error for positive kdbSet return value - xml pretty printing - fix wrong parent at end in ksToStream - string is default type for xml without type="" - fix extra_dist some missing files - Add version macros - remove , at end of enumeration lists * Sat 22 Mar 2008 - kdbSetKey highlevel now works with capabilities - kdbSet docu - make parentkeys to work in kdbSet - splitting keys now works in n*b instead of n^2*b and preservers order - split keysets in kdbprivate.h, test it in test_split.c - 0.7.0rc2 announcement * Thu 26 Feb 2008 - Cleanup options - Initialized mask removed in keyswitch - Changed indentation to tabs - Lookup and Stream have their own options - don't make uid gid depended on who exports it - some newlines removed - keyOutput: only output what is desired - Adding comparing files in Testcase - ksLookup* set cursor (ksCurrent) correctly - ksCurrent set correctly after failed kdbSet() * Sat 09 Feb 2008 Markus Raab - atime, mtime, ctime document + set functions (kdb.h) - document kdb*_backend functions - document kdb functions - make capabilities obligatory - add authors, licence in capabilites - capabilities workaround in kdbGetKey and kdb get - make mountpoint when mounting a backend with preload - passwd does not need to declare onlyFullGet - add kdbGetCapability and kdbGetMountpoint in namespace kdb - rename kdbGetValue, kdbSetValue, kdbSetValueByParent and kdbSetValueByParent to kdbGetString, kdbSetString, kdbSetStringByParent and kdbSetStringByParent - keyValue unchanged because it is related to value, that means string, binary or any other type - keyGetValueSize also unchanged because of above reason - writing tests for it in test_mount - check return value kdbGet and kdbSet of -1 if you want to check error * Thu 06 Dec 2007 Markus Raab - Renaming of header files - kdbMount now takes a key mountpoint, which has as value the backend - KDBHandle is now like Key and KeySet a private structure with public typedef - KDBBackend is now gone and #define KDBHandle to void too - helpers are now in kdbprivate.h - kdbbackend.h now will do include everything for backends - kdb.h should do include everything needed for extern programs - Documentation for KDBHandle - TODO update - added capability methods - document kdbMount, kdbUnmount - don't rely on private structures in tests.h - fix make dist - 0.7.0rc1 announcement * Wed 05 Dec 2007 Markus Raab - KDB_ERR_NODOMAIN renamed to KDB_ERR_NOOWNER - KDB_O_NOSORT renamed back to KDB_O_SORT - ksLookup KDB_O_NOALL introduced - ksNeedSort() and ksGetAlloc() introduced - lookup: owner strcmp more efficient and also sorted that way - BUG: ksGetCommonParentKeyName works even if nothing found - dont ksDup in ksGetCommonParentKeyName - size_t used for keysets (we also want large keysets) - resize keyset down to KEYSET_SIZE - remove kdbGetBackendName and kdbGetMountpoint - kdbhGetMountpoint is a key: name is point, value is backend - allocation testing - kdbMount, kdbUnmount to kdb.c - use kdbOpenBackend and kdbCloseBackend as only place to open/close backends - OpenMapper, CloseMapper are function pointers to open and close a backend * Wed 21 Nov 2007 Markus Raab, Patrick Sabin - BUG: keyIsLink broken fixed - BUG: when there is no comment, value filesys won't store type fixed - BUG: keyAdd/SetBasename do realloc something wrong and do not set nameSize - rewrite serialization - keyCompose: serialize a key without any malloc - added keyGenerate and ksGenerate - use FILE *stream for Output/Generate * Wed 19 Nov 2007 Markus Raab - Capabilites added - Backends can now represent what they support * Sun 11 Nov 2007 Markus Raab - Make test cases run again - Find memory leaks - Naming conventions - Parameter discarding of qualifiers - Header conventions - File headings - Variable names + delete unneeded variables - make all tests pass again - make fstab compile again * Wed 07 Nov 2007 Markus Raab - Code Coverage Tests included - With --enable-gcov you enable building of code coverage - Use it to see what lines of code are covered by tests * Tue 06 Nov 2007 Patrick Sabin - introduced Trie for lookup of mountpoints - dynamic mounting with kdbMount and kdbUmount - test cases for trie - trie resides in KDBHandle - kdbLibMounting.h introduced - kdbos.h introduced - ksLookup only search in not removed keys * Fri 02 Nov 2007 - Remove next Pointer in Key - Use Array in Keyset - Introduce new style ksNew - ksDup introduced - some const identifiers introduced for keyset - InsertKey(s) is history - Cursor functions added for keyset - next, start and end pointer removed - reference for keys: keysets will only delete keys when they have the only copy of it - ksToStream, ksCompare, ksLookupRE mailfunc, commented out * Wed 24 Oct 2007 - Reintroduce kdbGet recursive code - Now delete keys when not needed - kdbGetKeys needs KDB_O_INACTIVE to get a single key - When pop a key, ks->next is now 0 - Makros in tests now {embraced} - to see if a function failed, take the difference of nbError * Wed 17 Oct 2007 - use old type system - getset tests - access types tests - KEY_SWITCH_MODE renamed to KEY_SWITCH_ACCESS - Introduce ksStart to replace ksRewind * Thu 04 Oct 2007 - valgrind support for tests added - keySet/Get String/Comment for NULL changed - keyGetValue/CommentSize returns 1 to have appropriate space to malloc 1 byte - xml tests commented out, problem with change above - userDomain (?) renamed to owner - updated documentation of _Key - recordSize deleted - benchmarks added: threads, large - keyDir: Use executable bits to mark directories - filesys cleanup: don't support old key-style and remove pointless functions - valgrind integrated for tests and benchmarks - KEY_SWITCH_DOMAIN -> KEY_SWITCH_OWNER * Sun 23 Sep 2007 - kdbHandle and KDBEXPORT only insist of 4 functions (open, close, get, set) - kdbHighLevel only require kdbGet and kdbSet, but considered broken - kdbLibSym returns kdbLibFunc, which is a pointer to a function, not data - added -debug compiler options - removed warnings all over the code - keyvalue cleanup, same meanings and documentation of errno * Mon 03 Sep 2007 Markus Raab and Patrick Sabin - kdbSet restructure: only kdbSetKeys communicate with backend - _KDBInfo added - kdbcapability.c added, old KDBInfo is there - kdbResolveKey is in backendhelpers.c - kdbprivate.h need not to be included if kdbbackend.h is - docu for highlevel functions too - doxygen fixes - BUG: recordSize, not address of operator (resolved) - Sort KEY_FLAG_REMOVE correctly - KEY_FLAG_STAT first hit - BUG: next pointer was missed in kdbSetKey (resolved) - BUG: access not correct for stat key - ksPopLast removed because it needs iterating over all keys * August 2007 Markus Raab and Patrick Sabin - Doxygen warnings/error away for cleaner documentation - Writing exhaustive backend tests: xml, kdb - keyIsInactive added, testcases for inactive keys - .. and . are handled correctly in keySetName - Trailing slashes at system and user are handled correctly - some kdb (1) tests added - keyNeedsRemove added - keyRename test cases - sorting now considers if marked for remove [more testing needed] - tests.c now have the code from tests.h - ksSort testcase added - keyNew supports KEY_SWITCH_REMOVE - bug in keyNeedsSync and keyNeedsRemove, not 1 returned - prefix with 0 in date (-d, -l options) * July 2007 Markus Raab - xml test update - xml files validate - validate .xml files in tests - updated xmlschema documentation - schema marked as unstable - schema licence bsd * May 2007 Markus Raab - kdbKeyChildKeys in backend contains no sort, filter and recursive logic - Getting Code stable to begin implementing * March 2007 Markus Raab - Start support multiple backends - using git-svn - TODO updated - get out binary presentations - kdb doc return value ChildKeys update - added XML tests - get some common code to tests.h * Dezember 2006 Markus Raab - unstable fork - using darcs - c++ compatible includes - amc_time documentation updates - keyDup now really duplicates a key. - Give Link, Rename and Remove away - Remove monitor functions - Support removing with setting type to KDB_TYPE_REMOVE - Support atomic SetKeys - Give kdbOpenDefault, kdbOpenBackend away - Change all function to use KDBHandle * * Mon Oct 23 2006 Avi Alkalay - API started to change to support dir keys with value - Initial support in filesys backend, mainly on kdbSetKey_filesys() * Sun Oct 8 2006 Patrice Dumas - fix under and over quoting in configure.ac * Fri Sep 11 2006 Avi Alkalay - Removed setuid() and +s from kdbd - Changed daemon socket file to /var/run/kdbd/elektra.sock - Created an init script for the daemon - Updated spec for changes - The daemon now creates and removes pid and sock files in/from standard dirs (/var/run/kdbd) * Thu Sep 07 2006 Avi Alkalay 0.6.4 - Fixed a key ownership bug on BDB::keyFromBDB() when running together with the daemon - kdbhGetBackendName() now returns correct daemon backend name - The daemon now calls setuid() for correct access permissions - kdbd now installs with mode u+s with RPM - Closing version 0.6.4 * Thu 24 Aug 2006 Patrice Dumas - build examples as part of make check - fix doc to build out of source - distribute doc files that requires special tools - use $(transform) when installing man pages - condition man2html build on man2html being detected - put doc generic targets out of conditionalized sections - clean a bit doc dependencies, avoid redundancy, try to be more portable * Fri 18 Aug 2006 Patrice Dumas - have static libelektra depend only on backends static libraries - call AC_GNU_SOURCE if CFLAGS is empty - add -std=c99 -pedantic to CFLAGS if CFLAGS is empty * Wed 16 Aug 2006 Patrice Dumas - don't set _GNU_SOURCE in the default case, plus minor fixes - fixes for experimental features * Tue 15 Aug 2006 Patrice Dumas - add a m4 directory for autoconf macros - use an autoconf macro from gnulib to set POSIX exensions on various systems - fix in BSDgetopt * Mon 14 Aug 2006 Patrice Dumas - determine which backends are compiled in and if libelektratools is compiled or not in ./configure, an substitute correct value in SUBDIR (idea of Yannick) - rewrite exportsymbols.sh to only use backend names to recreate exported_symbols.c - autogenerate kdbprivate.h in order to avoid hardcoding /etc/kdb, but instead honor sysconfdir - Fixes to have -std=c99 proceed until the end - Detect a working getopt, and if not found use getopt from openssh * Sun 13 Aug 2006 Patrice Dumas - fixes for compatibility with sunos 5.8 (solaris 2.8, solaris 8) - use LIBICONV in link commands - compile fstab backend conditionally on having glibc-like getmntent and friends - compile daemon conditionally on having struct ucred defined - changes in the nm and amk call to accomodate for solaris 8 - always use install_sh since install -c needs a directory arg on solaris 8 (an autoconf bug?) * Sat 5 Jun 2006 Yannick Lecaillez - fixed keyFileSerialize() in filesys.c : When binary source data - fixed kdbGetKeyWithOptions() in berkeleydb.c : key->next was reset, key lost position in the keyset. - fix keySetRaw() in key.c: When data is NULL or size = 0, key's data was cleaned but key->dataSize wasn't set to 0 was 1 byte long, write to non-allocated address occured. * Fri 4 Jun 2006 Yannick Lecaillez - Add default implementation of kdbRename() - Removed some debugging output from kdbd - Add a static version of kdbd - fixed kdbRename() in kdbd/libelektra-daemon * Thu 3 Jun 2006 Yannick Lecaillez - Fix backends/daemon compilation warnings - Add a testing suite for key struct and backends - Enhance elektra static library generation (exportobjects.sh and exportsymbols.sh) - Add section 'libs.private' into elektra.pc for static compilation - Enhance build dependency - Add a resume text in the end of configure script * Wed 2 Aug 2006 Patrice Dumas - remove -Wall (and -pedantic -ansi) from Makefile.am - add -Wall in configure.ac if CFLAGS is empty and compiler is gcc - change make to $(MAKE) * Sun 30 Jul 2006 Patrice Dumas - fix many compilation warnings * Sat 29 Jul 2006 Patrice Dumas - replace __STATIC by ELEKTRA_STATIC * Wed 26 Jul 2006 Avi Alkalay - Added -s option to 'kdb ls' to make it more scripts friendly - Separated the descriptive help functions of kdb program to help.c * Wed 26 Jul 2006 Patrice Dumas (applyied by Avi) - arrange doxygen for out-of-source build - add some source files for experimental backends and bindings - clean up the clean target in doc/Makefile.am, add an uninstall target - don't test for default_backend presence in ./configure since it breaks out of source builds - really use the --enable-experimental value - libproto.la, backends and tests depends on ../../libelektra/libelektra.la - use ../../libelektra/libelektra.la instead of -lelektra to link against in-source library - add a link for libelektratools in /usr/lib/elektra - build files required by static libelektra before libelektra, and libelektra before the backends - use check_ for tests - put high level backends in /usr/lib/elektra - use .$(OBJEXT) instead of .o - honor default_backend for static libelektra dependencies - add AC_SUBST(default_dbackend) * Tue 27 Jun 2006 Yannick Lecaillez - New kdbd daemon ! - Fix UTF8Engine : Check for a null size string - Fix Berkeleydb backend : - - Check if an UTF8 convertion is done before free memory - (before, there was case where keyToDBD freed Comment and/or Value key pointers.) - - Chown user's kdb-berkeleydb dir. - - Set correct UID/GID for initial creation of the "user" key. - Fix key.c : Set KEY_SWITCH_DOMAIN flags into keySetName() * Wed Jun 06 2006 Markus Raab 0.6.3 - added cascading features to kdb - kdb ls / and kdb ls /path is possible - kdb get /path/to/key gets user or system key - Moved help functions of the 'kdb command' to src/kdb/help.c * Fri Jun 02 2006 Avi and Yannick 0.6.2 - Renamed some sorces on src/libelektra/ - Backends installation directory moved to /lib/elektra/ - Adding testing suite for key's name (examples/tstkeyname.c) - Adding escaping support for filesys backend (filesys/filesys.c) - Fixed segfault when USER env. variable isn't set (libelektra/key.c, filesys/filesys.c) - Changed elektraenv.sh to use mktemp instead of ${RANDOM} - The doc/standards dir is now included in main RPM - Moved bindings dir to src/bindings - Fixed a bug in keyAddBasename() related to multiple '/' cleanup - All string-size_t-returning methods return sizes including ending NULL - Implemented keySetDir() for highlevel dir key permissions and type setup - Implemented keySetUAccess() for correct backend key permissions setup - Added KEY_SWITCH_UMODE to keyNew() - Few backends cleanup to make them more suitable to work under daemon context - Removed all memory problems with Valgrind - Library version changed to 2.0.1 - Fixed many build details - Fixed many spec details to meet Fedora Extras requirements and standards - Updated presentation with some desktop related charts - Converted to OpenDocumentFormat::Presentation - Included presentation german translation from Markus Raab - Presentations taken out from tarball. Now present only on repo - Included note on kdb.1 about the dependency on libelektratools.so * Thu Mar 30 2006 Yannick and Avi 0.6 - Handlerized all kdb*() methods. This is a radical API change thowards a thread-safe API. - Changed all backends to work with this change - Included kdbh*() methods for better backend manipulation, thowards the possibility of having remote backends - Included kdb*Error() methods as suggested by Markus - Added KDB_O_ALL option to ksLookupByName & ksLookupRE - Fixed bug in keySetName which caused faulty write when key name have trailing '/' - Fixed bug in configure.ac to allow installation into lib64 - Fixed bug in keySetName caused segfault on x86_64 - Updated Mandriva spec file to allow x86_64 RPMs build - Updated old Xorg & SysVinit patches for current API - Removed installation of libloader (its a convenient lib) * Sun Mar 03 2006 Avi Alkalay 0.5.9 - Added the ksGetCommonParentName() method to help in XML exporting - ksToStream() now correctly handles KDB_O_HIER flag, for nicer XML exports - keySetName() now removes repeated '/' when setting key names - Fixed a bug in filesys.c::kdbStatKey_filesys() related to link keys - Fixed a very stupid bug in key.c::keyCompare() - Added logic to key.c::keySetName() to remove extra '/' anywhere on key name - Fixed a bug on keyset.c::ksCompare() related to the NEEDSYNC flag - Added kdbprivate.h::KDB_METAINFO_SIZE(Key *key) macro, usefull for backends - Make 'kdb edit' more robust in terms of completeness when exporting to XML - Much improved and working berkeleydb backend. Going towards a high-quality backend. - BDB backend moved out from EXPERIMENTAL backends, to the mainstream, cause it is usable. - Updated scripts/benchmark-createtree to output nice XML - Reorganized #includes - Improved some API documentations - Included some casts to get rid of compiler warnings - Added some screenshots to the documentation - DocBook documentation is being reorganized and improved to soon become part of the site - Updated the presentation - Updated screenshot for 'kdb edit' command - Updated some doxy cosmetics - Updated kdbOpenBackend() documentation and error codes - Updated ksLookupByName() documentation to include more about the method behavior - Organizing the daemon backend * Fri Feb 17 2006 Markus Raab 0.5.7 - ksLookupByValue now supports cascading - Ini Backend is marked experimental - Big updates in Ini Backend: - posix and parser specific parts seperated - support for binary values containing \0 and \n - changed to more performantic kdbSetKeys (very buggy) * Tue Feb 16 2006 Avi Alkalay 0.5.7 - Old libregistry and examples are not being compiled anymore - BerkeleyDB and GConf backend are set as experimental, and removed from main build - Improved documentation for kdbRemoveKey() - Created keyIsString() method - Corrected link handling on src/backends/filesys/filesys.c::keyFromStat() - Benchmark script now sets random key types - ksFromXMLfile() now receives a (const char *) instead of (char *) as filename parameter - Doxygen is generated with a browsing tree pane - Created elektratools.pc for pkg-config * Sun Feb 12 2006 Avi Alkalay 0.5.6 - Fixed a pointer positioning bug in keyStealBaseName() - The filesys backend now correctly sets key permissions - Fixed correct value comparation on keyCompare() * Sat Jan 28 2006 Avi Alkalay 0.5.3 - Added specification for system's user, group and password - Added specification for system initialization - Fixed bug related to setting real binary keys * Sat Dec 03 2005 Avi Alkalay 0.5.2 - Cross platform handling (when possible) for UTF-8 conversions with iconv() - More detailed error messages on kdb command - New kdbGetInfo() and friends for library info gathering - Better XML import for nested s - Multiple s allowed in one on XML - Pretty complete network configuration tree layout specification - Pretty good system signature tree layout specification - Tree layout specification for environment vars and shell aliases - Tree layout specification for a filesystem mount table * Wed Oct 26 2005 Avi Alkalay 0.5.1 - Migrated to autotools, and updated documentation for that - Changed some help stuff on kdb command - Included libltdl for cross-platform compatibility * Sun Oct 02 2005 Avi Alkalay 0.5.0.5 - Some final fixes for the complete libkdb.so -> libelektra.so renaming - Removed a bug in filesys.c::keyFromStat() regarding reuse of folder key struct - Changed some Makefiles to handle the new Homepage/ directory - Fixed Makefile regarding the convert-* scripts * Mon Jul 25 2005 Avi Alkalay 0.5.0.4 - libkdb*.[so|a] renamed to libelektra*.[so|a] to avoid conflicts with Kerberos v4 - Documentation updated to fit - Corrected duplicate error codes in the KDBErr enum - Some realloc robusteness was added with assert(), thanks to Bardur Arantsson - Added in Doxygen: a small guide on how to #include, compile and link with Elektra * Tue Mar 20 2005 Avi Alkalay 0.5 - An almost ready Berkeley DB backend - Key, KeySet and KDB classes earned robusteness through the implementation of a new backend - All size_t-returning functions now return ssize_t, so a -1 can be checked for errors - kdbGetChildKeys() method and similars now return the number of keys retrieved instead of 0 - The import/export XML file can have nested keys, a real tree of hierarchical keys - No need for special XSL stylesheets to build the HTML page. DocBook XSL 1.65.1 is good enough - Markus' ini backend now compiles by default and is included in the main RPM * Tue Jan 23 2005 Avi Alkalay 0.4.11 - kdbOpen() uses $KDB_BACKEND - kdbOpenDefault() ignores env - kdbOpenBackend() is pure workhorse for both. - Created libkdbtools.so intended to have higher level functions that should not be in libkdb.so - libxml dependent code used by kdb.c moved to libkdbtools.so (kdbtools.c) - localkdb.c moved to libkdb.c, finally - Finished GConf backend, including error handling - Added 'undefined' key type to XML schema - Improved documentation for backend API - New layout style and improvements for API documentation with many new links - Better and more examples to the kdb command man page - Moved the dtd/ dir to xmldtd/ * Tue Jan 10 2005 Avi Alkalay 0.4.10 - Added the libkdb-fstab.so backend to treat the /etc/fstab file as a backend storage - Divided Key documentation in several parts - Appeared ksPopLast() - Appeared the keySteal*() methods - Removed env var that defines default backend - Experimental GConf backend * Tue Dec 27 2004 Avi Alkalay 0.4.9 - Full nice elegant documented support for dynamic pluggable backends - kdb now validates an imported XML against an XML schema, thanks to Remi Pouak - -devel RPM includes the framework and examples for backends development - elektraenv script is more secure now, thanks to Johan Kiviniemi (ion at ion.yi.org) - Removed unused #includes - new kdbOpenBackend() and ksPop() methods - install examples in elektra-devel/examples/ directory * Sat Dec 06 2004 Avi Alkalay 0.4.8 - Whish me a happy birthday - All sources moved to src/ - New 'kdb help' to show some usage examples - enum KeyFlags changed to enum KeySwitch (KeyFlags values maps to new KeySwitch for compatibility) - New keyNew(), keyDel(), ksNew(), ksDel() advanced constructors and destructors - All documentation and examples changed to increase usage of keyNew() - ksSort(), ksHead(), ksTail() methods appeared and documented. - ksLookupByName(), ksLookupByValu(), ksLookupRE() appeared as beta and documented. - #ifdef __cplusplus to make it C++ safe. - Many small fixes that appeared in the switch to keyNew() - Many other fixes, code robustness and cleanup. - User-defined key types greatly improved, fixed and tested. - XML export can now supress obvious UID and GID for 'user/*' keys - XML export can now supress user domain for 'user/*' keys - New keyNewExample.c and lookup.c on example/ - New example/keyset.xml with example of complex keys, and how they look XML-exported. - XML DTD were droped. Now we have XML schemas, thanks to RĂ©mi . - pkgconfig support, thanks to Pier Luigi Fiorini - Library now has soname etc, to make binary compatibility safe * Fri Nov 28 2004 Avi Alkalay 0.4.7 - Better BuildPrereq in spec file - Small updates to documentation - New 'kdb mv' command (needs improvement) - Updated kdb.1 manpage to include 'kdb mv' - The KDB_ROOT env var to kdb command (needs manpage), thanks to Markus Raab - Fixed a bug in spec file, section %post - Acknowledged comments from https://bugzilla.fedora.us/show_bug.cgi?id=2250 * Fri Nov 05 2004 Avi Alkalay 0.4.6 - New method: kdbRename() - Updates to spec files, to conform to Fedora conventions - First GPG sign - Ready to be sent to fedora.us * Mon Nov 02 2004 Avi Alkalay 0.4.5 - Fixed a bug in kdbGetKeyByParentKey() - Changed the behavior of kdbSetKeys(): now developer may know where errors occured - Changed kdb to to fit new kdbSetKeys behavior - Small fixes in the doxygen documentation, improved code examples - More efficient documentation build * Sun Oct 25 2004 Avi Alkalay 0.4.4 - Added documentation on how to write new backends - Fixed "kdb get" when getting binary values - Fixed a bug when converting binary key values to hex digits - Fixed a bug in the reverse way: from hex to binary (jens) - Added -b to kdb, to set key values with the content of a file - Trying to fix something wrong in kdbGetKey() * Wed Sep 22 2004 Avi Alkalay 0.4.3 - Removed kdbOption instantiation from kdb.h * Sun Sep 12 2004 Avi Alkalay 0.4.2 - Fixed a gzip problem in the build system - Added ksGetSize() method * Tue Sep 09 2004 Avi Alkalay 0.4.1 - Fixed some wrong charset handling - License changed to BSD - Updates to documentation * Tue Aug 31 2004 Avi Alkalay 0.4 - Name changed to Elektra - rg command changed to kbd - registry.h to kdb.h - libregistry.so to libkbd.so - The former still provided as a wrapper for binary compatibility - Most #defines now are enums - Enums now documented - "*NameSpace()" to "*Namespace()" - Appeared keyClearFlag() - Changed documentation due to new name - Greatly improved documentation. It is now 100% complete - API man pages are now from Doxygen - Tested build in BSD: iconv is a separate library there - Changed some error codes for BSD compatibility - Used the "const" parameter modifier everyplace that is needed - 'kdb export' now allways exports as UTF-8, regardeless of current encoding - 'kdb get' now has a shell mode with -s option - elektrasetenv now uses the new 'kdb get' command, and it is less comples - elektrasetenv now set environment from system/env and user/env - Changes in the XML DTD header due to web site change * Mon Aug 17 2004 Avi Alkalay 0.3.1 - Fixed a bug in keyToStream() regarding XML export of comments - Make rg.c compile with older XML library - .spec now uses gmake instead of make - Moved ENODATA to ENOMSG, for better BSD compatibility - Improved the README documentation with packaging info * Mon Aug 10 2004 Avi Alkalay 0.3 - Registry now supports key and key sets CHANGE NOTIFICATIONS - New 'rg monitor' command, using notifications framework - 100% fully documented methods with Doxygen - Thinking seriously in a project name change. I have an idea for a new name * Fri Jul 30 2004 Avi Alkalay 0.2.9 - Doxygen finaly generates methods documentation. Not very nice though. - Included in -devel RPM - Included Advogato project page in the documentation * Sun Jul 25 2004 Avi Alkalay 0.2.8 - Added the export and import subcommands to rg. - Updated man page for that. - Build environments that don't have xsltproc and the DocBook styles won't fail to build manual pages. * Thu Jul 4 2004 Avi Alkalay 0.2.7 - First atempt to workaround the manpage creation when XSL tools are not available. * Thu Jun 24 2004 Avi Alkalay 0.2.6 - Moved responsability of creating dirs in the installation process from spec to Makefile. - Detected a problem of manpage creation in other distros, thanks to Tim Witham from OSDL. Not fixed yet. * Sat Jun 02 2004 Avi Alkalay 0.2.5 - Fixed the absense of keyClose in some places. Thanks to Victor. - In registryStatKey(), handled error if file can't be found. Thanks to Jens Andersen. - keyInit is now less smart: it will not test if the key is initialized or not. This is now a programmer responsability. - Code migrated to Subversion, thanks to Sean Russel. http://germane-software.com/repositories/tlr/ - Added $Id: etc to source files. - Added 'make commit' to deal with 'svn ci' * Sat May 22 2004 Avi Alkalay 0.2.4 - Improved rgsetenv login script: now set aliases too. - New methods: registryGetKeyByParent, registryGetKeyByParentKey, registryGetValueByParent, registrySetValueByParent - First attempts to create a bianry 'rg' with libxml statically linked. - New libregistry.a provided in -devel package, for creation of static binaries. - API manpages can now be accessed by method name (example: man registryGetKey) * Thu May 06 2004 Avi Alkalay 0.2.3 - Defined an XML DTD for keys - Defined keyToStream() and ksToStream() that dumps a key or keyset to XML format - Defined keyCompare() and ksCompare() - New 'rg edit' subcommand, to XML edit subtrees of the Regitry - Improved registryGetChildKeys() for better handling of symlinks - An /etc/profile.d script to set user environment is available in package now - New "Society of Softwares" section in documentation - Improved CSS of the HTML documentation * Thu Apr 13 2004 Avi Alkalay 0.2.2 - Implemented -u and -g in rg command to set Key UID and GID. - Included RG_O_SORT option for registyrGetChildKeys, to returned a KeySet sorted by key name. - Now every user/* key has an associated Owner defined, which defaults to $USER, when not specified in keySetName(). - Upgrade in the key file format. Changes in the data type field. - New handleOldKeyFileVersion() to keep backwards compatibility with older key files. - Updates to documentation for this version changes. - Symbolic links between keys are now consolidated. There is a formal key type for them: RG_KEY_TYPE_LINK - Fixed a minor problem related to reading last \n in key comments - Updated userd-convert script to be make a more NIS compatible conversion - Included a new migration script: hwconfingKudzu-convert. To migrate kudzu data to the registry * Thu Apr 06 2004 Avi Alkalay 0.2.1 - Change in key names: instead of (.) as hierarchy delimitator, we have (/) now. This is better for POSIX file name compliancy. - Consolidation of inactive keys. - Updates to documentations to include inactive keys concepts, etc. - Written key.3 manual page for key*() methods. - New conversion script to convert /etc/fstab - Removed a bug in UTF8Engine(). Data was written with a \n in the end. Thanks to Jens Andersen. * Thu Apr 01 2004 Avi Alkalay 0.1.6 - Introduction to inactive keys - registryGetChildKeys by default do not include inactive keys in resulting KeySet. Use RG_O_INACTIVE instead. - rg.c changed, specially in the list subcommand, to work with new behavior * Wed Mar 31 2004 Avi Alkalay 0.1.5 - Fixed in registryGetKey: Keys allways needed sync - Fixed bug releated to NEEDSYNC: ~RG_KEY_FLAG_NEEDSYNC needed a special cast to use the right number of bits - Improved HOWTO documentation and manual. Link to ReiserFS. - Started writting of the key.3 manual - One more bug related to strblen in registryFileUnserialize(), causing wrong data size calculation * Mon Mar 29 2004 Avi Alkalay 0.1.4 - Written manual pages rg(1), registry(7), registry(5) and registry(3) using DocBook - Ported the OpenOffice.org specification to DocBook, using the modularized man pages - RPMs include manpages - RPMs have prerequesites now - Fixed bug regarding \0 in end of key names on recursive stats - More robust build system, catching warnings - New method: registryGetRootKeys(KeySet *returned) - Fixed some bugs related to usage of strblen() - Introduction of the RG_O_* method options - Removed bug related to permission when stat()ing keys - Removed bugs in some KeySet methods - Much improved 'rg ls' command, specially in recursive mode - New key flag, NEEDSYNC, to indicate the change status of a key - New method, registrySetKeys, to commit all modified keys on a KeySet * Tue Mar 16 2004 Avi Alkalay 0.1.2 - The Linux Registry API is 100% usable - The rg command is very usable - Full support to UTF-8. Everything stored in the registry is UTF-8, regardeless of user's LANG. Conversions are on the fly. - Fixed bug on keySetName(), regarding wrong keyNameSize - Introduction of registryRemoveKey() - rg subcommands: ls, get, set, rm - rg now supports set octal permissions from command line - Key and Registry support for DIR type - Documentation process (man pages) in the very begining - Include files in a separate package * Sat Mar 06 2004 Avi Alkalay 0.0.9 - Now no more IPC, Berkeley DB, threads, setuid, and other complexities - Simple library that accesses files on disk - rg has 'set' and partial 'ls' subcommands implemented - API can already be used * Sat Feb 15 2004 Avi Alkalay 0.0.2 - Based on IPC, Berkeley DB, Threads, and many other complexities