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
|
[%# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
#%]
[% SET title = "Bugzilla 4.4 Release Notes" %]
[% INCLUDE global/header.html.tmpl
title = title
bodyclasses = ['narrow_page']
%]
<h1>[% title FILTER html %]</h1>
<ul class="bz_toc">
<li><a href="#v44_introduction">Introduction</a></li>
<li><a href="#v44_point">Updates in this 4.4.x Release</a></li>
<li><a href="#v44_req">Minimum Requirements</a></li>
<li><a href="#v44_feat">New Features and Improvements</a></li>
<li><a href="#v44_issues">Outstanding Issues</a></li>
<li><a href="#v44_upgrading">Notes On Upgrading From a Previous Version</a></li>
<li><a href="#v44_code_changes">Code Changes Which May Affect
Customizations and Extensions</a></li>
<li><a href="#v44_previous">Release Notes for Previous Versions</a></li>
</ul>
<h2 id="v44_introduction">Introduction</h2>
<p>Welcome to Bugzilla 4.4! It has been over a year since we
released Bugzilla 4.2 on February 2012, and this new major
release comes with several new features and improvements. This release
contains major improvements to WebServices, which were our main target in
this release, a rewritten tagging system, a real MIME type auto-detection for
attachments, improved support for Oracle, performance improvements and lots
of other enhancements.</p>
<p>If you're upgrading, make sure to read <a href="#v44_upgrading">Notes On
Upgrading From a Previous Version</a>. If you are upgrading from a release
before 4.2, make sure to read the release notes for all the
<a href="#v44_previous">previous versions</a> in between your version and
this one, <strong>particularly the Upgrading section of each version's
release notes</strong>.</p>
<h2 id="v44_point">Updates in this 4.4.x Release</h2>
<h3>4.4.2</h3>
<p>The following [% terms.bugs %] have been fixed in this release:</p>
<ul>
<li><kbd>checksetup.pl</kbd> was incorrectly reporting DBI 1.630 (1.63) as
being older than 1.614, preventing the upgrade to complete.
If you still use Perl 5.10.0 or older, make sure you have the
<a href="http://search.cpan.org/~jpeacock/version/lib/version.pod">version</a>
module installed before running <kbd>checksetup.pl</kbd>.
If you use Perl 5.10.1 or newer, this module is already available and
no special action is required.
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=938300">[% terms.Bug %] 938300</a>)</li>
<li>An error about <kbd>longdescs.comment_id</kbd> was thrown by MySQL 5.0
and 5.1 when upgrading to Bugzilla 4.4 or 4.4.1.
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=870369">[% terms.Bug %] 870369</a>)</li>
<li>Saved searches containing Unicode characters in their name could not
be run if Digest::SHA 5.82 or newer is installed.
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=964113">[% terms.Bug %] 964113</a>)</li>
<li>A regression in Bugzilla 4.4.1 caused <kbd>email_in.pl</kbd> to fail
with an "invalid token" error message.
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=928331">[% terms.Bug %] 928331</a> and
<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=930013">[% terms.bug %] 930013</a>)</li>
<li>The PROJECT environment variable is now correctly taken into account
when mod_perl is enabled (this variable allows several installations to
share the same codebase).
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=843457">[% terms.Bug %] 843457</a>)</li>
<li>Mandatory custom fields whose visibility depends on a component are now
correctly required on [% terms.bug %] creation.
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=895813">[% terms.Bug %] 895813</a>)</li>
<li>Windows 8.1 is now recognized when reporting new [% terms.bugs %].
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=928092">[% terms.Bug %] 928092</a>)</li>
<li>Bugzilla no longer crashes when the <kbd>shutdownhtml</kbd> parameter
is set and using a non-cookie based authentication method.
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=748095">[% terms.Bug %] 748095</a>)</li>
<li><kbd>importxml.pl</kbd> no longer ignores the <kbd>maxattachmentsize</kbd>
and <kbd>maxlocalattachment</kbd> parameters when importing [% terms.bugs %].
This means that large attachments are now stored locally in
<kbd>data/attachments/</kbd> if parameters are configured this way.
The script must now be run as the webserver user (e.g. apache) to make these
attachments readable from web browsers.
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=360231">[% terms.Bug %] 360231</a>)</li>
<li>The default date and time format used for SQLite has been fixed.
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=938161">[% terms.Bug %] 938161</a>)</li>
</ul>
<h3>4.4.1</h3>
<p>This release fixes several security issues. See the
<a href="http://www.bugzilla.org/security/4.0.10/">Security Advisory</a>
for details.</p>
<p>In addition, the following [% terms.bugs %] have been fixed in this release:</p>
<ul>
<li><kbd>checksetup.pl</kbd> no longer fails with "Invalid version format (non-numeric data)"
when a Perl module contains an invalid version number.
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=781672">[% terms.Bug %] 781672</a>)</li>
<li>Internet Explorer 11 and KHTML-based browsers such as Konqueror can now
display buglists correctly.
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=902515">[% terms.Bug %] 902515</a> and
<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=914262">[% terms.bug %] 914262</a>)</li>
<li>When editing several [% terms.bugs %] at once and moving them into a new
product, [% terms.bugs %] restricted to a group in the old product could
loose these group restrictions in the new product.
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=769134">[% terms.Bug %] 769134</a>)</li>
<li>When the <kbd>password_complexity</kbd> parameter was set to
'letters_numbers_specialchars', passwords containing numbers and special
characters only were accepted. Now it makes sure that a letter is also present.
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=897264">[% terms.Bug %] 897264</a>)</li>
<li>Large dependency trees are now displayed much faster.
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=917370">[% terms.Bug %] 917370</a>)</li>
<li>When a user has set many votes, the "Votes" page is now displayed much faster.
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=851267">[% terms.Bug %] 851267</a>)</li>
<li>The "My Requests" page now correctly uses the AND/OR operator for the
requester and requestee fields only instead of using it for all fields.
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=891311">[% terms.Bug %] 891311</a>)</li>
<li>With DB servers doing case-insensitive comparisons, such as MySQL, tokens
and login cookies were not correctly validated as the case was ignored.
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=906745">[% terms.Bug %] 906745</a> and
<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=907438">[% terms.bug %] 907438</a>)</li>
<li>All security headers (such as X-Frame-Options) are now returned when using XML-RPC.
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=787328">[% terms.Bug %] 787328</a>)</li>
<li>Oracle crashed when reporting a new [% terms.bug %] if a custom free-text field
was non-mandatory and left empty.
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=919475">[% terms.Bug %] 919475</a>)</li>
<li>It was not possible to import [% terms.bugs %] using <kbd>importxml.pl</kbd> with Oracle.
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=848063">[% terms.Bug %] 848063</a>)</li>
</ul>
<h2 id="v44_req">Minimum Requirements</h2>
<p>Any requirements that are new since 4.2 will look like
<span class="req_new">this</span>.</p>
<ul>
<li><a href="#v44_req_perl">Perl</a></li>
<li><a href="#v44_req_mysql">For MySQL Users</a></li>
<li><a href="#v44_req_pg">For PostgreSQL Users</a></li>
<li><a href="#v44_req_oracle">For Oracle Users</a></li>
<li><a href="#v44_req_sqlite">For SQLite Users</a></li>
<li><a href="#v44_req_modules">Required Perl Modules</a></li>
<li><a href="#v44_req_optional_mod">Optional Perl Modules</a></li>
<li><a href="#v44_req_apache">Optional Apache Modules</a></li>
</ul>
<h3 id="v44_req_perl">Perl</h3>
<p>Perl v5.8.1</p>
<p><strong>IMPORTANT:</strong> This is the last major release to support
Perl 5.8.x! The next major release, Bugzilla 5.0, will require
Perl 5.10.1 as a minimum.</p>
[% INCLUDE db_req db='mysql' %]
[% INCLUDE db_req db='pg' dbd_new => 1 %]
[% INCLUDE db_req db='oracle' %]
[% INCLUDE db_req db='sqlite' %]
<h3 id="v44_req_modules">Required Perl Modules</h3>
[% INCLUDE req_table reqs = REQUIRED_MODULES
updated = ['TimeDate', 'DBI', 'Email-Send', 'List-MoreUtils'] %]
<h3 id="v44_req_optional_mod">Optional Perl Modules</h3>
<p>The following perl modules, if installed, enable various
features of Bugzilla:</p>
[% INCLUDE req_table reqs = OPTIONAL_MODULES
new = ['Net-SMTP-SSL', 'HTML-FormatText-WithLinks',
'File-MimeInfo', 'IO-stringy']
updated = ['TheSchwartz']
include_feature = 1 %]
<h3 id="v44_req_apache">Optional Apache Modules</h3>
<p>If you are using Apache as your webserver, Bugzilla can
take advantage of some Apache features if you have the below Apache
modules installed and enabled. Currently,
<a href="#v40_feat_js_css_update">certain Bugzilla features</a>
are enabled only if you have all of the following modules installed
and enabled:</p>
<ul>
<li>mod_headers</li>
<li>mod_expires</li>
<li>mod_env</li>
</ul>
<p>On most systems (but not on Windows), <kbd>checksetup.pl</kbd> is able to
tell whether or not you have these modules installed, and it will tell
you.</p>
<h2 id="v44_feat">New Features and Improvements</h2>
<ul>
<li><a href="#v44_feat_search">Allow Multiple Search Criteria to Match one Field</a></li>
<li><a href="#v44_feat_search_perf">Improved Performance for Searches</a></li>
<li><a href="#v44_feat_bug_tags">Overhaul of the Tagging System</a></li>
<li><a href="#v44_feat_mimetype_autodetect">Auto-Detection of the Attachment MIME Type</a></li>
<li><a href="#v44_feat_saved_reports">Saving Tabular and Graphical Reports</a></li>
<li><a href="#v44_feat_whining">Custom Columns in Whine Emails</a></li>
<li><a href="#v44_feat_webservices">Improved WebServices</a></li>
<li><a href="#v44_feat_apache_config">New Apache Configuration</a></li>
<li><a href="#v44_feat_other">Other Enhancements and Changes</a></li>
</ul>
<h3 id="v44_feat_search">Allow Multiple Search Criteria to Match one Field</h3>
<p>
In the "Advanced Search" page, it is now possible to build queries using
multiple custom search criteria against the same field. In Bugzilla
4.2 and older, queries of the form
<br><br>
<kbd>"Status changed to VERIFIED" AND "Status changed by foo@bar.com"</kbd>
<br><br>
were returning all [% terms.bugs %] which had their status changed to VERIFIED
by some user and which were edited by foo@bar.com once, but both actions could
be independent. In Bugzilla 4.4, you can now decide if both
criteria must match the exact same action or not, i.e. if you want
[%+ terms.bugs %] whose status has been set to VERIFIED by foo@bar.com himself.
In the same way, queries of the form
<br><br>
<kbd>"Flags changed to approval+" AND "Flags changed by foo@bar.com"</kbd>
<br><br>
can now return [% terms.bugs %] for which the approval flag has been set to
"+" by foo@bar.com himself. In previous versions, both actions were treated
independently and [% terms.bugs %] for which foo@bar.com set the approval flag
to "?" and which is then set to "+" by someone else were also returned.
</p>
<p>
This new feature gives you the ability to build more accurate queries and to
get more relevant results.
</p>
<h3 id="v44_feat_search_perf">Improved Performance for Searches</h3>
<p>
The search system got a performance boost which in some cases decreases the
time spent to run queries from several minutes to a few seconds only.
The more complex your queries are, the more visible the performance win
should be.
</p>
<h3 id="v44_feat_bug_tags">Overhaul of the Tagging System</h3>
<p>
The old tagging system which was in the footer of all pages had severe design
and usability limitations and has been replaced by a shiny new one which lets
you tag [% terms.bugs %] from the [% terms.bug %] report directly. Tags now
mostly work like keywords, but with two major differences. First of all, they
are personal, meaning that tags you set on [% terms.bugs %] are only visible
by you, and nobody else is notified nor can see which tags you set. This
behavior is the same as the old tagging system and so this feature didn't
change. The second major difference is that the list of available tags is
unlimited and is in no way hardcoded by administrators. You can type either
a new tag of your choice, or you can select one from an auto-generated list
of tags which you already used in other [% terms.bugs %]. Again, this feature
was already present in the old tagging system, but its usability has been
greatly improved. In particular, this means that tags are now displayed in
[%+ terms.bug %] reports directly, so that you immediately know which tags
you already set for that [% terms.bug %]. This feature is new in this release.
</p>
<p>
Another new feature is that your personal tags can now be listed in buglists.
They can also be used as search criteria in your queries. If you decide to
share a saved search which uses tags as criteria, this will work too! Note
that when you add a new tag, no saved search based on this tag is created
anymore, as you can easily create it yourself if you really need it.
</p>
<p>
The tags set with the old tagging system are automatically migrated to the
new system.
</p>
<h3 id="v44_feat_mimetype_autodetect">Auto-Detection of the Attachment MIME Type</h3>
<p>
When a user uploads a new attachment and lets the "Content Type" field set to
"auto-detect", Bugzilla now does its own MIME type detection
if the web browser tells them that the attachment is of type
"application/octet-stream", in an attempt to make a better guess than the web
browser. In all other cases, Bugzilla still trusts what the browser
tells them.
</p>
<p>
Check the <a href="#v44_req_optional_mod">list of optional Perl modules</a> to
know which modules to install in order to enable MIME type sniffing.
</p>
<h3 id="v44_feat_saved_reports">Saving Tabular and Graphical Reports</h3>
<p>
It is now possible to save tabular and graphical reports in the same way as
you save searches. Saved reports will appear in the footer of pages, below
saved searches.
</p>
<p>
Unlike saved searches, it is not yet possible to share saved reports with
other users.
</p>
<h3 id="v44_feat_whining">Custom Columns in Whine Emails</h3>
<p>
The list of columns to display in buglists contained in emails sent by the
whining system on a regular basis is no longer hardcoded. If the saved
search used for whining emails contains a list of columns, these columns are
used to be displayed in the emails. If no custom list is found, the default
column list is used instead.
</p>
<p>
This means that depending on the kind of email notifications you want, you
can fully customize data to return, on a per saved search basis!
</p>
<h3 id="v44_feat_webservices">Improved WebServices</h3>
<p>
This release got major improvements in its WebServices interface. Many new
methods have been implemented to let third-party applications interact with
Bugzilla even more closely. For instance, it is now possible to
know what parameters are set to using <kbd>B[%%]ugzilla.parameters</kbd>.
It is now also possible to update tags, products, groups or user accounts
using our API.
<p>
<p>
Several existing methods have also been improved to return data which
weren't available till now, such as [% terms.bug %] and attachment flags
using <kbd>B[%%]ug.get</kbd>, <kbd>B[%%]ug.attachments</kbd> or
<kbd>Product.get</kbd>. Users can also get their saved searches and reports
using <kbd>User.get</kbd>; and much more, see the
<a href="#v44_feat_webservices_details">detailed list</a> below.
</p>
<h3 id="v44_feat_apache_config">New Apache Configuration</h3>
<p>
For improved security, Bugzilla now prevents directory browsing
by default. If you run Bugzilla under Apache (as most people do),
you most likely require a <strong>new Apache configuration</strong> for this
version of Bugzilla. See the
<a href="#v44_upgrading">Notes On Upgrading From a Previous Version</a>
section for details.
</p>
<h3 id="v44_feat_other">Other Enhancements and Changes</h3>
<h4>Enhancements for Users</h4>
<ul>
<li><strong>[% terms.Bugs %]:</strong> It is now possible to add yourself to
the CC list when uploading an attachment and when editing an existing one.</li>
<li><strong>[% terms.Bugs %]:</strong> There is a new user preference to be
automatically added to the CC list of [% terms.bugs %] for which a flag
request is addressed to you (the flag has you as the requestee).</li>
<li><strong>[% terms.Bugs %]:</strong> Changes to the CC list no longer
causes midair collisions.</li>
<li><strong>[% terms.Bugs %]:</strong> There is now a <em>(take)</em> link
besides the QA Contact field to easily set yourself as QA contact.</li>
<li><strong>[% terms.Bugs %]:</strong> [% terms.Bugs %] are no longer
reassigned to the default assignee when moving the [% terms.bug %] into
another product or component if the current assignee is not the default
one. Same goes for the QA contact.</li>
<li><strong>[% terms.Bugs %]:</strong> When reporting a new [% terms.bug %],
flags which are not available for the selected component and those which
the reporter cannot edit are now hidden instead of being disabled. For
existing [% terms.bugs %], unset flags are also hidden by default. Clicking
the <em>(set flags)</em> or <em>(more flags)</em> link will make them
appear.</li>
<li><strong>[% terms.Bugs %]:</strong> When viewing [% terms.abug %], the list
of duplicated [% terms.bugs %] is now listed near the top of the page.</li>
<li><strong>[% terms.Bugs %]:</strong> Private comments now always remain
visible to their author. Previously, the author of a comment couldn't see
it anymore if the comment was marked private and the author isn't in the
insider group.</li>
<li><strong>[% terms.Bugs %]:</strong> The See Also field now supports URLs
pointing to GitHub by default. If the new MoreBugUrl extension included in
this release is enabled, then you can also add URLs pointing to:
b[%%]ugs.php.net, RT, appspot.com (Rietveld), Review Board, and
getsatisfaction.com.</li>
<li><strong>Searches:</strong> The alias of [% terms.bugs %] you cannot see
are no longer resolved to their [% terms.bug %] ID, meaning that it is no
longer possible to connect an alias with its ID unless you can see the
[%+ terms.bug %].</li>
<li><strong>Searches:</strong> Custom multi-select fields are now available
in the "Search By Change History" section of the query page.</li>
<li><strong>Searches:</strong> The <em>changed by</em> operator in boolean
charts now accepts pronouns.</li>
<li><strong>Searches:</strong> The requester and requestee fields in boolean
charts now accept pronouns.</li>
<li><strong>Searches:</strong> It is now possible to hide the description of
queries appearing at the top of buglists.</li>
<li><strong>Requests:</strong> The "My Requests" page now displays an AND/OR
radio button to define the interaction between the requester and requestee
fields.</li>
<li><strong>Email Notifications:</strong> There is a new user preference to
not prepend "New:" to the subject of [% terms.bug %]mails when reporting
a new [% terms.bug %]. Some email clients couldn't thread emails correctly
due to this.</li>
<li><strong>Email Notifications:</strong> There is a new email event to get
notifications when the product or component of [% terms.abug %] changes.</li>
<li><strong>Email Notifications:</strong> All [% terms.bug %]mails now have
a <em>X-Bugzilla-Flags</em> email header, listing currently set flags.</li>
<li><strong>Email Notifications:</strong> All [% terms.bug %]mails now have
a <em>X-Bugzilla-Version</em> email header with the current product
version.</li>
<li><strong>Whining:</strong> The sort order of the saved search is used to
sort [% terms.bugs %] in the emails.</li>
<li><strong>User Accounts:</strong> To confirm an email address change, the
password is now requested instead of the old email address.</li>
<li><strong>Graphical Reports:</strong> The size of graphical reports is now
set dynamically to fit within the window of the web browser.
The Taller/Thinner/Fatter/Shorter links are now gone.</li>
<li><strong>Incoming Emails:</strong> <kbd>email_in.pl</kbd> now accepts
HTML-only emails to create and edit [% terms.bugs %] by email.</li>
<li><strong>Incoming Emails:</strong> When creating a new [% terms.bug %],
<kbd>email_in.pl</kbd> will look at the <em>Importance</em> and
<em>X-Priority</em> email headers to increase or decrease the initial
priority of the [% terms.bug %], unless the priority is already explicitly
set in the email itself.</li>
<li><strong>Skins:</strong> Bugzilla no longer fetches all skins
available when viewing a page. It only loads the skin selected by the user
in their preferences, which results in less requests to the server.</li>
</ul>
<h4>Enhancements for Administrators and Developers</h4>
<ul>
<li><strong>License:</strong> The Bugzilla code is now released
under the MPL 2.0 license (previously was MPL 1.1).</li>
<li><strong>Installation:</strong> On mod_perl, templates now remain in
memory for one hour, which can cause an increase in memory requirements.
This also means that it can take up to one hour before changes in templates
become active (unless you restart Apache).</li>
<li><strong>Installation:</strong> Running
<kbd>checksetup.pl --make-admin=foo@bar.com</kbd> now automatically
re-enables the user account if it was disabled.</li>
<li><strong>Configuration:</strong> A new parameter <em>smtp_ssl</em> can be
turned on to enable SSL connections to the SMTP server to send email
notifications.</li>
<li><strong>Administration:</strong> Custom fields now have a new <em>Long
description</em> attribute to better describe what the custom field is
about. This description then appears as a tooltip when hovering the custom
field in [% terms.bug %] reports.</li>
<li><strong>Administration:</strong> When creating a new product, the form
lets you add a component at the same time.</li>
<li><strong>Administration:</strong> When viewing a user account in
<kbd>editusers.cgi</kbd>, the date of the last login is displayed. Users
who did not log in since you upgraded to 4.4 will have this field empty.</li>
<li><strong>Administration:</strong> It is now possible to exclude disabled
user accounts when running a query in <kbd>editusers.cgi</kbd>.</li>
<li><strong>Administration:</strong> The default CC list is now also displayed
when listing components in <kbd>editcomponents.cgi</kbd>.</li>
<li><strong>Administration:</strong> Target milestones can now be 64 characters
long, for consistency with versions (previously was limited to 20 characters
only).</li>
<li><strong>Administration:</strong> The result code returned by
<kbd>contrib/bugzilla-queue.rhel</kbd> when it's not running is now 2
instead of 0.</li>
<li><strong>Database:</strong> Support for MySQL 5.6 has been added.</li>
<li><strong>Database:</strong> Support for Oracle has been greatly improved.</li>
<li><strong>Security:</strong> For improved security, the
"X-Content-Type-Options: nosniff" and "X-XSS-Protection: block"
headers are now sent with every response.</li>
<li><strong>Security:</strong> Tokens are now generated using HMAC SHA-256
instead of MD5.</li>
<li><strong>Documentation:</strong> The documentation is now generated with
<kbd>xmlto</kbd> and <kbd>dblatex</kbd> instead of <kbd>jade</kbd>.</li>
</ul>
<h4 id="v44_feat_webservices_details">WebService Changes</h4>
<ul>
<li>Several new methods have been added: <kbd>B[%%]ug.update_tags</kbd>,
<kbd>B[%%]ugzilla.parameters</kbd>, <kbd>B[%%]ugzilla.last_audit_time</kbd>,
<kbd>Classification.get</kbd>, <kbd>Group.update</kbd>,
<kbd>Product.update</kbd>, <kbd>User.update</kbd>.</li>
<li><kbd>B[%%]ug.add_attachment</kbd> now only returns the ID of the newly
created attachments instead of all the attachment data.</li>
<li><kbd>B[%%]ug.attachments</kbd> now also returns the <kbd>size</kbd> field
containing the size of the attachment.</li>
<li><kbd>B[%%]ug.attachments</kbd> and <kbd>B[%%]ug.get</kbd> now return
data about flags.</li>
<li><kbd>B[%%]ug.comments</kbd> now also returns <kbd>creation_time</kbd>
which is exactly the same as <kbd>time</kbd>, but is provided for
consistency with <kbd>B[%%]ug.get</kbd> and <kbd>B[%%]ug.attachments</kbd>.
The <kbd>time</kbd> field may be deprecated and removed in a future release,
so you should use <kbd>creation_time</kbd> instead.</li>
<li><kbd>B[%%]ug.comments</kbd> now also returns the <kbd>count</kbd> field
containing the comment ID relative to the [% terms.bug %] it belongs to.
This is the same comment ID as the one you can see in [% terms.bug %]
reports.</li>
<li>It is now possible to create new [% terms.bugs %] with a closed status with
<kbd>B[%%]ug.create</kbd>.</li>
<li>The <kbd>bug_status</kbd> field returned by <kbd>B[%%]ug.fields</kbd> now
also includes [% terms.bug %] statuses available on [% terms.bug %] creation.</li>
<li><kbd>B[%%]ug.fields</kbd> now also returns keyword descriptions, not only
their names.</li>
<li><kbd>B[%%]ug.fields</kbd> now also returns the <kbd>is_active</kbd> field
for product-specific fields.</li>
<li>For users in the timetracking group, <kbd>B[%%]ug.get</kbd> now also
returns the <kbd>actual_time</kbd> field with the total number of hours
spent in the [% terms.bug %].</li>
<li>Field names returned in the <kbd>field_name</kbd> field of the
<kbd>B[%%]ug.history</kbd> method have changed to be consistent with other
methods.</li>
<li>The <kbd>B[%%]ug.search</kbd> method was returning all visible [% terms.bugs %]
when called with no arguments, ignoring the <kbd>max_search_results</kbd>
and <kbd>search_allow_no_criteria</kbd> parameters. This has been fixed.</li>
<li><kbd>Product.get</kbd> now also returns the <kbd>flag_types</kbd> field
containing all the relevant data for attachment and [% terms.bug %] flag types.</li>
<li><kbd>Product.get</kbd> now throws an error if neither <kbd>ids</kbd> nor
<kbd>names</kbd> is passed to the method.</li>
<li>When requesting data for your own account using <kbd>User.get</kbd>,
this method now returns two additional fields: <kbd>saved_searches</kbd>
and <kbd>saved_reports</kbd> containing all your saved searches and
graphical and tabular reports.</li>
<li><kbd>User.get</kbd> now also returns the <kbd>groups</kbd> field
containing the list of groups the user belongs to. The list is filtered
based on your privileges.</li>
</ul>
<h2 id="v44_issues">Outstanding Issues</h2>
<ul>
<li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=89822">
[%- terms.Bug %] 89822</a>: When changing multiple [% terms.bugs %] at
the same time, there is no "mid-air collision" protection.</li>
<li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=276230">
[%- terms.Bug %] 276230</a>: The support for restricting access to
particular Categories of New Charts is not complete. You should treat the
<em>chartgroup</em> parameter as the only access mechanism available.</li>
<li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=584742">
[%- terms.Bug %] 584742</a>: When viewing [% terms.abug %], WebKit-based
browsers can automatically reset a field's selected value when the field
has disabled values.</li>
</ul>
<h2 id="v44_upgrading">Notes On Upgrading From a Previous Version</h2>
<h3>IMPORTANT: Apache Configuration Change</h3>
<p>
For improved security, Bugzilla now prevents directory browsing
by default. In order to do that, the root <kbd>bugzilla/.htaccess</kbd> file
now contains the <kbd>Options -Indexes</kbd> directive. By default, this
directive is not allowed in <kbd>.htaccess</kbd> and so you must configure
Apache to allow it. To do that, add <kbd>Options</kbd> to the
<kbd>AllowOverride</kbd> directive in <kbd>httpd.conf</kbd>. This means you
should now have something like this:
<p>
<kbd>AllowOverride Limit FileInfo Indexes Options</kbd>
</p>
Check the
<a href="http://www.bugzilla.org/docs/4.4/en/html/configuration.html#http-apache">documentation</a>
for more information about how to configure Apache.
</p>
<h2 id="v44_code_changes">Code Changes Which May Affect Customizations and Extensions</h2>
<ul>
<li>The <em>usebugaliases</em> parameter has been removed. Aliases are now
always available.</li>
<li>There is a new code hook <kbd>admin_editusers_action</kbd> to alter the
way <kbd>editusers.cgi</kbd> works.</li>
<li>There is a new code hook <kbd>buglist_column_joins</kbd> to alter the way
tables and columns are joined in queries. In combination with the
<kbd>buglist_columns</kbd> hook, this permits to customize the list of
columns to display in buglists.</li>
<li>There is a new code hook <kbd>bug_start_of_update</kbd> which is called
after <kbd>object_end_of_update</kbd> but before <kbd>bug_end_of_update</kbd>
for a better control on how to update [% terms.bugs %].</li>
<li>There is a new code hook <kbd>bug_url_sub_classes</kbd> to support
additional URLs in the See Also field.</li>
<li>There is a new code hook <kbd>error_catch</kbd> to catch errors thrown
by Bugzilla and to take the appropriate actions.</li>
<li>There is a new code hook <kbd>path_info_whitelist</kbd> to whitelist
scripts which should still get the Path-Info information from URLs. By
default, Path-Info is now removed before being passed to CGI scripts.</li>
<li>It is now illegal to have a product with no components and no versions.
Trying to delete the last component or version of a product is now
rejected.</li>
<li>Trying to set the component, target milestone or version of [% terms.abug %]
to a disabled value is no longer accepted. The change will be rejected.</li>
<li>The comment box now checks the returned value of check_can_change_field()
to determine if it should be displayed or not. This means its visibility
can now be controlled by the <kbd>bug_check_can_change_field</kbd> hook.</li>
<li>Flags now checks the returned value of check_can_change_field() to
determine if they should appear as editable or not. This means their
visibility can now be controlled by the <kbd>bug_check_can_change_field</kbd>
hook.</li>
<li>Quips can no longer exceed 512 characters. Existing quips longer than
that are automatically truncated when upgrading.</li>
<li>The static <kbd>bugzilla.dtd</kbd> file has been replaced by a dynamic
one to take custom fields into account. The old
<em><urlbase>/bugzilla.dtd</em> URL is now
<em><urlbase>/page.cgi?id=bugzilla.dtd</em>.</li>
<li>There is a new extension located at <kbd>extensions/MoreBugUrl/</kbd>
which permits to add new classes of URLs in the See Also field. It uses
the <kbd>bug_url_sub_classes</kbd> hook mentioned above.</li>
<li>There is a new <kbd>B[%%]ugzilla->process_cache</kbd> method to store
data which should remain available for the lifetime of the worker process,
on mod_perl. On mod_cgi, it behaves the same way as
<kbd>B[%%]ugzilla->request_cache</kbd>.</li>
<li>In the RDF output of <kbd>config.cgi</kbd>, URIs used to identify
versions and target milestones have been changed to be unique across
products.</li>
<li>The RDF output of <kbd>config.cgi</kbd> now also returns data about
classifications.</li>
<li>It is now legal to call <kbd>B[%%]ugzilla::Version->check({ id => $id })</kbd>
and <kbd>B[%%]ugzilla::Milestone->check({ id => $id })</kbd> to validate
and get an object using its ID.</li>
<li>Rows in the <kbd>dependencies</kbd>, <kbd>flaginclusions</kbd> and
<kbd>flagexclusions</kbd> DB tables are now enforced to be unique.</li>
<li>The <kbd>b[%%]ugs_activity</kbd> and <kbd>profiles_activity</kbd> DB
tables now have an auto-incremented primary key named <kbd>id</kbd>.</li>
<li>A custom <kbd>B[%%]ugzilla.pm</kbd> module has been added into
<kbd>contrib/</kbd> to help packagers to package B[%%]ugzilla in their
Linux distros.</li>
</ul>
<h1 id="v44_previous">Bugzilla 4.2 Release Notes</h1>
<ul class="bz_toc">
<li><a href="#v42_introduction">Introduction</a></li>
<li><a href="#v42_point">Updates in this 4.2.x Release</a></li>
<li><a href="#v42_req">Minimum Requirements</a></li>
<li><a href="#v42_feat">New Features and Improvements</a></li>
<li><a href="#v42_issues">Outstanding Issues</a></li>
<li><a href="#v42_code_changes">Code Changes Which May Affect
Customizations and Extensions</a></li>
<li><a href="#v42_previous">Release Notes for Previous Versions</a></li>
</ul>
<h2 id="v42_introduction">Introduction</h2>
<p>Welcome to Bugzilla 4.2! It has been almost a year since we
released Bugzilla 4.0 on February 2011, and this new major
release comes with several new features and improvements. This release
contains major improvements to search, support for SQLite, improved
WebServices, and lots of other enhancements.</p>
<p>If you are upgrading from a release before 4.0, make sure to read the
release notes for all the <a href="#v42_previous">previous versions</a>
in between your version and this one, <strong>particularly the Upgrading
section of each version's release notes</strong>.</p>
<h2 id="v42_point">Updates in this 4.2.x Release</h2>
<h3>4.2.3</h3>
<p>This release fixes two security issues. See the
<a href="http://www.bugzilla.org/security/3.6.10/">Security Advisory</a>
for details.</p>
<p>In addition, the following important fixes/changes have been made in this
release:</p>
<ul>
<li>Attaching a file to [% terms.abug %] was broken due to a change in
Perl 5.16.
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=771100">[% terms.Bug %] 771100</a>)</li>
<li>A regression in Bugzilla 4.2.2 made Oracle crash when
displaying a buglist.
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=780028">[% terms.Bug %] 780028</a>)</li>
<li>It was possible to search on history for comments and attachments you
cannot see (though these private comments and attachments are never disclosed).
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=779709">[% terms.Bug %] 779709</a>)</li>
<li>PostgreSQL databases could be created with the wrong encoding despite
the utf8 parameter being enabled.
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=783786">[% terms.Bug %] 783786</a>)</li>
<li>Scheduled whines could be sent at the wrong time on Oracle.
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=559539">[% terms.Bug %] 559539</a>)</li>
<li>Tokens are no longer included in saved queries.
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=772953">[% terms.Bug %] 772953</a>)</li>
<li>An admin could unintentionally break the display of buglists if a custom
field description contains a < or > character, because these characters
were not filtered.
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=785917">[% terms.Bug %] 785917</a>)</li>
<li>Adding or removing a DB column in Oracle didn't handle SERIAL columns
correctly.
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=731156">[% terms.Bug %] 731156</a>)</li>
<li>A minor CSRF vulnerability in token.cgi allowed possible unauthorized
password reset e-mail requests.
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=706271">[% terms.Bug %] 706271</a>)</li>
</ul>
<h3>4.2.2</h3>
<p>This release fixes two security issues. See the
<a href="http://www.bugzilla.org/security/3.6.9/">Security Advisory</a>
for details.</p>
<p>In addition, the following important fixes/changes have been made in this
release:</p>
<ul>
<li>A regression introduced in Bugzilla 4.0 caused some login
names to be ignored when entered in the CC list of [% terms.bugs %].
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=756314">[% terms.Bug %] 756314</a>)</li>
<li>Some queries could trigger an invalid SQL query if strings entered by
the user contained leading or trailing whitespaces.
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=760075">[% terms.Bug %] 760075</a>)</li>
<li>The auto-completion form for keywords no longer automatically selects
the first keyword in the list when the field is empty.
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=764517">[% terms.Bug %] 764517</a>)</li>
<li>A regression in Bugzilla 4.2 prevented classifications
from being used in graphical and tabular reports in the "Multiple Tables"
field.
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=753688">[% terms.Bug %] 753688</a>)</li>
<li>Attachments created by the <kbd>email_in.pl</kbd> script were associated
to the wrong comment.
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=762785">[% terms.Bug %] 762785</a>)</li>
<li>Very long dependency lists can now be viewed correctly.
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=762783">[% terms.Bug %] 762783</a>)</li>
<li>Keywords are now correctly escaped in the auto-completion form to prevent
any XSS abuse.
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=754561">[% terms.Bug %] 754561</a>)</li>
<li>A regression introduced in Bugzilla 4.0rc2 when fixing
CVE-2011-0046 caused the "Un-forget the search" link to not work correctly
anymore when restoring a deleted saved search, because this link was
lacking a valid token.
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=768870">[% terms.Bug %] 768870</a>)</li>
<li>Two minor CSRF vulnerabilities have been fixed which could let an attacker
alter your default search criteria in the Advanced Search page.
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=754672">[% terms.Bugs %] 754672</a>
and <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=754673">754673</a>)</li>
</ul>
<h3>4.2.1</h3>
<p>This release fixes one security issue. See the
<a href="http://www.bugzilla.org/security/3.6.8/">Security Advisory</a>
for details.</p>
<p>In addition, the following important fixes/changes have been made in this
release:</p>
<ul>
<li>Due to a regression introduced when fixing CVE-2012-0453, if an XML-RPC
client sets the charset as part of its Content-Type header, we were
incorrectly rejecting the request. The header is now correctly parsed.
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=731219">[% terms.Bug %] 731219</a>)</li>
<li>Email notifications about status changes in blockers were incorrectly
formatted. Several pieces of text were missing in the emails.
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=731586">[% terms.Bug %] 731586</a>)</li>
<li>Many [% terms.bugs %] related to the searching system have been fixed.
(<a href="https://bugzilla.mozilla.org/buglist.cgi?bug_id=58179,715270,730984,731163,737436">
[% terms.Bugs %] 58179, 715270, 730984, 731163 and 737436</a>)</li>
<li>When using the QuickSearch box, complex queries are now parsed correctly.
It also behaves correctly with non-ASCII characters (such as é, ä, ü, etc.).
(<a href="https://bugzilla.mozilla.org/buglist.cgi?bug_id=554819,663377,730207">
[% terms.Bugs %] 554819, 663377 and 730207</a>)</li>
<li>The 'take' link besides the assignee field now works correctly when
the <kbd>usemenuforusers</kbd> parameter is turned on.
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=734997">[% terms.Bug %] 734997</a>)</li>
<li>URLs in the 'Total' row at the bottom of tabular reports were broken
when JavaScript was enabled and a user field was used for the vertical
axis.
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=731323">[% terms.Bug %] 731323</a>)</li>
<li>Some performance problems have been fixed for installations with many
products, components or versions.
(<a href="https://bugzilla.mozilla.org/buglist.cgi?bug_id=695514,731055">
[% terms.Bugs %] 695514 and 731055</a>)</li>
<li>A new hook named <kbd>buglist_column_joins</kbd> has been added to let
extensions alter the <kbd>Bugzilla::Search::COLUMN_JOINS</kbd> hash.
Now more fields can be displayed as columns in buglists, in combination
with the already existing <kbd>buglist_columns</kbd> hook.
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=743991">[% terms.Bug %] 743991</a>)</li>
<li>A new hook named <kbd>admin_editusers_action</kbd> has been added to let
extensions alter the behavior of <kbd>editusers.cgi</kbd>. This lets you add
new features to this script very easily.
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=730794">[% terms.Bug %] 730794</a>)</li>
</ul>
<h2 id="v42_req">Minimum Requirements</h2>
<p>Any requirements that are new since 4.0.2 will look like
<span class="req_new">this</span>.</p>
<ul>
<li><a href="#v42_req_perl">Perl</a></li>
<li><a href="#v42_req_mysql">For MySQL Users</a></li>
<li><a href="#v42_req_pg">For PostgreSQL Users</a></li>
<li><a href="#v42_req_oracle">For Oracle Users</a></li>
<li><a href="#v42_req_sqlite">For SQLite Users</a></li>
<li><a href="#v42_req_modules">Required Perl Modules</a></li>
<li><a href="#v42_req_optional_mod">Optional Perl Modules</a></li>
<li><a href="#v42_req_apache">Optional Apache Modules</a></li>
</ul>
<h3 id="v42_req_perl">Perl</h3>
<p>Perl v5.8.1</p>
<h3 id="v42_req_mysql">For MySQL Users</h3>
<ul>
<li>MySQL <span class="req_new">v5.0.15</span></li>
<li><strong>perl module:</strong> DBD::mysql <span class="req_new">v4.001</span></li>
</ul>
<h3 id="v42_req_pg">For PostgreSQL Users</h3>
<ul>
<li>PostgreSQL <span class="req_new">v8.03.0000</span></li>
<li><strong>perl module:</strong> DBD::Pg v1.45</li>
</ul>
<h3 id="v42_req_oracle">For Oracle Users</h3>
<ul>
<li>Oracle v10.02.0</li>
<li><strong>perl module:</strong> DBD::Oracle v1.19</li>
</ul>
<h3 id="v42_req_sqlite">For SQLite Users</h3>
<ul>
<li>SQLite v3.6.22</li>
<li><strong>perl module:</strong> DBD::SQLite v1.29</li>
</ul>
<h3 id="v42_req_modules">Required Perl Modules</h3>
<table class="req_table">
<tbody>
<tr>
<th>Module</th>
<th>Version</th>
</tr>
<tr>
<td>CGI</td>
<td>3.51</td>
</tr>
<tr>
<td>Digest::SHA</td>
<td>(Any)</td>
</tr>
<tr>
<td>Date::Format</td>
<td>2.21</td>
</tr>
<tr>
<td>DateTime</td>
<td>0.28</td>
</tr>
<tr>
<td>DateTime::TimeZone</td>
<td>0.71</td>
</tr>
<tr>
<td>DBI</td>
<td>1.614</td>
</tr>
<tr>
<td>Template</td>
<td>2.22</td>
</tr>
<tr>
<td>Email::Send</td>
<td>2.00</td>
</tr>
<tr>
<td>Email::MIME</td>
<td>1.904</td>
</tr>
<tr>
<td>URI</td>
<td class="req_new">1.37</td>
</tr>
<tr>
<td>List::MoreUtils</td>
<td>0.22</td>
</tr>
<tr>
<td class="req_new">Math::Random::ISAAC</td>
<td class="req_new">1.0.1</td>
</tr>
</tbody>
</table>
<h3 id="v42_req_optional_mod">Optional Perl Modules</h3>
<p>The following perl modules, if installed, enable various
features of Bugzilla:</p>
<table class="req_table">
<tbody>
<tr>
<th>Module</th>
<th>Version</th>
<th>Enables Feature</th>
</tr>
<tr>
<td>GD</td>
<td>1.20</td>
<td>Graphical Reports, New Charts, Old Charts</td>
</tr>
<tr>
<td>Chart::Lines</td>
<td>2.1</td>
<td>New Charts, Old Charts</td>
</tr>
<tr>
<td>Template::Plugin::GD::Image</td>
<td>(Any)</td>
<td>Graphical Reports</td>
</tr>
<tr>
<td>GD::Text</td>
<td>(Any)</td>
<td>Graphical Reports</td>
</tr>
<tr>
<td>GD::Graph</td>
<td>(Any)</td>
<td>Graphical Reports</td>
</tr>
<tr>
<td>MIME::Parser</td>
<td>5.406</td>
<td>Move [% terms.Bugs %] Between Installations</td>
</tr>
<tr>
<td>LWP::UserAgent</td>
<td>(Any)</td>
<td>Automatic Update Notifications</td>
</tr>
<tr>
<td>XML::Twig</td>
<td>(Any)</td>
<td>Move [% terms.Bugs %] Between Installations, Automatic Update Notifications</td>
</tr>
<tr>
<td>PatchReader</td>
<td class="req_new">0.9.6</td>
<td>Patch Viewer</td>
</tr>
<tr>
<td>Net::LDAP</td>
<td>(Any)</td>
<td>LDAP Authentication</td>
</tr>
<tr>
<td>Authen::SASL</td>
<td>(Any)</td>
<td>SMTP Authentication</td>
</tr>
<tr>
<td>Authen::Radius</td>
<td>(Any)</td>
<td>RADIUS Authentication</td>
</tr>
<tr>
<td>SOAP::Lite</td>
<td>0.712</td>
<td>XML-RPC Interface</td>
</tr>
<tr>
<td>JSON::RPC</td>
<td>(Any)</td>
<td>JSON-RPC Interface</td>
</tr>
<tr>
<td>JSON::XS</td>
<td>2.0</td>
<td>Make JSON-RPC Faster</td>
</tr>
<tr>
<td>Test::Taint</td>
<td>(Any)</td>
<td>JSON-RPC Interface, XML-RPC Interface</td>
</tr>
<tr>
<td>HTML::Parser</td>
<td>3.67</td>
<td>More HTML in Product/Group Descriptions</td>
</tr>
<tr>
<td>HTML::Scrubber</td>
<td>(Any)</td>
<td>More HTML in Product/Group Descriptions</td>
</tr>
<tr>
<td class="req_new">Encode</td>
<td class="req_new">2.21</td>
<td>Automatic charset detection for text attachments</td>
</tr>
<tr>
<td class="req_new">Encode::Detect</td>
<td class="req_new">(Any)</td>
<td>Automatic charset detection for text attachments</td>
</tr>
<tr>
<td>Email::MIME::Attachment::Stripper</td>
<td>(Any)</td>
<td>Inbound Email</td>
</tr>
<tr>
<td>Email::Reply</td>
<td>(Any)</td>
<td>Inbound Email</td>
</tr>
<tr>
<td>TheSchwartz</td>
<td>(Any)</td>
<td>Mail Queueing</td>
</tr>
<tr>
<td>Daemon::Generic</td>
<td>(Any)</td>
<td>Mail Queueing</td>
</tr>
<tr>
<td>mod_perl2</td>
<td>1.999022</td>
<td>mod_perl</td>
</tr>
<tr>
<td>Apache2::SizeLimit</td>
<td class="req_new">0.96</td>
<td>mod_perl</td>
</tr>
</tbody>
</table>
<h3 id="v42_req_apache">Optional Apache Modules</h3>
<p>If you are using Apache as your webserver, Bugzilla can
take advantage of some Apache features if you have the below Apache
modules installed and enabled. Currently,
<a href="#v40_feat_js_css_update">certain Bugzilla features</a>
are enabled only if you have all of the following modules installed
and enabled:</p>
<ul>
<li>mod_headers</li>
<li>mod_expires</li>
<li>mod_env</li>
</ul>
<p>On most systems (but not on Windows), <kbd>checksetup.pl</kbd> is able to
tell whether or not you have these modules installed, and it will tell
you.</p>
<h2 id="v42_feat">New Features and Improvements</h2>
<ul>
<li><a href="#v42_feat_sqlite">Experimental SQLite Support</a></li>
<li><a href="#v42_feat_attach">Creating an Attachment by Pasting Text Into
a Text Field</a></li>
<li><a href="#v42_feat_email">HTML [% terms.Bug %]mail</a></li>
<li><a href="#v42_feat_search">Improved Searching System</a></li>
<li><a href="#v42_feat_product">Disabling Old Components, Versions and Milestones</a></li>
<li><a href="#v42_feat_custom">Displaying a Custom Field Value Based on Multiple
Values of Another Field</a></li>
<li><a href="#v42_feat_audit">Auditing of All Changes Within Bugzilla</a></li>
<li><a href="#v42_feat_wai">Accessibility Improvements</a></li>
<li><a href="#v42_feat_other">Other Enhancements and Changes</a></li>
</ul>
<h3 id="v42_feat_sqlite">Experimental SQLite Support</h3>
<p>SQLite is now supported by Bugzilla and becomes the 4th supported
database besides MySQL, PostgreSQL and Oracle. SQLite support must be considered
as experimental, at least till the next major release.</p>
<p>Note that use of SQLite is only recommended for small installations. Larger
installations should use MySQL, PostgreSQL, or Oracle.</p>
<h3 id="v42_feat_attach">Creating an Attachment by Pasting Text Into a Text Field</h3>
<p>You can now create a new attachment simply by pasting some text into a text
field, in addition to the normal upload process for attachments.</p>
<h3 id="v42_feat_email">HTML [% terms.Bug %]mail</h3>
<p>By default, [% terms.bug %]mails (email notifications about changes to
[%+ terms.bugs %]) are now sent in an HTML format that is more readable than
the old text format. Those who prefer the old text format can still choose it
in their Preferences, however.</p>
<h3 id="v42_feat_search">Improved Searching System</h3>
<p>The Custom Search section in the Advanced Search page has been redesigned
to work in a more sensible way. Complex queries are easier to build and have
more sensible results, as they are built using a more intuitive logic.
Some very complicated queries are still impossible to generate, though.
Things should improve in future releases.</p>
<h3 id="v42_feat_product">Disabling Old Components, Versions and Milestones</h3>
<p>Older components, versions and milestones can now be disabled. [% terms.Bugs %]
already using them are not affected, but these values will no longer be
available for new [% terms.bugs %].</p>
<h3 id="v42_feat_custom">Displaying a Custom Field Value Based on Multiple Values
of Another Field</h3>
<p>A custom field can now be displayed based on multiple values of another field.
(For example, one custom field could now appear in multiple products.)
Previously, you could only display a custom field based on a single value of
another field.</p>
<h3 id="v42_feat_audit">Auditing of All Changes Within Bugzilla</h3>
<p>Most changes made through the admin interface are now logged to the database,
in the <kbd>audit_log</kbd> table. There is no UI to access this table yet,
but developers are free to create their own tools to track changes made into
their installation. This is only a first step, and improvements are expected
in future releases.</p>
<h3 id="v42_feat_wai">Accessibility Improvements</h3>
<p>A project has started thanks to Francisco Donalisio from IBM to make
Bugzilla compliant with the W3C Web Accessibility Initiative
standards. A lot more work still needs to be done, but we expect a much
better compatibility for the next major release.</p>
<h3 id="v42_feat_other">Other Enhancements and Changes</h3>
<h4>Enhancements for Users</h4>
<ul>
<li><strong>[% terms.Bugs %]:</strong> Users without editbugs privileges can
no longer remove other users from the CC list of [% terms.bugs %].</li>
<li><strong>[% terms.Bugs %]:</strong> Local [% terms.bug %] IDs are now valid
in the See Also field. Adding such an ID will also add a reciprocal link in
the other [% terms.bug %].</li>
<li><strong>[% terms.Bugs %]:</strong> After editing [% terms.abug %] or an
attachment, the URL is automatically changed to <kbd>show_bug.cgi</kbd>
instead of <kbd>post_bug.cgi</kbd>, <kbd>process_bug.cgi</kbd> or
<kbd>attachment.cgi</kbd> so that reloading the page (for instance when
restarting the web browser) displays the right page. This feature is supported
by Firefox, Chrome and Safari, but not by Internet Explorer 9.</li>
<li><strong>[% terms.Bugs %]:</strong> Inactive accounts are no longer
displayed in user fields when user-autocompletion is enabled.</li>
<li><strong>[% terms.Bugs %]:</strong> User-autocompletion is now much faster
on installations with many user accounts.</li>
<li><strong>[% terms.Bugs %]:</strong> The See Also field now accepts URLs
pointing to MantisBT, Trac, JIRA and the sourceforge.net b[%%]ug trackers.</li>
<li><strong>[% terms.Bugs %]:</strong> Displaying [% terms.abug %] with many
dependencies is now much faster.</li>
<li><strong>Attachments:</strong> The encoding of text files can be automatically
detected when uploading them as attachments.</li>
<li><strong>Attachments:</strong> Clickjacking could possibly occur in an attachment
Details page if a user attached a specially formatted HTML file. To fix this
potential problem, the Details page always displays the HTML source instead and
users can see rendered page by clicking on View.</li>
<li><strong>Flags:</strong> Changing the requestee of a flag no longer changes
the requester.</li>
<li><strong>Reports:</strong> If JavaScript is enabled in your web browser,
tabular reports are now sortable based on any displayed column.</li>
<li><strong>Dependency graphs:</strong> The <em>Show every [% terms.bug %] in
the system with dependencies</em> option has been removed.</li>
<li><strong>Searches:</strong> The columns displayed by default in
[%+ terms.bug %]lists have changed. These columns are now displayed by default
unless otherwise specified:<br>
<kbd>product | component | assignee | [% terms.bug %] status | resolution |
[%+ terms.bug %] summary | last change date</kbd><br>
This means that the priority, severity and operating system columns are no
longer displayed by default.</li>
<li><strong>Searches:</strong> [% terms.Bug %]lists will now only display the
first 500 [% terms.bugs %] by default. It is still possible to display the
whole list, though.</li>
<li><strong>Searches:</strong> When using relative dates and times, <kbd>-1w</kbd>
is now a synonym for <kbd>-7d</kbd> and means exactly 7 days. Previously,
<kbd>-1w</kbd> meant the beginning of the week, which was confusing some users.
The same confusion existed for <kbd>-1d</kbd> which was different from
<kbd>-24h</kbd>, and for <kbd>-1m</kbd> which was different from <kbd>-30d</kbd>.
Now if you really want the beginning of the day, week or month, you must use
<kbd>-1ds</kbd>, <kbd>-1ws</kbd>, and <kbd>-1ms</kbd> respectively, where
"s" means "start of". This change will affect existing saved searches using
relative dates.</li>
<li><strong>Searches:</strong> A new <em>Include fulltext when performing quick
searches</em> user preference has been added which permits users to include
or exclude comments when using quicksearches.</li>
<li><strong>Searches:</strong> It is now possible to query for [% terms.bugs %]
based on personal tags in the Custom Search section in the Advanced Search
page.</li>
<li><strong>Email notifications: </strong> The date and time of comments are no
longer displayed in the comment header in [% terms.bug%]mails. This information
is already available in the email header itself.</li>
</ul>
<h4>Enhancements for Administrators and Developers</h4>
<ul>
<li><strong>Installation:</strong> <kbd>checksetup.pl</kbd> is now much quieter
when creating a new database.</li>
<li><strong>Security:</strong> Bugzilla 4.0 is using
<kbd>Math::Random::Secure</kbd> to generate cryptographically secure
pseudorandom numbers, but it appeared that installing this Perl module from
CPAN caused a lot of trouble for some people due to its numerous dependencies.
So the RNG code has been rewritten to only depend on <kbd>Math::Random::ISAAC</kbd>,
which was already in use in previous versions of Bugzilla.</li>
<li><strong>Security:</strong> <kbd>X-Frame-Options = SAMEORIGIN</kbd> is now
passed to all page headers (except when viewing attachments, as they can be
on a different host) to protect users from framing and subsequent possible
clickjacking problems.</li>
<li><strong>Configuration:</strong> A new parameter <em>password_complexity</em>
has been added (default: no_constraints) which allows admins to force users
to use passwords with a higher complexity, such as a combination of uppercase
and lowercase letters, numbers and special characters, or a subset of them.</li>
<li><strong>Configuration:</strong> A new parameter <em>search_allow_no_criteria</em>
has been added (default: on) which allows admins to forbid queries with no
criteria. This is particularly useful for large installations with several
tens of thousands [% terms.bugs %] where returning all [% terms.bugs %]
doesn't make sense and would have a performance impact on the database.</li>
<li><strong>Configuration:</strong> A new parameter <em>default_search_limit</em>
has been added (default: 500) which limits the number of [% terms.bugs %]
displayed by default in a [% terms.bug%]list. The user can ask to see a larger
list, though.</li>
<li><strong>Configuration:</strong> A new parameter <em>max_search_results</em>
has been added (default: 10000) which limits the number of [% terms.bugs %]
a user can request at once in a [% terms.bug%]list. This is a hard limit and
a user cannot bypass this value.</li>
<li><strong>Configuration:</strong> A new parameter <em>ajax_user_autocompletion</em>
has been added (default: on) to allow administrators to disable auto-completion
when typing characters in user fields. This parameter should only be disabled
if your installation is unable to support the load generated by this feature.</li>
<li><strong>Configuration:</strong> The <em>config_modify_panels</em> hook now
lets you add additional parameters to existing parameters panels.</li>
<li><strong>Flags:</strong> Users with local editcomponents privileges can now
edit flag types for products they can administer.</li>
<li><strong>Quips:</strong> A new system group <em>bz_quip_moderators</em> has
been created to moderate quips. Till now, you had to be in the <em>admin</em>
group to do that.</li>
<li><kbd>importxml.pl</kbd> now inserts each comment separately into the imported
[%+ terms.bug %] instead of concatenating them all into a single comment.</li>
<li><kbd>email_in.pl</kbd> now ignores auto-submitted incoming emails (for
instance, all these "out of office" emails).</li>
<li>New code hooks: email_in_before_parse, email_in_after_parse,
install_filesystem, install_update_db_fielddefs, job_map, object_end_of_create,
quicksearch_map, user_preferences.</li>
</ul>
<h4>WebService Changes</h4>
<ul>
<li>Two new methods have been added: <kbd>Product.create</kbd> and
<kbd>Group.create</kbd>.</li>
<li><kbd>B[%%]ug.update</kbd> no longer throws an error when passing an empty
string to <kbd>see_also</kbd>. It now simply ignores this empty value.</li>
<li><kbd>Product.get</kbd> now also returns data about the classification it
belongs to as well as its components, milestones and versions. It also
returns the <kbd>default_milestone</kbd> and <kbd>has_unconfirmed</kbd>
attributes.</li>
<li>In <kbd>B[%%]ug.fields</kbd>, the <kbd>sortkey</kbd> attribute used in
<kbd>values</kbd> has been renamed to <kbd>sort_key</kbd>.</li>
<li>In <kbd>B[%%]ug.attachments</kbd> and <kbd>B[%%]ug.add_attachment</kbd>,
the <kbd>is_url</kbd> attribute no longer exists.</li>
</ul>
<h2 id="v42_issues">Outstanding Issues</h2>
<ul>
<li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=89822">
[%- terms.Bug %] 89822</a>: When changing multiple [% terms.bugs %] at
the same time, there is no "mid-air collision" protection.</li>
<li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=276230">
[%- terms.Bug %] 276230</a>: The support for restricting access to
particular Categories of New Charts is not complete. You should treat the
<em>chartgroup</em> parameter as the only access mechanism available.</li>
<li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=584742">
[%- terms.Bug %] 584742</a>: When viewing [% terms.abug %], WebKit-based
browsers can automatically reset a field's selected value when the field
has disabled values.</li>
<li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=780053">
[%- terms.Bug %] 780053</a>: Oracle crashes when listing keywords, tags
or flags in buglists.</li>
</ul>
<h2 id="v42_code_changes">Code Changes Which May Affect Customizations and Extensions</h2>
<ul>
<li>The <kbd>email/newchangedmail.txt.tmpl</kbd> template is now fully templatized,
meaning that the diff table displaying changes in [% terms.bug %] fields is
now generated in the template itself. This means [% terms.bug %]mails are now
fully localizable.</li>
<li>The bugmail_recipients hook has been modified to pass <kbd>diffs</kbd> with
changes made to the [% terms.bug %] as well as <kbd>users</kbd> including
recipients of the email notification.</li>
<li>YUI has been upgraded to 2.9.0.</li>
<li>Due to the major code refactor of <kbd>B[%%]ugzilla/Search.pm</kbd>, any
customization made against this file will probably need to be rewritten.</li>
<li>The Bugzilla-specific <kbd>url_quote</kbd> filter used in templates
has been removed and replaced by the <kbd>uri</kbd> filter from Template::Toolkit
as they are now similar.</li>
<li><kbd>long_list.cgi</kbd>, <kbd>showattachment.cgi</kbd> and <kbd>xml.cgi</kbd>
have been removed from the codebase. As <a href="#v40_code_changes">announced</a>
in the release notes of Bugzilla 4.0, these scripts were deprecated
since Bugzilla 2.19.</li>
<li><kbd>sidebar.cgi</kbd> has been removed, because Gecko-based browsers no
longer support remote XUL, and its popularity is very low.</li>
<li><kbd>contrib/yp_nomail.sh</kbd> has been removed. This script is no longer
useful since Bugzilla 3.0.</li>
<li><kbd>contrib/bugzilla_ldapsync.rb</kbd> has been removed. This script didn't
work for a long time.</li>
</ul>
<h1 id="v42_previous">Bugzilla 4.0 Release Notes</h1>
<ul class="bz_toc">
<li><a href="#v40_introduction">Introduction</a></li>
<li><a href="#v40_point">Updates in this 4.0.x Release</a></li>
<li><a href="#v40_req">Minimum Requirements</a></li>
<li><a href="#v40_feat">New Features and Improvements</a></li>
<li><a href="#v40_issues">Outstanding Issues</a></li>
<li><a href="#v40_upgrading">Notes On Upgrading From a Previous Version</a></li>
<li><a href="#v40_code_changes">Code Changes Which May Affect
Customizations and Extensions</a></li>
<li><a href="#v40_previous">Release Notes for Previous Versions</a></li>
</ul>
<h2 id="v40_introduction">Introduction</h2>
<p>This is Bugzilla 4.0! Since 3.6 (our previous major
release) we've come a long way, and we've come even further compared to
3.0 in 2007! Since Bugzilla 3.0, almost every major user
interface in Bugzilla has been redesigned, the WebServices have
evolved enormously, there's a great new Extensions system, and there
are hundreds of other new features. With the major redesigns that come
particularly in this release compared to 3.6, we felt that it was time to
call this release 4.0.</p>
<p>It's not just major WebService and UI enhancements that are new in
Bugzilla 4.0—there are many other exciting new features,
including automatic duplicate detection, enhanced custom field
functionality, autocomplete for users, search improvements, and much
more. Overall, 4.0 is far and away the best version of Bugzilla
we've ever released.</p>
<p>If you're upgrading, make sure to read <a href="#v40_upgrading">Notes
On Upgrading From a Previous Version</a>. If you are upgrading from a release
before 3.6, make sure to read the release notes for all the
<a href="#v40_previous">previous versions</a> in between your version
and this one, <strong>particularly the Upgrading section of each
version's release notes</strong>.</p>
<p>We would like to thank
<a href="http://www.itasoftware.com/">ITA Software</a>,
the <a href="http://www.ibm.com/linux/ltc/">IBM Linux Technology Center</a>,
and <a href="http://www.redhat.com/">Red Hat</a> for funding the development
of certain features and improvements in this release of
Bugzilla.</p>
<h2 id="v40_point">Updates in this 4.0.x Release</h2>
<h3>4.0.2</h3>
<p>This release fixes several security issues. See the
<a href="http://www.bugzilla.org/security/3.4.11/">Security Advisory</a>
for details.</p>
<p>In addition, the following important fixes/changes have been made in this
release:</p>
<ul>
<li>The <kbd>B[% %]ug.create</kbd> WebService method now throws an error if you
pass a group name which doesn't exist. In Bugzilla 4.0 and 4.0.1,
this group name was silently ignored, leaving your [% terms.bug %] unsecure
if no other group applied.
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=653341">[% terms.Bug %] 653341</a>)</li>
<li>Moving several [% terms.bugs %] at once into another product displayed the
same confirmation page again and again, and changes were never committed
(regressed in 4.0).
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=663208">[% terms.Bug %] 663208</a>)</li>
<li>Marking [% terms.abug %] as a duplicate now works in Internet Explorer 9.
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=656769">[% terms.Bug %] 656769</a>)</li>
<li><kbd>importxml.pl</kbd> no longer crashes when importing keywords (regressed
in 4.0).
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=657707">[% terms.Bug %] 657707</a>)</li>
<li>Data entered while reporting a new [% terms.bug %] could be lost if you had
to click the "Back" button of your web browser.
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=652427">[% terms.Bug %] 652427</a>)</li>
<li>WebServices methods will return undefined [% terms.bug %] fields as undefined
instead of as an empty string. This change is consistent with how
Bugzilla 4.2 behaves.
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=657561">[% terms.Bug %] 657561</a>)</li>
<li>The XML-RPC interface now works with SOAP::Lite 0.711 and 0.712 under mod_perl.
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=600810">[% terms.Bug %] 600810</a>)</li>
<li>LWP 6.00 and newer require Perl 5.8.8 and above. When installing this module
using <kbd>install-module.pl</kbd> on a Perl installation older than 5.8.8,
LWP 5.837 will be installed instead.
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=655912">[% terms.Bug %] 655912</a>)</li>
<li>Viewing [% terms.abug %] report should be significantly faster when your
installation has many custom fields.
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=634812">[% terms.Bug %] 634812</a>)</li>
</ul>
<h3>4.0.1</h3>
<ul>
<li>During installation, the CPAN module Math::Random::Secure would
sometimes fail to install properly and give an error about
<kbd>Math::Random::Secure::irand</kbd>. Now, when using
<kbd>install-module.pl</kbd> to install Math::Random::Secure, this
will no longer happen. If you are currently experiencing this b[% %]ug
and it prevented you from installing 4.0, remove Math::Random::Secure
from your <kbd>lib/</kbd> directory, like:
<p><kbd>rm -rf lib/Math/Random/Secure*</kbd></p>
<p>(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=646578">[% terms.Bug %] 646578</a>)</p></li>
<li>The "Remember values as bookmarkable template" button on the
[%+ terms.bug %] entry page will now work even when some required fields
are empty.
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=640719">[% terms.Bug %] 640719</a>)</li>
<li>Email notifications about dependencies and flags had the wrong
timestamp.
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=643910">[% terms.Bug %] 643910</a>
and (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=652165">[% terms.Bug %] 652165</a>)</li>
<li>You can now select "UTC" as a valid timezone in General Preferences.
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=646209">[% terms.Bug %] 646209</a>)</li>
<li>Automatic duplicate detection now works on PostgreSQL (although
it is not as high-quality as on other DB platforms).
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=634144">[% terms.Bug %] 634144</a>)</li>
<li>Autcomplete for users now works even if you are using the
"emailsuffix" option.
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=641519">[% terms.Bug %] 641519</a>)</li>
<li>Javascript errors during series creation in New Charts have been
fixed.
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=644285">[% terms.Bug %] 644285</a>)</li>
<li>The "Show Votes" page now works, for installations using the Voting
extension.
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=652381">[% terms.Bug %] 652381</a>)</li>
</ul>
<h2 id="v40_req">Minimum Requirements</h2>
<p>Any requirements that are new since 3.6.3 will look like
<span class="req_new">this</span>.</p>
<ul>
<li><a href="#v40_req_perl">Perl</a></li>
<li><a href="#v40_req_mysql">For MySQL Users</a></li>
<li><a href="#v40_req_pg">For PostgreSQL Users</a></li>
<li><a href="#v40_req_oracle">For Oracle Users</a></li>
<li><a href="#v40_req_modules">Required Perl Modules</a></li>
<li><a href="#v40_req_optional_mod">Optional Perl Modules</a></li>
<li><a href="#v40_req_apache">Optional Apache Modules</a></li>
</ul>
<h3 id="v40_req_perl">Perl</h3>
<p>Perl v5.8.1</p>
<h3 id="v40_req_mysql">For MySQL Users</h3>
<ul>
<li>MySQL v4.1.2</li>
<li><strong>perl module:</strong> DBD::mysql v4.00</li>
</ul>
<h3 id="v40_req_pg">For PostgreSQL Users</h3>
<ul>
<li>PostgreSQL v8.00.0000</li>
<li><strong>perl module:</strong> DBD::Pg v1.45</li>
</ul>
<h3 id="v40_req_oracle">For Oracle Users</h3>
<ul>
<li>Oracle v10.02.0</li>
<li><strong>perl module:</strong> DBD::Oracle v1.19</li>
</ul>
<h3 id="v40_req_modules">Required Perl Modules</h3>
<table class="req_table">
<tbody>
<tr>
<th>Module</th><th>Version</th>
</tr>
<tr>
<td>CGI</td>
<td class="req_new">3.51</td>
</tr>
<tr>
<td>Digest::SHA</td>
<td>(Any)</td>
</tr>
<tr>
<td>Date::Format</td>
<td>2.21</td>
</tr>
<tr>
<td>DateTime</td>
<td>0.28</td>
</tr>
<tr>
<td>DateTime::TimeZone</td>
<td>0.71</td>
</tr>
<tr>
<td>DBI</td>
<td>1.41</td>
</tr>
<tr>
<td>Template</td>
<td>2.22</td>
</tr>
<tr>
<td>Email::Send</td>
<td>2.00</td>
</tr>
<tr>
<td>Email::MIME</td>
<td class="req_new">1.904</td>
</tr>
<tr>
<td>URI</td>
<td>(Any)</td>
</tr>
<tr>
<td class="req_new">List::MoreUtils</td>
<td class="req_new">0.22</td>
</tr>
</tbody>
</table>
<h3 id="v40_req_optional_mod">Optional Perl Modules</h3>
<p>The following perl modules, if installed, enable various
features of Bugzilla:</p>
<table class="req_table">
<tbody>
<tr>
<th>Module</th><th>Version</th><th>Enables Feature</th>
</tr>
<tr>
<td>GD</td>
<td>1.20</td>
<td>Graphical Reports, New Charts, Old Charts</td>
</tr>
<tr>
<td>Chart::Lines</td>
<td>2.1</td>
<td>New Charts, Old Charts</td>
</tr>
<tr>
<td>Template::Plugin::GD::Image</td>
<td>(Any)</td>
<td>Graphical Reports</td>
</tr>
<tr>
<td>GD::Text</td>
<td>(Any)</td>
<td>Graphical Reports</td>
</tr>
<tr>
<td>GD::Graph</td>
<td>(Any)</td>
<td>Graphical Reports</td>
</tr>
<tr>
<td>MIME::Parser</td>
<td>5.406</td>
<td>Move [% terms.Bugs %] Between Installations</td>
</tr>
<tr>
<td>LWP::UserAgent</td>
<td>(Any)</td>
<td>Automatic Update Notifications</td>
</tr>
<tr>
<td>XML::Twig</td>
<td>(Any)</td>
<td>Move [% terms.Bugs %] Between Installations, Automatic Update
Notifications</td>
</tr>
<tr>
<td>PatchReader</td>
<td>0.9.4</td>
<td>Patch Viewer</td>
</tr>
<tr>
<td>Net::LDAP</td>
<td>(Any)</td>
<td>LDAP Authentication</td>
</tr>
<tr>
<td>Authen::SASL</td>
<td>(Any)</td>
<td>SMTP Authentication</td>
</tr>
<tr>
<td>Authen::Radius</td>
<td>(Any)</td>
<td>RADIUS Authentication</td>
</tr>
<tr>
<td>SOAP::Lite</td>
<td class="req_new">0.712</td>
<td>XML-RPC Interface</td>
</tr>
<tr>
<td>JSON::RPC</td>
<td>(Any)</td>
<td>JSON-RPC Interface</td>
</tr>
<tr>
<td class="req_new">JSON::XS</td>
<td class="req_new">2.0</td>
<td>Make JSON-RPC Faster</td>
</tr>
<tr>
<td>Test::Taint</td>
<td>(Any)</td>
<td>JSON-RPC Interface, XML-RPC Interface</td>
</tr>
<tr>
<td>HTML::Parser</td>
<td>3.40</td>
<td>More HTML in Product/Group Descriptions</td>
</tr>
<tr>
<td>HTML::Scrubber</td>
<td>(Any)</td>
<td>More HTML in Product/Group Descriptions</td>
</tr>
<tr>
<td>Email::MIME::Attachment::Stripper</td>
<td>(Any)</td>
<td>Inbound Email</td>
</tr>
<tr>
<td>Email::Reply</td>
<td>(Any)</td>
<td>Inbound Email</td>
</tr>
<tr>
<td>TheSchwartz</td>
<td>(Any)</td>
<td>Mail Queueing</td>
</tr>
<tr>
<td>Daemon::Generic</td>
<td>(Any)</td>
<td>Mail Queueing</td>
</tr>
<tr>
<td>mod_perl2</td>
<td>1.999022</td>
<td>mod_perl</td>
</tr>
<tr>
<td>Apache2::SizeLimit</td>
<td class="req_new">0.93</td>
<td>mod_perl</td>
</tr>
<tr>
<td class="req_new">Math::Random::Secure</td>
<td class="req_new">0.05</td>
<td>Improve cookie and token security</td>
</tr>
</tbody>
</table>
<h3 id="v40_req_apache">Optional Apache Modules</h3>
<p>If you are using Apache as your webserver, Bugzilla can
now take advantage of some Apache features if you have the below Apache
modules installed and enabled. Currently,
<a href="#v40_feat_js_css_update">certain Bugzilla features</a>
are enabled only if you have all of the following modules installed
and enabled:</p>
<ul>
<li>mod_headers</li>
<li>mod_expires</li>
<li>mod_env</li>
</ul>
<p>On most systems (but not on Windows), <kbd>checksetup.pl</kbd> is able to
tell whether or not you have these modules installed, and it will tell
you.</p>
<h2 id="v40_feat">New Features and Improvements</h2>
<ul>
<li><a href="#v40_feat_dup">Automatic Duplicate Detection When Filing
[%+ terms.Bugs %]</a></li>
<li><a href="#v40_feat_search_ui">New Advanced Search UI</a></li>
<li><a href="#v40_feat_attach_ui">New Attachment Details UI</a></li>
<li><a href="#v40_feat_autocomplete">Autocomplete for Users and
Keywords</a></li>
<li><a href="#v40_feat_ui">General Usability Improvements</a></li>
<li><a href="#v40_feat_workflow">New Default Status Workflow</a></li>
<li><a href="#v40_feat_lists">"Last Search" Now Remembers Multiple
Searches</a></li>
<li><a href="#v40_feat_jsonp">Cross-Domain WebServices with JSONP</a></li>
<li><a href="#v40_feat_ws">Major WebService Enhancements</a></li>
<li><a href="#v40_feat_mandatory">Mandatory Custom Fields</a></li>
<li><a href="#v40_feat_vot_ext">Voting Is Now An Extension</a></li>
<li><a href="#v40_feat_js_css_update">Users Get New CSS and Javascript
Automatically</a></li>
<li><a href="#v40_feat_hooks">Many New Hooks</a></li>
<li><a href="#v40_feat_apache_config">New Apache Configuration</a></li>
<li><a href="#v40_feat_other">Other Enhancements and Changes</a></li>
</ul>
<h3 id="v40_feat_dup">Automatic Duplicate Detection When Filing
[%+ terms.Bugs %]</h3>
<p>When filing [% terms.abug %], as soon as you start typing in the summary
field, Bugzilla will suggest possible duplicates of the
[%+ terms.bug %] you are filing.</p>
<p>In order for this feature to work, all pre-requisites for JSON-RPC
support must be installed on your Bugzilla. It will be
much faster on installations that run under mod_perl than it will
be on other installations.</p>
<h3 id="v40_feat_search_ui">New Advanced Search UI</h3>
<p>Thanks to the UI work of <a href="http://guy-pyrzak.blogspot.com/">Guy
Pyrzak</a>, the Advanced Search UI has been completely redesigned.
It is now much simpler, and far more approachable for new users, while
still retaining all of the features that power users are used to.</p>
<h3 id="v40_feat_attach_ui">New Attachment Details UI</h3>
<p>The UI used for editing attachment details has been completely
redesigned, allowing for a normally-size comment box to be used
when commenting on attachments, and allowing nearly the entire screen
width to be used when doing code reviews or editing an attachment as
a comment.</p>
<p>Thanks to <a href="http://guy-pyrzak.blogspot.com/">Guy Pyrzak</a> for
his excellent work on this UI redesign.</p>
<h3 id="v40_feat_autocomplete">Autocomplete for Users and Keywords</h3>
<p>Once you type at least three characters in any field that can contain a user
(including the [% field_descs.cc FILTER html %],
[%+ field_descs.qa_contact FILTER html %], or
[%+ field_descs.assigned_to FILTER html %] fields), a list will appear
containing all of the users whose real names or usernames match what you are
typing. Your Bugzilla must have all of the optional Perl
modules required for JSON-RPC support installed, though, in order for
this feature to work. Also, this feature will be <strong>much</strong>
faster on installations that run under mod_perl than it will be on
other installations.</p>
<p>There is also a similar autocomplete for the Keywords field. The
Keywords autocomplete does not require JSON-RPC.</p>
<h3 id="v40_feat_ui">General Usability Improvements</h3>
<p>In addition to the enhancements listed above, there have been
<strong>many</strong> improvements made across the Bugzilla
user interface. For a list of specific enhancements that were significant,
see the <a href="#v40_feat_other">Other Enhancements and Changes</a>
section.</p>
<h3 id="v40_feat_workflow">New Default Status Workflow</h3>
<p>For new installations of Bugzilla, the default set of
statuses will now be:</p>
<ul>
<li>UNCONFIRMED</li>
<li>CONFIRMED</li>
<li>IN_PROGRESS</li>
<li>RESOLVED</li>
<li>VERIFIED</li>
</ul>
<p>And the UNCONFIRMED status will be enabled by default in all products.</p>
<p>On upgrade, existing installations will not be affected--you will retain
your existing status workflow. However, we strongly recommend that you
update your existing workflow to the new one, using a special tool
we've included, <kbd>contrib/convert-workflow.pl</kbd>, which you
can run after you use <kbd>checksetup.pl</kbd> to upgrade. The
<kbd>whineatnews.pl</kbd> and <kbd>bugzilla-submit</kbd> scripts
will probably not work properly if you continue to use the old workflow
(though most other parts of Bugzilla will still function
normally).</p>
<p>For more information about the workflow and our rationale for changing
it, see the
<a href="http://bugzillaupdate.wordpress.com/2010/07/06/bugzilla-4-0-has-a-new-default-status-workflow/">blog
post about it</a> and the
<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=486292">[% terms.bug %]
where the change was made</a>.</p>
<h3 id="v40_feat_lists">"Last Search" Now Remembers Multiple Searches</h3>
<p>At the top of every [% terms.bug %] in Bugzilla, there are
links that look like: "First", "Last", "Prev", "Next", and
"Show last search results". In earlier versions of Bugzilla,
if you did two separate searches in separate windows, these links would
only work for the <em>last</em> search you did. Now, Bugzilla
will "remember" which search result you came from and give you the right
"last search results" or "next [% terms.bug %]" from <em>that</em> list,
instead of always using your most recent search.</p>
<p>There are still some situations where Bugzilla will have to
"guess" which search you are trying to navigate through, but it does its
best to get it right.</p>
<h3 id="v40_feat_jsonp">Cross-Domain WebServices with JSONP</h3>
<p>Bugzilla now supports making WebService calls from
another domain, inside of a web browser, thanks to support for
<a href="http://bob.pythonmac.org/archives/2005/12/05/remote-json-jsonp/">JSONP</a>.
This will allow for web "mash-ups" to use Bugzilla data.
When using JSONP, you may only call functions that <em>get</em> data,
you may not call functions that <em>change</em> data.</p>
<p>For more details, see the
<a href="[% docs_urlbase FILTER html %]api/Bugzilla/WebService/Server/JSONRPC.html#JSONP">JSONP
section</a> of the JSON-RPC WebService documentation.</p>
<h3 id="v40_feat_ws">Major WebService Enhancements</h3>
<p>The WebService has been expanded considerably. The WebService should now be
able to do everything with [% terms.bugs %] that you can do via the
web interface, including updating [% terms.bugs %], adding attachments,
and getting attachment data. For specifics, see the
<a href="#v40_feat_ws_changes">WebService Changes</a> section of these
release notes.</p>
<h3 id="v40_feat_mandatory">Mandatory Custom Fields</h3>
<p>You can now specify that certain custom fields are "mandatory",
meaning that they must have a value when [% terms.abug %] is filed,
and they can never be empty after that.</p>
<h3 id="v40_feat_vot_ext">Voting Is Now An Extension</h3>
<p>All of the code for voting in Bugzilla has been moved
into an extension, called "Voting", in the <kbd>extensions/Voting/</kbd>
directory. To enable it, you must remove the <kbd>disabled</kbd> file
from that directory, and run <kbd>checksetup.pl</kbd>.</p>
<p>In a future version of Bugzilla, the Voting extension will
be moved outside of the Bugzilla core code, so we are looking
for somebody who has an interest in the Voting system and would like to
maintain it as a separate extension. There are many enhancement requests
that have been made against the Voting system, and the best way for those
to get addressed is for somebody to step up and offer to maintain the
system outside of Bugzilla's core code.</p>
<h3 id="v40_feat_js_css_update">Users Get New CSS and Javascript
Automatically</h3>
<p>In past versions of Bugzilla, if you changed
Bugzilla's CSS or Javascript files, then every user of
Bugzilla would have to clear their cache in order to get
the updated files. Now, if you are using Apache as your webserver and
you have the <a href="#v40_req_apache">optional Apache modules</a>
installed and enabled, users will automatically get every new version of
Bugzilla's Javascript and CSS without having to clear
their caches.</p>
<p>This feature also gives a slight performance speedup to
Bugzilla in some cases, and so we recommend that all
administrators install and enable the optional Apache modules if possible.</p>
<h3 id="v40_feat_hooks">Many New Hooks</h3>
<p>Many new code hooks have been added for use by Extensions,
in Bugzilla 4.0. Now Extensions can access and modify
nearly every part of Bugzilla.</p>
<h3 id="v40_feat_apache_config">New Apache Configuration</h3>
<p>If you run Bugzilla under Apache (as most people do),
you most likely require a <strong>new Apache configuration</strong>
for this version of Bugzilla. See the
<a href="#v40_upgrading">Notes On Upgrading From a Previous Version</a>
section for details.</p>
<h3 id="v40_feat_other">Other Enhancements and Changes</h3>
<h4>Enhancements for Users</h4>
<ul>
<li>Now, everywhere in Bugzilla where you can enter a date,
there is a Calendar widget where you can select the date on a
calendar.</li>
<li>The big icons on the front page have been replaced with much nicer
icons, thanks to Jon Pink of <a href="http://www.jpink.co.uk/">J. Pink Design</a>!</li>
<li><strong>[% terms.Bugs %]:</strong> When filing [% terms.bugs %],
you will now be warned if you forgot to fill in any mandatory fields,
<em>before</em> the page is submitted.</li>
<li><strong>[% terms.Bugs %]:</strong> When filing [% terms.abug %],
you can hover your mouse over any of the field labels on the page
to get a brief description of what that field is and what its purpose
is.</li>
<li><strong>[% terms.Bugs %]:</strong> When adding Hours Worked to [% terms.abug %],
you are no longer required to comment.</li>
<li><strong>[% terms.Bugs %]:</strong> There is now a user preference
for whether the comment box appears above or below the existing
comments.</li>
<li><strong>[% terms.Bugs %]:</strong> Bugzilla will now
send an email for every comment that you mark or un-mark as being
private. (Previous versions of Bugzilla did not send emails
to users about this change.) The state of comments being made private
is also now stored in [% terms.abug %]'s history.</li>
<li><strong>[% terms.Bugs %]:</strong> The box to "Add [% terms.Bug %] URLs"
in the See Also field is now hidden behind an "(add)" link that you
have to click to see the box.</li>
<li><strong>Searches:</strong> You can now properly search for field values
that have commas in their name, when using the Advanced Search form.</li>
<li><strong>Searches:</strong> The "URL" field can now be shown as a column
in search results.</li>
<li><strong>Searches:</strong> When viewing a search result, you can now
click on the Summary of the [% terms.bug %] in order to go to the
[%+ terms.bug %]-view page, in addition to being able to click on the
[%+ terms.bug %] ID.</li>
<li><strong>Searches:</strong> When doing a search using the "quicksearch"
box in the header or footer, the box will still contain what you searched
for when viewing the search results page.</li>
<li><strong>Searches:</strong> Multi-select custom fields can now be
shown as columns in the search results.</li>
<li><strong>Searches:</strong> When using the Boolean Charts (now called
"Custom Search"), if you specify both a criterion for an attachment
and a criteron for a flag, then only [% terms.bugs %] that have
attachments with that flag will be found.</li>
<li><strong>Searches:</strong> If you hover your mouse over the field labels
on the Advanced Search page, you will get a description of what that
field is.</li>
<li><strong>Searches:</strong> When searching via a saved search, if you
accidentally click on "Forget Search", there is a link to undo it.</li>
<li><strong>Searches:</strong> When using the Boolean Charts (now called
"Custom Search"), you can search for values "greater than or equal to"
or "less than or equal to" some value.</li>
<li><strong>Flags:</strong> If you hover your mouse over the name of
a flag setter when viewing [% terms.abug %], you can see that
flag setter's full name and complete username.</li>
<li><strong>Flags:</strong> When setting a flag on [% terms.abug %],
the box for entering a requestee does not appear until you set the flag
to "?", now.</li>
<li><strong>Flags:</strong> On the "My Requests" page, [% terms.bugs %]
that are restricted to certain groups now properly have the "padlock"
icon shown next to them to indicate that they may contain confidential
information.</li>
<li>When using the Reports interface, you can now choose many more fields
as the X, Y, or Z axis of a report, including custom fields.</li>
<li>Bugzilla now prevents
Internet Explorer 8 and later from attempting to render
<kbd>text/plain</kbd> attachments as HTML.</li>
<li>If you receive a Whine mail that is empty, there will now be a brief
message explaining that your search found no results.</li>
<li>The <a href="page.cgi?id=fields.html">Field Help Page</a> now
contains a description of every single field that can be on
[%+ terms.abug %] in Bugzilla.</li>
</ul>
<h4>Enhancements for Administrators and Developers</h4>
<ul>
<li>The system for moving [% terms.bugs %] between installations has been
moved into an extension called <kbd>OldBugMove</kbd>. This system was used
by very few Bugzilla installations--if you aren't certain
whether or not you are using it, you're not using it. To enable the system,
you have to remove the file <kbd>extensions/OldBugMove/disabled</kbd>
and then run <kbd>checksetup.pl</kbd>. In a future version of Bugzilla,
this extension may be moved outside of the core Bugzilla code,
so if you are interested in maintaining it, please let us know.</li>
<li><strong>Custom Fields: </strong> "[% terms.Bug %] ID" custom fields can
now represent relationships between [% terms.bugs %], similarly to how the
[%+ field_descs.blocked FILTER html %] and
[%+ field_descs.dependson FILTER html %] fields work now.</li>
<li><strong>Custom Fields:</strong> You can now restrict the visibility
of custom fields and their values to a specific Component or
Classification.</li>
<li>The "keyword cache" has been removed. When you edit keywords, you no
longer will have to "rebuild the keyword cache" after you are done.</li>
<li>Running <kbd>./collectstats.pl --regenerate</kbd> will now take
minutes or hours, instead of days.</li>
<li>When using <kbd>email_in.pl</kbd>, there are two new switches,
<kbd>--default</kbd> and <kbd>--override</kbd>, which allow you to
specify certain default values or override specified values for
<kbd>@field</kbd> values sent in emails. (This also allows you to specify
defaults for everything so that people do not have to specify any field
values when filing [% terms.abug %] via email.)</li>
<li><strong>Installation:</strong> If you are using a localized version of
Bugzilla and your terminal does not understand Unicode,
<kbd>checksetup.pl</kbd> will now attempt to output its messages in your
terminal's character set.</li>
<li><strong>Installation:</strong> Bugzilla no longer needs empty
"placeholder" CSS in the <kbd>skins/custom</kbd> directory and other
directories. When you update, <kbd>checksetup.pl</kbd> will remove these.
This also significantly reduces the number of HTTP requests required to
load a page for the first time in Bugzilla.</li>
<li><strong>Installation:</strong> For Windows users, Bugzilla
now supports Strawberry Perl fully.</li>
<li><strong>Installation:</strong> Now, whenever <kbd>checksetup.pl</kbd>
throws an error, it will be printed in the color red, to make it
obvious that something is wrong.</li>
<li><strong>Installation:</strong> Some actions of <kbd>checksetup.pl</kbd> were
silent, in the past. Now, <kbd>checksetup.pl</kbd> will print a message for
almost anything it does.</li>
<li><strong>Installation:</strong> The process of adding foreign keys
to a table is now much faster. This will particularly improve the speed
of upgrading from Bugzilla 3.4 or earlier.</li>
<li>If you are using <kbd>jobqueue.pl</kbd> and email gets heavily delayed
for some reason, those emails will now have a Date header reflecting the
time they were <em>supposed</em> to be sent, instead of when they actually
<em>were</em> sent.</li>
<li><kbd>./jobqueue.pl install</kbd> now works on SuSE Linux.</li>
<li>Bugzilla now runs much better in Apache's suexec mode
than it used to. As part of this, <kbd>checksetup.pl</kbd> sets
much stricter permissions on all the files in Bugzilla
than it used to. In particular, any files that Bugzilla
does not know about will not be readable by the webserver.</li>
<li>The <kbd>sendmailnow</kbd> parameter has been removed, as it was
not necessary for any modern version of Sendmail or other Mail Transfer
Agent.</li>
<li>When editing a user via the Users administration panel, you can now
see if they are a Default CC on any component.</li>
<li>For new installations of Bugzilla, all users will be
able to see and use the Whining system by default.</li>
<li>When you are using SSL with Bugzilla, you can now
turn on the <kbd>strict_transport_security</kbd> parameter to
send the
<a href="https://developer.mozilla.org/en/Security/HTTP_Strict_Transport_Security">Strict-Transport-Security</a>
header with every HTTPS connection, for additional security.</li>
<li>New code hooks (see their documentation in
<a href="[% docs_urlbase FILTER html %]api/Bugzilla/Hook.html">Bugzilla::Hook</a>):
bug_check_can_change_field, search_operator_field_override,
bugmail_relationships, object_columns, object_update_columns,
and object_validators. The colchange_columns hook has been removed,
as it is no longer necessary (buglist_columns will be used for data
about which columns can be on the [% terms.bug %] list).</li>
<li>When Bugzilla throws certain types of errors, it will
now include a "traceback" of where exactly the error occurred in the
code, to help administrators and developers debug problems.</li>
<li>There is now a test, <kbd>xt/search.t</kbd>, that assures that all
of the functionality of <kbd>Bugzilla::Search</kbd> is working properly.
If you customize the search functionality of Bugzilla,
you may wish to run this test to assure that your changes are correct.
You can see more information about running this test by doing
<kbd>perldoc xt/search.t</kbd> at the command line.</li>
<li>Bugzilla now sends the
<a href="https://developer.mozilla.org/en/the_x-frame-options_response_header"><code>X-Frame-Options: SAMEORIGIN</code></a> header
with every page request in order to prevent "clickjacking" attacks. Note
that this prevents other domains from displaying Bugzilla
in an HTML frame.</li>
</ul>
<h4 id="v40_feat_ws_changes">WebService Changes</h4>
<ul>
<li>You can now call some JSON-RPC methods using HTTP GET, in addition to
using HTTP POST. See the
<a href="[% docs_urlbase FILTER html %]api/Bugzilla/WebService/Server/JSONRPC.html#Connecting_via_GET">JSON-RPC
documentation</a> for details.</li>
<li>You can now update existing [% terms.bugs %] using the
<a href="[% docs_urlbase FILTER html %]api/Bugzilla/WebService/Bug.html#update">B[% %]ug.update</a>
function.</li>
<li>You can now add attachments to [% terms.bugs %] using the
<a href="[% docs_urlbase FILTER html %]api/Bugzilla/WebService/Bug.html#add_attachment">B[% %]ug.add_attachment</a>
function.</li>
<li>The <kbd>B[% %]ug.get</kbd> function now returns all of [% terms.abug %]'s
information other than comments and attachments.</li>
<li><kbd>B[% %]ug.get</kbd> no longer returns the <kbd>internals</kbd> hash.</li>
<li>The <kbd>B[% %]ug.attachments</kbd> function now also returns attachment
data.</li>
<li>The following functions now support the <kbd>include_fields</kbd>
and <kbd>exclude_fields</kbd> arguments: <kbd>B[% %]ug.get</kbd>,
<kbd>B[% %]ug.search</kbd>, and <kbd>B[% %]ug.attachments</kbd>. Also,
server-side performance of the WebService is actually increased when
using these arguments, now, as Bugzilla will no longer
get data from the database for fields you haven't asked for.</li>
<li>You can now mark the initial description of [% terms.abug %] as
private when filing [% terms.abug %] via the <kbd>B[% %]ug.create</kbd>
function.</li>
<li>You can now specify groups to put [% terms.abug %] in, in the
<a href="[% docs_urlbase FILTER html %]api/Bugzilla/WebService/Bug.html#create">B[% %]ug.create</a>
function. (This also means that you can specify groups when filing
[%+ terms.abug %] via email_in.pl.)</li>
<li>The <kbd>User.get</kbd> function now accepts <kbd>groups</kbd>
and <kbd>group_ids</kbd> arguments, to limit the returned values to
only users in the specified groups.</li>
<li>There is a new, undocumented B[% %]ug.possible_duplicates
function that helps implement the automatic duplicate detection
system. Because this function is not documented, its API may change
between releases of Bugzilla.</li>
<li>You can no longer search using the <kbd>votes</kbd> argument in
<kbd>B[% %]ug.search</kbd>.</li>
<li><kbd>B[% %]ug.attachments</kbd> now returns the attachment's description
using the name "summary" instead of the name "description", to be
consistent with the fact that [% terms.bug %] summaries are called
"summary". The value is still <em>also</em> returned as "description",
for backwards compatibility, but this backwards compatibility will go
away in Bugzilla 5.0.</li>
<li>In the return values of various <kbd>B[% %]ug</kbd> functions, the author
of comments, [% terms.bugs %], and attachments is now called "creator",
instead of sometimes being called "reporter", "author", or "attacher".
The old names are retained for backwards-compatibility, and will stay
around until Bugzilla 5.0.</li>
</ul>
<h2 id="v40_issues">Outstanding Issues</h2>
<ul>
<li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=423439">
[%- terms.Bug %] 423439</a>: Tabs in comments will be converted
to four spaces, due to a b<!-- -->ug in Perl as of Perl 5.8.8.</li>
<li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=89822">
[%- terms.Bug %] 89822</a>: When changing multiple [% terms.bugs %] at
the same time, there is no "mid-air collision" protection.</li>
<li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=276230">
[%- terms.Bug %] 276230</a>: The support for restricting access to
particular Categories of New Charts is not complete. You should treat
the 'chartgroup' Param as the only access mechanism available.<br>
However, charts migrated from Old Charts will be restricted to
the groups that are marked MANDATORY for the corresponding Product.
There is currently no way to change this restriction, and the
groupings will not be updated if the group configuration
for the Product changes.</li>
</ul>
<h2 id="v40_upgrading">Notes On Upgrading From a Previous Version</h2>
<h3>IMPORTANT: Apache Configuration Change</h3>
<h4>mod_cgi</h4>
<p>If you run Bugzilla under mod_cgi (this is the most common
configuration, involving a <Directory> block in your Apache config
file), you will need to update the configuration of Apache for
Bugzilla. In particular, this line in the Bugzilla
<kbd><Directory></kbd> block:</p>
<blockquote><code>AllowOverride Limit</code></blockquote>
<p>needs to become:</p>
<blockquote><code>AllowOverride Limit FileInfo Indexes</code></blockquote>
<p>For full details on how to configure Apache for Bugzilla,
see the
<a href="[% docs_urlbase FILTER html %]configuration.html#http-apache">Configuration</a>
section of the Bugzilla Guide.</p>
<h4>mod_perl</h4>
<p>If your Bugzilla runs under mod_perl, the required Apache
configuration is now simpler. The line that used to look like:</p>
<blockquote><code>PerlSwitches -w -T -I/var/www/html/bugzilla
-I/var/www/html/bugzilla/lib</code></blockquote>
<p>Now should be only:</p>
<blockquote><code>PerlSwitches -w -T</code></blockquote>
<p>The <code>PerlConfigRequire</code> line should stay the same, however.</p>
<h3>New .htaccess file</h3>
<p>In previous versions of Bugzilla, there was a file
in Bugzilla's root directory called ".htaccess" that was
generated by <kbd>checksetup.pl</kbd>. This file is now shipped with
Bugzilla instead of being generated during installation.</p>
<p>If you update via CVS or bzr, you will get a message that your existing
.htaccess file conflicts with the new one. You must
<strong>remove your existing .htaccess file</strong> and use the new one
instead. Continuing to use your old .htaccess file will cause certain new
features of Bugzilla to not work properly, and may also lead
to security issues for your system in the future.</p>
<h2 id="v40_code_changes">Code Changes Which May Affect Customizations and
Extensions</h2>
<ul>
<li>In Extensions, if you want to serve files to the user via the web,
they must now be in a <kbd>web/</kbd> subdirectory of your Extension.
(For example, <kbd>extensions/Foo/web/</kbd>). <kbd>checksetup.pl</kbd>
sets permissions on extensions much more strictly now, and files in
other locations (such as your base <kbd>extensions/Foo/</kbd> directory)
will no longer be available to Bugzilla users via the web
under certain configurations.</li>
<li>Previous versions of Bugzilla used to allow putting a
single file into the "skins" directory and having that be an entire
skin. That is no longer allowed, and on upgrade, <kbd>checksetup.pl</kbd>
will convert any such skins into a directory with a single
<kbd>global.css</kbd> file in them.</li>
<li>When updating [% terms.bugs %], you should now use
<code>$bug->set_all</code> instead of using the individual
<kbd>set_</kbd> methods. In particular, <kbd>set_all</kbd> is now the
<em>only</em> way to set the product of [% terms.abug %]. See
<kbd>process_bug.cgi</kbd> for an example of how <kbd>set_all</kbd>
should be used.</li>
<li>You should not insert <script> tags and <link> CSS tags
into HTML anymore, in Extensions or in your customizations. Instead,
you should push new values into the <kbd>style_urls</kbd> or
<kbd>javascript_urls</kbd> parameters. If you have to insert manual
tags for some reason, be sure to call "FILTER mtime" on the URL. (Search
for other uses of "FILTER mtime" in the templates to see how it is
used.)</li>
<li>When calling <kbd>Bugzilla::BugMail::Send</kbd>, the "changer"
argument must now be a <kbd>Bugzilla::User</kbd> object, not just
a login name. The "owner" and "qacontact" arguments are still
just login names.</li>
<li>When creating a new subclass of Bugzilla::Object, you should no
longer use <kbd>UPDATE_VALIDATORS</kbd>. Also, in most cases you will
no longer need to override <kbd>run_create_validators</kbd>. Instead,
there is a new constant called
<a href="[% docs_urlbase FILTER html %]api/Bugzilla/Object.html#VALIDATOR_DEPENDENCIES">VALIDATOR_DEPENDENCIES</a>,
that specifies that certain fields have to be validated before other fields.
Then, all validators receive each already-validated value in a hash
as their fourth argument, so each validator can know the other values
that were passed in, while an object is being created. For an example of
how to use <kbd>VALIDATOR_DEPENDENCIES</kbd>, see
<kbd>Bugzilla/Field.pm</kbd>.</li>
<li>In previous versions of Bugzilla, you had to call
<code>Bugzilla->template_inner("")</code> after any time
that you called <kbd>template_inner</kbd> for a specific language.
It is no longer necessary to do this second <kbd>template_inner</kbd>
call.</li>
<li><kbd>post_bug.cgi</kbd> and <kbd>Bugzilla::Bug->create</kbd> now take
the <em>names</em> of groups instead of group ids.</li>
<li>Bugzilla::Bugmail now uses Bugzilla::Bug objects internally instead of
a lot of direct SQL.</li>
<li>For sending changes about [% terms.bugs %], there is now a method
called <kbd>send_changes</kbd> that you can call on Bugzilla::Bug
objects. For an example of its use, see <kbd>process_bug.cgi</kbd>.</li>
<li>The <kbd>Bugzilla::Search</kbd> class has been refactored, and should
now be easier to customize.</li>
<li>The <kbd>Bugzilla::Util::lsearch</kbd> function is gone. Use
<kbd>firstidx</kbd> from <kbd>List::MoreUtils</kbd>, instead.</li>
<li>Bugzilla now includes YUI 2.8.2.</li>
<li><kbd>long_list.cgi</kbd>, <kbd>showattachment.cgi</kbd> and
<kbd>xml.cgi</kbd> are deprecated scripts which are no longer actively
used since Bugzilla 2.19. These scripts will be removed in
Bugzilla 4.2.</li>
</ul>
<h2 id="v40_previous">Release Notes For Previous Versions</h2>
<p><a href="page.cgi?id=release-notes3.html">Release Notes for
Bugzilla 3.x and Earlier</a></p>
[% INCLUDE global/footer.html.tmpl %]
[% BLOCK db_req %]
[% SET m = DB_MODULE.$db %]
<h3 id="v40_req_[% db FILTER html %]">For [% m.name FILTER html %] Users</h3>
<ul>
<li>[% m.name FILTER html %]
[%+ '<span class="req_new">' IF db_new %]v[% m.db_version FILTER html %]
[% '</span>' IF db_new %]
</li>
<li><strong>perl module:</strong>
[%+ m.dbd.module FILTER html %]
[% '<span class="req_new">' IF dbd_new %]v[% m.dbd.version FILTER html %]
[% '</span>' IF dbd_new %]</li>
</ul>
[% END %]
[% BLOCK req_table %]
<table class="req_table">
<tr>
<th>Module</th> <th>Version</th>
[% IF include_feature %]
<th>Enables Feature</th>
[% END %]
</tr>
[% FOREACH req = reqs %]
<tr>
<td [% ' class="req_new"' IF new.contains(req.package) %]>
[%- req.module FILTER html %]</td>
<td [% ' class="req_new"' IF updated.contains(req.package)
OR new.contains(req.package) %]>
[%- IF req.version == 0 %]
(Any)
[% ELSE %]
[%- req.version FILTER html %]
[% END %]
</td>
[% IF include_feature %]
<td>[% req.feature.join(', ') FILTER html %]</td>
[% END %]
</tr>
[% END %]
</table>
[% END %]
|