[[!meta title="Needed Packages"]]
ProteanOS currently has few software packages. This page lists software that
ProteanOS should eventually provide.
For ProteanOS 1.0
=================
libffi (`libffi`)
-----------------
A foreign function interface is the popular name for the interface that allows
code written in one language to call code written in another language.
Packaging exists but needs to be updated to [[SPF_2.0|dev/pkg/spf-2.0]].
PCRE (`pcre`)
-------------
PCRE is a library of functions to support regular expressions whose syntax and
semantics are as close as possible to those of the Perl 5 language.
GLib (`glib-2.0`)
-----------------
GLib is a general-purpose utility library, which provides many useful data
types, macros, type conversions, string utilities, file utilities, a mainloop
abstraction, and so on.
Depends on: `libffi`, `pcre`, `pkgconf` (packaged)
Packaging exists but needs to be updated to [[SPF_2.0|dev/pkg/spf-2.0]].
Development
===========
Perl 5 (`perl`)
---------------
Perl 5 is a language interpreter, especially popular in systems administration
and software build and installation systems.
Unmodified Perl 5 source is impossible to cross build without executing software
on the host system (in GNU Autoconf terms, the system for which the package is
built). For more information, see this [mailing list thread][perl-cross] and
the [work by Neil Williams for Debian][debian-perl-cross].
[perl-cross]: https://lists.debian.org/debian-embedded/2012/06/msg00011.html
[debian-perl-cross]: http://www.linux.codehelp.co.uk/serendipity/index.php?/archives/239-Long-term-maintenance-of-perl-cross-build-support-in-Debian.html
GNU Autoconf (`autoconf`)
-------------------------
GNU Autoconf generates `configure` scripts that are used to configure software
packages for building.
Depends on: `perl`
GNU Automake (`automake`)
-------------------------
GNU Automake generates `Makefile.in` files that are used to build software
packages.
Depends on: `perl`, `autoconf`
GNU Libtool (`libtool`)
-----------------------
GNU libtool is a generic library support script. Libtool hides the complexity
of using shared libraries behind a consistent, portable interface.
Depends on: `autoconf`, `automake`
GNU Bison (`bison`)
-------------------------
GNU Bison is a general-purpose parser generator.
It is an optional dependency of Gawk.
Depends on: `perl`
Administration
==============
Dropbear (`dropbear`)
---------------------
Dropbear is a small SSH server and client, in many ways compatible with OpenSSH.
A service script (`/etc/init.d/dropbear`) will need to be written, along with
`postinst` and `postrm` maintainer scripts to generate and delete the SSH host
key pair.
Lua 5.1 (`lua-5.1`)
-------------------
Lua is a powerful, fast, lightweight, embeddable scripting language interpreter.
LuCI (`luci`)
-------------
LuCI is a free, clean, extensible and easily maintainable web user interface for
embedded devices.
One or more makefiles may need to be patched to support cross compiling.
There are lots of embedded code copies under `contrib/`; some or all of these
(e.g. uhttpd) should not be built.
Depends on: `iptables`, `lua-5.1`, maybe more