Fetching the latest programs, projects, and workspace data.
Find open source projects actively accepting contributors. Search repositories, filter by program milestones, difficulty tags, or tech stack.
Use our Orbit AI Matcher to find out! Get instant matching scores based on your developer skills, preferred frameworks, and contribution experience.
Convert your selected open-source project into a winning GSoC, LFX, or Outreachy application using Proposal Studio.
The project involves adding support for the I2C, PWM, DMA and Mailbox functionalities. The ARM based Raspberry Pi 3 BSP has support for I2C although it is not the same for the AARCH64 based Raspberry Pi 4b BSP. PWM Support is something that would make the BSP more useful, and in the proposal I have mentioned how I will go about adding the support. DMA and Mailbox are two of the functionalities that are required to add SD Card support to the BSP. In the proposal I have given an overview of how I plan to add support for DMA and Mailbox.
<p>The idea aims to complete the implementation for the SD Card file system support that was previously initiated. In addition to that, I also plan on implementing DMA support for I2C and SPI, support for second SPI device and model identification, detection and reporting.</p>
Aktualizr is an Uptane client written in C++, targeting embedded Linux systems. Aktualizr combines two important areas of functionality: implementing Uptane to actually validate software updates and then installing those software updates. However, the mechanics of installing software updates on embedded Linux systems are usually quite complex, so Aktualizr hands software artefacts off to other installers/libraries after they have passed all Uptane security checks. Currently, aktualizr only supports OSTree as a method of installing Linux OS updates. However, there are other embedded Linux OS updaters, such as SWUpdate and RAUC, that are based on an A/B partition update scheme, for which there is no support from Uptane This GSoC project would contribute to Aktualizr's implementation of support for an A/B partition-based update method, preferably integrating with SWUpdate or RAUC. This would enable the manufacturers who use A/B based updates to be able to utilise the security features offered by Uptane and thus ensuring a wider user support for Uptane.
<p>Inclusion of USER_LDT option in NetBSD kernel allows Wine32 applications to be run on amd64 architecture. This is useful primarily owing to the majority of Windows applications being 32-bit. My work involves getting the latest version of Wine to compile and run on i386 and amd64, and building Wine with WoW64 support which will allow running Wine32 applications on amd64.</p>
RAIDFrame is NetBSD’s kernel-level software RAID framework, providing RAID 0, 1, 4, 5, and 6 functionality. Its current implementation has limitations: n-way RAID 1 is limited, RAID 6 performance can be improved, and the system lacks robust scrubbing support to detect and correct silent data corruption. This project will implement n-way RAID 1, RAID scrubbing, and RAID 6 improvements to enhance reliability, performance, and maintainability.
Currently, the NetBSD kernel supports a range of different wireless devices. But it lacks a driver for the devices based on RTL8821AU chipset (e.g., TP-Link Archer T2U Nano, product id 0x011e). Driver for that chipset is available in FreeBSD, named “rtwn”. So, my project will be to port that driver to NetBSD and convert it to the new wifi stack. If everything goes well and I finish the porting + conversion to the new wifi stack quickly, then I also plan to introduce another driver for devices based on MediaTek MT7601U chipset. I look forward to contributing to the NetBSD project even after GSoC concludes.
<p>The project aims to create tools that will simplify the manual process of switching between two architectures (crossgrading) and to make it a supported Debian feature.</p> <p>Two tools will be made to complete the crossgrading of a Debian installation: one to verify the system is ready for crossgrading, and another to complete and log the crossgrading process.</p>
<p>This project is a part of Google Summer of Code 2016 under the organization ReactOS. I proposed an idea of implementing storahci for windows 2003 and later port it to ReactOS (after GSoC). As per the proposal I implemented a Storport Miniport driver for windows 2003 targeting NT 5.2/6 storage stack model supporting ATA/ATAPI devices.</p>
This project extends the Raspberry Pi 4b BSP in RTMES by adding Framebuffer, SDHCI and PCIe support. Building on mailbox and DMA support added during GSoC 2025, this project completes the SDHCI work pending since GSoC 2024 and adds framebuffer otuput via the VideoCore mailbox property tags interface. PCIe support will be ported to rtems-libbsd. In this proposal I have detailed how I will go about adding support and testing each driver.
This project aims to extend the support for aarch64 on rust-vmm/vmm-reference. rust-vmm enables the community to build custom VMM solutions. It currently supports booting up a dummy VM with no devices. The purpose of this project is to extend the existing functionality getting it closer to what is already available on x86_64.
mkimg(1), a FreeBSD tool used for creating disk images in various formats, currently lacks support for creating compressed QCOW2 images. This project aims to extend mkimg by adding support for generating QCOW2 images with compression enabled, reducing FreeBSD's reliance on external tools for this functionality and improving the system's self-sufficiency in image creation workflows.
The print dialogs of the major GUI toolkits, GTK, Qt, got CPDB support added in GSoC 2022, but several applications come with their own creation of a print dialog these are Firefox/Thunderbird (Mozilla), Chromium/Chrome (Google), and LibreOffice. Also these dialogs need to get CPDB support to make CPDB universal. Task is to get CPDB into the print dialogs upstream for Mozilla
<p>This project's goal is making the Linux kernel more error-proof through the detection of data races with the help of static verification tools. However, even the best verification tools can give false alarms and because of that this project would require extensive analysis of the verification results and communication with maintainers. Its desired result is finding the existing data races in Linux kernel and making steps towards their correction by maintainers.</p>
The current SPDX conformance tools do not support the upcoming 2025 CISA SBOM minimum elements draft or the newly introduced AI and Dataset profiles in the SPDX v3 specification. This project bridges that compliance gap. The solution involves generating updated Python bindings for the SPDX Python model and implementing a dedicated, decoupled CISA 2025 compliance checker class. The core deliverables include: updated Python bindings supporting new AI profiles, a fully integrated CISA 2025 conformance checker, and a robust Pytest suite using real-world SBOMs for regression testing.
<p>NetBSD currently has good support for Allwinner ("Sunxi") family SoCs and some support for SoCs from Amlogic ("meson"), Rockchip, and NVIDIA ("Tegra"). This project is aimed at extending NetBSD support to Hummingboard Pulse. Hummingboard Pulse has i.MX8M Dual/Quad core ARM Cortex A53 up to 1.5Ghz (with ARM M4 GPP) marketed as a modular fanless mini computer, to be integrated with larger networks or systems, especially in the area of IOT development.</p>
The NetBSD Kernel has an in-kernel translation layer that helps run Linux ABIs compiled for Linux under compat_linux. Not all the system calls have not been implemented under compat_linux, therfore this project is about identifying those missing system calls and implementing them. For my project proposal, I have chosen sendfile(2) and splice(2). I will write a general version of splice(2) in the Linux compat layer and have sendfile(2) use that very splice(2) for its functionality as well. A long-term plan for this project also includes implementing something even more generic, like splicev() as a core NetBSD kernel primitive which will end up being the backing function for both splice(2) and sendfile(2). The splicev() function would take both operation tags and specific arguments for that paritcular operation when invoked.
<p>Add dynamic load module support for SOF</p>
COCONUT-SVSM is a Secure Virtual Machine Service Module running at a privileged level inside Confidential VMs to provide trusted services (e.g., virtual TPM) independent of the host hypervisor. Currently, the SVSM kernel performs full TLB flushes on every context switch, discarding all TLB entries indiscriminately and causing significant runtime TLB miss overhead. This project enhances COCONUT-SVSM to leverage the x86 PCID (Process Context Identifiers) hardware feature to tag TLB entries per task, preserving them across context switches and enabling selective TLB invalidation. The work is structured in three phases: Phase 1 builds a code-generated Rust crate (x86-cpuid) from the authoritative x86-cpuid-db v2.4 XML database, replacing all scattered, magic-bit-position CPUID checks across the codebase with a type-safe cpu_has(leaf_0x1::ecx::Pcid) API unified across SNP, TDX, and native platforms via a CpuidReader trait. Phase 2 designs and implements a PCID assignment strategy for all virtual pages in the COCONUT kernel, enabling the CPU to tag TLB entries per task(same for all threads of task) and preserve them across context switches. Phase 3 converts global TLB flush operations in into selective, PCID-aware invalidations: using AMD's INVLPGB broadcast instruction to flush a specific PCID across all cores without IPIs. Key Deliverables are x86-cpuid Rust crate with code generator consuming x86-cpuid-db XML, refactored COCONUT-SVSM codebase with all open-coded CPUID checks replaced with new code generated by x86-cpuid Rust crate, PCID allocator, applying the PCIDs in the COCONUT page-tables and selective TLB flush functions (flush_tlb_pcid, flush_tlb_range_pcid) with AMD INVLPGB.
<h3>Project Description</h3> <p>GoCloud is a golang library which hides differences between different cloud providers' APIs and allows you to manage different cloud resources through a unified and easy to use API.</p> <h3>The Problem</h3> <p>GoCloud only supports AWS and GCP now. More services need to be implemented, such as Azure, Ali-cloud, Digital Ocean, and Rackspace .</p> <p>Our task is to implement the major services of these cloud service provider in the GoCloud. I want to implement the services of Ali-cloud and Rackspace.</p>
<p>Writing the driver of AD5940 in the IIO subsystem and add support for manipulating ADC channels, DAC channels, internal temperature sensor and GPIO lines.</p>
<p>The project aims to detect information disclosure in the kernel by integrating bochspwn-reloaded into ReactOS infrastructure. In addition, the project will improve bochspwn-reloaded to be compatible with ReactOS as well as add features to it.</p>
<p>The usbdump program is an useful tool for capturing USB traffics, but its output is not very convenient for further researching. Wireshark has a user-friendly GUI that can be useful in debugging raw packets. So in this proposal I'd like to add support for usbdump file-format to Wireshark.</p>
<p>USB On-The-Go technology allows us to access different kinds of services through the USB interface. These services can be Ethernet, Serial, Mass Storage, Audio and etc. This project aims to add USB OTG support to the RTEMS Beaglebone Black BSP for Ethernet, Serial and Mass Storage Devices. This will allow RTEMS user and developer communities to easily interact with the system and use multiple services with just using a USB cable.</p>
Print Dialogs are one of the most used features for many people, and it is important that they stay up to date with the current print technologies (like CUPS) and be able to quickly adopt any new such upcoming technology (XYZ Cloud Printing Service). The print technology developers should also be able to fix any bugs as soon as they are found. However, since most Print Dialogs are provided natively by the GUI toolkits (and in some cases applications like LibreOffice and Chrome), this is often not the case. This is because the GUI toolkits themselves are large projects with long release cycles, and they have a lot of other similarly important things to work on. As of current, most GUI toolkits like GTK and QT connect their Print Dialogs directly with the print technologies like CUPS which creates problems for both. Any changes made by the print technologies, be it a bug fix or a new feature release often takes a long time to show up in the print dialogs upstream due to the reason mentioned before. Similarly, the print technologies need to constantly maintain backwards compatibility since they can’t release breaking changes if the Print Dialogs have not yet implemented them. Besides this, there is also a disconnect between the two sides due to the slow-release cycles. The Common Print Dialog Backends (CPDB) introduced in 2017 by Till Kamppeter aims to de-couple the GUI from the print technologies. Instead of directly connecting to each print technologies separately, the GUI projects only must adopt CPDB support once, and then OpenPrinting (or any upcoming cloud printing projects) takes care of the CPD Backend for the print technologies to be up to date with any changes. This way print technologies can react quickly and not be bound by the big GUI toolkits’ inertia. This project will attempt to get CPDB into print dialogs upstream for GTK, Qt and Chrome.