1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
2494
2495
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
2545
2546
2547
2548
2549
2550
2551
2552
2553
2554
2555
2556
2557
2558
2559
2560
2561
2562
2563
2564
2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578
2579
2580
2581
2582
2583
2584
2585
2586
2587
2588
2589
2590
2591
2592
2593
2594
2595
2596
2597
2598
2599
2600
2601
2602
2603
2604
2605
2606
2607
2608
2609
2610
2611
2612
2613
2614
2615
2616
2617
2618
2619
2620
2621
2622
2623
2624
2625
2626
2627
2628
2629
2630
2631
2632
2633
2634
2635
2636
2637
2638
|
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:db="http://docbook.org/ns/docbook">
<head>
<title>FreeBSD Quarterly Status Report</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="shortcut icon" href="../../favicon.ico" type="image/x-icon" />
<link rel="stylesheet" media="screen,print" href="../../layout/css/fixed.css?20130112" type="text/css" />
</head>
<body>
<div id="containerwrap">
<div id="container">
<span class="txtoffscreen"><a href="#content" title="Skip site navigation" accesskey="1">Skip site navigation</a> (1)
<a href="#contentwrap" title="Skip section navigation" accesskey="2">Skip section navigation</a> (2)
</span>
<div id="headercontainer">
<div id="header">
<h2 class="blockhide">Header And Logo</h2>
<div id="headerlogoleft">
<a href="../.." title="FreeBSD">
<img src="../../layout/images/logo-red.png" width="457" height="75" alt="FreeBSD" />
</a>
</div>
<div id="headerlogoright">
<div class="frontdonateroundbox">
<div class="frontdonatetop">
<div>
<b style="display: none;">.</b>
</div>
</div>
<div class="frontdonatecontent">
<a href="https://www.FreeBSDFoundation.org/donate/">Donate to FreeBSD</a>
</div>
<div class="frontdonatebot">
<div>
<b style="display: none;">.</b>
</div>
</div>
</div>
<h2 class="blockhide">Peripheral Links</h2>
<div id="searchnav">
<ul id="searchnavlist"></ul>
</div>
<div id="search">
<form method="get" id="search-form" action="https://duckduckgo.com/" onsubmit="document.getElementById('words').value+=' (site:www.FreeBSD.org OR site:docs.FreeBSD.org OR site:lists.FreeBSD.org OR site:wiki.FreeBSD.org OR site:forums.FreeBSD.org)'">
<h2 class="blockhide">
<label for="words">Search</label>
</h2>
<input type="hidden" name="ka" value="v" />
<input type="hidden" name="kt" value="v" />
<input type="hidden" name="kh" value="1" />
<input type="hidden" name="kj" value="r2" />
<input id="words" name="q" type="text" size="20" maxlength="255" onfocus="if( this.value==this.defaultValue ) this.value='';" value="Search" />
<span> </span>
<input id="submit" name="submit" type="submit" value="Search" />
</form>
</div>
</div>
</div>
<h2 class="blockhide">Site Navigation</h2>
<div id="menu">
<ul class="first">
<li>
<a href="../../">Home</a>
</li>
</ul>
<ul>
<li>
<a href="../../about.html">About</a>
<ul>
<li>
<a href="../../projects/newbies.html">Introduction</a>
</li>
<li>
<a href="../../features.html">Features</a>
</li>
<li>
<a href="../../advocacy/">Advocacy</a>
</li>
<li>
<a href="../../marketing/">Marketing</a>
</li>
<li>
<a href="../../privacy.html">Privacy Policy</a>
</li>
</ul>
</li>
</ul>
<ul>
<li>
<a href="../../where.html">Get FreeBSD</a>
<ul>
<li>
<a href="../../releases/">Release Information</a>
</li>
<li>
<a href="../../releng/">Release Engineering</a>
</li>
</ul>
</li>
</ul>
<ul>
<li>
<a href="../../docs.html">Documentation</a>
<ul>
<li>
<a href="../../doc/en_US.ISO8859-1/books/faq/">FAQ</a>
</li>
<li>
<a href="../../doc/en_US.ISO8859-1/books/handbook/">Handbook</a>
</li>
<li>
<a href="../../doc/en_US.ISO8859-1/books/porters-handbook">Porter's Handbook</a>
</li>
<li>
<a href="../../doc/en_US.ISO8859-1/books/developers-handbook">Developer's Handbook</a>
</li>
<li>
<a href="//www.FreeBSD.org/cgi/man.cgi">Manual Pages</a>
</li>
<li>
<a href="https://papers.FreeBSD.org">Presentations and Papers</a>
</li>
<li>
<a href="../../doc/en_US.ISO8859-1/books/fdp-primer">Documentation Project Primer</a>
</li>
<li>
<a href="../../docs/books.html">All Books and Articles</a>
</li>
</ul>
</li>
</ul>
<ul>
<li>
<a href="../../community.html">Community</a>
<ul>
<li>
<a href="../../community/mailinglists.html">Mailing Lists</a>
</li>
<li>
<a href="https://forums.FreeBSD.org">Forums</a>
</li>
<li>
<a href="../../usergroups.html">User Groups</a>
</li>
<li>
<a href="../../events/events.html">Events</a>
</li>
<li>
<a href="http://freebsdjournal.com">FreeBSD Journal</a>
</li>
<li>
<a href="http://serverfault.com/questions/tagged/freebsd">Q&A (external)</a>
</li>
</ul>
</li>
</ul>
<ul>
<li>
<a href="../../projects/index.html">Developers</a>
<ul>
<li>
<a href="https://wiki.FreeBSD.org/IdeasPage">Project Ideas</a>
</li>
<li>
<a href="https://cgit.FreeBSD.org">Git Repository</a>
</li>
<li>
<a href="https://svnweb.FreeBSD.org">Subversion Repository</a>
</li>
<li>
<a href="https://github.com/freebsd">GitHub Mirror</a>
</li>
<li>
<a href="https://reviews.FreeBSD.org">Code Review (Phabricator)</a>
</li>
<li>
<a href="https://wiki.FreeBSD.org">Wiki</a>
</li>
<li>
<a href="https://ci.FreeBSD.org">Continuous Integration Service</a>
</li>
</ul>
</li>
</ul>
<ul>
<li>
<a href="../../support.html">Support</a>
<ul>
<li>
<a href="../../commercial/commercial.html">Vendors</a>
</li>
<li>
<a href="../../security/">Security Information</a>
</li>
<li>
<a href="https://bugs.FreeBSD.org/search/">Bug Reports</a>
</li>
<li>
<a href="https://www.FreeBSD.org/support.html">Submitting Bug Reports</a>
</li>
</ul>
</li>
</ul>
<ul>
<li>
<a href="https://www.freebsdfoundation.org/">Foundation</a>
<ul>
<li>
<a href="https://www.freebsdfoundation.org/donate/">Monetary Donations</a>
</li>
<li>
<a href="../../donations/index.html#systems">Hardware Donations</a>
</li>
</ul>
</li>
</ul>
</div>
</div>
<div id="content">
<div id="sidewrap">
<div id="sidenav">
<h2 class="blockhide">Section Navigation</h2>
<ul>
<li>
<a href="../../about.html">About</a>
</li>
<li>
<a href="../../features.html">Features</a>
</li>
<li>
<a href="../../applications.html">Applications</a>
</li>
<li>
<a href="../../advocacy/">Advocacy</a>
</li>
<li>
<a href="../../marketing/">Marketing</a>
</li>
<li>
<a href="../../administration.html">Administration</a>
</li>
<li>
<a href="../../news/newsflash.html">News</a>
</li>
<li>
<a href="../../events/events.html">Events</a>
</li>
<li>
<a href="../../news/press.html">Press</a>
</li>
<li>
<a href="../../multimedia/multimedia.html">Multimedia</a>
</li>
<li>
<a href="../../art.html">Artwork</a>
</li>
<li>
<a href="../../logo.html">Logo</a>
</li>
<li>
<a href="../../donations/">Donations</a>
</li>
<li>
<a href="../../copyright/">Legal Notices</a>
</li>
<li>
<a href="../../privacy.html">Privacy Policy</a>
</li>
</ul>
</div>
</div>
<div id="contentwrap"><h1>Introduction</h1><p>The third quarter of 2015, from July to September, was
again a period of busy activity for FreeBSD: for the second quarter
in a row we have the largest report yet published.</p><p>The Foundation continues to play a strong role, bringing
both a developer and evangelist presence to conferences, funding
much of the hardware that the cluster administration team uses to
keep things running, and sponsoring many development projects for
FreeBSD. This quarter we also hear from some of the student projects
funded by Google Summer of Code 2015, ranging a wide gamut from
the bootloader to additional ARM support, but also at a range of
completion status. Some of the GSoC output is in the tree
already, but others could benefit from additional attention to
help out our budding new contributors as their schedules fill with
the return to classes.</p><p>ZFS and the network stack continue to be strong areas for
FreeBSD, with both receiving active maintenance and feature
improvements during this quarter. Substantial work continues on
arm64, potentially putting it on the path toward a promotion to
Tier-1 status, and a new port to the RISC-V architecture has
made great headway in a short period of time. But it is not just
our strengths and exciting new areas that have seen attention this
cycle; there are also some parts of the system that are frequently
perceived as unchanging infrastructure that have received
attention and improvements, with <tt>truss</tt> and
(<tt>k</tt>)<tt>gdb</tt> receiving significant overhauls, new
implementations for the man page tools being brought in, the
website receiving a new skin, and a brand new system for
translating documentation that greatly lowers the barrier to
entry.</p><p>Nonetheless, despite its record length, this report does
not and cannot cover all of the work being done on FreeBSD throughout
the reporting period — there are many bug fixes too minor to
mention here, and developers too busy working on the next project
to write up an entry for the previous project. It is not just the
developers committing to Subversion that comprise the ongoing
activities of FreeBSD, but also the users testing unreleased
code or reporting bugs in released code, and participants on the
mailing lists and forums helping each other solve their problems.
Even the chats on IRC that wander far from the stated topic of a
channel contribute to the community around FreeBSD; it is that
community whose effectiveness and helpfulness is a key component
of the effectiveness and usefulness of FreeBSD itself. Not just to
the developers listed in this report, but to everyone in the
community, thank you for making FreeBSD a great operating system.</p><p><i>—Ben Kaduk</i></p><p><hr /></p><p>Please submit status reports for the fourth quarter of 2015
(from October to December) by January 7, 2016.</p><hr /><h3><a href="#FreeBSD-Team-Reports">FreeBSD Team Reports</a></h3><ul><li><a href="#FreeBSD-Cluster-Administration-Team">FreeBSD Cluster Administration Team</a></li><li><a href="#FreeBSD-Release-Engineering-Team">FreeBSD Release Engineering Team</a></li><li><a href="#The-FreeBSD-Core-Team">The FreeBSD Core Team</a></li></ul><h3><a href="#Projects">Projects</a></h3><ul><li><a href="#automtud:-Better-Jumbo-Frame-Support">automtud: Better Jumbo Frame Support</a></li><li><a href="#bhyve">bhyve</a></li><li><a href="#Clang,-llvm,-lldb,-compiler-rt-and-libc++-Updated-to-3.7.0">Clang, llvm, lldb, compiler-rt and libc++ Updated to 3.7.0</a></li><li><a href="#DTrace-and-TCP">DTrace and TCP</a></li><li><a href="#FreeBSD-on-the-Acer-C720-Chromebook">FreeBSD on the Acer C720 Chromebook</a></li><li><a href="#High-Availability-Clustering-in-CTL">High Availability Clustering in CTL</a></li><li><a href="#Multipath-TCP-for-FreeBSD">Multipath TCP for FreeBSD</a></li><li><a href="#Porting-bhyve-to-ARM-based-Platforms">Porting bhyve to ARM-based Platforms</a></li><li><a href="#Root-Remount">Root Remount</a></li><li><a href="#The-Graphics-Stack-on-FreeBSD">The Graphics Stack on FreeBSD</a></li><li><a href="#The-nosh-Project">The nosh Project</a></li><li><a href="#UEFI-Boot-and-Framebuffer-Support">UEFI Boot and Framebuffer Support</a></li><li><a href="#ZFS-Code-Sync-with-Latest-Illumos">ZFS Code Sync with Latest Illumos</a></li><li><a href="#ZFS-Support-for-UEFI-Boot/Loader">ZFS Support for UEFI Boot/Loader</a></li></ul><h3><a href="#Kernel">Kernel</a></h3><ul><li><a href="#Adding-PCIe-Hot-plug-Support">Adding PCIe Hot-plug Support</a></li><li><a href="#Cavium-LiquidIO-Smart-NIC-Driver">Cavium LiquidIO Smart NIC Driver</a></li><li><a href="#CloudABI:-Pure-Capabilities-Runtime-Environment">CloudABI: Pure Capabilities Runtime Environment</a></li><li><a href="#FreeBSD-Xen">FreeBSD Xen</a></li><li><a href="#ioat(4)-Driver-Import">ioat(4) Driver Import</a></li><li><a href="#IPsec-Upgrades">IPsec Upgrades</a></li></ul><h3><a href="#Architectures">Architectures</a></h3><ul><li><a href="#Atomics">Atomics</a></li><li><a href="#FreeBSD-on-Cavium-ThunderX-(arm64)">FreeBSD on Cavium ThunderX (arm64)</a></li><li><a href="#FreeBSD-on-the-HiKey-ARMv8-Board">FreeBSD on the HiKey ARMv8 Board</a></li><li><a href="#FreeBSD/arm64">FreeBSD/arm64</a></li><li><a href="#FreeBSD/RISC-V-Port">FreeBSD/RISC-V Port</a></li></ul><h3><a href="#Userland-Programs">Userland Programs</a></h3><ul><li><a href="#mandoc-and-roff-Toolchain">mandoc and roff Toolchain</a></li><li><a href="#pkg-1.6">pkg 1.6</a></li><li><a href="#sesutil(8)">sesutil(8)</a></li><li><a href="#truss(1)">truss(1)</a></li><li><a href="#Updates-to-GDB">Updates to GDB</a></li></ul><h3><a href="#Ports">Ports</a></h3><ul><li><a href="#Bringing-GitLab-into-the-Ports-Collection">Bringing GitLab into the Ports Collection</a></li><li><a href="#GNOME-on-FreeBSD">GNOME on FreeBSD</a></li><li><a href="#KDE-on-FreeBSD">KDE on FreeBSD</a></li><li><a href="#Node.js-Modules">Node.js Modules</a></li><li><a href="#Ports-Collection">Ports Collection</a></li><li><a href="#Ports-on-PowerPC">Ports on PowerPC</a></li><li><a href="#Xfce-on-FreeBSD">Xfce on FreeBSD</a></li></ul><h3><a href="#Documentation">Documentation</a></h3><ul><li><a href="#PO-Translation-Project">PO Translation Project</a></li><li><a href="#Website-CSS-Update">Website CSS Update</a></li></ul><h3><a href="#Google-Summer-of-Code">Google Summer of Code</a></h3><ul><li><a href="#Allwinner-A10/A20-Support">Allwinner A10/A20 Support</a></li><li><a href="#mtree-Parsing-and-Manipulation-Library">mtree Parsing and Manipulation Library</a></li><li><a href="#Multiqueue-Testing">Multiqueue Testing</a></li><li><a href="#Update-Ficl-in-Bootloader">Update Ficl in Bootloader</a></li></ul><h3><a href="#Miscellaneous">Miscellaneous</a></h3><ul><li><a href="#The-FreeBSD-Foundation">The FreeBSD Foundation</a></li><li><a href="#ZFSguru">ZFSguru</a></li></ul><ul></ul><hr /><br /><h1><a name="FreeBSD-Team-Reports" href="#FreeBSD-Team-Reports" id="FreeBSD-Team-Reports">FreeBSD Team Reports</a></h1><br /><h2><a name="FreeBSD-Cluster-Administration-Team" href="#FreeBSD-Cluster-Administration-Team" id="FreeBSD-Cluster-Administration-Team">FreeBSD Cluster Administration Team</a></h2><p>
Contact: FreeBSD Cluster Administration Team <<a href="mailto:clusteradm@">clusteradm@</a>>
</p>
<p>The FreeBSD Cluster Administration Team consists of the people
responsible for administering the machines that the project
relies on for its distributed work and communications to be
synchronised.</p>
<p>Our primary cluster has been hosted as a guest in California
for many years. Our ongoing project is relocating the core
functionality to a location in New Jersey with a formal
hosting arrangement. This is an equipment refresh,
consolidation for better use of resources, and for better
continuity of service.</p>
<p>There is a significant amount of behind-the-scenes work to
make this happen. The original cluster was implemented with
a common, shared, assumed-to-be secure network with
ubiquitous NFS everywhere. This structure does not lend
itself well to being distributed across geographically
diverse locations, particularly when Internet transit is
required. The bulk of the work is rebuilding services to be
portable, stand-alone components that do not depend on
shared-network access and are safe enough to use across the
insecure Internet.</p>
<p>Highlights this quarter:</p>
<ul>
<li>Many internal distribution systems switched from rsync to
a distribution mesh using "syncthing".</li>
<li>We have implemented more code/data signing infrastructure
with out-of-band verification.</li>
<li>New 32-core reference build hosts are online.</li>
<li>Internal admbugs switched from bugzilla 4.4 to 5.0 and
packages were made available for the bugmeister team.</li>
<li>Finally switched from varnish3 to varnish4.</li>
<li>We exorcised hub.FreeBSD.org, the last survivor of the
2012 security incident.</li>
<li>vuxml and the legacy portaudit build system were converted
to components and integrated.</li>
<li>https://download.FreeBSD.org/ is nearing completion
(please do not use until officially announced).</li>
<li>A Taiwan node was brought into service for pkg, ftp,
svn, and vuxml mirroring.</li>
<li>One of the freebsd-update mirrors was converted from
lighttpd to nginx due to a data corruption bug.</li>
<li>We completed detachment of the svn repository from the old
cluster and moved it to its new location.</li>
</ul>
<p>Ongoing:</p>
<ul>
<li>The cluster runs a mixture of 11-current and 10-stable as
part of our "eat our own dogfood" project. For
this to be useful, we do monthly cluster refreshes to keep
up with current code.</li>
<li>We build internal base system snapshots every few days
and packages every day.</li>
<li>We also provide support for non-clusteradm-operated
services including jenkins, reviews, portsnap,
freebsd-update, bugzilla, package builders, git, and
mercurial. This varies from as little as maintaining SSL
front-ends through operating servers, distributing data or
building packages/binaries to run.</li>
</ul>
<hr /><h2><a name="FreeBSD-Release-Engineering-Team" href="#FreeBSD-Release-Engineering-Team" id="FreeBSD-Release-Engineering-Team">FreeBSD Release Engineering Team</a></h2><table title="Links" style="white-space: nowrap;"><tr><td>Links</td></tr><tr><td><a href="https://www.freebsd.org/releases/10.2R/announce.html" title="https://www.freebsd.org/releases/10.2R/announce.html">FreeBSD 10.2-RELEASE announcement</a></td><td>
URL: <a href="https://www.freebsd.org/releases/10.2R/announce.html" title="FreeBSD 10.2-RELEASE announcement">https://www.freebsd.org/releases/10.2R/announce.html</a></td></tr><tr><td><a href="http://ftp.freebsd.org/pub/FreeBSD/snapshots/ISO-IMAGES/" title="http://ftp.freebsd.org/pub/FreeBSD/snapshots/ISO-IMAGES/">FreeBSD development snapshots</a></td><td>
URL: <a href="http://ftp.freebsd.org/pub/FreeBSD/snapshots/ISO-IMAGES/" title="FreeBSD development snapshots">http://ftp.freebsd.org/pub/FreeBSD/snapshots/ISO-IMAGES/</a></td></tr><tr><td><a href="https://www.freebsd.org/releases/10.3R/schedule.html" title="https://www.freebsd.org/releases/10.3R/schedule.html">FreeBSD 10.3-RELEASE schedule</a></td><td>
URL: <a href="https://www.freebsd.org/releases/10.3R/schedule.html" title="FreeBSD 10.3-RELEASE schedule">https://www.freebsd.org/releases/10.3R/schedule.html</a></td></tr><tr><td><a href="https://www.freebsd.org/releases/11.0R/schedule.html" title="https://www.freebsd.org/releases/11.0R/schedule.html">FreeBSD 11.0-RELEASE schedule</a></td><td>
URL: <a href="https://www.freebsd.org/releases/11.0R/schedule.html" title="FreeBSD 11.0-RELEASE schedule">https://www.freebsd.org/releases/11.0R/schedule.html</a></td></tr></table><p>
Contact: FreeBSD Release Engineering Team <<a href="mailto:re@FreeBSD.org">re@FreeBSD.org</a>>
</p>
<p>The FreeBSD Release Engineering Team is responsible for setting
and publishing release schedules for official project releases
of FreeBSD, announcing code freezes, and maintaining the
respective branches, among other things.</p>
<p>In mid-August, the FreeBSD Release Engineering Team
released FreeBSD 10.2-RELEASE, two weeks earlier than the
original schedule anticipated.</p>
<p>The FreeBSD Release Engineering Team would like to thank
all that have tested the BETA and RC builds and reported
issues during the release cycle.</p>
<p>The FreeBSD Release Engineering Team, with approval from
the FreeBSD Core Team, appointed Marius Strobl as the Deputy
Lead.</p>
<p>This project was sponsored by The FreeBSD Foundation.</p><hr /><h2><a name="The-FreeBSD-Core-Team" href="#The-FreeBSD-Core-Team" id="The-FreeBSD-Core-Team">The FreeBSD Core Team</a></h2><p>
Contact: FreeBSD Core Team <<a href="mailto:core@FreeBSD.org">core@FreeBSD.org</a>>
</p>
<p>The biggest task handled by the Core Team during this quarter
was developing and publishing the new Code of Conduct. The
Code of Conduct describes how people are expected to behave on
all FreeBSD official communication channels, as well as how
developers and other people involved with the project are to
behave when representing the project in public.</p>
<p>The Code of Conduct was generally well received and elicited
numerous comments and suggestions for improvements from the
community, many of which have been integrated.</p>
<p>The next task handled by Core was the restoration of Babak
Farrokhi's ports commit bit. Babak resides in Iran. A few
years ago, legal advice suggested that allowing contributions
from Iranian residents might violate US trade sanctions.
After several years, Core was asked to revisit the issue. On
the advice of counsel, Core decided that it could restore
commit privileges to commmitters residing in Iran.</p>
<p>The CTM service came under security review. Given that the
lack of use of routine authenticity checking made the
injection of trivial exploit code relatively easy, the service
was held to be too risky to continue as an official part of
the FreeBSD base system. CTM has very few remaining users but
they should be able to install CTM from the Ports Collection
in order to continue doing so.</p>
<p>Core learned that ISC was ceasing its hosting service, which
has entailed a rapid rework of plans on the movement of
significant portions of the FreeBSD cluster to that data center.
Cluster administration has taken ownership of the situation
and is making progress.</p>
<p>Core fielded an enquiry about NextBSD and whether this should
be the future direction for the whole FreeBSD project. Core's
position is that NextBSD is an interesting project, and we
regard it, like the other BSD projects, as a potential source
of good ideas. However, we currently have no plans to adopt
NextBSD as the official FreeBSD distribution.</p>
<p>Beyond these issues, Core also spent time in various routine
activities. During this quarter we issued three new src
commit bits, and took none in for safekeeping. Welcome to
Allan Jude, Marcelo Araujo, and Andriy Voskoboinyk.</p>
<hr /><br /><h1><a name="Projects" href="#Projects" id="Projects">Projects</a></h1><br /><h2><a name="automtud:-Better-Jumbo-Frame-Support" href="#automtud:-Better-Jumbo-Frame-Support" id="automtud:-Better-Jumbo-Frame-Support">automtud: Better Jumbo Frame Support</a></h2><table title="Links" style="white-space: nowrap;"><tr><td>Links</td></tr><tr><td><a href="https://github.com/jmgurney/automtud" title="https://github.com/jmgurney/automtud">jmgurney/automtud on github</a></td><td>
URL: <a href="https://github.com/jmgurney/automtud" title="jmgurney/automtud on github">https://github.com/jmgurney/automtud</a></td></tr></table><p>
Contact:
John-Mark
Gurney
<<a href="mailto:jmg@FreeBSD.org">jmg@FreeBSD.org</a>>
</p>
<p>The <tt>automtud</tt> script will allow a FreeBSD machine to
send jumbo frames to machines that support them, while using
normal-sized frames for other machines.</p>
<p>There are various advantages to using jumbo frames, such as
reduced protocol overhead. It also means that TCP streams
will not be segmented as much, although TSO helps mitigate the
disadvantages of such segmentation. In cases where LRO does
not work well, fewer packets will be received.</p>
<p>The script currently does not restore the system to its
original state when it exits. This means that you must
manually change the interface MTU and delete host routes
after stopping the script.
</p>
<h3>Open tasks:</h3><ol><li>
<p>Fix up various Ethernet drivers to better support jumbo
frames. Most Ethernet drivers, though they support
scatter/gather, use a physically contiguous zone to do so,
which can cause resource shortages.</p>
</li><li>
<p>More testing is needed to ensure that things behave as
expected. This means that when running the script,
communication to all machines functions normally, without
slowdown or connectivity issues. Check
<tt>vmstat -z | grep mbuf</tt> to ensure that such issues
are not due to running out of <tt>jumbo_9k</tt> or
<tt>jumbo_16k</tt> buffers due to Ethernet driver
issues.</p>
</li></ol><hr /><h2><a name="bhyve" href="#bhyve" id="bhyve">bhyve</a></h2><table title="Links" style="white-space: nowrap;"><tr><td>Links</td></tr><tr><td><a href="http://www.bhyve.org" title="http://www.bhyve.org">bhyve FAQ and talks</a></td><td>
URL: <a href="http://www.bhyve.org" title="bhyve FAQ and talks">http://www.bhyve.org</a></td></tr><tr><td><a href="https://wiki.FreeBSD.org/SummerOfCode2015/NE2000EmulationForBhyve" title="https://wiki.FreeBSD.org/SummerOfCode2015/NE2000EmulationForBhyve">NE2000 device emulation GSoC project</a></td><td>
URL: <a href="https://wiki.FreeBSD.org/SummerOfCode2015/NE2000EmulationForBhyve" title="NE2000 device emulation GSoC project">https://wiki.FreeBSD.org/SummerOfCode2015/NE2000EmulationForBhyve</a></td></tr><tr><td><a href="https://wiki.FreeBSD.org/SummerOfCode2015/PortingBhyveToArm" title="https://wiki.FreeBSD.org/SummerOfCode2015/PortingBhyveToArm">Porting bhyve to ARM GSoC project</a></td><td>
URL: <a href="https://wiki.FreeBSD.org/SummerOfCode2015/PortingBhyveToArm" title="Porting bhyve to ARM GSoC project">https://wiki.FreeBSD.org/SummerOfCode2015/PortingBhyveToArm</a></td></tr><tr><td><a href="https://wiki.FreeBSD.org/SummerOfCode2015/ptnetmapOnBhyve" title="https://wiki.FreeBSD.org/SummerOfCode2015/ptnetmapOnBhyve">ptnetmap support in bhyve GSoC project</a></td><td>
URL: <a href="https://wiki.FreeBSD.org/SummerOfCode2015/ptnetmapOnBhyve" title="ptnetmap support in bhyve GSoC project">https://wiki.FreeBSD.org/SummerOfCode2015/ptnetmapOnBhyve</a></td></tr><tr><td><a href="http://docs.FreeBSD.org/cgi/mid.cgi?561187FB.8040506" title="http://docs.FreeBSD.org/cgi/mid.cgi?561187FB.8040506">Windows support</a></td><td>
URL: <a href="http://docs.FreeBSD.org/cgi/mid.cgi?561187FB.8040506" title="Windows support">http://docs.FreeBSD.org/cgi/mid.cgi?561187FB.8040506</a></td></tr><tr><td><a href="http://docs.FreeBSD.org/cgi/mid.cgi?56118B2B.2040101" title="http://docs.FreeBSD.org/cgi/mid.cgi?56118B2B.2040101">Illumos support</a></td><td>
URL: <a href="http://docs.FreeBSD.org/cgi/mid.cgi?56118B2B.2040101" title="Illumos support">http://docs.FreeBSD.org/cgi/mid.cgi?56118B2B.2040101</a></td></tr></table><p>
Contact:
Peter
Grehan
<<a href="mailto:grehan@FreeBSD.org">grehan@FreeBSD.org</a>>
<br />
Contact:
Neel
Natu
<<a href="mailto:neel@FreeBSD.org">neel@FreeBSD.org</a>>
<br />
Contact:
Tycho
Nightingale
<<a href="mailto:tychon@FreeBSD.org">tychon@FreeBSD.org</a>>
<br />
Contact:
Allan
Jude
<<a href="mailto:freebsd@allanjude.com">freebsd@allanjude.com</a>>
<br />
Contact:
Michael
Dexter
<<a href="mailto:editor@callfortesting.org">editor@callfortesting.org</a>>
</p>
<p><tt>bhyve</tt> is a hypervisor that runs on the FreeBSD/amd64
platform. At present, it runs FreeBSD (8.x or later), Linux
i386/x64, OpenBSD i386/amd64, NetBSD/amd64, Illumos, and
Windows Vista/7/8/10/2008r2/2012r2/2016 x64 guests. Current
development is focused on enabling additional guest operating
systems and implementing features found in other
hypervisors.</p>
<p>A combined <tt>bhyve</tt> and ZFS BoF was held during vBSDCon
2015, hosted by Michael Dexter and Allan Jude. Questions
asked about <tt>bhyve</tt> included live migration and
suspend/resume support, and configurations using ZFS.</p>
<p>Three <tt>bhyve</tt>-related projects were selected for GSoC
2015: NE2000 device emulation, porting <tt>bhyve</tt> to ARM,
and ptnetmap support.</p>
<p>The major enhancement for <tt>bhyve</tt> this quarter was
support for external firmware, along with a port of the Intel
edk2 UEFI firmware. This allows <tt>bhyve</tt> to run Windows
in headless mode, and also Illumos.</p>
<h3>Open tasks:</h3><ol><li>
<p>Improve the documentation.</p>
</li><li>
<p><tt>bhyveucl</tt> is a work-in-progress script for
starting <tt>bhyve</tt> instances based on a libUCL config
file. More information at
<a href="https://github.com/allanjude/bhyveucl" shape="rect">https://github.com/allanjude/bhyveucl</a>.</p>
</li><li>
<p>Add support for virtio-scsi.</p>
</li><li>
<p>Flexible networking backends: wanproxy, vhost-net.</p>
</li><li>
<p>Support running <tt>bhyve</tt> as non-root.</p>
</li><li>
<p>Add filters for popular VM file formats (VMDK, VHD,
QCOW2).</p>
</li><li>
<p>Implement an abstraction layer for video (no X11 or SDL in
base system).</p>
</li><li>
<p>Suspend/resume support.</p>
</li><li>
<p>Live migration.</p>
</li><li>
<p>Nested VT-x support (<tt>bhyve</tt> in <tt>bhyve</tt>).</p>
</li><li>
<p>Support for other architectures (ARM, MIPS, PPC).</p>
</li></ol><hr /><h2><a name="Clang,-llvm,-lldb,-compiler-rt-and-libc++-Updated-to-3.7.0" href="#Clang,-llvm,-lldb,-compiler-rt-and-libc++-Updated-to-3.7.0" id="Clang,-llvm,-lldb,-compiler-rt-and-libc++-Updated-to-3.7.0">Clang, llvm, lldb, compiler-rt and libc++ Updated to 3.7.0</a></h2><table title="Links" style="white-space: nowrap;"><tr><td>Links</td></tr><tr><td><a href="http://llvm.org/releases/3.7.0/docs/ReleaseNotes.html" title="http://llvm.org/releases/3.7.0/docs/ReleaseNotes.html">LLVM 3.7.0 Release Notes</a></td><td>
URL: <a href="http://llvm.org/releases/3.7.0/docs/ReleaseNotes.html" title="LLVM 3.7.0 Release Notes">http://llvm.org/releases/3.7.0/docs/ReleaseNotes.html</a></td></tr><tr><td><a href="http://llvm.org/releases/3.7.0/tools/clang/docs/ReleaseNotes.html" title="http://llvm.org/releases/3.7.0/tools/clang/docs/ReleaseNotes.html">Clang 3.7.0 Release Notes</a></td><td>
URL: <a href="http://llvm.org/releases/3.7.0/tools/clang/docs/ReleaseNotes.html" title="Clang 3.7.0 Release Notes">http://llvm.org/releases/3.7.0/tools/clang/docs/ReleaseNotes.html</a></td></tr><tr><td><a href="https://bugs.freebsd.org/201377" title="https://bugs.freebsd.org/201377">PR 201377 Ports exp-run</a></td><td>
URL: <a href="https://bugs.freebsd.org/201377" title="PR 201377 Ports exp-run">https://bugs.freebsd.org/201377</a></td></tr></table><p>
Contact:
Dimitry
Andric
<<a href="mailto:dim@FreeBSD.org">dim@FreeBSD.org</a>>
<br />
Contact:
Ed
Maste
<<a href="mailto:emaste@FreeBSD.org">emaste@FreeBSD.org</a>>
<br />
Contact:
Roman
Divacky
<<a href="mailto:rdivacky@FreeBSD.org">rdivacky@FreeBSD.org</a>>
<br />
Contact:
Davide
Italiano
<<a href="mailto:davide@FreeBSD.org">davide@FreeBSD.org</a>>
</p>
<p>We have updated <tt>clang</tt>, <tt>llvm</tt>, <tt>lldb</tt>,
<tt>compiler-rt</tt>, and <tt>libc++</tt> in base to the 3.7.0
release. These all contain numerous improvements. Please see
the linked release notes for more detailed information. This
brings us completely up-to-date with the latest upstream
versions of these projects. Meanwhile, Ed Maste is working
on importing the llvm.org version of <tt>libunwind</tt>.</p>
<p>Like the 3.5.x and 3.6.x releases, these components require
C++11 support to build. At this point, FreeBSD 10.0 and later
provide that support, at least on x86. Currently, there are no
solid plans to MFC these versions to any stable branches, due
to the difficulties this would introduce for the usual upgrade
scenarios.</p>
<p>Thanks to Ed Maste and Andrew Turner for their help with this
import, and thanks to Antoine Brodin for several ports
exp-runs.</p>
<p>During the first ports exp-run, some major problems were
found, one introduced by a <tt>clang</tt> bug which caused
<tt>pow()</tt> to generate floating point exceptions in some
cases. This in turn caused <tt>libpng</tt> to fail to build,
and one bug in <tt>libjpeg-turbo</tt>, which was caused by
undefined behavior. These two problems took some time to fix,
after which another exp-run was done, and this resulted in
about a dozen newly failed ports. For almost all of these new
failures, fixes were submitted and linked to the original PR
201377 for the exp-run.</p>
<h3>Open tasks:</h3><ol><li>
Commit ports fixes for dependencies of PR 201377.
</li><li>
Test and report issues with the new tool chain.
</li></ol><hr /><h2><a name="DTrace-and-TCP" href="#DTrace-and-TCP" id="DTrace-and-TCP">DTrace and TCP</a></h2><table title="Links" style="white-space: nowrap;"><tr><td>Links</td></tr><tr><td><a href="https://svnweb.freebsd.org/changeset/base/287759" title="https://svnweb.freebsd.org/changeset/base/287759">Commit adding trace points replacing TCPDEBUG</a></td><td>
URL: <a href="https://svnweb.freebsd.org/changeset/base/287759" title="Commit adding trace points replacing TCPDEBUG">https://svnweb.freebsd.org/changeset/base/287759</a></td></tr></table><p>
Contact:
George
Neville-Neil
<<a href="mailto:gnn@FreeBSD.org">gnn@FreeBSD.org</a>>
</p>
<p>With the advent of DTrace we are able to replace many of
the internal kernel debugging options, such as TCPDEBUG, with
statically defined tracepoints (SDTs). Tracepoints have now
been added to the system that replicate the functionality of
the TCPDEBUG kernel option. No new kernel options need to be
added — they are standard with any kernel that has
DTrace, which is included in the default GENERIC kernels in
10.X and HEAD.</p>
<p>This project was sponsored by Limelight Networks.</p><hr /><h2><a name="FreeBSD-on-the-Acer-C720-Chromebook" href="#FreeBSD-on-the-Acer-C720-Chromebook" id="FreeBSD-on-the-Acer-C720-Chromebook">FreeBSD on the Acer C720 Chromebook</a></h2><table title="Links" style="white-space: nowrap;"><tr><td>Links</td></tr><tr><td><a href="http://blog.grem.de/pages/c720.html" title="http://blog.grem.de/pages/c720.html">Blog post on how to get things working</a></td><td>
URL: <a href="http://blog.grem.de/pages/c720.html" title="Blog post on how to get things working">http://blog.grem.de/pages/c720.html</a></td></tr><tr><td><a href="http://blog.grem.de/sysadmin/FreeBSD-On-AcerC720-Merged-2015-07-25-23-30.html" title="http://blog.grem.de/sysadmin/FreeBSD-On-AcerC720-Merged-2015-07-25-23-30.html">Blog post with links to commits in HEAD</a></td><td>
URL: <a href="http://blog.grem.de/sysadmin/FreeBSD-On-AcerC720-Merged-2015-07-25-23-30.html" title="Blog post with links to commits in HEAD">http://blog.grem.de/sysadmin/FreeBSD-On-AcerC720-Merged-2015-07-25-23-30.html</a></td></tr><tr><td><a href="http://blog.grem.de/sysadmin/FreeBSD-10.2-On-AcerC720-2015-09-19-17-00.html" title="http://blog.grem.de/sysadmin/FreeBSD-10.2-On-AcerC720-2015-09-19-17-00.html">Backported patch for 10.2-RELEASE</a></td><td>
URL: <a href="http://blog.grem.de/sysadmin/FreeBSD-10.2-On-AcerC720-2015-09-19-17-00.html" title="Backported patch for 10.2-RELEASE">http://blog.grem.de/sysadmin/FreeBSD-10.2-On-AcerC720-2015-09-19-17-00.html</a></td></tr></table><p>
Contact:
Michael
Gmelin
<<a href="mailto:freebsd@grem.de">freebsd@grem.de</a>>
</p>
<p>The Acer C720 Chromebook is an affordable (under $200) and
powerful little laptop that provides a battery life of up to
six hours running FreeBSD. It is a great machine for travelling
and coding in general. The machine is fully functional,
meaning that all essential devices work: keyboard, trackpad,
light sensor, backlight control, display in VESA mode (fast),
external Display on HDMI (only VESA mirror mode), sound, USB
ports, SD card slot, camera, and Atheros wireless.</p>
<p>This quarter, this project extended previous work on the
boot process and keyboard driver as well as the
<tt>smbus(4)</tt> driver. It added three new drivers:
<tt>ig4(4)</tt> for the I2C bus, <tt>cyapa(4)</tt> for the
trackpad, and <tt>isl(4)</tt>, for the ambient light sensor.</p>
<p>Much of the development was originally done in late 2014.
Since then, the patches have been massively improved and
merged into HEAD, so that all relevant devices work without
manual patching.</p>
<p>For those who are unable to run HEAD, there is a
backported patch to 10.2-RELEASE.</p>
<p>Thanks to everyone who helped in the process. I couldn't
have done it without you (you know who you are).</p>
<hr /><h2><a name="High-Availability-Clustering-in-CTL" href="#High-Availability-Clustering-in-CTL" id="High-Availability-Clustering-in-CTL">High Availability Clustering in CTL</a></h2><p>
Contact:
Alexander
Motin
<<a href="mailto:mav@FreeBSD.org">mav@FreeBSD.org</a>>
</p>
<p>CAM Target Layer (CTL), when originally developed by
Copan/SGI, had support for High Availability clustering.
Unfortunately, significant portions of the HA code were never
published with the main body of the source code. Now, the
missing part has been reimplemented from scratch, fixed, and
improved.</p>
<p>This code supports dual-node HA with Asynchronous LUN Unit
Access (ALUA) in four modes:</p>
<ul>
<li>Active/Unavailable without interlink between nodes, where
the secondary node can report nothing except its
presence.</li>
<li>Active/Standby with the secondary node handling only basic
LUN discovery and reservation, synchronizing state and
command execution with the primary node through the
interlink.</li>
<li>Active/Active with both nodes processing commands and
accessing the backing storage, synchronizing state and
command execution with the primary node through the
interlink.</li>
<li>Active/Active with the secondary node having no backing
storage access, but instead working as a proxy, transferring
all commands to the first node for execution through the
interlink.</li>
</ul>
<p>In the case of lost interlink connectivity to primary node,
the secondary node falls into the Transitioning state, which
is like Unavailable and cannot answer most requests, but makes
the initiator wait for recovery or cluster failover.</p>
<p>CTL also got a large number of other improvements, including
support for emulation of CD/DVD drives and removable disks,
live LUN reconfiguration, and so on.</p>
<p>The code is committed to FreeBSD head and was recently merged to
the stable/10 branch.</p>
<p>This project was sponsored by iXsystems, Inc..</p><hr /><h2><a name="Multipath-TCP-for-FreeBSD" href="#Multipath-TCP-for-FreeBSD" id="Multipath-TCP-for-FreeBSD">Multipath TCP for FreeBSD</a></h2><table title="Links" style="white-space: nowrap;"><tr><td>Links</td></tr><tr><td><a href="http://caia.swin.edu.au/urp/newtcp/mptcp/" title="http://caia.swin.edu.au/urp/newtcp/mptcp/">MPTCP for FreeBSD Project Website</a></td><td>
URL: <a href="http://caia.swin.edu.au/urp/newtcp/mptcp/" title="MPTCP for FreeBSD Project Website">http://caia.swin.edu.au/urp/newtcp/mptcp/</a></td></tr><tr><td><a href="https://bitbucket.org/nw-swin/caia-mptcp-freebsd/" title="https://bitbucket.org/nw-swin/caia-mptcp-freebsd/">MPTCP for FreeBSD Source Repository</a></td><td>
URL: <a href="https://bitbucket.org/nw-swin/caia-mptcp-freebsd/" title="MPTCP for FreeBSD Source Repository">https://bitbucket.org/nw-swin/caia-mptcp-freebsd/</a></td></tr></table><p>
Contact:
Nigel
Williams
<<a href="mailto:njwilliams@swin.edu.au">njwilliams@swin.edu.au</a>>
</p>
<p>Multipath TCP (MPTCP) is an extension to TCP that allows
for the use of multiple network interfaces on a standard TCP
session. The addition of new addresses and scheduling of data
across them occurs transparently from the perspective of the
TCP application.</p>
<p>The goal of this project is to deliver an MPTCP kernel
patch that interoperates with the reference MPTCP
implementation, along with additional enhancements to aid
network research.</p>
<p>The v0.5 patch was released, which is the first patch
of the re-written implementation. We are in the process of
documenting the new design and addressing some feedback as
provided from the community.</p>
<p>Work has commenced on improved input handling, as the current
method of receiving and reassembling segments has been the
cause of some instability and stalls during connection
shutdown. This will involve re-using the subflow receive
buffers and an upcall to enqueue a MP-layer reassembly task
without the need to take a lock on the MP control block. The
improvements should also allow bypassing <tt>mptcp_usrreq</tt>
for standard TCP connections.</p>
<p>The MPTCP commit history was synchronized with
hg-beta.FreeBSD.org, and we have made the repository available on
BitBucket (see links). Future patch releases will be tagged
there. The tree is now merged with FreeBSD head weekly. An
updated v0.51 patch is ready for release.</p>
<p>This project was sponsored by The FreeBSD Foundation.</p><h3>Open tasks:</h3><ol><li>
<p>Release the v0.51 patch.</p>
</li><li>
<p>Populate documentation and the issue tracker on the
BitBucket repository.</p>
</li><li>
<p>Improvements to receive-side code before further
testing.</p>
</li><li>
<p>Prepare a technical report detailing the design of the
current patch.</p>
</li></ol><hr /><h2><a name="Porting-bhyve-to-ARM-based-Platforms" href="#Porting-bhyve-to-ARM-based-Platforms" id="Porting-bhyve-to-ARM-based-Platforms">Porting bhyve to ARM-based Platforms</a></h2><table title="Links" style="white-space: nowrap;"><tr><td>Links</td></tr><tr><td><a href="https://wiki.FreeBSD.org/SummerOfCode2015/PortingBhyveToArm" title="https://wiki.FreeBSD.org/SummerOfCode2015/PortingBhyveToArm">Project Wiki page</a></td><td>
URL: <a href="https://wiki.FreeBSD.org/SummerOfCode2015/PortingBhyveToArm" title="Project Wiki page">https://wiki.FreeBSD.org/SummerOfCode2015/PortingBhyveToArm</a></td></tr></table><p>
Contact:
Mihai
Carabas
<<a href="mailto:mihai@FreeBSD.org">mihai@FreeBSD.org</a>>
<br />
Contact:
Peter
Grehan
<<a href="mailto:grehan@FreeBSD.org">grehan@FreeBSD.org</a>>
</p>
<p>This summer we have started porting <tt>bhyve</tt> onto ARMv7
platforms. The low-level routines for ARM processors were
rewritten while trying to preserve the hypervisor API
originally created for the x86 architectures. We managed to
bring up a FreeBSD guest up to the point of initializing
interrupts. There is still work to be done in order to
virtualize the interrupts and the timer. Our short-term plan
after finishing the interrupts and the timer is porting to a
real hardware platform (Cubie2).</p>
<h3>Open tasks:</h3><ol><li>
<p>Virtualize interrupts and timer.</p>
</li><li>
<p>Port to a real hardware platform.</p>
</li><li>
<p>Create SMP support for bhyve-on-arm.</p>
</li><li>
<p>Port to ARMv8.</p>
</li></ol><hr /><h2><a name="Root-Remount" href="#Root-Remount" id="Root-Remount">Root Remount</a></h2><table title="Links" style="white-space: nowrap;"><tr><td>Links</td></tr><tr><td><a href="https://reviews.freebsd.org/D3693" title="https://reviews.freebsd.org/D3693">Userland code review</a></td><td>
URL: <a href="https://reviews.freebsd.org/D3693" title="Userland code review">https://reviews.freebsd.org/D3693</a></td></tr></table><p>
Contact:
Edward Tomasz
Napierala
<<a href="mailto:trasz@FreeBSD.org">trasz@FreeBSD.org</a>>
</p>
<p>A feature long missing from FreeBSD was the ability to boot up
with a temporary rootfs, configure the kernel to be able to
access the real rootfs, and then replace the temporary root
with the real one. In Linux, this functionality is known as
pivot_root. The reroot project aims to provide similar
functionality in a different, slightly more user-friendly, way.
Simply put, from the user's point of view it is as simple as
running <tt>reboot -r</tt>. The system performs a partial
shutdown, killing all processes and unmounting the rootfs, and
then partial bringup, mounting the new rootfs, running init,
and running the startup scripts as usual.</p>
<p>The kernel part of the project has been committed to
11-CURRENT. The userland part is at the "finishing touches"
stage, and is expected to be committed soon. A merge to
stable/10 is planned and reroot support is planned be included
in FreeBSD 10.3.</p>
<p>This project was sponsored by The FreeBSD Foundation.</p><hr /><h2><a name="The-Graphics-Stack-on-FreeBSD" href="#The-Graphics-Stack-on-FreeBSD" id="The-Graphics-Stack-on-FreeBSD">The Graphics Stack on FreeBSD</a></h2><table title="Links" style="white-space: nowrap;"><tr><td>Links</td></tr><tr><td><a href="https://wiki.FreeBSD.org/Graphics" title="https://wiki.FreeBSD.org/Graphics">Graphics stack roadmap and supported hardware matrix</a></td><td>
URL: <a href="https://wiki.FreeBSD.org/Graphics" title="Graphics stack roadmap and supported hardware matrix">https://wiki.FreeBSD.org/Graphics</a></td></tr><tr><td><a href="http://blogs.freebsdish.org/graphics/" title="http://blogs.freebsdish.org/graphics/">Graphics stack team blog</a></td><td>
URL: <a href="http://blogs.freebsdish.org/graphics/" title="Graphics stack team blog">http://blogs.freebsdish.org/graphics/</a></td></tr><tr><td><a href="https://github.com/freebsd/freebsd-ports-graphics" title="https://github.com/freebsd/freebsd-ports-graphics">Ports development tree on GitHub</a></td><td>
URL: <a href="https://github.com/freebsd/freebsd-ports-graphics" title="Ports development tree on GitHub">https://github.com/freebsd/freebsd-ports-graphics</a></td></tr></table><p>
Contact:
FreeBSD Graphics team
<<a href="mailto:freebsd-x11@FreeBSD.org">freebsd-x11@FreeBSD.org</a>>
</p>
<p>The Mesa ports were updated to 10.6.8. At the same time, the
ports received a major overhaul to make sure all ports are
correctly configured. Dual version support was removed.
There is only one Mesa version for all supported FreeBSD
versions. The <tt>libosmesa</tt> port, which provided
the off-screen version of
Mesa, was merged into the Mesa framework.</p>
<p>Another big item that was included in the Mesa port is
OpenCL. There are two GPU-based OpenCL implementations:
<tt>lang/clover</tt> for supported Radeon cards, and
<tt>lang/beignet</tt> for supported Intel cards (currently
only Ivybridge). Thanks go to Johannes Dieterich, O.
Hartmann, and Koop Mast for making this happen.</p>
<p>Now that Mesa is up-to-date, we can apply the same update
procedure to the X.Org server. It is currently at 1.14, and
an update to 1.17 is ready. It will be committed shortly.</p>
<p>On the kernel side, progress has been made with the i915
update. The driver is able to attach. There are some reports
that the X.Org server starts but Mesa is unhappy, so
acceleration does not work yet. If you want to test,
instructions will be posted on the wiki in the i915 update
article (see links). At this stage, we can only accept
patches, though — we will not be able to provide
support.</p>
<p>We attended two conferences: XDC 2015 in Toronto and
EuroBSDcon 2015 in Stockholm. Reports will be posted on the
blog.</p>
<h3>Open tasks:</h3><ol><li>
<p>See the Graphics wiki page for up-to-date information.</p>
</li></ol><hr /><h2><a name="The-nosh-Project" href="#The-nosh-Project" id="The-nosh-Project">The nosh Project</a></h2><table title="Links" style="white-space: nowrap;"><tr><td>Links</td></tr><tr><td><a href="http://homepage.ntlworld.com./jonathan.deboynepollard/Softwares/nosh.html" title="http://homepage.ntlworld.com./jonathan.deboynepollard/Softwares/nosh.html">Introduction and blurb</a></td><td>
URL: <a href="http://homepage.ntlworld.com./jonathan.deboynepollard/Softwares/nosh.html" title="Introduction and blurb">http://homepage.ntlworld.com./jonathan.deboynepollard/Softwares/nosh.html</a></td></tr><tr><td><a href="http://homepage.ntlworld.com./jonathan.deboynepollard/Softwares/nosh/freebsd-binary-packages.html" title="http://homepage.ntlworld.com./jonathan.deboynepollard/Softwares/nosh/freebsd-binary-packages.html">FreeBSD binary packages</a></td><td>
URL: <a href="http://homepage.ntlworld.com./jonathan.deboynepollard/Softwares/nosh/freebsd-binary-packages.html" title="FreeBSD binary packages">http://homepage.ntlworld.com./jonathan.deboynepollard/Softwares/nosh/freebsd-binary-packages.html</a></td></tr><tr><td><a href="http://homepage.ntlworld.com./jonathan.deboynepollard/Softwares/nosh/timorous-admin-installation-how-to.html" title="http://homepage.ntlworld.com./jonathan.deboynepollard/Softwares/nosh/timorous-admin-installation-how-to.html">Installation How-To</a></td><td>
URL: <a href="http://homepage.ntlworld.com./jonathan.deboynepollard/Softwares/nosh/timorous-admin-installation-how-to.html" title="Installation How-To">http://homepage.ntlworld.com./jonathan.deboynepollard/Softwares/nosh/timorous-admin-installation-how-to.html</a></td></tr><tr><td><a href="http://homepage.ntlworld.com./jonathan.deboynepollard/Softwares/nosh/roadmap.html" title="http://homepage.ntlworld.com./jonathan.deboynepollard/Softwares/nosh/roadmap.html">Roadmap</a></td><td>
URL: <a href="http://homepage.ntlworld.com./jonathan.deboynepollard/Softwares/nosh/roadmap.html" title="Roadmap">http://homepage.ntlworld.com./jonathan.deboynepollard/Softwares/nosh/roadmap.html</a></td></tr><tr><td><a href="http://homepage.ntlworld.com./jonathan.deboynepollard/Softwares/nosh/commands.html" title="http://homepage.ntlworld.com./jonathan.deboynepollard/Softwares/nosh/commands.html">Commands</a></td><td>
URL: <a href="http://homepage.ntlworld.com./jonathan.deboynepollard/Softwares/nosh/commands.html" title="Commands">http://homepage.ntlworld.com./jonathan.deboynepollard/Softwares/nosh/commands.html</a></td></tr><tr><td><a href="http://homepage.ntlworld.com./jonathan.deboynepollard/Softwares/nosh/guide/index.html" title="http://homepage.ntlworld.com./jonathan.deboynepollard/Softwares/nosh/guide/index.html">A slightly outdated nosh Guide</a></td><td>
URL: <a href="http://homepage.ntlworld.com./jonathan.deboynepollard/Softwares/nosh/guide/index.html" title="A slightly outdated nosh Guide">http://homepage.ntlworld.com./jonathan.deboynepollard/Softwares/nosh/guide/index.html</a></td></tr></table><p>
Contact:
Jonathan
de Boyne Pollard
<<a href="mailto:J.deBoynePollard-newsgroups@NTLWorld.COM">J.deBoynePollard-newsgroups@NTLWorld.COM</a>>
</p>
<p>The nosh project is a suite of system-level utilities for
initializing, running, and shutting down BSD systems, and for
managing daemons, terminals, and logging. It supersedes BSD
<tt>init</tt> and the NetBSD <tt>rc.d</tt> system, drawing
inspiration from Solaris SMF for named milestones,
daemontools-encore for service control/status mechanisms,
UCSPI, and IBM AIX for separated service and system
management. It comprises a range of compatibility mechanisms,
including shims for familiar commands from other systems, and
an automatic import mechanism that takes existing
configuration data from <tt>/etc/fstab</tt>,
<tt>/etc/rc.conf{,.local}</tt>, <tt>/etc/ttys</tt>, and
elsewhere, applying them to its native service definitions and
creating additional native services. It is portable
(including to Linux) and composable, it provides a migration
path from the world of systemd Linux, and it does not require new
kernel APIs. It provides clean service environments,
orderings and dependencies between services, parallelized
startup and shutdown (including <tt>fsck</tt>), strictly
size-capped and autorotated logging, the service manager as a
"subreaper", and uses <tt>kevent(2)</tt> for
event-driven parallelism.</p>
<p>The past few months have seen a growth in the import
mechanism, with full import of <tt>/etc/fstab</tt> and
<tt>/etc/ttys</tt> available in version 1.18 in July, and
importing PC-BSD Warden and FreeBSD 9 jails, and full import
of <tt>gbde</tt> and <tt>geli</tt> mount/unmount mechanisms in
version 1.21 in October. It has also gained the ability to
automatically re-generate <tt>host.conf</tt> and
<tt>sysctl.conf</tt> whenever their source files change.</p>
<p>Other developments in the past few months include fully
independent shutdown support, no longer relying upon an
externally provided shutdown command from another toolset, and
a full suite of binary packages. As of version 1.20, it
became possible to have a fully-<tt>nosh</tt>-managed system,
on both FreeBSD and Linux, using just precompiled binary
packages.</p>
<p>The biggest task remaining is one that was set a while ago:
the creation of enough native service bundles and ancillary
utilities to entirely supplant the <tt>rc.d</tt> system. A
lot of this has been achieved, with the original target list
of 157 items now down to just 39 remaining. These are the
tricky ones, of course, where help is most needed.
</p>
<h3>Open tasks:</h3><ol><li>
<p>There are still a few rc scripts left that should be easy
to convert, such as <tt>/etc/rc.d/gptboot</tt> and
<tt>/etc/rc.d/growfs</tt> as oneshot services,
<tt>/etc/rc.d/routing</tt>, and
<tt>/etc/rc.d/kldxref</tt>.</p>
</li><li>
<p>FreeBSD's <tt>/etc/rc.d/bluetooth</tt> is over 360 lines long.
In 2011, Iain Hibbert wrote a "simpler" <tt>bluetooth</tt>
for NetBSD. This can perhaps be used as a simpler basis for
a <tt>nosh</tt> translation.</p>
</li><li>
<p>Add kernel support for passing a <tt>-b</tt> option to
pid 1, and support for a <tt>boot_bare</tt> variable in the loader,
to allow "emergency" (where even no shell dotfiles
are loaded) and "rescue" mode bootstraps, akin to
Linux. (History: The <tt>-b</tt> mechanism and idea date
back to version 2.57d of Miquel van Smoorenburg's System 5
init clone, dated 1995-12-03, and was already known as
"emergency boot" by 1997.)</p>
</li><li>
<p>Add support to FreeBSD's <tt>fsck(8)</tt> for outputting
machine-readable progress reports to a designated file
descriptor, so that <tt>nosh</tt> can provide progress bars
for multiple <tt>fsck</tt>s running in parallel.
<tt>nosh</tt> already provides this functionality on Linux,
where <tt>fsck(8)</tt> does provide machine-readable
output.</p>
</li><li>
<p>Identify when the configuration import system needs to be
triggered, such as when <tt>bsdconfig</tt> alters
configuration files, and create the necessary hooks to
import external configuration changes into nosh.</p>
</li><li>
<p>Investigate how FreeBSD/PC-BSD could be improved by taking
advantage of some available <tt>nosh</tt> package
mechanisms.</p>
</li></ol><hr /><h2><a name="UEFI-Boot-and-Framebuffer-Support" href="#UEFI-Boot-and-Framebuffer-Support" id="UEFI-Boot-and-Framebuffer-Support">UEFI Boot and Framebuffer Support</a></h2><p>
Contact:
Ed
Maste
<<a href="mailto:emaste@freebsd.org">emaste@freebsd.org</a>>
<br />
Contact:
Marcel
Moolenaar
<<a href="mailto:marcel@freebsd.org">marcel@freebsd.org</a>>
</p>
<p>A number of UEFI bug fixes were committed over the last
quarter, improving compatibility with different UEFI
implementations. This includes improvements to EFI's
<tt>vt(4)</tt> framebuffer driver, <tt>efifb</tt>, to handle
systems with high resolution displays and unusual framebuffer
stride values. In particular, this improves compatibility
with a large number of recent Apple MacBook Pros and other
Macs.</p>
<h3>Open tasks:</h3><ol><li>Test FreeBSD head and FreeBSD-STABLE snapshots on
a variety of UEFI implementations.</li></ol><hr /><h2><a name="ZFS-Code-Sync-with-Latest-Illumos" href="#ZFS-Code-Sync-with-Latest-Illumos" id="ZFS-Code-Sync-with-Latest-Illumos">ZFS Code Sync with Latest Illumos</a></h2><p>
Contact:
Alexander
Motin
<<a href="mailto:mav@FreeBSD.org">mav@FreeBSD.org</a>>
</p>
<p>The ZFS codebase received a significant batch of merges, and
is now in sync with the latest Illumos. Among other things, this
update includes:</p>
<ul>
<li>LZ4 is now the default compression algorithm.</li>
<li>Improved prefetch for faster send/receive.</li>
<li>Reduced RAM usage by almost 50% for L2ARC.</li>
<li>Improved I/O aggregation.</li>
<li>Fine-grained checksumming in send/receive stream.</li>
<li>Reduced import time for pools with many datasets.</li>
<li>Reworked and simplified predictive prefetcher.</li>
</ul>
<p>The code is committed to FreeBSD head and was recently merged to
the stable/10 branch.
</p>
<hr /><h2><a name="ZFS-Support-for-UEFI-Boot/Loader" href="#ZFS-Support-for-UEFI-Boot/Loader" id="ZFS-Support-for-UEFI-Boot/Loader">ZFS Support for UEFI Boot/Loader</a></h2><p>
Contact:
Eric
McCorkle
<<a href="mailto:eric@metricspace.net">eric@metricspace.net</a>>
</p>
<p>UEFI-enabled <tt>boot1.efi</tt> and <tt>loader.efi</tt> have
been modified to support loading and booting from a ZFS
filesystem, as described in the previous report. The
ZFS-enabled <tt>loader.efi</tt> can be treated as a
chainloader when using ZFS-enabled GRUB.</p>
<p>During this quarter, several successful tests have been
reported on simple ZFS setups, using both <tt>boot1.efi</tt>
with <tt>loader.efi</tt> as well as GRUB and
<tt>loader.efi</tt>.</p>
<p>Successful tests have been reported for UFS with the
patched <tt>boot1.efi</tt> and <tt>loader.efi</tt> as well.
</p>
<h3>Open tasks:</h3><ol><li>
<p>Test reports are needed for more complex ZFS setups,
such as with log/l2arc vdevs, mirroring, striping, and
raidz.</p>
</li><li>
<p>Pending successful reports, the patch needs to be
reviewed and committed.</p>
</li></ol><hr /><br /><h1><a name="Kernel" href="#Kernel" id="Kernel">Kernel</a></h1><br /><h2><a name="Adding-PCIe-Hot-plug-Support" href="#Adding-PCIe-Hot-plug-Support" id="Adding-PCIe-Hot-plug-Support">Adding PCIe Hot-plug Support</a></h2><table title="Links" style="white-space: nowrap;"><tr><td>Links</td></tr><tr><td><a href="http://p4db.FreeBSD.org/depotTreeBrowser.cgi?FSPC=//depot/projects/pciehotplug" title="http://p4db.FreeBSD.org/depotTreeBrowser.cgi?FSPC=//depot/projects/pciehotplug">PCIe Hot-plug Perforce Branch</a></td><td>
URL: <a href="http://p4db.FreeBSD.org/depotTreeBrowser.cgi?FSPC=//depot/projects/pciehotplug" title="PCIe Hot-plug Perforce Branch">http://p4db.FreeBSD.org/depotTreeBrowser.cgi?FSPC=//depot/projects/pciehotplug</a></td></tr><tr><td><a href="https://svnweb.FreeBSD.org/changeset/base/r281874" title="https://svnweb.FreeBSD.org/changeset/base/r281874">Commit adding bridge save/restore</a></td><td>
URL: <a href="https://svnweb.FreeBSD.org/changeset/base/r281874" title="Commit adding bridge save/restore">https://svnweb.FreeBSD.org/changeset/base/r281874</a></td></tr><tr><td><a href="https://github.com/FreeBSDFoundation/freebsd/tree/pciehp" title="https://github.com/FreeBSDFoundation/freebsd/tree/pciehp">Github branch with patches</a></td><td>
URL: <a href="https://github.com/FreeBSDFoundation/freebsd/tree/pciehp" title="Github branch with patches">https://github.com/FreeBSDFoundation/freebsd/tree/pciehp</a></td></tr></table><p>
Contact:
John-Mark
Gurney
<<a href="mailto:jmg@FreeBSD.org">jmg@FreeBSD.org</a>>
</p>
<p>PCI Express (PCIe) hot-plug is used on both laptops and
servers to allow peripheral devices to be added or removed
while the system is running. Laptops commonly include
hot-pluggable PCIe as either an ExpressCard slot or a
Thunderbolt interface. ExpressCard has built-in USB support
that is already supported by FreeBSD, but ExpressCard PCIe
devices like Gigabit Ethernet adapters and eSATA cards are
only supported when they are present at boot, and their
removal may cause FreeBSD to crash.</p>
<p>The goal of this project is to allow these devices to be
inserted and removed while FreeBSD is running. This work will
provide the basic infrastructure to support adding and
removing devices, though it is expected that additional work
will be needed to update individual drivers to support
hot-plug.</p>
<p>Current testing is focused on getting a simple UART device
functional. Basic hot swap is currently functional.</p>
<p>A set of the patches for the work done in this project is
now available on github.com.
</p>
<p>This project was sponsored by The FreeBSD Foundation.</p><h3>Open tasks:</h3><ol><li>
<p>Get suspend/resume functional by saving and restoring the
necessary registers. This should be addressed by
r281874.</p>
</li><li>
<p>Make sure that upon suspend, devices are removed so that we
are not fooled if they are replaced with different devices
while the machine is suspended.</p>
</li><li>
<p>Improve how state transitions are handled, possibly by
using a proper state machine.</p>
</li></ol><hr /><h2><a name="Cavium-LiquidIO-Smart-NIC-Driver" href="#Cavium-LiquidIO-Smart-NIC-Driver" id="Cavium-LiquidIO-Smart-NIC-Driver">Cavium LiquidIO Smart NIC Driver</a></h2><table title="Links" style="white-space: nowrap;"><tr><td>Links</td></tr><tr><td><a href="http://www.cavium.com/LiquidIO_Application_Acceleration_Adapters.html" title="http://www.cavium.com/LiquidIO_Application_Acceleration_Adapters.html">LiquidIO product page</a></td><td>
URL: <a href="http://www.cavium.com/LiquidIO_Application_Acceleration_Adapters.html" title="LiquidIO product page">http://www.cavium.com/LiquidIO_Application_Acceleration_Adapters.html</a></td></tr></table><p>
Contact:
Stanislaw
Kardach
<<a href="mailto:kda@semihalf.com">kda@semihalf.com</a>>
<br />
Contact:
Zyta
Racia
<<a href="mailto:zr@semihalf.com">zr@semihalf.com</a>>
</p>
<p>This project aims to add support for the LiquidIO family
of high-performance programmable accelerator 10/40-gigabit
Ethernet network adapters. The currently developed kernel
driver supports CN6640- and CN6880-based PCIe cards, enabling
these features:</p>
<ul>
<li>A CNNIC API for controlling/interacting with the smart NIC
from user and kernel space including:
<ul>
<li>Handling multiple concurrent applications running on
the same device</li>
<li>A request/reply mechanism for (a)synchronous
ordered/unordered communication</li>
<li>Remote memory operations</li>
<li>Device shutdown/reset</li>
</ul>
</li>
<li>A basic NIC module utilizing the CNNIC API and a
Cavium-provided NIC firmware. This module provides:
<ul>
<li>Single/multi-queue TX</li>
<li>Hardware TCP/UDP checksum offloading</li>
<li>Large Receive Offload</li>
<li>Promiscous mode</li>
</ul>
</li>
<li>Sysctl-based device statistics and configuration view</li>
<li>Custom firmware loading via user-built modules and
FreeBSD's <tt>firmware(9)</tt> mechanism.</li>
</ul>
<p>The project is currently being developed in house and is
being prepared for upstream. We plan on making it
available in FreeBSD 11.</p>
<p>This project was sponsored by Cavium, and Semihalf.</p><h3>Open tasks:</h3><ol><li>Upstream the code to FreeBSD head.</li></ol><hr /><h2><a name="CloudABI:-Pure-Capabilities-Runtime-Environment" href="#CloudABI:-Pure-Capabilities-Runtime-Environment" id="CloudABI:-Pure-Capabilities-Runtime-Environment">CloudABI: Pure Capabilities Runtime Environment</a></h2><table title="Links" style="white-space: nowrap;"><tr><td>Links</td></tr><tr><td><a href="https://github.com/NuxiNL/cloudlibc" title="https://github.com/NuxiNL/cloudlibc">CloudABI project page</a></td><td>
URL: <a href="https://github.com/NuxiNL/cloudlibc" title="CloudABI project page">https://github.com/NuxiNL/cloudlibc</a></td></tr><tr><td><a href="https://github.com/NuxiNL/cloudabi-ports" title="https://github.com/NuxiNL/cloudabi-ports">CloudABI Ports Collection</a></td><td>
URL: <a href="https://github.com/NuxiNL/cloudabi-ports" title="CloudABI Ports Collection">https://github.com/NuxiNL/cloudabi-ports</a></td></tr><tr><td><a href="https://www.youtube.com/watch?v=LTHSZGVvLw4" title="https://www.youtube.com/watch?v=LTHSZGVvLw4">CloudABI presentation at FrOSCon</a></td><td>
URL: <a href="https://www.youtube.com/watch?v=LTHSZGVvLw4" title="CloudABI presentation at FrOSCon">https://www.youtube.com/watch?v=LTHSZGVvLw4</a></td></tr></table><p>
Contact:
Ed
Schouten
<<a href="mailto:ed@FreeBSD.org">ed@FreeBSD.org</a>>
</p>
<p>CloudABI is a POSIX-like runtime environment that uses
Capsicum as its sole access control mechanism. CloudABI
allows you to develop software that is better hardened against
security vulnerabilities, is easier to test, and is easier to
migrate across systems.</p>
<p>As of August, all of the kernel modifications that are needed
to run CloudABI programs have been integrated into FreeBSD head.
After loading the <tt>cloudabi64</tt> kernel module, you can
either run CloudABI programs directly from the shell or by
using the <tt>cloudabi-run</tt> tool
(<tt>sysutils/cloudabi-utils</tt>). <tt>cloudabi-run</tt>
allows you to inject sockets, files, and directories into the
launched program in a more structured way.</p>
<p>In the meantime, work has started on developing a Ports
Collection that contains cross-compiled utilities and
libraries for CloudABI. The intent is that this framework
generates native packages for a number of operating systems,
making it possible to develop CloudABI applications on any
operating system, regardless of whether that operating system
actually supports CloudABI.</p>
<p>If you are interested in CloudABI, be sure to go to the
project page on GitHub, watch recordings of talks at
conferences, or wait for the upcoming edition of the FreeBSD
Journal, which will feature an article on CloudABI.</p>
<p>This project was sponsored by Nuxi, the Netherlands.</p><h3>Open tasks:</h3><ol><li>
<p>CloudABI is currently only available for amd64. It would
make sense to port CloudABI to additional architectures like
aarch64.</p>
</li><li>
<p>Support for CloudABI has only been integrated into FreeBSD.
If we manage to upstream support for CloudABI into other
operating systems, it should be possible to run the same
binary on multiple operating systems without
recompilation.</p>
</li><li>
<p>The CloudABI Ports Collection currently has only 60
packages. Although these packages already the building blocks of
some interesting software, we are always interested in
expanding.</p>
</li></ol><hr /><h2><a name="FreeBSD-Xen" href="#FreeBSD-Xen" id="FreeBSD-Xen">FreeBSD Xen</a></h2><table title="Links" style="white-space: nowrap;"><tr><td>Links</td></tr><tr><td><a href="http://wiki.xen.org/wiki/FreeBSD_PVH" title="http://wiki.xen.org/wiki/FreeBSD_PVH">FreeBSD PVH DomU wiki page</a></td><td>
URL: <a href="http://wiki.xen.org/wiki/FreeBSD_PVH" title="FreeBSD PVH DomU wiki page">http://wiki.xen.org/wiki/FreeBSD_PVH</a></td></tr><tr><td><a href="http://wiki.xen.org/wiki/FreeBSD_Dom0" title="http://wiki.xen.org/wiki/FreeBSD_Dom0">FreeBSD PVH Dom0 wiki page</a></td><td>
URL: <a href="http://wiki.xen.org/wiki/FreeBSD_Dom0" title="FreeBSD PVH Dom0 wiki page">http://wiki.xen.org/wiki/FreeBSD_Dom0</a></td></tr><tr><td><a href="http://www.xenproject.org/component/allvideoshare/video/latest/bsdcan-2015-how-to-port-bsd-as-a-xen-on-arm-guest.html" title="http://www.xenproject.org/component/allvideoshare/video/latest/bsdcan-2015-how-to-port-bsd-as-a-xen-on-arm-guest.html">Porting FreeBSD as a Xen ARM guest</a></td><td>
URL: <a href="http://www.xenproject.org/component/allvideoshare/video/latest/bsdcan-2015-how-to-port-bsd-as-a-xen-on-arm-guest.html" title="Porting FreeBSD as a Xen ARM guest">http://www.xenproject.org/component/allvideoshare/video/latest/bsdcan-2015-how-to-port-bsd-as-a-xen-on-arm-guest.html</a></td></tr></table><p>
Contact:
Roger
Pau Monné
<<a href="mailto:royger@FreeBSD.org">royger@FreeBSD.org</a>>
<br />
Contact:
Julien
Grall
<<a href="mailto:julien.grall@citrix.com">julien.grall@citrix.com</a>>
</p>
<p>Xen is a hypervisor using a microkernel design, providing
services that allow multiple computer operating systems to
execute on the same computer hardware concurrently. Xen
support for FreeBSD on x86 as a guest was introduced in version 8
and ARM support is currently being worked on. Support for
running FreeBSD as an amd64 Xen host (Dom0) is available in
HEAD.</p>
<p>On the x86 front, most of the work during this quarter
focused on the implementation of PVH inside Xen.
Consequently, most of the activity happened inside of the
hypervisor. Patches for a clean PVH implementation have been
posted, with the aim of having them merged in the next Xen
release (4.7). Once that is done, work will continue
adding new features to both FreeBSD and Xen to have feature
parity with traditional PV guests/hosts.</p>
<p>Apart from this, work is ongoing to import a new netfront
from Linux in order to support new features, like split event
channel and multiple queue support.</p>
<p>On the ARM front, this quarter's work focused on getting
FreeBSD/arm64 booting as a Xen guest. The current activity is to
upstream patches preparing Xen drivers to support arm64. This
includes a rework of the console driver.</p>
<p>This project was sponsored by Citrix Systems R&D.</p><h3>Open tasks:</h3><ol><li>
<p>Generalize the event channel code so it can be used on
ARM.</p>
</li><li>
<p>Improve backend (netback, blkback) performance.</p>
</li><li>
<p>Work with upstream Xen to improve PVH and make it
stable.</p>
</li><li>
<p>Improve the generic bounce buffer code for unmapped bios in
order to support the alignment requirements of the
blkfront driver.</p>
</li></ol><hr /><h2><a name="ioat(4)-Driver-Import" href="#ioat(4)-Driver-Import" id="ioat(4)-Driver-Import">ioat(4) Driver Import</a></h2><table title="Links" style="white-space: nowrap;"><tr><td>Links</td></tr><tr><td><a href="https://en.wikipedia.org/wiki/I/O_Acceleration_Technology" title="https://en.wikipedia.org/wiki/I/O_Acceleration_Technology">Wikipedia article on IOAT</a></td><td>
URL: <a href="https://en.wikipedia.org/wiki/I/O_Acceleration_Technology" title="Wikipedia article on IOAT">https://en.wikipedia.org/wiki/I/O_Acceleration_Technology</a></td></tr><tr><td><a href="https://svnweb.FreeBSD.org/base?view=revision&revision=r287117" title="https://svnweb.FreeBSD.org/base?view=revision&revision=r287117">Commit importing ioat(4)</a></td><td>
URL: <a href="https://svnweb.FreeBSD.org/base?view=revision&revision=r287117" title="Commit importing ioat(4)">https://svnweb.FreeBSD.org/base?view=revision&revision=r287117</a></td></tr></table><p>
Contact:
Jim
Harris
<<a href="mailto:jimharris@FreeBSD.org">jimharris@FreeBSD.org</a>>
<br />
Contact:
Conrad
Meyer
<<a href="mailto:cem@FreeBSD.org">cem@FreeBSD.org</a>>
</p>
<p>A new driver, <tt>ioat(4)</tt>, was added to the tree.
<tt>ioat(4)</tt> supports Intel's I/O Acceleration Technology
devices which are found on some Intel server systems.</p>
<p>These devices are DMA offload engines, which can accelerate
some I/O-heavy applications by offloading memory copies from
the main CPU to the I/OAT unit. This acceleration is not
transparent; applications must be adapted to take advantage of
the hardware.</p>
<p>Some I/OAT models support more advanced copying modes, such as
XOR; these modes are not yet supported in the <tt>ioat(4)</tt>
driver.</p>
<p>This project was sponsored by Intel Corporation, and EMC / Isilon Storage Division.</p><h3>Open tasks:</h3><ol><li>
<p>Further testing, especially on a range of device models
other than BDXDE (looking for volunteers here).</p>
</li><li>
<p>Support for the more advanced copy modes.</p>
</li></ol><hr /><h2><a name="IPsec-Upgrades" href="#IPsec-Upgrades" id="IPsec-Upgrades">IPsec Upgrades</a></h2><p>
Contact:
George
Neville-Neil
<<a href="mailto:gnn@FreeBSD.org">gnn@FreeBSD.org</a>>
<br />
Contact:
John-Mark
Gurney
<<a href="mailto:jmg@FreeBSD.org">jmg@FreeBSD.org</a>>
<br />
Contact:
Ermal
Luçi
<<a href="mailto:eri@FreeBSD.org">eri@FreeBSD.org</a>>
</p>
<p>IPsec is now enabled by default in the GENERIC kernel
configuration, and work is proceeding to speed things up in
various ways. The latest changes are the addition, by
John-Mark Gurney, Ermal Luçi, and George V. Neville-Neil, of AES modes both in hardware
and in software. Part of this work also includes more
benchmarks undertaken using Conductor in the netperf project.
Results have been reported at BSDCan and vBSDcon with more to
come at EuroBSDcon and BSDCon Brasil.</p>
<p>This project was sponsored by Netgate, and The FreeBSD Foundation.</p><h3>Open tasks:</h3><ol><li>
<p>Performance improvements and other tweaks are ongoing.</p>
</li></ol><hr /><br /><h1><a name="Architectures" href="#Architectures" id="Architectures">Architectures</a></h1><br /><h2><a name="Atomics" href="#Atomics" id="Atomics">Atomics</a></h2><p>
Contact:
Konstantin
Belousov
<<a href="mailto:kib@FreeBSD.org">kib@FreeBSD.org</a>>
<br />
Contact:
Alan
Cox
<<a href="mailto:alc@FreeBSD.org">alc@FreeBSD.org</a>>
<br />
Contact:
Bruce
Evans
<<a href="mailto:bde@FreeBSD.org">bde@FreeBSD.org</a>>
</p>
<p>Atomic operations serve two fundamental purposes. First,
they are the building blocks for expressing synchronization
algorithms in a single, machine-independent way using
high-level languages. In essense, atomics abstract the
different building blocks supported by the various
architectures on which FreeBSD runs, making it easier to develop
and reason about lock-less code by hiding hardware-level
details.</p>
<p>Atomics also provide the barrier operations that allow
software to control the effects on memory of out-of-order and
speculative execution in modern processors as well as
optimizations by compilers. This capability is especially
important to multithreaded software, such as the FreeBSD kernel,
when running on systems where multiple processors communicate
through a shared main memory.</p>
<p>Each machine architecture defines a memory model, which
specifies the possible effects on memory of out-of-order and
speculative execution. More precisely, it specifies the
extent to which the machine may visibly reorder memory
accesses to optimize performance. Unfortunately,
there are almost as many models as architectures.
Some architectures, for example IA32 or Sparcv9 TSO, are
relatively strongly ordered. In contrast, others, like
PowerPC or ARM, are very relaxed. In effect, atomics define a
very relaxed abstract memory model for FreeBSD's
machine-independent code that can be efficiently realized on
any of these architectures.</p>
<p>Most FreeBSD development and testing still happens on
x86 machines, which, when combined with x86's strongly ordered
memory model, leads to errors in the use of atomics,
specifically, barriers. In other words, the code is not
properly written to FreeBSD's abstract memory model, but the
strong ordering of the x86 architecture hides this fact. The
architectures impacted by the code that incorrectly uses
atomics are less popular or have limited availability, and the
resulting bugs from the misuse of atomics are hard to
diagnose.</p>
<p>The goal of this project is to audit and upgrade the usage of
lockless facilities, hopefully fixing bugs before they are
observed in the wild.</p>
<p>FreeBSD defines its own set of atomics operations, like many
other operating systems. But unlike other operating systems,
FreeBSD models its atomics and barriers on the release
consistency model, which is also known as acquire/release
model. This is the same model which is used by the C11 and
C++11 language standards as well as the new 64-bit ARM
architecture. Despite having syntactical differences, C11 and
FreeBSD atomics share essentially the same semantics.
Consequently, ample tutorials about the C11 memory model and
algorithms expressed with C11 atomics can be trivially reused
under FreeBSD.</p>
<p>One facility of C11 that was missing from FreeBSD atomics
was <em>fences</em>. Fences are bidirectional barrier
operations which could not be expressed by the existing
atomic+barrier accesses. They were added in r285283.</p>
<p>Due to the strong memory model implemented by x86 processors,
<tt>atomic_load_acq()</tt> and <tt>atomic_store_rel()</tt> can
be implemented by plain load and store instructions with only
a compiler barrier. No additional ordering constraints are
required. This simplification of <tt>atomic_store_rel()</tt>
was done some time ago in r236456. The
<tt>atomic_load_acq()</tt> change was done in r285934, after
careful review of all its uses in the kernel and user-space to
ensure that no hidden dependency on a stronger implementation
was left.</p>
<p>The only reordering in memory accesses which is allowed on
x86 is that loads may be reordered with older stores to
different locations. This results from the use of store
buffers at the micro-architecural level. So, to ensure
sequentially consistent behavior on x86, a store/load barrier
needs to be issued, which can be done with an MFENCE
instruction or by any locked read-modify-write operation. The latter
approach is recommended by the optimization guides from Intel
and AMD. It was noted that careful selection of the scratch
memory location, which is modified by the locked RMW
operation, can reduce the cost of the barrier by avoiding false
data dependencies. The corresponding optimization was
committed in r284901.</p>
<p>The <tt>atomic(9)</tt> man page was often a cause of
confusion due to both erroneous and ambiguous statements. The
most significant of these issues were addressed in changes
r286513 and r286784.</p>
<p>Some examples of our preemptive fixes to the misuse of
atomics that would only become evident on weakly ordered
machines are:</p>
<ul>
<li>A very important lockless algorithm, used in both the
kernel and libc, is the timekeeping functionality
implemented in <tt>kern/kern_tc.c</tt> and the userspace
<tt>__vdso_gettimeofday</tt>. This algorithm relied on x86
total store order (TSO) behavior. It was fixed in r284178
and r285286.</li>
<li>The <tt>kern/kern_intr.c</tt> lockless updates to the
<tt>it_need</tt> indicator were corrected in r285607.</li>
<li>An issue with
<tt>kern/subr_smp.c:smp_rendezvous_cpus()</tt> not
guaranteeing the visibility of updates done on other CPUs to
the caller was fixed in r285771.</li>
<li>The <tt>pthread_once()</tt> implementation was fixed to
include missed barriers in r287556.</li>
</ul>
<p>This project was sponsored by The FreeBSD Foundation (Konstantin Belousov's work).</p><hr /><h2><a name="FreeBSD-on-Cavium-ThunderX-(arm64)" href="#FreeBSD-on-Cavium-ThunderX-(arm64)" id="FreeBSD-on-Cavium-ThunderX-(arm64)">FreeBSD on Cavium ThunderX (arm64)</a></h2><p>
Contact:
Dominik
Ermel
<<a href="mailto:der@semihalf.com">der@semihalf.com</a>>
<br />
Contact:
Wojciech
Macek
<<a href="mailto:wma@semihalf.com">wma@semihalf.com</a>>
<br />
Contact:
Zbigniew
Bodek
<<a href="mailto:zbb@semihalf.com">zbb@semihalf.com</a>>
</p>
<p>Cavium’s ThunderX is a high-performance 64-bit ARMv8 CPU,
available in configurations with up to 48 cores per package.
ThunderX is the initial reference platform for the FreeBSD/arm64
porting effort.</p>
<p>Additional Semihalf-sponsored work on ThunderX support
brought brand new features such as:</p>
<ul>
<li> Multi-socket operation: FreeBSD now runs on a two-node
ThunderX server board with a total of 96 CPU cores!</li>
<li>Virtual Networking Interface Card driver: The VNIC driver
consists of 4 elements (BGX, MDIO, and Physical and Virtual
Functions) and is the second driver in FreeBSD to utilize
SR-IOV capabilities. ThunderX is now able to use built-in
networking interfaces at 1–40 Gbps.</li>
</ul>
<p>Moreover, previously introduced functionalities have been
improved and committed to HEAD. This includes:</p>
<ul>
<li>PCIe drivers for both internal and external
controllers</li>
<li>ITS (Interrupt Translation Services) fixes</li>
<li>Platform-specific changes for ThunderX</li>
<li>Various other fixes to the kernel (PCI, UMA, etc.)</li>
</ul>
<p>The remaining features are being reviewed and will be
integrated into HEAD soon. However, the GENERIC kernel
already supports and runs on ThunderX.</p>
<p>This project was sponsored by The FreeBSD Foundation, ARM Ltd., Cavium, and Semihalf.</p><h3>Open tasks:</h3><ol><li>
<p>Upstream the remaining features: 2-socket support, VNIC
driver, and PCIe fixes</p>
</li></ol><hr /><h2><a name="FreeBSD-on-the-HiKey-ARMv8-Board" href="#FreeBSD-on-the-HiKey-ARMv8-Board" id="FreeBSD-on-the-HiKey-ARMv8-Board">FreeBSD on the HiKey ARMv8 Board</a></h2><table title="Links" style="white-space: nowrap;"><tr><td>Links</td></tr><tr><td><a href="https://wiki.FreeBSD.org/arm64/HiKey" title="https://wiki.FreeBSD.org/arm64/HiKey">HiKey wiki entry</a></td><td>
URL: <a href="https://wiki.FreeBSD.org/arm64/HiKey" title="HiKey wiki entry">https://wiki.FreeBSD.org/arm64/HiKey</a></td></tr><tr><td><a href="https://www.96boards.org/products/ce/hikey/" title="https://www.96boards.org/products/ce/hikey/">Hardware description</a></td><td>
URL: <a href="https://www.96boards.org/products/ce/hikey/" title="Hardware description">https://www.96boards.org/products/ce/hikey/</a></td></tr></table><p>
Contact:
Andrew
Turner
<<a href="mailto:andrew@FreeBSD.org">andrew@FreeBSD.org</a>>
</p>
<p>The HiKey is a low-cost ARMv8 development board from the
Linaro 96boards initiative. It contains a HiSilicon Kirin
6220 with eight ARMv8 cores and 1GB of ram.</p>
<p>FreeBSD has been ported to run on the HiKey with a minimal set
of drivers. As of this report, FreeBSD supports the micro-SD
slot and USB host, and will boot off the SD card to multi-user
mode using a recent arm64 snapshot.</p>
<p>The kernel is missing a number of device drivers. However,
it is at a usable state for people interested in testing FreeBSD
on ARMv8 hardware.</p>
<p>This project was sponsored by ABT Systems Ltd, and ARM Ltd.</p><h3>Open tasks:</h3><ol><li>
<p>A driver for SDIO and the onboard WiFi.</p>
</li><li>
<p>Fix the MMC driver to access the eMMC.</p>
</li><li>
<p>Support the USB in OTG mode.</p>
</li><li>
<p>Support a display via HDMI.</p>
</li><li>
<p>Add thermal management.</p>
</li></ol><hr /><h2><a name="FreeBSD/arm64" href="#FreeBSD/arm64" id="FreeBSD/arm64">FreeBSD/arm64</a></h2><table title="Links" style="white-space: nowrap;"><tr><td>Links</td></tr><tr><td><a href="https://wiki.FreeBSD.org/arm64" title="https://wiki.FreeBSD.org/arm64">FreeBSD arm64 wiki page</a></td><td>
URL: <a href="https://wiki.FreeBSD.org/arm64" title="FreeBSD arm64 wiki page">https://wiki.FreeBSD.org/arm64</a></td></tr></table><p>
Contact:
Andrew
Turner
<<a href="mailto:andrew@FreeBSD.org">andrew@FreeBSD.org</a>>
<br />
Contact:
Ed
Maste
<<a href="mailto:emaste@FreeBSD.org">emaste@FreeBSD.org</a>>
</p>
<p>Numerous cleanups and fixes have been applied to the arm64
kernel. This includes fixes to exception handling,
asynchronous signals, ddb, and pmap. ddb has been updated to
better handle accessing memory that may be unmapped. The pmap
code was made more complete by implementing more functions as
needed.</p>
<p>Further work on SMP means that FreeBSD now boots on all 48
cores on the Cavium ThunderX platform. This includes adding
support for the ARM GICv3 interrupt controllers and fixing the
memory mapping to be shareable between CPUs.</p>
<p>The test suite has been run on both qemu and hardware. Most
of the test cases are passing, with around 30 tests either
broken or failing. Work on diagnosing the issues with the
remaining test cases is ongoing.
</p>
<p>This project was sponsored by The FreeBSD Foundation, and ABT Systems Ltd.</p><h3>Open tasks:</h3><ol><li>
<p>Port to more SoCs.</p>
</li></ol><hr /><h2><a name="FreeBSD/RISC-V-Port" href="#FreeBSD/RISC-V-Port" id="FreeBSD/RISC-V-Port">FreeBSD/RISC-V Port</a></h2><table title="Links" style="white-space: nowrap;"><tr><td>Links</td></tr><tr><td><a href="https://wiki.freebsd.org/riscv" title="https://wiki.freebsd.org/riscv">FreeBSD wiki RISC-V</a></td><td>
URL: <a href="https://wiki.freebsd.org/riscv" title="FreeBSD wiki RISC-V">https://wiki.freebsd.org/riscv</a></td></tr><tr><td><a href="https://people.freebsd.org/~br/riscv-singleuser.txt" title="https://people.freebsd.org/~br/riscv-singleuser.txt">Single user boot log</a></td><td>
URL: <a href="https://people.freebsd.org/~br/riscv-singleuser.txt" title="Single user boot log">https://people.freebsd.org/~br/riscv-singleuser.txt</a></td></tr></table><p>
Contact:
Ruslan
Bukin
<<a href="mailto:br@FreeBSD.org">br@FreeBSD.org</a>>
<br />
Contact:
Arun
Thomas
<<a href="mailto:arun.thomas@baesystems.com">arun.thomas@baesystems.com</a>>
<br />
Contact:
Ed
Maste
<<a href="mailto:emaste@FreeBSD.org">emaste@FreeBSD.org</a>>
</p>
<p>RISC-V is an open source Instruction Set Architecture (ISA)
designed at UC Berkeley. It is freely available for all uses
without requiring fees or license agreements.
The RISC-V team intends to provide freely available
BSD licensed CPU designs.</p>
<p>Ruslan Bukin (University of Cambridge) now has FreeBSD booting
to a single user shell on a RISC-V simulator.
The porting effort started only two months ago
and is very much a work in progress, requiring significant
refactoring and clean up before it reaches a committable
state. Nonetheless, this is exceptional progress in a short
time. The porting effort also identified a number of
proposed ISA improvements.</p>
<p>The port currently uses the GNU tool chain (GCC and
binutils), and runs on the Spike simulator. Improved RISC-V
support in Clang/LLVM and related tools is highly desired.</p>
<p>This project was sponsored by DARPA, AFRL.</p><hr /><br /><h1><a name="Userland-Programs" href="#Userland-Programs" id="Userland-Programs">Userland Programs</a></h1><br /><h2><a name="mandoc-and-roff-Toolchain" href="#mandoc-and-roff-Toolchain" id="mandoc-and-roff-Toolchain">mandoc and roff Toolchain</a></h2><table title="Links" style="white-space: nowrap;"><tr><td>Links</td></tr><tr><td><a href="https://github.com/n-t-roff/heirloom-doctools" title="https://github.com/n-t-roff/heirloom-doctools">Heirloom doctools</a></td><td>
URL: <a href="https://github.com/n-t-roff/heirloom-doctools" title="Heirloom doctools">https://github.com/n-t-roff/heirloom-doctools</a></td></tr><tr><td><a href="http://mdocml.bsd.lv/" title="http://mdocml.bsd.lv/">mandoc</a></td><td>
URL: <a href="http://mdocml.bsd.lv/" title="mandoc">http://mdocml.bsd.lv/</a></td></tr></table><p>
Contact:
Baptiste
Daroussin
<<a href="mailto:bapt@FreeBSD.org">bapt@FreeBSD.org</a>>
</p>
<p><tt>mandoc</tt> is a suite of tools for compiling
<tt>mdoc</tt>, the <tt>roff</tt> macro language of choice for
BSD manual pages.</p>
<p><tt>mandoc</tt> is the default renderer for manpages on
FreeBSD head. This quarter, the <tt>apropos(1)</tt> utility was
switched to use <tt>mandoc</tt>'s version, which offers a new
database format (in SQLite) bringing more powerful,
fine-grained ways to search man pages.</p>
<p>While <tt>mandoc</tt> is very good for man pages, we also
provide lots of other documentation in plain <tt>roff</tt>
format. The Heirloom toolchain is being studied to replace
<tt>groff</tt> in base. The Heirloom <tt>nroff</tt> toolchain
has multiple benefits: it has very good unicode support and
very good compatibility with <tt>groff</tt>.</p>
<p>A great deal of work as been done testing the Heirloom
<tt>nroff</tt> toolchain with all the <tt>roff</tt> documents
in the base system (including man pages), and upstream has
been very proactive in fixing reported bugs.</p>
<p>The <tt>soelim(1)</tt> utility has been replaced with a
BSD-licensed version which is good enough to work with all
available <tt>roff</tt> toolchains to ease the transition.
This version of the <tt>soelim(1)</tt> utility, originally
written solely for FreeBSD, is now part of the <tt>mandoc</tt>
tool suite.</p>
<p>In coordination with Ingo Schwarze from OpenBSD, the
<tt>col(1)</tt> utility has been cleaned up and updated to
recognize both SUSv2-style escape-digit and BSD-style
escape-control-char sequences in the input stream.</p>
<p>The <tt>checknr(1)</tt> utility has been cleaned up and
extended to support modern <tt>roff(7)</tt> macros, including
synchronizing code from NetBSD and the Heirloom doctools
version.</p>
<p>Many <tt>roff</tt> fixes were made to documentation and man
pages, having been discovered while testing the new
toolchain.</p>
<hr /><h2><a name="pkg-1.6" href="#pkg-1.6" id="pkg-1.6">pkg 1.6</a></h2><p>
Contact: FreeBSD pkg Team <<a href="mailto:pkg@FreeBSD.org">pkg@FreeBSD.org</a>>
</p>
<p><tt>pkg</tt> 1.6.0 has been released. Many changes have been
made since <tt>pkg</tt> 1.5:</p>
<ul>
<li>The dependency solver is greatly improved</li>
<li>Lots of fixes in the three-way merge code</li>
<li><tt>pkg add</tt> can now work without a version specified
in the dependency line</li>
<li><tt>pkg check -d</tt> now also checks the required
libraries</li>
<li>Improved support for partial upgrades</li>
<li>Improved <tt>zsh</tt> completion support</li>
<li>Improved Linux support: all regression tests now pass on
Linux</li>
<li>Messages can now be context-aware, showing a given
message always, or only during installation, upgrade
(conditional on the previous version), or removal</li>
<li><tt>@keywords</tt> now accept new entries to add context-aware
messages</li>
<li>Added the ability to generate graphiz's dot format
representation of the solver's problem</li>
<li><tt>pkg search</tt> now defaults to showing the
<tt>pkg-comments</tt> of the matched packages</li>
<li>Lots of bug fixes and code cleanup</li>
<li>Improvements in cross-installation support</li>
</ul>
<h3>Open tasks:</h3><ol><li>
<p>Add a notion of priority to the list of files to ensure
that certain files are the first to be replaced. This was a
blocker for packaging base.</p>
</li><li>
<p>Investigate replacing <tt>openssl</tt> by
<tt>mbedtls</tt>.</p>
</li></ol><hr /><h2><a name="sesutil(8)" href="#sesutil(8)" id="sesutil(8)">sesutil(8)</a></h2><table title="Links" style="white-space: nowrap;"><tr><td>Links</td></tr><tr><td><a href="https://en.wikipedia.org/wiki/SCSI_Enclosure_Services" title="https://en.wikipedia.org/wiki/SCSI_Enclosure_Services">Wikipedia: SCSI Enclosure Services (SES)</a></td><td>
URL: <a href="https://en.wikipedia.org/wiki/SCSI_Enclosure_Services" title="Wikipedia: SCSI Enclosure Services (SES)">https://en.wikipedia.org/wiki/SCSI_Enclosure_Services</a></td></tr></table><p>
Contact:
Baptiste
Daroussin
<<a href="mailto:bapt@FreeBSD.org">bapt@FreeBSD.org</a>>
<br />
Contact:
Allan
Jude
<<a href="mailto:allanjude@FreeBSD.org">allanjude@FreeBSD.org</a>>
</p>
<p><tt>sesutil(8)</tt> was originally created as a more
universal way to blink the "locate" LEDs on most
hot-swappable drive enclosures.</p>
<p>This work is based on the original SES tools created by
Matthew Jacob in 2000, which have been available in the
<tt>share/examples</tt> section of the source tree, but were
not built by default.</p>
<p>The new utility extends the original code with a number of
very useful features:</p>
<ul>
<li>Print a map of all objects connected to the SES
controller</li>
<li>Map device names (<tt>/dev/da5</tt>) to SES slot
number</li>
<li>Blink the Locate and/or Fault LED of a drive by its SES
slot number or device name</li>
<li>Check the status of the entire SES controller</li>
</ul>
<p>This project was sponsored by Gandi, and ScaleEngine Inc..</p><h3>Open tasks:</h3><ol><li>
<p>Test <tt>sesutil(8)</tt> against more hardware.</p>
</li><li>
<p>Diagnose an issue where the locate command sometimes
needs to be sent twice to activate the LED.</p>
</li><li>
<p>Add support for <tt>libxo</tt> output types.</p>
</li></ol><hr /><h2><a name="truss(1)" href="#truss(1)" id="truss(1)">truss(1)</a></h2><p>
Contact:
John
Baldwin
<<a href="mailto:jhb@FreeBSD.org">jhb@FreeBSD.org</a>>
<br />
Contact:
Bryan
Drewery
<<a href="mailto:bdrewery@FreeBSD.org">bdrewery@FreeBSD.org</a>>
</p>
<p>The interface between the ABI-specific backends and the
<tt>truss</tt> core was refactored, reducing duplicated code.
This prompted additional follow-on work to add support for
more ABIs, including aarch64 and CloudABI.</p>
<p><tt>ptrace(2)</tt> was extended to return more information
about the currently executing system call. This restored
behavior that had been present in a previous version of
<tt>truss</tt>: knowing the correct number of arguments for
all system calls.</p>
<p>The fork-following support in <tt>truss</tt> was reworked to
use native fork following in <tt>ptrace(2)</tt> rather than
forking a new <tt>truss</tt> process for each child of a
traced process.</p>
<p>Support for decoding more arguments has been added in
the last quarter as well.
</p>
<h3>Open tasks:</h3><ol><li>
<p>Create a new <tt>libsysdecode</tt> library to hold shared
code between <tt>truss(1)</tt> and <tt>kdump(1)</tt>.</p>
</li><li>
<p>Decode more system call arguments.</p>
</li><li>
<p>Add appropriate system call decoding specifications for
<tt>freebsd32</tt> system calls.</p>
</li><li>
<p>Implement an ABI for 64-bit Linux binaries under
FreeBSD/amd64.</p>
</li></ol><hr /><h2><a name="Updates-to-GDB" href="#Updates-to-GDB" id="Updates-to-GDB">Updates to GDB</a></h2><table title="Links" style="white-space: nowrap;"><tr><td>Links</td></tr><tr><td><a href="https://reviews.FreeBSD.org/D3341" title="https://reviews.FreeBSD.org/D3341">Extend libkvm to support cross-debugging of vmcores</a></td><td>
URL: <a href="https://reviews.FreeBSD.org/D3341" title="Extend libkvm to support cross-debugging of vmcores">https://reviews.FreeBSD.org/D3341</a></td></tr></table><p>
Contact:
John
Baldwin
<<a href="mailto:jhb@FreeBSD.org">jhb@FreeBSD.org</a>>
</p>
<p>Support for following children after forks for FreeBSD was
implemented and merged upstream to GDB's master branch, and
was included in GDB 7.10.</p>
<p>Work has continued on porting <tt>kgdb</tt> to newer
<tt>gdb</tt>. The amd64, i386, powerpc, powerpc64, and
sparc64 backends have all been ported and are now available
via a new <tt>KGDB</tt> option in the devel/gdb port.</p>
<p>The MD backends for libkvm have been rewritten to support
cross-debugging crashdumps, and the <tt>kgdb</tt> targets for
amd64 and i386 have been reworked to support cross-debugging.
Both i386 and amd64 kgdb binaries have been able to
cross-debug the other architecture's vmcores with these
changes. This changeset for libkvm is not yet in the tree,
but is awaiting more testing.</p>
<h3>Open tasks:</h3><ol><li>
<p>Test the <tt>libkvm</tt> changes on platforms other than
amd64, i386, and powerpc64.</p>
</li><li>
<p>Figure out why the powerpc <tt>kgdb</tt> targets are not
able to unwind the stack past the initial frame.</p>
</li><li>
<p>Add support for more platforms (arm, mips, aarch64) to
upstream <tt>gdb</tt> for both userland and
<tt>kgdb</tt>.</p>
</li><li>
<p>Write a new 1:1-only thread target for FreeBSD that can be
sent upstream.</p>
</li><li>
<p>Add support for debugging powerpc vector registers.</p>
</li></ol><hr /><br /><h1><a name="Ports" href="#Ports" id="Ports">Ports</a></h1><br /><h2><a name="Bringing-GitLab-into-the-Ports-Collection" href="#Bringing-GitLab-into-the-Ports-Collection" id="Bringing-GitLab-into-the-Ports-Collection">Bringing GitLab into the Ports Collection</a></h2><table title="Links" style="white-space: nowrap;"><tr><td>Links</td></tr><tr><td><a href="https://bugs.FreeBSD.org/bugzilla/show_bug.cgi?id=202468" title="https://bugs.FreeBSD.org/bugzilla/show_bug.cgi?id=202468">PR for the new port</a></td><td>
URL: <a href="https://bugs.FreeBSD.org/bugzilla/show_bug.cgi?id=202468" title="PR for the new port">https://bugs.FreeBSD.org/bugzilla/show_bug.cgi?id=202468</a></td></tr><tr><td><a href="https://github.com/t-zuehlsdorff/gitlabhq/blob/master/doc/install/installation-freebsd.md" title="https://github.com/t-zuehlsdorff/gitlabhq/blob/master/doc/install/installation-freebsd.md">Installation guide</a></td><td>
URL: <a href="https://github.com/t-zuehlsdorff/gitlabhq/blob/master/doc/install/installation-freebsd.md" title="Installation guide">https://github.com/t-zuehlsdorff/gitlabhq/blob/master/doc/install/installation-freebsd.md</a></td></tr><tr><td><a href="https://github.com/gitlabhq/gitlabhq/" title="https://github.com/gitlabhq/gitlabhq/">GitLab Source Tree</a></td><td>
URL: <a href="https://github.com/gitlabhq/gitlabhq/" title="GitLab Source Tree">https://github.com/gitlabhq/gitlabhq/</a></td></tr></table><p>
Contact:
Torsten
Zühlsdorff
<<a href="mailto:ports@toco-domains.de">ports@toco-domains.de</a>>
<br />
Contact:
Michael
Fausten
<<a href="mailto:ports@michael-fausten.de">ports@michael-fausten.de</a>>
</p>
<p>GitLab is a web-based Git repository manager with many
features, used by more than 100.000 organizations, including
NASA and Alibaba. It also is a very long-standing entry on
the "Wanted Ports" list on the FreeBSD Wiki.</p>
<p>In the last month there was steady progress, finally
resulting in the PR for adding the new port. In addition to
the many dependencies Philip M. Gollucci is working on, there was
already a large amount of work done. Along with many new or
updated rubygems, Rails 4.1 was resurrected. A large group of
committers were involved in the process and guided us through
the various problems and pitfalls.</p>
<p>Because of the number of dependencies — we nearly hit
100 — making progress takes some time. In the meantime,
a new major version of GitLab has already been released,
requiring even more dependencies and updates. Work on this
version is in progress, but the first goal is to get the
latest stable version from the 7.14 branch into the ports
tree.</p>
<p>This project was sponsored by anyMOTION GRAPHICS GmbH, Düsseldorf, Germany.</p><h3>Open tasks:</h3><ol><li>
<p>Closing all the PRs of the dependencies</p>
</li><li>
<p>Committing the GitLab port itself</p>
</li><li>
<p>Updating the port to the latest version of the 8.x
branch</p>
</li></ol><hr /><h2><a name="GNOME-on-FreeBSD" href="#GNOME-on-FreeBSD" id="GNOME-on-FreeBSD">GNOME on FreeBSD</a></h2><table title="Links" style="white-space: nowrap;"><tr><td>Links</td></tr><tr><td><a href="http://www.FreeBSD.org/gnome" title="http://www.FreeBSD.org/gnome">FreeBSD Gnome website</a></td><td>
URL: <a href="http://www.FreeBSD.org/gnome" title="FreeBSD Gnome website">http://www.FreeBSD.org/gnome</a></td></tr><tr><td><a href="https://github.com/freebsd/freebsd-ports-gnome" title="https://github.com/freebsd/freebsd-ports-gnome">Devel repository</a></td><td>
URL: <a href="https://github.com/freebsd/freebsd-ports-gnome" title="Devel repository">https://github.com/freebsd/freebsd-ports-gnome</a></td></tr><tr><td><a href="https://wiki.gnome.org/Projects/Jhbuild/FreeBSD" title="https://wiki.gnome.org/Projects/Jhbuild/FreeBSD">Upstream build bot</a></td><td>
URL: <a href="https://wiki.gnome.org/Projects/Jhbuild/FreeBSD" title="Upstream build bot">https://wiki.gnome.org/Projects/Jhbuild/FreeBSD</a></td></tr><tr><td><a href="https://www.FreeBSD.org/doc/en_US.ISO8859-1/books/porters-handbook/using-gnome.html" title="https://www.FreeBSD.org/doc/en_US.ISO8859-1/books/porters-handbook/using-gnome.html">USE_GNOME Porter's Handbook chapter</a></td><td>
URL: <a href="https://www.FreeBSD.org/doc/en_US.ISO8859-1/books/porters-handbook/using-gnome.html" title="USE_GNOME Porter's Handbook chapter">https://www.FreeBSD.org/doc/en_US.ISO8859-1/books/porters-handbook/using-gnome.html</a></td></tr></table><p>
Contact: FreeBSD GNOME Team <<a href="mailto:freebsd-gnome@FreeBSD.org">freebsd-gnome@FreeBSD.org</a>>
</p>
<p>The FreeBSD GNOME Team maintains the GNOME, MATE, and CINNAMON
desktop environments and graphical user interfaces for FreeBSD.
GNOME 3 is part of the GNU Project. MATE is a fork of the
GNOME 2 desktop. CINNAMON is a desktop environment using
GNOME 3 technologies but with a GNOME 2 look and feel.</p>
<p>This quarter, GNOME 3.16 and MATE 1.10 were committed to the
ports tree, followed up by some incremental improvements. A
chapter covering the use of USE_GNOME within individual ports'
<tt>Makefile</tt>s was written and committed to the Porter's
Handbook.</p>
<p>GNOME 3.18 has been ported. There are, however, some issues
that need to be resolved before it can be committed to the
ports tree.</p>
<h3>Open tasks:</h3><ol><li>
<p>The FreeBSD GNOME website is stale. Work is under way to improve
it.</p>
</li><li>
<p>Please give feedback on and suggest improvements to the
chapter in the Porter's Handbook on the <tt>USE_GNOME</tt>
functionality.</p>
</li><li>
<p>Continue working on investigating the issues blocking
GNOME 3.18.</p>
</li></ol><hr /><h2><a name="KDE-on-FreeBSD" href="#KDE-on-FreeBSD" id="KDE-on-FreeBSD">KDE on FreeBSD</a></h2><table title="Links" style="white-space: nowrap;"><tr><td>Links</td></tr><tr><td><a href="https://freebsd.kde.org/" title="https://freebsd.kde.org/">KDE on FreeBSD website</a></td><td>
URL: <a href="https://freebsd.kde.org/" title="KDE on FreeBSD website">https://freebsd.kde.org/</a></td></tr><tr><td><a href="https://freebsd.kde.org/area51.php" title="https://freebsd.kde.org/area51.php">KDE ports staging area</a></td><td>
URL: <a href="https://freebsd.kde.org/area51.php" title="KDE ports staging area">https://freebsd.kde.org/area51.php</a></td></tr><tr><td><a href="https://wiki.FreeBSD.org/KDE" title="https://wiki.FreeBSD.org/KDE">KDE on FreeBSD wiki</a></td><td>
URL: <a href="https://wiki.FreeBSD.org/KDE" title="KDE on FreeBSD wiki">https://wiki.FreeBSD.org/KDE</a></td></tr><tr><td><a href="https://mail.kde.org/mailman/listinfo/kde-freebsd" title="https://mail.kde.org/mailman/listinfo/kde-freebsd">KDE/FreeBSD mailing list</a></td><td>
URL: <a href="https://mail.kde.org/mailman/listinfo/kde-freebsd" title="KDE/FreeBSD mailing list">https://mail.kde.org/mailman/listinfo/kde-freebsd</a></td></tr><tr><td><a href="http://src.mouf.net/area51/log/branches/plasma5" title="http://src.mouf.net/area51/log/branches/plasma5">Development repository for integrating KDE 5</a></td><td>
URL: <a href="http://src.mouf.net/area51/log/branches/plasma5" title="Development repository for integrating KDE 5">http://src.mouf.net/area51/log/branches/plasma5</a></td></tr></table><p>
Contact: KDE on FreeBSD team <<a href="mailto:kde@FreeBSD.org">kde@FreeBSD.org</a>>
</p>
<p>Overall, we have updated the following ports this
quarter:</p>
<ul>
<li>CMake 3.3.1 (r396266)</li>
<li>Qt 4.8.7 (r397043)</li>
<li>QtCreator 3.5.0 (r395935)</li>
<li>Fixed some dependencies, typos and plists in Qt5-ports
(r396044-r396047), spotted by Ralf Nolden</li>
</ul>
<p>In our development repository, we have done the following
work:</p>
<ul>
<li>Updated PyQt-bindings for qt4 to 4.11.4 and added qt5
bindings 5.5, contributed by Guido Falsi, and modified by
Tobias Berner (area51)</li>
<li>Updated qt5 to 5.5.0. Ralf Nolden has contributed a
handful of useful new ports, for example
<tt>lang/qt5-l10n</tt> (<tt>area51/qt-5.5</tt>)</li>
<li>The <tt>plasma5</tt> branch has been kept up to date with
KDE's upstream and contains ports for Frameworks 5.14.0,
Plasma Desktop 5.4.2 and Applications 15.08.1
(<tt>area51/plasma5</tt>)</li>
</ul>
<h3>Open tasks:</h3><ol><li>
<p>Work on getting the stuff from <tt>plasma5</tt> branch into
ports. (This is a major update to nearly all KDE
applications, so testers are very welcome.)</p>
</li><li>
<p>Finalize the work on PyQt5.</p>
</li><li>
<p>Port <tt>qt5-webengine</tt>. Qt-5.5 will probably be the
last release shipping a <tt>www/webkit-qt5</tt> port.</p>
</li></ol><hr /><h2><a name="Node.js-Modules" href="#Node.js-Modules" id="Node.js-Modules">Node.js Modules</a></h2><table title="Links" style="white-space: nowrap;"><tr><td>Links</td></tr><tr><td><a href="https://www.assembla.com/spaces/cozycloud/subversion/source" title="https://www.assembla.com/spaces/cozycloud/subversion/source">Node.js modules</a></td><td>
URL: <a href="https://www.assembla.com/spaces/cozycloud/subversion/source" title="Node.js modules">https://www.assembla.com/spaces/cozycloud/subversion/source</a></td></tr><tr><td><a href="https://people.FreeBSD.org/~olivierd/porters-handbook/using-nodejs.html" title="https://people.FreeBSD.org/~olivierd/porters-handbook/using-nodejs.html">Pre-draft documentation</a></td><td>
URL: <a href="https://people.FreeBSD.org/~olivierd/porters-handbook/using-nodejs.html" title="Pre-draft documentation">https://people.FreeBSD.org/~olivierd/porters-handbook/using-nodejs.html</a></td></tr></table><p>
Contact:
Olivier
Duchateau
<<a href="mailto:olivierd@FreeBSD.org">olivierd@FreeBSD.org</a>>
</p>
<p><tt>Node.js</tt> is a platform built on Chrome's JavaScript
runtime for easily building fast, scalable network
applications. It uses an event-driven, non-blocking I/O model
that makes it lightweight and efficient, perfect for
data-intensive real-time applications that run across
distributed devices.</p>
<p>The goal of this project is to make it easy to install the
modules available in the
<a href="http://npmjs.org/" shape="rect">npm package registry</a>.</p>
<p>Currently, the repository contains more than 100 new ports,
in particular:</p>
<ul>
<li>CoffeeScript (a programming language that transcompiles to
JavaScript)</li>
<li>node-gyp (allows building Node.js addons, often written in
C or C++)</li>
<li>Request (a simplified HTTP client)</li>
</ul>
<p>We have also written several helpers for the porting,
available in our experimental repository.</p>
<h3>Open tasks:</h3><ol><li>
<p>Bring in <tt>grunt.js</tt> (and modules), the JavaScript
task runner.</p>
</li><li>
<p>Put more effort into support for <tt>node-gyp</tt> in the
USES framework</p>
</li></ol><hr /><h2><a name="Ports-Collection" href="#Ports-Collection" id="Ports-Collection">Ports Collection</a></h2><table title="Links" style="white-space: nowrap;"><tr><td>Links</td></tr><tr><td><a href="http://www.FreeBSD.org/ports/" title="http://www.FreeBSD.org/ports/">Ports Collection website</a></td><td>
URL: <a href="http://www.FreeBSD.org/ports/" title="Ports Collection website">http://www.FreeBSD.org/ports/</a></td></tr><tr><td><a href="https://www.freebsd.org/doc/en/articles/contributing/ports-contributing.html" title="https://www.freebsd.org/doc/en/articles/contributing/ports-contributing.html">Contributing to the Ports Collection</a></td><td>
URL: <a href="https://www.freebsd.org/doc/en/articles/contributing/ports-contributing.html" title="Contributing to the Ports Collection">https://www.freebsd.org/doc/en/articles/contributing/ports-contributing.html</a></td></tr><tr><td><a href="http://portsmon.FreeBSD.org/index.html" title="http://portsmon.FreeBSD.org/index.html">Port Monitoring service</a></td><td>
URL: <a href="http://portsmon.FreeBSD.org/index.html" title="Port Monitoring service">http://portsmon.FreeBSD.org/index.html</a></td></tr><tr><td><a href="http://www.FreeBSD.org/portmgr/index.html" title="http://www.FreeBSD.org/portmgr/index.html">Team Website</a></td><td>
URL: <a href="http://www.FreeBSD.org/portmgr/index.html" title="Team Website">http://www.FreeBSD.org/portmgr/index.html</a></td></tr><tr><td><a href="http://blogs.freebsdish.org/portmgr/" title="http://blogs.freebsdish.org/portmgr/">Blog</a></td><td>
URL: <a href="http://blogs.freebsdish.org/portmgr/" title="Blog">http://blogs.freebsdish.org/portmgr/</a></td></tr><tr><td><a href="http://www.twitter.com/freebsd_portmgr/" title="http://www.twitter.com/freebsd_portmgr/">Twitter feed</a></td><td>
URL: <a href="http://www.twitter.com/freebsd_portmgr/" title="Twitter feed">http://www.twitter.com/freebsd_portmgr/</a></td></tr><tr><td><a href="http://www.facebook.com/portmgr" title="http://www.facebook.com/portmgr">Facebook page</a></td><td>
URL: <a href="http://www.facebook.com/portmgr" title="Facebook page">http://www.facebook.com/portmgr</a></td></tr><tr><td><a href="http://plus.google.com/communities/108335846196454338383" title="http://plus.google.com/communities/108335846196454338383">Google+ page</a></td><td>
URL: <a href="http://plus.google.com/communities/108335846196454338383" title="Google+ page">http://plus.google.com/communities/108335846196454338383</a></td></tr></table><p>
Contact:
Frederic
Culot
<<a href="mailto:portmgr-secretary@FreeBSD.org">portmgr-secretary@FreeBSD.org</a>>
<br />
Contact: FreeBSD Ports Management Team <<a href="mailto:portmgr@FreeBSD.org">portmgr@FreeBSD.org</a>>
</p>
<p>As of the end of Q3 the ports tree holds just over
25,000 ports, and the PR count is above 2,000. The summer
period saw less activity on the ports tree than during the
previous quarter, with fewer than 7,000 commits performed by
120 active committers. Unfortunately, the number of problem
reports closed also decreased significantly, with fewer than
1,500 problem reports fixed during Q3.</p>
<p>In Q3 several commit bits were taken in for safekeeping,
following an inactivity period of more than 18 months
(fluffy), or on committer's request (xmj, stefan, brix). One
new developer was granted a ports commit bit
(Jason Unovitch <email>junovitch@FreeBSD.org</email>), and one returning committer
(Babak Farrokhi) had his commit bit reinstated.</p>
<p>On the management side, no changes were made to the
portmgr team during Q3.</p>
<p>On the QA side, 25 exp-runs were performed to validate
sensitive updates or cleanups. Amongst those, the noticeable
changes are the update to <tt>pkg</tt> 1.6, the
<tt>automake14</tt> removal, and several important port
updates such as <tt>doxygen</tt> to 1.8.10, <tt>gnome3</tt> to
3.16, <tt>cmake</tt> to 3.3.1, and the Qt4 ports to 4.8.7.
The default jdk was also set to <tt>openjdk8</tt>. Some
infrastructure changes included the addition of new options
helpers: <tt>opt_VARS</tt>, <tt>opt_VARS_OFF</tt>,
<tt>opt_IMPLIES</tt>, and <tt>opt_PREVENTS</tt>. Some macros
were also removed, such as <tt>UNIQUENAME</tt> and
<tt>LATEST_LINK</tt>.</p>
<h3>Open tasks:</h3><ol><li>
<p>We would like to remind everyone that the ports tree is
built and run by volunteers, and any help is greatly
appreciated. This is more important than ever, since the
number of problem reports cannot seem to stop increasing.
So if you use ports or packages, please consider jumping in
and helping! This is also true for existing porters: it
would be great if you would consider the next step, which is
to share your knowledge and mentor someone more junior with
the ports tree internals. And if you already do these
tasks, many thanks to you! </p>
</li></ol><hr /><h2><a name="Ports-on-PowerPC" href="#Ports-on-PowerPC" id="Ports-on-PowerPC">Ports on PowerPC</a></h2><p>
Contact:
Alexey
Dokuchaev
<<a href="mailto:danfe@FreeBSD.org">danfe@FreeBSD.org</a>>
</p>
<p>The Ports Collection typically receives less attention on
Tier-2 architectures than on Tier-1 architectures, although
several build-runs were performed at various points in the
past, and broken ports were marked as such at those times.</p>
<p>Some of the Tier-2 platforms, such as PowerPC and ARM,
have improved considerably recently, both on FreeBSD's and the
compilers' sides, but as the tree is not rebuilt on the
cluster very often, it was suspected that many ports are
marked BROKEN while they in fact now build and run
correctly.</p>
<p>Over the past several weeks, 26 ports that were indeed
broken on at least PowerPC had been fixed, 58 ports that were
incorrectly marked as broken (leftovers from the old times)
were marked as working, and fewer than 40 ports still have
issues requiring further work.</p>
<h3>Open tasks:</h3><ol><li>
<p>The Ports Collection could benefit a lot from more frequent
sweeps targeting Tier-2 systems.</p>
</li><li>
<p>Recent work on QEMU-backed emulators and the
much-anticipated cross-building of ports are essential
pieces to bring FreeBSD packages on par with the base system's
support, architecture-wise.</p>
</li></ol><hr /><h2><a name="Xfce-on-FreeBSD" href="#Xfce-on-FreeBSD" id="Xfce-on-FreeBSD">Xfce on FreeBSD</a></h2><table title="Links" style="white-space: nowrap;"><tr><td>Links</td></tr><tr><td><a href="https://wiki.FreeBSD.org/Xfce" title="https://wiki.FreeBSD.org/Xfce">FreeBSD Xfce Project</a></td><td>
URL: <a href="https://wiki.FreeBSD.org/Xfce" title="FreeBSD Xfce Project">https://wiki.FreeBSD.org/Xfce</a></td></tr><tr><td><a href="https://www.assembla.com/spaces/xfce4/subversion/source" title="https://www.assembla.com/spaces/xfce4/subversion/source">FreeBSD Xfce Repository</a></td><td>
URL: <a href="https://www.assembla.com/spaces/xfce4/subversion/source" title="FreeBSD Xfce Repository">https://www.assembla.com/spaces/xfce4/subversion/source</a></td></tr></table><p>
Contact: FreeBSD Xfce Team <<a href="mailto:xfce@FreeBSD.org">xfce@FreeBSD.org</a>>
</p>
<p>Xfce is a free software desktop environment for Unix and
Unix-like platforms, such as FreeBSD. It aims to be fast and
lightweight, while still being visually appealing and easy to
use.</p>
<p>During this quarter, the team has kept these applications
up-to-date:</p>
<ul>
<li><tt>science/xfce4-equake-plugin</tt> 1.3.8</li>
<li><tt>sysutils/xfce4-power-manager</tt> 1.5.2</li>
<li><tt>x11/libexo</tt> 0.10.7</li>
<li><tt>x11/xfce4-embed-plugin</tt> 1.6.0</li>
<li><tt>x11/xfce4-verve-plugin</tt> 1.1.0</li>
<li><tt>x11/xfce4-whiskermenu-plugin</tt> 1.5.1</li>
<li><tt>x11-wm/xfce4-desktop</tt> 4.12.3</li>
<li><tt>www/midori</tt> 0.5.11</li>
</ul>
<p>We also follow the unstable releases (available in our
experimental repository) of:</p>
<ul>
<li><tt>sysutils/xfce4-panel-switch</tt> 1.0.2 (utility to
backup panel layouts)</li>
<li><tt>x11/xfce4-dashboard</tt> 0.5.1</li>
</ul>
<p>In the <tt>trunk</tt> branch, <tt>x11-wm/xfce4-panel</tt>
contains a patch to support
<tt>sysutils/xfce4-panel-switch</tt> (available through the
panel preferences).</p>
<h3>Open tasks:</h3><ol><li>
<p>Test the new stable release of GLib 2.46.x with the
kqueue/kevent backend enabled (it was disabled with revision
<a href="https://svnweb.FreeBSD.org/ports?view=revision&revision=393663" shape="rect">r393663</a>).
Currently several features are broken, especially in Thunar,
xfce4-panel, and Xfdashboard.</p>
</li></ol><hr /><br /><h1><a name="Documentation" href="#Documentation" id="Documentation">Documentation</a></h1><br /><h2><a name="PO-Translation-Project" href="#PO-Translation-Project" id="PO-Translation-Project">PO Translation Project</a></h2><table title="Links" style="white-space: nowrap;"><tr><td>Links</td></tr><tr><td><a href="https://www.FreeBSD.org/doc/en_US.ISO8859-1/books/fdp-primer/po-translations.html" title="https://www.FreeBSD.org/doc/en_US.ISO8859-1/books/fdp-primer/po-translations.html">PO Translations</a></td><td>
URL: <a href="https://www.FreeBSD.org/doc/en_US.ISO8859-1/books/fdp-primer/po-translations.html" title="PO Translations">https://www.FreeBSD.org/doc/en_US.ISO8859-1/books/fdp-primer/po-translations.html</a></td></tr><tr><td><a href="https://www.FreeBSD.org/doc/de_DE.ISO8859-1/articles/leap-seconds/" title="https://www.FreeBSD.org/doc/de_DE.ISO8859-1/articles/leap-seconds/">German translation of the Leap Seconds article</a></td><td>
URL: <a href="https://www.FreeBSD.org/doc/de_DE.ISO8859-1/articles/leap-seconds/" title="German translation of the Leap Seconds article">https://www.FreeBSD.org/doc/de_DE.ISO8859-1/articles/leap-seconds/</a></td></tr><tr><td><a href="https://www.FreeBSD.org/doc/nl_NL.ISO8859-1/articles/explaining-bsd/" title="https://www.FreeBSD.org/doc/nl_NL.ISO8859-1/articles/explaining-bsd/">Dutch translation of the Explaining BSD article</a></td><td>
URL: <a href="https://www.FreeBSD.org/doc/nl_NL.ISO8859-1/articles/explaining-bsd/" title="Dutch translation of the Explaining BSD article">https://www.FreeBSD.org/doc/nl_NL.ISO8859-1/articles/explaining-bsd/</a></td></tr><tr><td><a href="https://lists.FreeBSD.org/pipermail/freebsd-translators/" title="https://lists.FreeBSD.org/pipermail/freebsd-translators/">FreeBSD Translators mailing list</a></td><td>
URL: <a href="https://lists.FreeBSD.org/pipermail/freebsd-translators/" title="FreeBSD Translators mailing list">https://lists.FreeBSD.org/pipermail/freebsd-translators/</a></td></tr></table><p>
Contact: FreeBSD Documentation Team <<a href="mailto:freebsd-doc@FreeBSD.org">freebsd-doc@FreeBSD.org</a>>
<br />
Contact: FreeBSD Translators <<a href="mailto:freebsd-translators@FreeBSD.org">freebsd-translators@FreeBSD.org</a>>
<br />
Contact:
Warren
Block
<<a href="mailto:wblock@FreeBSD.org">wblock@FreeBSD.org</a>>
</p>
<p>The FreeBSD documentation translation process has been in need
of modernization for quite some time. The existing process
was just too difficult for translators to keep translations up
to date.</p>
<p>With help from Benedict Reuschling, Shaun McCance, Ryan
Lortie, Hiroki Sato, and many others, the availability of a
new PO translation system was announced in August.</p>
<p>PO translations handle most of the overhead of the
translation process. Translators do not have to keep track of
commits to the upstream English version. The actual work of
translating is quicker and easier. PO editors show how much
of the document has been translated. If a translation is
already available for a given string, it can be easily
reused.</p>
<p>Early testing has been very successful. Most issues involve
discovering and documenting the new processes rather than
fixing bugs. New translations of English documents have
already been committed.</p>
<p>There will certainly be additional changes and improvements,
but the system works. We will continue to discover how to
share work between translation teams and the project as a
whole. This work will be much easier now that the initial
hurdle of being able to use PO software has been passed.
</p>
<h3>Open tasks:</h3><ol><li>
<p>Continue testing. The system is new to us and there are
bound to be bugs and situations with unexpected results.</p>
</li><li>
<p>Improve documentation on using the new PO translations.
Much of this involves things that rarely happened with
the old system, like adding a completely new language
directory.</p>
</li><li>
<p>Add new translations for existing documents. There is much
less work to create and update a translated document
now. Existing and new translators are working on adding and
updating translations of the English documentation.</p>
</li><li>
<p>Figure out how to generate and share translation memory
with other members of a language team or translators outside
the team.</p>
</li><li>
<p>Test new PO editors like Pootle and Virtaal.</p>
</li><li>
<p>Determine a method to allow translators commit access for
translations.</p>
</li><li>
<p>Develop and test code to translate manual pages.</p>
</li></ol><hr /><h2><a name="Website-CSS-Update" href="#Website-CSS-Update" id="Website-CSS-Update">Website CSS Update</a></h2><table title="Links" style="white-space: nowrap;"><tr><td>Links</td></tr><tr><td><a href="https://www.FreeBSD.org/" title="https://www.FreeBSD.org/">FreeBSD Main Site</a></td><td>
URL: <a href="https://www.FreeBSD.org/" title="FreeBSD Main Site">https://www.FreeBSD.org/</a></td></tr></table><p>
Contact:
Warren
Block
<<a href="mailto:wblock@FreeBSD.org">wblock@FreeBSD.org</a>>
</p>
<p>The FreeBSD website has remained essentially unchanged in
appearance for many years. Like other legacy systems, it is
difficult to change. It is heavily used and therefore subject
to non-trivial bikeshedding.</p>
<p>The CSS shrunk the reader's font from the size they had
requested. It specified hardcoded font and object sizes in
pixels. On wide monitors, only the middle third of the screen
was used. Hardware has changed from what existed when
this version of the site was created. Screens have become
larger and wider, and increased in resolution at the same
time.</p>
<p>It was time for a change. Font sizes were set to
percentages, with none smaller than 100%. The width of the
main box was changed to 90%. Other small adjustments were
added. These limited changes produced a rendered site that
better respects the reader's settings, is much easier to read,
and shows more information.</p>
<p>Although no content changed, the appearance was so different
that some viewers thought we had redesigned the site. It is
gratifying to know that so many people are using it. We would
also like to thank people for the response, which was
overwhelmingly positive and hardly bikesheddy at all.</p>
<h3>Open tasks:</h3><ol><li>
<p>Fix other outdated assumptions in the CSS. Alternately,
rework the entire site. However, that is a much more
complex and ambitious project than it might seem.</p>
</li></ol><hr /><br /><h1><a name="Google-Summer-of-Code" href="#Google-Summer-of-Code" id="Google-Summer-of-Code">Google Summer of Code</a></h1><br /><h2><a name="Allwinner-A10/A20-Support" href="#Allwinner-A10/A20-Support" id="Allwinner-A10/A20-Support">Allwinner A10/A20 Support</a></h2><table title="Links" style="white-space: nowrap;"><tr><td>Links</td></tr><tr><td><a href="https://wiki.FreeBSD.org/FreeBSD/arm/Allwinner" title="https://wiki.FreeBSD.org/FreeBSD/arm/Allwinner">Wiki page</a></td><td>
URL: <a href="https://wiki.FreeBSD.org/FreeBSD/arm/Allwinner" title="Wiki page">https://wiki.FreeBSD.org/FreeBSD/arm/Allwinner</a></td></tr></table><p>
Contact:
Luiz Otavio
O Souza
<<a href="mailto:loos@FreeBSD.org">loos@FreeBSD.org</a>>
<br />
Contact:
Pratik
Singhal
<<a href="mailto:ps06756@gmail.com">ps06756@gmail.com</a>>
</p>
<p>The Allwinner A10 and A20 chips are ARM CPUs found in
increasingly common development boards and other devices, such as
the Cubieboard/Cubieboard 2 and the Banana Pi.</p>
<p>With the end of a GSoC project by Pratik Singhal, our A10 and
A20 support has improved. Pratik helped with the
implementation and testing of the SD card and SATA support for
the Allwinner chips.</p>
<p>Luiz Otavio O Souza added support for the <tt>dwc</tt> network interface
on the A20, which is capable of gigabit speeds.</p>
<p>Glen Barber kindly added support for official FreeBSD images for
Cubieboard 2 and the Banana Pi.</p>
<p>This project was sponsored by Google Summer of Code 2015 (partly).</p><h3>Open tasks:</h3><ol><li>
<p>Some drivers are still missing: audio,
video/HDMI/framebuffer, IR, I2C, SPI, PWM.</p>
</li><li>
<p>Fix <tt>if_dwc</tt> for better performance.</p>
</li></ol><hr /><h2><a name="mtree-Parsing-and-Manipulation-Library" href="#mtree-Parsing-and-Manipulation-Library" id="mtree-Parsing-and-Manipulation-Library">mtree Parsing and Manipulation Library</a></h2><table title="Links" style="white-space: nowrap;"><tr><td>Links</td></tr><tr><td><a href="https://wiki.FreeBSD.org/SummerOfCode2015/mtreeParsingLibrary" title="https://wiki.FreeBSD.org/SummerOfCode2015/mtreeParsingLibrary">Wiki page</a></td><td>
URL: <a href="https://wiki.FreeBSD.org/SummerOfCode2015/mtreeParsingLibrary" title="Wiki page">https://wiki.FreeBSD.org/SummerOfCode2015/mtreeParsingLibrary</a></td></tr></table><p>
Contact:
Michal
Ratajsky
<<a href="mailto:michal@FreeBSD.org">michal@FreeBSD.org</a>>
<br />
Contact:
Brooks
Davis
<<a href="mailto:brooks@FreeBSD.org">brooks@FreeBSD.org</a>>
</p>
<p>FreeBSD includes several programs that work with file system
hierarchy descriptions in the <tt>mtree(5)</tt> format. These
descriptions, also called specifications, have a broad range
of uses, from automatically creating directory structures to
security auditing.</p>
<p> Each of the programs, namely <tt>mtree</tt>,
<tt>bsdtar</tt>, <tt>install</tt>, and <tt>makefs</tt>, has
its own implementation of the mtree format. This not only
adds maintenance overhead, but also makes interoperability
difficult, as each of the implementations only supports a
limited subset of the format.</p>
<p>The goal of this project was to create a new
<tt>libmtree</tt> library, implementing everything the mtree
format has to offer, and wrapping it with an expressive API
which all the listed programs can use. We also wanted
<tt>libmtree</tt> to be portable, as one of the major users of
the mtree format is <tt>libarchive</tt>, the library
implementing most of <tt>bsdtar</tt>.</p>
<p>Currently, the library is functionally complete, ready to be
downloaded and receive everyone's attention. We have also
decided to bundle the <tt>mtree</tt> program along with it.
The bundled <tt>mtree</tt> has also been modified for better
portability.</p>
<p>The project included modifying <tt>libarchive</tt>,
<tt>install</tt> and <tt>makefs</tt> to use libmtree. These
modified versions are also available.</p>
<p>Please see the Wiki page for more information, download
locations, and an example of using the <tt>libmtree</tt> API.
</p>
<p>This project was sponsored by Google Summer of Code 2015.</p><h3>Open tasks:</h3><ol><li>
<p>Test and review the library code and API, and the
modifications made to the programs.</p>
</li><li>
<p>Fix the known problems that are mentioned on the Wiki
page.</p>
</li></ol><hr /><h2><a name="Multiqueue-Testing" href="#Multiqueue-Testing" id="Multiqueue-Testing">Multiqueue Testing</a></h2><table title="Links" style="white-space: nowrap;"><tr><td>Links</td></tr><tr><td><a href="https://wiki.FreeBSD.org/SummerOfCode2015/MultiqueueTestingProject" title="https://wiki.FreeBSD.org/SummerOfCode2015/MultiqueueTestingProject">Project Wiki Page</a></td><td>
URL: <a href="https://wiki.FreeBSD.org/SummerOfCode2015/MultiqueueTestingProject" title="Project Wiki Page">https://wiki.FreeBSD.org/SummerOfCode2015/MultiqueueTestingProject</a></td></tr></table><p>
Contact:
Tiwei
Bie
<<a href="mailto:btw@FreeBSD.org">btw@FreeBSD.org</a>>
<br />
Contact:
Hiren
Panchasara
<<a href="mailto:hiren@FreeBSD.org">hiren@FreeBSD.org</a>>
<br />
Contact:
George
Neville-Neil
<<a href="mailto:gnn@FreeBSD.org">gnn@FreeBSD.org</a>>
<br />
Contact:
Robert
Watson
<<a href="mailto:rwatson@FreeBSD.org">rwatson@FreeBSD.org</a>>
</p>
<p>The aim of this project is to design and implement
infrastructure to validate that a number of the network
stack's multiqueue behaviours are functioning as expected.</p>
<p>At present, most of this project has been implemented. It
mainly consists of two parts:</p>
<ol>
<li>A general mechanism to collect the per-ring per-cpu
statistics that can be used by all NIC drivers, and
extensions to <tt>netstat(1)</tt> to report these
statistics.</li>
<li>A suite of network stack behavior testing programs that
consists of:
<ul>
<li>a virtual multiqueue ethernet interface
(<tt>vme</tt>)</li>
<li>a UDP packet generator based on <tt>vme</tt></li>
<li>a UDP server based on <tt>socket(2)</tt></li>
<li>a TCP client based on <tt>lwip</tt> and
<tt>vme</tt></li>
<li>a TCP server based on <tt>socket(2)</tt></li>
</ul>
</li>
</ol>
<p>However, it still needs further refinements to make it
suitable for committing to FreeBSD head.</p>
<p>This project was sponsored by Google Summer of Code 2015.</p><hr /><h2><a name="Update-Ficl-in-Bootloader" href="#Update-Ficl-in-Bootloader" id="Update-Ficl-in-Bootloader">Update Ficl in Bootloader</a></h2><table title="Links" style="white-space: nowrap;"><tr><td>Links</td></tr><tr><td><a href="https://wiki.FreeBSD.org/SummerOfCode2015/UpdateFiclInBootloader" title="https://wiki.FreeBSD.org/SummerOfCode2015/UpdateFiclInBootloader">Wiki Page</a></td><td>
URL: <a href="https://wiki.FreeBSD.org/SummerOfCode2015/UpdateFiclInBootloader" title="Wiki Page">https://wiki.FreeBSD.org/SummerOfCode2015/UpdateFiclInBootloader</a></td></tr></table><p>
Contact:
Colin
Lord
<<a href="mailto:clord@FreeBSD.org">clord@FreeBSD.org</a>>
</p>
<p>The FreeBSD bootloader has used Ficl 3 for quite some time.
This project was intended to update the version of Ficl in use
to Ficl 4. Ficl 4 is not only faster but also has a smaller
memory footprint, both being important advantages for a
bootloader.</p>
<p>As part of the Google Summer of Code program, I worked on
importing the Ficl 4 sources to get a bootloader running Ficl
4. The first half of the summer consisted of setting up my
test environment, as well as arranging the sources in the tree
properly and modifying the build files to point to the new
locations. Once that was complete, the sources had to be
modified to build correctly and to add back in some of the
FreeBSD-specific parts from Ficl 3. Unfortunately, after all
those tasks were completed, a few bugs in the Ficl project
were discovered that delayed the bootloader update, so it is
not finished. The Illumos project has faced similar issues
with Ficl 4 so I received some good tips from them, but since
school has started back up I have not been able to put much
work into fixing the bugs.</p>
<p>This project was sponsored by Google Summer of Code 2015.</p><hr /><br /><h1><a name="Miscellaneous" href="#Miscellaneous" id="Miscellaneous">Miscellaneous</a></h1><br /><h2><a name="The-FreeBSD-Foundation" href="#The-FreeBSD-Foundation" id="The-FreeBSD-Foundation">The FreeBSD Foundation</a></h2><table title="Links" style="white-space: nowrap;"><tr><td>Links</td></tr><tr><td><a href="http://www.FreeBSDFoundation.org/" title="http://www.FreeBSDFoundation.org/">Foundation website</a></td><td>
URL: <a href="http://www.FreeBSDFoundation.org/" title="Foundation website">http://www.FreeBSDFoundation.org/</a></td></tr><tr><td><a href="http://freebsdjournal.com/" title="http://freebsdjournal.com/">FreeBSD Journal</a></td><td>
URL: <a href="http://freebsdjournal.com/" title="FreeBSD Journal">http://freebsdjournal.com/</a></td></tr></table><p>
Contact:
Deb
Goodkin
<<a href="mailto:deb@FreeBSDFoundation.org">deb@FreeBSDFoundation.org</a>>
</p>
<p>The FreeBSD Foundation is a 501(c)(3) non-profit organization
dedicated to supporting and promoting the FreeBSD Project and
community worldwide. Funding comes from individual and
corporate donations and is used to fund and manage development
projects, conferences and developer summits, and provide
travel grants to FreeBSD developers. The Foundation purchases
hardware to improve and maintain FreeBSD infrastructure and
publishes FreeBSD white papers and marketing material to promote,
educate, and advocate for the FreeBSD Project. The Foundation
also represents the FreeBSD Project in executing contracts,
license agreements, and other legal arrangements that require
a recognized legal entity.</p>
<p>Here are some highlights of what we did to help FreeBSD last
quarter:</p>
<p>Anne Dickison and Deb Goodkin attended OSCON to promote
FreeBSD.</p>
<p>Robert Watson organized and ran the Cambridge FreeBSD Developer
Summit 2015 ("BSDCam"). We provided travel grants to two FreeBSD
developers to attend the summit. Three Foundation board/staff
members attended too.</p>
<p>George V. Neville-Neil attended the ARM Partner Meeting where he met with 15
silicon and systems vendors to present the unique traits and
qualities of FreeBSD and work on setting up partnerships with the
companies building and deploying ARM hardware.</p>
<p>George and Robert Watson collaborated in Cambridge on
developing further FreeBSD-based teaching material at
undergraduate and masters levels. Part of this project was
funded by the Foundation.</p>
<p>George planned and ran the DevSummit at vBSDCon 2015.</p>
<p>We were proud to be a sponsor of
<url href="http://www.verisign.com/en_US/internet-technology-news/verisign-events/vbsdcon/index.xhtml">vBSDCon
2015</url>, Sept 11-13 in Washington DC. George V. Neville-Neil and
Ed Maste presented "Supporting a BSD Project" at the
conference. Dru Lavigne, Glen Barber, George V. Neville-Neil, and Ed Maste
attended and represented the Foundation at both vBSDCon and
the FreeBSD Developer Summit that preceded it. We had many
people stop by our table to make a donation, and it was
another great opportunity to talk and work with people
face-to-face.</p>
<p>Cheryl Blain and John Baldwin promoted the Foundation and FreeBSD at
the SNIA 2015 Storage Developer Conference, in Santa Clara,
California, Sept 21-24. The Foundation was also a
sponsor.</p>
<p>We sponsored Andy Turner to attend Linaro Connect in San
Francisco, Sept 21-25.</p>
<p>Ed Maste, our project development director, attended the
X.Org Developer's Conference (XDC) in Toronto, Ontario.</p>
<p>We sponsored the 2015 nginx Conference and sent FreeBSD
community member John Baldwin.</p>
<p>George Neville-Neil continued planning the
<url href="https://wiki.freebsd.org/201511VendorDevSummit">2015
Silicon Valley Vendor Summit</url>, including securing
the venue.</p>
<p>Benedict Reuschling and Erwin Lansing helped plan and organize the EuroBSDCon
FreeBSD Developer Summit. This included setting up the working
groups, securing the venue, and getting the T-shirts made.</p>
<p>Benedict helped organize, and he and Dru Lavigne participated
in the
<url href="https://wiki.freebsd.org/201507DevSummit">FreeBSD
Hackathon</url> in the Linuxhotel in Essen, Germany. It was a
successful weekend of fixing bugs and collaborating with
others.</p>
<p>Dru Lavigne taught a FreeBSD class in Berlin, Germany July
29-31.</p>
<p>We were a sponsor of
<url href="http://womencourage.acm.org/index.cfm">womENcourage
2015</url>, in Uppsala Sweden, Sept 24-26. Dru was the
moderator for a panel on
<url href="http://womencourage.acm.org/panel2.cfm">Open Source
as a Career Path</url>. All the panelists were FreeBSD
contributors including Dan Langille, Allan Jude, Benedict
Reuschling, and Deb Goodkin. We also had a table at the job
fair and talked to a lot of students and professors about the
benefits of working on FreeBSD as an alternative to an
internship, teaching about FreeBSD in university classes, and
hosting FreeBSD events at their schools. Dan taught a workshop
on How to Contribute to an Open Source project. Deb
participated in this workshop and started a discussion on
offering a similar workshop at BSD and non-BSD conferences.
The workshop would be titled "How to Contribute to FreeBSD", and
participants would learn how to contribute documentation to
the Project.</p>
<p>We continued to publish our monthly newsletters, keeping the
community informed on what we are doing, including event
recaps, testimonials, project updates, and upcoming events.
We received testimonials from Microsoft, NYCBus, and
ScaleEngine. We also continued to approach companies to
provide us with testimonials to help promote their use of
FreeBSD.</p>
<p>Anne Dickison rebooted the Faces of FreeBSD series and is
working with FreeBSD contributors on writing their stories.
She continued to produce more FreeBSD Swag and literature to
promote FreeBSD, as well as advocating for FreeBSD over our social
channels and with new partnerships.</p>
<p>We reached our 2015 goal of 10,000 FreeBSD Journal subscribers,
and we published a new Open Journal article on our website, to
help promote the Journal. We also started offering a new
subscription bundle, where you can buy all the 2014 issues.
The July/August issue was published.</p>
<p>Justin T. Gibbs began teaching a semester-long FreeBSD class at a middle school
in Boulder, Colorado. We are using the BeagleBone Black (BBB)
to run FreeBSD connected to Macs and PCs. We have received a lot
of support, both internally, and from the Project, to get the
FreeBSD images to work on the BBB with the Macs and PCs. It has
been a great collaborative effort with community members, and
this will help future classes in being able to support
inexpensive platforms for teaching FreeBSD.</p>
<p>Work continued on creating a FreeBSD curriculum for a half day
workshop. Hopefully this will be available in late
Spring.</p>
<p>We provided legal support for the Project including granting
trademark permission for some users and companies who
requested permission to put the FreeBSD logo on their websites
and marketing literature.</p>
<p>We met with commercial users to get their input on what
they would like to see supported in FreeBSD. We also do this to
help connect FreeBSD developers with commercial users to help
facilitate collaboration.</p>
<p>FreeBSD Foundation employee and Release Engineer Glen Barber was
extremely busy during this quarter, working on a number of
exciting areas of the FreeBSD Project. Some of the highlights
include:
<ul>
<li>Code cleanup and bug fixes to several parts of the
release build code, and finishing adding support for
automatically uploading cloud provider images, which was
merged to the stable/10 branch before the code freeze.
The 10.2-RELEASE cycle spanned a 9-week timeframe overall,
starting from the code slush.</li>
<li> With the FreeBSD Release Engineering Team, released two
BETA builds and three RC builds for the 10.2-RELEASE
cycle, with the final release announced mid-August,
two weeks ahead of the original schedule.</li>
<li>With the FreeBSD Cluster Administrators Team, assisted with
a number of general updates and enhancements to the FreeBSD
infrastructure.</li>
</ul></p>
<hr /><h2><a name="ZFSguru" href="#ZFSguru" id="ZFSguru">ZFSguru</a></h2><table title="Links" style="white-space: nowrap;"><tr><td>Links</td></tr><tr><td><a href="http://zfsguru.com" title="http://zfsguru.com">Home page</a></td><td>
URL: <a href="http://zfsguru.com" title="Home page">http://zfsguru.com</a></td></tr><tr><td><a href="http://zfsguru.com/forum/zfsgurudevelopment/1038" title="http://zfsguru.com/forum/zfsgurudevelopment/1038">Forum post on Gnome 3 debugging</a></td><td>
URL: <a href="http://zfsguru.com/forum/zfsgurudevelopment/1038" title="Forum post on Gnome 3 debugging">http://zfsguru.com/forum/zfsgurudevelopment/1038</a></td></tr></table><p>
Contact:
Jason
Edwards
<<a href="mailto:jason@zfsguru.com">jason@zfsguru.com</a>>
</p>
<p>ZFSguru started as a front-end to ZFS but has since grown
into a multifunctional server appliance with its own unique
features. While the project is still in early development, it
already offers multiple unique features not found in other
projects. Unlike similar projects, nothing is stripped away
from the base operating system, meaning ZFSguru behaves as a
normal FreeBSD installation and thus is very versatile. The
web-interface is designed to unite both novice and advanced
users, providing both very easy to use basic functionality as
well as features to be appreciated by more experienced users.
The modular nature of the project combats the danger of bloat,
whilst still allowing extended functionality to be easily
deployed.</p>
<p>On the 15th of August, version 0.3 of ZFSguru was released.
Some highlights of the new version:</p>
<ul>
<li>New build infrastructure allows for frequent releases of
system images and services in a semi-automated way.</li>
<li>A new GuruDB database allows for a growing number of
system images and servers, and provides good caching to
accelerate pages.</li>
<li>The installation procedure was given a major
overhaul.</li>
<li>In addition to the LiveCD, USB images are now available.
The USB image supports both legacy MBR bootcode and UEFI
boot.</li>
<li>Many libraries in the web-interface have been
overhauled, in addition to many other additions to the
web interface.</li>
<li>Many improvements were made to optional add-on services,
such as the new Gnome 3 graphical environment.</li>
</ul>
<p>Other progress made in the months July, August, and
September:</p>
<ul>
<li>System image builds 001, 002, 003, and 004 have been
released for all supported branches: 10.0, 10.1, 10.2, 10.3
(-STABLE), and 11.0 (-CURRENT).</li>
<li>Work on the 0.4 web-interface has started, which focuses
on improving network support in the web-interface.</li>
<li>Work on a new visual theme for the web-interface has
started. The new interface is likely to be included in the
upcoming 0.4 release.</li>
<li>A new master server is being prepared, which is likely to
be operational in December.</li>
<li>A new website is being worked on, to be launched the first
of January, 2016.</li>
</ul>
<h3>Open tasks:</h3><ol><li>
<p>The new Gnome 3 desktop does not work for everyone
and still has issues. Anyone capable of diagnosing these
issues can give the Gnome 3 LiveCD a try. Please see
the linked forum thread for more information.</p>
</li><li>
<p>Several ports fail to compile with our own build
infrastructure, and require bug reports in order to get
them fixed upstream.</p>
</li><li>
<p>A 'State of the Project 2015' is due in Q4, providing an
overview for future development of the project.</p>
</li></ol><hr /><a href="../news.html">News Home</a> | <a href="status.html">Status Home</a></div>
<br class="clearboth" />
</div>
<div id="footer">
<span><a href="../../search/index-site.html">Site Map</a> |
<a href="../../copyright/">Legal Notices</a> | © 1995–2021 The FreeBSD Project.
All rights reserved.</span>
<br />
</div>
</div>
</div>
</body>
</html>
|