The arrow of time

Ivan Voras' blog

What happened to finstall?

I occasionally get questions about the finstall project - more or less to the not of "what happened to it?". It's not very hard to conclude that its development has been stalled. I'm personally sorry about that and would very much like to continue working on it, but as always, real life got in the way. I still don't consider the project abandoned, and occasionally when I have the time add something to it. I still have plans for it and plan to present a small segment of it at the next BSDCan.

See the rest of the post for details.

The project was originally a Google Summer of Code project for the year 2007. The project was completed enough to pass as completed but it wasn't widely used because I think it needs more work. Since that time I've taken on what amounts to two jobs and am working on completing my PhD, so the time available for finstall has shrinked significantly. In the time between I have also failed to arrange any funding for its development, which has also influenced the time allocation.

But all is not lost! The current status of the project is that the following things work:

  • The basic "liveCD" image of 7-STABLE
  • Installation of 7-STABLE on a blank disk drive, which includes the base system and a predetermined set of ports (X.Org, Xfce desktop, etc.), on a predetermined partition scheme
  • Installation is available on UFS2, ZFS or ext2 file systems
  • Configuration of network interfaces, ssh, ntp, and similar small services
  • Remote installation

To make it truly usable, it requires at least the following components:

  • A partition editor (currently, the partitions are automatically calculated from the target drive size)
  • Package selection utility (currently, all packages from the live CD image are copied en-masse and literarly to the target system)

Most of the new development concerns the GUI side of it. The backend requires relatively little new development.

From what I've learned during the development, I think that it was a mistake to write the installer GUI in Python+GTK. My current plans are (of course, given infinite time to develop) to rewrite it with Java. It was a choice even at the start, but Sun's Java was (and still is) encumbered by legal obstructions of redistribution for the FreeBSD packages (basically, only the Foundation can distribute them, ever, except if a special contract is made between a third party and Sun). Today, OpenJDK looks like it might "soon" be ported to FreeBSD (though judging by the progress it looks like the official FreeBSD Java crowd is working on OpenJDK 1.7 which has not been released yet, instead of OpenJDK 1.6, which is).

The back-end will probably be left as it is, in Python, since I don't think I'll ever have the energy to rewrite its many string-parsing and XML-generating lines of code in C.

Currently, finstall is hosted on SourceForge. This was done to attract developers outside the FreeBSD official developer circle (e.g. those not having access to FreeBSD's SVN and CVS) to work on it. This was also not very successful, as only one persone enlisted, to disappear after a month or so.

As I've said, I'd still like to finish this. Any persons wanting to help are welcome to join. If there are enough people enthusiastic about continuing to work on the Python GUI, (the best side of which is that it currently works) the Java rewrite might happen later, or never.

As for the short-term planning, I can say for sure that for the next two weeks I'll be incredibly burried in current work, but after that I might find the time to contribute to the project again.

#1 Re: What happened to finstall?

Added on 2009-02-19T18:28 by kimelto

Hi,

Do you think finstall can be the official installer if it is implemented on top of a scripting/vm language which is not in the base system ? (aka python or Java)

Is there a finstall client in dialog/ncurse ?

Thank

#2 Re: What happened to finstall?

Added on 2009-02-19T22:57 by Ivan Voras

Re: finstall in base: it doesn't matter because X11 is not in base and all nontrivial GUI toolkits are LGPL anyway. Any decent GUI installer will certainly by definition not be in base.

What is possible is for the back-end to be reimplemented in C. This is a lot bigger project than writing it in Python ever was. A distant option is to again integrate a high-level scripting language in the base - I'd like that very much not only because of finstall but for daily management - it would be very convenient to have a language that can be relied to exist in every installation world-wide. If Python is too bih, maybe a special, FreeBSD-enhanced and integrated version of Lua would do?

Re: curses: While it's possible to make a curses front-end for finstall, I pity the foolperson who would have to do that :) (even with ginormous funding)

#3 Re: What happened to finstall?

Added on 2009-02-21T00:29 by Prudhvi Krishna Surapaneni

Can you explain why gui in java would be better in Java than in python.

And many OpenSource developers would like to work Python Gtk. But, not on Java.

I just want to know why Java

Thanks-

Prudhvi Krishna Surapaneni

#4 Re: What happened to finstall?

Added on 2009-02-21T17:06 by André Braga

+10e+64 for using Lua instead of Python, Java or C.

 

(and that's a big number!)

#5 Re: What happened to finstall?

Added on 2009-02-21T17:17 by Ivan Voras

Re: Java - it's a matter of productivity. The GUI (which is what the front end is all about) doesn't have enough code that could be made elegant by writing it in Python - it should look pretty and be usable.

The current front-end of finstall is PyGTK with the GUI designed by Glade. Before I started it I didn't realize how horrible both parts are when compared to commercial APIs and GUI designers (I actually have some experience building desktop apps on Windows). Java has a very nice designer (though in some parts not as nice as native Windows designers) in NetBeans' Matisse project.

I just felt very cramped and restrained while working with Glade. I think I would simply be more productive by using a more polished environment.

Another thing is that with Java the end-user system (i.e. the front-end LiveCD) doesn't need Python, GTK and their zillion dependant libraries.

It's not that unusual to have an OS installer in Java - the new GUI Solaris Installer is also in Java. (I swear that I'm not trying to emulate Solaris :) )

