Skip to content
 
 

Latest commit

 

History

249 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

boinctui — personal fork

A fork of suleman1971/boinctui, the ncurses console manager for the BOINC client, with some fixes and one new feature. Everything here is on branches; master is upstream plus this file.

This is not the official boinctui. For releases, packages and support, go to upstream. Nothing here has been proposed upstream yet.

Why this exists

I run BOINC across a number of machines and use boinctui daily. A couple of things got in my way, so I fixed them, and rather than keep the patches on my own disk and hand them round as .deb files, they may as well be somewhere people can read them, build them, or take them.

To the maintainer: please help yourself to any of this, in whole or in part, with or without attribution. The commits are kept separate and each one stands alone so they can be cherry-picked individually. If you would rather have any of it as a pull request, say so and I will open one.

What is on each branch

fix-task-count-display

Task counts above 999 were clipped. The info panel formatted them with %3d into a 20-column window, so a host with 1016 tasks reported nonsense, and the task list's row-number column was too narrow to keep rows aligned once the count reached four digits.

Field tested against a live client holding 1016 tasks.

commit
444e7e5 Fix task counts >999 being clipped in info panel
e3a42a4 Changelog entry for the local package build, and a .gitignore

client-settings

Two commits, and the first is worth having on its own:

commit
b7c60f3 Fix RPC requests longer than 1KB being silently truncated
1a954d6 Add an Options menu for client preferences

The 1KB fix is an upstream bug and is independent of the feature. Both request paths wrote into a fixed char[1024]. Srv::req() built the <boinc_gui_rpc_request> envelope with strcpy/strcat and no bound at all; TConnect::sendreq() used vsnprintf, which stayed in bounds but quietly cut the request short. Either way the client receives malformed XML and the operation fails without logging anything useful. It is reachable by anything that sends a large request — a full preference set is comfortably over 1KB. Srv::req() now builds the envelope in a std::string, and sendreq() measures with vsnprintf(NULL, 0, ...) and allocates to fit.

The Options feature is the part that is a matter of taste. boinctui could display the client's preferences but not change them, so adjusting a CPU or disk limit meant leaving the terminal. F9 → Options opens a form for the four settings that actually get adjusted — CPU usage %, work buffer days, disk usage % and RAM % — reading current values with <get_global_prefs_working/> so the form opens showing what is in force. Writes go through set_global_prefs_override, merged into any existing override rather than replacing it, so a hand-edited global_prefs_override.xml keeps the keys this form does not manage. There is a "Clear local overrides" action that removes the file and returns the host to its project/venue defaults. Up/Down move between fields, which the existing forms did not support.

This branch is based on fix-task-count-display, so it carries that fix too.

Building

Same as upstream — autotools, no extra dependencies beyond what boinctui already needs:

sudo apt install autoconf libncurses-dev libssl-dev libexpat1-dev
git clone -b client-settings https://github.com/lblanchardiii/boinctui.git
cd boinctui
autoreconf -i
./configure
make
sudo make install

Swap the branch name for fix-task-count-display if you only want the task count fix. Both branches carry a debian/changelog entry, so dpkg-buildpackage -b -uc -us produces an identifiable package rather than one that collides with the distribution's.

Note that make install writes /usr/bin/boinctui, which on Debian and Ubuntu is the same path the boinctui package owns — dpkg will then report the file as modified. Building the .deb avoids that.

Licence

GPL-3.0, same as upstream. boinctui is the work of its original author and contributors; the changes on these branches are mine and are offered under the same terms.

About

Automatically exported from code.google.com/p/boinctui

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages