summaryrefslogtreecommitdiffstats
path: root/NEWS
blob: 411983bd53c48a0c409ce343ca186b2f88668b32 (plain)
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
man-db 2.8.5 (5 January 2019)
=============================

Major changes since man-db 2.8.4:

	Building man-db now requires Autoconf >= 2.63 and Automake >=
	1.11.2.

	Fixes:
	------

	* Fix build with Berkeley DB.

	* Fail to configure if flex is needed but missing.

	* Fix the comment in the first line of the configuration file in the
	  case where configure was not given a --with-config-file option.

	* Fix several resource and memory leaks.

	* Fix handling of \- in the right-hand side of a NAME section.

	* Work around Microsoft's proprietary "System Center Endpoint
	  Protection" antivirus program in the seccomp sandbox.

	Improvements:
	-------------

	* Ship a systemd timer to perform daily database maintenance.

	* Allow disabling the installation of the systemd tmpfiles snippet
	  and the systemd timer by configuring with
	  --with-systemdtmpfilesdir=no and --with-systemdsystemunitdir=no
	  respectively.

man-db 2.8.4 (27 July 2018)
===========================

Major changes since man-db 2.8.3:

	Fixes:
	------

	* Rely on decompressors reading from their standard input rather
	  than redundantly passing them the input file on their command
	  line.  This works better with downstream AppArmor confinement of
	  decompressors.

	* Fix invalid syntax in tmpfiles.d/man-db.conf when configured with
	  --disable-cache-owner.

	* Make seccomp sandbox allow sched_getaffinity, sometimes used by
	  xz.

	* Check for mandb_nfmt and mandb_tfmt in the manual page hierarchy
	  as documented, not in the current directory.  This was broken by
	  the working-directory-handling changes in 2.8.3.  Note that this
	  change means that "man -l" will never use an external formatter
	  (which was never documented behaviour and was surely a bad idea).

	* Make seccomp sandbox allow some shared memory operations across
	  the board rather than just when ESET File Security is in use; the
	  Astrill VPN seems to require something similar, and there are
	  doubtless other such preload hacks.

	* Some versions of ESET File Security call msgget and msgsnd; if
	  this program is in use, then allow those.

man-db 2.8.3 (5 April 2018)
===========================

Major changes since man-db 2.8.2:

	Fixes:
	------

	* Make seccomp sandbox allow madvise, since that's used by lbzip2.

	* Make seccomp sandbox allow kill and tgkill outright, since groff
	  uses kill to pass on signals to its child processes.

	* Make seccomp sandbox allow sibling architectures on
	  x86/x86_64/x32, since people sometimes mix and match architectures
	  there for performance reasons.

	* Fix version check in locale macro loading to tolerate groff
	  release candidates.

	* man now only changes working directory in child processes, so
	  never fails due to being unable to change back to its original
	  working directory.

	* accessdb, apropos, and lexgrog no longer emit spurious gettext
	  headers in their --help output when localised.

man-db 2.8.2 (28 February 2018)
===============================

Major changes since man-db 2.8.1:

	Fixes:
	------

	* Make seccomp sandbox allow kill and tgkill when the signal is
	  directed at the current process or one of its threads; this is
	  needed by xz.

	* Make seccomp sandbox allow ioctl(fd, TIOCGWINSZ), since that's used
	  by musl.

	* Work around the proprietary "ESET File Security" antivirus program in
	  seccomp sandbox: if this is in use then we need to allow some
	  socket-related system calls.

	* Work around the "snoopy" execve() wrapper and logger in seccomp
	  sandbox: if this is in use then we need to allow some
	  socket-related system calls.

	* Interpret EFAULT from seccomp_load as meaning that seccomp is
	  unavailable, since this can be returned by some versions of
	  qemu-user.

man-db 2.8.1 (9 February 2018)
==============================

Major changes since man-db 2.8.0:

	Fixes:
	------

	* Fix seccomp sandbox build on Linux/POWER.

	* Fix manconv execution under seccomp when man is installed setuid.

	* Make seccomp sandbox allow mremap (used by iconv, for example).

	Improvements:
	-------------

	* configure now has a --without-libseccomp option to disable the use
	  of seccomp even if the library is available.

man-db 2.8.0 (4 February 2018)
==============================

Major changes since man-db 2.7.6.1:

	Fixes:
	------

	* Fix locale macro loading for Chinese to load the macro file
	  corresponding to just the language part of the user's locale.

	* Honour --enable-cache-owner in generated systemd tmpfiles snippet
	  rather than hardcoding "man".

	* If man adds prefixes to a page to handle such things as disabling
	  hyphenation, then take account of those when looking for a
	  preprocessor line at the start of the page.

	* Fix a segfault in 'man -D --help'.

	Improvements:
	-------------

	* Treat "\(en" as another synonym for "\-" in NAME sections.

	* Confine most subprocesses that handle untrusted data using
	  seccomp.  This mainly deals with subprocesses that perform
	  encoding conversions, (de)compressors, groff programs, and a few
	  other odds and ends.  groff programs use a slightly more
	  permissive filter since they need to create temporary files, so
	  additional path-based confinement (e.g. using AppArmor) is still
	  useful.

	  If this goes wrong, then MAN_DISABLE_SECCOMP=1 can be set in the
	  environment to disable it, but please report any such problem as a
	  bug.

	* man now falls back to cat if the compile-time default pager is not
	  executable.

man-db 2.7.6.1 (12 December 2016)
=================================

Major changes since man-db 2.7.6:

	Fixes:
	------

	* Don't chmod CACHEDIR.TAG if it doesn't exist.

	* Correct installation of Swedish manual pages.

man-db 2.7.6 (11 December 2016)
===============================

Major changes since man-db 2.7.5:

	Fixes:
	------

	* Fix build warnings with Perl 5.22.

	* Document that 'man -K' searches page source, not rendered text.

	* Fix a long-standing bug in man-db's internal cleanup stack
	  mechanism: if a cleanup function was pushed unexpectedly between a
	  push/pop pair, then popping the stack would remove the wrong
	  cleanup function and chaos could ensue.  Avoid this by being more
	  precise about which cleanup function should be popped.

	* SECURITY: Eliminate dangerous setgid-root directories.  In the
	  default configuration, cache files and directories are now owned
	  by man:man rather than man:root; man and mandb are now setgid man
	  as well as setuid man (except in the --disable-setuid case).  This
	  is a much simpler and safer solution to the original problem that
	  caused my predecessor to make directories setgid root, and doesn't
	  introduce any interesting new privilege since the man group's only
	  real purpose is to be the man user's primary group and nothing in
	  cache directories is group-writeable.

	  Maintainers of distribution packagers should take care to review
	  their installation rules in light of this change.

	  As far as I know this has no CVE ID, but it is described here:

	    https://www.halfdog.net/Security/2015/SetgidDirectoryPrivilegeEscalation/

	* Fix manual page translation infrastructure to render tables
	  correctly with po4a 0.47.

	Improvements:
	-------------

	* man now understands the <page>.<section> form on its command line,
	  so for example 'man chmod.2' is now the same as 'man 2 chmod'.
	  (Contributed by Mihail Konev.)

	* The owner of cache files is now configured separately from whether
	  man and mandb are installed setuid, using the
	  --enable-cache-owner[=USER] option.

man-db 2.7.5 (6 November 2015)
==============================

Major changes since man-db 2.7.4:

	Fixes:
	------

	* Adjust line number when inserting extra roff input.

	* Disable roff input insertion with --recode.

	* Build text manual with LC_ALL=C, to help reproducible builds.

