X-Git-Url: https://gitweb.dragonflybsd.org/ikiwiki.git/blobdiff_plain/035262b8f24eeea36e2871d52315fd67133d26f7..HEAD:/docs/developer/Code_Bounties.mdwn diff --git a/docs/developer/Code_Bounties.mdwn b/docs/developer/Code_Bounties.mdwn index 406a720d..19b82462 100644 --- a/docs/developer/Code_Bounties.mdwn +++ b/docs/developer/Code_Bounties.mdwn @@ -1,4 +1,4 @@ -[[!toc ]] +[[!toc levels=2]] # Explanation @@ -10,93 +10,691 @@ A code bounty is a certain financial stimulant to encourage someone to put his o * If the developer can not complete the project by the given time period, the bounty agreement is void and no money will be issued for work done. DragonFly developers may extend the time period if it's reasonable and prudent to do so. Upon voiding the agreement, someone may reissue the project again to another developer. -* Payment for a project shall be issued in no less then 72 hours after the DragonFly developers has had ten business days to determine if the code is stable and usefulness, no major issues are left unresolved and able for being merged into the project. Payment shall be in either [[Paypal]] (preferred), some money sending company or a bank account transfer. +* Payment for a project shall be issued in no less than 72 hours after the DragonFly developers has had ten business days to determine if the code is stable and usefulness, no major issues are left unresolved and able for being merged into the project. Payment shall be in either [[Paypal]] (preferred), some money sending company or a bank account transfer. -* Upon recieving payment, the project developer shall issue (within 24 hours) a message in the WIKI and to DragonFly development ML that they have recieved payment. +* Upon receiving payment, the project developer shall issue (within 24 hours) a message in the WIKI and to DragonFly development ML that they have received payment. + +* All code submitted shall be of the same license as DragonFly. Any questions on the licensing issues should be directed to the DragonFly Team. + + +
+ +# Active bounties + +## Sync DRM drivers from Linux using LinuxKPI (via FreeBSD) + +### Description + +FreeBSD supports more modern graphics drivers. Bring them to DragonFly. + +See https://github.com/freebsd/drm-kmod + +### Main goals + +* working i915 driver en par with FreeBSD (support for more modern chipsets) + +### Actuality + +Created at: 2023-12-10 + +**NOTE**: tuxillo partially working on it. + +### Estimated time + +Unknown. + +### Donators + + + + + + + + + + + + + + + + +
DonorAmount
mneumann (Michael Neumann)100 USD
TOTAL AMOUNT100 USD
+ + +## WiFi-6 support and iwlwifi + +### Description + +Sync our wifi stack to support WiFi-6. + +### Main goals + +* working iwlwifi driver + +### Actuality + +Created at: 2023-12-10 + +### Estimated time + +Unknown. + +### Donators + + + + + + + + + + + + + + + + +
DonorAmount
mneumann (Michael Neumann)100 USD
TOTAL AMOUNT100 USD
+ +## Port tarfs from FreeBSD 14 + +### Description + +FreeBSD 14 got [tarfs](https://man.freebsd.org/cgi/man.cgi?query=tarfs) which allows to mount a POSIX tar file, possibly zstd +compressed. The task is to port this over to DragonFly. + +One possible use case of tarfs would be for the installer ISO image where various parts of the system could be mounted from a tar.xz file leading to a partially "compressed" ISO image. + +### Main goals + +* Port tarfs from FreeBSD 14. + +### Actuality + +Created at: 2023-12-05 + +### Estimated time + +Unknown. + +### Donators + + + + + + + + + + + + + + + + +
DonorAmount
mneumann (Michael Neumann)100 USD
TOTAL AMOUNT100 USD
+ +## USB device pass-through for NVMM + +### Description + +Implement USB device pass-through for NVMM. + +### Main goals + +* Working pass-through of USB webcam to Linux VM. + +### Actuality + +Created at: 2023-12-05 + +### Estimated time + +Unknown. + +### Donators + + + + + + + + + + + + + + + + +
DonorAmount
mneumann (Michael Neumann)100 USD
TOTAL AMOUNT100 USD
+ +## HAMMER2 offline deduplication + +### Description + +HAMMER2 has online deduplication which works well for long-running servers. But if the system is rebooted, the deduplication caches are emptied and +newly written data will possibly be stored duplicated. + +HAMMER2 offline deduplication would fill the gap, allowing to deduplicate existing file systems which have +already gained duplicate data. + +Ideally, a framework is developed that can be reused for similar tasks, e.g.: + +- recompressing blocks using a different / better compression algo +- (re-encrypting blocks, once we would have encryption support :) + +### Main goals + +* Implement `hammer2 dedup-offline`, which scans the FS for duplicate blocks and replaces and free's redundant copies. + +### Actuality + +Created at: 2023-12-05 + +### Estimated time + +Unknown. + +### Donators + + + + + + + + + + + + + + + + + + + + +
DonorAmount
mneumann (Michael Neumann)150 USD
aly (Aaron LI)50 USD
TOTAL AMOUNT200 USD
+ + +## Bring in support for USB webcams + +### Description + +Bring in `uvideo` from NetBSD or OpenBSD, and the dependent `video` driver. If you think that webcam support in FreeBSD is superior, feels free to bring in `cuse` etc. + +Final result should be that USB webcams are usable from chrome or firefox for the purpose of video conferencing (e.g. via jitsi.org). Personally I only need support for low-quality webcams, no need for 4k :). + +### Actuality + +Bounty created at: 2021-08-08 + +### Estimated time + +Unknown. + +### Donators + + + + + + + + + + + + + + + + + + + + + + + + + + + +
DonorAmount
mneumann150 USD
pikrzyszt100 GBP
aly50 USD
TOTAL AMOUNT200 USD + 100 GBP
+ + +## Port uhidd HID daemon from FreeBSD + +### Description + +uhidd is a userland driver/daemon for USB HID devices like mouse, keyboard etc. +It is based on libusb20 and currently only works for FreeBSD 8.x and above. + +The uhidd driver would allow USB gaming controllers and joysticks to be used on DragonFly BSD. +uhidd also provide support for multimedia keys found on USB keyboards. + +(Derived from the [FreeBSD Wiki: uhidd](https://wiki.freebsd.org/uhidd)) + +### Technical details + +* This mainly involves porting uhidd and related items from FreeBSD. + +### Main goals + +* Being able to use USB game controllers and joysticks on DragonFly. + +### Actuality + +Bounty created at: 2020-02-17 + +### Estimated time + +Unknown. + +### Donators + + + + + + + + + + + + + + + + + +
DonorAmount
kerma100 USD
TOTAL AMOUNT100 USD
+ +## Bluetooth-Support + +### Description + +* Make Bluetooth work on DragonFly. + +### Technical details + +We already have bluetooth support in the kernel which is based on netgraph6 (AFAIK). +It is disabled by default and is probably out of date. + +We also have a partial and old netbt port from NetBSD... + +### Main goals + +* Research the current state of Bluetooth in DragonFly. +* Bluetooth is enabled by default when building the kernel/world. +* Bring in updates or re-port from FreeBSD/NetBSD. +* Bluetooth keyboard / mice is working. +* Bluetooth headphone is working. + +### Actuality + +Bounty created at: 2020-02-12 + +### Estimated time + +Unknown. + +### Donators + + + + + + + + + + + + + + + + + + + + + + +
DonorAmount
tuxillo50 USD
aly50 USD
TOTAL AMOUNT300 USD
+ + +## Full Rust libc FFI binding support + +### Description + +* Port Rust FFI libc bindings, in full to DragonFly. + +### Technical details + +There has intermittently been some support on this and builds and tests have gone through periods of passing and failing, but a comprehensive buildout of full support of all features would make more advanced Rust development, especially as a viable web server backend more possible. + +The Github URL is https://github.com/rust-lang/libc + +### Main goals + +* Ensure that all features available in our libc have been ported to working in the Rust FFI lib +* Ensure that the code builds +* Ensure that all tests pass +* Ensure at least a semi automated way for the upstream team to be able to continue validation by some sort of CI/CD system so that we don't have a large support divergence + +### Estimated time + +Unknown. + +### Donators + + + + + + + + + + + + + + + + + + + + + + + + + + + +
DonorAmount
zach400 USD
joris150 USD
profmakx200 USD
TOTAL AMOUNT750 USD
+
+ + +## More Modern Thunderbolt Support + +### Description + +* Integrate Thunderbolt Devices + +### Technical Details + +To be defined + +### Main Goals + +Not Yet Written + +### Estimated Time + +Unknown + +### Donators + + + + + + + + + + + + + + + + + +
DonorAmount
Mike Carroll150 USD
TOTAL AMOUNT 150 USD
+ + +## OpenPower9 Support + +### Description + +* Port DragonFly to OpenPower 9 CPUs + +### Technical Details + +To be defined + +### Main Goals + +Not Yet Written + +### Estimated Time + +Unknown + +### Donators + + + + + + + + + + + + + + + + + +
DonorAmount
Mike Carroll150 USD
TOTAL AMOUNT 150 USD
+ + +## AArch64 support + +### Description + +* Port DragonFly to AArch64 + +### Technical details + +To be defined + +### Main goals + +Not yet written. + +### Estimated time + +Unknown. + +### Donators + + + + + + + + + + + + + + + + + + + + + + + + + + + +
DonorAmount
tuxillo100 EUR
Mike Carroll150 USD
aly (Aaron LI)50 USD
TOTAL AMOUNT100 EUR + 200 USD
-* All code submitted shall be of the same license as DragonFly. Any questions on the licensing issues should directed to the DragonFly Team. -# List of bounties ## UTF-8 support in Console + ### Description + Adding full UTF-8 support in console. -### Technical details +### Technical details + Not yet written. -### Main goals +### Main goals + Not yet written. -### Estimated time +### Estimated time + Still unknown. -### Donators -*** **timofonic** ***: 35 eur. +### Donators -*** **Dillon** ***: 50 usd. -*** - TOTAL AMOUNT 35 eur + 50 usd. + + + + + + + + + + + + + + + + + + + + + + + + + +
DonorAmount
timofonic35 EUR
dillon50 USD
kerma100 USD
TOTAL AMOUNT35 EUR + 150 USD
+ + +## Native NTFS support -
-## Bring in usb4bsd ### Description -* Completely rip out our usb stack and replace it with FreeBSD's new usb4bsd (or whatever the FreeBSD-current USB stack is called nowadays). -* Note that some work was done here already by polachok (http://gitweb.dragonflybsd.org/~polachok/dragonfly.git/shortlog/refs/heads/usb2) but the state is unknown. -### Technical details -Not yet written. +(shamelessly copied from gsoc2010 projects page) + +* Port Apple's native NTFS driver + +### Technical details + +(shamelessly copied from gsoc2010 projects page) + +Apple's NTFS native driver could be ported to DragonFly BSD. + +Latest code as of now is: +http://opensource.apple.com/source/ntfs/ntfs-84.40.1/kext/ + +### Main goals -### Main goals Not yet written. -### Estimated time +### Estimated time + Unknown. -### Donators -*** **alexh** ***: 300 usd. +### Donators -*** **sjg** ***: 100 usd. + + + + + -*** **ferz** ***: 100 usd. + + + + -*** **tuxillo** ***: 50 eur + + + + -*** - TOTAL AMOUNT 500 usd + 50 eur +
DonorAmount
tuxillo75 EUR
TOTAL AMOUNT75 EUR
-
-## Port valgrind to DragonFlyBSD -### Description -(shamelessly copied from gsoc2010 projects page) -Valgrind is a very useful tool on a system like DragonFly that's under heavy development. Ideally, we would want the port to be usable with vkernel processes, thus enabling complex checking of the core kernel code. +## Card reader driver -### Technical details -Not yet written. +### Description -### Main goals -(shamelessly copied from gsoc2010 projects page) +As swildner wrote on 18th Septmber 2017: we need a new driver for a card reader. -The goal of this project is to port valgrind (3.5.0+) to the DragonFlyBSD platform so that at least the memcheck tool runs sufficiently well to be useful. Also an update for the pkgsrc package (devel/valgrind) should be made. +RTS5209 PCI Express Card Reader + +### Estimated time -### Estimated time Unknown. -### Donators -*** **Rumko** ***: 100 eur. +### Donators + + + + + + + + + + + -*** **tuxillo** ***: 50 eur. + + + + -*** **Dillon** ***: 100 usd. +
DonorAmount
ferz20 EUR
TOTAL AMOUNT20 EUR
-*** **sjg** ***: 50 usd. -*** - TOTAL AMOUNT 150 eur + 150 usd. +
+ +# Inactive bounties -
## HAMMER compression + ### Description + (shamelessly copied from gsoc2010 projects page) * Compress blocks as they get written to disk. @@ -106,46 +704,378 @@ Unknown. * compression could be turned on a per-file or per-pfs basis. * gzip compression would be just fine at first; lzo or lzjb might be preferable. -### Technical details +**NOTE**: +HAMMER2 has replaced HAMMER to be the default filesystem on DragonFly and is under active development and maintenance. HAMMER2 also has compression support. + +### Technical details + (shamelessly copied from gsoc2010 projects page) Doing compression would require flagging the data record as being compressed and also require double-buffering since the buffer cache buffer associated with the uncompressed data might have holes in it and otherwise referenced by user programs and cannot serve as a buffer for in-place compression or decompression. The direct read / direct write mechanic would almost certainly have to be disabled for compressed buffers and the small-data zone would probably have to be used (the large-data zone is designed only for use with 16K or 64K buffers). -### Main goals +### Main goals + +Not yet written. + +### Estimated time + +Unknown. + +### Donators + + + + + + + + + + + + + + + + + + + + + + + + + + + +
DonorAmount
rumko50 EUR
dillon100 USD
vsrinivas50 USD
TOTAL AMOUNT50 EUR + 150 USD
+ + + +# Completed Bounties + + +## In-kernel WireGuard port + +### Description + +[WireGuard](https://www.wireguard.com/) is an extremely simple yet fast and modern VPN that utilizes state-of-the-art cryptography. +It aims to be faster, simpler, leaner, and more useful than IPsec, while avoiding the massive headache. +It intends to be considerably more performant than OpenVPN. +WireGuard is designed as a general purpose VPN for running on embedded interfaces and super computers alike, fit for many different circumstances. +Initially released for the Linux kernel, it is now cross-platform (Windows, macOS, BSD, iOS, Android) and widely deployable. +(copied from [WireGuard official website](https://www.wireguard.com/)) + +We already have the userland implementation in Golang in DPorts (i.e., [`wireguard-go`](https://github.com/DragonFlyBSD/DPorts/tree/master/net/wireguard-go)). +It would be better to also gain the in-kernel implementation, like OpenBSD and FreeBSD already did. + +### Technical details + +* Port WireGuard directly from the upstream or from OpenBSD/FreeBSD. +* The crypto framework might need an update (from OpenBSD/FreeBSD). + +**NOTE**: +The initial port by FreeBSD/Netgate was buggy, so need to investigate before using that code. +See: [Buffer overruns, license violations, and bad code: FreeBSD 13's close call](https://arstechnica.com/gadgets/2021/03/buffer-overruns-license-violations-and-bad-code-freebsd-13s-close-call/) + +The re-port of WireGuard to FreeBSD: [[ANNOUNCE] WireGuard for FreeBSD in development for 13.y – and a note of how we got here](https://lists.zx2c4.com/pipermail/wireguard/2021-March/006499.html). + +The Author (Jason A. Donenfeld) also said "the crypto needed to be re-accelerated", as detailed in [if_wg simd chapoly needs some love](https://lists.freebsd.org/pipermail/freebsd-hackers/2021-March/057076.html). + +**NOTE**: +NetBSD has a separate from-sratch implementation [wg(4)](https://man.netbsd.org/wg.4). +The [code](https://github.com/NetBSD/src/blob/trunk/sys/net/if_wg.c) looks quite clean and nice. +So it maybe a good idea to port the NetBSD version. + +See also the dispute between WireGuard's author and NetBSD developers: +["wireguard" implementation improperly merged and needs revert](https://mail-index.netbsd.org/tech-net/2020/08/22/msg007842.html) + +### Main goals + +* WireGuard port in DragonFly kernel, as well as the userland tools. +* WireGuard works. +* The port should be ideally reviewed/audited by the WireGuard project. + I (aly@) believe the author (Jason A. Donenfeld) would like to help. + +### Actuality + +Created at: 2021-08-12
+Completed at: 2024-02-21 + +### Status + +Completed by: aly@ (Aaron LI) + +### Results + +* Components: + - if_wg.ko kernel module; source at sys/net/wg; man page wg(4) + - added missing crypto code to sys/crypto + - ifconfig(8) support for wg(4) + - wg rc(8) script; man page wg.conf(5) +* Merged in DragonFly 6.5 master branch +* Announcement: [mail to users@ ML](https://lists.dragonflybsd.org/pipermail/users/2024-February/452239.html) + +### Donators + + + + + + + + + + + + + + + + + + + + + + + + +
DonorAmount
aly (Aaron LI)100 USD
bycn82 (Bill Yuan)100 USD
tuxillo (Antonio Huete)50 EUR (paid)
TOTAL AMOUNT200 USD + 50EUR
+ + +## Port valgrind to DragonFlyBSD [TAKEN 2021-03-30] + +### Description + +(shamelessly copied from gsoc2010 projects page) + +Valgrind is a very useful tool on a system like DragonFly that's under heavy development. Ideally, we would want the port to be usable with vkernel processes, thus enabling complex checking of the core kernel code. + +### Technical details + Not yet written. -### Estimated time +### Main goals + +(shamelessly copied from gsoc2010 projects page) + +The goal of this project is to port valgrind (3.5.0+) to the DragonFlyBSD platform so that at least the memcheck tool runs sufficiently well to be useful. Also an update for the pkgsrc package (devel/valgrind) should be made. + +### Estimated time + Unknown. -### Donators -*** **Rumko** ***: 50 eur. +### Bounty status + +Taken by dan_. + +Repository: [[Github|https://github.com/1338-1/valgrind-dragonfly]] + +### Donators + + + + + + + + + + + -*** **Dillon** ***: 100 usd. + + + + -*** **vsrinivas** ***: 50 usd. -*** - TOTAL AMOUNT 50 eur + 150 usd. + + + + + + + + + + + + + + + +
DonorAmount
rumko100 EUR
tuxillo50 EUR
dillon100 USD
sjg50 USD
TOTAL AMOUNT150 EUR + 150 USD (paid)
+ +## Hypervisor for DragonFly/x86_64 -
-## Port Intel GPU support from FreeBSD ### Description -* Port the FreeBSD patches to support newer Intel GPUs -( http://wiki.freebsd.org/Intel_GPU ). + +* Port nvmm (NetBSD) or bhyve (FreeBSD) to DragonFly. ### Technical details + +Employ Intel VT-x and AMD SVM to provide fast virtualization support for running various guest OSes. + +### Main goals + +* Hardware-accelerated virtualization to run guest operating systems like Linux or Windows 10 on DragonFly. +* Support both Intel and AMD CPUs. + +### Actuality + +Created at: 2020-02-12
+Completed at: 2021-08-08 + +### Estimated time + +Unknown. + +### Bounty status + +Completed by: Aaron LI (aly@)
+ +Previous Party: Kamil Rytarowski (kamil at netbsd dot org)
+Previous Repository: https://github.com/Moritz-Systems/DragonFlyBSD + +### Results + +* Ported NVMM from NetBSD-current (as of 2021-06-25), plus various improvements/fixes from maxv's repo. +* Support both Intel VMX and AMD SVM on x86_64 CPUs. +* Components: + - nvmm(4): kernel module, including both the MI frontend and MD backends + - libnvmm(3): hypervisor API interacting with nvmm(4), e.g., used by QEMU + - nvmmctl(8): utility to inspect NVMM status (still premilinary) + - testcases/libnvmm: libnvmm test cases + - test/nvmm: examples +* Merged into master (6.1) on 2021-07-20. +* QEMU (6.0.0) has been updated to employ NVMM on DragonFly and available in [DPorts: emulators/qemu60](https://github.com/DragonFlyBSD/DPorts/tree/master/emulators/qemu60). +* HowTo document: [Virtualization: NVMM Hypervisor](/docs/docs/howtos/nvmm) + +### Donators + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
DonorAmount
mneumann500 USD (paid)
tuxillo175 USD (paid)
kerma500 USD (paid)
aly500 CNY (myself ;))
TOTAL AMOUNT1175 USD + 500 CNY
+ + +## Port autofs from FreeBSD + +### Description + +Autofs allows dynamic filesystem mapping to render filesystems accessible, without keeping them mounted. It is designed as a modern, simpler, cleanroom reimplementation of amd. + +### Main goals + Not yet written. -### Main goals +### Estimated time + +Unknown. + +### Donators + + + + + + + + + + + + + + + + + +
DonorAmount
kerma50 USD (paid)
TOTAL AMOUNT50 USD
+ + +## Bring in usb4bsd + +### Description + +* Completely rip out our USB stack and replace it with FreeBSD's new usb4bsd (or whatever the FreeBSD-current USB stack is called nowadays). +* Note that some work was done here already by polachok (http://gitweb.dragonflybsd.org/~polachok/dragonfly.git/shortlog/refs/heads/usb2) but the state is unknown. + +### Technical details + +Not yet written. + +### Main goals + Not yet written. -### Estimated time +### Estimated time + Unknown. -### Donators -*** **Johannes Hofmann** ***: 250 eur. +### Donators + + + + + + + + + + + + + + + + + + + + + + + + + + -*** - TOTAL AMOUNT 250 eur + + + + +
DonorAmount
alexh300 USD (paid)
sjg100 USD (paid)
ferz50 EUR (paid)
tuxillo50 EUR (paid)
TOTAL AMOUNT100 EUR + 400 USD