GSOC 2015 application

99 views
Skip to first unread message

Djimeli Konrad

unread,
Mar 3, 2015, 3:56:32 PM3/3/15
to native-cli...@googlegroups.com
Hello

        My name is Djimeli Konrad and I am interest contributing to Portable Native Client for the Google summer of code 2015. I am interested in porting substantial open source project and would like to know if this is a priority project to work on, for GSOC 2015. My experience with open source has to do with minor bug fix and development of VRML importer for BRL-CAD. I am currently familiarizing myself with PNaCl and I would like to know what are specific requirement for this project.

Thanks
Konrad

Bradley Nelson

unread,
Mar 3, 2015, 7:54:07 PM3/3/15
to Native Client Discuss
Hi Djimeli,

Thanks for your interest.

Porting to Portable Native Client is a lot like porting to the architecture of a machine different than the one you're running on.
Typically (though not always), you end up adding or applying a cross-compile build to a project.

You'll need a Mac, Windows, or Linux machine capable of running the NaCl SDK:

You'll want to check out our ports repository naclports:
This is probably where your resulting port will live.
It's also a good place to look for a template to base your port on.

In addition to getting the build of your port to use the PNaCl toolchain, you'll frequently need to work around incompatibilties between the API support of the PNaCl toolchain and libraries and the project you are porting.
This usually requires some understanding of the language the project you are porting is written in, and the ability to figure out its codebase.

A key consideration, is which project or projects you are interested in porting.
Currently we have decent SDL and X11 support, as well as core POSIX. A good choice of port would be one doesn't have a lot of dependencies beyond the ones currently in naclports, as anything else required will also need to be ported. C/C++ ports are usually more interesting (though there are likely exceptions), as programs written in interpreted languages often will work well or not based on the quality of our interpreter ports, rather than anything particular about the project. Compiled languages other than C/C++ are possible, but involve either converters to C, or substantially more work in porting a code generator for that language.

We currently have several toolchains available with Native Client. Ports in naclports work with some or all of these toolchains (ideally all).
Many, but not all, ports we've done followed the following path:
- Ported to our NaCl glibc toolchain (x86 only currently) - as this LibC is the most complete and compatible one
- Ported to our NaCl newlib toolchain
- Ported to the PNaCl toolchain (which is also newlib based)

If the port you're thinking of has UI requirements beyond what X11/SDL or a bare console can provide, additional Javascript side work will also be required.

Did you have a particular project to port in mind? I can probably give you a more detailed sense of what would be required for it.

-BradN

--
You received this message because you are subscribed to the Google Groups "Native-Client-Discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email to native-client-di...@googlegroups.com.
To post to this group, send email to native-cli...@googlegroups.com.
Visit this group at http://groups.google.com/group/native-client-discuss.
For more options, visit https://groups.google.com/d/optout.

Djimeli Konrad

unread,
Mar 6, 2015, 8:59:57 PM3/6/15
to native-cli...@googlegroups.com
      Thanks for the directive. As of now I have been familiarizing my self with the functionality of portable native client and getting it fully set up on my computer. I have been able to work around the basic tutorials, but have not successfully build any of the naclports. This is because I tried to download some individual port with their upstream source archive and the patch but this did not work out well since even after patching I still could not find files like nacl_main.h . I am presently doing a checkout for naclport with hope of compiling the ports.
       As for the project I have in mind, I would like to start working porting Gtk+ with requirement like glib(already ported on naclports), pango(already ported on naclports), gdk-pixbuf and atk. What would be some specific requirement for working on this port.

Thanks
Konrad

Bradley Nelson

unread,
Mar 8, 2015, 4:39:40 PM3/8/15
to Native Client Discuss
On Fri, Mar 6, 2015 at 5:59 PM, Djimeli Konrad <djko...@gmail.com> wrote:
      Thanks for the directive. As of now I have been familiarizing my self with the functionality of portable native client and getting it fully set up on my computer. I have been able to work around the basic tutorials, but have not successfully build any of the naclports. This is because I tried to download some individual port with their upstream source archive and the patch but this did not work out well since even after patching I still could not find files like nacl_main.h . I am presently doing a checkout for naclport with hope of compiling the ports.

I recommend you use the build scripts in the naclports repo.
Particularly bin/naclports
A good option to build with is:
bin/naclports --force --from-source install <package-name>

Often the patches we have are insufficient on their own and the build.sh file in each port includes a range of other options that need to be passed to a given port's build system.
The build.sh in turn relies on a good bit of common plumbing.
 
       As for the project I have in mind, I would like to start working porting Gtk+ with requirement like glib(already ported on naclports), pango(already ported on naclports), gdk-pixbuf and atk. What would be some specific requirement for working on this port.


Gtk+ would be an excellent choice, though it might be worth broading the scope to include some program that depends on it. Gimp comes to mind, although there's a good deal more required for it (dbus for instance if I recall). There's likely a smaller application out there that uses it, though I don't know one offhand.
Reply all
Reply to author
Forward
0 new messages