Adding another donor to the Rust FFI code bounty
[ikiwiki.git] / docs / developer / Code_Bounties.mdwn
1 [[!toc  ]]
2
3 # Explanation 
4
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!).
6
7 # Rules 
8
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.
10
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.
12
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.
14
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.
16
17 * All code submitted shall be of the same license as DragonFly. Any questions on the licensing issues should directed to the DragonFly Team.
18
19 # Active bounties 
20
21 ## Full Rust libc FFI binding support
22 ### Description
23
24 * Port Rust FFI libc bindings, in full to DragonFly.
25
26 ### Technical details 
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.
28
29 The Github URL is https://github.com/rust-lang/libc
30
31 ### Main goals 
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
36
37 ### Estimated time 
38 Unknown.
39
40 ### Donators 
41 <table>
42 <tr>
43 <th>Donor</th>
44 <th>Amount</th>
45 </tr>
46
47 <tr>
48 <td>zach</td>
49 <td>400 USD</td>
50 </tr>
51
52 <tr>
53 <td>joris</td>
54 <td>150 USD</td>
55 </tr>
56
57 <tr>
58 <td>profmakx</td>
59 <td>200 USD</td>
60 </tr>
61
62 <tr>
63 <td>TOTAL AMOUNT</td>
64 <td>750 USD</td>
65 </tr>
66
67 </table>
68 <br>
69
70
71
72 ## Aarch64 support
73 ### Description
74
75 * Port DragonFly to Aarch64
76
77 ### Technical details 
78 To be defined
79
80 ### Main goals 
81 Not yet written.
82
83 ### Estimated time 
84 Unknown.
85
86 ### Donators 
87 <table>
88 <tr>
89 <th>Donor</th>
90 <th>Amount</th>
91 </tr>
92
93 <tr>
94 <td>tuxillo</td>
95 <td>100 EUR</td>
96 </tr>
97
98 <tr>
99 <td>TOTAL AMOUNT</td>
100 <td>100 EUR</td>
101 </tr>
102
103 </table>
104 <br>
105
106 ## UTF-8 support in Console 
107 ### Description 
108 Adding full UTF-8 support in console.
109
110 ### Technical details 
111 Not yet written.
112
113 ### Main goals 
114 Not yet written.
115
116 ### Estimated time 
117 Still unknown.
118
119 ### Donators 
120
121 <table>
122 <tr>
123 <th>Donor</th>
124 <th>Amount</th>
125 </tr>
126
127 <tr>
128 <td>timofonic</td>
129 <td>35 EUR</td>
130 </tr>
131
132 <tr>
133 <td>dillon</td>
134 <td>50 USD</td>
135 </tr>
136
137 <tr>
138 <td>kerma</td>
139 <td>100 USD</td>
140 </tr>
141
142 <tr>
143 <td>TOTAL AMOUNT</td>
144 <td>35 EUR + 150 USD</td>
145 </tr>
146
147 </table>
148
149
150 <br />
151 ## Port valgrind to DragonFlyBSD
152 ### Description
153 (shamelessly copied from gsoc2010 projects page)
154
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.
156
157 ### Technical details 
158 Not yet written.
159
160 ### Main goals 
161 (shamelessly copied from gsoc2010 projects page)
162
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.
164
165 ### Estimated time 
166 Unknown.
167
168 ### Donators 
169 <table>
170 <tr>
171 <th>Donor</th>
172 <th>Amount</th>
173 </tr>
174
175 <tr>
176 <td>rumko</td>
177 <td>100 EUR</td>
178 </tr>
179
180 <tr>
181 <td>tuxillo</td>
182 <td>50 EUR</td>
183 </tr>
184
185 <tr>
186 <td>dillon</td>
187 <td>100 USD</td>
188 </tr>
189
190 <tr>
191 <td>sjg</td>
192 <td>50 USD</td>
193 </tr>
194
195 <tr>
196 <td>TOTAL AMOUNT</td>
197 <td>150 EUR + 150 USD</td>
198 </tr>
199
200 </table>
201
202 <br />
203 ## HAMMER compression
204 ### Description
205 (shamelessly copied from gsoc2010 projects page)
206
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.
213
214 ### Technical details 
215 (shamelessly copied from gsoc2010 projects page)
216
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.
218
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).
220
221 ### Main goals 
222 Not yet written.
223
224 ### Estimated time 
225 Unknown.
226
227 ### Donators 
228 <table>
229 <tr>
230 <th>Donor</th>
231 <th>Amount</th>
232 </tr>
233
234 <tr>
235 <td>rumko</td>
236 <td>50 EUR</td>
237 </tr>
238
239 <tr>
240 <td>dillon</td>
241 <td>100 USD</td>
242 </tr>
243
244 <tr>
245 <td>vsrinivas</td>
246 <td>50 USD</td>
247 </tr>
248
249 <tr>
250 <td>TOTAL AMOUNT</td>
251 <td>50 EUR + 150 USD</td>
252 </tr>
253
254 </table>
255 <br />
256
257 ## Native NTFS support
258 ### Description
259 (shamelessly copied from gsoc2010 projects page)
260
261 * Port Apple's native NTFS driver
262
263 ### Technical details 
264 (shamelessly copied from gsoc2010 projects page)
265
266 Apple's NTFS native driver could be ported to DragonFly BSD. Latest code as of now is:
267
268 http://opensource.apple.com/source/ntfs/ntfs-84.40.1/kext/
269
270 ### Main goals 
271 Not yet written.
272
273 ### Estimated time 
274 Unknown.
275
276 ### Donators 
277 <table>
278 <tr>
279 <th>Donor</th>
280 <th>Amount</th>
281 </tr>
282
283 <tr>
284 <td>tuxillo</td>
285 <td>75 EUR</td>
286 </tr>
287
288 <tr>
289 <td>TOTAL AMOUNT</td>
290 <td>75 EUR</td>
291 </tr>
292
293 </table>
294
295
296 <br />
297 ##Card reader driver
298 ###Description
299 As swildner wrote on 18th Septmber 2017: we need a new driver for a card reader.
300
301 RTS5209 PCI Express Card Reader
302
303 ### Estimated time 
304 Unknown.
305
306 ### Donators 
307 <table>
308 <tr>
309 <th>Donor</th>
310 <th>Amount</th>
311 </tr>
312
313 <tr>
314 <td>ferz</td>
315 <td>20 EUR</td>
316 </tr>
317
318 <tr>
319 <td>TOTAL AMOUNT</td>
320 <td>20 EUR</td>
321 </tr>
322
323 </table>
324 <br />
325
326
327
328 <br />
329
330 # Completed bounties
331 ##Port autofs from FreeBSD
332 ###Description
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.
334
335 ### Main goals 
336 Not yet written.
337
338 ### Estimated time 
339 Unknown.
340
341 ### Donators 
342 <table>
343 <tr>
344 <th>Donor</th>
345 <th>Amount</th>
346 </tr>
347
348 <tr>
349 <td>kerma</td>
350 <td>50 USD (paid)</td>
351 </tr>
352
353 <tr>
354 <td>TOTAL AMOUNT</td>
355 <td>50 USD</td>
356 </tr>
357
358 </table>
359
360 <br />
361 ## Bring in usb4bsd
362 ### Description
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.
365
366 ### Technical details 
367 Not yet written.
368
369 ### Main goals 
370 Not yet written.
371
372 ### Estimated time 
373 Unknown.
374
375 ### Donators 
376
377 <table>
378 <tr>
379 <th>Donor</th>
380 <th>Amount</th>
381 </tr>
382
383 <tr>
384 <td>alexh</td>
385 <td>300 USD (paid)</td>
386 </tr>
387
388 <tr>
389 <td>sjg</td>
390 <td>100 USD (paid)</td>
391 </tr>
392
393 <tr>
394 <td>ferz</td>
395 <td>50 EUR (paid)</td>
396 </tr>
397
398 <tr>
399 <td>tuxillo</td>
400 <td>50 EUR (paid)</td>
401 </tr>
402
403 <tr>
404 <td>TOTAL AMOUNT</td>
405 <td>100 EUR + 400 USD</td>
406 </tr>
407
408 </table>
409
410 <br />