#6 Re: What happened to finstall?

Added on 2009-02-21T17:25 by Ivan Voras

Re: Lua: I agree. It's incredibly easy to embed and enhance in a way that could support the FreeBSD environment - it's practically trivial to add C functions like sysctl to the language, and a large framework like GEOM could be supported by implementing special classes (tables) that would do complex work behind the scenes.

Writing a generic LUA adaptation for FreeBSD (not for finstall but as a general purpose scripting language option for FreeBSD) is on my TODO list, if I ever get the time or money :)

#7 Re: What happened to finstall?

Added on 2009-02-22T02:24 by Andrew Lankford

Stick with getting your PhD and making enough moolah to put food on the table.  Installation with Python-GTK?  Java?  Madness!  The installer should NOT be larger than the entire base install.

#8 Re: What happened to finstall?

Added on 2009-02-22T02:32 by Ivan Voras

It is weird but only when you look at it from the hardcore sysadmin perspective. The idea was to make the nice front-end for the desktop users (though this has become a category which is now probably better handled by the PC-BSD...), and have the advanced backend and the whole network-scriptable model for advanced users.

#9 Re: What happened to finstall?

Added on 2009-02-22T05:45 by Steve

What about using QT?

#10 Re: What happened to finstall?

Added on 2009-02-22T11:23 by Ivan Voras

I don't know Qt, nobody has ever expressed interest in doing it in Qt so no, currently it's not an option.

#11 Re: What happened to finstall?

Added on 2009-02-22T23:27 by gonzo

In my opinion the default sysinstall does its job. While being text-based, it is easy, usable and stable.

The GUI is always a plus, but until it is created the sysinstall must be enhanced.

I just wonder why the sysinstall is left without acompanyning the new functionalities offered by the new FreeBSD releases such as configuring some GEOM services such as mirroring, encryption or ZFS partitioning... 

#12 Re: What happened to finstall?

Added on 2009-02-22T23:30 by Ivan Voras

Sysinstall is AFAIK effectively "no-man's land", nobody's actively developing it and new features are not developed for it because it's, at the current time, too complicated to do so (too old code). Thus the ideas for new installers...

#13 Re: GUI vs text

Added on 2009-02-22T23:34 by Ivan Voras

The "GUI vs text" debate should be viewed in comparison to what the userbase wants and to what the other projects are doing. For a trivial example, one thing that FreeBSD doesn't have is a Unicode / UTF-8 console, so making the installer more user-friendly by including other languages (see practically all Linux distributions) isn't possible with a console installer. Since Solaris has moved on to a GUI installer, and it's traditionally a very server-centric platform, I think that, even when disregarding "enterprise Linux" distributions (RHEL, SUSE), users have come to expect to see GUI installers even with server systems. I'm not claiming it's a good thing, just stating what's out there.

#14 Re: GUI vs text

Added on 2009-02-23T23:57 by mato

I must admit I hoped this project would be the one to succeed finally.  Although I'm not watching the scene that much I've noticed several attempts on creating a new installer for (Free)BSD.  And every time they are written from scratch and none of them has been finished.  :-/
Maybe it's time to think about the reasons behind this first and then to try and plan how to solve the issue.
And regarding Qt, PC-BSD has already delivered functional installer even though much simpler than sysinstall.  But maybe the best thing would be to build upon it or some other that has never been finished.  I believe I even noticed a LUA based installer some years ago.

#15 Re: GUI vs text

Added on 2009-03-17T06:46 by irkky

I like the Lua idea as well. It's a simple, fast language that can be tied into C code easier than anything else.

However...

>all nontrivial GUI toolkits are LGPL anyway.

Not so!

http://en.wikipedia.org/wiki/Enlightenment_Foundation_Libraries

They include a widget toolkit, and Enlightenment is BSD-licensed

 

 

#16 Re: GUI vs text

Added on 2009-04-22T22:53 by Mark

Why not using a MiniD scripting language? It's a realy nice language.

Its website is:

http://www.dsource.org/projects/minid

#17 Re: GUI vs text

Added on 2009-06-26T00:38 by primatephreak

irkky, I like your idea concerning Enlightenment, I'm really insterested in creating a custom Enlightenment based FreeBSD release. Creating an installer with the EFL would be brilliant! Thx!

Post your comment here!

Your name:
Comment title:
Text:
Type "xxx" here:

Comments are subject to moderation and will be deleted if deemed inappropriate. All content is © Ivan Voras. Comments are owned by their authors... who agree to basically surrender all rights by publishing them here :)