$Id$

Jun/01/1998
===========

	* We have some new ``suffix rules'':

	  '__l' is a function defined in the client part;
	  '__s' is a function defined in the sysdeps part and
	  '__p' is a function that needs special priviledges.
	  '__r' is mapped either on '__p' or on '__s'.
	  the function without suffix is mapped on '__l'.

	* We now decide at runtime whether or not using the server
	is required for a particular function. All user programs
	now call the '__l' function defined in '-lgtop' (in the lib
	subdir). These functions either use 'glibtop_call__l' to
	call the server or call the '__r' function.

	* A function in the sysdeps directory now has the '__s' suffix
	if it do not need any priviledges (and thus can be called directly
	from client code) and the '__p' suffix otherwise (when it has to
	be called from the server).

	* If you call one of these functions:

	  -> use the '__p' suffix to be sure to get the SUID-safe one
	     (used in the server).
	  -> use the '__s' suffix to be sure to get a function that
	     doesn't need any priviledges.
	  -> use the '__r' suffix otherwise (it is mapped either on the
	     '__p' or on the '__s' one).

	Only use the '__p' and '__s' functions in a 'GLIBTOP_SUID_<feature>'
	conditional, otherwise you'll get undefined symbols !

	* The server is now started from 'glibtop_init__r', but only when
	it's really needed; for instance on DEC OSF/1 you only need it
	for the proc* features - if you program only fetches the CPU usage,
	now server will be started.

	* Sorry, at the moment everything is a little bit unstable, I'm doing
	heavy changes. I've just some great ideas which still need some work:

	  -> I want to have a SUID server that only implements those features
	     that need to be SUID; everything else uses the sysdeps code directly.

	  -> If a program only uses stuff that do not need the server, the
	     server will not be started at all.

	  -> I'm working on some kind of proxy server that can be used on a remote
	     host; in feature one can then use the MDI stuff from ghex in gtop to
	     have notebook pages displaying processes from different hosts.

	* Well it is as much unstable that it only works under Linux at the moment.

