Hi, there is a new version of Felix, 1.1.2 now released.
The debian maintainer and sponsor is Mike Furr.
However I think Mike is relocating or something, he isn't
responding to email but I noted an email here from him
a while back saying he'd be temporarily out of action.
Anyone else willing to take over temporarily?
The new version needs a couple of changes to the packaging.
The installation model is now changed. Felix versions never
conflict, except for:
(a) documentation including man pages
(b) the bash script /usr/bin/flx
In case (b), 'in theory' the script will run any installed
version of Felix (in practice this mightn't work so well :)
It may still be appropriate for Debian package to only
permit one Felix version to be installed.
In the new release the installation layout is quite different:
ALL of the configuration data, sources, binaries, executables
other than 'flx' and libraries live in the Felix installation
(or whatever the version is). In the previous version,
executables when in /usr/bin and libraries in /usr/lib.
We've dropped support, at least for Debian, for the
'toolkit' installation because it requires about 20-30
separate Debian packages to work properly.
Instead, the user can STILL use the separate components
with the new installation model, they just don't get
any 'default' components in /usr/include, /usr/bin,
/usr/lib, etc. Spreading the parts out like that would
become impossible to maintain over separate versions.
The problem is that the libraries, for example, are NOT
currently separately supported libs with fixed interfaces.
So the user writing code will have to bind to a particular
version and either stick with it, or explictly upgrade.
Thus, there are no .sonames in the libraries .. they'd
be useless because there would need to be distinct include
files for every version too. In other words whilst we try
to provide source code compatibility across versions,
there is no attempt to provide binary/ABI compatibility.
Thus, you can expect some 'diagnostics' from the Debian
tools which check various things .. but some of these
diagnostics do not indicate errors -- the tools are
seeing a .so file etc and assuming the package is providing
a shared library.. this isn't the case. The package provides
just one executable, the bash script 'flx' .. and everything
else is an implementation detail :)
With this model, the actual installation is quite simple:
just copy an image of the development directory ignoring
temporary files. The 'install' target in the Makefile
should already do this. (the docs still need to be
installed in 'the usual' places tho).
This system should work with any recent version of Ocaml (3.09.xx).
Dependencies: there are some conditional dependencies.
This will become a major problem later if the system ISNT
split into separate packages. For example there is a binding
to GMP and SDL. These have to be installed during the build
process for the configuration script to detect them.
The bindings are installed ANYHOW, whether or not the
required support is available .. however the configuration
files telling the harness where to find these components
will have to be edited by hand if they're installed
I see no problem *requiring* GMP and GSL, since I think
these GNU packages are available on all Debian platforms.
However SDL is more problematic (under Ubuntu at once
stage there were TWO versions .. the sdl packages
didn't work at all for me .. but the *debian* sdl
packages did: separate packages for some weird reason).
Similarly, OpenGL support is problematic: some of the
tests use OpenGL features which aren't available on
all systems -- its video card dependent. At present,
we're not doing the 'right thing' which is probably
to dynamically check each and every OpenGl extension
to see if it is present -- obviously this configuration
simply CANNOT be done on the Debian autobuilder.
Again, the only real solution is a separate package,
but as above that is just too much work at the moment.
BTW: I'm pleased to see Felix 1.1.1 has actually made
it into Ubuntu Dapper.
John Skaller <skaller at users dot sf dot net>
Felix, successor to C++: http://felix.sf.net