Archive for the ‘freebsd-update frontend’ Category

22
Jul

My work towards creating a front end for freebsd-update is progressing. I have it at the point where it is exchanging dummy information about the patches on a machine. I’ve added signal handlers to shut down the back end correctly. The network code is fixed when the back end attempts to disconnect and reconnect.

I still need to write the code to detect the downloaded and installed patches. I am also working on the install_patches handler. It will need a functions written to extract the relevant data from the calls argument. When the install_patches handler is able to at least return some dummy information I will hook the new install button to a call.

When the list_updates and install_patches handlers work I’ll have to wait for a security announcement to test it with. Until then I’ll just have to use my local update server.

10
Jun

I’ve managed to get my front and back ends talking to each other. The front-end is written in Python. It loads a Glade file and uses that to generate the window to display.

To run it you need a copy of //depot/projects/soc2007/andrew-update/ from perforce. Run ‘make’ to build it. Next, from the backend directory, run ‘facund-be -c freebsd-config-control.conf’. This starts the backend. In a new terminal, from the frontend directory, run ‘python facund.py’. It will open a window with what will become a list of computers on the left with a connect and disconnect button under it. When the connect button is clicked it should attempt to connect to the back-end over the /tmp/facund unix socket and send a start message to the back-end. On disconnect it will send a stop message and wait for the back-end to do the same.

The rest of the communication is yet to be defined but I have a basic idea of the front-end sending a request something like <get value=”available_updates” id=”random_id”/>. The back-end then sends a <return id=”random_id” data=”none”/>. The return data may be changes to allow for non-string types, e.g. bool, int, array, etc.

13
Apr

My proposal for the Google Summer of Code to create a frontend for freebsd-update was accepted by the FreeBSD project.

My current design it to have a backend to control freebsd-update. This then talks to the frontend that lets the administrator update the machine and restart services as needed. I will have to come up with a protocol for the back and front ends to communicate in a secure manor. I also want to be able to extend what the backend can do, eg. update ports/packages, restart services or the whole computer.