Student Application: Gilbertas Matusevicius
Name - Gilbertas Matusevicius
Background: I am a M.S. computer science student at Vilnius University, Lithuania. I've used different Linux distributions for more than 7 years now, and have understanding of fundamental Unix concepts, and basic knowledge of main development tools in Unix environment (git, make, Vim). I have strong programming background in C (especially in Unix system level programming: I/O, processes, threads, IPC, etc.), Perl and Unix shell (writing scripts).
Project title - OpenRC init system in Debian
Project details: Debian System-V-like runlevel change mechanism sysv-rc is old and should be replaced by something more modern. While other Linux distributions gone with Upstart or systemd, there is no consensus (see http://lwn.net/Articles/512719/) what should be used in Debian. One option for sysv-rc replacement is OpenRC, which is default init system in Gentoo. OpenRC is written with portability in mind (it doesn't have dependencies available only in Linux), which is huge bonus for systems like Debian GNU/kFreeBSD. Unlike systemd, OpenRC works with default init daemon and it is not a replacement of /sbin/init. This means that Debian current /sbin/init remains and only scripts eco-system (/etc/init.d/rc) and tools to work with scripts are replaced. Since OpenRC doesn't support LSB headers which are currently used in Debian init scripts, there are two ways to solve this problem:
- Write/port LSB support in OpenRC
- Write a conversion script which converts LSB format to OpenRC format.
- Writing LSB parser from scratch would be difficult and time consuming.
- Porting LSB parser from insserv is probably not an option due to licensing differences (insserv is GPL, OpenRC is BSD)
- There is already written proof-of-concept perl script lsb.pl (git://anonscm.debian.org/collab-maint/openrc.git) which converts from LSB to OpenRC form.
- write a conversion script (probably by augmenting lsb.pl) which would seamlessly convert Debian init scripts with LSB headers to OpenRC form.
since Gentoo and Debian configuration files and scripts are different, OpenRC system should be adopted to do things Debian way. This work is already started (see http://wiki.debian.org/OpenRC)
- update-rc.d internally uses insserv to parse LSB and doesn't work with OpenRC. So maybe it is possible to completely replace update-rc.d with Gentoo/OpenRC rc-update (?)
Synopsis: OpenRC init system port to Debian.
Benefits to Debian: Debian will get modern, fast and portable init system.
Deliverables: A working OpenRC package, including OpenRC scripts which comes with it, and also for basic daemons commonly used (like for example: sshd, acpid, crond, etc.) so that OpenRC can be used to replace sysv-rc, including a system to convert existing init.d scripts.
Project schedule: since this project requires lot of hacking it is difficult to give exact estimates, so I can provide only very high level schedule:
- May - mid June:
- Communicate with mentor and all co-mentors, ask questions, discus ideas, etc.
- Refamiliarize myself with Debian sysv-rc and Gentoo OpenRC systems, configuration file differences, LSB format, etc.
- mid June - September: hack, sleep, eat, hack ...
- May - mid June:
Exams and other commitments: June 4th is my master thesis presentation day.
Other summer plans: No plans after thesis presentation in June 4th.
Why Debian?: Why not?
- Are you applying for other projects in SoC? No