aboutsummaryrefslogtreecommitdiff
blob: 4267ffb4d8f0e7eccb83f740c4ec2e4f18a55eff (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
.. _`GNU Octave`: http://octave.org/
.. _`Octave-Forge`: http://octave.sf.net/
.. _`g-octave`: http://bitbucket.org/rafaelmartins/g-octave/
.. _Python: http://python.org/
.. _simplejson: http://pypi.python.org/pypi/simplejson/
.. _pycolors: http://pypi.python.org/pypi/pycolors/
.. _Portage: http://www.gentoo.org/proj/en/portage/ 
.. _Paludis: http://paludis.pioto.org/
.. _pkgcore: http://www.pkgcore.org/
.. _`Gentoo Linux`: http://www.gentoo.org/
.. _`issue tracker`: http://bitbucket.org/rafaelmartins/g-octave/issues/

g-octave
========

Introduction
------------

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?
~~~~~~~~~~~~~~~~~~~~~

`Octave-Forge`_ is a central location for the collaborative development of
packages for `GNU Octave`_.

The `Octave-Forge`_ packages contains the source for all the functions and
are designed to work with the `GNU Octave`_ package system. 


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.

At this moment `g-octave`_ depends on the Portage_ package manager to works,
but the support to Paludis_ and pkgcore_ is planned.


Features
--------

Below is a list of features implemented and 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 automatically **(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)**
* Shows detailed info about a package **(done)**
* Supports multiple versions of the same package **(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)**
* Mask a package to be installed, based on the blacklist, provided by the
  maintainer of `g-octave`_ **(done)**
* Show the masked packages on the list of packages, with an alert
* Resolution of the dependencies of packages from the Portage tree, based
  on the dependency list, provided by the maintainer of `g-octave`_ **(done)**
* Supports the installation of multiple packages (not only the dependencies)
* Handle updates of the eclass and the auxiliary files automatically **(done)**
* Alert the user that the `g-octave`_ overlay is not appended to the
  PORTDIR_OVERLAY environment variable **(done)**
* Support to Portage_ **(done)**
* Support to Paludis_
* Support to pkgcore_
* 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)**
* Logging `g-octave`_ actions


To-Do
-----

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
* more...


CLI options
-----------

*--version*
    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

*--force-all*
    forces the recreation of the overlay and of the ebuilds

*--no-colors*
    don't use colors on the CLI


Dependencies
------------

`g-octave`_ have some basic dependencies:

* Python_ 2
* Portage_
* simplejson_
* pycolors_ (to use colors on the CLI, it's an optional dependency)


How can I help?
---------------

The users can help testing and reporting bugs in our `issue tracker`_.
If you can help programming in Python_, please take a look at our missing
features and at the To-Do list. :)


Authors
-------

Rafael Goncalves Martins *<rafael at rafaelmartins dot eng dot br>*