Changes

Jump to: navigation, search

SBR600 Potential Projects

1,636 bytes added, 11:41, 25 September 2013
Infrastructure Projects
This is a list of potential projects related to the [[SBR600]] course that need people.
'''Students''': Please select a project that you're interested in and add an entry to the [[Winter 2012 Fall 2013 SBR600 Participants|project table/participants page]].
'''Open Source Community Members''': We welcome your recommendations for potential projects. Please create an account on this Wiki and create a description for your proposed project below. Please list your contact info (just an IRC or FAS2 name is OK) as well as links to any related web pages as Resources for the proposed project. (Questions? Ask [[User:Chris Tyler|Chris Tyler]]).
* Resources - An initial list of computer and information resources to get started on the project.
* Expected result - A rough indication of what is expected at the conclusion of the project.
* Initial contacts - Who to initially talk to about this project. These contacts may refer you on to other people with the respective open source communities.
You will have an opportunity to investigate, expand upon, and fine-tune this information as you prepare your initial project plan. For example, you may come up with a more detail list of expected results (deliverables), resources, and contacts during your planning.
= Raspberry Pi Fedora Remix Projects =
== Package Update the Raspberry Pi firmware raspberrypi-config package ==
The raspberrypi-config package contains the default configuration files for Pidora. These files need to be updated to reflect new options available in the Raspberry Pi ships with some proprietary firmware , as well as options that are not commonly used by and may conflict with common use-cases - for example, the current configuration files cause kernel start-up messages to be reported on the graphics processing unit serial port. This is rarely used, any may cause conflicts with other devices connected to that port (GPU)e. This firmware should be packaged within FedoragExpected outcome: a Fedora package containing the Raspberry Pi firmware, LCD displays).
Skills required: packaging
Maximum number of participants: 1
Expected result: An updated, working raspberrypi-config package == Generate an RPM-based Raspberry Pi kernel Kernel Configuration Files ==
The Fedora project has a standard RPM kernel package. The Fedora ARM project has extended this package to build separate kernels process for various ARM system-on-the kernel uses a-chip (SOC) platforms, generating binary RPM packages for configuration file to control which kernel capabilities are built into the kernel-omapitself, kernel-tegrawhich are built as loadable modules, and which are not built. The Pidora kernel-kirkwood, configuration file is a combination of the RaspberryPi default configuration file and so forththe Fedora configuration file. This package should be extended project involves reviewing the Pidora kernel configuration to generate a kernel package optimize it for the Broadcom SOC used in the Raspberry Pi (either kernelwidest possible range of use-raspi or cases while ensuring a fairly small kernel-bcm)image size.
In order to create a standard RPM package fileSkills required: kernel configuration/building, Dracut (initramfs) will need to be properly supported.packaging
Expected outcomeMaximum number of participants: the Fedora kernel package generates a Raspberry Pi kernel binary RPM.1
Skills requiredExpected result: packaging, An improved kernel buildingconfiguration in the raspberrypi-kernel package
Maximum number of participants: 2 (kernel package, initramfs/dracut setup)== Profile and Improve RPM and YUM performance on the Pi ==
== Package RPM/YUM appear to perform slowly on the Raspberry Pi libraries ==-- which is appropriate, since the Pi has a slower processor and storage system than most modern PCs -- but the performance can probably be improved. This project involves profileing the RPM/YUM operations to determine which parts of the processing are slowest, and then examining how those parts work to see if any improvements in speed are possible.
The Raspberry Pi includes a number of proprietary libraries. These libraries are expected to be re-licensed under an open source license in the coming months. These libraries should be packaged ready for inclusion in Fedora; until they are licensed under an open-source licenseSkills required: profiling, only the SRPMs should be released.programming, packaging
Note that the libray headers (-devel package) should be released in source form.Maximum number of participants: 1
Expected outcomeresult: Either a raspberrypi-firmware (report proving that RPM/YUM are as fast as can be expected on the Pi, or bcm2835-firmware) package containing the GPU firmware.changes to affected packages to improve performance
== Internationalization Support in Firstboot for Pidora 19 == This project involves taking the Pidora 19 Firstboot package and internationalizing it (making it possible to use multiple language files with Firstboot). Note that Pidora 19 is expected to use a Fedora 18-style Firstboot system (as was used in Pidora 18) rather than the firstboot system used in Fedora 19 and higher. Skills required: python, i11n using gettext, packaging
Maximum number of participants: 1
== Package Expected result: A version of firstboot and the Raspberry Pi kernel utility ==firstboot modules that are fully internationalized
The Raspi bootloader requires a special header at the start of the kernel file in order to correctly load it into memory. The tool which creates this header needs to be packaged in Fedora.== New Firstboot for Pidora 20 ==
Expected outcome: Firstboot on the Pi varies a bit from firstboot on PCs, because the software isn't installed onto storage in the same way as PCs. This project involves updating the Fedora 20 firstboot package for the Raspberry Pi kernel utilityto work with Pidora 20.
Skills required: python programming, packaging, testing
Maximum number of participants: 1
== Modify Grubby to work with Expected result: A version of the Fedora 19 or Fedora 20 firstboot that works on the Raspberry Pi kernel ==and has full support for the Pidora options (such as rootfs resizing)
On ARM systems, kernels are shipped as vmlinuz images (as == Compiler Flags on other platforms). The ''grubby'' utility is a tool which is used to configure the bootloader when a new kernel is installed, by adjusting the appropriate boot configuration (such as grub/grub2/lilo/elilo/...). On ARM systems, grubby generally calls mkimage to generate a uImage file from the vmlinuz file. On the Raspi, it will need to additionally call the Raspberry Pi kernel utility (described above) to convert the uImage into the kernel.img file.Pidora ==
Expected outcome: patches We're not sure if the compiler flags being used for grubby submitted upstream; Pidora are optimal. This project involves building a number of packages with different combinations of compiler flags, observing the ARM grubby package will correctly install results (in terms of binary size and performance) and recommending the Raspi kerneloptimal set of flags.
Skills required: packagingbuilding, scripting (bash and/or python), testing/QAbenchmarking
Maximum number of participants: 1
Expected result: Modified RPM macros that include the optimal flags for Pidora == Create the raspi-logos and raspi-fedora-remix-release-notes packages Avahi Configuration for Pidora == Avahi (zeroconf) enables discovery of computers without DNS or IP numbers. This project involves configuring Avahi for use on the Pi, so that other computers can connect to it by name without DNS support. This configuration must then be packaged in such a way that it can be included in the Pidora composes without causing conflicts.
Fedora usually contains three packages that cannot be redistributed with derived (remixed) versionsSkills required:* fedora-logos* fedora-release* fedora-release-notestesting, packaging
Dummy versions Maximum number of these packages are available, substituting generic- for fedora- (i.e., generic-logos, generic-release, and generic-release-notes).participants: 1
The fedora-release Expected results: A configuration package has been replaced by that, when installed, will correctly set up Avahi for local discovery on the raspberrypi-fedora-remix-release package.Pi
This project involves creating a replacement for == Upstream the other two packages:* raspberrypi-logos -- This package will contain replacements for the Fedora logos, including the Raspberry Pi logo (and possibly the Fedora secondary mark) where appropriate. It would probably also be a good idea to produce a raspberrypi-backgrounds package with Raspberry Pi-branded wallpaper.* raspberrypi-fedora-remix-release-notes -- This package will contain documentation on the Remix, including notes on how to install it on an SD card, trademarks, use of the GPIO controls, etc.Pidora RPM Changes ==
Expected outcome: two packagesThere are some small changes to the RPM system that have been done for Pidora. These changes need to be included in the upstream version of RPM. This project involves working with upstream to ensure that these changes are in the correct format and included in subsequent releases of RPM.
Skills required: documentation writinginterpersonal skills - negotiation, graphicspatch creation, packaging
Maximum number of peopleparticipants: 2 (logos, release notes)1
== Systemd ==Expected results: Pidora RPM changes will be upstreamed
In Fedora 15 and later, the ''upstart'' startup system is replaced by ''systemd''. Systemd needs to be tested on the Raspi, and as much as possible, tuned to use as little memory as possible.== Wayland ==
Expected outcome: systemd is tested and ready Fedora 20 includes support for use the Wayland display system. The RaspberryPi foundation has been working on a Wayland implementation for the Pi. This project involves getting the Raspi in F17two to work well together.
Skills required: system administration, debugging, sysadmin problem solvingpossibly some programming, testing/QApackaging
Maximum number of participants: 12
== Firstboot ==Expected results: The Wayland snapshot in Fedora 20 will be usable on the Pi (Ideal: fully packaged; Acceptable: Instructions on how to set it up)
The ''firstboot'' package asks the user specific questions when the system starts for the first time. Since Raspberry Pi systems are installed by copying the SD card, additional questions should be asked during the first boot -- for example, the root password == Automate Pidora Kernel and timezone should be set. This project involves writing and packaging additional modules for firstboot for use with the Raspi (and potentially other ARM systems).Firmware Building ==
Expected outcome: The Raspberry Pi Foundation maintains a kernel fork that is updated frequently. We would like to package kernel and firmware changes for firstboot committed upstreamon a daily basis, or and have these available in a package testing repository so that extends firstboot packaged in Fedoraanyone can use them. Periodically, we will select a kernel-firmware combination from this testing repository and make it available as the main Pidora kernel.
Skills required: scripting (pythonand/or bash), packaging
Maximum number of participants: 1
== Package Scratch ==Expected results: Raspberry Pi kernel and firmware updates will be included in a package in a testing repository through an automated (cron'd) process
[http://scratch.mit.edu/ Scratch] is an educational programming environment from MIT. It's not licensed under an OSI== Change raspberrypi-approved license, but the upstream project has indicated a willingness vc Package to relicense it. An OSI-approved license should be negotiated, and the software packaged for Fedora.Build from Source ==
Expected outcome: a Fedora Originally, the VideoCore IV GPU on the Pi was used with proprietary libraries which were only available in compiled form, so the raspberrypi-vc package of Scratchwas originally set up to package prebuilt binaries and not build from source. The source code for these libraries is now available, and the raspberrypi-vc package should be changed to build from source (this will help with SELinux compatibility).
Skills required: packaging
Maximum number of participants: 1
Expected result: A new version of the raspberrypi-vc package that build from source, is compatible with the current Pidora package, and can be easily updated/maintained == Package KidsRuby Write an Updated Boot Screen ==
[http://kidsruby.com/download KidsRuby] is Pidora includes an educational programming editor/IDE for RubyOpenGL-powered boot screen, which should be packaged for uses the Raspberry Pi FedoraRemix logo. The current code does not use OpenGL very effectively.
Expected outcome: a Fedora This package of KidsRubyshould be updated to use OpenGL better and to use the Pidora logo.
Skills required: C programming, OpenGL programming, packaging
Maximum number of participants: 1
== Create Expected result: A visually appealing boot screen, packaged as a SD Card Installation Tool ==drop-in replacement for the current boot screen
The Fedora LiveUSB== Update rootfs-Creator tool can run on a Fedora or on a Windows system and can be used to download and install a Fedora live disc image on a USB flash drive. This tool should be adapted so that it can also create an SD card for the Raspberry Pi (and hopefully other devices) -- so that a user can install the Raspberry Pi remix without using commands such as fdisk, dd, and resize2fs.resize ==
Note: The rootfs-resize package resizes the liveusb-creator tool goes through a number of setup steps that are not required for an SD cardPidora rootfs after installation. On It works with primary partitions, and it works with the other handNOOBS system, creating an SD card involves a few steps that are not necessary for a live USB. Therefore but it might be appropriate to create doesn't work with a separate tool rather than modifying the liveusbNOOBS-creator toolstyle layout outside of NOOBS (i.e. Also, there are other efforts taking place within where the Raspberry Pi community which might do the same thing; if one of those efforts reaches a stable release, rootfs is placed in an extended partition). This project involves extending rootfs-resize so that it might be possible to package that for Fedoracan resize extended and logical partitions as well as primary partitions.
'''NoteSkills required:''' Jon Chiappetta has started work on a similar tool -- participants in this project should co-ordinatePython scripting/work with Jon on this tool (fossjon in #seneca).programming, system administration, packaging
Expected outcomeMaximum number of participants: a Fedora package of a tool to install the Raspi distribution image on an SD card. Ideally, a Windows version as well.1
Skills requiredExpected result: scripting (python), system administration, testing/QAAn updated rootfs-resize package
Maximum number of participants: 3 (scripting, Fedora packaging and testing, Windows packaging and testing)== Packaging Pi-compatible Software ==
== Create the F17 Raspberry There are a number of Pi image ==-specific software packages that could/should be included in Pidora. Select one, package it, and get it into Fedora (preferred) or directly into Pidora.
Based on feedback {{Admon/tip|Finding Your Own Package|You can find any Pi-specific software and propose packaging it for your project. Note that it must be (a) broadly-useful Pi-specific software, or (b) a substantial software package that would be generally useful in Fedora and specifically on the F14 Raspberry Pi image, create an F17 alpha/beta image for the Raspberry Piin order to be approved as a project.}}
This will involve modifying Some possible packages ideas to get you started:* Adafruit WebIDE* Adafruit libraries/tools/etc (or creatingselect a specific piece of software) a script * OMXplayer* Vidcore library compatibility package (symlink farm in /opt/vc so that source code expecting to produce find the Raspi rootfs, putting the rootfs and image into the final format for distribution.VC libraries there will work successfully)* Quick2wire python library
NoteSee the [http: the final version of F17 won't be ready until just after this course ends//trac.proximity. The image will need to be based on the F17 alpha.ca/projects/rpfr/report/beta package set1 Pidora Bug Tracker] for ideas for other packages that people want included in Pidora.
Expected outcomeSkills required: a F17 image creation script.packaging
Skills requiredMaximum number of participants: system administration, scripting, testing/QA1 per package (identify the package!)
Maximum number of participantsExpected result: 2 (scriptingA working, testing)Pidora-compatible package that has gone through package review
== Create Clean Up the Raspi Repositories Pidora Kickstart File ==
Set The Pidora images are composed using a kickstart-based process. The kickstart file could be cleaned up the repositories to distribute the F17 Raspberry Pi remix files, including:* Setting up the signing keys* Creating a standard signing procedure (SOP) for signing* Creating a 'release' better readability and smallest-functional package containing the public keys and repo filesselection.
Expected outcomeRecent (but not necessarily latest) kickstart: repos, release packagehttp://scotland.proximity.on.ca/raspberrypi/test-releases/rpfr18v6/latest/pidora-18.ks Skills required: packaging, SOPcomposing
Maximum number of participants: 1
= Fedora-ARM Projects =Expeccted result: A clean kickstart file for Pidora 19
== Set up a Koji Test Hub =Infrastructure Projects =
We have a Koji Hub to run the Fedora ARM build farm. However, we should have a separate hub == Bug Tracker for testing configurations before deploying them to the production server. This project involves setting up a test hub so that koji hub/builder configurations can be tested independently from the production server.Pidora ==
Expected outcome: Pidora currently uses a koji test server set up Trac instance for bug tracking. However, there is a lot of spammer activity on that system. Implement an effective spam prevention system on EnglandTrac, or implement an alternative bug tracking system such as Bugzilla. Document the solution for future maintainability.
Skills required: system administration, documentation
Maximum number of participants: 1
== Document YUM Api ==Expected result: A spam-resistant bug tracking system
Yum is written in Python, but the yum API is poorly documented: the usual answer to == Create a question about the API is: "ask Seth Vidal".Fedpkg-compatible Package Repository for Pidora ==
'''This Fedpkg is a hard projecttool used to manage Fedora packages using GIT (and http).We''' Do not take d like to be able to use it on unless you are really willing to complete for Pidora-specific (non-Fedora) packages as well. To set up Fedpkg, a package database (pkgdb), GIT repository, http repository, and Fedpg configuration will be required. Completion of the various components of this taskproject should result in a usable, RPM-installable Fedpkg configuration for Pidora packages.
Expected outcomeSkills required: a guide to the yum API.system administration, testing, packaging
Skills requiredMaximum number of participants: investigation, scripting (python), writing3
Expected result: A working Fedpkg repository, plus configuration files packaged up in an RPM == Mirrorlist CGI Script == Yum uses a mirrorlist retrieved from a server to determine which mirrors to use for downloading packages. This mirrorlist can be generated by a script (e.g., to randomize or to optimize mirror selection), but at the present time a static file is just passed through to the yum client. Skills required: scripting, testing Maximum number of participants: 21 Expected result: An updated mirrorlist script

Navigation menu