SchoolTool packaging for NEXS

SchoolTool is a suite of free administrative software for schools. Since it can be installed easily and used with no licensing fees, SchoolTool can be used by schools for a single purpose, by individual teachers or small teams within schools, or as a whole-school comprehensive student information system, encompassing demographics, gradebooks, attendance, calendars and reporting. (Source: http://schooltool.org/)

In our continual effort of improving our systems and providing tools to support digital education, we were presented with a new requirement — providing schools a software based tool for classroom management and grading. After evaluating a few available tools, we encountered SchoolTool which was the foremost candidate meeting most of our criteria:

  • Web based
  • Different user levels: admins, teachers, students
  • Student information system
  • Calendars
  • Attendance
  • Grading
  • Localizable
  • Open Source

Though being the right candidate, SchoolTool had a few of the shortcomings for us — the tools is readily available (as a set of installable package) for Ubuntu only and had a lot of dependencies. As our plan to integrate the tool in the NEXS (School Server software based on Fedora Linux) infrastructure, a lot of packaging work had to be done, which included:

  • Developing a hierarchy of dependent packages for schooltool and its plugins.
  • Finding source tarballs for each packages.
  • Writing RPM spec files for each package and build binary RPMs against the spec.
  • Testing the setup.

It was daunting to perform all of the tasks manually, so we followed a semi-automatic approach — a script based automation and manual intervention where necessary. But writing spec files for building RPM packages for each dependency had to be manual, meanwhile a difficult task as well. Hopefully, we need not have to author spec files for around 80 dependencies; thanks to Robin ‘Cheese’ Lee for writing a few of them. Nevertheless the rest of them had to be authored, built against and tested; and it took us a good time performing these tasks iteratively until we arrived a stable stage. Now we are ready to pilot SchoolTool (localized in Nepali) in a few of the OLPC deployed schools.

We have built binary RPM packages for Fedora 13 and Fedora 9, for both 32 and 64 bit architectures. Additionally to encourage developers to test their own builds and to contribute in porting the tool to Fedora based distributions, we have made the packaging sources available under non-restrictive license. If you would like to test my builds, the RPM repository is hosted at http://ftp.schooltool.org/rpms/. Also there are ready to use repo files for Fedora’s yum package manager. To set up the repository:

The packaging sources (spec files and patches) are available at my git repository at http://gitorious.org/schooltool-rpm/schooltool-rpm/. We would like to see more people testing our builds and our specs and reporting back bugs. HAPPY TESTING!!