wiki:meegoApt

Porting apt-rpm to the Meego platform

Project details

Licensing

GPL V2 (the current license used for all Caixa Mágica's internal projects)

Purpose of this project

Meego currently has a package manager based on libzypp which is good but lacks a few advanced features which Caixa Magica already implemented in it's own tree of apt-rpm.

Libzypp uses SAT to provide a better dependency resolver. Caixa Magica participated in the research that originated SAT and also later PBO which improves on SAT a bit and provides some additional interesting features, so it was decided that it would be nice to spur innovation with a bit of competition, by porting apt-rpm to Meego.

Project description

apt-rpm with all it's features and dependencies will be ported to the Meego platform.

Roadmap

  • Phase 1: Workspace configuration

Summary: Meego-SDK installation and configuration; Caixa Magica 14 installation and configuration.

Deadline: 14.07.2010

  • Phase 2: Initial porting steps

Summary: Check apt-rpm dependencies availability within Meego; Compile latest apt-rpm from git in Meego Without errors.

Deadline: 04.08.2010

  • Phase 3: Regression testing

Summary: Test basic functionality; Test advanced functionality, namely Rollback, DUDF Reporting and PBO advanced dependency resolver.

Deadline: To be defined

Risk Mitigation, Monitoring and Management Plan

Risks

  • apt-rpm sees very little development outside Caixa Mágica which is source of risk, since compatibility must be assured between the ever evolving system libs of Meego and apt-rpm.
  • this being my first C++ project, I'll sometimes take longer than necessary to debug a specific bug specially being C++ so verbose.
  • the complexity of apt-rpm's source is a risk factor when I'm trying to understand it, and simultaneously debug it.
  • some functionality like PBO is under heavy development so it's a moving target to test.

Interaction with the community / Incentives to collaboration

It is our intent to spur cross-innovation between libzypp and apt-rpm, thereby involving the community.

Mentor information

Company

Caixa Mágica Software

Company description

Caixa Mágica is one of the open source projects with most historical background in Portugal.

Born in a college environment at ISCTE in 2000, has been growing steadily for the last eight years, supported by a set of visions, mission and values and a strategy the help maintaining the focus on open source technologies.

In 2004, a spin-off company started, being held a strong relationship with ADETTI through a contract of shared development. The company Caixa Mágica Software had positive results in 2004 and has been growing 30% each year.

Today, Caixa Mágica has 15 to 20 collaborators distributed along three main areas:

Product: engineering team that develops the Linux Caixa Mágica distribution. Currently, about 900 units are sold each month, spread along online sales, store and special programs.

Outsourcing: projects that highly demand open source technologies and where our professionals are an added value.

Research: European and National projects that feed technology and competence to other business units. At the moment we have a cycle of three years from the initial research to product availability.

Added to the three main areas, Caixa Mágica has three more areas of smaller dimensions but growing: Training, Professional Services and Appliances.

Mentor

André Guerreiro

André Guerreiro is a Technical Consultant at Caixa Mágica. At the moment he is responsible for maintaining stable versions of the Linux Caixa Mágica distribution and also develop new versions of this distribution; He is also a senior researcher at O2H lab in ADETTI, researching operating systems and security; He is the current maintainer of apt-rpm.

Trainee details

Name

Duarte Silveira

Past experience

  • Formal training in C, assembly, SQL and Java;
  • Self-taught knowledge in BASH script, PHP and Python;
  • Good familiarity with Linux, and Free Software development tools.

Current situation

Attending his third year of Communication networks Engineering in IST-Taguspark, UTL.

Development process used

  • Agile development strategies;
  • Test driven development;
  • Active development line combined with funtionality development branching patterns.

Motivation for the project

I've always wanted to give back to the wonderful Free Software community, and this is a major opportunity to do so, while embedded in a company which is a perfect fit for me and what I believe in, with relation to software; It's also a great opportunity to get involved in making the future of mobile computing which I believe Meego to be; It's a chance for me to develop my Computer language skills adding C++ to my portfolio.

Project Documentation

Steps to install

  • Download and install the Meego SDK
  • Zypper install all dependencies mencioned below
  • Get the jsoncpp src.rpm for Meego from it's bug report
  • rpmbuild it
  • install the generated rpms with rpm -ivh
  • Get the apt src.rpm for Meego, attached
  • play with the sources if you like or just rpmbuild it
  • rpm -ivh the generated rpms
  • to activate dudf reporting you'll need to tweak the apt.conf uncommenting the dudf related lines

Build Dependencies

  • git
  • sqlite-devel
  • rpm-devel
  • libxml2-devel
  • ncurses-devel
  • bzip2-devel
  • popt-devel
  • libtool
  • lua-devel
  • scons
  • gmp-devel
  • jsoncpp (see bug-report)
  • minisat+ (see bug report) [only necessary if/when apt-pbo works]

Project Results

Notes

  • apt-pbo isn't working at all in Meego at the moment, and there's no prediction about when it will.

Benchmarks vs Zypper (Comparable features)

Operation Zypper AptRpm
Update/refresh 5s 4s
Search 1.05s 1s
Install 2.9s 10.4s
Remove 2.8s 10.8s

Git repository

jsoncpp bug-report (repository)

minisat+ bug-report (repository)

Last modified 8 years ago Last modified on Oct 11, 2010, 12:17:21 AM

Attachments (1)

Download all attachments as: .zip