What is GNU Octave?
GNU Octave is a high-level language, primarily intended for numerical computations. It provides a convenient command line interface for solving linear and nonlinear problems numerically, and for performing other numerical experiments using a language that is mostly compatible with Matlab. It may also be used as a batch-oriented language.
What is Octave Forge?
What is g-octave
g-octave is a tool that generates and installs ebuilds for Octave-Forge packages "on-the-fly" to Gentoo Linux, using Portage. It's capable to generate ebuilds and Manifest files for the packages, and to install them using an autogenerated overlay (named g-octave). g-octave can also handle patches to the packages automatically. The command line interface tries to be very similar to the interface of the emerge tool.
g-octave have some basic dependencies:
g-octave also depends on some files, distributed by the maintainer, like the package database (a tarball with the DESCRIPTION file of all the packages), a file with the dependencies and the blacklist, a tarball with the patches, the eclass octave-forge, and a file that list the updated files.
These files are needed because upstream don't ship a package database (they only distribute a tarball with the sources of all the packages, so we have a script that create the database using this tarball) and because we don't want to do a new release every time that the eclass is changed or that a new patch is added. All these files are automatically fetched by g-octave
At this time, these files are here: http://files.rafaelmartins.eng.br/octave-forge/
All the settings are centralized on the file /etc/g-octave.cfg. Please read the comments and change what you need. The recommendation is to keep everything as it is. :)
Below is a list of features implemented or planned to the next releases.
- Selection of the packages by name-version (done)
- Selection of the packages by name (using the latest version available) (done)
- Creation of the ebuilds (done)
- Creation of the Manifest files (done)
- Creation of the overlay automatically (done)
- Installation of the packages (done)
- Update of the packages already installed
- Remotion of the installed packages (done)
- Installation of the packages with patches automatically (done)
- List the packages available to install (done)
- Show detailed info about a package (done)
- Multiple versions of the same package on the tree (done)
- Download auxiliary files (patches, blacklist, dependency list, package database and the eclass) from a mirror using wget (done)
- The user can choose with which download manager will fetch these files
- The user can force the recreation of an ebuild (done)
- The user can force the recreation of the overlay (done)
- Resolution of the dependencies of packages from the Portage tree, based on the dependency list, provided by the maintainer of g-octave (done)
- Installation of multiple packages at once (not only the dependencies)
- Handle updates of the eclass and the auxiliary files automatically (done)
- Alert the user if the g-octave overlay is not appended to the PORTDIR_OVERLAY environment variable (done)
- Portage is supported (done)
- Paludis is supported
- pkgcore is supported
- Configuration file to the main settings /etc/g-octave.cfg (done)
- Use colors on the CLI (done)
- The user can disable the use of colors on the CLI (done)
- Log g-octave actions to a file
We have other goals besides implementing the remaining features:
- Port to Python >= 3.0
- Improve the code comments
- Improve the error handling
- Improve the overlay management
- Write a man page
- Convince upstream to distribute the package database
- Improve the use of g-octave as a normal user, with "--pretend"
- Improve the script that generate the package database
- Improve the details available on the packages list
- show program's version number and exit
- -h, --help
- show this help message and exit
- -l, --list
- show a list of packages available to install and exit
- -i, --info
- show a description of the required package and exit
- -p, --pretend
- don't (un)merge packages, only create ebuilds and solve the dependencies
- -a, --ask
- ask to confirmation before perform (un)merges
- -v, --verbose
- Portage makes a lot of noise.
- -C, --unmerge
- try to unmerge a package instead of merge
- -f, --force
- forces the recreation of the ebuilds
- forces the recreation of the overlay and of the ebuilds
- don't use colors on the CLI
Install the latest version of control:
# g-octave control
Install the version 1.0.11 of control:
# g-octave control-1.0.11
Remove the package control:
# g-octave -C control
Get informations about the package control:
# g-octave -i control
The options verbose, ask and pretend are passed to emerge.
How can I help?
If you experienced some random errors when installing some package, please retry, using the option --force-all, and report the issue to us. If you don't want to lose all your ebuilds, you can try to use the option --force, that will recreate only the affected ebuild.
Rafael Goncalves Martins <rafael at rafaelmartins dot eng dot br>