Screenshots of development

I have been working on a couple of different projects over the last few days, but I have been able to make a few things for relinux, one of which is the configuration GUI:

Main:

As you can see, the layout is better than before. Also, everything got changed into widgets, so here are some of them:

Another thing I have worked on is a website for relinux 0.4: http://mijyn.github.com/relinux/

Let me know what you think of these!

Update on progress

After 11 days of work, the core is finally done (though completely untested)! Now, we are at the stage of hooking everything up together, but I decided to work on the GUI a bit too.

Here is the current main window

And the auto-generated configuration tab:

As you can see, it is a bit messy, but that will get fixed later on.

Casper overriding live username and hostname settings

I had a few people complain about this problem. In a nutshell, when you decide to change the live username and hostname, casper does not recognize it.

This is caused by a commit made by the Ubuntu installer team: http://launchpadlibrarian.net/90252463/casper_1.297_1.298.diff.gz (mythbuntu did get changed to $FLAVOUR right after).  You can also see this reflected in /etc/casper.conf (sorry about the lack of empty lines, wordpress does not allow it):

# This file should go in /etc/casper.conf
# Supported variables are:
# USERNAME, USERFULLNAME, HOST, BUILD_SYSTEM, FLAVOUR
export USERNAME="ubuntu"
export USERFULLNAME="Live session user"
export HOST="ubuntu"
export BUILD_SYSTEM="Ubuntu"
# USERNAME and HOSTNAME as specified above won't be honoured and will be set to
# flavour string acquired at boot time, unless you set FLAVOUR to any
# non-empty string.
# export FLAVOUR="Ubuntu"

So what do you do about it? One way is to edit the /etc/casper.conf and just change $FLAVOUR to what you wish (and have username and the hostname the same), which I would recommend. But if you really need the username and the hostname different, you can edit /usr/share/initramfs-tools/scripts/casper, and remove this line: sed -i "s,USERNAME=.*,USERNAME=\"$FLAVOUR\",g; s,HOST=.*,HOST=\"$FLAVOUR\",g" /etc/casper.conf (do not copy and paste this into your text editors find function, as wordpress breaks the formatting of this line, so it looks different).

Anyways, reason why I brought this up now is because I’m actually at that stage of writing relinux 0.4! This means that I will have finished the untested code done pretty soon.

Some ideas we had

In the last few months, we were thinking about stopping relinux and starting a new project (we then cancelled the idea afterwards), but we had a few different ideas for the other project, so I’d like to share some of them with you.

  1. Web interface for collaboration. This would mean that the computer building the ISO was actually a server and sent SSH and VNC access to the website, where all the collaborators could work on the system. This, of course, has its downfalls, but I think it’s a good concept.
  2. As we were experimenting with more resource-hungry and heavyweight languages (Java and Ruby), we were thinking of using a different way of making the ISO. Instead of doing all of the configuration on the system who makes the ISO, we were thinking of having another machine do all of the work, generate a “custom weaver” (i.e. the tool that makes the ISO), and run that on the machine that generates the ISO. Again, this has its downfalls, and it will probably not land in relinux.
  3. Make all communications from the ISO generator to the interface (GUI or TUI) utilize sockets. This idea was killed pretty soon as it is totally overkill. We replaced this by using common variables that keep on getting changed by the threads.
  4. Threading. As I mentioned 2 posts ago, threading will be included in 0.4 (I hope even in the first alpha, but might be delayed).

If you have any ideas, let us know!

Timeline draft

I made a timeline for relinux in my head a long time ago, but for some reason I never got around to sharing it. So here it is:

  • 0.1: initial release + basic functions
  • 0.2: actual first release (with full functions)
  • 0.3: feature release
  • 0.4: rewrite the whole codebase
  • 0.5: port to other official distros (fedora, debian, gentoo, etc…)
  • 0.6: feature release (finish up features from 0.4)
  • 0.7: TBD
  • 0.8? 0.9?
  • 1.0: TBD, something awesome 😀

Update on rewriting the codebase

So now I’ve started to write the new codebase for relinux (you can see my progress here: https://github.com/MiJyn/relinux/commits/). Though there are many technical changes, there are a couple of changes that will be rather obvious. First, it will use smart threading. This theoretically means that it will run as fast as the number of free CPU’s you have (so if you have 2 free CPU’s, relinux will run 2x faster). But relinux has only one section that can multithread, so this will not really affect the speed that much (might run 25-50% faster). Second, relinux will be split up into many different tools, as opposed to only having relinux and wubick. One new tool that will probably be made is a way to change Ubiquity (the installer). It will allow you to add new screens, change existing screens etc…

Anyways, sorry for the short and badly formatted post. Back to coding 😉

Relinux 0.4 is under way (finally)

Yes, finally relinux 0.4 is under way! I’ve worked out the basic foundations of it and now I’m working on both the GUI and the base code (you can check the progress over here: https://github.com/MiJyn/relinux)