# The GAP 4 Package **Browse**

The newest version of **Browse** is usually contained in the current
[**GAP distribution**](https://www.gap-system.org/install/).

To fetch another version follow the hints under "Fetching Browse Separately"
below.


## Copyright

Copyright 2006-2026 by Thomas Breuer and Frank Lübeck


## License

This program is released under license GPL-3.0-or-later,
see the included file `GPL` for more details.
However, a few files in the `bibl` subdirectory have their own license
information because they have been derived from other sources,
see the `README` file in the `bibl` subdirectory.


## Installation

After unpacking the code of **Browse** the installation must be finished
by compiling a module which can be loaded by the GAP kernel.
(The Windows distributions of GAP already contain this compiled module,
nothing needs to be done on those machines.)

To compile the kernel module you need:

- a C-compiler,
- [header files for the GNU "ncurses"
  library](https://www.gnu.org/software/ncurses/ncurses.html),
- an already configured and compiled GAP kernel.

On most Linux/UNIX machines the ncurses library is installed,
but maybe not the header files to compile applications that use ncurses.

On Debian based Linux machines (Debian/Ubuntu/Mint/....) install (as root)

```
apt-get install libncurses5-dev libncursesw5-dev
```

and on 64-bit systems maybe also

```
apt-get install lib32ncurses5-dev lib32ncursesw5-dev`
``` 
    
On many rpm-based systems you can install

```
ncurses-devel ncurses-devel-32bit
```

or some similarly named packages with your usual package manager.

Once the header files are available, installation should be easy as follows:

```
./configure
make
```

If **Browse** is not installed inside the `pkg/Browse` directory of your
GAP installation, use

```
./configure /path/to/your/GAP
make
```

instead.

The make command takes into account environment variables `CFLAGS` and `LOPTS`
if you want to specify extra C compiler options or different compiler options
(the default is `CFLAGS=""` and `LOPTS="-lpanel -lncurses"`),
e.g. if your header files are not in a standard location.

If you don't have ncurses header files in standard paths (or maybe you don't
have root access to your machine), you can also compile ncurses yourself
before compiling the **Browse** kernel module.
(The source code is here: <https://ftp.gnu.org/pub/gnu/ncurses/>)

Recompiling the documentation is possible by the command `make manual`
in the **Browse** directory (you need `(pdf)latex` and the `netpbm` tools).
But this should not be necessary.

After installation you can load this package into your GAP session with:

```gap
gap> LoadPackage("Browse");
```

To get an impression of the display capabilities of the package
you can run a demo:

```gap
gap> NCurses.Demo();
```

E-mail us if you have any questions, remarks, suggestions.
Also, we would like to hear about applications of this package.


## Fetching Browse Separately

To get the newest version of this GAP 4 package download one of the archive
files (where `x.y` stands for the highest available version number)

- `Browse-x.y.tar.gz`
- `Browse-x.y.tar.bz2`
- `Browse-x.y-win.zip`      (with text files in DOS/Windows format)

from <https://www.math.rwth-aachen.de/~Browse>
(or from <https://www.gap-system.org>) and unpack it using

```
gunzip Browse-x.y.tar.gz; tar xvf Browse-x.y.tar
```

and so on.

Note that if you use a web browser for downloading the archive file
the `gunzip` step above may already be done by the browser,
although the name of your file may still have the misleading `.gz` extension.

The unpacking is done preferably (but not necessarily) inside the `pkg`
subdirectory of your GAP 4 installation. It creates a subdirectory called
`Browse-x.y`.

Thomas Breuer (<Thomas.Breuer@Math.RWTH-Aachen.De>),
Frank Lübeck  (<Frank.Luebeck@Math.RWTH-Aachen.De>)