man-db 2.7.4 (8 October 2015)
=============================

Major changes since man-db 2.7.3:

	Fixes:
	------

	* Fix crash when eliminating manpath duplicates if canonicalising a
	  manpath entry fails.

	* Fix a build system bug that sometimes caused substitutions in
	  manual pages to be left unexpanded.

	* man exits with status 3 rather than 0 if its formatting command
	  exits non-zero, even if its display command exits zero.

	* man honours MANWIDTH in conjunction with the -Z option, to make it
	  easier to diagnose warnings in manual pages.

man-db 2.7.3 (9 September 2015)
===============================

Major changes since man-db 2.7.2:

	Fixes:
	------

	* Tools that consider the terminal line length now try the
	  TIOCGWINSZ ioctl on /dev/tty as well as standard input/output.

	* mandb does a better job of coping with index files having
	  incorrect ownership.

	* Squeeze blank lines internally rather than relying on the pager
	  supporting the -s option.

	* Fix use-after-free in ult_src.

	* Fix crash when running from a missing and unreadable current
	  directory, such as an orphaned subdirectory of /proc.

	* Restore the ability to use 'man -a' noninteractively.

man-db 2.7.2 (16 August 2015)
=============================

Major changes since man-db 2.7.1:

	Fixes:
	------

	* 'man -k' and 'man -f' now pass any provided -l option through to
	  the underlying apropos/whatis programs.

	* apropos and whatis no longer truncate names if long output was
	  requested.

	* The database handle is no longer stored in a global variable,
	  fixing a class of possible double-close bugs.

man-db 2.7.1 (7 November 2014)
==============================

Major changes since man-db 2.7.0.2:

	Fixes:
	------

	* Various portability fixes for Solaris, contributed by Peter Bray.

	* man now runs correctly when its current working directory has been
	  deleted.  (As a result of this fix, man-db now requires
	  libpipeline >= 1.4.0.)

	* 'man -a' sends its prompts to /dev/tty rather than to stderr, and
	  likewise reads replies from /dev/tty rather than from stdin.

man-db 2.7.0.2 (28 September 2014)
==================================

Major changes since man-db 2.7.0.1:

	Fixes:
	------

	* Be more careful to avoid using or double-closing closed database
	  handles.  Fixes test suite failures on some systems.

	* Patch the fdutimens function imported from Gnulib to work around a
	  libc bug in GNU/Hurd.

man-db 2.7.0.1 (24 September 2014)
==================================

Major changes since man-db 2.7.0:

	Fixes:
	------

	* Fix test suite in the case where the system supports
	  high-precision timestamps but the file system containing the build
	  directory does not.

man-db 2.7.0 (22 September 2014)
================================

Major changes since man-db 2.6.7.1:

	Upgrading from previous versions:
	---------------------------------

	For the first time since version 2.4.0, the database format has
	changed slightly, so you will need to run 'mandb --create' after
	installing the new version to rebuild your databases from scratch.
	(Distribution packages should do this automatically for system
	databases.)

	Fixes:
	------

	* lexgrog now filters terminal escape sequences out of cat pages
	  before trying to parse them.

	* Tools that consider the terminal line length now prioritise the
	  COLUMNS environment variable above the TIOCGWINSZ ioctl.

	* Manpath elements are no longer canonicalised before being inserted
	  into the search path; this caused the use of incorrect catpaths in
	  some cases.  This was broken by the LANGUAGE-handling fixes in
	  2.5.4.

	Improvements:
	-------------

	* Ship a systemd tmpfiles snippet to clean up old cat files after a
	  week.

	* The modification time of manual databases is now simply stored in
	  the mtime of the database files themselves, rather than using a
	  special row.  This makes databases reproducible between
	  otherwise-identical installations, as long as the underlying
	  database has predictable behaviour.  As a bonus, man-db now uses
	  high-precision timestamps to determine whether it needs to update
	  databases.

	* Timestamps of manual pages are also now stored in the database
	  with high precision and compared accordingly.

	* Files are now ordered by first physical extent before reading
	  them, for substantial performance improvements in operations such
	  as mandb and 'man -K'.

	* 'man -H' shows a better error message if no browser is configured.

	* zsoelim is now installed in $pkglibexecdir, to avoid clashes with
	  other packages.

man-db 2.6.7.1 (10 April 2014)
==============================

Major changes since man-db 2.6.7:

	Fixes:
	------

	* Remove test suite dependency on realpath(1).

man-db 2.6.7 (10 April 2014)
============================

Major changes since man-db 2.6.6:

	Fixes:
	------

	* Fix a test failure when configured with --enable-undoc.

	* Run the pager in man's original working directory rather than in
	  the manual hierarchy.  (As a result of this fix, man-db now
	  requires libpipeline >= 1.3.0.)

	* mandb only creates a cache directory tag if the catpath is
	  different from the manpath, since it should only be created in
	  directories that consist entirely of cached information.

man-db 2.6.6 (23 January 2014)
==============================

