Donation from Maigurs Stalidzans. Thanks!
[ikiwiki.git] / docs / developer / Code_Bounties.mdwn
1 [[!toc levels=2]]
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 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.
16
17 * All code submitted shall be of the same license as DragonFly. Any questions on the licensing issues should be directed to the DragonFly Team.
18
19
20 <hr />
21
22 # Active bounties 
23
24 ## Sync DRM drivers from Linux using LinuxKPI (via FreeBSD)
25
26 ### Description
27
28 FreeBSD supports more modern graphics drivers. Bring them to DragonFly.
29
30 See https://github.com/freebsd/drm-kmod
31
32 ### Main goals
33
34 * working i915 driver en par with FreeBSD (support for more modern chipsets)
35
36 ### Actuality
37
38 Created at: 2023-12-10
39
40 **NOTE**: tuxillo partially working on it.
41
42 ### Estimated time
43
44 Unknown.
45
46 ### Donators
47
48 <table>
49 <tr>
50 <th>Donor</th>
51 <th>Amount</th>
52 </tr>
53
54 <tr>
55 <td>mneumann (Michael Neumann)</td>
56 <td>100 USD</td>
57 </tr>
58
59 <tr>
60 <td>TOTAL AMOUNT</td>
61 <td>100 USD</td>
62 </tr>
63 </table>
64
65
66 ## WiFi-6 support and iwlwifi
67
68 ### Description
69
70 Sync our wifi stack to support WiFi-6.
71
72 ### Main goals
73
74 * working iwlwifi driver
75
76 ### Actuality
77
78 Created at: 2023-12-10
79
80 ### Estimated time
81
82 Unknown.
83
84 ### Donators
85
86 <table>
87 <tr>
88 <th>Donor</th>
89 <th>Amount</th>
90 </tr>
91
92 <tr>
93 <td>mneumann (Michael Neumann)</td>
94 <td>100 USD</td>
95 </tr>
96
97 <tr>
98 <td>TOTAL AMOUNT</td>
99 <td>100 USD</td>
100 </tr>
101 </table>
102
103 ## Port tarfs from FreeBSD 14
104
105 ### Description
106
107 FreeBSD 14 got [tarfs](https://man.freebsd.org/cgi/man.cgi?query=tarfs) which allows to mount a POSIX tar file, possibly zstd
108 compressed. The task is to port this over to DragonFly.
109
110 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.
111
112 ### Main goals
113
114 * Port tarfs from FreeBSD 14.
115
116 ### Actuality
117
118 Created at: 2023-12-05
119
120 ### Estimated time
121
122 Unknown.
123
124 ### Donators
125
126 <table>
127 <tr>
128 <th>Donor</th>
129 <th>Amount</th>
130 </tr>
131
132 <tr>
133 <td>mneumann (Michael Neumann)</td>
134 <td>100 USD</td>
135 </tr>
136
137 <tr>
138 <td>TOTAL AMOUNT</td>
139 <td>100 USD</td>
140 </tr>
141 </table>
142
143 ## USB device pass-through for NVMM
144
145 ### Description
146
147 Implement USB device pass-through for NVMM.
148
149 ### Main goals
150
151 * Working pass-through of USB webcam to Linux VM.
152
153 ### Actuality
154
155 Created at: 2023-12-05
156
157 ### Estimated time
158
159 Unknown.
160
161 ### Donators
162
163 <table>
164 <tr>
165 <th>Donor</th>
166 <th>Amount</th>
167 </tr>
168
169 <tr>
170 <td>mneumann (Michael Neumann)</td>
171 <td>100 USD</td>
172 </tr>
173
174 <tr>
175 <td>TOTAL AMOUNT</td>
176 <td>100 USD</td>
177 </tr>
178 </table>
179
180 ## HAMMER2 offline deduplication
181
182 ### Description
183
184 HAMMER2 has online deduplication which works well for long-running servers. But if the system is rebooted, the deduplication caches are emptied and
185 newly written data will possibly be stored duplicated.
186
187 HAMMER2 offline deduplication would fill the gap, allowing to deduplicate existing file systems which have
188 already gained duplicate data.
189
190 Ideally, a framework is developed that can be reused for similar tasks, e.g.:
191
192 - recompressing blocks using a different / better compression algo
193 - (re-encrypting blocks, once we would have encryption support :)
194
195 ### Main goals
196
197 * Implement `hammer2 dedup-offline`, which scans the FS for duplicate blocks and replaces and free's redundant copies.
198
199 ### Actuality
200
201 Created at: 2023-12-05
202
203 ### Estimated time
204
205 Unknown.
206
207 ### Donators
208
209 <table>
210 <tr>
211 <th>Donor</th>
212 <th>Amount</th>
213 </tr>
214
215 <tr>
216 <td>mneumann (Michael Neumann)</td>
217 <td>150 USD</td>
218 </tr>
219 <tr>
220 <td>aly (Aaron LI)</td>
221 <td>50 USD</td>
222 </tr>
223
224 <tr>
225 <td>TOTAL AMOUNT</td>
226 <td>200 USD</td>
227 </tr>
228 </table>
229
230
231 ## Bring in support for USB webcams
232
233 ### Description
234
235 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.
236
237 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 :).
238
239 ### Actuality
240
241 Bounty created at: 2021-08-08
242
243 ### Estimated time
244
245 Unknown.
246
247 ### Donators
248
249 <table>
250 <tr>
251 <th>Donor</th>
252 <th>Amount</th>
253 </tr>
254
255 <tr>
256 <td>mneumann</td>
257 <td>150 USD</td>
258 </tr>
259
260 <tr>
261 <td>pikrzyszt</td>
262 <td>100 GBP</td>
263 </tr>
264
265 <tr>
266 <td>aly</td>
267 <td>50 USD</td>
268 </tr>
269
270 <tr>
271 <td>TOTAL AMOUNT</td>
272 <td>200 USD + 100 GBP</td>
273 </tr>
274
275 </table>
276
277
278 ## Port uhidd HID daemon from FreeBSD
279
280 ### Description
281
282 uhidd is a userland driver/daemon for USB HID devices like mouse, keyboard etc.
283 It is based on libusb20 and currently only works for FreeBSD 8.x and above.
284
285 The uhidd driver would allow USB gaming controllers and joysticks to be used on DragonFly BSD.
286 uhidd also provide support for multimedia keys found on USB keyboards.
287
288 (Derived from the [FreeBSD Wiki: uhidd](https://wiki.freebsd.org/uhidd))
289
290 ### Technical details 
291
292 * This mainly involves porting uhidd and related items from FreeBSD.
293
294 ### Main goals
295
296 * Being able to use USB game controllers and joysticks on DragonFly.
297
298 ### Actuality
299
300 Bounty created at: 2020-02-17
301
302 ### Estimated time
303
304 Unknown.
305
306 ### Donators
307
308 <table>
309 <tr>
310 <th>Donor</th>
311 <th>Amount</th>
312 </tr>
313
314 <tr>
315 <td>kerma</td>
316 <td>100 USD</td>
317 </tr>
318
319 <tr>
320 <td>TOTAL AMOUNT</td>
321 <td>100 USD</td>
322 </tr>
323
324 </table>
325
326 ## Bluetooth-Support
327
328 ### Description
329
330 * Make Bluetooth work on DragonFly.
331
332 ### Technical details
333
334 We already have bluetooth support in the kernel which is based on netgraph6 (AFAIK). 
335 It is disabled by default and is probably out of date.
336
337 We also have a partial and old netbt port from NetBSD...
338
339 ### Main goals
340
341 * Research the current state of Bluetooth in DragonFly.
342 * Bluetooth is enabled by default when building the kernel/world.
343 * Bring in updates or re-port from FreeBSD/NetBSD.
344 * Bluetooth keyboard / mice is working.
345 * Bluetooth headphone is working.
346
347 ### Actuality
348
349 Bounty created at: 2020-02-12
350
351 ### Estimated time
352
353 Unknown.
354
355 ### Donators
356
357 <table>
358 <tr>
359 <th>Donor</th>
360 <th>Amount</th>
361 </tr>
362
363 <tr>
364 <td>tuxillo</td>
365 <td>50 USD</td>
366 </tr>
367
368 <tr>
369 <td>aly</td>
370 <td>50 USD</td>
371 </tr>
372
373 <tr>
374 <td>TOTAL AMOUNT</td>
375 <td>300 USD</td>
376 </tr>
377
378 </table>
379
380
381 ## Full Rust libc FFI binding support
382
383 ### Description
384
385 * Port Rust FFI libc bindings, in full to DragonFly.
386
387 ### Technical details
388
389 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.
390
391 The Github URL is https://github.com/rust-lang/libc
392
393 ### Main goals
394
395 * Ensure that all features available in our libc have been ported to working in the Rust FFI lib
396 * Ensure that the code builds
397 * Ensure that all tests pass
398 * 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
399
400 ### Estimated time
401
402 Unknown.
403
404 ### Donators
405
406 <table>
407 <tr>
408 <th>Donor</th>
409 <th>Amount</th>
410 </tr>
411
412 <tr>
413 <td>zach</td>
414 <td>400 USD</td>
415 </tr>
416
417 <tr>
418 <td>joris</td>
419 <td>150 USD</td>
420 </tr>
421
422 <tr>
423 <td>profmakx</td>
424 <td>200 USD</td>
425 </tr>
426
427 <tr>
428 <td>TOTAL AMOUNT</td>
429 <td>750 USD</td>
430 </tr>
431
432 </table>
433 <br>
434
435
436 ## More Modern Thunderbolt Support
437
438 ### Description
439
440 * Integrate Thunderbolt Devices
441
442 ### Technical Details
443
444 To be defined
445
446 ### Main Goals
447
448 Not Yet Written
449
450 ### Estimated Time
451
452 Unknown
453
454 ### Donators
455
456 <table>
457 <tr>
458 <th>Donor</th>
459 <th>Amount</th>
460 </tr>
461
462 <tr>
463 <td>Mike Carroll</td>
464 <td>150 USD</td>
465 </tr>
466
467 <tr>
468 <td>TOTAL AMOUNT</td>
469 <td> 150 USD</td>
470 </tr>
471
472 </table> 
473
474
475 ## OpenPower9 Support
476
477 ### Description
478
479 * Port DragonFly to OpenPower 9 CPUs
480
481 ### Technical Details
482
483 To be defined
484
485 ### Main Goals
486
487 Not Yet Written
488
489 ### Estimated Time
490
491 Unknown
492
493 ### Donators
494
495 <table>
496 <tr>
497 <th>Donor</th>
498 <th>Amount</th>
499 </tr>
500
501 <tr>
502 <td>Mike Carroll</td>
503 <td>150 USD</td>
504 </tr>
505
506 <tr>
507 <td>TOTAL AMOUNT</td>
508 <td> 150 USD</td>
509 </tr>
510
511 </table> 
512
513
514 ## AArch64 support
515
516 ### Description
517
518 * Port DragonFly to AArch64
519
520 ### Technical details
521
522 To be defined
523
524 ### Main goals
525
526 Not yet written.
527
528 ### Estimated time
529
530 Unknown.
531
532 ### Donators
533
534 <table>
535 <tr>
536 <th>Donor</th>
537 <th>Amount</th>
538 </tr>
539
540 <tr>
541 <td>tuxillo</td>
542 <td>100 EUR</td>
543 </tr>
544
545 <tr>
546 <td>Mike Carroll</td>
547 <td>150 USD</td>
548 </tr>
549
550 <tr>
551 <td>aly (Aaron LI)</td>
552 <td>50 USD</td>
553 </tr>
554
555 <tr>
556 <td>TOTAL AMOUNT</td>
557 <td>100 EUR + 200 USD</td>
558 </tr>
559
560 </table>
561
562
563 ## UTF-8 support in Console 
564
565 ### Description 
566
567 Adding full UTF-8 support in console.
568
569 ### Technical details
570
571 Not yet written.
572
573 ### Main goals
574
575 Not yet written.
576
577 ### Estimated time
578
579 Still unknown.
580
581 ### Donators
582
583 <table>
584 <tr>
585 <th>Donor</th>
586 <th>Amount</th>
587 </tr>
588
589 <tr>
590 <td>timofonic</td>
591 <td>35 EUR</td>
592 </tr>
593
594 <tr>
595 <td>dillon</td>
596 <td>50 USD</td>
597 </tr>
598
599 <tr>
600 <td>kerma</td>
601 <td>100 USD</td>
602 </tr>
603
604 <tr>
605 <td>TOTAL AMOUNT</td>
606 <td>35 EUR + 150 USD</td>
607 </tr>
608
609 </table>
610
611
612 ## Native NTFS support
613
614 ### Description
615
616 (shamelessly copied from gsoc2010 projects page)
617
618 * Port Apple's native NTFS driver
619
620 ### Technical details
621
622 (shamelessly copied from gsoc2010 projects page)
623
624 Apple's NTFS native driver could be ported to DragonFly BSD.
625
626 Latest code as of now is:
627 http://opensource.apple.com/source/ntfs/ntfs-84.40.1/kext/
628
629 ### Main goals
630
631 Not yet written.
632
633 ### Estimated time
634
635 Unknown.
636
637 ### Donators
638
639 <table>
640 <tr>
641 <th>Donor</th>
642 <th>Amount</th>
643 </tr>
644
645 <tr>
646 <td>tuxillo</td>
647 <td>75 EUR</td>
648 </tr>
649
650 <tr>
651 <td>TOTAL AMOUNT</td>
652 <td>75 EUR</td>
653 </tr>
654
655 </table>
656
657
658 ## Card reader driver
659
660 ### Description
661
662 As swildner wrote on 18th Septmber 2017: we need a new driver for a card reader.
663
664 RTS5209 PCI Express Card Reader
665
666 ### Estimated time
667
668 Unknown.
669
670 ### Donators
671
672 <table>
673 <tr>
674 <th>Donor</th>
675 <th>Amount</th>
676 </tr>
677
678 <tr>
679 <td>ferz</td>
680 <td>20 EUR</td>
681 </tr>
682
683 <tr>
684 <td>TOTAL AMOUNT</td>
685 <td>20 EUR</td>
686 </tr>
687
688 </table>
689
690 <hr />
691
692 # Inactive bounties
693
694 ## HAMMER compression
695
696 ### Description
697
698 (shamelessly copied from gsoc2010 projects page)
699
700 * Compress blocks as they get written to disk.
701 * Only file data (rec_type == DATA) should be compressed, not meta-data.
702 * the CRC should be that of the uncompressed data.
703 * ideally you'd need to associate the uncompressed data with the buffer cache buffer somehow, so that decompression is only performed once.
704 * compression could be turned on a per-file or per-pfs basis.
705 * gzip compression would be just fine at first; lzo or lzjb might be preferable.
706
707 **NOTE**:
708 HAMMER2 has replaced HAMMER to be the default filesystem on DragonFly and is under active development and maintenance.  HAMMER2 also has compression support.
709
710 ### Technical details
711
712 (shamelessly copied from gsoc2010 projects page)
713
714 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.
715
716 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).
717
718 ### Main goals
719
720 Not yet written.
721
722 ### Estimated time
723
724 Unknown.
725
726 ### Donators
727
728 <table>
729 <tr>
730 <th>Donor</th>
731 <th>Amount</th>
732 </tr>
733
734 <tr>
735 <td>rumko</td>
736 <td>50 EUR</td>
737 </tr>
738
739 <tr>
740 <td>dillon</td>
741 <td>100 USD</td>
742 </tr>
743
744 <tr>
745 <td>vsrinivas</td>
746 <td>50 USD</td>
747 </tr>
748
749 <tr>
750 <td>TOTAL AMOUNT</td>
751 <td>50 EUR + 150 USD</td>
752 </tr>
753
754 </table>
755
756
757
758 # Completed Bounties
759
760
761 ## In-kernel WireGuard port
762
763 ### Description
764
765 [WireGuard](https://www.wireguard.com/) is an extremely simple yet fast and modern VPN that utilizes state-of-the-art cryptography.
766 It aims to be faster, simpler, leaner, and more useful than IPsec, while avoiding the massive headache.
767 It intends to be considerably more performant than OpenVPN.
768 WireGuard is designed as a general purpose VPN for running on embedded interfaces and super computers alike, fit for many different circumstances.
769 Initially released for the Linux kernel, it is now cross-platform (Windows, macOS, BSD, iOS, Android) and widely deployable.
770 (copied from [WireGuard official website](https://www.wireguard.com/))
771
772 We already have the userland implementation in Golang in DPorts (i.e., [`wireguard-go`](https://github.com/DragonFlyBSD/DPorts/tree/master/net/wireguard-go)).
773 It would be better to also gain the in-kernel implementation, like OpenBSD and FreeBSD already did.
774
775 ### Technical details 
776
777 * Port WireGuard directly from the upstream or from OpenBSD/FreeBSD.
778 * The crypto framework might need an update (from OpenBSD/FreeBSD).
779
780 **NOTE**:
781 The initial port by FreeBSD/Netgate was buggy, so need to investigate before using that code.
782 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/)
783
784 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).
785
786 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).
787
788 **NOTE**:
789 NetBSD has a separate from-sratch implementation [wg(4)](https://man.netbsd.org/wg.4).
790 The [code](https://github.com/NetBSD/src/blob/trunk/sys/net/if_wg.c) looks quite clean and nice.
791 So it maybe a good idea to port the NetBSD version.
792
793 See also the dispute between WireGuard's author and NetBSD developers:
794 ["wireguard" implementation improperly merged and needs revert](https://mail-index.netbsd.org/tech-net/2020/08/22/msg007842.html)
795
796 ### Main goals
797
798 * WireGuard port in DragonFly kernel, as well as the userland tools.
799 * WireGuard works.
800 * The port should be ideally reviewed/audited by the WireGuard project.
801   I (aly@) believe the author (Jason A. Donenfeld) would like to help.
802
803 ### Actuality
804
805 Created at: 2021-08-12<br>
806 Completed at: 2024-02-21
807
808 ### Status
809
810 Completed by: aly@ (Aaron LI)
811
812 ### Results
813
814 * Components:
815   - if_wg.ko kernel module; source at sys/net/wg; man page wg(4)
816   - added missing crypto code to sys/crypto
817   - ifconfig(8) support for wg(4)
818   - wg rc(8) script; man page wg.conf(5)
819 * Merged in DragonFly 6.5 master branch
820 * Announcement: [mail to users@ ML](https://lists.dragonflybsd.org/pipermail/users/2024-February/452239.html)
821
822 ### Donators
823
824 <table>
825 <tr>
826 <th>Donor</th>
827 <th>Amount</th>
828 </tr>
829
830 <tr>
831 <td>aly (Aaron LI)</td>
832 <td><s>100 USD</s></td>
833 </tr>
834 <tr>
835 <td>bycn82 (Bill Yuan)</td>
836 <td><s>100 USD</s></td>
837 </tr>
838 <tr>
839 <td>tuxillo (Antonio Huete)</td>
840 <td>50 EUR (paid)</td>
841 </tr>
842
843 <tr>
844 <td>TOTAL AMOUNT</td>
845 <td>200 USD + 50EUR</td>
846 </tr>
847 </table>
848
849
850 ## Port valgrind to DragonFlyBSD [TAKEN 2021-03-30]
851
852 ### Description
853
854 (shamelessly copied from gsoc2010 projects page)
855
856 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.
857
858 ### Technical details
859
860 Not yet written.
861
862 ### Main goals
863
864 (shamelessly copied from gsoc2010 projects page)
865
866 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.
867
868 ### Estimated time
869
870 Unknown.
871
872 ### Bounty status
873
874 Taken by dan_.
875
876 Repository: [[Github|https://github.com/1338-1/valgrind-dragonfly]]
877
878 ### Donators
879
880 <table>
881 <tr>
882 <th>Donor</th>
883 <th>Amount</th>
884 </tr>
885
886 <tr>
887 <td>rumko</td>
888 <td>100 EUR</td>
889 </tr>
890
891 <tr>
892 <td>tuxillo</td>
893 <td>50 EUR</td>
894 </tr>
895
896 <tr>
897 <td>dillon</td>
898 <td>100 USD</td>
899 </tr>
900
901 <tr>
902 <td>sjg</td>
903 <td>50 USD</td>
904 </tr>
905
906 <tr>
907 <td>TOTAL AMOUNT</td>
908 <td>150 EUR + 150 USD (paid)</td>
909 </tr>
910
911 </table>
912
913 ## Hypervisor for DragonFly/x86_64
914
915 ### Description
916
917 * Port nvmm (NetBSD) or bhyve (FreeBSD) to DragonFly.
918
919 ### Technical details 
920
921 Employ Intel VT-x and AMD SVM to provide fast virtualization support for running various guest OSes.
922
923 ### Main goals
924
925 * Hardware-accelerated virtualization to run guest operating systems like Linux or Windows 10 on DragonFly.
926 * Support both Intel and AMD CPUs.
927
928 ### Actuality
929
930 Created at: 2020-02-12<br>
931 Completed at: 2021-08-08
932
933 ### Estimated time
934
935 Unknown.
936
937 ### Bounty status
938
939 Completed by: Aaron LI (aly@)<br>
940
941 Previous Party: Kamil Rytarowski (kamil at netbsd dot org)<br>
942 Previous Repository: https://github.com/Moritz-Systems/DragonFlyBSD
943
944 ### Results
945
946 * Ported NVMM from NetBSD-current (as of 2021-06-25), plus various improvements/fixes from maxv's repo.
947 * Support both Intel VMX and AMD SVM on x86_64 CPUs.
948 * Components:
949   - nvmm(4): kernel module, including both the MI frontend and MD backends
950   - libnvmm(3): hypervisor API interacting with nvmm(4), e.g., used by QEMU
951   - nvmmctl(8): utility to inspect NVMM status (still premilinary)
952   - testcases/libnvmm: libnvmm test cases
953   - test/nvmm: examples
954 * Merged into master (6.1) on 2021-07-20.
955 * 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).
956 * HowTo document: [Virtualization: NVMM Hypervisor](/docs/docs/howtos/nvmm)
957
958 ### Donators
959
960 <table>
961 <tr>
962 <th>Donor</th>
963 <th>Amount</th>
964 </tr>
965
966 <tr>
967 <td>mneumann</td>
968 <td>500 USD (paid)</td>
969 </tr>
970
971 <tr>
972 <td>tuxillo</td>
973 <td>175 USD (paid)</td>
974 </tr>
975
976 <tr>
977 <td>kerma</td>
978 <td>500 USD (paid)</td>
979 </tr>
980
981 <tr>
982 <td>aly</td>
983 <td>500 CNY (myself ;))</td>
984 </tr>
985
986 <tr>
987 <td>TOTAL AMOUNT</td>
988 <td>1175 USD + 500 CNY</td>
989 </tr>
990
991 </table>
992
993
994 ## Port autofs from FreeBSD
995
996 ### Description
997
998 Autofs allows dynamic filesystem mapping to render filesystems accessible, without keeping them mounted. It is designed as a modern, simpler, cleanroom reimplementation of amd.
999
1000 ### Main goals
1001
1002 Not yet written.
1003
1004 ### Estimated time
1005
1006 Unknown.
1007
1008 ### Donators
1009
1010 <table>
1011 <tr>
1012 <th>Donor</th>
1013 <th>Amount</th>
1014 </tr>
1015
1016 <tr>
1017 <td>kerma</td>
1018 <td>50 USD (paid)</td>
1019 </tr>
1020
1021 <tr>
1022 <td>TOTAL AMOUNT</td>
1023 <td>50 USD</td>
1024 </tr>
1025
1026 </table>
1027
1028
1029 ## Bring in usb4bsd
1030
1031 ### Description
1032
1033 * Completely rip out our USB stack and replace it with FreeBSD's new usb4bsd (or whatever the FreeBSD-current USB stack is called nowadays).
1034 * 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.
1035
1036 ### Technical details 
1037
1038 Not yet written.
1039
1040 ### Main goals
1041
1042 Not yet written.
1043
1044 ### Estimated time
1045
1046 Unknown.
1047
1048 ### Donators
1049
1050 <table>
1051 <tr>
1052 <th>Donor</th>
1053 <th>Amount</th>
1054 </tr>
1055
1056 <tr>
1057 <td>alexh</td>
1058 <td>300 USD (paid)</td>
1059 </tr>
1060
1061 <tr>
1062 <td>sjg</td>
1063 <td>100 USD (paid)</td>
1064 </tr>
1065
1066 <tr>
1067 <td>ferz</td>
1068 <td>50 EUR (paid)</td>
1069 </tr>
1070
1071 <tr>
1072 <td>tuxillo</td>
1073 <td>50 EUR (paid)</td>
1074 </tr>
1075
1076 <tr>
1077 <td>TOTAL AMOUNT</td>
1078 <td>100 EUR + 400 USD</td>
1079 </tr>
1080
1081 </table>