* Tue Nov 7  2006 Guillaume Thouvenin <guillaume.thouvenin@bull.net>

        * NEWS: Release ELSA version 1.4
                Now we are only using two numbers, the major and the minor.
        * jobd/jobd.c: Add connector.h header file

* Thu Sep 7  2006 Guillaume Thouvenin <guillaume.thouvenin@bull.net>

        * NEWS: Remove webmin directory. The webmin module is now an add-on that
                can be downloaded from elsa.sf.net
        * elsa.spec: Add a script that tests if the usage of 'jobs' is okay. Add
                a C programm that tests if connector are available and if BSD
                process accounting is the version 3.

        * utils/test_elsa.c: Tests if connector are available and if BSD
                accouting is version 3.

Thu Aug 31 2006 Guillaume Thouvenin <guillaume.thouvenin@bull.net>

        * NEWS: Release ELSA version 1.3.0
                - Rename elsa-x.y.z.tbz to  elsa-x.y.z.tar.bz2
                - Specify that the kernel-devel version be >= 2.6.15
                  in BuildRequires
                - Add a %doc entry for ChangeLog COPYING README

        * README: Connectors are included in Linux official tree.

        * utils/bsdacct_ver.c: Check the version of the BSD Process
                Accounting used by the kernel. It will be used to
                check if ELSA can be executed on the installed system.

        * utils/Makefile: Add a command to compile bsdacct_ver.c.

Fri Jul 07 2006 Guillaume Thouvenin <guillaume.thouvenin@bull.net>

        * Rules.mk, man/Makefile: Add DESTDIR variable which is used
                by SRPM to build a new binary package.

        * utils/Makefile: Change the order in which commands are called
                during the installation.

        * utils/test_elsa_installation.sh: Change the directory where
                commands can be found.

Mon Feb 13 2006 Guillaume Thouvenin <guillaume.thouvenin@bull.net>

        * NEWS: Release ELSA version 1.2.1

Fri Feb 10 2006 Guillaume Thouvenin <guillaume.thouvenin@bull.net>

        * job_daemin/jobd.c: As connector is not included in the libc
                we need to include it through kernel source. The problem
                is that there is a conflit with some definitions in
                <time.h>. Some variable are defined in <sys/time.h> and
                redefined in <linux/time.h> (included in cn_proc.h). Thus
                we add a ugly #define to be able to compile. We will
                remove that hack as soon as libc includes connectors.

Wed Nov 16 2005 Guillaume Thouvenin <guillaume.thouvenin@bull.net>

        * NEWS: Release ELSA version 1.2.0

                We're now using the patch provided by Matthew Helsley
                that is the "Process Events Connector". This patch is
                included in the current -mm tree.

Mon Oct 17 2005 Guillaume Thouvenin <guillaume.thouvenin@bull.net>

        * job_daemon/jobd.c : We're using the process events connector.
                This patch is distributed by Matthew Helsley and it is
                based on the fork connector.

                We added two functions to listen and ignore the fork
                connector event. Thus the switch_fork_status.c is
                not needed.

        * utils/switch_fork_status.c: Removed. This is done directly by
                the job daemon.

Tue Sep 13 2005 Guillaume Thouvenin <guillaume.thouvenin@bull.net>

        * NEWS: Release ELSA version 1.1.0

Wed Aug 31 2005 Guillaume Thouvenin <guillaume.thouvenin@bull.net>

        * NEWS: ELSA is now using the new fork adviser patch

Wed Jun 22 2005 Guillaume Thouvenin <guillaume.thouvenin@bull.net>

        * NEWS: Release ELSA version 1.0.0

                The first digit is '1' for the major release, the
                second digit '0' is incremented for each minor release,
                and the third digit '0' is incremented when bugs are

                This is a major release. This release provides a webmin
                interface to display information about group of processes
                and accounting. It also provides scripts needed to manage
                group of processes. The fork connector is part of -mm tree.

Wed Jun 15 2005 Guillaume Thouvenin <guillaume.thouvenin@bull.net>

        * webmin : We build a new webmin interface. This interface is
                used to display information about group of processes and
                it's also used to enable/disable the job accounting.

Thu May 26 2005 Guillaume Thouvenin <guillaume.thouvenin@bull.net>

        * job_daemon/jobd.c, utils/fcctl.c, utils/get_fork_info.c:
                Replace NETLINK_NFLOG by NETLINK_CONNECTOR. It works
                since linux-2.6.12-rc5-mm1

Tue May 17 2005 Guillaume Thouvenin <guillaume.thouvenin@bull.net>

        * NEWS: Release ELSA version 0.9

Thu May 12 2005 Guillaume Thouvenin <guillaume.thouvenin@bull.net>

        * fork connector is included in 2.6.12-rc4-mm1

        * patch/connector-send-status.patch: When asking for
                the status, the cn_fork_send_status() send a message
                through the connector. We also modify the structure
                "struct cn_fork_msg" to hold the following values:
                        - ID of the cpu where the fork occurred
                        - Parent process id
                        - Parent thread id
                        - Child process id
                        - Child thread id

        * utils/elsad: Now it listens to the status message. Add
                colors if the command succeded.

        * utils/fcctl.c: Use the new mechanism to get the status.

        * job_daemon/jobd.c: Add a test to see if the message contains
                information about processes because now there is also
                message about status.

