bpup!

The toolchain building script is finished, tested and fully usable. It builds a distro building suite, which consists of Binutils, glibc, GMP, MPFR, GCC, Ncurses, Bash, bzip2, BusyBox, diffutils, Gawk, gettext, Grep, gzip, M4, Make, Patch, Perl, Sed and Tar.

The result can be used with chroot: it allows you to compile final versions of all your packages. Later, I’ll add an option to build an ISO from them maybe. Currently, I’m writing the second stage – a script that uses this suite to build the actual distro packages.

Maybe I’ll even mess with Puppy’s Woof: theoretically, it should be possible to use all those packages with Woof, but I must finish the package building script and write a script that compiles X.

Comments Off
Mar 20th, 2010 | Filed under Uncategorized
Tags: ,

PAUSE

I paused Rabbit development for a week or two, as I’m very busy. I’ve got many things to do in the upcoming week … In my spare time, I’m writing a script that automates the construction of the toolchain.

I still don’t know whether it’s possible to write a script that uses chroot and continues to run inside the chroot’ed environment, I’ll do some experiments with this … If it proves to be reliable, I’ll extend the script to construct parts of the final system, at least the core.

The script is based on LFS, but with many many modifications to make it easier and simpler. Also, it uses different methods for some things, to make sure it doesn’t kill the host system: all the work is done with a regular user.

Currently, it is able to construct a basic cross-compiling suite, that is used to compile the final system’s packages. You just give it the package versions and it does all the dirty work for you.

There’s only three problems so far:

  • The script needs permissions to create a symlink in /.
  • The script needs the LFS patch for GCC.
  • The script automatically sets the minimum kernel version supported by glibc to the kernel used for the distro, so I can’t test the toolchain on my Arch – it uses the stable 2.6.32.x instead of the early 2.6.33.x kernels.

It’s quite stupid, I know, but it’s fun. I think I’m going to do a 64-bit build of Rabbit when I get X and JWM ready. I want this thing to be a simple replacement for projects like T2: it saves time and automates all the hard work. As I said, if the script can run inside a chroot environment, I can make it build the whole system instead.

The biggest issue with this script is the fact that the whole thing is static, as things change, the script must be changed. The only way to solve this problem is creating some scripting mechanism or XML-parsing functions that read a set of actions to perform on each step and translate it into Bash syntax or something.

This can be easily done with Python: I’ll consider this. Just imagine the endless possibilities this approach offers – you just give it the commands LFS tells you to run, without all the explainations, and it does everything automatically.

Comments Off
Mar 17th, 2010 | Filed under Distros, Techy
Tags:

Rabbit 605

Working on Rabbit build 605: I wrote a simple package manager that is able to download packages from the Rabbit repository. All Rabbit package come in a specieal format named Carrot (<name>-<version>-<revision>.carrot), and the package manager itself is named CarrotGet, at least for now. It  knows how to deal with packages on the persistency partition and how to download packages with their dependencies.

I still need to fix the dependencies for all packages, as some packages have hidden dependencies that cannot be seen using ldd.

Rabbit became my second desktop distro, I use it for reading and writing. It’s really fun to use it.

When the package manager is usable, I’ll hunt down all annoying issues in 605 and release it as another testing ISO. For 606, I think I’ll try to compile X and maybe even kernel 2.6.27.45.

EDIT: 605 is ready. I still need to find the right dependencies of all packages and fix the biggest issue with CarrotGet, it doesn’t know how to install each package just once. It knew how to do this basic check previously, but the version included in 605 is cleaner and lacks this functionality.

CarrotGet and Rabbit screenshot

CarrotGet and Rabbit screenshot

Comments Off
Mar 11th, 2010 | Filed under Distros
Tags:

Rabbit > Katan?

I got everything from Katan compiled for Rabbit, with some differences:

  1. libsamplerate is included.
  2. Calcurse is missing.
  3. Locales and documentation are included.

I’m still working on Vim. Without Vim, the extensions are 115 MB. It looks quite promising, everything works well so far. All packages are latest, some GNU packages are patched with their Debian fixes.

When Vim is ready, I’ll boot into Rabbit and start writing the Puppy documentation through Nano and Vim, while MOC plays some good rock music.

I also want to some memory requirement tests: Rabbit needs about 10 MB to run, but to decompress the initramfs, it should require more than that – I want to examine this.

Comments Off
Mar 6th, 2010 | Filed under Distros
Tags: ,

/dev/null Problem Solved!

Rabbit had a problem with /dev/null: it wasn’t writeable, so some applications couldn’t run. I tried almost anything, from the init scripts to /etc/profile.

At some point, I decided to disable udev, and somehow it solved the problem. I found out that somehow I deleted /lib/udev, and that caused the problem, which annoyed me for 3 days.

Now I’m busy with compiling everything I had on Katan, for Rabbit. Also, I’m starting a huge Puppy encyclopedia, that will also apply for Rabbit. When everything is ready for Rabbit, I’ll try to run stuff on Puppy … sounds useful.

Moreover, I want to try the 2.6.27.45 kernel on Rabbit. It should be ultra-stable.

Comments Off
Mar 6th, 2010 | Filed under Distros
Tags: ,