1998-06-01  Martin Baulig  <martin@home-of-linux.org>

	* sysdeps/common/sysdeps.c: now using '__r' functions,
	they are #defined either as the '__p' or the '__s' ones.

	* sysdeps/linux/*.c: changed call of 'glibtop_init__r',
	it now takes two additional arguments.

	* examples/{first.c, second.c}: now using 'glibtop_init'
	instead of 'glibtop_init__r'.

	* include/glibtop/sysdeps.h: added 'dummy' member so
	'GLIBTOP_SYSDEPS_<feature>' now start with 1.

	* include/glibtop/*.h: we now #define 'glibtop_get_<feature>'
	as 'glibtop_get_<feature>__l' and 'glibtop_get_<feature>__r'
	either as the '__p' or the '__s' function.

	* lib/*.c: removed #if's - we now decide at runtime
	whether to use the server or to call the appropriate
	function for the sysdeps directory.

1998-05-28  Martin Baulig  <baulig@merkur.uni-trier.de>

	* src/server/main.c: we now use the '__p' functions,
	but only if the appropriate 'GLIBTOP_SUID_<feature>'
	has a non-zero value.
	
	* configure.in (@machine_incs@): always use 
	`-I$(top_srcdir)/sysdeps/@sysdeps_dir@'; it's no
	longer conditional.

	* examples/Makefile.am: removed the '_linux' examples.
	
	* sysdeps/linux/*.c: renamed all functions implementing
	features to '__s'.
	
	* lib/*.c: renamed all functions implementing features
	to '__l'; we only emit code for those functions if the
 	corresponding 'GLIBTOP_SUID_<feature>' has a positive value.
	
	* include/glibtop/*.h: added some new function suffixes:
	'__l' is a function defined in the client part;
	'__s' is a function defined in the sysdeps part and
	'__p' is a function that needs special priviledges.
	'__r' is mapped either on '__l' or on '__s'.
	
	* sysdeps/linux/glibtop_server.h: New file -
	defines system dependent constants 'GLIBTOP_SUID_<feature>'
	being either 'GLIBTOP_SYSDEPS_<feature>'+1 depending upon
 	whether or not this feature requires using the server.

	* lib/sysdeps.c: removed that file; it is no longer
	needed.



May/21/1998
===========

* doc/gnome-hackers.sgml: This is a short intro on how to use libgtop
  in the GNOME project. It covers especially the use of its 'configure'
  script and the automatically generated 'gtopConf.sh'.

May/20/1998
===========

* 'gtopConf.sh' now defines 'GTOP_LIBS' and 'GTOP_INCS' in a manner
  that they contain everything that is needed to link some program with
  libgtop. It will use '-lgtop' only if the server is really needed and
  '-lgtop_sysdeps' otherwise;

* 'gtopConf.sh' additionally defines 'GTOP_GUILE_LIBS' and 'GTOP_GUILE_INCS'
  containing everything that is needed to link some program both with
  libgtop and its guile interface. They are identically to 'GTOP_LIBS'
  and 'GTOP_INCS' if building the guile interface is disabled or guile
  cannot be found on the system.

* 'configure' takes additional arguments '--enable-libgtop-server' and
  '--disable-libgtop-server' to use the server even when it's not needed
  or to disable it's use where it's needed.

* 'configure' takes an argument '--without-libgtop-guile' to disable
  guile support.

* 'configure takes an argument '--without-libgtop-names' to remove
  '-lgtop_names' (and '-lgtop_guile_names' when we have guile) from
  'GTOP_LIBS'; in this case these libraries are not even built.

May/19/1998
===========

* Libgtop is now in the GNOME CVS Repository.

May/17/1998
===========

* we have now 'const char *glibtop_types_* []' consisting
  of the C types of the corresponding files of '_glibtop_*'.

* added guile function '(glibtop-types-*)' and '(glibtop-descriptions-*)'.

May/10/1998
===========

* Port to DEC OSF1 3.0 has been made:

  cpu		(total, user, nice, sys, idle)
  mem		(total, used, free)

  loadavg	(loadavg)
  uptime	(uptime)

  msg_limits	(map, max, mnb, mni, tql)
  sem_limits	(mni, msl, opm, vmx, aem)
  shm_limits	(max, min, mni, seg)

  The following need the server to be SUID root:

  proclist	(total, number, size)
  procdata	(cmd, state, uid, pid, ppid, pgrp, tty, k_flags,
		 session, tpgid, sigignore, sigcatch, signal, nice, 
		 priority, resident, rss, vsize, utime, stime,
		 cutime, cstime, trs, drs)

May/07/1998
===========

* 'flags' member of sysdeps/linux/procdata.c is now
  'unsigned long flags [2]'.

* When we give glibtop_get_procdata () a pid of zero, only
  the flags are returned.

* We now use static constants instead of #defines for sysdeps flags.

May/03/1998
===========

* VPATH-Build now working; sometimes it's necessary to copy
  $(top_srcdir)/po/cat-id-tbl.c to $(top_builddir)/po.

* The library has been tested on the following systems:

  - i686-pc-linux-gnu
  - sparc-sun-sunos4.1.1
  - alpha-dec-osf1 (that's DEC OSF1 3.0 and 3.2)

* Compilation has been tested on the following systems (I have no root
  access there and cannot test the library because of this):

  - sparc-sun-solaris2
  - i386-bsdi

* Does no longer require Gnome.

* Guile-Parts are compiled only if guile can be found.

* Some of the executables are statically linked to copy them more easily
  between machines.

May/02/1998
===========

 * Global changes to the interfaces, all functions except glibtop_open()
   and glibtop_close() that took a server argument have now a '__r' suffix;
   the original name is now a macro that uses glibtop_global_server.

Apr/10/1998
===========
Added new directory sysdeps/guile/names. It is the guile interface
to the gtop_names library found in sysdeps/names. Changed
GLIBTOP_DESCRIPTIONS to GLIBTOP_NAMES and added GLIBTOP_GUILE_NAMES
to the header files.

Apr/09/1998
===========
Added new directories guile and names to sysdeps. In names are
some string constants about the data stored in the structures.
guile is a guile interface for the library. It is used in
examples/third (which has been completely rewritten).
The header files define things from names when GLIBTOP_DESCRIPTIONS
if defined and/or from guile when HAVE_GUILE is defined.

Apr/08/1998
===========

Added guile wrapper for the library (see examples/third).