Fri Apr 29 2005 Guillaume Thouvenin <guillaume.thouvenin@bull.net>

        * NEWS: Release ELSA version 0.8

Wed Apr 27 2005 Guillaume Thouvenin <guillaume.thouvenin@bull.net>

        * Makefile: Don't install elsa/ directory because there is a
                conflict with name. So C files are always here but not
                compiled by default.

        * utils/Makefile: Remove .py extension when installing python scripts.

        * utils/elsa.py: This script replace the former analyzer.c,
                acctv3dump.py and jobmsgdump.py.

        * utils/acctv3dump.py: This file is replaced by utils/elsa.py.

        * utils/jobmsgdump.py: This file is replaced by utils/elsa.py.

        * utils/elsad: Implement the recovery of the status. It's more a hack
                than a clean solution.

        * man/elsa.1: Replace the old elsa.py.1. We change the name because
                during the installation, elsa.py is renamed elsa

        * man/jobmng.1: Rename jobmng.1.py to jobmng.1. We change the name
                because during the installation, jobmng.py is renamed jobmng

Thu Apr 25 2005 Guillaume Thouvenin <guillaume.thouvenin@bull.net>

        * utils/elsad: Rename elsa in elsad.

Thu Apr 25 2005 Nguyen Anh Quynh <aquynh@gmail.com>

        * patch/{connector.h,cn_fork.h}: New files. Copy those two files to
                /usr/include/linux if needed. We do that to make
                compilation easier for users.

        * Rules.mk: Use new variable INSTALL_DIR, INSTALL_DATA, INSTALL_PROG
                and RC. Use ':=' instead of '='.

        * all Makefiles: Use new variable INSTALL_DIR, INSTALL_DATA and

        * Makefile: Copy header files to /usr/include/linux with the new
                target 'header'.

        * man/Makefile: Install man pages into /usr/share/man to follow FSF
                rules and gzip the man pages when installing.

        * utils/Makefile: install elsa daemon script into /etc/init.d and

        * utils/elsa: use PREFIX variable.

        * job_daemon/Makefile: Remove '-I .'.

        * job_daemon/jobd.c: Include "jobd.h" instead of <jobd.h>.

Thu Apr 21 2005 Guillaume Thouvenin <guillaume.thouvenin@bull.net>

        * patch/linux-2.6.12-rc1-mm4-cnfork.patch: Replace module_init() by
                __initcall() and remove module_exit() because the fork
                connector cannot be used as a module.

        * utils/elsa: Add a new script that can be added in /etc/init.d
                in order to manage the start/stop job daemon.

        * utils/jobmng.py: Rename elsa.py to jobmng.py (job manager).

        * man/jobmng.py.1: Rename elsa.py.1 to jobmng.py.1.

        * man/Makefile: Add a makefile to install/uninstall/clean man pages.

Thu Apr 21 2005 Nguyen Anh Quynh <aquynh@gmail.com>

        * Rules.mk: Use PREFIX variable for all installed directories
                since the old BINDIR, SBINDIR and MANDIR all share the
                same prefix, so this change makes the Makefiles(s) clearer
                and more scale (Rules.mk. also see other changes to reflex
                this update in all Makefiles).

        * all Makefile: See comments above. Also, use INSTALL and RM for
                intallation and remove in all install and uninstall target.
                Fixe the current problem in the man/Makefile: if
                /usr/local/man/man1 doesnt exist, "make -C man install" will
                fail. That's why we must use "INSTALL = install -D".

        * man/Makefile: See comments above. Also, "make -C man install" now
                "gzip" the man files in MANDIR.

        * patch/linux-2.6.12-rc1-mm4-cnfork.patch: Isolate changes to
                connector.h to a separate file include/linux/cn_fork.h.
                Reflex new change to fork.c and cn_fork.c, now we include
                cn_fork.h instead of connector.h.

Wed Apr 20 2005 Guillaume Thouvenin <guillaume.thouvenin@bull.net>

        * NEWS: Update for 0.7.1

        * utils/elsa.py: Move the elsa/elsa.py script in the utils/ directory.
                This is to have all python scripts utilities in the same place.

        * utils/acctv3dump.py: Read a file written by the 'acct' command. It
                replaces the old ac_v3_read.c. It only works with acct_v3.

        * utils/jobmsgdump.py: Read a file written by the job daemon. It
                replaces the old jobd_read.c.

        * test/: Create a new directory to report results about real tests.

        * man/: Create a new directory to store man pages.

        * man/acctv3dump.py.1: Describe the script acctv3dump.py.

        * man/elsa.py.1: Describe the script elsa.py.

        * man/jobmsgdump.py.1: Describe the script jobmsgdump.py.

