This is an old revision of the document!


This is a work in progress, not the final version of this wiki.

During this project I will port the following to Capsicum:

  • bzip2
  • xz
  • zip
  • libavcodec

In the process some libcapsicum refinements will be done. This way I can make as easy a possible the process of porting applications to Capsicum.

In the end, I will write some documentation on how to port applications to Capsicum, trying to expand the part on that same topic in the Capsicum paper.

(Two or three paragraphs about your project, the problem you are trying to solve, and any obstacles you may hit.)

I will do the project working in HEAD, using the latest libcapsicum interface. (Details as to how you intend to approach the problem, if applicable. May include ideas as to how to break the problem down into smaller parts, or notes on research you need to do before settling on your final approach to solving the problem)

(5-10 milestones, with dates, indicating when you hope or expect to be able to complete features. This section is mandatory. Please negotiate these with your mentor to make sure you're not under- or over-estimating the amount of work to be done. Please also make sure the following four dates are included within your milestones)

  • Community bonding: I will learn the different strategies for porting applications to Capsicum, by reviewing the diffs or the ported code.
  • June 17: Start of coding.
  • July 1: End porting bzip2 to use Capsicum.
  • July 15: End porting xz.
  • July 29: End porting zlib.
  • July 29-August 2: Mid-term Evaluations
  • August 5: I will learn about libavcodec's structure, and start with the porting work.
  • August 25: I will end porting libavcode, which could then be used transparently.
  • September 8: Here, I could do two things:
    • Update the Capsicum-powered Chromium.
    • Search some library used by many applications, and port it.
  • September 15: Performance testing and evaluate if the Capsicum-powered libavcodec should be on FreeBSD ports by default, and write some patches for that.
  • September 16: Write documentation/recomendations on how to proceed on porting software to Capsicum, as well as the required mindset while programming with Capsicum.
  • September 16: End of coding (soft)
  • September 23: End of coding (hard)

(List of steps you plan to use to test your work, as discussed with your mentor) Every ported program/library will be tested accordingly, and checked that capsicum works as intended with them (for instance, doing forbidden operations with the ported code). In the end, I will also do a performance comparison with every application.

If they seem fast enough, they could even be used in the base system.

(Link to your code, for example https://socsvn.freebsd.org/socsvn/soc2013/dpl/

Links to the manuals are from FreeBSD 9-CURRENT

(Links to any external resources, work, research etc which may be useful to you or to anybody wanting to understand your work) *Capsicum official webpage *capsicum(4)

  • summerofcode2013/capsicumvideocodecs.1370598448.txt.gz
  • Last modified: 2013/06/07 09:47
  • by DanielPeyrolon