Student Application Template
Name: Rohan Kulkarni
Contact/Email:
- IRC Nick: rohan/ahknor
- Timezone: India/Asia GMT+5:30
Background: I am pursuing my MS in Comuter Science from IIIT, Hyderabad, India. During the course of my B.Tech and MS, I have been working on linux.
I have worked with Scilab in GSoC 2012 building a REST cilent.
I am well versed with Python and will use it for writing the tool in the project.Project title: OpenRC init system in Debian
Project details: This project aims at converting the current sysv-rc init scripts to OpenRC format. The existing sysv-rc scripts are old, clumsy, verbose and full of boilerplate. There have been many debates about the replacement for sysv-rc init system and the main alternatives are systemd and openrc.
OpenRC seems as favorable choice since it is built on top of sysv and compatible with the existing init scripts. Now in order to package OpenRC scripts for Debian, we would require a mechanism for existing init scripts to work with OpenRC.
The dependencies between init scripts are provided by the LSB headers. One of the major goals of this project would be to parse the LSB header and provide the dependency ordering to OpenRC. It would comprise of properly mapping the dependency tags from the sysv-rc init scripts to appropriate OpenRC tags in the ‘depend()’ function of the corresponding OpenRC script. The other tasks involve providing support for start, stop and restart functions the OpenRC script.
For example,
The following tags are required to build the ‘depends()’ function of OpenRC script,
depends(){
use: These dependencies are extracted from the ‘Should-start’ keyword of the corresponding lsb header of the sysv-rc script.
need: These are extracted from the ‘Required-start’ keyword.
provide: These are extracted from a similar ‘Provides’ keyword.
}
The ordering between the dependencies can be handled using the ‘before’ and ‘after’ tags.
The lsb init-functions/start-stop-daemon would be used in generating the ‘start()’, ‘stop()’, ‘restart()’ OpenRC functions. The required arguments(pid, path etc.) too need to be extracted from the sysv-rc init script.Synopsis: This project aims for a convenient migration from the old sysv-rc scripts to OpenRC scripts using the proposed tool.
Benefits to Debian: The benefits of OpenRC over sysv-rc are very clear. This will provide smooth conversion of existing init.d scripts to OpenRC and eventually help OpenRC replace sysv-rc.
Deliverables: A tool that will output OpenRC scripts when provided with sysv-rc init script. A document describing the features provided and possible further extensions of the tool.
Project schedule:
17 June - 30 June: Discuss with the community with the requirements and their inputs. Understand and explore the details of sysv-rc scripts and corresponding implementations in OpenRC
1 July - 20 July: Come up with a basic scripts conversion tool from sysv-rc to OpenRC
21 July - 28 July: Test the tool for the important scripts(sshd, acpid, crond, etc.) and improve it.
Mid-term Evaluation: Expected to build a basic tool which would generate correct working OpenRC scripts for major services.
29 July - 25 Aug: Will create a public repository allow the community to use it provide feedback, which in turn will help in accurately converting scripts on a bigger scale.
26 Aug - End: Documentation - User and Developer. Cleaning and refining the code.Exams and other commitments: No.
Other summer plans: No other plans than working on GSoC.
Why Debian?: Would provide me an opportunity to work with very large community of opensource developers and make a contribution to it.
- Are you applying for other projects in SoC? No.