5 A code bounty is a certain financial stimulant to encourage someone to put his or her effort into a project. A code bounty in the DragonFlyBSD project needs to adhere to a set of rules defined hereunder, though these are only preliminary and subject to change. One could for example imagine developers accepting sponsorship on a wholly different basis, or non-financial rewards for completing a bounty project, like free hardware (we love that!).
9 * Bounty Projects are open to anyone that has a reasonable capability of completing the project. Typically it's on first to ask basis, but the sponsor of the bounty may choose differently.
11 * 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.
13 * 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.
15 * 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.
17 * All code submitted shall be of the same license as DragonFly. Any questions on the licensing issues should directed to the DragonFly Team.
21 ## Full Rust libc FFI binding support
24 * Port Rust FFI libc bindings, in full to DragonFly.
27 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.
29 The Github URL is https://github.com/rust-lang/libc
32 * Ensure that all features available in our libc have been ported to working in the Rust FFI lib
33 * Ensure that the code builds
34 * Ensure that all tests pass
35 * 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
75 * Port DragonFly to Aarch64
106 ## UTF-8 support in Console
108 Adding full UTF-8 support in console.
110 ### Technical details
143 <td>TOTAL AMOUNT</td>
144 <td>35 EUR + 150 USD</td>
151 ## Port valgrind to DragonFlyBSD
153 (shamelessly copied from gsoc2010 projects page)
155 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.
157 ### Technical details
161 (shamelessly copied from gsoc2010 projects page)
163 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.
196 <td>TOTAL AMOUNT</td>
197 <td>150 EUR + 150 USD</td>
203 ## HAMMER compression
205 (shamelessly copied from gsoc2010 projects page)
207 * Compress blocks as they get written to disk.
208 * Only file data (rec_type == DATA) should be compressed, not meta-data.
209 * the CRC should be that of the uncompressed data.
210 * ideally you'd need to associate the uncompressed data with the buffer cache buffer somehow, so that decompression is only performed once.
211 * compression could be turned on a per-file or per-pfs basis.
212 * gzip compression would be just fine at first; lzo or lzjb might be preferable.
214 ### Technical details
215 (shamelessly copied from gsoc2010 projects page)
217 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.
219 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).
250 <td>TOTAL AMOUNT</td>
251 <td>50 EUR + 150 USD</td>
257 ## Native NTFS support
259 (shamelessly copied from gsoc2010 projects page)
261 * Port Apple's native NTFS driver
263 ### Technical details
264 (shamelessly copied from gsoc2010 projects page)
266 Apple's NTFS native driver could be ported to DragonFly BSD. Latest code as of now is:
268 http://opensource.apple.com/source/ntfs/ntfs-84.40.1/kext/
289 <td>TOTAL AMOUNT</td>
299 As swildner wrote on 18th Septmber 2017: we need a new driver for a card reader.
301 RTS5209 PCI Express Card Reader
319 <td>TOTAL AMOUNT</td>
331 ##Port autofs from FreeBSD
333 Autofs allows dynamic filesystem mapping to render filesystems accessible, without keeping them mounted. It is designed as a modern, simpler, cleanroom reimplementation of amd.
350 <td>50 USD (paid)</td>
354 <td>TOTAL AMOUNT</td>
363 * Completely rip out our usb stack and replace it with FreeBSD's new usb4bsd (or whatever the FreeBSD-current USB stack is called nowadays).
364 * 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.
366 ### Technical details
385 <td>300 USD (paid)</td>
390 <td>100 USD (paid)</td>
395 <td>50 EUR (paid)</td>
400 <td>50 EUR (paid)</td>
404 <td>TOTAL AMOUNT</td>
405 <td>100 EUR + 400 USD</td>