Find an idea you like? Want to propose your own? See the Getting Started Guide with GSoC:
https://fedoraproject.org/wiki/GSOC_2012
You may be interested in ideas from 2011, 2010, 2009 and 2008.
Further, last year accepted ideas from the Fedora Project can be found at GSoC 2011 web site
Students Welcome
If you are a student looking forward to participate the GSoC 2012 with Fedora, please feel free to browse the idea list which is still growing. Do not hesitate to contact the mentors/ contributors as indicated in this page for any related clarification. If you are new to The Fedora project, following material would help you to get started. Further please sign-up with the Fedora Account System(FAS) if you are willing to continue with the Fedora project. #fedora-devel
, IRC channel can be used to get instant support.
- The Foundation
- Fedora Documentation (Users/ Contributors)
- How to work with IRC?
- Fedora Account System
- Development
Supporting Mentors
Following contributors are also willing to support the GSoC 2012 program. (please feel free to add your self, attach the user page). Sometimes there should be some backing up mentors to mentor if the original mentor get busy with something for a short time period. In such case we need help.
Draft of an idea
Please add your idea as follows.
Project name
Status:
Summary of idea:
Knowledge prerequisite:
Skill level:
Contacts:
Mentor(s):
Notes:
!!!The draft was changed slightly, please add required field as required!!!
Idea list for GSoC 2012
Applications for desktop end users
These are coding projects that benefit end users of the Linux desktop.
Integrate Proxy Settings and Network Connections(Locations)
Status: Proposed
Summary of idea: The system should use an appropriate networking profile (e.g. Proxy settings) for each network connection.
Gnome 2 had a concept of network locations in its Network Proxy configuration window. However, user should selected the appropriate location whenever he moves between networks. This idea is about providing an integration between NetworkManager and Desktop environments so that a user can create network profiles for each network location(connection) providing appropriate settings like proxy settings which is the main proposed setting here. NetworkManager can have a "Network Location" concept: for wireless networks, usually the name of the network (ESSID) is usually enough. For wired connections, DHCP servers can and usually do provide network's domain name, which can be used as the name of the location. It is nice if a user can associate each network location with a network settings profile which will be used whenever the user is connected to that network automatically. So, when you connect to a network, a corresponding network settings profile is activated automatically.
Knowledge prerequisite:
Skill level:
Contacts: Hedayat Vatankhah
Mentor(s):
Notes: There is an entry with some description in NetworkManager TODO which should be considered for the implementation
Bringing the Fedora Desktop to the Cloud
Status: Proposed
Summary of idea: Aeolus is an umbrella project that provides an open source API which to control any number of backend proprietary cloud providers. It allows us to write tooling that is able to deploy, monitor, and manager instances to any cloud provider such as EC2 or OpenStack in a Free and Open Manner. We need more tooling to interface with the various Aeolus components from the Fedora desktop (or any other) in novel ways such as command-line and gtk-based applications to deploy instances to the cheapest cloud provider or the one with the fastest response time, to monitor running instances using various visualizations, and more closely integrate local data and code w/ that on the cloud.
Knowledge prerequisite:
Skill level:
Contacts: Mo Morsi
Mentor(s): Mo Morsi
Notes: Ping me (mmorsi on freenode) for more info about the Aeolus project. All the components which to build images for the cloud and control instances is in place and ready to go, just drop various bits (they are interoperable and interchangable) into an environment to be able to interact with the cloud, avoiding proprietary interfaces and vendor lockin.
Web hosting control panel
Status: Proposed - Draft
Summary of idea: develop a free alternative of cpanel / plesk control panels, 100% compatible with fedora, and redhat enterprise Linux. written in python.
the control panel will be able to create domains and automatically setup apache, postfix, dovecot, mysql, postgresql bind etc...
Knowledge prerequisite: apache, postfix, dovecot, mysql, postgresql, proftpd, bind
Skill level: Medium
Contacts: itamarjp [AT] fedoraproject [DOT] org
Mentor(s): Dennis Gilmore Toshio kuratomi
Notes:
Assemble a toolchain for recording screencasts easily
Status: Proposed - Draft
Summary of idea: Creating screencasts on Fedora and post-processing them for upload should be easy and fool proof.
The Fedora Videos project has been launched to bring together a collection of screencasts that help people learn how to use Fedora. There's only one major hurdle, though. Capturing really good screencasts on Fedora, post-processing them to include an intro and outro and other effects, and finally exporting them to an open format is challenging. There are lots of different tools, but each one only gets you part of the way there and you have to be the glue to make it all work. And then there are the bugs.
The goal of this project is to assemble a toolchain (a recommended collection of software available in the Fedora repositories) and write a comprehensive tutorial for how to create an professional-looking screencast. That may included chasing down & fixing bugs in the existing tools, discovering new tools and getting them packaged and learning about techniques in the environment around the computer, such as how to select & setup a microphone or how to draft a good speaking script. One possible task in the project is to add sound recording support to the Gnome 3 desktop recorder. Currently, the desktop recorder only grabs the video of the screen.
The student will get support and advice from the Fedora Videos team since they are trying to learn how to create these screencasts.
Knowledge prerequisite: gstreamer, video and sound editing, blender
Skill level: Medium
Contacts: Fedora Videos Team
Mentor(s): ???
Notes:
Fedora On-Demand Build Service
Status: Proposed
Summary of idea: The idea is to make an on-demand Web-based build service (similar to Open Suse Build Service and Slax) which users/developers can use to make custom Fedora based distributions. The service should also also have a REST API (or similar).
Contacts: Amit Saha
Notes: Is anyone interested to discuss this and willing to mentor me? (Is there any existing effort attempting to do this? Any cons? )
Applications for programmers
Implement a Socket API for GlusterFS
Status: Proposed - Draft
Summary of idea: In transporting data across networks, in the case of writing and reading replicated and distributed data on GlusterFS, programmers could use a better method to send large amounts of data with lower latency and less overhead in comparison to standard methods, such as HTTP. This project would implement a socket API for GlusterFS so that programmers, using any language, could create low-latency applications that utilize GlusterFS for distributed storage.
Knowledge prerequisite: C, GlusterFS internals
Skill level: High
Contacts: johnmark [AT]redhat [DOT] com , abperiasamy [AT] gmail [DOT] com
Mentor(s): Anand Avati - Mentor, AB Periasamy - Co-mentor, John Mark Walker - Co-mentor
Notes: A student from Brazil is interested in participating
Implement a Cassandra/NoSQL Connector or Translator for GlusterFS
Status: Proposed - Draft
Summary of idea: In general, there is a need for the ability to store and access NoSQL data on general purpose distributed filesystems. Currently, there are a host of single-purpose methods for storing and retrieving NoSQL data, which are difficult to access from legacy applications. Creating a NoSQL translator for GlusterFS would help mitigate this problem and give developers more options for storing and accessing "big data" in a way that is accessible via a variety of standard toolkits and protocols.
Knowledge prerequisite: C, GlusterFS internals
Skill level: High
Contacts: johnmark [AT]redhat [DOT] com , abperiasamy [AT] gmail [DOT] com
Mentor(s): Anand Avati - Mentor, AB Periasamy - Co-mentor, John Mark Walker - Co-mentor
Notes: A student from Brazil is interested in participating
Linux kernel project
Implement nfs/fscache writeback cache
Status: Proposed - Draft
Summary of idea: Currently, Linux nfs only supports write through cache based on fscache/cachefiles. With wider adoption of SSD on nfs client side, it would be great for nfs to support writeback cache to speed up write intensive clients. This project would implement a writeback mechanism for nfs, which need to make necessary changes to kernel nfs, fscache and cachefiles modules.
Knowledge prerequisite: C, Linux kernel, nfs
Skill level: High
Contacts: bergwolf [AT] gmail [DOT] com
Mentor(s): Peng Tao - Mentor
Infrastructure for Fedora contributors and users
Implement a survey infrastructure for the Fedora Project
Status: Proposed - Draft
Summary of idea: Surveys are important to increase the quality of a service, and it is true for the Fedora project as well.(discussions [1]) In this project it is supposed to implement a survey infrastructure facility so that the contributors can use for various activities as per the need.
The concern is to develop a simple web base survey system OR implement a existing survey project and customized as required, so that contributors can easily create surveys and dig for results as well. Linking with the [FAS|FAS] is required. Further it should be compatible with anonymous and open ID so that if the creator set for those authentication the survey should allow those authentications. Statistics and other required reports can be obtained. So that it is easy to analyse.
Knowledge prerequisite: PHP, Python, Ruby are preferred, MySQL (database handling), experience with Lime Survey would be an advantage
Skill level: Medium
Contacts: kevin [AT]scrye [DOT] com , bckurera [AT] fedoraproject [DOT] org
Mentor(s): Kevin Fenzi - Mentor, Buddhike Kurera Co-mentor.
Notes: This idea is improving, please contact for upto-date details.
Design Hub: FLOSS Collaboration for FLOSS Designers
Status: Proposed - Draft
Summary of idea: Free software designers don't have a great set of tools to work with to collaborate with each other and with the community on their design work. With this project, we'd like to make progress towards fixing that. We have some disparate ideas / tools that we'd like to be integrated:
- Sparkleshare - a git-backed, Dropbox like system that will automatically check in and push files in project directly to a shared git repo
- Magic Mockup - a coffeescript/javascript you can insert into an SVG of mockups to enable interactive, click-through mockups (see a demo here
- Design Hub - an idea and a ruby on rails prototype of a web front end that could potentially serve as a front end to git repos with design assets *and* serve as well as a front end to magic mockup mockups in said repos
- Inkscape is our preferred design tool of choice; it would be great if it had some GUI integration with Magic Mockup, Sparkleshare, and Design Hub
Knowledge prerequisite:
Skill level:
Contacts: duffy at fedoraproject [dot] org
Mentor(s): Mo Duffy, Emily Dirsh
Notes: We can provide a development platform for the web UI at openshift.redhat.com. Also, note this project doesn't just benefit Fedora designers, but it benefits all FLOSS designers.
Implement a unit test framework for fedpkg and rpkg
Status: Proposed - Draft
Summary of idea: Unit tests are good. Testing is good. fedpkg and it's backend rpkg is a growing code base, gaining more and more contributors. It lacks a unit test framework which would be very beneficial to the code base for making sure contributions don't break the code in subtle ways.
Knowledge prerequisite:
Skill level:
Contacts: jkeating [AT]redhat [DOT] com
Mentor(s): User:jkeating - Mentor
Notes: This project is in python.
Insight use cases for calendar
Status: Proposed - Draft
Insight project requirement to be implemented. More details can be found at the wiki, Insight_use_cases_for_calendar
Knowledge prerequisite: Knowledge on PHP and Drupal would be essential
Skill level: Medium
Contacts: Paul W. Frields, Clint Savage & Insight Team
Mentor(s): María "tatica", Peter Tibor Borsa and Buddhika Kurera
Notes: -
Insight use cases for status and microblogging
Status: Proposed - Draft
These are use cases for status and microblogging services that we might want to provide through Insight. More details can be found at the wiki, Insight_use_cases_for_status_and_microblogging
Knowledge prerequisite: Knowledge on Drupal would be essential.
Skill level: High
Contacts: Paul W. Frields
Mentor(s): -
Notes: Students who are interested on this topic is highly requested to contact the mentors as the first step. Knowledge on Drupal would be essential.
isitfedoraruby.com
Status: Proposed
Summary of idea: Right now most Ruby programmers make use of the gem package management system to install Ruby libraries on their system. The Fedora/Ruby community works hard to convert these gems into rpms for inclusion in the Fedora stack, making use of various tooling such as gem2rpm. We are looking for more tools and capabilities around Ruby / Fedora integration, namely to reduce the overhead in supporting Ruby on Fedora and to promote Fedora as the de-facto platform for Ruby development.
As part of this, we would like to develop a isitfedoraruby.com website (similar to isitruby19 and other sites like it) to promote the ruby stack on Fedora and the Fedora/Ruby development effort, highlighting success stories, use cases, ways contributors can help, etc
Knowledge prerequisite:
Skill level:
Contacts: Mo Morsi
Mentor(s): Mo Morsi
Notes: Ping me (mmorsi on freenode) for more info. This project should be written in Ruby
Setup Gitlab as a front end for Fedora Hosted git repositories
Status: Proposed
Summary of idea: To setup Gitlab as a front end for git repositories at [fedorahosted.org].
Git has fundamentally improved the way that developers share code. The barrier to sharing code has virtually been eliminated. We are also seeing the emergence of a new dynamic called "Social Coding". There's no better example of this than Github.
Creating an environment to foster social coding, and a low barrier to sharing code, requires more than just git, though. A lot of what makes Github successful with git is the web-based front end. That explains why there is such a dramatic difference between Github and fedorahosted.org, and why many projects are moving to Github instead.
Fortunately, there is an open source application named Gitlab that provides much of the interactive functionality and usability that is found at Github. The goal of this project is to bring that experience to fedorahosted.org by setting up Gitlab.
This project will require working with the infrastructure team to get the necessary prerequisites installed, find a server to host the application and configure the existing projects to be wired to this interface.
Knowledge prerequisite: Ruby, git, Linux system administration (web servers, authentication)
Skill level: Medium
Contacts: Dan Allen (general), Vít Ondruch (packaging)
Mentor(s): Ranjib Dey (tentative), Seth Vidal (tentative), Dmitriy Zaporozhets (dzaporozhets), Ariejan de Vroom (ariejan)
Notes: This idea is definitely something the Fedora project is interested in pursuing. The work in this project will be carried on after the project, and is an opportunity for a longer-term involvement in Fedora.
See the discussion on the Fedora Infrastructure list about implementation details: http://lists.fedoraproject.org/pipermail/infrastructure/2012-March/011463.html
A demo of Gitlab can be found here: http://gitlabhq.com/demo.html
Dorrie: A web-interface for building Fedora spins/remixes
Status: Proposed
Summary of idea: Contribute to Dorrie, and make it more usable, add test coverage and deployable. Details at Dorrie.
Knowledge prerequisite: Python, Django
Skill level: Intermidiate
Contacts: Shreyank Gupta
Mentor(s): Shreyank Gupta, Ratnadeep Debnath
Notes: Features that I am looking to target:
* User management/FAS integration * Un-linerize the workflow. * Default wallpaper/Hostname/user-password/root-password * Custom repos/RPMs * Home directory content * Search Packages * Image type: ISO, virt image, raw disk
Code at https://github.com/shreyankg/Dorrie, fork and send pull request, if you are interested to contribute.
Linux system services
Improving Fedora packaging
Java API/ABI changes checker
Status: Proposed
Summary of idea: Libraries written in Java add, remove and modify their public interfaces from time to time. This is normal, but currently it is very hard to guess effect an update of library to new version will have on rest of the system. What is needed is a tool that would be able to tell us that "With update of package java-library to version 2.0, function X(b) has been removed. This function is used in package java-app". There are already a few open-source projects that can do some of the analysis needed. This would be of interest to whole Java world I believe and would enable safer and easier updates. To get an idea of similar projects see Java API compliance checker and Python Javaclass project
Knowledge prerequisite: Knowledge of Java (inheritance rules, generics, etc.) and probably some scripting language(s)
Skill level: Fairly high
Contacts: Stanislav Ochotnický
Mentor(s): Stanislav Ochotnický
Notes: Don't hesitate to get in touch via IRC (sochotni@FreeNode) or email (contact on my user page).
AUR Clone for Fedora
Status: Proposed
Summary of idea: The idea is to make an AUR clone for Fedora where users can submit buildfiles, which need to be hosted. These set of files can compile packages on the user side, and installed locally.
The benefit of this method is:
- No need to host the entire packages (saving space on servers hosting the RPMs)
- Make changes to the buildfile, and not compile the package
- Can pull sources from any version control system/stored tarballs to make a very upto-date package. (See blog entry for an example)
Contacts: Anuj More
Notes: Need mentor. Need advice on feasibility of the software and issues that can arise. Also, read the extensive blog post on my blog.
Analogy: This is a lot like "having your own library" vs "getting a book from a bookstore". If you refer a book often, you'd keep it in your library. This would occupy space and consume resources. Otherwise, you'd just pull out a separate paper with instructions about the bookstore to find the book, and fetch the book from the store. Though the first method is hassle-free, it is not possible to have all the books in the world with you.
Maven FOSS Repository Extension
Status: Proposed - Draft
Summary of idea: With the inception of Maven we have a means to standardize the building of Java projects. However it has also resulted in the usage of a very wide dependency set by these Java projects. This makes it very hard to integrate those projects on a single platform (be it Fedora or JBoss Application Server (or the combination)). In essence during packaging all these dependencies must be lined up to form a single consistent component set. Thus each project will only have those components available which are actually available on the target platform. This is very hard to enforce using standard Maven setup. For Fedora I'm envisioning a Maven extension that makes sure only sanctioned components are used during the build (without putting a burden on the packager). This will allow developers who are not on Fedora to also build with this extension and thus verify (and fix) issues which are the result of "Fedora packaging". A prototype can be viewed at Fedora Maven Extension.
Knowledge prerequisite: Knowledge of Maven
Skill level: Medium
Contacts: Carlo de Wolf
Mentor(s): Carlo de Wolf
Notes: You can find me at irc.freenode.net #fedora-java wolfc
Fedora Spins and remixes
Fedora Audio Creation Spin
Status: Proposed - Draft
Summary of idea: To create a Fedora Audio spin showcasing the rich and diverse landscape of Linux Audio production.
The Fedora Audio Creation SIG is a collection of enthusiastic Fedora users driven by the common desire to make the best Linux distribution also the best for Music creation and Audio Production.
We are looking for one or two candidates to assist us in the complete development cycle of this project. The bulk of the effort lies in packaging open source audio projects and integrating many of the packages from the PlanetCCRMA repository into Fedora. Other tasks may include the testing of kickstart files and developing small applications to better integrate with the Fedora Desktop.
Ideally, interested candidates will have a passion for Music/Audio Production. Basic scripting knowledge and the ability to compile projects from source is a must. Sponsored packagers / knowledge of the Fedora Packaging Guidelines and/or the desire to continuing maintaining the packaged software post-project considered a plus.
Interested? Why wait, submit an audio package for review and get sponsored (Join_the_package_collection_maintainers).
Knowledge prerequisite: Scripting/programming (bash/python)
Skill level: Rudimentry
Contacts: Brendan Jones
Mentor(s): Brendan Jones
Fedora JBoss Spin
Status: Proposed
Summary of idea: To create a Fedora JBoss spin that helps Java developers get started quickly using JBoss software.
The Java SIG and the JBoss AS 7 on Fedora Initiative is a cross-section of enthusiastic Fedora users driven by the common desire to make the Fedora the best OS for developing with JBoss software.
We are looking for one or two candidates to assist us in the complete development cycle of this project. The bulk of the effort lies in packaging open source Java and JBoss projects and integrating many of the packages from the JBoss Community into Fedora. Packages in particular include JBoss AS 7, JBoss Tools and JBoss Forge. Other tasks may include the testing of kickstart files and developing configurations to better integrate with the Fedora Desktop.
There could be two variants of this spin (feel free to choose). One is on the developer needing a good desktop to create JBoss-based applications (things like Eclipse + JBoss Tools, AS 7, Forge, a database, and so on). The other focus is on getting a server setup so that it can run the application. That would also be where the upcoming OpenShift toolset will come into play.
Another critical component is the interoperability with Eclipse. It's important that a setup for Eclipse gets augmented for a developer to install/implement the JBoss specific tools and plugins. A decision needs to be done, whether updates of Eclipse should be done via RPMs or via a Eclipse repository. JBossAS7 is targeting a maven repository setup - one option could simply be to tie into this repository.
Ideally, interested candidates will have a passion for Java development using JBoss software. Basic scripting knowledge and the ability to compile Java projects from source is a must. Sponsored packagers / knowledge of the Fedora Packaging Guidelines and/or the desire to continuing maintaining the packaged software post-project considered a plus, but not required.
Interested? Why wait, submit a Java package for review and get sponsored (Join the package collection maintainers).
Knowledge prerequisite: Scripting/programming (Java, shell)
Skill level: Rudimentary
Contacts: Marek Goldmann, Carlo de Wolf, Andrew Rubinger, [Max Andersen https://community.jboss.org/people/maxandersen], Peter Larsen
Mentor(s): Marek Goldmann, Carlo de Wolf
Educational Application for Fedora Robotics Suite
Status: Proposed
Summary of Idea: Create an educational app introducing software from Fedora Robotics Suite
The Fedora Robotics SIG is creating a Robotics Suite consisting of many packages useful in robotics. We want to develop a demonstration application introducing new users step by step to core packages like Fawkes and Player/Stage. It would feature multiple game-like levels with increasing complexity. The general task would be to instruct the robot to fulfill a specific task in a simulation environment.
Knowledge prerequisite: Developing this requires a strong background in C++, a background in robotics is preferred but not necessary. You should be able to familiarize yourself with new software quickly. User visible parts will require GUI programming using Gtkmm.
Skill level: Medium to High
Contacts: Tim Niemueller
Mentor(s): Tim Niemueller
Applications for systems administrators
RHQ-agent to interface with Matahari
Status: Proposed
Summary of idea: Write a RHQ-agent in Python and make it interface with Matahari to pick up metrics that are provided by Matahari from Fedora or RHEL systems. The agent would talk to the RHQ server via the REST api and push metrics to RHQ etc. This agent will not implement the full functionality of the RHQ java agent.
While RHQ is written in Java, this project does not need any Java knowledge.
Knowledge prerequisite: Python, Linux system administration, qpid, principles of REST
Skill level: Medium to High
Contacts: Heiko Rupp <pilhuhn>
Mentor(s): Heiko Rupp <pilhuhn>
Notes: RHQ wiki is at http://rhq-project.org/