Tue Apr 19 2005 Nguyen Anh Quynh <aquynh@gmail.com>

        * Rules.mk: Include some variables to installed directories. All
                Makefile(s) now include this file.

        * Makefile, elsa/Makefile, job_daemon/Makefile, utils/Makefile:
                Add install/uninstall target to Makefile(s). Now users can
                install and uninstall the scripts/utilities/daemons to the

        * job_daemon/jobd.{c|h}: Use pid_t type instead of int. Use
                unsigned int instead of int for jid.

Wed Apr 13 2005 Guillaume Thouvenin <guillaume.thouvenin@bull.net>

        * NEWS: Update for 0.7

        * elsa/elsa.py: This new script replace the obsolete elsa.c
                It allows to add/remove a process from a job and
                it allows to execute a command in a new job or in
                an existing job. You can also get information about
                all jobs.

        * elsa/elsa.c: Change the way to deal with the job daemon when
                transferring information. In particular, we remove
                the EOT test.

        * elsa/analyzer.c: Use the new jobd_msg structure to get information
                about jobs.

        * utils/jobd_read.c: Read information send by the job daemon and
                stored in a file.

        * job_daemon/jobd.h: Remove unused macro (GETINFO2_REQ, ...).

        * job_daemon/jobd.c: Remove the sending of an EOT message which was

Thu Mar 31 2005 Nguyen Anh Quynh <aquynh@gmail.com>

        * NEWS: Update for 0.6.1

        * elsa/analyzer.c: Print out more meaningful helps and messages.

        * elsa/elsa.c: Fix some typos and use more meaningful messages.

        * clean Makefile(s)

        * elsa/elsac.c: The new utility "elsac" (elsac stands for "elsa
                commandline") to send add/remove/halt request to server.
                I wrote this one since elsa.c is for interactive, so it
                is only helpful in demonstration only.

Thu Mar 31 2005 Guillaume Thouvenin <guillaume.thouvenin@bull.net>

        * patch/linux-2.6.12-rc1-mm4-cnfork.patch: See the announce on the
                Linux kernel mailing-list for changes.

        * patch/linux-2.6.12-rc1-mm3-cnfork.patch: Move the fork_connector()
                in line code in include/linux/connector.h and use the
                structure cn_fork_msg to pass information through the
                netlink interface.

Fri Mar 25 2005 Guillaume Thouvenin <guillaume.thouvenin@bull.net>

        * NEWS: Update for 0.6

        * utils/fcctl.c: To enable or disable the fork connector we use the
                ffctl application which is the fork connector controller.

        * job_daemon/jobd.c: Remove the start/stop of the fork connector. This
                part is done by the fork connector controller.

        * patch/linux-2.6.12-rc1-mm3-cnfork.patch: The unique sequence number
                of messages can be used to check if a message is lost. Now,
                this sequence number is relative to a CPU.

        * elsa/analyzer.c: Replace g_int_hash() by g_direct_hash().

Wed Mar 09 2005 Guillaume Thouvenin <guillaume.thouvenin@bull.net>

        * NEWS:        We're using a the fork connector to pass information
                about forks to a user space application. The connector
                is a netlink interface.

Mon Feb 10 2005 Guillaume Thouvenin <guillaume.thouvenin@bull.net>

        * NEWS: After some discussions, it appears that LSM is not the
                right framework for our application. Thus we wrote a new
                module called relay fork module that relays information
                about forks. It uses the sysfs file system.

Mon Nov 29 2004 Guillaume Thouvenin <guillaume.thouvenin@bull.net>

        * NEWS: We use the LSM hook to be alarmed when a process creates a
                child. We don't know if it's the right framework but it is
                the only one which is already in the official Linux tree so
                we use it until a better solution is found.

Fri Nov 19 2004 Guillaume Thouvenin <guillaume.thouvenin@bull.net>

        * NEWS: We use a new kernel hook to get information about fork. The
                new hook prevent the direct modification of the pointer to
                the function and make some checks before modifying the
                pointer. It's safer.

Mon Nov 08 2004 Guillaume Thouvenin <guillaume.thouvenin@bull.net>

        * NEWS: Add an analyzer that performs the per-job accounting. It
                uses the BSD per-process accounting and informations given
                by the job daemon.

Wed Oct 20 2004 Guillaume Thouvenin <guillaume.thouvenin@bull.net>

        * NEWS: Add a new structure called jobs_list. The goal is to be
                able to list all processes in a job for a given job ID.
                Now we can have information with a O(1) complexity from the
                pid and it's also easy to get the same information for a
                given job ID.

Wed Oct 13 2004 Guillaume Thouvenin <guillaume.thouvenin@bull.net>

        * NEWS: Write elsa test application with ncurses support. It
                improves the usage of ELSA.

Mon Oct 11 2004 Guillaume Thouvenin <guillaume.thouvenin@bull.net>

        * NEWS: Version 0.1 of ELSA pre-released. This is a
                user space Enhanced Linux System Accounting.