Major changes since man-db 2.6.5:

	man-db is now revision-controlled using git (https://git-scm.com/).
	See docs/HACKING for the location of the repository.

	Fixes:
	------

	* apropos's --and option now works again; it was broken by the
	  optimisations in 2.6.2.

	* Restore compatibility with Automake 1.10.

	* Improve support for translation of common elements of help
	  messages.

	* Don't issue error messages when the database refers to a page that
	  no longer exists.

	* Pass macro and hyphenation language tags to groff again (broken in
	  2.6.5).

	Improvements:
	-------------

	* ./configure --with-override-dir=OVERRIDE arranges to look for
	  manual pages in DIR/OVERRIDE before each path element DIR.

man-db 2.6.5 (27 June 2013)
===========================

Major changes since man-db 2.6.4:

	Fixes:
	------

	* man's --warnings option works again on systems with versions of
	  groff that support it (broken in 2.6.4).

	* man automatically falls back to C.UTF-8 and then en_US.UTF-8 if
	  trying to find a UTF-8 locale on a system without
	  /usr/share/i18n/SUPPORTED.

man-db 2.6.4 (23 June 2013)
===========================

Major changes since man-db 2.6.3:

	Fixes:
	------

	* man(1) and catman(8) now document the default section list set at
	  configure time.

	* Build fixes for Automake 1.13.

	* man-db 2.6.0 arranged to search the full manpath when expanding
	  .so directives in manual pages (so that ".so name.1" works as well
	  as ".so man1/name.1"), but this incorrectly did not take effect
	  for manual pages that consist only of a .so directive.  This is
	  now fixed.

	Improvements:
	-------------

	* The MANLESS environment variable is now treated as if it were a
	  default value for the -r option to man: occurrences of the text
	  "$MAN_PN" are expanded, and explicitly using the -r option
	  overrides the default.

	* The (unfortunately still hardcoded) maximum length for paths to
	  manual page hierarchies in the configuration file is now 511
	  characters rather than 49.

	* MANPATH entries now undergo glob(7)-style wildcard expansion,
	  allowing entries such as "/opt/*/man".

man-db 2.6.3 (17 September 2012)
================================

Major changes since man-db 2.6.2:

	Fixes:
	------

	* Build fixes for glibc 2.16 and Automake 1.12.

man-db 2.6.2 (18 June 2012)
===========================

Major changes since man-db 2.6.1:

	Fixes:
	------

	* apropos prints an error message and returns non-zero when it finds
	  no matches.  (Regression introduced in 2.5.1.)

	* The presence of a 64-bit GDBM database on the manpath no longer
	  causes a 32-bit man process to exit with a fatal error.

	Improvements:
	-------------

	* apropos is much faster when run with many arguments.

	* whatis may be given the full path to an executable as an argument,
	  in which case it will look up the base name of that executable in
	  the appropriate parts of the manpath.

man-db 2.6.1 (14 February 2012)
===============================

Major changes since man-db 2.6.0.2:

	Fixes:
	------

	* --with-db=db* and --with-db=ndbm compile again.

	* Translated manual pages are no longer displayed starting with a
	  spurious blank line.

	* straycats tries to ensure that col is invoked with LC_CTYPE set to
	  a UTF-8 locale.

	* Fix double-free in mandb when encountering a symlink outside the
	  manual hierarchy, thanks to Peter Schiffer.

	Improvements:
	-------------

	* mandb creates a cache directory tag, per
	  http://www.brynosaurus.com/cachedir/ ("Cache Directory Tagging
	  Standard").

	* Add support for Lzip-compressed manual pages, thanks to Matias A.
	  Fonzo.

	* Running 'man -w' (with a new --path alias) without a name now
	  prints the manpath, for compatibility with other man
	  implementations.  The vim viewdoc plugin makes use of this.

man-db 2.6.0.2 (13 April 2011)
==============================

Major changes since man-db 2.6.0.1:

	Fixes:
	------

	* Fix a segfault when scanning links to empty pages.

	* Once we've seen at least one record in a page's NAME section,
	  ignore any further records that don't include a whatis
	  description, as they tend to be noise.

man-db 2.6.0.1 (10 April 2011)
==============================

Major changes since man-db 2.6.0:

	Fixes:
	------

	* Ensure that the target of a symlink or .so chain is always recorded
	  as a real page.

	* Read a user-specified configuration file even if HOME is unset.

man-db 2.6.0 (9 April 2011)
===========================

Major changes since man-db 2.5.9:

	Fixes:
	------

	* Fix build with versions of GNU ld that default to
	  --no-copy-dt-needed-entries.

	* Fix failure to display manual pages in some encodings when
	  installed setuid.

	* Wrap long table cells in man(1), fixing test failures with groff
	  1.21.

	* If an explicit section is passed to man, then pages that match
	  that section exactly will be preferred over pages that only have
	  that section as a prefix.

	* Fix a segfault when 'man -K' tries to display certain pages.

	* Fix a segfault in some situations when processes are killed by
	  SIGHUP, SIGINT, or SIGTERM.

	Improvements:
	-------------

	* As promised in the release notes for man-db 2.5.8, man-db no
	  longer ships its own copy of libpipeline
	  (http://libpipeline.nongnu.org/).  You must build and install that
	  library separately.

	* Search the full manpath when expanding .so directives in manual
	  pages.  As part of this, '.so name.1' should now work as well as
	  '.so man1/name.1'.

	* lexgrog handles roff named glyphs and perldoc strings in NAME
	  sections.

	* man no longer starts a pager if standard output is not a tty.

	* The -s option to whatis and apropos now takes a colon- or
	  comma-separated list of sections, similar to 'man -S'.

	* mandb error output is neater when stderr is not a terminal.

	* Add basic support for the implementation of nroff/troff in the
	  Heirloom Documentation Tools.  Title lengths are not properly set
	  as yet, and many features are untested.

	* mandb removes cat* and NLS subdirectories of cat directories whose
	  corresponding man directories no longer exist.

	* mandb forces SIGPIPE back to its default disposition on startup,
	  to avoid noisy output in case it was started in a context where
	  SIGPIPE was ignored.

	* SECTION entries in a user configuration file now override those in
	  the system configuration file, rather than appending to them.

	* The default less prompt now includes "(press h for help or q to
	  quit)" to help novices find their way around.

	* man-db may now be built to use Berkeley DB version 5
	  (--with-db=db5).

man-db 2.5.9 (17 November 2010)
===============================

Major changes since man-db 2.5.8:

	Fixes:
	------

	* Fix test failures on some systems.  A change made in 2.5.8 was
	  overly sensitive to directory ordering.

	* Configuring with --disable-nls works again.

man-db 2.5.8 (15 November 2010)
===============================

Major changes since man-db 2.5.7:

	Fixes:
	------

	* Fix assertion failure on 'man -l' with an uncompressed page and
	  any of --no-hyphenation, --no-justification, or a non-English
	  page.

	* 2.5.7 introduced a regression when running catman in some locales,
	  most notably in the C locale: while converting the output to
	  UTF-8, iconv was run after the compressor rather than before it.
	  This release fixes that.

	Improvements:
	-------------

	* Add support for XZ-compressed manual pages, thanks to Darren Salt.

	* Try underscore-separated subpages as well as hyphen-separated
	  ones, thanks to Tanguy Ortolo.

	* Build libman and libmandb as shared libraries, reducing installed
	  footprint by about 200K (at least on GNU/Linux).

	* libintl is no longer shipped with man-db.  If your system does not
	  already have GNU libintl installed and you want man-db's messages
	  to be translated, then please install GNU libintl separately
	  (https://www.gnu.org/software/gettext/).

	* Warnings about unrecognised locales are now suppressed if the
	  DPKG_RUNNING_VERSION environment variable is set (i.e. man-db is
	  running within a Debian package's maintainer script), since the
	  system locales are often out of sync with the C library in that
	  context.  Thanks to the Debian Perl maintainers for the idea.

	* Allow building with an external libpipeline
	  (http://libpipeline.nongnu.org/), which has been split out from
	  man-db.  This is a transitional measure: a future version of
	  man-db will stop shipping its own copy of libpipeline.

	* mandb should no longer repeatedly rescan manual page hierarchies
	  when a whatis entry turns into a broken link.

man-db 2.5.7 (16 February 2010)
===============================

Major changes since man-db 2.5.6:

	Fixes:
	------

	* If a subprocess exits before man manages to read all the output
	  from it, it now drains the output file descriptor rather than
	  immediately discarding it.

	* If /usr/share/i18n/SUPPORTED is available, man attempts to use it
	  to ensure that LC_CTYPE is set to an appropriate locale for the
	  selected character set when invoking col. This fixes 'LANG=C man
	  -E UTF-8', as used by lintian.

	* Don't run tests if cross-compiling.

	* Fix possible mandb crash when MAN_MUST_CREATE is unset.

	Improvements:
	-------------

	* man can now tell nroff to disable justification if the
	  --no-justification option is used.

	* If the full path to an executable is given as an argument, man
	  will try looking up the corresponding manual page in the
	  appropriate part of the manpath, rather than just trying to format
	  the text of the executable as a manual page.

	* In the GNU manual hierarchy layout, search man<sec><ext>
	  directories as well as just man<sec> (e.g. /usr/share/man/man3p as
	  well as /usr/share/man/man3).

	* By request, man now prefers getting a page from the best manual
	  section over getting a page in the correct language.

	* All programs now support a MAN_DEBUG environment variable which
	  can be used in place of the -d/--debug option. This is useful in
	  some situations where a program is being called deep in a process
	  tree.

	* man-db now builds with heirloom-doctools, thanks to Diego Pettenò
	  of Gentoo.

	* Add support for emulating pipe() with socketpair(), which is
	  faster on some systems; thanks to Werner Fink of SUSE.

	* Cat pages are now always saved in UTF-8, and converted to the
	  proper encoding at display time, which means that cat pages can
	  now be saved regardless of locale. Note that a consequence of this
	  is that cat pages now include formatting information (e.g.
	  overstriking) and need to be run through col(1) before display.

man-db 2.5.6 (26 August 2009)
=============================

Major changes since man-db 2.5.5:

	Fixes:
	------

	* Exact-section database lookups were incorrectly returning all
	  database entries whose section names were prefixes of the
	  requested section name. In some cases this could confuse mandb
	  into never believing that the database was up to date.

	* Fix handling of pages with comma-separated names ("foo, bar,
	  baz") in their NAME sections, broken by a change in 2.5.0 (!)
	  to ignore manual page names containing spaces.

	* Fixed a buffer overflow in the pipeline library's line-reading
	  functions. I don't believe this to be exploitable: at worst we
	  might believe that there's some garbage at the end of manual pages
	  (whose contents are untrusted anyway) and this bug typically
	  resulted in a failed assertion the next time anything tried to
	  read a line.

	* Plugged two substantial memory leaks in the pipeline library.

	* whatis and apropos only display any given manual page, or pointers
	  to it, once.

	* man now sets less(1)'s environment up correctly for manual pages
	  encoded in CP1251.

	* manconv no longer confuses situations such as "this UTF-8
	  character is not representable in the target encoding" with "this
	  text is not in UTF-8".

	Improvements:
	-------------

	* The default configuration file now includes section 0, used on
	  some systems to document C library header files.

	* 'make check' now passes in the presence of a UTF-8-aware col, such
	  as that in util-linux-ng.

	* The 'man -K' option is now supported to search the full text of
	  all manual pages. This was inspired by a similar option in the
	  other man package (currently at version 1.6f) currently maintained
	  by Federico Lucifredi and formerly by Andries Brouwer, but I took
	  advantage of man-db's pipeline library to implement it entirely
	  in-process, without having to start a separate grep process for
	  every manual page. In my tests with fairly typical searches across
	  variously all manual pages or just one section, man-db's
	  implementation ran between 3 and 10 times faster.

	* Database directories are now only created when there are
	  corresponding manual page directories, not just because they're
	  mentioned in the configuration file.

	* By default, man will now try to interpret pairs of manual page
	  names given on the command line as equivalent to a single manual
	  page name containing a hyphen (e.g. 'man foo bar' => foo-bar(1)).
	  This supports the common pattern of programs that implement a
	  number of subcommands, allowing them to provide manual pages for
	  each that can be accessed using similar syntax as would be used to
	  invoke the subcommands themselves. Suggested by H. Peter Anvin,
	  Federico Lucifredi, and others on the git mailing list.

	* The build process is now quieter by default. Use './configure
	  --disable-silent-rules' or 'make V=0' if you don't like this or
	  your make(1) doesn't support the non-standard extension required.

	* 'make install' now installs the manual.

	* manconv understands a wider range of Emacs-style coding tags.

	* Recommendations to change MAN_DB_CREATES, MAN_DB_UPDATES, and
	  MAN_CATS #define options in manconfig.h have been replaced by new
	  configure options --enable-automatic-create,
	  --disable-automatic-update, and --disable-cats respectively. Note
	  that automatic user database creation is now off by default, as it
	  is often too slow for the usefulness it adds; use
	  --enable-automatic-create to enable it.

man-db 2.5.5 (14 March 2009)
============================

Major changes since man-db 2.5.4:

	Fixes:
	------

	* Pages that declare a non-default encoding in their preprocessor
	  lines are now handled correctly.

	* Fix an uninitialised variable when sorting manual page candidates
	  that could lead to excessive memory allocation and possible
	  crashes.

	Improvements:
	-------------

	* man-db's 'make check' now tests that all its own manual pages
	  format without errors or warnings from groff, to ensure a
	  better-quality release.

man-db 2.5.4 (24 February 2009)
===============================

Major changes since man-db 2.5.3:

	Fixes:
	------

	* Build fixes for systems without GNU Make, and for systems without
	  gettext; this successfully covers at least FreeBSD.

	* The distclean target now works if po4a isn't installed.

	* Exit as soon as possible if database writes return ENOSPC.

	* lexgrog now stops on any unrecognised roff request, rather than
	  continuing and often littering the database with garbage.

	* man no longer requires both standard input and standard output to
	  be terminals in order to use the terminal line length. The line
	  length from standard output is preferred if available.

	* The manpath was built completely wrongly when multiple entries
	  were present in LANGUAGE: duplicates were handled strangely, and
	  languages were effectively iterated in reverse order. It should be
	  rather more sensible now.

	Improvements:
	-------------

	* The MAN_KEEP_STDERR environment variable can now be used to
	  override man's default of discarding stderr when stdout is a
	  terminal.

	* Handling of terminal widths for cat pages is now configurable,
	  using the MINCATWIDTH, MAXCATWIDTH, and CATWIDTH configuration
	  file directives.

	* 'man -a' now detects duplicate manual page candidates more
	  reliably, and sorts them better.

	* Belarusian, Estonian, Greek, Latvian, Lithuanian, Macedonian,
	  Romanian, Slovenian, and Ukrainian pages are now supported.

	* man can now search for pages using regular expressions (with
	  --regex) or shell wildcards (with --wildcard). By default this
	  searches both page names and descriptions, like apropos, but if
	  the --names-only option is used then it searches page names only,
	  like whatis.

	* man can now tell nroff to disable hyphenation if the
	  --no-hyphenation option is used.

	* man-db already searched for manual pages in ../man and man
	  directories relative to each $PATH component; it now searches in
	  ../share/man and share/man directories too.

	* Groff 1.20 was recently released, including the 'preconv'
	  preprocessor. Although man-db has supported preconv to some extent
	  since 2.4.4, man-db's configure now detects its presence and
	  infers that groff supports Unicode input using it; man also now
	  takes slightly better advantage of preconv than before.

	* Per-locale groff macros are now loaded if possible, allowing us to
	  take advantage of such things as localised versions of predefined
	  strings and language-aware hyphenation. This only works with Groff
	  1.20.2 or better (not yet released), since earlier versions did
	  not allow us to suppress warnings in the event that the
	  appropriate macro file is not available.

man-db 2.5.3 (17 November 2008)
===============================

Major changes since man-db 2.5.2:

	Fixes:
	------

	* Cleaned up a number of possible crashes, memory leaks, and missing
	  error checks found by the Coverity Scan project.

	* Fix build if MAN_CATS is undefined.

	* If the LINGUAS environment variable is set while running
	  configure, it now controls building and installation of localised
	  manual pages as well as program translations.

	* The LANGUAGE environment variable is now tokenised properly,
	  rather than only taking the first two characters of each element.

	* Fix build if --disable-nls is used or iconv is not available.

	* man now correctly propagates the exit code of whatis or apropos
	  when called with the -f or -k option respectively.

	Improvements:
	-------------

	* A number of inconsistencies and readability problems with man-db's
	  own manual pages have been cleaned up, thanks mainly to Yuri
	  Kozlov.

	* Reduce the number of warnings emitted when using an unrecognised
	  locale.

	* manconv and zsoelim are now called internally rather than by
	  executing external programs, to improve performance.

	* man-db now uses GDBM (--with-db=gdbm) in preference to Berkeley DB
	  (--with-db=db or --with-db=dbN where N is 1, 2, 3, or 4) by
	  default, since hardware improvements have rendered Berkeley DB's
	  speed advantages negligible for our purposes and the relatively
	  frequent SONAME and on-disk format changes are not worth the
	  hassle. Distributors should note that if they follow this change
	  then they will need to arrange for databases to be rebuilt on
	  upgrade to this version.

	* Manual pages may now be compressed with LZMA (although this is
	  probably only worth it for very large pages).

	* Duplicate manual page hierarchies due to symlinks (e.g. /usr/man
	  -> /usr/share/man) are detected and removed from the search order.

	* A locale modifier (e.g. @latin) in a directory name must now match
	  the locale if the former is set, in addition to the language and
	  territory.

	* Bare .so includes (e.g. ".so foo.1" rather than ".so man1/foo.1")
	  now work, although only within the same manual page hierarchy for
	  now.

man-db 2.5.2 (5 May 2008)
=========================

Major changes since man-db 2.5.1:

	Fixes:
	------

	* 'man -H' (without a browser argument) was completely broken in
	  2.5.1 and is now fixed.

	* man no longer breaks in Japanese locales when using less as a
	  pager.

	Improvements:
	-------------

	* The --encoding option to man can now take a true character
	  encoding rather than a *roff device; the latter was an unreliable,
	  inflexible, and awkward way to select an output encoding. The old
	  semantics are still supported for backward compatibility.

	* Whatis parsing stops at .ie or .if conditionals.

	* CJK locale specifications where the codeset component is
	  equivalent to but not stringwise-identical to UTF-8 (e.g.
	  zh_CN.utf8) are handled better.

	* man(1)'s OPTIONS section is ordered more comprehensibly.

	* apropos, lexgrog, man, mandb, and whatis ignore encoding
	  conversion errors for the last possible encoding of the source
	  page. This helps, for example, with pages including misencoded
	  non-ASCII names of authors; it usually seems better to allow these
	  pages to pass with small errors than to break them entirely.

man-db 2.5.1 (28 January 2008)
==============================

Major changes since man-db 2.5.0:

	Fixes:
	------

	* The manual is now built automatically, avoiding some ordering
	  problems on 'make distclean'.

	* Manual pages are converted to the proper input encoding for troff
	  output as well as nroff output.

	* The -t, -T, -X, and -Z options to man work again; in 2.5.0, they
	  read input from stdin rather than from the manual page.

	* apropos and whatis no longer segfault when given an explicit
	  locale using -L.

	* man now understands that groff's ascii device takes ASCII input,
	  not ISO-8859-1.

	* man no longer discards stderr when writing to a file or a pipe;
	  this was broken by an overenthusiastic change in 2.5.0.

	* manconv now falls back to the next encoding in its list if any
	  characters in an entire 64KB block fail to decode using the
	  current encoding, as was originally intended.

	* manconv is more careful about extracting coding: directives from
	  manual pages.

	* Ctrl-C and Ctrl-\ now work again at the prompt issued by 'man -a'.

	Improvements:
	-------------

	* There is a new --with-sections configure option to change the
	  default value of SECTION in the configuration file.

	* Automake is now used to generate Makefiles. Among other things,
	  this fixes VPATH builds and some bugs in dependency generation,
	  and should allow building with non-GNU versions of make.

	* man-db now uses the Gnulib portability library, allowing the
	  removal of earlier haphazard portability code. While this results
	  in a somewhat larger source distribution, it makes man-db easier
	  to maintain and should make it easier to build on systems to which
	  the maintainer does not have access.

	* In the process of switching to Gnulib, the last vestiges of
	  pre-C89 support have been removed; they were documented to be
	  broken anyway.

	* If the MANROFFOPT environment variable is set, man now appends its
	  value to the *roff command line.

	* man now accepts a --recode option to output a source manual page
	  converted to a specified encoding.

	* For compatibility with System V, man accepts -s as an alias for
	  -S, and permits sections to be comma-separated as well as
	  colon-separated.

	* All programs, except the obsolete 'wrapper', now accept a --debug
	  option. (accessdb, lexgrog, and zsoelim were lacking it.)

	* man now accepts a --warnings option to enable groff warnings.

man-db 2.5.0 (7 October 2007)
=============================

Major changes since man-db 2.4.4:

	Fixes:
	------

	* mandb --quiet now suppresses several more warnings.

	* The output of apropos no longer includes duplicates when multiple
	  search terms are used.

	Improvements:
	-------------

	* Databases are now created for non-English manual hierarchies. All
	  database entries should be encoded in UTF-8; man-db converts from
	  the character set of the manual hierarchy and to the character set
	  specified in the user's locale as necessary.

	* Per-locale directory handling has been improved. Directories such
	  as "fr.UTF-8" may be used for occasions when it is appropriate to
	  specify the character set but not the country, and so a full
	  locale name is inconvenient.

	* There is a new "manconv" program which can try multiple possible
	  encodings for a file, thus allowing UTF-8 manual pages to be
	  installed in any directory even without an explicit encoding
	  declaration.

	* A decompression library is now in place. This allows man-db to use
	  zlib to decompress gzipped files, and allows most of its uses of
	  temporary files to be removed. The only remaining exceptions are
	  cat file creation (which uses a temporary file in the cat tree
	  rather than in /tmp) and viewing HTML manual pages (which uses a
	  temporary directory). Otherwise, man-db should now work fine even
	  with a read-only /tmp during system recovery.

	* Cat pages are now saved in the background while the pager is
	  active, so man will only need to block afterwards if the pager is
	  exited very quickly.

	* --with-* options are now available at configure time for most of
	  the auxiliary program locations that you might want to override.

	* man now supports the MANPAGER environment variable, overriding
	  PAGER.

	* apropos/whatis output is now truncated to the terminal width by
	  default. As with man, this may be overridden using the MANWIDTH
	  environment variable.

	* lexgrog now ignores alleged manual page names containing spaces,
	  as these usually indicate parsing errors or ill-formed NAME
	  sections and they clutter up apropos output badly. I'm only aware
	  of one legitimate counterexample, the Intercal compiler "oo, ick",
	  which no longer appears to be known by that name anyway; let me
	  know if there are any others.

	* man now discards stderr from formatting subprocesses when
	  outputting to a pager, to avoid visual corruption from any error
	  messages.

	* If the MAN_KEEP_FORMATTING environment variable is set to any
	  non-empty value, then man will preserve formatting characters in
	  its output even when standard output is not a terminal. This may
	  be useful for programs such as pinfo that call man and can
	  interpret its formatted output.

	* Setting NOCACHE in the configuration file now prevents man from
	  ever creating cat pages automatically.

	* apropos now accepts the --and option to display only items that
	  match all the supplied keywords.

man-db 2.4.4 (12 February 2007)
===============================

Major changes since man-db 2.4.3:

	man-db is now revision-controlled using bzr
	(https://bazaar.canonical.com/). See docs/HACKING for the location
	of the archive (including all CVS history, imported by Canonical).

	Fixes:
	------

	* SECURITY: Fix a buffer overrun if using -H and the designated web
	  browser (argument to -H or $BROWSER) contains multiple %s
	  expansions. This is CVE-2006-4250.

	* Ignore SIGINT and SIGQUIT while running subprocesses, so that
	  typing Ctrl-C doesn't kill less (broken in 2.4.3).

	* Similarly, ignore SIGPIPE in subprocesses.

	* Various fixes to SIGCHLD handling in pipeline library, preventing
	  "waitpid failed: No child processes" errors.

	* Skip "exec" in configuration file commands (perhaps left over from
	  old installations), which the pipeline execution library cannot
	  handle directly.

	Improvements:
	-------------

	* Add support for Chinese in the --enable-mb-groff case.

	* lexgrog now handles pages with multiple descriptions more
	  usefully, by displaying one description per output line.

man-db 2.4.3 (3 July 2005)
==========================

Major changes since man-db 2.4.2:

	Fixes:
	------

	* Avoid problems creating databases on systems with badly broken
	  clocks set before the Unix epoch.

	* Fix detection of decompression programs, so that man doesn't
	  attempt to execute man pages when it doesn't have a corresponding
	  decompression program.

	Improvements:
	-------------

	* apropos and whatis now accept a --section option to restrict their
	  search to a particular manual section.

	* The pipeline execution library is now used for most calls to
	  external programs, avoiding use of the shell.

	* When stdout is not a terminal, man pages will be formatted in
	  plain text without the use of backspace or ANSI formatting
	  characters.

	* When invoking apropos (man -k) or whatis (man -f) as external
	  programs, man now only passes through command-line options
	  understood by the respective programs.

	* Improve handling of locales with versions and/or modifiers.

	* Add support for Croatian, Galician, Indonesian, Slovak, and
	  Turkish pages.

	* man-db may now be built to use Berkeley DB version 4
	  (--with-db=db4).

	Compatibility notes:
	--------------------

	* Setting the line length of manual pages now requires groff 1.18 or
	  later.

man-db 2.4.2 (20 September 2003)
================================

Major changes since man-db 2.4.1:

	Fixes:
	------

	* SECURITY: Fix a number of buffer overruns in configuration file
	  handling, ultimate source location, and MANPATH processing. This
	  is CVE CAN-2003-0620.

	* SECURITY: Restrict the use of the DEFINE directive in ~/.manpath
	  to code running with dropped privilege. Previously, the
	  'compressor' variable could be used to run arbitrary code with
	  raised privilege. This is CVE CAN-2003-0645.

	* Make sure to initialize mandata structures to zero. The uses of
	  uninitialized memory resulting from this had been leading to
	  random segfaults.

	* Drop privileges in order to be able to read pages in
	  non-world-readable user manpaths while setuid.

	* man can be built with --disable-setuid again.

	* man's locale support has been revamped. The encoding of source
	  manual pages is no longer related to the encoding of the input
	  passed to *roff or to *roff's terminal output device. These
	  frequently differ, especially in UTF-8 locales but in other
	  circumstances as well, and a "just send 8-bit data" approach is no
	  longer adequate. If you are using a version of groff with the
	  Debian multibyte patch applied, pass the --enable-mb-groff option
	  to configure.

	* When using GDBM, accessdb and apropos did not return database
	  entries in sorted order, since GDBM's key traversal interface is
	  not lexicographically ordered. The database layer has been
	  corrected to cope with this.

	* Directories found in strange places in manual hierarchies don't
	  crash mandb.

	Improvements:
	-------------

	* man now calls mandb to update databases rather than doing it
	  itself. This leaves cat pages as the sole remaining reason for man
	  to be setuid.

	* The "undocumented" message is only displayed if a corresponding
	  executable is found on the $PATH.

	* All programs that read ~/.manpath now take a -C option to cause
	  them to read a different user configuration file instead.

	* The --enable-debug option to configure has been removed. man-db's
	  Makefiles now always calculate full dependencies for C files.

	* mandb caches the contents of directories, significantly speeding
	  up the purging of obsolete entries.

	* mandb now knows how to purge database entries corresponding to
	  removed stray cat pages.

	In addition, a pipeline execution library has been written, which
	will make it possible to eliminate all or almost all use of the
	shell in a future release. Unfortunately, time pressures due to the
	security issues above meant that the pipeline library was not well
	enough tested for use in this release, so it is present but unused.
	That will be the first item for 2.4.3.

man-db 2.4.1 (22 December 2002)
===============================

Major changes since man-db 2.4.0:

	The man-db CVS repository has moved from sourceforge.net to
	savannah.nongnu.org.

	Fixes:
	------

	* Don't enter an infinite loop when the SYSTEM environment variable
	  is set.

	* man doesn't segfault when trying to follow a broken symlink.

	* mandb no longer corrupts databases when deleting entries that are
	  part of multi keys.

	* Prevent a possible buffer overflow when encountering large multi
	  keys.

	* Man page names are escaped when globbing, so [(1) can now be found
	  even if the database is not up to date.

	* Correct an access() check that led to 'man -X -l -' producing no
	  output.

	* lexgrog can now cope with man pages containing only a .so link.

	* Manual hierarchies with a specific encoding are put into the
	  search path in the correct order. A bug in $LANGUAGE handling had
	  formerly meant that 'de' would take precedence over 'de_DE.UTF-8'.

	Improvements:
	-------------

	* man's behaviour when searching for page names that begin with a
	  digit has been made more intuitive, as has its treatment of
	  section names that are extensions of ones mentioned in the
	  configuration file but are not themselves explicitly named as
	  sections.

	* The default line length for pages formatted for terminal output
	  has been increased (reducing margin size) to match the default in
	  groff 1.18.

	* Proofread the manual.

	* The -w flag to man has been changed to display the name of only
	  the source nroff file. A -W flag has been introduced which
	  displays the name of the cat file as well. If both flags are given
	  to man, it will behave as before.

	* If bzip2 is installed, pages compressed with bzip2 can now be
	  displayed.

	* Add support for displaying an additional message when no man page
	  is found, which can be used to direct users to a generic
	  "undocumented" page.

	* The manual hierarchy layout will now be guessed where possible if
	  an explicit --enable-mandirs argument is not passed to configure.

man-db 2.4.0 (26 June 2002)
===========================

Major changes since man_db-2.3.20:

	I have changed the package name to man-db, as the underscore was
	awkward.

	Upgrading from version 2.3.x:
	-----------------------------

	The database format has changed slightly, so you will need to run
	'mandb --create' after installing the new version to rebuild your
	databases from scratch. (Distribution packages should do this
	automatically for system databases.)

	Fixes:
	------

	* The GNU nroff test in configure now works when /bin/sh is ash.

	* When scanning pages for NAME sections, lexgrog and mandb no longer
	  accidentally eat the line after each occurrence of the no-op
	  request '.'.

	* 'man --local' drops privileges throughout to avoid problems with
	  non-world-readable home directories.

	* Newly created cat directories are chowned to the man user when
	  running as root.

	* 'man --html' no longer creates its temporary file with raised
	  privileges, so that it now works with a setuid man.

	* man detects preprocessors correctly when setuid.

	* Various segfault fixes: explicitly null-terminate data returned by
	  the Berkeley DB library to avoid some rare crashes; don't reuse a
	  freed pointer in some cases of pages with multiple names; handle
	  MANPATHs containing '::' more safely.

	* Correctly parse manual pages using DOS line-ending conventions.

	* Work around a misfeature in Berkeley DB: it pauses for several
	  seconds if asked to read a zero-length database, on the assumption
	  that somebody is still writing the metadata page. man is generally
	  better off just ignoring the database in this case.

	* Work around corrupted databases in the case where the nextkey
	  pointer chain contains a loop.

	Improvements:
	-------------

	* man looks in the filesystem followed by the database, rather than
	  the other way round. Unix filesystems are quite good databases for
	  this purpose, and the man database is only superior when looking
	  up names that don't have associated links in the filesystem.

	* 'apropos --wildcard --exact' makes sure wildcards match an entire
	  description or page name, unlike 'apropos --wildcard' which may
	  match on word boundaries too.

	* man's page-searching code has been substantially rearranged, and
	  now only starts displaying pages when it has finished searching
	  for candidates. This allows pages to be sorted more sensibly.

	* Manual pages are formatted in UTF-8 if that is the current
	  locale's character set. The -E option is now available to force a
	  particular encoding. Note that some versions of (e.g.) less have
	  problems displaying UTF-8 in conjunction with backspace
	  characters; groff 1.18 should alleviate this by using ANSI colour
	  escapes instead.

	* The less prompt string sets -PM as well as -Pm.

	* Invoking man from within less now sets the correct page title in
	  the inner less.

	* Unless the --match-case option is used, man will search for pages
	  case-insensitively.

	* Update the mechanism for setting the line length so that it also
	  works with groff 1.18.

	* The -R switch is added to the less prompt string, which is needed
	  to display the ANSI colour escapes generated by groff 1.18
	  correctly.

	* The $MANLESS environment variable may be used to override the
	  normal creation of the less prompt string.

	* Translation updates for French, German, and Spanish, and a new
	  Catalan translation. See man/THANKS.

man_db-2.3.20 (7 September 2001)
================================

Major changes since man_db-2.3.19:

	Fixes:
	------

	* A typo in 2.3.19 caused character sets for many languages to be
	  detected incorrectly. This especially affected multibyte
	  languages.

	* Long options in the environment variable LESS are handled
	  correctly.

	* When checking if cat pages need to be updated, check for different
	  timestamps rather than whether the cat page is newer, as otherwise
	  we were confused by tools like tar that preserve timestamps in
	  their archives. Each cat page is now set to have the same mtime as
	  its corresponding man page.

	* Look up the correct character set each time a page is displayed
	  rather than just the first time, in case pages in several
	  different character sets are viewed in a single session.

	* groff requests are no longer assumed to be case-insensitive when
	  scanning for preprocessors, so for example mdoc's .Eq request
	  isn't mistaken for the .EQ which introduces eqn commands.

	* Escape arguments passed to the shell that might contain dangerous
	  characters.

	* Avoid an infinite loop if the LANGUAGE environment variable is set
	  but empty.

	* The --create option to mandb now implies --no-purge.

	* Temporary files are handled with more secure permissions.

	Improvements:
	-------------

	* Use a variant of mkstemp() rather than tempnam(), to avoid classic
	  race conditions. (I don't believe the races were usefully
	  exploitable.)

	* Tolerate whatis entries in a database that point to themselves.

	* Detect more translations of the NAME section.

	* Add examples of man pages written in POD and SGML.

	* lexgrog is now installed in /usr/bin by default, with proper
	  argument parsing, an improved output format, and a man page. It is
	  expected to be used by programs that need to validate man pages.

	* The -H (--html) option to man is now compiled in by default, and
	  supports the BROWSER specification (as documented at
	  http://www.tuxedo.org/~esr/BROWSER/ and amended at
	  https://www.dwheeler.com/browse/secure_browser.html).

man_db-2.3.19 (5 July 2001)
===========================

Major changes since man_db-2.3.18:

	Fixes:
	------

	* The user configuration file ~/.manpath is no longer trusted when
	  deciding whether to drop privileges. In the process, user cat
	  directory handling has been improved.

	* Commands of the form 'man -S "" foo' formerly emptied the list of
	  acceptable sections and then searched the database anyway, and
	  commands of the form 'man -S ::: foo' segfaulted. Both now use the
	  standard list of sections.

	* The HUP and TERM signals are now handled better.

	* straycats processing invokes 'col -bx' rather than 'col-bx'.

	* The root user is now correctly allowed to update databases in
	  system manpaths.

	* apropos and whatis no longer enter infinite recursion if a
	  database contains an entry pointing to itself.

	Improvements:
	-------------

	* When compiled with --enable-setuid, man and mandb can be installed
	  non-setuid. In this mode, they will be unable to write cat pages
	  in system directories or to modify system databases, but will
	  otherwise operate correctly. This allows a single binary package
	  to support setuid and non-setuid modes of operation.

	* The ordering of manual sections is read from SECTION directives in
	  the configuration file rather than being hard-coded.

	* The MANDB_MAP configuration file directive is documented more
	  clearly.

	* Multiple whatis entries separated by commas, break requests,
	  and/or paragraph requests are handled more intelligently.

	* Fill control requests (.nf and .fi) cause lexgrog to assume a
	  break at each newline.

	* Duplicate manpath entries (often generated in the course of
	  national language support) are removed, so that 'man -a' works
	  better.

	* man_db's binaries are installed unstripped by default.

	* Since supporting certain layouts of manual page hierarchies causes
	  problems for others, the layout is now selectable via configure.
	  The default is to try all layouts.

	* man only does an on-the-fly update of the database caches when the
	  --update option is given.

	* Manual pages are displayed with a line length appropriate to the
	  current terminal. If a non-standard line length is used (i.e. the
	  terminal is not between 66 and 80 characters wide) then cat pages
	  will not be saved.

	* mandb tries to purge obsolete entries from its databases. Using
	  the --create flag should now usually only be necessary in cases of
	  database corruption.

man_db-2.3.18 (14 May 2001)
===========================

Major changes since man_db-2.3.11:

	man_db-2.3.18 is an interim release under new maintenance by Colin
	Watson, merging much of the work done by former maintainers (Graeme
	Wilford and Fabrizio Polacco). It incorporates several years of
	changes made in the Debian GNU/Linux distribution's package of
	man_db.

	Here are a few highlights, with the names of the maintainers
	responsible for them. As I am documenting after the fact of other
	people's changes of a few years ago, I have undoubtedly missed a
	number of fixes and improvements; I promise to keep track of these
	as I go along in future.

	Fixes:
	------

	* Multiple security fixes, including better handling of temporary
	  files, a format string vulnerability fix, and more careful
	  dropping of privileges when running setuid. [Fabrizio, Colin]

	* Databases no longer disappear temporarily while they are being
	  regenerated. [Fabrizio]

	* Corrected handling of locale environment variables. Setting
	  several colon-separated locales in $LANGUAGE also works now.
	  [Colin]

	* whatis and apropos are more careful about the possibility of a
	  corrupted database. [Fabrizio, Colin]

	Improvements:
	-------------

	* If root has private manual hierarchies, cat pages generated from
	  them are no longer chowned to a less-privileged user. [Wilf]

	* Rewrote configuration file handling, adding DEFINE directives to
	  set paths to external programs. The configuration file is now
	  called man_db.conf. [Wilf]

	* Support FHS paths (/usr/share/man and /var/cache/man) in
	  preference to FSSTND paths (/usr/man and /var/catman). [Fabrizio]

	* Converted from catgets to GNU gettext for national language
	  support. [Fabrizio, Colin]

	* Several new and improved localized message catalogues and
	  translated man pages. [Fabrizio, Colin, other contributors]

	* Added accessdb utility, which displays the contents of a manual
	  page database. [Fabrizio]

	* Added user configuration file ~/.manpath, with the same syntax as
	  the global configuration file. [Fabrizio]

	* Leading or trailing colons in the MANPATH environment variable
	  cause the manpath derived from configuration files to be prepended
	  or appended respectively. A double colon in the middle of the
	  environment variable causes the configuration file manpath to be
	  inserted between the colons. [Fabrizio]

	* Added experimental -H and -Thtml options to take advantage of
	  groff's new HTML driver. [Fabrizio]

	* lexgrog now scans manual pages to guess which preprocessors are
	  needed. [Fabrizio]

	* Create cat directories on the fly if necessary. [Fabrizio]

	* Supply a wrapper which explicitly drops privileges to uid man if
	  man or mandb is run as root. In the future, splitting out setuid
	  functions into a separate helper process may remove the need for
	  this paranoia. [Fabrizio]

	* Add --test option to mandb, which merely reports errors in manual
	  page hierarchies rather than actually creating or updating a
	  database. [Fabrizio, Colin]

	* Manual pages may now be symlinks outside the mantree. This should
	  pose no significant security concerns, and utilities such as GNU
	  stow create such symlinks. [Colin]

	* Deprecate whatis references for man, and display a warning if
	  displaying a page relies on going through a whatis reference. They
	  often lead to confusingly non-obviously-deterministic behaviour,
	  and guaranteeing that man will honour them even when the database
	  is out of date causes performance problems. [Colin]

man_db-2.3.11 (21 September 1995)
=================================

Major changes since man_db-2.3.10:

	* The man_db manual is bundled in source form.
 
	* Components of $PATH not in the config file were checked for
	  `man' subdirectories.  Now they are also checked for `../man'.
	
	* Untarring a new manual page (with a timestamp older than the
	  relative cat file) over the original did *not* cause man/catman 
	  to reformat the replacement.  This is changed.  As a side effect, 
	  untarring an unchanged man file over the original will also cause 
	  a reformat.

man_db-2.3.10 (13 July 1995)
============================

Major changes since man_db-2.3.5:

	Fixes:
	------

	* Global databases were not owned by setuid owner (if applicable).
	  As a consequence only mandb could update the databases unless
	  man was run by superuser.  Stupid bug.  

	* The keyword passed to apropos _never_ matched the first word
	  of any whatis line.

	* FAVOUR_STRAYCATS code (if enabled), did not work properly.

	* zsoelim did not work as advertised.

	Improvements:
	-------------

	* Man removes its temporary files upon abnormal termination.

	* apropos does proper word matching rather than the fuzzy
	  matching of 2.3.5.  eg. supplying any of the keywords:
	  `ld.so', `a.out', `dynamic', `linker' or `loader' will match 
	  the following entry:

	  ld.so (8)            - a.out dynamic linker/loader
	
	  whereas `a.out' and `loader' used to fail.

	* man/whatis/apropos return with exit code 16 if manual
	  page/file or keyword is not matched.  Previously exit code 0
	  was used making it difficult for callers to know if the lookup 
	  was successful.

	* addition of German message catalogue.

	* `apropos' and `man -k' do POSIX specified regex matching rather 
	  than keyword searches if the environment variable POSIXLY_CORRECT 
	  is defined.

	* added glob-only support of native system manual hierarchies
	  on HP-UX, OSF and Solaris operating systems.  Improved the
	  whatis parsing code to cope with majority of HP-UX manual pages.

	* ported to NeXTstep.

man_db-2.3.5 (21 April 1995)
============================

Major changes since man_db-2.2.1:

	Added support for...
	--------------------
	
	* Non-standard section names i.e. multi-character

	* Compressed manual pages. 
	  A new utility `zsoelim' is included to correctly handle nroff
	  .so requests that point to a file which has been compressed.

	* Compressed stray cats.
	  By definition, stray cats are not re-creatable as they have no
	  relative source manual page. As they may have non-default
	  compression extensions and may reside on read-only media, 
	  stray cats have the same compression support as manual pages.

	* FSSTND proposed `extension' support.
	  Specific package manual pages may be installed in the standard 
	  sections but with a package-unique extension appended as in
	  exit(3tcl) - ../man/man3/exit.3tcl.  Using the command 

		`man -e tcl exit' 

	  would then display an exit manual page with a tcl extension, if
	  available.  Of course, `man 3tcl exit' works as always.

	* FSSTND proposed NLS man subdirectories.
	  Of the form .../man/<locale>/man<sec>/

	* NLS message catalogue hooks.
	  Provision has been made for the programs to emit their messages in
	  a language dependent form.

	* `whatis' referred manual pages.
	  Some manual pages contain relevant information for commands or 
	  programs that would not otherwise reference the page.
	  The `whatis' part of the manual page is used to create virtual
	  links to these pages by all of the names mentioned within it.
	  Examples include names such as `.' and `:' referencing the local
	  shell manual page.

	* Catman utility.
	  Used to pre-format the manual pages into cat pages.

	* Operating systems other than Linux.
	  man_db has been reported to compile on the following platforms:
	  
		Linux, SunOS, Solaris, Ultrix, OSF, HP-UX, AIX, IRIX

          (although portability does not extend to support of native 
	   manual tree structures on some of these systems, eg. HP-UX)

	* Berkeley DB library routines.
	  This compliments the support of both gdbm and ndbm which already
	  existed.  DB databases may be shared across platforms.

	* $MANOPTS environment variable.
	  The environment variable MANOPTS may be set to any string in
	  command line option/argument format.  It is parsed by man(1) prior
	  to its actual command line.

	* Per manual hierarchy cat directory locations.
	  It is possible to redirect your cat pages to other directories or
	  even other file systems. 
	  
	* Per manual hierarchy nroff/[tg]roff format scripts.
	  Ability to create custom formatter scripts that are called by
	  man(1) to enable format/display of non-standard manual pages or 
	  manual pages requiring a special macro package.

	* Extension of `man -l'.
	  Arguments following -l are interpreted as local files requiring
	  format and display.  Extensions are: 

		`man -l -' formats and displays stdin.
		`man -l foo.1.gz' decompresses, formats and displays foo.1.gz.
	
	* Latin1 manual pages/choice of nroff output device.

	* Viewing of ASCII manual pages formatted for a latin1 output device
	  on a 7 bit ASCII terminal (-7).
	  
	* Whatis and apropos utilities support regex and wildcard matching.

	* checkman. 
	  Shell script utility that will find and display duplicated manual
	  pages found across manual page hierarchies.

	* mkcatdirs. 
	  Shell script utility to create appropriate cat directories after
	  installation and setup.

	Conceptual improvements
	-----------------------

	* Replacement of single database with multiple modular db's.
	  Easier integration of additional information into the databases in
	  the future. 

	* Both user and global databases share the same name: 
	  	
		`index.<db-type>' 
	
	  where <db-type> could be `bt', `db' or `pag' and `dir'.

	* Databases contain `whatis' text.
	  Makewhatis and text whatis databases are redundant, although
	  whatis and apropos will use the text whatis database for information 
	  if they cannot read from a relevant index database.

	* straycats handled without need for `placeholders'.

	* Friendly less(1) prompt.
	  If man(1) uses less(1) as its pager (dependent on both static and
	  dynamic factors), the prompt is modified to suit the manual page 
	  being displayed.  The modification performed is also changeable by
	  the user.

	* man_db manual.
	  man_db has a manual that covers the setup, maintenance and use of
	  a generic online manual page system.

	* Modes of operation.
	  The man_db utilities can be compiled with various modes of
	  operation in mind.  Eg. man can be stopped from updating databases 
	  and/or creating cat files in situations where security is extremely 
	  important.  See the man_db manual for details.

	Speed improvements
	------------------

	* Background compression/saving of cat files.
	  Cat files are compressed and saved in the background, whilst the
	  user is able to browse the formatted page directly.

	* Merge of straycats and makewhatis into mandb.
	  While mandb has slowed, it now incorporates makewhatis and straycats 
	  functionality and is much faster as a whole.  2.0a2 used grep/awk, 
	  2.2 used C regex and 2.3 now uses lex sourced C to strip out the 
	  whatis information from the raw man or cat files.

	* Berkeley DB support.
	  Provides lower database initialisation overhead as compared with 
	  gdbm.

	* Extremely fast whatis(1) searches.
	  whatis(1) uses keyed database lookups to retrieve whatis strings
	  for standard (non regex/wildcard) searches.
	
	Fixes
	-----
	
	* Correct handling of $MANSECT.
	  The environment variable MANSECT is no longer ignored.

	* Acknowledgement of $MANPATH order.
	  manpath elements are searched in the order specified.