summaryrefslogtreecommitdiff
path: root/ChangeLog
blob: 40c0b4d9ab54e6bd328ccd09b65e6fcb5130b36a (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
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
2494
2495
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
2545
2546
2547
2548
2549
2550
2551
2552
2553
2554
2555
2556
2557
2558
2559
2560
2561
2562
2563
2564
2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578
2579
2580
2581
2582
2583
2584
2585
2586
2587
2588
2589
2590
2591
2592
2593
2594
2595
2596
2597
2598
2599
2600
2601
2602
2603
2604
2605
2606
2607
2608
2609
2610
2611
2612
2613
2614
2615
2616
2617
2618
2619
2620
2621
2622
2623
2624
2625
2626
2627
2628
2629
2630
2631
2632
2633
2634
2635
2636
2637
2638
2639
2640
2641
2642
2643
2644
2645
2646
2647
2648
2649
2650
2651
2652
2653
2654
2655
2656
2657
2658
2659
2660
2661
2662
2663
2664
2665
2666
2667
2668
2669
2670
2671
2672
2673
2674
2675
2676
2677
2678
2679
2680
2681
2682
2683
2684
2685
2686
2687
2688
2689
2690
2691
2692
2693
2694
2695
2696
2697
2698
2699
2700
2701
2702
2703
2704
2705
2706
2707
2708
2709
2710
2711
2712
2713
2714
2715
2716
2717
2718
2719
2720
2721
2722
2723
2724
2725
2726
2727
2728
2729
2730
2731
2732
2733
2734
2735
2736
2737
2738
2739
2740
2741
2742
2743
2744
2745
2746
2747
2748
2749
2750
2751
2752
2753
2754
2755
2756
2757
2758
2759
2760
2761
2762
2763
2764
2765
2766
2767
2768
2769
2770
2771
2772
2773
2774
2775
2776
2777
2778
2779
2780
2781
2782
2783
2784
2785
2786
2787
2788
2789
2790
2791
2792
2793
2794
2795
2796
2797
2798
2799
2800
2801
2802
2803
2804
2805
2806
2807
2808
2809
2810
2811
2812
2813
2814
2815
2816
2817
2818
2819
2820
2821
2822
2823
2824
2825
2826
2827
2828
2829
2830
2831
2832
2833
2834
2835
2836
2837
2838
2839
2840
2841
2842
2843
2844
2845
2846
2847
2848
2849
2850
2851
2852
2853
2854
2855
2856
2857
2858
2859
2860
2861
2862
2863
2864
2865
2866
2867
2868
2869
2870
2871
2872
2873
2874
2875
2876
2877
2878
2879
2880
2881
2882
2883
2884
2885
2886
2887
2888
2889
2890
2891
2892
2893
2894
2895
2896
2897
2898
2899
2900
2901
2902
2903
2904
2905
2906
2907
2908
2909
2910
2911
2912
2913
2914
2915
2916
2917
2918
2919
2920
2921
2922
2923
2924
2925
2926
2927
2928
2929
2930
2931
2932
2933
2934
2935
2936
2937
2938
2939
2940
2941
2942
2943
2944
2945
2946
2947
2948
2949
2950
2951
2952
2953
2954
2955
2956
2957
2958
2959
2960
2961
2962
2963
2964
2965
2966
2967
2968
2969
2970
2971
2972
2973
2974
2975
2976
2977
2978
2979
2980
2981
2982
2983
2984
2985
2986
2987
2988
2989
2990
2991
2992
2993
2994
2995
2996
2997
2998
2999
3000
3001
3002
3003
3004
3005
3006
3007
3008
3009
3010
3011
3012
3013
3014
3015
3016
3017
3018
3019
3020
3021
3022
3023
3024
3025
3026
3027
3028
3029
3030
3031
3032
3033
3034
3035
3036
3037
3038
3039
3040
3041
3042
3043
3044
3045
3046
3047
3048
3049
3050
3051
3052
3053
3054
3055
3056
3057
3058
3059
3060
3061
3062
3063
3064
3065
3066
3067
3068
3069
3070
3071
3072
3073
3074
3075
3076
3077
3078
3079
3080
3081
3082
3083
3084
3085
3086
3087
3088
3089
3090
3091
3092
3093
3094
3095
3096
3097
3098
3099
3100
3101
3102
3103
3104
3105
3106
3107
3108
3109
3110
3111
3112
3113
3114
3115
3116
3117
3118
3119
3120
3121
3122
3123
3124
3125
3126
3127
3128
3129
3130
3131
3132
3133
3134
3135
3136
3137
3138
3139
3140
3141
3142
3143
3144
3145
3146
3147
3148
3149
3150
3151
3152
3153
3154
3155
3156
3157
3158
3159
3160
3161
3162
3163
3164
3165
3166
3167
3168
3169
3170
3171
3172
3173
3174
3175
3176
3177
3178
3179
3180
3181
3182
3183
3184
3185
3186
3187
3188
3189
3190
3191
3192
3193
3194
3195
3196
3197
3198
3199
3200
3201
3202
3203
3204
3205
3206
3207
3208
3209
3210
3211
3212
3213
3214
3215
3216
3217
3218
3219
3220
3221
3222
3223
3224
3225
3226
3227
3228
3229
3230
3231
3232
3233
3234
3235
3236
3237
3238
3239
3240
3241
3242
3243
3244
3245
3246
3247
3248
3249
3250
3251
3252
3253
3254
3255
3256
3257
3258
3259
3260
3261
3262
3263
3264
3265
3266
3267
3268
3269
3270
3271
3272
3273
3274
3275
3276
3277
3278
3279
3280
3281
3282
3283
3284
3285
3286
3287
3288
3289
3290
3291
3292
3293
3294
3295
3296
3297
3298
3299
3300
3301
3302
3303
3304
3305
3306
3307
3308
3309
3310
3311
3312
3313
3314
3315
3316
3317
3318
3319
3320
3321
3322
3323
3324
3325
3326
3327
3328
3329
3330
3331
3332
3333
3334
3335
3336
3337
3338
3339
3340
3341
3342
3343
3344
3345
3346
3347
3348
3349
3350
3351
3352
3353
3354
3355
3356
3357
3358
3359
3360
3361
3362
3363
3364
3365
3366
3367
3368
3369
3370
3371
3372
3373
3374
3375
3376
3377
3378
3379
3380
3381
3382
3383
3384
3385
3386
3387
3388
3389
3390
3391
3392
3393
3394
3395
3396
3397
3398
3399
3400
3401
3402
3403
3404
3405
3406
3407
3408
3409
3410
3411
3412
3413
3414
3415
3416
3417
3418
3419
3420
3421
3422
3423
3424
3425
3426
3427
3428
3429
3430
3431
3432
3433
3434
3435
3436
3437
3438
3439
3440
3441
3442
3443
3444
3445
3446
3447
3448
3449
3450
3451
3452
3453
3454
3455
3456
3457
3458
3459
3460
3461
3462
3463
3464
3465
3466
3467
3468
3469
3470
3471
3472
3473
3474
3475
3476
3477
3478
3479
3480
3481
3482
3483
3484
3485
3486
3487
3488
3489
3490
3491
3492
3493
3494
3495
3496
3497
3498
3499
3500
3501
3502
3503
3504
3505
3506
3507
3508
3509
3510
3511
3512
3513
3514
3515
3516
3517
3518
3519
3520
3521
3522
3523
3524
3525
3526
3527
3528
3529
3530
3531
3532
3533
3534
3535
3536
3537
3538
3539
3540
3541
3542
3543
3544
3545
3546
3547
3548
3549
3550
3551
3552
3553
3554
3555
3556
3557
3558
3559
3560
3561
3562
3563
3564
3565
3566
3567
3568
3569
3570
3571
3572
3573
3574
3575
3576
3577
3578
3579
3580
3581
3582
3583
3584
3585
3586
3587
3588
3589
3590
3591
3592
3593
3594
3595
3596
3597
3598
3599
3600
3601
3602
3603
3604
3605
3606
3607
3608
3609
3610
3611
3612
3613
3614
3615
3616
3617
3618
3619
3620
3621
3622
3623
3624
3625
3626
3627
3628
3629
3630
3631
3632
3633
3634
3635
3636
3637
3638
3639
3640
3641
3642
3643
3644
3645
3646
3647
3648
3649
3650
3651
3652
3653
3654
3655
3656
3657
3658
3659
3660
3661
3662
3663
3664
3665
3666
3667
3668
3669
3670
3671
3672
3673
3674
3675
3676
3677
3678
3679
3680
3681
3682
3683
3684
3685
3686
3687
3688
3689
3690
3691
3692
3693
3694
3695
3696
3697
3698
3699
3700
3701
3702
3703
3704
3705
3706
3707
3708
3709
3710
3711
3712
3713
3714
3715
3716
3717
3718
3719
3720
3721
3722
3723
3724
3725
3726
3727
3728
3729
3730
3731
3732
3733
3734
3735
3736
3737
3738
3739
3740
3741
3742
3743
3744
3745
3746
3747
3748
3749
3750
3751
3752
3753
3754
3755
3756
3757
3758
3759
3760
3761
3762
3763
3764
3765
3766
3767
3768
3769
3770
3771
3772
3773
3774
3775
3776
3777
3778
3779
3780
3781
3782
3783
3784
3785
3786
3787
3788
3789
3790
3791
3792
3793
3794
3795
3796
3797
3798
3799
3800
3801
3802
3803
3804
3805
3806
3807
3808
3809
3810
3811
3812
3813
3814
3815
3816
3817
3818
3819
3820
3821
3822
3823
3824
3825
3826
3827
3828
3829
3830
3831
3832
3833
3834
3835
3836
3837
3838
3839
3840
3841
3842
3843
3844
3845
3846
3847
3848
3849
3850
3851
3852
3853
3854
3855
3856
3857
3858
3859
3860
3861
3862
3863
3864
3865
3866
3867
3868
3869
3870
3871
3872
3873
3874
3875
3876
3877
3878
3879
3880
3881
3882
3883
3884
3885
3886
3887
3888
3889
3890
3891
3892
3893
3894
3895
3896
3897
3898
3899
3900
3901
3902
3903
3904
3905
3906
3907
3908
3909
3910
3911
3912
3913
3914
3915
3916
3917
3918
3919
3920
3921
3922
3923
3924
3925
3926
3927
3928
3929
3930
3931
3932
3933
3934
3935
3936
3937
3938
3939
3940
3941
3942
3943
3944
3945
3946
3947
3948
3949
3950
3951
3952
3953
3954
3955
3956
3957
3958
3959
3960
3961
3962
3963
3964
3965
3966
3967
3968
3969
3970
3971
3972
3973
3974
3975
3976
3977
3978
3979
3980
3981
3982
3983
3984
3985
3986
3987
3988
3989
3990
3991
3992
3993
3994
3995
3996
3997
3998
3999
4000
4001
4002
4003
4004
4005
4006
4007
4008
4009
4010
4011
4012
4013
4014
4015
4016
4017
4018
4019
4020
4021
4022
4023
4024
4025
4026
4027
4028
4029
4030
4031
4032
4033
4034
4035
4036
4037
4038
4039
4040
4041
4042
4043
4044
4045
4046
4047
4048
4049
4050
4051
4052
4053
4054
4055
4056
4057
4058
4059
4060
4061
4062
4063
4064
4065
4066
4067
4068
4069
4070
4071
4072
4073
4074
4075
4076
4077
4078
4079
4080
4081
4082
4083
4084
4085
4086
4087
4088
4089
4090
4091
4092
4093
4094
4095
4096
4097
4098
4099
4100
4101
4102
4103
4104
4105
4106
4107
4108
4109
4110
4111
4112
4113
4114
4115
4116
4117
4118
4119
4120
4121
4122
4123
4124
4125
4126
4127
4128
4129
4130
4131
4132
4133
4134
4135
4136
4137
4138
4139
4140
4141
4142
4143
4144
4145
4146
4147
4148
4149
4150
4151
4152
4153
4154
4155
4156
4157
4158
4159
4160
4161
4162
4163
4164
4165
4166
4167
4168
4169
4170
4171
4172
4173
4174
4175
4176
4177
4178
4179
4180
4181
4182
4183
4184
4185
4186
4187
4188
4189
4190
4191
4192
4193
4194
4195
4196
4197
4198
4199
4200
4201
4202
4203
4204
4205
4206
4207
4208
4209
4210
4211
4212
4213
4214
4215
4216
4217
4218
4219
4220
4221
4222
4223
4224
4225
4226
4227
4228
4229
4230
4231
4232
4233
4234
4235
4236
4237
4238
4239
4240
4241
4242
4243
4244
4245
4246
4247
4248
4249
4250
4251
4252
4253
4254
4255
4256
4257
4258
4259
4260
4261
4262
4263
4264
4265
4266
4267
4268
4269
4270
4271
4272
4273
4274
4275
4276
4277
4278
4279
4280
4281
4282
4283
4284
4285
4286
4287
4288
4289
4290
4291
4292
4293
4294
4295
4296
4297
4298
4299
4300
4301
4302
4303
4304
4305
4306
4307
4308
4309
4310
4311
4312
4313
4314
4315
4316
4317
4318
4319
4320
4321
4322
4323
4324
4325
4326
4327
4328
4329
4330
4331
4332
4333
4334
4335
4336
4337
4338
4339
4340
4341
4342
4343
4344
4345
4346
4347
4348
4349
4350
4351
4352
4353
4354
4355
4356
4357
4358
4359
4360
4361
4362
4363
4364
4365
4366
4367
4368
4369
4370
4371
4372
4373
4374
4375
4376
4377
4378
4379
4380
4381
4382
4383
4384
4385
4386
4387
4388
4389
4390
4391
4392
4393
4394
4395
4396
4397
4398
4399
4400
4401
4402
4403
4404
4405
4406
4407
4408
4409
4410
4411
4412
4413
4414
4415
4416
4417
4418
4419
4420
4421
4422
4423
4424
4425
4426
4427
4428
4429
4430
4431
4432
4433
4434
4435
4436
4437
4438
4439
4440
4441
4442
4443
4444
4445
4446
4447
4448
4449
4450
4451
4452
4453
4454
4455
4456
4457
4458
4459
4460
4461
4462
4463
4464
4465
4466
4467
4468
4469
4470
4471
4472
4473
4474
4475
4476
4477
4478
4479
4480
4481
4482
4483
4484
4485
4486
4487
4488
4489
4490
4491
4492
4493
4494
4495
4496
4497
4498
4499
4500
4501
4502
4503
4504
4505
4506
4507
4508
4509
4510
4511
4512
4513
4514
4515
4516
4517
4518
4519
4520
4521
4522
4523
4524
4525
4526
4527
4528
4529
4530
4531
4532
4533
4534
4535
4536
4537
4538
4539
4540
4541
4542
4543
4544
4545
4546
4547
4548
4549
4550
4551
4552
4553
4554
4555
4556
4557
4558
4559
4560
4561
4562
4563
4564
4565
4566
4567
4568
4569
4570
4571
4572
4573
4574
4575
4576
4577
4578
4579
4580
4581
4582
4583
4584
4585
4586
4587
4588
4589
4590
4591
4592
4593
4594
4595
4596
4597
4598
4599
4600
4601
4602
4603
4604
4605
4606
4607
4608
4609
4610
4611
4612
4613
4614
4615
4616
4617
4618
4619
4620
4621
4622
4623
4624
4625
4626
4627
4628
4629
4630
4631
4632
4633
4634
4635
4636
4637
4638
4639
4640
4641
4642
4643
4644
4645
4646
4647
4648
4649
4650
4651
4652
4653
4654
4655
4656
4657
4658
4659
4660
4661
4662
4663
4664
4665
4666
4667
4668
4669
4670
4671
4672
4673
4674
4675
4676
4677
4678
4679
4680
4681
4682
4683
4684
4685
4686
4687
4688
4689
4690
4691
4692
4693
4694
4695
4696
4697
4698
4699
4700
4701
4702
4703
4704
4705
4706
4707
4708
4709
4710
4711
4712
4713
4714
4715
4716
4717
4718
4719
4720
4721
4722
4723
4724
4725
4726
4727
4728
4729
4730
4731
4732
4733
4734
4735
4736
4737
4738
4739
4740
4741
4742
4743
4744
4745
4746
4747
4748
4749
4750
4751
4752
4753
4754
4755
4756
4757
4758
4759
4760
4761
4762
4763
4764
4765
4766
4767
4768
4769
4770
4771
4772
4773
4774
4775
4776
4777
4778
4779
4780
4781
4782
4783
4784
4785
4786
4787
4788
4789
4790
4791
4792
4793
4794
4795
4796
4797
4798
4799
4800
4801
4802
4803
4804
4805
4806
4807
4808
4809
4810
4811
4812
4813
4814
4815
4816
4817
4818
4819
4820
4821
4822
4823
4824
4825
4826
4827
4828
4829
4830
4831
4832
4833
4834
4835
4836
4837
4838
4839
4840
4841
4842
4843
4844
4845
4846
4847
4848
4849
4850
4851
4852
4853
4854
4855
4856
4857
4858
4859
4860
4861
4862
4863
4864
4865
4866
4867
4868
4869
4870
4871
4872
4873
4874
4875
4876
4877
4878
4879
4880
4881
4882
4883
4884
4885
4886
4887
4888
4889
4890
4891
4892
4893
4894
4895
4896
4897
4898
4899
4900
4901
4902
4903
4904
4905
4906
4907
4908
4909
4910
4911
4912
4913
4914
4915
4916
4917
4918
4919
4920
4921
4922
4923
4924
4925
4926
4927
4928
4929
4930
4931
4932
4933
4934
4935
4936
4937
4938
4939
4940
4941
4942
4943
4944
4945
4946
4947
4948
4949
4950
4951
4952
4953
4954
4955
4956
4957
4958
4959
4960
4961
4962
4963
4964
4965
4966
4967
4968
4969
4970
4971
4972
4973
4974
4975
4976
4977
4978
4979
4980
4981
4982
4983
4984
4985
4986
4987
4988
4989
4990
4991
4992
4993
4994
4995
4996
4997
4998
4999
5000
5001
5002
5003
5004
5005
5006
5007
5008
5009
5010
5011
5012
5013
5014
5015
5016
5017
5018
5019
5020
5021
5022
5023
5024
5025
5026
5027
5028
5029
5030
5031
5032
5033
5034
5035
5036
5037
5038
5039
5040
5041
5042
5043
5044
5045
5046
5047
5048
5049
5050
5051
5052
5053
5054
5055
5056
5057
5058
5059
5060
5061
5062
5063
5064
5065
5066
5067
5068
5069
5070
5071
5072
5073
5074
5075
5076
5077
5078
5079
5080
5081
5082
5083
5084
5085
5086
5087
5088
5089
5090
5091
5092
5093
5094
5095
5096
5097
5098
5099
5100
5101
5102
5103
5104
5105
5106
5107
5108
5109
5110
5111
5112
5113
5114
5115
5116
5117
5118
5119
5120
5121
5122
5123
5124
5125
5126
5127
5128
5129
5130
5131
5132
5133
5134
5135
5136
5137
5138
5139
5140
5141
5142
5143
5144
5145
5146
5147
5148
5149
5150
5151
5152
5153
5154
5155
5156
5157
5158
5159
5160
5161
5162
5163
5164
5165
5166
5167
5168
5169
5170
5171
5172
5173
5174
5175
5176
5177
5178
5179
5180
5181
5182
5183
5184
5185
5186
5187
5188
5189
5190
5191
5192
5193
5194
5195
5196
5197
5198
5199
5200
5201
5202
5203
5204
5205
5206
5207
5208
5209
5210
5211
5212
5213
5214
5215
5216
5217
5218
5219
5220
5221
5222
5223
5224
5225
5226
5227
5228
5229
5230
5231
5232
5233
5234
5235
5236
5237
5238
5239
5240
5241
5242
5243
5244
5245
5246
5247
5248
5249
5250
5251
5252
5253
5254
5255
5256
5257
5258
5259
5260
5261
5262
5263
5264
5265
5266
5267
5268
5269
5270
5271
5272
5273
5274
5275
5276
5277
5278
5279
5280
5281
5282
5283
5284
5285
5286
5287
5288
5289
5290
5291
5292
5293
5294
5295
5296
5297
5298
5299
5300
5301
5302
5303
5304
5305
5306
5307
5308
5309
5310
5311
5312
5313
5314
5315
5316
5317
5318
5319
5320
5321
5322
5323
5324
5325
5326
5327
5328
5329
5330
5331
5332
5333
5334
5335
5336
5337
5338
5339
5340
5341
5342
5343
5344
5345
5346
5347
5348
5349
5350
5351
5352
5353
5354
5355
5356
5357
5358
5359
5360
5361
5362
5363
5364
5365
5366
5367
5368
5369
5370
5371
5372
5373
5374
5375
5376
5377
5378
5379
5380
5381
5382
5383
5384
5385
5386
5387
5388
5389
5390
5391
5392
5393
5394
5395
5396
5397
5398
5399
5400
5401
5402
5403
5404
5405
5406
5407
5408
5409
5410
5411
5412
5413
5414
5415
5416
5417
5418
5419
5420
5421
5422
5423
5424
5425
5426
5427
5428
5429
5430
5431
5432
5433
5434
5435
5436
5437
5438
5439
5440
5441
5442
5443
5444
5445
5446
5447
5448
5449
5450
5451
5452
5453
5454
5455
5456
5457
5458
5459
5460
5461
5462
5463
5464
5465
5466
5467
5468
5469
5470
5471
5472
5473
5474
5475
5476
5477
5478
5479
5480
5481
5482
5483
5484
5485
5486
5487
5488
5489
5490
5491
5492
5493
5494
5495
5496
5497
5498
5499
5500
5501
5502
5503
5504
5505
5506
5507
5508
5509
5510
5511
5512
5513
5514
5515
5516
5517
5518
5519
5520
5521
5522
5523
5524
5525
5526
5527
5528
5529
5530
5531
5532
5533
5534
5535
5536
5537
5538
5539
5540
5541
5542
5543
5544
5545
5546
5547
5548
5549
5550
5551
5552
5553
5554
5555
5556
5557
5558
5559
5560
5561
5562
5563
5564
5565
5566
5567
5568
5569
5570
5571
5572
5573
5574
5575
5576
5577
5578
5579
5580
5581
5582
5583
5584
5585
5586
5587
5588
5589
5590
5591
5592
5593
5594
5595
5596
5597
5598
5599
5600
5601
5602
5603
5604
5605
5606
5607
5608
5609
5610
5611
5612
5613
5614
5615
5616
5617
5618
5619
5620
5621
5622
5623
5624
5625
5626
5627
5628
5629
5630
5631
5632
5633
5634
5635
5636
5637
5638
5639
5640
5641
5642
5643
5644
5645
5646
5647
5648
5649
5650
5651
5652
5653
5654
5655
5656
5657
5658
5659
5660
5661
5662
5663
5664
5665
5666
5667
5668
5669
5670
5671
5672
5673
5674
5675
5676
5677
5678
5679
5680
5681
5682
5683
5684
5685
5686
5687
5688
5689
5690
5691
5692
5693
5694
5695
5696
5697
5698
5699
5700
5701
5702
5703
5704
5705
5706
5707
5708
5709
5710
5711
5712
5713
5714
5715
5716
5717
5718
5719
5720
5721
5722
5723
5724
5725
5726
5727
5728
5729
5730
5731
5732
5733
5734
5735
5736
5737
5738
5739
5740
5741
5742
5743
5744
5745
5746
5747
5748
5749
5750
5751
5752
5753
5754
5755
5756
5757
5758
5759
5760
5761
5762
5763
5764
5765
5766
5767
5768
5769
5770
5771
5772
5773
5774
5775
5776
5777
5778
5779
5780
5781
5782
5783
5784
5785
5786
5787
5788
5789
5790
5791
5792
5793
5794
5795
5796
5797
5798
5799
5800
5801
5802
5803
5804
5805
5806
5807
5808
5809
5810
5811
5812
5813
5814
5815
5816
5817
5818
5819
5820
5821
5822
5823
5824
5825
5826
5827
5828
5829
5830
5831
5832
5833
5834
5835
5836
5837
5838
5839
5840
5841
5842
5843
5844
5845
5846
5847
5848
5849
5850
5851
5852
5853
5854
5855
5856
5857
5858
5859
5860
5861
5862
5863
5864
5865
5866
5867
5868
5869
5870
5871
5872
5873
5874
5875
5876
5877
5878
5879
5880
5881
5882
5883
5884
5885
5886
5887
5888
5889
5890
5891
5892
5893
5894
5895
5896
5897
5898
5899
5900
5901
5902
5903
5904
5905
5906
5907
5908
5909
5910
5911
5912
5913
5914
5915
5916
5917
5918
5919
5920
5921
5922
5923
5924
5925
5926
5927
5928
5929
5930
5931
5932
5933
5934
5935
5936
5937
5938
5939
5940
5941
5942
5943
5944
5945
5946
5947
5948
5949
5950
5951
5952
5953
5954
5955
5956
5957
5958
5959
5960
5961
5962
5963
5964
5965
5966
5967
5968
5969
5970
5971
5972
5973
5974
5975
5976
5977
5978
5979
5980
5981
5982
5983
5984
5985
5986
5987
5988
5989
5990
5991
5992
5993
5994
5995
5996
5997
5998
5999
6000
6001
6002
6003
6004
6005
6006
6007
6008
6009
6010
6011
6012
6013
6014
6015
6016
6017
6018
6019
6020
6021
6022
6023
6024
6025
6026
6027
6028
6029
6030
6031
6032
6033
6034
6035
6036
6037
6038
6039
6040
6041
6042
6043
6044
6045
6046
6047
6048
6049
6050
6051
6052
6053
6054
6055
6056
6057
6058
6059
6060
6061
6062
6063
6064
6065
6066
6067
6068
6069
6070
6071
6072
6073
6074
6075
6076
6077
6078
6079
6080
6081
6082
6083
6084
6085
6086
6087
6088
6089
6090
6091
6092
6093
6094
6095
6096
6097
6098
6099
6100
6101
6102
6103
6104
6105
6106
6107
6108
6109
6110
6111
6112
6113
6114
6115
6116
6117
6118
6119
6120
6121
6122
6123
6124
6125
6126
6127
6128
6129
6130
6131
6132
6133
6134
6135
6136
6137
6138
6139
6140
6141
6142
6143
6144
6145
6146
6147
6148
6149
6150
6151
6152
6153
6154
6155
6156
6157
6158
6159
6160
6161
6162
6163
6164
6165
6166
6167
6168
6169
6170
6171
6172
6173
6174
6175
6176
6177
6178
6179
6180
6181
6182
6183
6184
6185
6186
6187
6188
6189
6190
6191
6192
6193
6194
6195
6196
6197
6198
6199
6200
6201
6202
6203
6204
6205
6206
6207
6208
6209
6210
6211
6212
6213
6214
6215
6216
6217
6218
6219
6220
6221
6222
6223
6224
6225
6226
6227
6228
6229
6230
6231
6232
6233
6234
6235
6236
6237
6238
6239
6240
6241
6242
6243
6244
6245
6246
6247
6248
6249
6250
6251
6252
6253
6254
6255
6256
6257
6258
6259
6260
6261
6262
6263
6264
6265
6266
6267
6268
6269
6270
6271
6272
6273
6274
6275
6276
6277
6278
6279
6280
6281
6282
6283
6284
6285
6286
6287
6288
6289
6290
6291
6292
6293
6294
6295
6296
6297
6298
6299
2017-03-28  Werner Koch  <wk@gnupg.org>

	Release 1.9.0.
	+ commit aa0390ec3b910bbbc323a15ec3c3351e77785a9a
	* configure.ac <c>: Bump LT version to C29/A18/R0.
	<cpp>: Bump LT version to C10/A4/R0.
	<qt>: Bump LT version to C9/A2/R0.

	core: Prepare for new key listing data send by gpg.
	+ commit 813ae5fa2d712aa9679b791c67c9c1c43d36ffe4
	* src/gpgme.h.in (gpgme_user_id_t): New fields 'origin' and
	'last_update'.
	(gpgme_key_t): New fields 'origin' and 'last_update'.
	* src/conversion.c (_gpgme_parse_timestamp_ul): New.
	* src/keylist.c (keylist_colon_handler): Parse fields 19 and 20.

	* tests/run-keylist.c (main): Print new fields.

2017-03-27  Andre Heinecke  <aheinecke@intevation.de>

	qt: Disable testEncryptDecryptNowrap.
	+ commit 57d60b20f16dd5f1bccbbcaa0a6ed75a554a6414
	* lang/qt/tests/t-encrypt.cpp (EncryptTest::testEncryptDecryptNowrap):
	Disable test.

2017-03-27  Justus Winter  <justus@g10code.com>

	python: Skip tests if running with GnuPG < 2.1.12.
	+ commit 348da58fe0c3656e6177c98fef6b4c4331326c8e
	* lang/python/tests/support.py (assert_gpg_version): Fix error
	message.  Skip all tests when we use GnuPG older than 2.1.12.

2017-03-24  Andre Heinecke  <aheinecke@intevation.de>

	cpp: Respect decrypt flags in new functions.
	+ commit 18b7906078cf08962c54c1e711cf2d91a24fd4e5
	* lang/cpp/src/context.cpp: Respect directly provided flags
	in the new decrypt functions.

	qt: Add unittest for decrypt unwrap.
	+ commit 5493164f8665fabf795f3b34a7084770a38ae940
	* lang/qt/tests/t-encrypt.cpp
	(EncryptTest::testEncryptDecryptNowrap): New.

	cpp: Use gpgme_op_decrypt_ex and add new flags.
	+ commit 8ad37ecc297f208d0a63783c1ffae33ad4c3c81a
	* lang/cpp/src/context.cpp: New decrypt and decryptVerify functions
	that take flags as arguments. Use new variants in old functions.
	(Context::setDecryptionFlags): New helper.
	(Context::Private::Private): Initialize new member.
	* lang/cpp/src/context_p.h (Context::Private::decryptFlags): New.
	* lang/cpp/src/context.h (Context::DecryptFlags): New enum.
	(Context::EncryptionFlags): Extend for EncryptWrap.

2017-03-24  Werner Koch  <wk@gnupg.org>

	core: New flags GPGME_DECRYPT_UNWRAP and GPGME_ENCRYPT_WRAP.
	+ commit 6ac1f2cdedb085b4ac9372c1e591497e2e618de4
	* src/gpgme.h.in (GPGME_ENCRYPT_WRAP): New const.
	(gpgme_decrypt_flags_t): New enum.
	(GPGME_DECRYPT_VERIFY): New const
	(GPGME_DECRYPT_UNWRAP): New const
	(gpgme_op_decrypt_ext_start): New func.
	(gpgme_op_decrypt_ext): New func.
	* src/decrypt-verify.c (gpgme_op_decrypt_ext_start): New.
	(gpgme_op_decrypt_ext): New.
	(decrypt_verify_start): Add arg FLAGS.  Replace call to
	engine_op_decrypt_verify by the plain decrypt with the flag set.
	(gpgme_op_decrypt_verify_start): Pass the flag.
	(gpgme_op_decrypt_verify): Pass the flag.
	* src/decrypt.c (decrypt_start): Rename to ...
	(_gpgme_decrypt_start): this.  Add arg FLAGS.  Pass FLAGS to
	engine_op_decrypt.
	(gpgme_op_decrypt_start): Adjust for chnage pass 0 for FLAG.
	(gpgme_op_decrypt_start): Ditto.
	* src/engine.c (_gpgme_engine_op_decrypt_verify): Remove.
	(_gpgme_engine_op_decrypt): Add arg FLAGS.
	* src/gpgme.def, src/libgpgme.vers: Add new functions.
	* src/engine-backend.h (struct engine_ops): Remove member
	'decrypt_verify'.  Add FLAGS to 'decrypt'.  Adjust all initialization.
	* src/engine-uiserver.c (uiserver_decrypt): Remove.
	(uiserver_decrypt_verify): Remove.
	(_uiserver_decrypt): Rename to ...
	(uiserver_decrypt): this.  Replace arg VERIFY by new arg FLAGS.
	* src/engine-gpg.c (gpg_decrypt): Support GPGME_DECRYPT_UNWRAP.
	(gpg_encrypt): Support GPGME_ENCRYPT_WRAP.

	* tests/run-decrypt.c (main): New option --unwrap.
	* tests/run-encrypt.c (main): New option --wrap.

2017-03-22  Andre Heinecke  <aheinecke@intevation.de>

	qt: Add test for Data::toKeys.
	+ commit 66c334650bd64fdb72c4bd5975e25b8659d320ec
	* lang/qt/tests/t-various.cpp (TestVarious::testKeyFromFile): New.

	cpp: Wrap keylist_from_data.
	+ commit 8ddb42ada46f00d8393f6c2df7d6b79a4a5878f0
	* lang/cpp/data.h, lang/cpp/data.cpp (GpgME::Data::toKeys): New.

	qt: Initialize library first in tests.
	+ commit 121873b821636052c10d9e0bd885eb9013c52096
	* lang/qt/tests/t-support.cpp (QGpgMETest::initTestCase): Initialize
	library.

2017-03-22  Justus Winter  <justus@g10code.com>

	python: Improve Python detection.
	+ commit 104635eb503ec764146731888a6975b4329660fd
	* m4/python.m4 (_AM_PYTHON_INTERPRETER_LIST): Prefer the generic
	'pythonX' over 'pythonX.Y'.  This way we select the users preferred
	version for both flavors.  Prefer 'python' over 'python3' but not over
	'python2' so that the algorithm still finds a 'python2' even if
	'python' is a Python3.

2017-03-21  Werner Koch  <wk@gnupg.org>

	core: New API gpgme_op_set_uid_flag.
	+ commit 421ddd1e6706046c5062417fd69a87e10c9fc0a9
	* src/gpgme.h.in (gpgme_op_set_uid_flag_start): New.
	(gpgme_op_set_uid_flag_start): New.
	* src/gpgme.def, src/libgpgme.vers: Add them.
	* src/genkey.c (addrevuid_start): Change arg revoke to a flag.
	(gpgme_op_revuid_start): Pass GENKEY_EXTRAFLAG_REVOKE for the fomer
	revoke parameter.
	(gpgme_op_revuid): Ditto.
	(set_uid_flag): New.
	(gpgme_op_set_uid_flag_start): New.
	(gpgme_op_set_uid_flag): New.
	* src/engine.h (GENKEY_EXTRAFLAG_SETPRIMARY): new.
	* src/engine-gpg.c (gpg_adduid): Implement that flag.

	* tests/run-genkey.c (main): New command --set-primary.

2017-03-21  Justus Winter  <justus@g10code.com>

	python: Wrap 'gpgme_op_keylist_from_data_start'.
	+ commit f3e8d8a4518de2768692e0b392262d0da6d0fd84
	* NEWS: Update.
	* lang/python/gpg/core.py (Context.keylist): New keyword argument
	'source'.  If given, list keys from 'source'.
	* lang/python/gpgme.i: Wrap the argument to
	'gpgme_op_keylist_from_data_start'.
	* lang/python/tests/Makefile.am (py_tests): Add new test.
	* lang/python/tests/support.py (EphemeralContext): Do not throw an
	error if no agent has been started in the context.
	* lang/python/tests/t-keylist-from-data.py: New file.

2017-03-21  Werner Koch  <wk@gnupg.org>

	core: Extend gpgme_get_dirinfo to return the gpg-wks-client name.
	+ commit 55ac5eed9f59081283d34098a9e0ada753d61d59
	* src/dirinfo.c (WANT_GPG_WKS_CLIENT_NAME): New const.
	(struct dirinfo): New field 'gpg_wks_client_name'.
	(get_gpgconf_item): Build it on demand.
	(gpgme_get_dirinfo): New value "gpg-wks-client-name" for WHAT.

	core: New encryption flag GPGME_ENCRYPT_THROW_KEYIDS.
	+ commit fab8b1a166fff7265d8a7a7acbbf5f30d26cc93c
	* src/gpgme.h.in (GPGME_ENCRYPT_THROW_KEYIDS): New flag.
	* src/engine-gpg.c (gpg_encrypt): Implement flag
	(gpg_encrypt_sign): Implement flag.

	* tests/run-encrypt.c (main): New option --throw-keyids.

2017-03-21  Andre Heinecke  <aheinecke@intevation.de>
	    Werner Koch  <wk@gnupg.org>

	core: New public API gpgme_op_keylist_from_data_start.
	+ commit 35023f313622fb1b34108dd934e84831c58b81aa
	* src/gpgme.h.in: New API gpgme_op_keylist_from_data_start.
	* src/libgpgme.vers, src/gpgme.def: Add it.
	* src/keylist.c (gpgme_op_keylist_from_data_start): New.
	* src/engine-backend.h (engine_ops): Add field 'keylist_data'.  Change
	all engines to pass NULL for it.
	* src/engine.c (_gpgme_engine_op_keylist_data): New.
	* src/engine-gpg.c (gpg_keylist_data): New.
	(_gpgme_engine_ops_gpg): Register gpg_keylist_data.

	* tests/run-keylist.c (main): New option --from-file.

2017-03-20  Werner Koch  <wk@gnupg.org>

	core,cpp: New key flag 'is_de_vs'.
	+ commit ea9686ec71a2dd2225ce2b6d6d4038821d36205f
	* src/gpgme.h.in (_gpgme_subkey): New flag is_de_vs.
	* tests/run-keylist.c (main): Print that flag.
	* src/keylist.c (parse_pub_field18): New.
	(keylist_colon_handler): Parse compliance flags.
	* lang/cpp/src/key.cpp (Key::isDeVs): New.
	(Subkey::isDeVs): New.

	* lang/cpp/src/key.h (class Key): New method isDeVs.
	(class Subkey): New method isDeVs.

2017-03-20  Justus Winter  <justus@g10code.com>

	tests: Fix distcheck.
	+ commit 392e51dd1181d035c19918222da65d08fdb2ee6d
	* tests/start-stop-agent: Do not create 'gpg-agent.conf' if it does
	not exist.

	python: Fix version check.
	+ commit 57e64d019d993fdeb4323def5352f8ecc98c6fd9
	* lang/python/tests/support.py (assert_gpg_version): Cope with
	non-released versions.

	tests: Use 'gpg-agent --allow-loopback-pinentry' if applicable.
	+ commit 16b202d9999591b71fb8bb49f6db10ef96d4cbe8
	* lang/python/tests/Makefile.am (gpg-agent.conf): Do not hard-code the
	option.  This breaks gpg-agent from GnuPG 2.0.
	* tests/start-stop-agent: Rather, check if the option is supported and
	add it to the configuration if it is.

	python: Skip tests if GnuPG is too old.
	+ commit e1cf8bab319ba1dea41ba5d711dbb66ffd8e6fd6
	* lang/python/tests/support.py (assert_gpg_version): New function.
	* lang/python/tests/t-callbacks.py: Use the new function to skip the
	test if GnuPG is too old.
	* lang/python/tests/t-edit.py: Likewise.
	* lang/python/tests/t-encrypt-sym.py: Likewise.
	* lang/python/tests/t-quick-key-creation.py: Likewise.
	* lang/python/tests/t-quick-key-manipulation.py: Likewise.
	* lang/python/tests/t-quick-key-signing.py: Likewise.

	python: Remove superfluous initialization.
	+ commit 4572e8d2ac1d3b45e75ce71265c99e591fbf0e28
	* lang/python/tests/support.py (init_gpgme): Remove.  This is an
	remnant from the c tests.  Nowadays, the Python bindings initialize
	GPGME automagically.
	* lang/python/tests/initial.py: Remove call to 'support.init_gpgme'.
	* lang/python/tests/t-callbacks.py: Likewise.
	* lang/python/tests/t-decrypt-verify.py: Likewise.
	* lang/python/tests/t-decrypt.py: Likewise.
	* lang/python/tests/t-edit.py: Likewise.
	* lang/python/tests/t-encrypt-large.py: Likewise.
	* lang/python/tests/t-encrypt-sign.py: Likewise.
	* lang/python/tests/t-encrypt-sym.py: Likewise.
	* lang/python/tests/t-encrypt.py: Likewise.
	* lang/python/tests/t-export.py: Likewise.
	* lang/python/tests/t-file-name.py: Likewise.
	* lang/python/tests/t-idiomatic.py: Likewise.
	* lang/python/tests/t-import.py: Likewise.
	* lang/python/tests/t-keylist.py: Likewise.
	* lang/python/tests/t-sig-notation.py: Likewise.
	* lang/python/tests/t-sign.py: Likewise.
	* lang/python/tests/t-signers.py: Likewise.
	* lang/python/tests/t-trustlist.py: Likewise.
	* lang/python/tests/t-verify.py: Likewise.
	* lang/python/tests/t-wait.py: Likewise.

2017-03-14  Justus Winter  <justus@g10code.com>

	python: Make error message more helpful.
	+ commit 9d6825be092f1590f28b5bab462eeb944d9b800c
	* lang/python/tests/run-tests.py: Make the error message shown when we
	cannot locate the python module in the build tree more helpful.

	python: Make tests more robust.
	+ commit ac4849953860547b06a167ca9612c4de369d02b6
	* lang/python/tests/support.py (TemporaryDirectory): Always use our
	own version even if 'tempfile.TemporaryDirectory' is provided, because
	we need to use 'shutil.rmtree(..., ignore_errors=True)' to avoid it
	tripping over gpg-agent deleting its own sockets.

	python: Improve build system integration.
	+ commit a4201035fdc050f337a6b9f520c8ddbb569e2eb4
	* lang/python/Makefile.am: Use 'set -e' when chaining shell commands
	together in rules.

	build: Improve Python detection.
	+ commit 6a371663886a7ba6073f385a3ab5f5a03de8e008
	* configure.ac: Do not error out too early if we don't find a matching
	Python version.  We handle this case later.

	build: Tune M4 macros for our needs.
	+ commit 5189c08af9468cdeb6f16a6ecd0fee53e1e3aa0e
	* m4/ax_python_devel.m4: Do not emit 'HAVE_PYTHON'.
	* m4/python.m4 (_AM_PYTHON_INTERPRETER_LIST): Add newer Python
	versions, drop older ones.  Also, sort the list with older versions at
	the front, newer and generic versions towards the end.  This makes the
	algorithm pick the lowest version that meets the version requirement.

	build: Add M4 macros for python.
	+ commit 067da472f919e78c95a0a01b68e79a8b7dff173b
	* m4/python.m4: New file.

2017-03-13  Andre Heinecke  <aheinecke@intevation.de>

	qt: Add test for DN parser.
	+ commit 43aa3eed15dcc4f848915ceabeff35c29c1c57e4
	* qt/tests/t-various.cpp (testDN): New.

	qt: Use gpgrt_asprintf instead of qstrdup.
	+ commit 9d5048d47446450a34cae4f27eb81c02ea5d4afc
	* lang/qt/src/dn.cpp (parse_dn_part): Use gpgrt_asprintf instead
	of qstrdup.

2017-03-09  Werner Koch  <wk@gnupg.org>

	core: Fix status error return for gpgsm.
	+ commit d2240a2a1819874929bdab820bcbd3bee7f94407
	* src/engine-gpgsm.c (gpgsm_assuan_simple_command): Make sure CB_ERR
	is returned.
	* src/import.c (parse_import_res): Do not return an error for the last
	field.
	(import_status_handler): Actually return the error from
	parse_import_res.

2017-03-02  Justus Winter  <justus@g10code.com>

	python: Print path of the Python module used during tests.
	+ commit 41398779abbcb1ec2d7491e141469a752fc706ff
	* lang/python/tests/initial.py: Print path of the Python module used
	during tests.  Useful to detect if by any mistake the wrong module is
	picked up.

2017-03-02  Werner Koch  <wk@gnupg.org>

	core: Fix minor code style thing.
	+ commit ef035f079fb067f207e5477d5ed6c5a68fb41f59
	* src/engine-gpg.c (gpg_add_algo_usage_expire): Use double parenthesis
	for bit tests.

2017-03-02  Andre Heinecke  <aheinecke@intevation.de>

	cpp: Add subkey keygrip to API.
	+ commit 8071a6b2ca33c2a46ed1d50ae7283241daaafcd3
	* lang/cpp/src/key.cpp (Subkey::keyGrip): New.
	* lang/cpp/src/key.h: Update accordingly.

2017-03-01  Andre Heinecke  <aheinecke@intevation.de>

	cpp: Add interactor to generate keys on smartcard.
	+ commit d63258066d008de113ed1170f1b0e787a5bdaba1
	* lang/cpp/src/editinteractor.cpp (EditInteractor::needsNoResponse):
	Handle new states.
	* lang/cpp/src/gpggencardkeyinteractor.cpp,
	lang/cpp/src/gpggencardkeyinteractor.h: New.
	* lang/cpp/src/Makefile.am: Update accordingly.

	qt: Allow creation of default keys without name.
	+ commit fbafb5474d8898ba1b267f4b4dfbefe39f04e72f
	* lang/qt/src/defaultkeygenerationjob.cpp
	(DefaultKeyGenerationJob::start): Handle empty name and email.

2017-02-26  Daniel Kahn Gillmor  <dkg@fifthhorseman.net>

	doc: Correct documentation for recp arg of gpgme_op_encrypt_sign_start.
	+ commit 5b49095b89b07591c69827df3973ffabfb3e97b8
	* doc/gpgme.texi (gpgme_op_encrypt_sign_start): recp is an array of
	gpgme_key_t, not a single element.

2017-02-20  Justus Winter  <justus@g10code.com>

	python: Fix test.
	+ commit a7c6353edab57b67180aa127ec77d9353c2366fb
	* lang/python/tests/t-quick-key-manipulation.py: Modify the
	configuration file in the ephemeral home directory, not the one used
	by all the tests.

2017-02-17  Justus Winter  <justus@g10code.com>

	python: Support manipulating the TOFU policy.
	+ commit 15fbac9e72a4d1bff9a3b9e9822f9175b09fbcd5
	* NEWS: Update.
	* doc/gpgme.texi: Fix typos.
	* lang/python/gpg/constants/__init__.py: Import new files.
	* lang/python/gpg/constants/tofu/__init__.py: New file.
	* lang/python/gpg/constants/tofu/policy.py: New file.
	* lang/python/gpg/core.py (Context.key_tofu_policy): New function.
	* lang/python/gpgme.i: Nice reprs for gpgme_tofu_info_t.
	* lang/python/setup.py.in: Install new package.
	* lang/python/tests/t-quick-key-manipulation.py: Extend test.

	python: Support quick key signing.
	+ commit 48634e651fcd02431c0518d42ada1f3b402feb2c
	* NEWS: Update.
	* doc/gpgme.texi (gpgme_op_keysign): Fix the description of the
	'expire' argument.
	* lang/python/gpg/constants/__init__.py: Import new file.
	* lang/python/gpg/constants/keysign.py: New file.
	* lang/python/gpg/core.py (Context.key_sign): New function.
	* lang/python/tests/Makefile.am (py_tests): Add new test.
	* lang/python/tests/t-quick-key-signing.py: New test.

	python: Fix teardown of ephemeral contexts.
	+ commit de8494b16bc50c60a8438f2cae1f8c88e8949f7a
	* lang/python/tests/support.py (EphemeralContext): New function.
	* lang/python/tests/t-quick-key-creation.py: Use the new function to
	manage ephemeral contexts.
	* lang/python/tests/t-quick-key-manipulation.py: Likewise.
	* lang/python/tests/t-quick-subkey-creation.py: Likewise.

	python: Fix using strings as commands in the assuan protocol.
	+ commit 9350168a1eed3f055040d7cc8a9bf4cdf745b23a
	* lang/python/gpg/core.py (Context.assuan_transact): Fix testing
	whether the command is a string on Python2.
	* lang/python/tests/t-protocol-assuan.py: Improve the test to detect
	this problem.

2017-02-16  Justus Winter  <justus@g10code.com>

	python: Support adding and revoking UIDs.
	+ commit 7641b7b5f2c9d5b38c60cd9326bcb4810c37dae5
	* NEWS: Update.
	* lang/python/gpg/core.py (Context.key_add_uid): New function.
	(Context.key_revoke_uid): Likewise.
	* lang/python/tests/Makefile.am (XTESTS): Add new test.
	* lang/python/tests/t-quick-key-manipulation.py: New file.

	python: Support quick subkey creation.
	+ commit 13bace25e3d8422f93fd24919994be36042fd220
	* NEWS: Update.
	* lang/python/gpg/core.py (Context.create_subkey): New function.
	* lang/python/tests/Makefile.am (XTESTS): Add new test.
	* lang/python/tests/t-quick-subkey-creation.py: New file.

	python: Support quick key creation.
	+ commit 476b97822b169c30cc246c1de2ff94cf89084706
	* NEWS: Update.
	* lang/python/gpg/constants/__init__.py: Import new file.
	* lang/python/gpg/constants/create.py: New file.
	* lang/python/gpg/core.py (Context.create_key): New function.
	* lang/python/tests/Makefile.am (XTESTS): Add new test.
	* lang/python/tests/support.py (TemporaryDirectory): New class.
	* lang/python/tests/t-quick-key-creation.py: New file.

	python: Fix passphrase callback wrapping.
	+ commit 3bdce4aa3ddd4a3f55b24678faf978d61daa8909
	* lang/python/helpers.c (pyPassphraseCb): Cope with 'passphrase_info'
	being NULL.

	python: Fix error handling.
	+ commit 048c5f74b61d5e4fa7617ce7c9111c6754bd4409
	* lang/python/gpgme.i (typemap gpgme_key_t[]): Set an error if a
	non-key element is discovered.

2017-02-15  Justus Winter  <justus@g10code.com>

	core: Fix expiration time handling when creating keys.
	+ commit de708e5934cda380dbc3ae51f587c09041de7562
	* NEWS: Update.
	* doc/gpgme.texi (gpgme_op_createkey): Clarify the meaning of the
	'expire' parameter.
	(GPGME_CREATE_NOEXPIRE): Document new flag.
	(gpgme_op_createsubkey): Clarify the meaning of the 'expire'
	parameter.
	* src/engine-gpg.c (gpg_add_algo_usage_expire): Fix handling of the
	expiration time.
	* src/gpgme.h.in (GPGME_CREATE_NOEXPIRE): New macro.

	python: Fix build system integration.
	+ commit 27544d0a74267ab6057dc816ea3311bc9149a200
	* lang/python/Makefile.am (copystamp): Also copy the setup script, and
	link the header files.
	(all-local): Use local setup script.
	(sdist): Fix Python source distribution creation.
	(CLEANFILES): Remove now obsolete files.
	(install-exec-local): Use local setup script.
	* lang/python/setup.py.in: Adjust relative paths to in-tree files.

	python: Update lists of functions returning gpgme_error_t.
	+ commit 25f0435a0022a70af77660d72d33f17bec2d4e51
	* lang/python/gpg/core.py (Context._errorcheck): Add instructions how
	to update the list.  Update list.
	(Data._errorcheck): Likewise.
	(Context.set_engine_info): Simplify.

	core: Fix error types.
	+ commit 6df6e01ed5a581765d245bf7303cda4497d0eb22
	* NEWS: Update.
	* src/data.c (gpgme_data_set_flag): Return a 'gpgme_error_t'.
	* src/error.c (gpgme_strerror_r): Fix type of first argument.
	* src/gpgme.h.in (gpgme_strerror_r): Adapt.
	(gpgme_data_set_flag): Likewise.

2017-02-14  Justus Winter  <justus@g10code.com>

	python: Wrap utility functions.
	+ commit 92adc9bbf640eb5d9177d3ba0189e0f6cee4e995
	* NEWS: Update.
	* lang/python/gpg/core.py (pubkey_algo_string): New function.
	(pubkey_algo_name): Add docstring.
	(hash_algo_name): Likewise.
	(get_protocol_name): Likewise.
	(addrspec_from_uid): New function.
	* lang/python/gpgme.i (gpgme_pubkey_algo_string): Result must be
	freed.
	(gpgme_addrspec_from_uid): Likewise.

	python: Use the correct function to free buffers.
	+ commit 9fc9533c2835ec53c4fd4f822b09e9fec14626d0
	* lang/python/gpgme.i (char *): Free using 'gpgme_free'.

	python: Add keylist mode parameter.
	+ commit fdc4e33dc3f6c84fe9d7bf9795c603ae3cf5f28d
	* NEWS: Update.
	* lang/python/gpg/core.py (Context.keylist): Add 'mode' parameter.

	python: Nicer repr for user ids.
	+ commit e17ab84129045512cf60c221ee43aa877507662f
	* lang/python/gpgme.i (_gpgme_user_id): Provide a nicer repr() for
	user ids.

	python: Add convenience functions for the home directory.
	+ commit 99b7f4f34dd595579181a696ae976a678fe00d49
	* NEWS: Update.
	* lang/python/gpg/core.py (Context.__init__): Add 'home_dir' argument.
	(__repr__): Include 'home_dir'.
	(Context.home_dir): New property.

	qt: Make sure to remove the tofu.db on clean.
	+ commit 30a603580e0f196c721fa4bd44d24077d9bc06c3
	* lang/qt/tests/Makefile.am (CLEANFILES): Add 'tofu.db'.

2017-02-14  Tobias Mueller  <muelli@cryptobitch.de>

	python: Extend SWIG gpgme_{sub,}key with a __repr__ method.
	+ commit 01d5c17587578c729bbbb60f8a65635975e35592
	* lang/python/gpgme.i: Added a genericrepr macro and use it for
	gpgme_key, gpgme_subkey, and gpgme_key_sig.

	python: Remove the -builtin flag for SWIG.
	+ commit aa49be1ab80c200ab6b62d33bf5d0f5aa334fc56
	* lang/python/setup.py.in: Call SWIG without the builtin flag.

	python: Call SWIG_NewPointerObj rather than SWIG_Python_NewPointerObj.
	+ commit d35651917097ae2eee7d52396d53d010bc34df19
	* lang/python/gpgme.i (pygpgme_wrap_gpgme_data_t): Provide a "self"
	variable for SWIG_NewPointerObj and call SWIG_NewPointerObj rather than
	SWIG_Python_NewPointerObj.

	python: Conditionally provide py3 argument to SWIG.
	+ commit d184dbbba8987d9f387feb25791ed891e108dabc
	* lang/python/setup.py.in: Only call with -py3 when we run under python3
	or higher.

2017-02-13  Justus Winter  <justus@g10code.com>

	python: Use one copy of the source tree per Python version.
	+ commit fe65a26ab584bd70fad45c7c4d44330e30a748a4
	* lang/python/Makefile.am (copystamp): Create one copy per Python
	version.
	(all-local): Adapt.
	(clean-local): Likewise.
	(install-exec-local): Likewise.
	* lang/python/tests/run-tests.py: Likewise.

	build: Use macOS' compatibility macros to enable all features.
	+ commit 60273e8b2c11d42215a5707bc55e3e0d8f350e07
	* configure.ac: On macOS, use the compatibility macros to expose every
	feature of the libc.  This is the equivalent of _GNU_SOURCE on GNU
	libc.

	Revert "Disable fd-passing for Apple."
	+ commit f8db658f8b4c3c7941d0029273fb23fbe1ba74ad
	The actual bug has been located, so this can be reverted.

	This reverts commit ef5b4ae37d13142e89a051908dc080cda3d24baa.

2017-02-13  Igor Gnatenko  <ignatenkobrain@fedoraproject.org>

	qt: Add missing #include <functional>
	+ commit 60064c665ec98a2a994fc6c8ad701e60b963ce7e
	* lang/qt/src/qgpgmenewcryptoconfig.cpp,
	lang/qt/src/threadedjobmixin.h: Include functional.

2017-02-07  Andre Heinecke  <aheinecke@intevation.de>

	qt: Don't rely on implicit include in t-verify.
	+ commit 903bf16a416b1bf608b1e647937c9b06864b0141
	* lang/qt/tests/t-various.cpp: Include QTemporaryDir

2017-02-06  Daniel Kahn Gillmor  <dkg@fifthhorseman.net>

	doc: Document that gpgme_op_genkey() parms parameter is not XML.
	+ commit ad22bee5387b1e9a40e8c822a081db3228bb9def
	* doc/gpgme.texi (GnupgKeyParms): document that input format is not
	true XML.

2017-02-03  Werner Koch  <wk@gnupg.org>

	core: Optimize fork/exec for *BSD and Solaris.
	+ commit 51bd69f216a9e2930eeba4b5f6c20e952a381720
	* configure.ac (closefrom): Add to ac_check_funcs.
	* src/posix-io.c (_gpgme_io_spawn): Use closefrom.

	core: Fix possible deadlock due to get_max_fds.
	+ commit 93a59070c699d569d1eac7ba22355fe3f5d10882
	* src/posix-io.c (get_max_fds): Do not use the Linux optimization.

	core: Minor cleanup of commit 195c735.
	+ commit afc308598d1ddaf20d54b4eab30b959066a4e5e6
	* src/verify.c (parse_tofu_user): For cleanness use gpg_error ...
	(_gpgme_verify_status_handler): ... and gpg_err_code.

2017-02-02  Andre Heinecke  <aheinecke@intevation.de>

	qt: Add test for tofu conflict.
	+ commit 43160a39f27f6c3507447620666c85af00b3499c
	* lang/qt/tests/t-tofuinfo.cpp (TofuInfoTest::testTofuConflict): New.

	core: Handle multiple TOFU_USER lines in verify.
	+ commit 195c73589232160f45d00f4901c9bb2b0162f0e5
	* src/verify.c (op_data_t): Add conflict_user_seen.
	(parse_tofu_user): Return ERR_DUP_VALUE for mutltiple TOFU_USERS.
	(_gpgme_verify_status_handler): Handle ERR_DUP_VALUE from
	parse_tofu_user to ignore the next TOFU_STATS.

2017-02-02  Werner Koch  <wk@gnupg.org>

	core: Replace all calls to *sprintf by gpgrt_*sprintf.
	+ commit 15050ce5fce4ed815503db7c029abb38d08970d6
	* configure.ac (vasprintf): Remove check.
	* src/vasprintf.c: Remove file.
	* src/util.h (vasprintf, asprintf): Remove prototypes.  Replace all
	calls to vasprintf and asprintf by gpgrt_vasprintf or gpgrt_asprintf.
	Also take care to use gpgrt_free on the returned value.
	* src/w32-util.c (_gpgme_get_gpgconf_path): Replace a gpgrt_asprintf
	by _gpgme_strconcat.
	(snprintf): New macro to use gpgrt_snprintf instead of the system's
	standard snprintf.

	core: Remove unused check for funopen/fopencookie.
	+ commit 563420a88f8a4f561a2faea4d2b4a1c58b375fd8
	* configure.ac (funopen): Remove check.
	* src/funopen.c: Remove file.

	core: Un-deprecate gpgme_data_rewind.
	+ commit d19bea52afe6efb66a46af6aa4d09928c5d05ee5
	* src/gpgme.h.in (gpgme_data_rewind): Un-deprecate.
	* src/data-compat.c (gpgme_data_rewind): Move to ...
	* src/data.c (gpgme_data_rewind): here.

	core: Move all deprecated stuff to the end of gpgme.h.
	+ commit 9b7d81998b734fabeb4fbc697f08fc7795eaa90a


2017-02-01  Andre Heinecke  <aheinecke@intevation.de>

	core: Cleanup gpgme_key_unref frees.
	+ commit 8ede86795a1d419c01b4910ec2fd1fb18b629452
	* src/key.c (gpgme_key_unref): Nowadays we assume free(NULL) is ok.

	core: Fix leakage of address for mail only uids.
	+ commit b5075030bec9b21bf4e515bc1686df3fa43eced2
	* src/key.c (gpgme_key_unref): Always free address if set.
	(_gpgme_key_append_name): Remove memory optimization for address.

	core: Improve mailbox only uid handling.
	+ commit a28d31fdb623f2ee30e8094d09f1a0d1ae446a9b
	* src/key.c (_gpgme_key_append_name): Set email and remove name
	for uid only keys.

2017-01-31  Justus Winter  <justus@g10code.com>

	qt: Increase timeout when waiting for signals.
	+ commit ba594d85e35e63301755977234d3af88a167a215
	* lang/qt/tests/t-support.h (QSIGNALSPY_TIMEOUT): New macro.
	* lang/qt/tests/t-encrypt.cpp: Use the new macro as timeout when
	waiting for signals.
	* lang/qt/tests/t-keylist.cpp: Likewise.
	* lang/qt/tests/t-keylocate.cpp: Likewise.
	* lang/qt/tests/t-ownertrust.cpp: Likewise.
	* lang/qt/tests/t-wkspublish.cpp: Likewise.

2017-01-31  Werner Koch  <wk@gnupg.org>

	core: Add new context flag "redraw".
	+ commit 752d3597ef02a95efd693373132bf1e246f0edb0
	* src/context.h (struct gpgme_context): New field 'redraw_suggested'.
	* src/op-support.c (_gpgme_op_reset): Clear REDRAW_SUGGESTED.
	* src/progress.c (_gpgme_progress_status_handler): Set REDRAW_SUGGESTED.
	* src/gpgme.c (gpgme_set_ctx_flag, gpgme_get_ctx_flag): Add "redraw".
	* tests/run-sign.c (main): Use it.

2017-01-30  Andre Heinecke  <aheinecke@intevation.de>

	tests: Reduce iterations / threads.
	+ commit 7bd6ab4a91d43d7cbf5d347c0c12e0e4f9f7e3bf
	* tests/gpg/t-gpgconf.c (main): Reduce iterations to 10.
	* tests/gpg/t-thread-keylist-verify.c,
	tests/gpg/t-thread-keylist.c (THREAD_COUNT): Reduce to 10.

2017-01-26  Andre Heinecke  <aheinecke@intevation.de>

	python: Ensure quick-random is used if gpg is gpg2.
	+ commit f3ca2c9ce9fd4a03e293065f10b92589a7e642d6
	* lang/python/tests/Makefile.am (gpg.conf): Configure
	agent-program accordingly.

2017-01-25  Tobias Mueller  <muelli@cryptobitch.de>

	python: default op_keylist_start parameters.
	+ commit 9291ebaa4151a1f6c8c0601095ec45809b963383
	* lang/python/gpgme.i: Added gpgme_op_keylist_start with defaults
	* lang/python/tests/t-keylist.py: Added tests for default parameters

2017-01-25  Andre Heinecke  <aheinecke@intevation.de>

	tests: Use --debug-quick-random for tests.
	+ commit a98951a30a6ae603ffac4ec8c5168aa6d1019933
	* tests/start-stop-agent: Don't autostart agent on --stop and
	running check. Use --debug-quick-random when starting.

2017-01-23  Justus Winter  <justus@g10code.com>

	w32: Fix closing file descriptors.
	+ commit 6f02133bb07726afa6950e5b4685e75621276e60
	* src/w32-io.c (writer): Only stop once the buffer is drained.
	(destroy_writer): Wait for the writers buffer to be drained.  This
	aligns '_gpgme_io_close's behavior with close(2) and fclose(3).

2017-01-17  Andre Heinecke  <aheinecke@intevation.de>

	tests: Add safeguards against nullptr deref.
	+ commit ca69df8c8d3f044340aee2a118cc20d33cd600a1
	* t-gpgconf.c (main): Test some values before dereferencing them.

2017-01-16  Andre Heinecke  <aheinecke@intevation.de>

	qt: Use QVERIFY instead of Q_ASSERT in conf test.
	+ commit abfd241d1a1ae8e30e18b7c5e0658b8c54d89544
	* lang/qt/tests/t-config.cpp: Use QVERIFY instead of Q_ASSERT.

	qt: Add test for CryptoConfig.
	+ commit 8aba08d1d0871f439fb7193adc4a2f43a81ee216
	* lang/qt/tests/t-config.cpp: New.
	* lang/qt/tests/Makefile.am: Update accordingly.

2017-01-16  Justus Winter  <justus@g10code.com>

	tests: Fix distcheck.
	+ commit 92543da94cbf8e807b1b33070d273f995cdd5c62
	* tests/gpg/Makefile.am (CLEANFILES): Remove gpgconf backups.

	Fix changing options with gpgconf.
	+ commit 0e242278dfaa64ce31a45b72f5fa0806a3dba898
	* src/engine-gpgconf.c (gpgconf_write): Connect a pipe to the child's
	stderr, and wait for it to be closed as an indication that gpgconf has
	exited.  Also improve error handling.

2017-01-12  Justus Winter  <justus@g10code.com>

	tests: Improve the gpgconf test.
	+ commit 186dcd3494eda7383de57a530fd15776410531a5
	* tests/gpg/t-gpgconf.c: Include support functions.
	(fail_if_err): Remove macro.
	(init_gpgme): Remove function.
	(lookup): New function.
	(main): Update some values and verify that the changes are applied.
	* tests/gpg/t-support.h (test): New assert-like macro.

2017-01-12  Andre Heinecke  <aheinecke@intevation.de>

	qt: Add support for stringValueList in CryptoConf.
	+ commit 9640dc58e498966b482dcded6990cf4b47c556ac
	* lang/qt/src/Makefile.am (qgpgme_sources): Add cryptoconfig.cpp
	* lang/qt/src/cryptoconfig.cpp: New.
	* lang/qt/src/cryptoconfig.h (CryptoConfigEntry::stringValueList):
	New.
	* lang/qt/src/qgpgmenewcryptoconfig.cpp
	(QGpgMENewCryptoConfigEntry::stringValueList): New.
	* lang/qt/src/qgpgmenewcryptoconfig.h: Update accordingly.

	qt: Don't use qstrdup in test passphrase cb.
	+ commit a09ed3f26a1fab54079c37c49df5c440cc792f78
	* lang/qt/tests/t-support.h (TestPassphraseProvider::getPassphrase):
	Use gpgrt_asprintf instead of strdup.

2017-01-11  Andre Heinecke  <aheinecke@intevation.de>

	qt: Clean up test dirs on failure.
	+ commit 56926c9b5012e8135541a933af1d69c5a81f02b3
	* t-encrypt.cpp,
	t-keylist.cpp,
	t-keylocate.cpp,
	t-ownertrust.cpp,
	t-tofuinfo.cpp,
	t-various.cpp,
	t-verify.cpp,
	t-wkspublish.cpp: Use QVERIFY instead of Q_ASSERT

	qt: Add test for uid functions.
	+ commit 9e643ab67168dfbd189ccc0bfed8fb59253ee79c
	* lang/qt/tests/t-various.cpp: New.
	* lang/qt/tests/Makefile.am: Update accordingly.

	cpp: Add revuid and adduid support.
	+ commit e416f9961837039f259558edf41fccbc181ad128
	* lang/cpp/src/context.cpp
	(Context::revUid, Context::startRevUid),
	(Context::addUid, Context::startAddUid): New.
	* lang/cpp/src/context.h: Declare new functions.
	* lang/cpp/src/key.cpp (Key::UserID::revoke)
	(Key::addUid): Idomatic helpers.
	lang/cpp/src/key.h: Declare new functions.
	* NEWS: Update accordingly.

	Fix Qgpgme build for macos.
	+ commit efe58fe011f195d98adb4f03b1e1068a26ba287b
	* lang/qt/src/dn.cpp: Include string.h
	(parse_dn_part): Use qstrdup.
	* lang/qt/tests/t-support.h (getPassphrase): Use qstrdup.

	Fix cmake configuration files for MacOS.
	+ commit 2e661b9e1a9b50656a5c9646d7444a98477010c1
	* configure.ac: Set HAVE_MACOS_SYSTEM conditional.
	* lang/qt/src/Makefile.am,
	lang/cpp/src/Makefile.am,
	lang/qt/src/QGpgmeConfig.cmake.in.in,
	lang/cpp/src/GpgmeConfig.cmake.in.in: Use libsuffix again to
	distinguish between macos .dylib

2017-01-03  Justus Winter  <justus@g10code.com>

	python: Improve compatibility with Scheme tests.
	+ commit b14419f68b3aaa90025e0e97151de7c3da7806fb
	* lang/python/tests/run-tests.py: Add stub --parallel option.

	python: Add a switch '--quiet' to the test runner.
	+ commit d0e91d28f63b74e53673902e675be8a54b6b90d3
	* lang/python/tests/run-tests.py: Add and honor a switch '--quiet'.
	This way we can use this script to run Python tests one by one without
	the noise, and the script will setup the necessary environment for us.

2017-01-02  Andre Heinecke  <aheinecke@intevation.de>

	qt: Update config sync doc / comment.
	+ commit ececfd5de81f1851943be7b284b672d5b02aceb4
	* lang/qt/src/cryptoconfig.h (CryptoConfig::sync): Document
	that runtime option is always set.
	* lang/qt/Src/qgpgmenewcryptoconfig.cpp
	(QGpgMENewCryptoConfigComponent::sync): Remove outdated comment
	and warn on error.

	core: Always use runtime for gpgconf changes.
	+ commit 7103315829847163f1c6f52cad25d1ddb33358f0
	* src/engine-gpgconf.c (gpgconf_write): Add --runtime.
	* src/gpgme.h.in (gpgme_conf_opt_change): Document this
	behavior.

2017-01-01  Ben Kibbey  <bjk@luxsci.net>

	Fix gpg_addkey() to work with GPGME_CREATE_NOPASSWD as well.
	+ commit a4b9f1a2b404fd8627d5ac567617510abd55d980
	* src/engine-gpg.c (gpg_addkey): Pass --batch to gpg when
	GPGME_CREATE_NOPASSWD is set to fix pinentry without loopback mode.

2016-12-27  Ben Kibbey  <bjk@luxsci.net>

	Fix GPGME_CREATE_NOPASSWD without pinentry loopback.
	+ commit d83b8f0dc84d6cf7fe2e091bd1b103ceedfa3d6c
	* src/engine-gpg.c(gpg_createkey): Pass --batch to gpg when
	GPGME_CREATE_NOPASSWD is set.

2016-12-19  Raphael Kubo da Costa  <rakuco@FreeBSD.org>

	Qt: Make sure extended grep is used with '|'.
	+ commit 211844f049d714cd4d5aab96347705cb0c209c5d
	* m4/qt.m4: Use grep -E when using the alternation character.

2016-12-16  Andre Heinecke  <aheinecke@intevation.de>

	cpp: Ensure that hasSecret is correct after update.
	+ commit da5343a9d2c8c0ca6431162aac4bd5c73b4ae6dd
	* lang/cpp/src/key.cpp (Key::update): Check for
	a secret key first before listing public keys.

2016-12-15  Andre Heinecke  <aheinecke@intevation.de>

	cpp: Fix addrSpec for keys without email.
	+ commit 85e05537e15346896a271d3f62bead9dd7e3f180
	* lang/cpp/src/key.cpp (UserID::addrSpec): Use uid->address instead
	of normalizing again.
	(&operator<<(std::ostream &, const UserID &): Print it.

	cpp: Fix update of partial key in verifyresult.
	+ commit 5673f3e54af535155893290a685b3afb44c7f58d
	* lang/cpp/src/verificationresult.cpp
	(Signature::key(bool,bool)): Don't update the returned copy
	but the actual key of the signature.

2016-12-07  Andre Heinecke  <aheinecke@intevation.de>

	Clarify what "checking on bit" means.
	+ commit 7880335273382f05cbbe38aa965a566c4127ba6a
	* doc/gpgme.texi (gpgme_sigsum_t summary): Clarify what "you
	can check one bit means"

2016-12-05  Tobias Mueller  <muelli@cryptobitch.de>

	python: Try to be more helpful when given a string to encrypt().
	+ commit 05896c210f7fa9ce7b97784a75e49dc4489e9252
	* lang/python/helpers.c (_gpg_obj2gpgme_data_t): Extended error
	message.
	* lang/python/tests/t-encrypt.py: Test for "encode" in error message.

	python: Define a macro for wrapping fragile result objects.
	+ commit fb7f4cb973abc9f5eb05eb240607be35c1be986c
	* lang/python/gpgme.i (wrapresult): New Macro.

2016-12-01  Tobias Mueller  <muelli@cryptobitch.de>

	python: Check "buffer" when writing to sys.stdout for python2 compat.
	+ commit ae21d2705fc46725e1f9af1651b68d16155d1501
	* lang/python/tests/support.py (print_data): Add check for buffer.

	python: Make Context have a repr method.
	+ commit 154389f2a5e4c13081cf0624222aad29ee480b56
	* lang/python/gpg/core.py (Context.__repr__): New function.

	python: Make Results have a nicer __repr__.
	+ commit db2f6c1ca3d2ef228f4ca6653d594537622c8588
	* lang/python/gpg/results.py (Result.__str__): Renamed to '__repr__'
	...
	* lang/python/gpg/results.py (Result.__repr__): ... and added fields.

2016-11-25  Justus Winter  <justus@g10code.com>

	python: Fix removing the TOFU database.
	+ commit fd4d476214ae06e33f4a6dac534d3deca5cc6cd3
	* lang/python/Makefile.am (CLEANFILES): Move 'tofu.db'...
	* lang/python/tests/Makefile.am (CLEANFILES): ... here.

	tests: Remove tofu.db.
	+ commit 9b22f82afc5518961e4bea1fc516b79800e379a2
	* lang/python/Makefile.am (CLEANFILES): Add 'tofu.db'.
	* tests/gpg/Makefile.am (CLEANFILES): Likewise.

2016-11-17  Heiko Becker  <heirecka@exherbo.org>

	Remove a forgotten instance of @libsuffix@
	+ commit 572c1aac107125ce62230251713349348373db5a
	* lang/cpp/src/GpgmeppConfig.cmake.in.in: Remove a forgotten
	instance of @libsuffix@.

2016-11-16  Werner Koch  <wk@gnupg.org>

	Release 1.8.0.
	+ commit f06220b691e9711afdabaa19886244ae7724eed5
	* configure.ac: Set version to 1.8.0.  Set LT version C28/A17/RO.
	Set CPP LT version to C9/A3/R0.  Set Qt LT version to C8/A1/R0.

	core: Do not leak the override session key to ps(1).
	+ commit 9fc92a15bd0a30437a39d0eb28b6f40edc22e6e8
	* src/engine-gpg.c (struct engine_gpg): New field
	override_session_key.
	(gpg_release): Free that field.
	(gpg_decrypt): With gnupg 2.1.16 use --override-session-key-fd.

	* tests/run-decrypt.c (main): Fix setting over the override key.

2016-11-16  Daniel Kahn Gillmor  <dkg@fifthhorseman.net>

	doc,tests: Require use of ctx_flag before use of session_key.
	+ commit 573064742145aa5f9bf04baa88af918c0c4d5e12
	* doc/gpgme.texi: Document requirements of verifying that it is OK to
	use session_key.
	* tests/run-decrypt.c: Ensure that we fail if we're unable to access
	the session key, so that we do not violate the guidance above.


	Changed the description

	 -@code{gpgme_set_ctx_flag (ctx, "export-session-key")} returns
	 -@code{GPG_ERR_NO_ERROR} or @code{gpgme_get_ctx_flag (ctx,
	 -"export-session-key")} returns @code{"1"}.
	 +@code{gpgme_set_ctx_flag (ctx, "export-session-key")} returns success
	 +or @code{gpgme_get_ctx_flag (ctx, "export-session-key")} returns true
	 +(non-empty string).

	to get gpgme_get_ctx_flag for boolean values in sync with its own
	description.

	Note that I don't agree with the above suggestion but it does not
	really harm to have it in the man page.

2016-11-15  Andre Heinecke  <aheinecke@intevation.de>

	qt, cpp: Add cmake config files for w32.
	+ commit b2c07bd47bd608afa5cc819b60a7b5bb8c9dd96a
	* lang/cpp/src/GpgmeppConfig-w32.cmake.in.in
	lang/qt/src/QGpgmeConfig-w32.cmake.in.in: New.
	* lang/cpp/src/GpgmeppConfig.cmake.in.in,
	lang/qt/src/QGpgmeConfig.cmake.in.in: Remove libsuffix handling.
	* lang/cpp/src/Makefile.am,
	lang/qt/src/Makefile.am: Create / install w32 config files.
	* configure.ac: Configure them.

	qt: Use new style connect in th..mixin.
	+ commit 45abe6d142e314ba7099ad80b6365af171b06fec
	* lang/qt/src/threadedjobmixin.h
	(ThreadedJobMixin::lateInitialization): Use new style connect.

2016-11-15  Werner Koch  <wk@gnupg.org>

	core: Implement context flag "override-session-key".
	+ commit 7659d42468b604db2936b021425683f407eba4a7
	* src/gpgme.c (gpgme_set_ctx_flag): Add flags "export-session-key" and
	"override-session-key".
	(gpgme_get_ctx_flag): Ditto.
	(gpgme_set_export_session_keys): Remove.
	(gpgme_get_export_session_keys): Remove.
	* src/gpgme.def, src/libgpgme.vers: Remove them.
	* src/context.h (struct gpgme_context): Add field
	override_session_key.
	* src/decrypt-verify.c (decrypt_verify_start): Pass
	override_session_key value to the engine.
	* src/decrypt.c (decrypt_start): Ditto.
	* src/engine.c (_gpgme_engine_op_decrypt): Ditto.
	(_gpgme_engine_op_decrypt_verify): Ditto.
	* src/engine-backend.h (struct engine_ops): Extend DECRYPT and
	DECRYPT_VERIFY_START with override_session_key.
	* src/engine-uiserver.c (_uiserver_decrypt): Add stub arg
	override_session_key.
	(uiserver_decrypt): Ditto.
	(uiserver_decrypt_verify): Ditto.
	* src/engine-gpgsm.c (gpgsm_decrypt): Ditto.
	* src/engine-gpg.c (gpg_decrypt): Add arg override_session_key and set
	corresponding gpg option.

	* tests/run-decrypt.c (print_result): Print the session key if
	available.
	(main): Add options --export-session-key and --override-session-key.

	core: Add public function gpgme_get_ctx_flag.
	+ commit 3234b1bf1d6939772677d64f6c1e1820ec98e3cd
	* src/gpgme.h.in (gpgme_get_ctx_flag): New.
	* src/gpgme.c (gpgme_set_ctx_flag): Move down the file and add a trace
	statement.
	(gpgme_get_ctx_flag): New.
	* src/gpgme.def, src/libgpgme.vers: Add new interface.

2016-11-15  Daniel Kahn Gillmor  <dkg@fifthhorseman.net>

	core: Enable extraction of session keys.
	+ commit cad1210fb8a7402cb29e607f8f9680005314120d
	* src/gpgme.c (gpgme_set_export_session_keys): New function.
	(gpgme_get_export_session_keys): New function.
	* src/gpgme.h.in (struct _gpgme_op_decrypt_result): Add session_key
	member.
	(gpgme_{set,get}_export_session_keys): Declare new functions.
	* src/libgpgme.vers, src/gpgme.def: Export new functions in shared
	object.
	* src/engine.h: (_gpgme_engine_op_decrypt) Add export_session_key
	parameter.
	(_gpgme_engine_op_decrypt_verify): Add export_session_key parameter.
	* src/engine-backend.h: (struct engine_ops): Change function
	pointer declarations to match.
	* src/context.h (struct gpgme_context): Add export_session_keys member.
	* src/decrypt.c (release_op_data): Free result.session_key.
	(_gpgme_decrypt_status_handler): Store a copy of the exported session
	key.
	(decrypt_start): Pass export_session_keys from the context.
	* src/decrypt-verify.c (decrypt_verify_start): Pass
	export_session_keys from context.
	* src/engine.c (_gpgme_engine_op_decrypt): Pass through
	export_session_key flag.
	(_gpgme_engine_op_decrypt_verify): Pass through export_session_key
	flag.
	* src/engine-gpg.c (gpg_decrypt): If export_session_key is set, add
	--export-session-key to argument list.
	* src/engine-gpgsm.c (gpgsm_decrypt): Ignore export_session_key for
	now, since gpgsm offers no such mechanism.
	* src/engine-uiserver.c (_uiserver_decrypt): If export_session_key is
	set, add --export-session-key flag to cmd.
	* doc/gpgme.texi: Document new functions and session_key member of
	decrypt_result_t.
	* doc/uiserver.texi: Add --export-session-key flag to DECRYPT command.

2016-11-14  Andre Heinecke  <aheinecke@intevation.de>

	qt: Add API to get the context for a Job.
	+ commit 9451faa2ee333904cff59f92ab62918e13ab4b87
	* lang/qt/src/job.cpp,
	lang/qt/src/job.h (Job::context): New.
	* lang/qt/src/threadedjobmixin.cpp
	(ThreadedJobMixin::~ThreadedJobMixin): New. Unregister context.
	(ThreadedJobMixin::lateInitialization): Register context.
	* NEWS: Update for cpp and qt.

	cpp: Add get / set Sender API.
	+ commit d09a84eaf1e4f8c6c2e462995fa15c1a5690a6ce
	* cpp/src/context.cpp, cpp/src/context.h (Context::setSender),
	(Context::getSender): Add simple wrappers.

	qt, cpp: Enable dll build for windows.
	+ commit f3790ddf56558fb0a08af95fdbae979cd6589aad
	* lang/cpp/src/Makefile.am,
	lang/qt/src/Makefile.am: Add -no-undefined to LDFLAGS.

	w32: Fix build of w32-glib.
	+ commit b91c383386fe9eadd90afdb9bb1f8ec6c528173b
	* src/Makefile.am (main_sources): Remove system_components_not_extra.
	(libgpgme_la_SOURCES): Add system_components_not_extra.
	(libgpgme_glib_la_SOURCES): Remove duplicated ath files.

2016-11-11  Daniel Kahn Gillmor  <dkg@fifthhorseman.net>

	doc: Correct deftypefun for gpgme_op_decrypt_verify_start.
	+ commit 16a30205064914eef578d84d07141b5d51d82838
	* doc/gpgme.texi: Documentationabout gpgme_op_decrypt_verify_start was
	stored under the name gpgme_op_decrypt_verify instead.

	doc: Correct text about gpgme_cancel_async.
	+ commit d50bdb269e86db36a443958e3bfc6816a44d468e
	* doc/gpgme.texi: Documentation about gpgme_cancel_async should refer
	to the correct name.

	core: Non-zero values should set _armor, _textmode, and _online.
	+ commit da035768bd9a880becee5d0d553dfe12299f96eb
	* src/gpgme.c (gpgme_set_armor, gpgme_set_textmode,
	gpgme_set_offline): Ensure that non-zero values actually set the
	appropriate internal bit.

2016-11-11  Alon Bar-Lev  <alon.barlev@gmail.com>

	tests,python: Atomic directory creation.
	+ commit 41d8c7e51a8989be633b9ada124c58a01fae7d54
	* lang/python/tests/Makefile.am:  Use MIDIR_P.
	* tests/gpg/Makefile.am: Ditto.
	* tests/gpgsm/Makefile.am: Ditto.

2016-11-10  Werner Koch  <wk@gnupg.org>

	core: Use better error code when using select with a too high fd.
	+ commit 6e57379c8e37c0863f7d12819a5a7d0781bd76d2
	* src/posix-io.c (_gpgme_io_select): Return EMFILE instead of EBADF.

2016-11-10  Andre Heinecke  <aheinecke@intevation.de>

	tests: Reduce thread count in new thread tests.
	+ commit ddd0a3cf90ac4b0a27ea610ebd7b9b8016ff43c4
	* gpg/t-thread-keylist-verify.c,
	gpg/t-thread-keylist.c: Reduce threads to 100

2016-11-10  Werner Koch  <wk@gnupg.org>

	core: Detect unreadable keyrings.
	+ commit 2a39bd6c30d21c43c86645a7908ce6c57dad5e20
	* src/keylist.c (op_data_t): Add field keydb_search_err.
	(keylist_status_handler): Parse STATUS_ERROR into that var.
	(gpgme_op_keylist_next): Use that err instead of GPG_ERR_EOF.

2016-11-10  Andre Heinecke  <aheinecke@intevation.de>

	tests: Fix additional memleaks in thread tests.
	+ commit d0030efb45ec8436dd84a9623d2f66b80c6b9e10
	* tests/gpg/t-thread-keylist-verify.c (start_verify): Release
	data.
	(start_keylist): Unref keys.
	* tests/gpg/t-thread-keylist.c (start_keylist): Unref keys.

	tests: Improve new thread tests.
	+ commit 4d5174e4a83dcd524f8085f6646145f81b50a02a
	* tests/gpg/t-thread-keylist-verify.c (start_keylist): Mark
	arg as unused. Release context.
	(start_verify): Ditto.
	(main): Mark args as unused.
	* tests/gpg/t-thread-keylist.c (start_keylist):  Mark
	arg as unused. Release context.
	(main): Mark args as unused.

	core: Use gpgrt locking for thread safeness.
	+ commit 09b64554328445e99a8cc78fc34ea49c2ea2e7f9
	* configure.ac: Require libgpg-error 1.17. No longer
	check for pthread.
	* doc/gpgme.texi: Document removed neccessity for thread
	safe gpgme flavours.
	* src/sema.h (DEFINE_GLOBAL_LOCK),
	(DEFINE_STATIC_LOCK, INIT_LOCK, DECLARE_LOCK)
	(DESTROY_LOCK, LOCK, UNLOCK): Change to gpgrt equivalents.
	* src/posix-sema.c, src/w32-sema.c: Removed.
	* src/Makefile.am: Remove libpthread and
	Update accordingly.
	* src/ath.c, src/ath.h (ath_mutex_init)
	(ath_mutex_destroy, ath_mutex_lock, ath_mutex_unlock): Removed.
	* src/ath.h (ATH_MUTEX_INITIALIZER): Removed.
	* src/version.c (do_subsystem_inits): sema_subsystem_init is
	no longer required.
	* tests/gpg/Makefile.am: Add new threading tests.
	(t_thread1_LDADD, t_cancel_LDADD):
	Use just gpgme.
	* tests/gpg/t-thread-keylist-verify.c,
	tests/gpg/t-thread-keylist.c: New.
	* src/gpgme-config.in: Use -lgpgme for thread-model pthread.

2016-11-09  Justus Winter  <justus@g10code.com>

	python: Require at least GPGME 1.7 for out-of-tree builds.
	+ commit f1f341062e24724e26928d893dd5769d3ccf5fa2
	* lang/python/setup.py.in: Bump required version to 1.7.

2016-11-09  Werner Koch  <wk@gnupg.org>

	w32: Better protect the IO-system's fd_table.
	+ commit 10f2e1c30be651e74a03f4563a9f212d7416adb3
	* src/w32-io.c (fd_table_lock): New.
	(new_fd): Lock allocation of a new slot.
	(release_fd): Lock deallocation of a slot.

2016-11-04  Andre Heinecke  <aheinecke@intevation.de>

	cpp: Add API for swdb queries.
	+ commit 3509cf2f9846360848b6c08d36cbca18373c935e
	* lang/cpp/src/swdbresult.cpp,
	 lang/cpp/src/swdbresult.h (SwdbResult): New.
	* lang/cpp/src/Makefile.am: Update accordingly.

	cpp: Add more EngineInfo::Version ctors.
	+ commit 512de91f9a8da8f491e09653eb4b5bdd0a027198
	* lang/cpp/src/engineinfo.h
	(EngineInfo::Version::Version(const char*)),
	(EngineInfo::Version::Version()): New.

	cpp: Don't include gpgme.h in tofuinfo header.
	+ commit 4d3f33d0e9d960df2c34fb4d215987ab4d36111c
	* lang/cpp/src/tofuinfo.h: Don't include gpgme.h

	cpp: Extend gpgmefw for tofuinfo and swdb query.
	+ commit 23979b9be5a6028e3e9cafc3aff632bc720b81f2
	* lang/cpp/src/gpgmefw.h (gpgme_tofu_info_t)
	(gpgme_query_swdb_result_t): New forwards.

2016-11-04  Werner Koch  <wk@gnupg.org>

	w32: Fix locating gpgconf on 64 bit systems.
	+ commit df08a0ca3f029b06b7e3a6bd63330df5cb96585a
	* src/w32-util.c (find_program_at_standard_place): Use access to check
	whether the binary is at CSIDL_PROGRAM_FILES before testing
	CSIDL_PROGRAM_FILESX86.

2016-11-03  Werner Koch  <wk@gnupg.org>

	core: Add gpgme_op_query_swdb and helper.
	+ commit aad94cb7c313d4501bed748f48830cbb93c67e20
	* src/gpgme.h.in (gpgme_query_swdb_result_t): New.
	(gpgme_op_query_swdb): New.
	(gpgme_op_query_swdb_result): New.
	* src/libgpgme.vers, src/gpgme.def: Add the two new functions.
	* src/queryswdb.c: New.
	* src/Makefile.am (main_sources): Add new file.
	* src/context.h (OPDATA_QUERY_SWDB): New.
	* src/engine-backend.h (struct engine_ops): Add field 'query_swdb'.
	Adjust all initializer.
	* src/engine.c (_gpgme_engine_op_query_swdb): New.
	* src/engine-gpgconf.c (parse_swdb_line): New.
	(gpgconf_query_swdb): New.
	(_gpgme_engine_ops_gpgconf): Register that function.

	* src/util.h (GPG_ERR_TOO_OLD): Define for older libgpg-error.
	(GPG_ERR_ENGINE_TOO_OLD): Ditto.

	* tests/run-swdb.c: New.
	* tests/Makefile.am (noinst_PROGRAMS): Add new debug tool.

2016-11-03  Andre Heinecke  <aheinecke@intevation.de>

	qt: Change license of export / version header.
	+ commit 34a4e8017be452e8ead6b9c2da84be1ec7929cae
	* lang/qt/src/qgpgme_export.h,
	lang/qt/src/qgpgme_version.h: Change license to GPLv2+

2016-11-03  Werner Koch  <wk@gnupg.org>

	core: Make use of --homedir in gpgconf.
	+ commit 0c2038c0043c1e79547b55e79c3d3e267dae801c
	* src/engine-gpgconf.c (struct engine_gpgconf): Add field 'version'.
	(have_gpgconf_version): New.
	(gpgconf_release): Free VERSION.
	(gpgconf_new): Set VERSION.
	(gpgconf_read, gpgconf_write): Use --homedir with recent gnupg.

2016-11-02  Andras Mantia  <andras@kdab.com>

	qt: Fix build with g++ 4.8.x.
	+ commit b4658f6a1110bb0b54bd5dfc9df8e8b390e38d61
	* lang/qt/src/defaultkeygenerationjob.cpp
	(DefaultKeyGenerationJob::start): Explicitly connect pointer
	in the QPointer.

2016-11-02  Andre Heinecke  <aheinecke@intevation.de>

	qt, cpp: Fix versioning in cmake config and header.
	+ commit bf9aa0ccf7b0165aa3a1af2bdb18daca7c02ce74
	* configure.ac (VERSION_MAJOR, VERSION_MINOR, VERSION_MICRO): New
	subst variables for the version header.
	* lang/cpp/src/GpgmeppConfigVersion.cmake.in,
	lang/cpp/src/gpgmepp_version.h.in,
	lang/qt/src/QGpgmeConfigVersion.cmake.in,
	lang/qt/src/qgpgme_version.h.in: Use new variables.

	qt: Install cmake config into qgpgme subdir.
	+ commit b5c4d56cfdcafade3467be100fca6f1c89ecab73
	* lang/qt/src/Makefile.am: Install cmake config file in qgpgme subdir.

	qt: Require gpgmepp from cmake config script.
	+ commit 4149194d2e2f2f4d142926ba4d4efbd336b543f2
	* lang/qt/src/QGpgmeConfig.cmake.in.in: Require cpp.

	qt, cpp: Add all generated files to cleanfiles.
	+ commit 8486f213423311174ebff5cba74127cbd9bb3c2a
	* cpp/src/Makefile.am (CLEANFILES),
	qt/src/Makefile.am (CLEANFILES): Add all generated files
	to cleanfiles.

2016-11-01  Andre Heinecke  <aheinecke@intevation.de>

	qt: Add Distinguished Name parser from libkleo.
	+ commit 627c5deed84b4481710b6c0de06b26e886679bbe
	* lang/qt/src/dn.cpp (DN, DN::Attribute): New public API.
	* lang/qt/src/dn.h: New.
	* lang/qt/src/Makefile.am: Update accordingly.

	qt, cpp: Install version headers in subdirs.
	+ commit 567123de21247cab05762d799400739a12eb67ae
	* lang/cpp/src/Makefile.am,
	lang/qt/src/Makefile.am: Install version headers in include
	subdirs.

2016-10-31  Justus Winter  <justus@g10code.com>

	python: Use vanity modules for constants in tests and examples.
	+ commit 4b3264345084a0c9bf9f97fb233df700d7608e66
	* lang/python/gpg/constants/sig/notation.py: New file.
	* lang/python/gpg/constants/sig/__init__.py: Import new module.

	* lang/python/examples/assuan.py: Use more specific module for
	constants, e.g. 'protocol.ASSUAN' instead of 'PROTOCOL_ASSUAN'.
	* lang/python/examples/testCMSgetkey.py: Likewise.
	* lang/python/tests/initial.py: Likewise.
	* lang/python/tests/t-callbacks.py: Likewise.
	* lang/python/tests/t-decrypt-verify.py: Likewise.
	* lang/python/tests/t-decrypt.py: Likewise.
	* lang/python/tests/t-edit.py: Likewise.
	* lang/python/tests/t-encrypt-large.py: Likewise.
	* lang/python/tests/t-encrypt-sign.py: Likewise.
	* lang/python/tests/t-encrypt-sym.py: Likewise.
	* lang/python/tests/t-encrypt.py: Likewise.
	* lang/python/tests/t-export.py: Likewise.
	* lang/python/tests/t-file-name.py: Likewise.
	* lang/python/tests/t-idiomatic.py: Likewise.
	* lang/python/tests/t-import.py: Likewise.
	* lang/python/tests/t-keylist.py: Likewise.
	* lang/python/tests/t-protocol-assuan.py: Likewise.
	* lang/python/tests/t-sig-notation.py: Likewise.
	* lang/python/tests/t-sign.py: Likewise.
	* lang/python/tests/t-signers.py: Likewise.
	* lang/python/tests/t-trustlist.py: Likewise.
	* lang/python/tests/t-verify.py: Likewise.
	* lang/python/tests/t-wait.py: Likewise.

	python: Import the topmost module in tests and examples.
	+ commit 20dc37a0e7e1531b0e568a6ec29b1c2d18de59c3
	* examples/verifydetails.py: Only import the topmost module 'gpg' and
	update the code accordingly.
	* tests/support.py: Likewise.
	* tests/t-callbacks.py: Likewise.
	* tests/t-data.py: Likewise.
	* tests/t-decrypt-verify.py: Likewise.
	* tests/t-decrypt.py: Likewise.
	* tests/t-edit.py: Likewise.
	* tests/t-encrypt-large.py: Likewise.
	* tests/t-encrypt-sign.py: Likewise.
	* tests/t-encrypt-sym.py: Likewise.
	* tests/t-encrypt.py: Likewise.
	* tests/t-export.py: Likewise.
	* tests/t-file-name.py: Likewise.
	* tests/t-import.py: Likewise.
	* tests/t-keylist.py: Likewise.
	* tests/t-sig-notation.py: Likewise.
	* tests/t-sign.py: Likewise.
	* tests/t-signers.py: Likewise.
	* tests/t-trustlist.py: Likewise.
	* tests/t-verify.py: Likewise.
	* tests/t-wait.py: Likewise.
	* tests/t-wrapper.py: Likewise.

	python: Improve constants module.
	+ commit 70b7064e5c4f3eff9c296c00156724bc0cdaa64f
	* lang/python/gpg/constants/__init__.py: Import all modules below
	'constants/'.  Interface hygiene: delete 'util'.
	* lang/python/gpg/constants/data/encoding.py: Delete 'util'.
	* lang/python/gpg/constants/event.py: Likewise.
	* lang/python/gpg/constants/import.py: Likewise.
	* lang/python/gpg/constants/keylist/mode.py: Likewise.
	* lang/python/gpg/constants/md.py: Likewise.
	* lang/python/gpg/constants/pk.py: Likewise.
	* lang/python/gpg/constants/protocol.py: Likewise.
	* lang/python/gpg/constants/sig/mode.py: Likewise.
	* lang/python/gpg/constants/sigsum.py: Likewise.
	* lang/python/gpg/constants/validity.py: Likewise.
	* lang/python/gpg/errors.py: Likewise.

2016-10-31  Daniel Kahn Gillmor  <dkg@fifthhorseman.net>

	python: Rename Python module from PyME to gpg.
	+ commit 2fac017618a76882605125b05ff1f7393fe99860
	This follows weeks of discussion on the gnupg-devel mailing list.
	Hopefully it will make it easier for people using Python to use GnuPG
	in the future.

2016-10-25  Werner Koch  <wk@gnupg.org>

	core: New API functions gpgme_set_sender, gpgme_get_sender.
	+ commit b8159eadb5636cd9d93ee60c41e75d5978927870
	* src/context.h (struct gpgme_context): Add field 'sender'.
	* src/gpgme.c: Include mbox-util.h.
	(gpgme_release): Free SENDER.
	(gpgme_set_sender): New.
	(gpgme_get_sender): New.
	* src/gpgme.def, src/libgpgme.vers: Add new functions.

	* src/engine-gpg.c (append_args_from_sender): New.
	(gpg_encrypt_sign, gpg_sign): Call append_args_from_sender.
	(gpg_verify): Add arg CTX.  Call append_args_from_sender/
	* src/engine-gpgsm.c (gpgsm_verify): Add dummy arg CTX.
	* src/engine-uiserver.c (uiserver_verify): Ditto.
	* src/engine.c (_gpgme_engine_op_verify): Add arg CTX.
	* src/verify.c (verify_start): Pass CTX to engine function.

	* tests/gpg/t-verify.c (main): Add some checks for new functions.
	* tests/run-sign.c (main): Add option --sender.
	* tests/run-verify.c (main): Ditto.

2016-10-19  Andre Heinecke  <aheinecke@intevation.de>

	qt: Improve WKSPublishJob apidoc.
	+ commit 26cbba3c9cb04a68b95f3a6000ac9bd93fe76dd7
	* lang/qt/src/wkspublishjob.h: Improve doc.

2016-10-18  Werner Koch  <wk@gnupg.org>

	Release 1.7.1.
	+ commit 2c490cdb3e50761c498357982445ebb01f18dc1e
	* configure.ac: Set LT version to C27/A16/R0.  Note that the LT
	versions for cpp and Qt have already been updated.

2016-10-14  Werner Koch  <wk@gnupg.org>

	tests: Make t-cancel more portable.
	+ commit 05e8e1260baa5cbc6f1d6e387e642c1f6c188d44
	* tests/gpg/t-cancel.c: Include sys/time.h and protect sys/select.h.

	python: Call ln(1) in a portable way.
	+ commit c6cab5a2bd6e7ed226c6c3f0b78b3f48b47db74c
	* lang/python/Makefile.am: Specify target dir for ln.

2016-10-14  Andre Heinecke  <aheinecke@intevation.de>

	cpp: Fix init of string from null.
	+ commit 1e8c34a9192956bb2fe96a7a6a76ff59de8d1c0c
	* lang/cpp/src/key.cpp (UserID::addrSpecFromString): Check return
	value before creating the string.

2016-10-13  Justus Winter  <justus@g10code.com>

	python: Make 'get_key' more idiomatic.
	+ commit f526d0e22e8b881ccbca66b46a0e1b68bbc4cd6b
	* lang/python/pyme/core.py (Context.get_key): Raise errors.KeyNotFound
	if the key is not found.  This error is both a KeyError for idiomatic
	error handling as well as a GPGMEError so we don't break existing
	code.
	* lang/python/pyme/errors.py (KeyNotFound): New class.
	* lang/python/tests/support.py (no_such_key): New variable.
	* lang/python/tests/t-keylist.py: Test the new behavior.

	python: Return public keys by default.
	+ commit 1e6073ffa98db2c265adbcf0dbbe70c067a910f0
	* lang/python/pyme/core.py (Core.get_key): Return public keys by
	default, improve docstring.
	* lang/python/examples/testCMSgetkey.py: Update example.
	* lang/python/examples/verifydetails.py: Likewise.

	python: Fix example.
	+ commit cabd4c74e52c8983d624b6877cddc7f8912eff04
	* lang/python/examples/inter-edit.py: Fix example.

2016-10-13  Andre Heinecke  <aheinecke@intevation.de>

	cpp: Fix version number.
	+ commit 56302e7bb6a694a7c570f389f9a7883efdfdaf42
	* configure.ac (LIBGPGMEPP_LT_CURRENT): Bump.

	qt, cpp: Fix permissions of Config files.
	+ commit a274c7590aa0e38d682d5177904983632f471cb0
	* lang/cpp/src/Makefile.am,
	lang/qt/src/Makefile.am: Do not install config files as executable.

	qt: Install SpecialJob.
	+ commit 2538c12fa0728f4113f83f69f8c8ec9efb163872
	* lang/qt/src/Makefile.am: Install SpecialJob
	* NEWS: mention it.

	qt, cpp: Fix expected targets in Config files.
	+ commit a3cf30f89418c8a6bc9456533d95ba7fc2a33a4c
	* lang/cpp/src/GpgmeppConfig.cmake.in.in,
	lang/qt/src/QGpgmeConfig.cmake.in.in: Remove KF5 variants.

2016-10-11  Daniel Vrátil  <dvratil@kde.org>

	qt: Add missing implementation of MultiDeleteJob.
	+ commit e5a35af5573651b96a90ef4a537b040333595472
	* lang/qt/src/multideletejob.h: Fix include, cryptobackend.h is now
	called protocol.h
	* lang/qt/src/multideletejob.cpp: New file.
	* lang/qt/src/Makefile.am: Add multideletejob.cpp.

	qt: Install abstractimportjob.h.
	+ commit ce7385caabb57e5435695cc912acffe2815770b7
	* lang/cpp/src/Makefile.am: Install abstractimportjob.h since it's
	included from importjob.h

2016-10-11  Andre Heinecke  <aheinecke@intevation.de>

	cpp: Add API for gpgme_addrspec_from_uid.
	+ commit 54f94b14e2bb9b38ffd89f509406bfbd012da632
	* lang/cpp/src/key.cpp (UserID::addrSpecFromString): New static
	function to expose addrspec from uid.
	(UserID::addrSpec): New. Get addrSpec from Userid.
	* NEWS: Update accordingly.

2016-10-10  Andre Heinecke  <aheinecke@intevation.de>

	Add NEWS for cpp and qt, bump cpp version.
	+ commit e7ceb83a5969581f5e1b0b6a69d18a93b594f6d4
	* NEWS: Add entries for cpp and qt changes.
	* configure.ac: Bump cpp version because of added API.

	Add convenience function to get key from sig.
	+ commit b6b820bff14a9aa8fa67755b246c90062ffdba14
	* lang/cpp/src/verificationresult.cpp (Signature::key(bool, bool)):
	New. Can be used to search / update the key associcated with this
	signature.

	cpp: Return null key if the signature had no key.
	+ commit 34e9dfee81958160f6604849b63369ae4de67417
	* lang/cpp/src/verificationresult.cpp (Private): Add null key
	to list when there is no key associated with the signature.

	qt: Add simple verify test.
	+ commit f131a5e72b0881cafcc3b0a91da8f050af2684a6
	* lang/qt/tests/t-verify.cpp: New. Small test if a signature
	returns a key with fingerprint.
	* lang/qt/tests/Makefile.am: Add new test.

	core: Fix w32 crash in find_program_in_dir.
	+ commit 098a2da15b1b46b145add623dec0488abd39bd74
	* src/w32-util.c (find_program_in_dir): Fix call to _gpgme_strconcat.

2016-10-08  Werner Koch  <wk@gnupg.org>

	core: New helper function gpgme_addrspec_from_uid.
	+ commit 0ea2ff67900c243fff9f689658dcb23d1c0961cd
	* src/gpgme.h.in: Add gpgme_addrspec_from_uid.
	* src/gpgme.def, src/libgpgme.vers: Ditto.
	* src/mbox-util.c (gpgme_addrspec_from_uid): New.

2016-10-06  Justus Winter  <justus@g10code.com>

	Add missing includes.
	+ commit 857592041b8355cd58a7068c9f2446cf8dc0968f
	* lang/cpp/src/key.cpp: Include <strings.h> for 'strcasecmp'.
	* tests/gpg/t-cancel.c: Include <sys/select.h> for 'fd_set' and
	friends.

2016-10-05  Andre Heinecke  <aheinecke@intevation.de>

	cpp: Bump Revision.
	+ commit 8033cff441e9ea185531290273ec343f3402703c
	* configure.ac (LIBGPGMEPP_LT_REVISION): Bump revision.

	qt: Fix spelling error in WKSPublishJob.
	+ commit 88c7e84ede4b6017cac3a396e8c87c2bd3a2bf58
	* src/qgpgmewkspublishjob.cpp,
	src/qgpgmewkspublishjob.h,
	src/wkspublishjob.h,
	tests/t-wkspublish.cpp: Fix spelling of received.
	* src/configure.ac (LIBQGPGME_LT_CURRENT): Bump
	accordingly.

	qt: Disable tests that require a password for 2.0.
	+ commit 24779c9e2301bd17fd328d65b0383e1cbc944119
	* lang/qt/tests/t-encrypt.cpp: Disable tests that require
	a password for 2.0.

	Add warning flags for c++ compiler, too.
	+ commit 4984cc93db6b55f2420a9abd844c074a5fb4ed0c
	* configure.ac (CXXFLAGS): Add Wall and Wextra.

	qt: Fix unused variable warnings.
	+ commit 9d1df990386010e0581b542a76a4f5d85d8d11b5
	* qt/src/qgpgmenewcryptoconfig.cpp,
	qt/src/threadedjobmixin.h,
	qt/tests/t-encrypt.cpp,
	qt/tests/t-support.h,
	qt/tests/t-wkspublish.cpp: Mark additional variables as unused.

	cpp: Add support for URL Data encodings.
	+ commit 370ee1aa802ec6a4030a39b2df7d24a0c47e5ac7
	* lang/cpp/src/data.h (Data::Encoding): Extend enum.
	* lang/cpp/src/data.cpp (Data::encoding),
	Data::setEncoding): Support new values.

	cpp: Fix gcc diagnostic push / pop.
	+ commit 39dd7585f5a7d801942efcb375d6dd46d01d2968
	* lang/cpp/src/context.cpp: Fix pragmas.

	qt: Disable t-wkspublish test.
	+ commit 52a91ccc6a25425d4374b77040e30efb6816940f
	* lang/qt/tests/Makefile.am (TESTS): Remove t-wkspublish.

2016-09-30  Alon Bar-Lev  <alon.barlev@gmail.com>

	python: Link 'data.h' and 'config.h' into the builddir.
	+ commit 453ab9d24ca48c9e01d21e1454d6b08de1938b76
	* lang/python/Makefile.am: Link to the files.
	* lang/python/gpgme.i: Update path.
	* lang/python/setup.py.in: Do not add the top builddir to the include
	path.

	python: Add 'prepare' target.
	+ commit 68fb8371a1dd5f4e05e50b1733f9996d139cbf38
	* lang/python/Makefile.am: Add 'prepare' target.

2016-09-29  Andre Heinecke  <aheinecke@intevation.de>

	cpp, qt: Handle modified includedir installation.
	+ commit 7302791c0d308c3284ac24a743035d27a0c0b6ba
	* lang/cpp/src/Makefile.am,
	lang/qt/src/Makefile.am: Replace resolved_includedir.
	* lang/cpp/src/GpgmeppConfig.cmake.in.in,
	lang/qt/src/QGpgmeConfig.cmake.in.in: Use resolved_includedir
	instead of relying on a common installation prefix.

2016-09-27  Daniel Kahn Gillmor  <dkg@fifthhorseman.net>

	Clarify licensing.
	+ commit 145392f07f42ef23ebcb83a917b4d8e2964e7aa8
	* src/b64dec.c, src/mbox-util.c, src/mbox-util.h: These three files
	  are explicitly licensed under LGPL, but their comments suggest that
	  details about the warranty can be found in the GPL.  Adjust comments
	  to refer to the correct license.

2016-09-27  Justus Winter  <justus@g10code.com>

	tests: Fix check for gpg versions not reporting the critical flag.
	+ commit a423603f80d9eb653ce9c171662db2175d7456f5
	* lang/python/tests/t-sig-notation.py: Also blacklist 2.0.x.
	* tests/gpg/t-sig-notation.c: Likewise.

2016-09-26  Justus Winter  <justus@g10code.com>

	python: Correctly translate to size_t.
	+ commit c38fabfea0601ed5f61e27e0bf43f8e74c67ce2a
	* lang/python/gpgme.i: Correctly translate Python number to size_t.

	python: Correctly translate off_t.
	+ commit 1d80e7374aa3150306c86afe7acdc8e8eb05143f
	* lang/python/gpgme.i: Improve int/long translations, correctly handle
	off_t with large file support.

	python: Include 'config.h'.
	+ commit 3703a4723899d7563937b4b99f5bbe4dd8d3dfed
	* lang/python/Makefile.am: Pass 'top_builddir' to 'setup.py'.
	* lang/python/gpgme.i: Include 'config.h'.
	* lang/python/helpers.c: Likewise.
	* lang/python/helpers.h: Likewise.
	* lang/python/setup.py.in: Make sure that 'config.h' can be found.

2016-09-23  Daniel Kahn Gillmor  <dkg@fifthhorseman.net>

	Fix spelling.
	+ commit 95f38652f696476b38a040644eac40b4511d2b32
	 * lang/cpp/src/context.h, lang/qt/src/protocol.h,
	   lang/qt/src/wkspublishjob.h, src/data-identify.c, src/engine-gpg.c:
	   minor spelling cleanup.

	move some file encodings to UTF-8.
	+ commit a11450eb048df79a3f2b00ebef6d7cab07ad5054
	* THANKS, doc/ChangeLog-2011, tests/ChangeLog-2011,
	  tests/gpg/geheim.txt: convert from iso 8859-1 to utf-8.
	* lang/qt/src/dataprovider.cpp, lang/qt/src/qgpgmerefreshkeysjob.cpp,
	  lang/qt/src/qgpgmesecretkeyexportjob.cpp: replace U+FFFD REPLACEMENT
	  CHARACTER with proper U+00E4 LATIN SMALL LETTER A WITH DIAERESIS.

2016-09-23  Andre Heinecke  <aheinecke@intevation.de>

	tests: Check data after decryption.
	+ commit 9b38817968b90caf73f123255fe427691e82fec4
	* tests/gpgsm/t-decrypt.c (main): Check data matches expected.
	Only print result if it does not.

	cpp, qt: Include config.h.
	+ commit a142f187b7ddb2728ec3e1743da4a0c4538ab40a
	lang/cpp/src/callbacks.cpp,
	lang/cpp/src/configuration.cpp,
	lang/cpp/src/context.cpp,
	lang/cpp/src/context_glib.cpp,
	lang/cpp/src/context_qt.cpp,
	lang/cpp/src/context_vanilla.cpp,
	lang/cpp/src/data.cpp,
	lang/cpp/src/decryptionresult.cpp,
	lang/cpp/src/defaultassuantransaction.cpp,
	lang/cpp/src/editinteractor.cpp,
	lang/cpp/src/encryptionresult.cpp,
	lang/cpp/src/engineinfo.cpp,
	lang/cpp/src/eventloopinteractor.cpp,
	lang/cpp/src/exception.cpp,
	lang/cpp/src/gpgadduserideditinteractor.cpp,
	lang/cpp/src/gpgagentgetinfoassuantransaction.cpp,
	lang/cpp/src/gpgsetexpirytimeeditinteractor.cpp,
	lang/cpp/src/gpgsetownertrusteditinteractor.cpp,
	lang/cpp/src/gpgsignkeyeditinteractor.cpp,
	lang/cpp/src/importresult.cpp,
	lang/cpp/src/key.cpp,
	lang/cpp/src/keygenerationresult.cpp,
	lang/cpp/src/keylistresult.cpp,
	lang/cpp/src/scdgetinfoassuantransaction.cpp,
	lang/cpp/src/signingresult.cpp,
	lang/cpp/src/tofuinfo.cpp,
	lang/cpp/src/trustitem.cpp,
	lang/cpp/src/verificationresult.cpp,
	lang/cpp/src/vfsmountresult.cpp,
	lang/qt/src/dataprovider.cpp,
	lang/qt/src/defaultkeygenerationjob.cpp,
	lang/qt/src/gpgme_backend_debug.cpp,
	lang/qt/src/job.cpp,
	lang/qt/src/qgpgmeadduseridjob.cpp,
	lang/qt/src/qgpgmebackend.cpp,
	lang/qt/src/qgpgmechangeexpiryjob.cpp,
	lang/qt/src/qgpgmechangeownertrustjob.cpp,
	lang/qt/src/qgpgmechangepasswdjob.cpp,
	lang/qt/src/qgpgmedecryptjob.cpp,
	lang/qt/src/qgpgmedecryptverifyjob.cpp,
	lang/qt/src/qgpgmedeletejob.cpp,
	lang/qt/src/qgpgmedownloadjob.cpp,
	lang/qt/src/qgpgmeencryptjob.cpp,
	lang/qt/src/qgpgmeexportjob.cpp,
	lang/qt/src/qgpgmeimportfromkeyserverjob.cpp,
	lang/qt/src/qgpgmeimportjob.cpp,
	lang/qt/src/qgpgmekeyformailboxjob.cpp,
	lang/qt/src/qgpgmekeygenerationjob.cpp,
	lang/qt/src/qgpgmekeylistjob.cpp,
	lang/qt/src/qgpgmelistallkeysjob.cpp,
	lang/qt/src/qgpgmenewcryptoconfig.cpp,
	lang/qt/src/qgpgmerefreshkeysjob.cpp,
	lang/qt/src/qgpgmesecretkeyexportjob.cpp,
	lang/qt/src/qgpgmesignencryptjob.cpp,
	lang/qt/src/qgpgmesignjob.cpp,
	lang/qt/src/qgpgmesignkeyjob.cpp,
	lang/qt/src/qgpgmetofupolicyjob.cpp,
	lang/qt/src/qgpgmeverifydetachedjob.cpp,
	lang/qt/src/qgpgmeverifyopaquejob.cpp,
	lang/qt/src/qgpgmewkspublishjob.cpp,
	lang/qt/src/threadedjobmixin.cpp,
	lang/qt/tests/run-keyformailboxjob.cpp,
	lang/qt/tests/t-encrypt.cpp,
	lang/qt/tests/t-keylist.cpp,
	lang/qt/tests/t-keylocate.cpp,
	lang/qt/tests/t-ownertrust.cpp,
	lang/qt/tests/t-support.cpp,
	lang/qt/tests/t-tofuinfo.cpp,
	lang/qt/tests/t-wkspublish.cpp: Include config.h

2016-09-22  Werner Koch  <wk@gnupg.org>

	w32: Silence some warnings about unused parameters.
	+ commit 583aafdd6870a7fb12a34d90993fd0f46928592c
	* src/assuan-support.c (my_recvmsg, my_sendmsg, my_waitpid)
	(my_socketpair) [W32]: Mark unused parameters.

	core: Fix error checking in _gpgme_mkstemp.
	+ commit c447b64d5989845a2ae2cf8fb30a92d2a0bd05af
	* src/w32-util.c (_gpgme_mkstemp): Fix error checking.
	(dlopen): Mark FLAGS as unused.

	core: New helper function _gpgme_strconcat.
	+ commit dc39552d01094eff2bef5f9fcd1c16928909d20e
	* src/conversion.c: Include stdarg.h.
	(do_strconcat): New.
	(_gpgme_strconcat): New.
	* src/util.h: Provide fallback for GPGRT_ATTR_SENTINEL.
	(_gpgme_strconcat): New with sentinel.

	* src/w32-util.c (find_program_in_dir): Replace malloc and stpcpy by
	_gpgme_strconcat.
	(find_program_at_standard_place): Ditto.
	(_gpgme_set_default_gpg_name): Ditto.
	(_gpgme_set_default_gpgconf_name): Ditto.
	(_gpgme_mkstemp): Ditto.
	(_gpgme_set_override_inst_dir): Repalce malloc and strcpy by strdup.

2016-09-22  Daiki Ueno  <ueno@gnu.org>

	tests: Add test for cancellation.
	+ commit 7a6543c2dfeef874a34086c8f3eeb1dbdf1ce822
	* tests/gpg/t-cancel.c: New file.
	* tests/gpg/Makefile.am (tests_skipped): New variable, default to
	t-genkey and t-cancel.
	(noinst_PROGRAMS): Add $(tests_skipped).
	* tests/gpg/.gitignore: Add t-cancel.

	gpg: Add option --exit-on-status-write-error.
	+ commit dee56820cabde60c43c9bf8281b8d411cb2ad644
	* src/engine-gpg.c (gpg_new): Add --exit-on-status-write-error if the
	engine version is latest enough to expect progress output from gpg.

	tests: Fix select usage in t-eventloop.
	+ commit d0cf6b15121c9b42dbcef243e5ce30c9996a449c
	* tests/gpg/t-eventloop.c (do_select): Supply timeout value to select.

	doc: Fix minor errors in I/O callback example.
	+ commit 0aaf1dedd629446ab991fff76581b4b58e4872a0
	* gpgme.texi (I/O Callback Example): Fix typos, add timeout to select,
	and initialize mutex as recursive.

2016-09-21  Andreas Stieger  <astieger@suse.com>

	cpp: Avoid missing returns in non-void functions.
	+ commit ae324b51ffa338b891387bff2657d60c1fd3ae40
	* lang/cpp/src/context.cpp
	  (Context::signaturePolicyURL): return nullptr on default
	  (to_tofu_policy_t): add default case for unknown
	* lang/cpp/src/key.cpp
	  (Key::primaryFingerprint): return nullptr on default
	* lang/cpp/src/tofuinfo.cpp
	  (GpgME::TofuInfo::policy): add default case for unknown

2016-09-21  Werner Koch  <wk@gnupg.org>

	Release 1.7.0.
	+ commit e7ab75379feadcc2894d9d4cde0f16ad0044780d
	* configure.ac: Bump LT vesion to C26/A15/R0.

	python: Create install dir.
	+ commit 936928632b02d7cc2ac645543bb03e4c94285f05
	* lang/python/Makefile.am (install-exec-local): Create dir.

2016-09-20  Werner Koch  <wk@gnupg.org>

	tests: Make "make -j distcheck" work in Python.
	+ commit 0763357e39d140b068ee9838a5da08be75426d9f
	* lang/python/Makefile.am (SUBDIRS): Make current dir fist.
	* lang/python/tests/Makefile.am (xcheck): Depend on pubring-stamp.
	(CLEANFILES): Remove private-keys-v1.d/gpg-sample.stamp.
	(check-local): Remove.
	(initial.py): Remove dependency.
	(./pubring-stamp): Depend on conf files and the
	private-keys-v1.d/gpg-sample.stamp file.  Also replace use of
	basename.

	tests: Use --batch for gpg import.
	+ commit bfb6890ded99f040fe8ecf910f927a136e4acfda
	* lang/python/tests/Makefile.am (./pubring-stamp): Use --batch with
	GPG to avoid Pinentries during import when using GnuPG >= 2.1.
	Replace touch by echo.
	* tests/gpg/Makefile.am (./pubring-stamp): Ditto.

	tests: Improve portability.
	+ commit 29207bcd3bf4de7264197db6758130375b16d9bb
	* lang/qt/tests/Makefile.am (clean-local): Avoid non-portable "--"
	* lang/python/Makefile.am (copystamp): Use well defined cp -R instead
	of cp -r.

	build: Create swdb file.
	+ commit df7e92b4d585b7dce919c5a3aab9524f6e183cbe
	* Makefile.am (distcheck-hook): New.
	(dist-hook): s/VERSION/PACKAGE_VERSION/ for future compatibility.

2016-09-20  Justus Winter  <justus@g10code.com>

	python: Fix detection of Python available versions.
	+ commit ef99b74eb12463db7da5806a316e3b55f8097c5c
	* configure.ac: Test for 'PYTHON_VERSION' as 'AX_PYTHON_DEVEL' sets
	'PYTHON' but clears the former.

2016-09-19  Andre Heinecke  <aheinecke@intevation.de>

	core: Remove moc artifact.
	+ commit e3c35147d6adb754d4eb0781a54af2a8f0803663
	* src/moc_kdpipeiodevice.cpp: Removed.
	* src/Makefile.am (EXTRA_DIST): Remove moc_kdpipeiodevice.cpp.

	qt: Improve README.
	+ commit 3f92253e0e476d77aa11463bc51ade367985855f
	* lang/qt/README: Add more content. Clearly note license difference.

	cpp: Improve README.
	+ commit 66febf9942c321d30b8770f6aa6cd6ce2315d34f
	* lang/cpp/README: Add more content, move license to bottom.

	qt: Add debug output for testTofuPolicy.
	+ commit d438cb59a068b6f076e6bd70d3a2c46bc05ccb5c
	* lang/qt/tests/t-tofuinfo.cpp (testTofuPolicy): Add
	debug output.

2016-09-19  Ben Kibbey  <bjk@luxsci.net>

	core: Check for GPG_TTY as well as DISPLAY.
	+ commit 9d62bacac7826cb73bb18fac7268f3d2df662d7b
	* src/engine-assuan.c (llass_new): Update --ttyname from GPG_TTY.
	* src/engine-g13.c (g13_new): Ditto.
	* src/engine-gpg.c (gpg_new): Ditto.
	* src/engine-uiserver.c (uiserver_new): Ditto.
	* src/engine-gpgsm.c (gpgsm_new): Ditto.

2016-09-16  Andre Heinecke  <aheinecke@intevation.de>

	qt: Add test for setting tofu policy.
	+ commit a8ff34fc3025af4079cede7f8f9fdf40189b8638
	* lang/qt/tests/t-tofuinfo.cpp (testTofuPolicy): New.

	qt: Add job for tofupolicy.
	+ commit 77aecfb5c97cea1a99f1ff627748cf71767bac5c
	* lang/qt/src/job.cpp, lang/qt/src/protocol.h,
	lang/qt/src/protocol_p.h: Register job.
	* lang/qt/src/qgpgmetofupolicyjob.cpp,
	lang/qt/src/qgpgmetofupolicyjob.h,
	lang/qt/src/tofupolicyjob.h: New.
	* lang/qt/src/Makefile.am: Update accordingly.

	cpp: Add support for gpgme_op_tofu_policy.
	+ commit 4d384d7bfef044094695271576ca233625bb520a
	* src/context.cpp, src/context.h (setTofuPolicy, setTofuPolicyStart):
	New.

	cpp: Declare sizes of tofu-info enums.
	+ commit 32baac8cdec6fee51bdfc3c55cb2ee141e086df4
	* lang/cpp/src/tofuinfo.h (Policy, Validity): Declare sizes.

2016-09-16  Werner Koch  <wk@gnupg.org>

	cpp: Silence use of deprecated function warning.
	+ commit bd24db313d860ae46d37776dcf1067455d1b9880
	* lang/cpp/src/context.cpp (GpgME): Use pragma to silence wardning.

	core: Document the version a function has been deprecated.
	+ commit b615316168f4d33311909d4056b236d13c69488f
	* src/gpgme.h.in (_GPGME_DEPRECATED): Change to take versio numbers
	for documentation.  Change all places.
	(_GPGME_DEPRECATED_OUTSIDE_GPGME): Ditto.
	* lang/python/gpgme-h-clean.py: Adjust RE.

	core: Map GPGME_STATUS_EOF to the empty string.
	+ commit 3d6340e8c59ee11a95e03fb213ad9b228be47833
	* src/status-table.c (_gpgme_status_to_string): Return "" for EOF.
	* src/engine-gpg.c (read_status): Ditto.  The old code accidently used
	GPGME_STATUS_EOF which is the integer 0 and neiteyr NULL nor a string.

2016-09-16  Justus Winter  <justus@g10code.com>
	    Kai Michaelis  <kai@gnupg.org>

	python: Release the GIL during calls into GPGME.
	+ commit 6af7bee076bacbc0cdfe7de342bce43ca5671b3b
	* lang/python/helpers.c (pyme_raise_callback_exception): Re-acquire
	the Global Interpreter Lock.
	(pyPassphraseCb, pyme_set_passphrase_cb, pyProgressCb,
	pyme_set_progress_cb, pyStatusCb, pyme_set_status_cb,
	_pyme_interact_cb, pyDataReadCb, pyDataWriteCb, pyDataSeekCb,
	pyDataReleaseCb, pyme_data_new_from_cbs, _pyme_assuan_data_cb,
	_pyme_assuan_inquire_cb, _pyme_assuan_status_cb): Likewise.
	* lang/python/setup.py.in: Make 'gpgme-config' emit the correct
	cflags, and SWIG generate code to release the GIL before calling us.

2016-09-16  Justus Winter  <justus@g10code.com>

	python: Adapt to 'gpgme_op_interact'.
	+ commit a458e7fe2006d92bd5a838e2747fb66bbac4b1b8
	* lang/python/examples/inter-edit.py: Update example.
	* lang/python/gpgme.i (gpgme_edit_cb_t): Turn into
	'gpgme_interact_cb_t'.
	* lang/python/helpers.c (_pyme_edit_cb): Turn into
	'_pyme_interact_cb_t'.
	* lang/python/private.h (_pyme_edit_cb): Likewise.
	* lang/python/pyme/constants/__init__.py: Replace numeric status codes
	with the keywords.
	* lang/python/pyme/constants/status.py: Likewise.
	* lang/python/pyme/core.py (Context.interact): New method.
	(Context.op_edit): Deprecate, update docstring, implement using
	Context.interact.
	* lang/python/tests/t-edit.py: Test both interfaces.

2016-09-16  Werner Koch  <wk@gnupg.org>

	core: Remove stub to try implementing gpg < 2.1 support for createkey.
	+ commit 268e251b802cc7c19831722d7e3a52777a0f412f
	* src/engine-gpg.c (gpg_createkey_legacy): Remove.
	(gpg_genkey): Remove call.

	core: Fix setting og the verification result.
	+ commit 1f9641dd0fb08e4a3df3b507b974a3f78887920f
	* src/verify.c (parse_new_sig): Proberly handle the RC in an ERRSIG
	status.

2016-09-15  Werner Koch  <wk@gnupg.org>

	core: New function gpgme_op_interact, deprecate gpgme_op_edit.
	+ commit ed1f2700a73060e2615697491ea9e49ded4293e6
	* src/gpgme.h.in (gpgme_interact_cb_t): New.
	(GPGME_INTERACT_CARD): New.
	(gpgme_op_interact_start, gpgme_op_interact): New.
	* src/libgpgme.vers, src/gpgme.def: Add new functions.
	* src/edit.c (op_data_t): Rename fnc to fnc_old and change users.  Add
	fnc.
	(edit_status_handler): Call old or new callback.
	(command_handler): Ditto.
	(interact_start): New.
	(gpgme_op_interact_start, gpgme_op_interact_start): New.
	* src/status-table.c (_gpgme_status_to_string): New.

	* tests/gpg/t-edit.c (edit_fnc): Rename to interact_fnc and change
	type of STATUS.  Use gpgme_io_writen.
	(main): s/gpgme_op_edit/gpgme_op_interact/.

	core: Minor change of the gpgme_op_edit semantics.
	+ commit d2b72d3cc19fe2a7d548dac38d55e069e0c9a904
	* src/edit.c (command_handler): Handle special error code.
	* src/engine-gpg.c (read_status): Ditto.
	* src/engine-gpgsm.c (status_handler): Ditto.
	* src/engine-uiserver.c (status_handler): Ditto.
	* src/util.h (GPG_ERR_FALSE): Define for older libgpg-error versions.

2016-09-14  Werner Koch  <wk@gnupg.org>

	core: New function gpgme_op_tofu_policy.
	+ commit 7c37719d79345a665ec2f4570e3f257033b58c62
	* src/gpgme.h.in (gpgme_op_tofu_policy_start): New function.
	(gpgme_op_tofu_policy): New function.
	* src/libgpgme.vers, src/gpgme.def: Add new functions.
	* src/tofupolicy.c: New.
	* src/Makefile.am (main_sources): Add that file.
	* src/context.h (ctx_op_data_id_t): Add OPDATA_TOFU_POLICY.
	* src/engine.c (_gpgme_engine_op_tofu_policy): New.
	* src/engine-backend.h (engine_ops): Add funcptr 'tofu_policy'.
	Adjust all engine initializations.
	* src/engine-gpg.c (gpg_tofu_policy): New.
	(_gpgme_engine_ops_gpg): Register this function.

	* tests/run-tofu.c: New.
	* tests/Makefile.am (noinst_PROGRAMS): Add it.

	core: Defer implementation of gpgme_op_createkey with gpg < 2.1.
	+ commit d79dcb78d867aaf55b85aea117c4ae6035a1531a
	* src/engine-gpg.c (gpg_createkey_legacy): Mark unused variables.

	core: New function gpgme_op_keysign.
	+ commit bfd2bd0ccc9fed8284ef932ac788d4ca0dba0336
	* src/gpgme.h.in (gpgme_op_keysign_start, gpgme_op_keysign): New.
	(GPGME_KEYSIGN_LOCAL): New.
	(GPGME_KEYSIGN_LFSEP): New.
	(GPGME_KEYSIGN_NOEXPIRE): New.
	* src/context.h (ctx_op_data_id_t): Add OPDATA_KEYSIGN.
	* src/keysign.c: New.
	* src/Makefile.am (main_sources): Add keysig.
	* src/libgpgme.vers, src/gpgme.def: Add gpgme_op_keysign_start.
	* src/engine.c (_gpgme_engine_op_keysign): New.
	* src/engine-backend.h (engine_ops): Add 'keysign' and adjust all
	engine initializers.
	* src/engine-gpg.c (_add_arg): Add args PREFIX and ARGLEN and change
	callers to set them.
	(add_arg_pfx): New.
	(add_arg_len): New.
	(gpg_keysign): New.
	(_gpgme_engine_ops_gpg): Set keysign to gpg_keysign.
	* tests/run-keysign.c: New.
	* tests/Makefile.am (noinst_PROGRAMS): Add run-keysign.

2016-09-14  Justus Winter  <justus@g10code.com>

	python: Clarify that we support Python 2.7 too.
	+ commit 594c3b8b052e60b6be77ed532fe46549133a9726
	* lang/python/README: Use 'Python' instead of 'Python 3'.
	* lang/python/pyme/version.py.in: Likewise.
	* lang/python/setup.py.in: Add classifier for 2.7, drop 3 only.

	python: Trim imports.
	+ commit 4011b2b2a1050f0837e989da3db9b5459e71ccd6
	* lang/python/examples/encrypt-to-all.py: Drop unused import of 'os'.
	* lang/python/examples/signverify.py: Likewise.
	* lang/python/examples/simple.py: Likewise.
	* lang/python/examples/verifydetails.py: Likewise.

	python: Improve error handling.
	+ commit 44d18200d5ffe8691e18d93ce6c534660702b982
	* lang/python/gpgme.i (gpgme_engine_info_t): Improve error handling.

	python: Adapt to TOFU changes.
	+ commit f6cd560ca74248dd719a37cfb34386148727a92d
	* lang/python/pyme/results.py (TofuInfo): Drop.
	(Signature): The TOFU information moved to the key.

	python: Improve build system integration.
	+ commit 99db351288d5bb075f124ef10e540e25bc36b70a
	* configure.ac: Try to compile a Python module for each version.
	* m4/m4_ax_swig_python.m4: Drop unused file.

2016-09-14  Werner Koch  <wk@gnupg.org>

	core: New function gpgme_op_revuid.
	+ commit c943380b7a2cc9b32f81c22224fc6f92e8ea8469
	* src/engine.h (GENKEY_EXTRAFLAG_REVOKE): New.
	* src/genkey.c (adduid_start): Rename to addrevuid_start.  Add arg
	REVOKE and pass it as extraflags.  Remove useless ARMOR extraflag.
	Adjust callers.
	(gpgme_op_revuid_start, gpgme_op_revuid): New.
	* src/gpgme.def, src/libgpgme.vers: Add them.

	* tests/run-genkey.c: Add option --revuid.

	core: Change a parameter for the engine's genkey function.
	+ commit c22f5884c50557f54704f4becc5a8c1ee0749547
	* src/engine.h (GENKEY_EXTRAFLAG_ARMOR): New.
	* src/engine-backend.h (engine_ops): Rename USE_ARMOR in genkey to
	EXTRAFLAGS.
	* src/engine.c (_gpgme_engine_op_genkey): Ditto.
	* src/engine-gpg.c (gpg_createkey_from_param): Ditto and test the
	flags.
	(gpg_createkey_legacy): Ditto.
	(gpg_createkey): Ditto.
	(gpg_addkey): Ditto.
	(gpg_genkey): Ditto.

2016-09-14  Justus Winter  <justus@g10code.com>

	python: Build for both Python2 and Python3.
	+ commit 24b4162d908b48a92660020be0b776c2874fb05a
	* NEWS: Update.
	* configure.ac: Check for multiple Python versions.
	* lang/python/Makefile.am: Build and install for both Python versions.
	* lang/python/tests/Makefile.am: Test both versions.
	* lang/python/tests/run-tests.py: New test runner.

2016-09-14  Werner Koch  <wk@gnupg.org>

	core: New function gpgme_op_adduid.
	+ commit 3210f3e4725afc5ee2810b9a1361918ec9c42ca4
	* src/genkey.c: Replace most error codes GPG_ERR_INV_VALUE by
	GPG_ERR_INV_ARG.
	(struct op_data_t): Add field UIDMODE.
	(genkey_status_handler): Use UIDMODE.
	(adduid_start): New.
	(gpgme_op_adduid_start, gpgme_op_adduid): New.
	* src/gpgme.def, src/libgpgme.vers: Add them.
	* tests/run-genkey.c: Add option --adduid.

	core: New function gpgme_op_createsubkey.
	+ commit cc353701b0fde4c811ddc1e9a91b852dfe9f4e06
	* src/genkey.c (createsubkey_start): New.
	(gpgme_op_createsubkey_start, gpgme_op_createsubkey): New.
	* src/gpgme.def, src/libgpgme.vers: Add them.
	* src/engine-gpg.c (gpg_createkey): Factor some code out to ...
	(gpg_add_algo_usage_expire): new.
	(gpg_addkey): Implement.
	* tests/run-genkey.c: Add option --addkey.

2016-09-13  Werner Koch  <wk@gnupg.org>

	core: Use const char * where appropriate.
	+ commit 51f9acbca935c5287d9a28205037b0923e9a65f5


	core: Cast away the common const problem with spawn and argv.
	+ commit 686a065f639ef006e33c164e282d787bcd169754
	* src/dirinfo.c (read_gpgconf_dirs): Use a cast to assignd to ARGV.

	core: Fix condition-always-true warning in trace macro.
	+ commit 3009e6162eaa39adaaf45f06fc4f88c7153360ee
	* src/data-compat.c (old_user_read): Cast AMT.

	core: Mark unused function args.
	+ commit 4a200146b602349eebb4eac2e102357748d7ba5b


	tests: Mark lots of unused vars and fix const mismatches.
	+ commit 9064eebdc05e7149c2c8cc899fbd7874622fb769


	tests: Use gpgme_io_write in passhrase callbacks.
	+ commit 4491ef0a9a15d3b307d1ade37ff620ef9fcb2478
	* tests/gpg/t-support.h (passphrase_cb): Use gpgme_io_write.
	* tests/gpgsm/t-support.h (passphrase_cb): Ditto.
	* tests/run-support.h (passphrase_cb): Ditto.

	core: Do not pass const char* to functions taking a char*.
	+ commit 3972f476e00f27d41a0aeabcb66600905b6737bd


	build: Use more compiler warnings.
	+ commit 0510591c36591816a6ff3f87a04451001b7ed46f
	* configure.ac: Add useful compiler warnings.

	core: New function gpgme_op_create_key.
	+ commit 00c501d296da287bec2fd6a0e3912abfbde90a98
	* src/engine-backend.h (engine_ops): Change prototype of genkey.
	* src/engine-gpgsm.c (gpgsm_genkey): Change accordingly.
	* src/engine-gpg.c (gpg_genkey): Change it to a dispatcher.
	(gpg_createkey_from_param): New for the old functionality.
	(gpg_createkey_legacy): New.  Stub for now.
	(gpg_createkey): New.
	(gpg_addkey): New.  Stub for now.
	(gpg_adduid): New.  Stub for now.
	* src/engine.c (_gpgme_engine_op_genkey): Add new args.
	* src/genkey.c (op_data_t): Add field ERROR_CODE.
	(parse_error): New.
	(genkey_status_handler): Parse ERROR status line.
	(genkey_start): Use NULL/0 for the new args.
	(createkey_start): New.
	(gpgme_op_createkey_start, gpgme_op_createkey): New.
	* src/gpgme.def, src/libgpgme.vers: Add gpgme_op_createkey_start and
	gpgme_op_createkey.
	* src/gpgme.h.in (_gpgme_op_genkey_result): Add fields PUBKEY and
	SECKEY.
	(GPGME_CREATE_SIGN): New.
	(GPGME_CREATE_ENCR): New.
	(GPGME_CREATE_CERT): New.
	(GPGME_CREATE_AUTH): New.
	(GPGME_CREATE_NOPASSWD): New.
	(GPGME_CREATE_SELFSIGNED): New.
	(GPGME_CREATE_NOSTORE): New.
	(GPGME_CREATE_WANTPUB): New.
	(GPGME_CREATE_WANTSEC): New.
	(GPGME_CREATE_FORCE): New.

	* tests/run-genkey.c: New.
	* tests/Makefile.am (noinst_PROGRAMS): Add it.

2016-09-13  Justus Winter  <justus@g10code.com>

	python: Handle slight differences between Python 2 and 3.
	+ commit 70a3be27a509a1b5ea7372bee93d83c5019427ff
	* lang/python/helpers.c (pyDataWriteCb): Handle Python integers being
	returned on Python 2.
	(pyDataSeekCb): Likewise.
	* lang/python/pyme/core.py (Data.__init__): Fix testing for string
	argument.
	(Data.new_from_filepart): Likewise.
	* lang/python/pyme/util.py (is_a_string): New function.
	* lang/python/tests/t-encrypt-large.py (read_cb): Force evaluation of
	generator.
	* lang/python/tests/t-idiomatic.py: Partly skip test on Python 2.
	* lang/python/tests/t-verify.py (check_result): Here, the difference
	between 2 and 3 really matters.  We cannot change the char *
	conversion in Python 2 without breaking all existing applications, and
	using bytestrings in Python 3 would be very inconvenient.

	python: Fix types and error handling.
	+ commit 4abff7d750a1abf5b388a4c87ec321fc3e4aed10
	* lang/python/helpers.c (_pyme_edit_cb): Drop the const.
	(_pyme_assuan_{data,inquire,status}_cb): Fix error handling.

2016-09-12  Justus Winter  <justus@g10code.com>

	python: Avoid Python3-only form of super().
	+ commit c0c50318bd8ef6c8119ad9fdc53ad9087ded4c32
	* lang/python/pyme/core.py (GpgmeWrapper.__repr__): Use more
	compatible form of super.
	(GpgmeWrapper.__setattr__): Likewise.
	(Context.__init__): Likewise.
	(Data.__init__): Likewise.

	python: Make type translation compatible with Python 2.7.
	+ commit 1d5bbbf1185a0d1f82750f10b69dad3999f7ef4c
	* lang/python/gpgme.i: Avoid functions not available in Python 2.7.
	* lang/python/helpers.c: Likewise.

	python: Avoid hardcoding the interpreter.
	+ commit 70999d81618b3d3ae6b61a43be2ce703ad284275
	* lang/python/setup.py.in: Avoid hardcoding the interpreter.

	python: Do not rely on subprocess.DEVNULL.
	+ commit b48b852a846129914d6c63ec7b47388cdcf6acca
	* lang/python/setup.py.in: Do not rely on subprocess.DEVNULL.

	tests: Fix version comparison.
	+ commit dfd99ab50c3bc1d6745b6f682791e4885e8d8a9a
	* tests/gpg/t-sig-notation.c: Fix version comparison.

	tests: Make signature notation test compatible with older GnuPGs.
	+ commit a0263ad282d350b548cbbc27e96f196d9217d040
	* lang/python/tests/t-sig-notation.py: Only check the critical flag
	when GnuPG >= 2.1.13 is used.
	* tests/gpg/t-sig-notation.c: Likewise.

2016-09-12  Andre Heinecke  <aheinecke@intevation.de>

	qt: Fix some includes.
	+ commit d480f6b701894f78f3f4016d69c0e3b87939930b
	* lang/qt/src/qgpgmekeyformailboxjob.cpp: Explicitly include
	QStringList.
	* lang/qt/tests/t-support.h, lang/qt/tests/t-support.cpp: Move
	includes into impl. Explicitly include QDir.

2016-09-12  Justus Winter  <justus@g10code.com>

	qt: Fix tofu test.
	+ commit 7b9e6ea376d04fb4694ed22369abaae92ce3ec86
	* lang/qt/tests/t-tofuinfo.cpp: Adjust member names.

2016-09-07  Werner Koch  <wk@gnupg.org>

	core,cpp: Extend the TOFU information.
	+ commit 120b14783c0312d782dc08ce4949a6209d5ccc7b
	* src/gpgme.h.in (struct _gpeme_tofu_info): Rename FIRSTSEEN to
	SIGNFIRST and LASTSEEN to SIGNLAST.  Add ENCRFIST and ENCRLAST.
	* src/keylist.c (parse_tfs_record): Parse to ENCRFIRST and ENCRLAST.
	* src/verify.c (parse_tofu_stats): Ditto.
	* tests/run-keylist.c (main): Adjust and print encrypt stats.
	* tests/run-verify.c (print_result): Ditto.

	* lang/cpp/src/tofuinfo.h (TofuInfo): Rename firstSeen to signFirst
	and lastSeen to signLast.  Add encrCount, encrFirst and encrLast.
	* lang/cpp/src/tofuinfo.cpp (encrCount, encrFirst, encrLast): New.

2016-09-06  Andre Heinecke  <aheinecke@intevation.de>

	tests: Set passphrase cb in t-encrypt-mixed.
	+ commit 151da95470f174dc770b2111890ad650a1697276
	* tests/gpg/t-encrypt-mixed.c (main): Set passphrase cb.

	core: Check for gpg version for loopback mode.
	+ commit e8cb143c8337b122a6790f769ddb0a97c4baccd3
	* src/engine-gpg.c (build_argv): Check for version 2.1.0
	before adding pinentry-mode.

	core: Fix passphrase cb for mixed sym encrypt.
	+ commit efe7e11dfa2ff911b477ce748292e53e7a50347e
	* src/encrypt.c (encrypt_start): Handle SYMMETRIC flag.
	* src/encrypt-sign.c (encrypt_sign_start): Ditto.

2016-09-05  Andre Heinecke  <aheinecke@intevation.de>

	qt: Clarify comment and strings in tofuinfo test.
	+ commit ab3fbdbd05cfd1b039bb5b1eb3941fbb4bcf6307
	* lang/qt/tests/t-tofuinfo.cpp (testTofuSignCount)
	(testTofuKeyList): Ensure distinct messages. Clarify comment.

	qt: Enable signcount checks in tofuinfo test.
	+ commit 965b842fad6ec6fbd8902f3a32119abcd0728fe4
	* lang/qt/tests/t-tofuinfo.cpp: Enable checks for signcount.

	cpp: Add convenience update function to a key.
	+ commit 79439e76cc5b302222874a1f9e93665cb12801ac
	* lang/cpp/src/key.cpp (Key::update): New.
	* lang/cpp/src/key.h: Update accordingly.

	cpp: Add ostream operators for key and uid.
	+ commit 444d85ace0dddff5c511961927052d9946035b00
	* lang/cpp/src/key.cpp (Key, UserID): Add ostream operator.
	* lang/cpp/src/key.h: Update accordingly.

	qt: Add missing header redirection.
	+ commit 8a39a595eb802b80a6ad756b0ee8939e9733e86f
	* lang/qt/src/keyformailboxjob.h,
	lang/qt/src/qgpgmekeyformailboxjob.h: Fix includes.

	qt: Include cpp before core directory.
	+ commit e3a4697894cc5a93c295e84bb10c743bc7fdc87e
	* lang/qt/src/Makefile.am (AM_CPPFLAGS): Include cpp before core.

2016-08-25  Andre Heinecke  <aheinecke@intevation.de>

	qt: Fix 2.1 t-support copy.
	+ commit 05570bd3d05fb3d7934c1122f0d5ef5fdbaa7974
	* lang/qt/src/t-support.cpp (copyKeyring): Fix seckey copy.

	qt: Fix and extend TofuInfo test.
	+ commit 9fc72e928bf2cf239bd3b0facdf33ceb1acc975b
	* lang/qt/tests/t-tofuinfo.cpp: Delete executed jobs.
	(testTofuKeyList): New.
	(testSupported): Activate for 2.1.16
	(signAndVerify): Disable sigcount tests.

	qt: Fix keyring copy in tests.
	+ commit c875f07e559a7c53fc173b4c3f9f5715f3fbb8f8
	* lang/qt/test/t-encrypt.cpp,
	lang/qt/test/t-tofuinfo.cpp: Assert on copy failure.
	* lang/qt/test/t-support.cpp (copyKeyrings): Fix path.

	qt: Add generic flag support for keylistjobs.
	+ commit 4e37d0bb1255558ce20e1a5ac83a2d06a37f8b0b
	* lang/qt/src/keylistjob.h (addMode): New.
	* lang/qt/src/qgpgmekeylistjob.h (addMode): New.
	* lang/qt/src/qgpgmekeylistjob.cpp (addMode: New.

	qt: Ensure that current src dir is included first.
	+ commit 5a92cc96da183ebb19867a2a910f53ba41e76ae9
	* lang/qt/src/Makefile.am: Reorder include directives.

	cpp: Add WithTofu Keylist Mode.
	+ commit f311b92ceaedb12c9e00a722b6b47bbe6b50871e
	* lang/cpp/src/context.cpp: Handle WithTofu.
	* lang/cpp/src/global.h (KeyListMode): Add WithTofu.
	* lang/cpp/src/util.h (add_to_gpgme_keylist_mode_t): Handle WithTofu.

	qt: Fix tofuinfo test when gpg is gpg2.
	+ commit 053e6e0a7b8ea38ad9d4160c84814867bbb9fcf6
	* lang/qt/tests/t-support.cpp (QGpgMETest::copyKeyrings): New helper.
	* lang/qt/tests/t-support.h: Declare.
	* lang/qt/tests/t-encrypt.cpp: use it
	* lang/qt/tests/t-tofuinbo.cpp: ditto.

	qt: Remove unused variable in test.
	+ commit f08904b810d77d87c66d9c7875c4e7f2bde5dd92
	* t-wkspublish.cpp (testWKSPublishCreate): Remove context.

	qt: Add test for wkspublishjob.
	+ commit df04b232b8897f030534f8c3fbc87064edf8ae7d
	* lang/qt/tests/t-wkspublish.cpp: New.
	* lang/qt/tests/Makefile.am: Update accordingly.

	qt: Add WKSPublishJob.
	+ commit 94420b05775122b25885c66ac67f77c59d01644d
	* lang/qt/src/Makefile.am: Add new files.
	* lang/qt/src/job.cpp: Include moc / subclass stub.
	* lang/qt/src/protocol.h: Add virtual for new job.
	* lang/qt/src/protocol_p.h: Add job.
	* lang/qt/src/wkspublishjob.h: Interface for WKSPublishJob.
	* lang/qt/src/qgpgmewkspublishjob.cpp,
	lang/qt/src/qgpgmewkspublishjob.h: New.

	Cpp: Change firstSeen / lastSeen return values.
	+ commit de7b67f9b2e6bd43a036fa0bcc6a8ca4f5b10986
	* lang/cpp/src/tofuinfo.cpp,
	lang/cpp/src/tofuinfo.h (TofuInfo::firstSeen, TofuInfo::lastSeen):
	Change return values to unsigned long and update doc.

	Cpp: Add wrapper for gpgme_get_dirinfo.
	+ commit abcd9a283ee8f81870622c8e1dbdc7aad38c0358
	* lang/cpp/src/context.cpp (dirInfo): New.
	* lang/cpp/src/global.h (dirInfo): New.

	Cpp: Add support for spawn engine.
	+ commit ece8b02a839d6fc566fea7b6e59fabff164f6cf5
	* lang/cpp/src/context.cpp (Context::spawn, Context::spawnAsync): New.
	* lang/cpp/src/context.h: Add prototypes.
	(SpawnFlags): New.
	* lang/cpp/src/global.h (SpawnEngine): Added.

2016-08-25  Werner Koch  <wk@gnupg.org>

	core: Add GPGME_KEYLIST_MODE_WITH_TOFU.
	+ commit 9ee103957e4136337b92d238283f8ef30fd4a7c5
	* src/gpgme.h.in (GPGME_KEYLIST_MODE_WITH_TOFU): New.
	* src/engine-gpg.c (gpg_keylist_build_options): Use that.
	* src/keylist.c: Include limits.h.
	(parse_tfs_record): New.
	(keylist_colon_handler): Support TFS record.
	* tests/run-keylist.c: Include time.h.
	(isotimestr): New.
	(main): Add option --tofu.  Print TOFU info.
	* tests/run-verify.c: Include time.h.
	(isotimestr): New.
	(print_result): Use isotimestr for TOFU dates.

2016-08-24  Werner Koch  <wk@gnupg.org>

	core: Adjust for TOFU_STATS change in gnupg 2.1.16.
	+ commit 38798fee5b539d6153a8a7856152959412ee59b5
	* src/gpgme.h.in (_gpgme_tofu_info): Change 'firstseen' and 'lastseen'
	to a timestamp value.
	* src/verify.c (parse_tofu_stats): Do not cap these values at UINT_MAX.

	core: Set the 'encrcount' field in gpgme_tofu_info_t.
	+ commit 1eefc2d43c0adb2ce516f8e3509ace2fb562e401
	* src/verify.c (parse_tofu_stats): Set ENCRCOUNT field.

	cpp: Get rid of AssuanResult due to its deprecation.
	+ commit e20b0f0201543834f15c5d50cd3b2ece69a35d70
	* lang/cpp/src/assuanresult.cpp: Remove.
	* lang/cpp/src/assuanresult.h: Remove.
	* lang/cpp/src/Makefile.am: Remove these files.
	* lang/cpp/src/context.cpp: Remove header assuanresult.h
	(assuanTransact): Change return type to Error.  Use
	gpgme_op_assuan_transact_ext.
	(startAssuanTransaction): Change return type to Error.
	(assuanResult): Remove
	* lang/cpp/src/context.h (assuanResult): Adjust for changes.

2016-08-24  Andre Heinecke  <aheinecke@intevation.de>

	Qt: Adapt (disabled) tofuinfo test to new API.
	+ commit d2e40fb7adf667f3e2d2457ee4c646ea4d4d88b3
	* lang/qt/tests/t-tofuinfo.cpp: Switch to UID based API.

	Cpp: Add Key to signature.
	+ commit 7c5a4974b71c30e824cbfcb3a0a70064e5ed5adb
	* lang/cpp/src/verificationresult.cpp,
	lang/cpp/src/verificationresult.h (Signature::key): New.

	Cpp: Use fpr field for primaryFingerprint.
	+ commit 40ea1c85773cbe324557c34b3a4282f609fcdaf6
	* lang/cpp/src/key.cpp (Key::primaryFingerprint): Return
	fpr value if available.

2016-08-23  Andre Heinecke  <aheinecke@intevation.de>

	Cpp: Move tofuinfo from signature to userid.
	+ commit 799b168243e6499ac01bf59e0656547f353a2589
	* lang/cpp/src/key.cpp (UserID::tofuInfo): New.
	* lang/cpp/src/key.h: Update accordingly.
	* lang/cpp/src/tofuinfo.cpp: Remove dropped fields.
	* lang/cpp/src/tofuinfo.h: Update accordingly.
	* lang/cpp/src/verificationresult.cpp,
	lang/cpp/src/verificationresult.h: Remove tofu info.
	* lang/qt/tests/t-tofuinfo.cpp: Disable for now.

2016-08-23  Werner Koch  <wk@gnupg.org>

	core: Put the protocol into a TOFU created key object.
	+ commit 2972c44bd7e97b2169dea9c4a49d9754afdae3f0
	* src/verify.c (parse_tofu_user): Add arg 'protocol' and store it in
	the KEY.
	(_gpgme_verify_status_handler): Pass protocol.

	core: Change the way TOFU information are represented.
	+ commit be4ff75d7d5ac6ed15feb245ef3cec59b4bad561
	* src/gpgme.h.in (struct _gpgme_signature): Remove field 'tofu'.  Add
	field 'key'.
	(struct _gpgme_key): Add field 'fpr'.
	(struct _gpgme_user_id): Add field 'tofu'.
	(struct _gpgme_tofu_info): Remove fields 'address' and 'fpr'.
	* src/key.c (gpgme_key_unref): Release TOFU and FPR.
	* src/keylist.c (keylist_colon_handler): Store the fingerprint of the
	first subkey also in KEY.
	* src/verify.c (release_tofu_info): Remove.
	(release_op_data): Release KEY.
	(parse_tofu_user): Rewrite for new data structure.
	(parse_tofu_stats): Ditto.
	(parse_tofu_stats_long): Ditto.
	* tests/run-verify.c (print_result): Ditto.
	* tests/run-keylist.c (main): Print more fields.

	core: Extend gpgme_user_id_t with 'address'.
	+ commit 3955dce06e9d056599e5ec7d40301e66b9305195
	* src/mbox-util.c, src/mbox-util.h: Adjust for use in gpgme.
	* src/Makefile.am (main_sources): Add mbox-util.
	* src/key.c (_gpgme_key_append_name): Set 'address' field of uid.
	(gpgme_key_unref): Free it.

2016-08-22  Werner Koch  <wk@gnupg.org>

	core: New code for parsing mail addresses.
	+ commit 26c5ba528ce1411d96655952ec48359105695c0f
	* src/mbox-util.c: New.
	* src/mbox-util.h: New.

	core: Add new items for gpgme_get_dirinfo.
	+ commit 24e61984c9532924135c57b8ff98489a2d3bd4a3
	* src/dirinfo.c (WANT_SYSCONFDIR, WANT_LIBEXECDIR, WANT_LIBDIR): New.
	(WANT_DATADIR, WANT_LCOALEDIR, WANT_AGENT_SSH_SOCKET): New
	(WANT_DIRMNGR_SOCKET): New.
	(dirinfo): Add fields 'sysconfdir', 'bindir', 'libexecdir', 'libdir',
	'datadir', 'localedir', 'agent_ssh_socket', and 'dirmngr_socket'.
	(parse_output): Set these fields.
	(get_gpgconf_item): Return them.
	(gpgme_get_dirinfo): Likewise.

	core: Base gpgme_get_dirinfo(uiserver-socket) on the socket dir.
	+ commit c9e7dcb100d807583d8e312da459561138231376
	* src/dirinfo.c (dirname_len): New.
	(parse_output): Change computation of UISRV_SOCKET.

2016-08-21  Werner Koch  <wk@gnupg.org>

	core: New commands --lang and --have-lang for gpgme-config.
	+ commit 3e60788810f93cfcd7f08e5882aff32ed7b6f831
	* configure.ac (GPGME_CONFIG_AVAIL_LANG): New ac_subst.
	* src/gpgme-config.in (avail_lang): Add commands --lang and
	--have-lang.

2016-08-18  Andre Heinecke  <aheinecke@intevation.de>

	core: Remove (now) useless diagnostic.
	+ commit 30f156280f18500ee522db58aecd40711c8af685
	* src/w32-io.c(_gpgme_io_spawn): Remove spawnhelper not found
	diagnostic.

	core: Fail loudly in case w32 spawner not found.
	+ commit 9cf983b0199950c8f8cccee2cb8e45aafcba9fd1
	* src/w32-io.c (_gpgme_io_spawn): Show a message box in
	case gpgme-w32spawn.exe not found.

2016-08-17  Andre Heinecke  <aheinecke@intevation.de>

	Cpp: Fix some pedantic warnings.
	+ commit 64194b0f8df1afe6135cd119fd3216fc8db68033
	* lang/cpp/src/context.cpp,
	lang/cpp/src/context.h (Context::getKeysFromRecipients): Remove
	ignored / invalid const qualifier.
	* lang/cpp/src/result.h: Don't shadow error function in ctor.

2016-08-16  Werner Koch  <wk@gnupg.org>

	core: New global flag "require-gnupg".
	+ commit 8c09dd9989bcd434a8cb5997770cb8414b96bd5c
	* src/gpgme.c (gpgme_set_global_flag): Add flag.
	* src/engine.c (engine_minimal_version): New variable.
	(_gpgme_set_engine_minimal_version): New function.
	(gpgme_get_engine_info): Check that flag.

	* tests/run-keylist.c (main): New option --require-gnupg.

	core: Simplify setting of dummy versions.
	+ commit b7b0e7b5bfefd51c8092ea54f262b18aebf78128
	* src/engine.c (_gpgme_engine_info_release): Do not assert but free
	FILE_NAME.
	(gpgme_get_engine_info): Provide default for VERSION and REQ_VERSION.
	Use calloc instead of malloc.
	(_gpgme_set_engine_info): Ditto.
	* src/engine-assuan.c (llass_get_version): Return NULL.
	(llass_get_req_version): Ditto.
	* src/engine-spawn.c (engspawn_get_version): Ditto.
	(engspawn_get_req_version): Ditto.
	* src/engine-uiserver.c (uiserver_get_version): Ditto.
	(uiserver_get_req_version): Ditto.

2016-08-12  Andre Heinecke  <aheinecke@intevation.de>

	Qt: Add test for progress signal of encryptjob.
	+ commit 391e55411cda11446ca9de4dd0dc2b54d3e6fff5
	* lang/qt/tests/t-encrypt.cpp (testProgress): New.

	Cpp: Provide size-hint for seekable and mem data.
	+ commit df7bbf5a66576a5a320b54c8f6ad52bc84f0e833
	* lang/cpp/src/data.cpp (GpgME::Data::Data): Set size-hint for
	mem and DataProvider based Data.

2016-08-12  Werner Koch  <wk@gnupg.org>

	core: Make use of the "size-hint" in engine-gpg.
	+ commit fe1e8e71aa18b4ac6471292b2894b8859f42f7c8
	* src/engine-gpg.c: Include data.h.
	(add_input_size_hint): New.
	(gpg_decrypt, gpg_encrypt, gpg_encrypt_sign, gpg_sign)
	(gpg_verify): Call new function,

	* tests/run-encrypt.c (status_cb): Print to stderr.
	(progress_cb): New.o
	(main): Add option --progress.  Print full-status lines.  Provide a
	size for the input data.

	core: Add gpgme_data_set_flag to add more meta data to data objects.
	+ commit 293d1736911fd5e77b8cec305168b35b2420c612
	* src/gpgme.h.in (gpgme_data_set_flag): New public function.
	* src/data.c (gpgme_data_set_flag): New.
	(_gpgme_data_get_size_hint): New.
	* src/data.h (strucy gpgme_data): Add field 'size_hint'.
	* src/gpgme.def, src/libgpgme.vers: Add new function.
	* src/conversion.c (_gpgme_string_to_off): New.

2016-08-12  Andre Heinecke  <aheinecke@intevation.de>

	Qt: Fix defaultkeygenerationjob build.
	+ commit 75c974c4e0a31981325f7d151bd13f2523f5df20
	* lang/qt/src/defaultkeygenerationjob.cpp: Include moc.

2016-08-11  Andre Heinecke  <aheinecke@intevation.de>

	Qt: Add DefaultKeyGenerationJob.
	+ commit 105f5446e69db00291164397cf0d8e68374cf420
	* lang/qt/src/defaultkeygenerationjob.cpp,
	lang/qt/src/defaultkeygenerationjob.h: New.
	* lang/qt/src/Makefile.am: Update accordingly.

	Qt: Ensure all public classes are exported.
	+ commit 59e2251a083b0ed61b3ab6d47015cef7cc6ceb05
	* src/abstractimportjob.h,
	src/cryptoconfig.h,
	src/deletejob.h,
	src/exportjob.h,
	src/importfromkeyserverjob.h,
	src/importjob.h,
	src/keygenerationjob.h,
	src/keylistjob.h,
	src/listallkeysjob.h,
	src/refreshkeysjob.h,
	src/signencryptjob.h,
	src/specialjob.h,
	src/verifydetachedjob.h: Export classes.

	Qt: Add KeyForMailboxJob.
	+ commit 8c5abc8d932affab4bc79a85e3f98f6f6b982ae8
	* lang/qt/src/job.cpp: Include moc and make subclass.
	* lang/qt/src/keyformailboxjob.h,
	lang/qt/src/qgpgmekeyformailboxjob.cpp,
	lang/qt/src/qgpgmekeyformailboxjob.h: New.
	* lang/qt/tests/run-keyformailboxjob.cpp: New manual test.
	* lang/qt/tests/Makefile.am: Add run-keyformailboxjob.
	* lang/qt/src/Makefile.am: Update accordingly.
	* lang/qt/src/protocol.h, lang/qt/src/protocol_p.h: Add
	keyformailboxjob.

2016-08-10  Werner Koch  <wk@gnupg.org>

	doc: Get rid of version.texi.
	+ commit b7d99e02188b7907b09fec3032fc1fd82fc2668a
	* configure.ac (CC_FOR_BUILD): New.
	* doc/mkdefsinc.c: New.  Taken from GnuPG and modified for gpgme.
	* doc/Makefile.am (EXTRA_DIST): Add defsincdate and mkdefsinc.c
	(BUILT_SOURCES): new.
	(gpgme.texi): New dependency.
	(mkdefsinc, defsincdate, defs.inc): New rules.
	(dist-hook): New.
	* doc/gpgme.texi: Include defs.inc.  Remove version.texi.

	build: Declare all languages for make dist.
	+ commit 48691db97b759d67aa7b49c36bb704b5806ade2e
	* lang/Makefile.am (DIST_SUBDIRS): New.

	core: Do not identify PNG files as PGP signatures.
	+ commit a9168185ba97aa1d827315cd8017899bf904aded
	* src/data-identify.c (next_openpgp_packet): Blacklist PNG files.

2016-08-10  Andre Heinecke  <aheinecke@intevation.de>

	Cpp: Handle empty recipients consistently.
	+ commit 09667a6006986a782af98ca1de4d6521e1b8f353
	* lang/cpp/src/context.cpp (Context::getKeysFromRecipients):
	New helper.
	(Context::encrypt, Context::startEncryption, Context::signAndEncrypt)
	(Context::startCombinedSigningAndEncryption): Use new helper.
	* lang/cpp/src/context.h (Context::getKeysFromRecipients): Add
	as private helper.

	core: Handle ENCRYPT_SYMMETRIC also for sig & enc.
	+ commit b602d8bc7bd726afb52dc60cc07e4609e88d4511
	* src/engine-gpg.c (gpg_encrypt_sign): Handle ENCRYPT_SYMMETRIC
	flag.

	Qt: Remove unused variable.
	+ commit d467018ce36f5be36751267c3b6079e8c1ee5d8a
	* lang/qt/src/qgpgmerefreshkeysjob.cpp (slotStatus): Remove
	unused variable typ.

	Qt: Create TestPassphraseProvider on stack.
	+ commit a27d7755d071aad42efc2aa4ea3899ba7b17f8bf
	* lang/qt/tests/t-encrypt.cpp, lang/qt/tests/t-tofuinfo.cpp: Create
	TestPassphraseProvider on stack.

	Cpp: Clarify ownership of provider classes.
	+ commit 21d5e71d486da8e37cf53f2b968646b39a6daa72
	* lang/cpp/src/context.h: Note that the context does not take
	ownership of providers.

2016-08-10  Justus Winter  <justus@g10code.com>

	tests: Fix memory leak.
	+ commit 04f994d5db6db0575dc73c2356c7d51424e2d9fe
	* tests/gpg/t-encrypt-mixed.c (main): Free 'text2'.

2016-08-10  Andre Heinecke  <aheinecke@intevation.de>

	core: Ensure err is initalized in gpg_encrypt.
	+ commit 270887309f4b673b13e58c29ea3989c56989590e
	* src/engine-gpg.c (gpg_encrypt): Initialize err.

	Qt: Fix t-keylist moc include.
	+ commit 0c222e1b3cabe1a8b84a2877420cdd5df56171b5
	* lang/qt/tests/t-keylist.cpp: Don't include t-support.moc

2016-08-09  Andre Heinecke  <aheinecke@intevation.de>

	Qt: Clean up debug output in tests.
	+ commit 969f223d8de21d7c8b0f7646bbf8dbb5864e8d03
	* lang/qt/tests/t-support.cpp: Remove accidentally commited
	debug output.

	Qt: Add encryption test and refactor testsuite.
	+ commit f209ec8f581ae597b37f2e3a5e452e4b53b2d4c7
	* lang/qt/tests/Makefile.am: Add t-encrypt and t-support.
	* lang/qt/tests/t-support.cpp, lang/qt/tests/t-support.c (QGpgMETest):
	New. Class to handle common cleanup / init.
	* lang/qt/tests/t-keylist.cpp,
	lang/qt/tests/t-keylocate.cpp,
	lang/qt/tests/t-ownertrust.cpp,
	lang/qt/tests/t-tofuinfo.cpp: Inherit QGpgMETest.
	* lang/qt/tests/t-encrypt.cpp: New. Test Symetric and Asymectric
	encryption. Mixed encryption test is disabled.

	Qt: Add support for EncryptJobs with generic flags.
	+ commit 34b456c3fb9e59788b07a75441da482bb28bda87
	* lang/qt/src/encryptjob.h, lang/qt/src/signencryptjob.h,
	lang/qt/src/qgpgmeencryptjob.h, lang/qt/src/qgpgmeencryptjob.cpp,
	lang/qt/src/qgpgmesignencryptjob.cpp,
	lang/qt/src/qgpgmeencryptjob.cpp: Add start and exec overloads
	that accept generic EncryptFlags.

	Cpp: Add support for all EncryptionFlags.
	+ commit 17372393798ea5e2d6838f3dd1e001dd4a66c941
	* lang/cpp/src/context.h (EncryptionFlags): Extend.
	* lang/cpp/src/context.cpp (encryptflags2encryptflags): Ditto.

	Cpp: Fix simple symmetric encryption.
	+ commit bf776ce94cf454f1b3f1645b1cde09cd1c54324b
	* lang/cpp/src/context.cpp (Context::encrypt): If no recipients
	are provided encrypt with NULL and not an empty array.

	core: Add support for mixed symmetric and asym enc.
	+ commit 3d2f027d0f40e7ec4ab48cee89ff0ee10b423566
	* src/gpgme.h.in (gpgme_encrypt_flags_t): New flag
	GPGME_ENCRYPT_SYMMETRIC.
	* src/engine-gpg.c (gpg_encrypt): Also add --symmetric if the flag
	is given.
	* NEWS: Mention new flag.
	* tests/run-encrypt.c (show_usage): Extend for --symmetric.
	(main): Handle --symmetric.
	(main): Set passphrase_cb in loopback mode.
	(main): Fix encrypt call if no recipients are given.
	* tests/gpg/t-encrypt-mixed.c: New.
	* tests/gpg/Makefile.am (c_tests): Add new test.
	* doc/gpgme.texi: Document new flag.

2016-08-08  Werner Koch  <wk@gnupg.org>

	core: Let GPGME_PROTOCOL_ASSUAN pass Assuan comments through.
	+ commit b5e16b036f0045524a583d8a366d8a3366fc0005
	* src/engine-assuan.c (llass_new): Set ASSUAN_CONVEY_COMMENTS,

2016-08-08  Andre Heinecke  <aheinecke@intevation.de>

	Prepend LD_LIBRARY_PATH for python tests.
	+ commit ab6f66d676581cb497e581e4af40e2fe5bff507b
	* lang/python/tests/Makefile.am (TESTS_ENVIRONMENT): Prepend path
	instead of setting the value.

2016-08-05  Justus Winter  <justus@g10code.com>

	python: Clean up and modernize examples.
	+ commit 2a613e87156b23c4aa6aa5ce38505cb285de6a18
	* lang/python/examples/Examples.rst: Delete file.
	* lang/python/examples/t-edit.py: Likewise.  This is actually a test
	case and has been moved to 'tests'.
	* lang/python/examples/assuan.py: New file.
	* lang/python/examples/decryption-filter.py: Likewise.
	* lang/python/examples/delkey.py: Modernize.
	* lang/python/examples/encrypt-to-all.py: Likewise.
	* lang/python/examples/exportimport.py: Likewise.
	* lang/python/examples/genkey.py: Likewise.
	* lang/python/examples/inter-edit.py: Likewise.
	* lang/python/examples/sign.py: Likewise.
	* lang/python/examples/signverify.py: Likewise.
	* lang/python/examples/simple.py: Likewise.
	* lang/python/examples/testCMSgetkey.py: Likewise.
	* lang/python/examples/verifydetails.py: Likewise.

2016-08-04  Werner Koch  <wk@gnupg.org>

	core: Extend gpgme_subkey_t to carry the keygrip.
	+ commit 6f3dc66634e30d86aa6250c4ac22f9b8f7ec1be9
	* src/gpgme.h.in (struct _gpgme_subkey): Add file 'keygrip'.
	* src/key.c (gpgme_key_unref): Free KEYGRIP.
	* src/keylist.c (keylist_colon_handler): Parse GRP records.
	* src/engine-gpg.c (gpg_keylist_build_options): Do not use
	--with-fingerprint options for gpg versions >= 2.1.15.

	* tests/run-keylist.c (main): Print subkeys and keygrips.

2016-08-03  Justus Winter  <justus@g10code.com>

	python: Add a nicer interface to list keys.
	+ commit 56e26b54da9f16961209275d7a61883d3ea898ca
	* lang/python/pyme/core.py (Context.keylist): New method.
	* lang/python/tests/t-keylist.py: Test new method.

2016-08-02  Justus Winter  <justus@g10code.com>

	python: Add a flag identifying in-tree builds.
	+ commit 4c8265d32ddff5960a464b8d4e8d7d2258495b2e
	* lang/python/helpers.c (pyme_in_tree_build): New variable.
	* lang/python/helpers.h (pyme_in_tree_build): New declaration.
	* lang/python/pyme/version.py.in (in_tree_build): New variable.
	* lang/python/setup.py.in: Rework macro handling, set 'IN_TREE_BUILD'
	as appropriate.

	python: Fix build system integration.
	+ commit 0bd7d8c1977183abc414e11aafa26a4f834ca2a5
	* lang/python/Makefile.am: Be more careful when cleaning the build
	directory, we must not delete the generated file 'pyme/version.py'.

	doc: Document the Assuan protocol.
	+ commit 135185b7ef2225aa5e8c54a6cf1265d3e6cbbe48
	* doc/gpgme.texi: Document the Assuan protocol.

2016-07-28  Justus Winter  <justus@g10code.com>

	python: Fix out-of-tree build.
	+ commit 4e728de8421e2ade2061786aaebcdae3f60da3b8
	* lang/python/MANIFEST.in: Add 'private.h'.

	python: Improve error handling.
	+ commit 5a7c7a86f7e8eaf10e37138617a2d838f9d4466f
	* lang/python/pyme/core.py (Context.protocol): Check that the engine
	is usable before setting the protocol.
	(Context._errorcheck): Add missing functions.

	src: Fix dummy engine versions.
	+ commit b9e6eacd06ffeb36854c208aa4325cff3e3dfbbe
	Previously, 'gpgme_engine_check_version' failed for these protocols
	because the version parser failed to parse the dummy versions.

	* src/engine-assuan.c (llass_get_version): Use a version triple that
	the parser can understand.
	(llass_get_req_version): Likewise.
	* src/engine-spawn.c (engspawn_get_version): Likewise.
	(engspawn_get_req_version): Likewise.
	* src/engine-uiserver.c (uiserver_get_version): Likewise.
	(uiserver_get_req_version): Likewise.

	python: Drop superfluous imports and trim public interface.
	+ commit 2ff58fcbd5c060dac3a7feec478819d2c5a164ec
	* lang/python/pyme/__init__.py: Avoid leaking low-level 'gpgme', make
	sure the main module looks nice and tidy, appease pyflakes.
	* lang/python/pyme/errors.py: Appease pyflakes.
	* lang/python/pyme/util.py: Avoid leaking low-level 'gpgme' into the
	module namespace.
	* lang/python/pyme/version.py.in: Likewise.
	* lang/python/tests/t-keylist.py: Drop superfluous imports.
	* lang/python/tests/t-sig-notation.py: Likewise.
	* lang/python/tests/t-sign.py: Likewise.
	* lang/python/tests/t-signers.py: Likewise.

	python: Rename compiled SWIG module.
	+ commit 2f754440f28e8f81babdf7efa6186edbc8ad99fd
	Avoid the name pygpgme, as this is the name of another popular Python
	binding for GPGME.

	This commit renames the compiled Python module produced by SWIG.

	* lang/python/Makefile.am: Rename the compiled Python module.
	* lang/python/gpgme.i: Likewise.
	* lang/python/pyme/core.py: Likewise.
	* lang/python/pyme/errors.py: Likewise.
	* lang/python/pyme/util.py: Likewise.
	* lang/python/pyme/version.py.in: Likewise.
	* lang/python/setup.py.in: Likewise.

	python: Rename exported functions.
	+ commit b5aa05c3b261c3846ebbcf76e7505cff5459f918
	Avoid the name pygpgme, as this is the name of another popular Python
	binding for GPGME.

	This commit renames all functions that are exported to the Python
	world.

	* lang/python/helpers.c: Rename all exported functions.
	* lang/python/helpers.h: Likewise.
	* lang/python/pyme/core.py: Likewise.

	python: Rename private functions.
	+ commit 1d2f22aae668ce136cacd254875e118dc1faa6a2
	Avoid the name pygpgme, as this is the name of another popular Python
	binding for GPGME.

	This commit renames all functions that are not exported to the Python
	world.

	* lang/python/gpgme.i: Rename all private functions.
	* lang/python/helpers.c: Likewise.
	* lang/python/helpers.h: Likewise.
	* lang/python/private.h: Likewise.  Also move the SWIG runtime helper
	prototypes here.

	python: Support the Assuan engine.
	+ commit de69fa496c09386d5e99747670d6887cf52dd09e
	* lang/python/gpgme.i: Add typemaps for the Assuan protocol callbacks.
	* lang/python/helpers.c (_pyme_assuan_{data,inquire,status}_cb): New
	functions.
	* lang/python/private.h (_pyme_assuan_{data,inquire,status}_cb): New
	prototypes.
	* lang/python/pyme/core.py (Context.assuan_transact): New method.
	* lang/python/pyme/util.py (percent_escape): New function.
	* lang/python/tests/Makefile.am (py_tests): Add new test.
	* lang/python/tests/t-protocol-assuan.py: New file.

	python: Improve engine information handling.
	+ commit 355d7072863ac1f0f725e77141a59f3ed8a5e4af
	* lang/python/gpgme.i (gpgme_engine_info_t): Wrap engine infos.
	* lang/python/pyme/core.py (Context.engine_info): New property.
	(Context.{g,s}et_engine_info): Improve docstrings.
	* lang/python/pyme/results.py (EngineInfo): New class.

	python: Add accessors for the protocol.
	+ commit 78f7bf4dcf75206faae5776c2ee4166628313532
	* lang/python/pyme/core.py (Context.__init__): Add 'protocol'
	parameter.
	(Context.protocol): New accessors.

	python: Expose less functions to the Python world.
	+ commit 3d4dc3f0218234a27103bdb6f93b17c0703b71a2
	* lang/python/Makefile.am (EXTRA_DIST, COPY_FILES): Add new file.
	* lang/python/gpgme.i: Include new file and add comments.
	* lang/python/helpers.c: Include new file.
	* lang/python/helpers.h: Move functions we do not need to expose...
	* lang/python/private.h: ... here.

2016-07-19  Ben Kibbey  <bjk@luxsci.net>

	Fix including nil bytes in keylist output.
	+ commit 6a7ee33abd5059f5ae2f70a7dd9f610c16552f8e
	* src/gpgme-tool.c (cmd_keylist,gt_result): use strlen().

2016-07-15  Justus Winter  <justus@g10code.com>

	python: Make GPGME's version easily accessible.
	+ commit e545ca3f682b615ce447c186a2c73489a32b0592
	* lang/python/pyme/version.py.in (gpgme_versionstr): New variable.

	python: Add an idiomatic interface.
	+ commit 1f318b7aaaa77672fab117d54fe75221780df83c
	* configure.ac: Bump required Python version.
	* lang/python/pyme/__init__.py: Update docstring.  Import Context and
	Data.
	* lang/python/pyme/core.py (Context.encrypt): New function.
	(Context.decrypt): Likewise.
	(Context.sign): Likewise.
	(Context.verify): Likewise.
	* lang/python/pyme/errors.py: Add new errors.
	* lang/python/pyme/util.py (process_constants): Rework and return the
	inserted keys.
	* lang/python/tests/Makefile.am (EXTRA_DIST): Add new keys.
	* lang/python/tests/encrypt-only.asc: New file.
	* lang/python/tests/sign-only.asc: Likewise.
	* lang/python/tests/initial.py: Mark key 'Alpha' as trusted, import
	new keys.
	* lang/python/tests/support.py: Add fingerprints of known keys.
	(in_srcdir): New function.
	(print_data): Handle bytes too.
	(mark_key_trusted): New function.
	* lang/python/tests/t-decrypt-verify.py: Adjust test.  Test idiomatic
	interface.
	* lang/python/tests/t-decrypt.py: Test idiomatic interface.
	* lang/python/tests/t-encrypt-sign.py: Likewise.
	* lang/python/tests/t-encrypt-sym.py: Likewise.
	* lang/python/tests/t-encrypt.py: Likewise.
	* lang/python/tests/t-idiomatic.py: Simplify.
	* lang/python/tests/t-keylist.py: Adjust to newly trusted key.
	* lang/python/tests/t-sign.py: Likewise.  Test idiomatic interface.
	* lang/python/tests/t-signers.py: Likewise.
	* lang/python/tests/t-verify.py: Likewise.

2016-07-14  Andre Heinecke  <aheinecke@intevation.de>

	Qt: Disable keylocate test for gnupg < 2.0.10.
	+ commit d2f2cbd297c4d2f2c3264ecc3ffb7a2b3a70bd55
	* lang/qt/tests/t-keylocate.cpp: Disable test for gnupg < 2.0.10

	Cpp: Add EngineInfo::Version class.
	+ commit 41de1ab904eaddffb2de17b1de8ef41e462daabe
	* lang/cpp/src/engineinfo.cpp (EngineInfo::engineVersion): New.
	* lang/cpp/src/engineinfo.h (EngineInfo::engineVersion): Declare.
	(EngineInfo::Version): Small helper to work with versions.

	Qt: Fix usage of ignore-invalid-option in tests.
	+ commit e7f4c364732660c6cda25720b7dbc5b1c917e368
	* Makefile.am (pubring-stamp): Fix config.

	Qt: Fix tests if gpg2 is gpg.
	+ commit e4c0645c1eea9380d80a20895eb83c9dd7228776
	* lang/qt/tests/Makefile.am (pubring-stamp): Loopback and provide
	passphrase on command line when importing.

2016-07-14  Justus Winter  <justus@g10code.com>

	python: Fix test.
	+ commit fddcc62abd57cb04e84861abd3991c7d529c2464
	* lang/python/tests/t-keylist.py: Do not assume key alpha is trusted
	yet.

2016-07-13  Werner Koch  <wk@gnupg.org>

	build: Update config.{guess,sub} to {2016-05-15,2016-06-20}.
	+ commit a9670d152a4598aef1ae0960a79fb6f5d8db55ad
	* build-aux/config.guess: Update.
	* build-aux/config.sub: Update.

	core: New GPGME_DATA_ENCODING_MIME.
	+ commit d8d5f5a16712244fe6eff860b6ac5f007b1bf870
	* src/gpgme.h.in (GPGME_DATA_ENCODING_MIME): New.
	* src/data.c (gpgme_data_set_encoding): Adjust check.
	* src/engine-gpg.c (have_gpg_version): New.
	(gpg_encrypt, gpg_encrypt_sign): Pass flag '--mimemode'.
	(gpg_sign): Ditto.

	* lang/cpp/src/data.h (GpgME): Add MimeEncoding.
	* lang/cpp/src/data.cpp (encoding, setEncoding): Support MimeEncoding.

	* src/gpgme-tool.c (server_data_encoding): Add flag --mime.

	core: Pass the engine's version string to the engine's new function.
	+ commit 2095b1573a8196ba3efdf817324d1b3ee05cbb93
	* src/engine-backend.h (engine_ops): Add arg 'version' to NEW.
	* src/engine-assuan.c (llass_new): Add dummy arg 'version'.
	* src/engine-g13.c (g13_new): Ditto.
	* src/engine-gpgconf.c (gpgconf_new): Ditto.
	* src/engine-gpgsm.c (gpgsm_new): Ditto.
	* src/engine-spawn.c (engspawn_new): Ditto.
	* src/engine-uiserver.c (uiserver_new): Ditto.
	* src/engine.c (_gpgme_engine_new): Pass version string to the new
	function.
	* src/engine-gpg.c (struct engine_gpg): Add field 'version'.
	(gpg_new): Add arg 'version'.
	(gpg_release): Free VERSION.

2016-07-13  Andre Heinecke  <aheinecke@intevation.de>

	Cpp: Add feature enum for new identify.
	+ commit 537cb871fd59f3a20c697a046715e6339ff6633b
	* lang/cpp/src/context.cpp (supported_features2): Add
	BinaryAndFineGrainedIdentify
	* lang/cpp/src/global.h (Feature2): ditto.

2016-07-12  Justus Winter  <justus@g10code.com>

	python: Port more tests.
	+ commit 1bff47ee58bcf9d0016fb7ac7e37cbf075abd059
	* lang/python/pyme/core.py (Context.op_keylist_all): Add missing
	'op_keylist_end'.
	(Context.op_trustlist_all): Fix function. Add missing
	'op_trustlist_end'.
	* lang/python/tests/Makefile.am (pytests): Add new files.
	* lang/python/tests/t-import.py: New file.
	* lang/python/tests/t-keylist.py: Likewise.
	* lang/python/tests/t-trustlist.py: Check alternate interface.

	python: Improve python packaging.
	+ commit 57b51685528153f5a50ab0999feec25c83190501
	* lang/python/Makefile.am: Sign source releases, and upload them.
	* lang/python/setup.py.in: Add categories.

2016-07-12  Andre Heinecke  <aheinecke@intevation.de>

	m4: Don't set fpic for qt on windows.
	+ commit 938f7e9c8b466594d05c0347fe627b225263a6a6
	* m4/qt.m4 (FIND_QT): Do not set fpic for windows.

	m4: Use LIBS instead of LDFLAGS for Qt libs.
	+ commit 744978cce8f9dfb2363b9d274ee99f25cfcf0e40
	* m4/qt.m4: Modify LIBS instead of LDFLAGS for link test.

	Bump version to 1.7.0.
	+ commit bf742fb88545689addfca18192baf2f56a1895e1
	* configure.ac(mym4_version_minor),
	(mym4_version_micro): Next release will be 1.7.0

	Qt: Install CamelCase forward includes.
	+ commit fd87c4679c4bfe19390fa2047dff23bb213a4b18
	* lang/qt/src/Makefile.am (camelcase_headers): New. Create and install
	CamelCase headers.

	Qt: Export VerifyDetachedJob.
	+ commit 86ab2ee2d603111d24500b8d64a9a1dd82f8bdc0
	* lang/qt/src/verifydetachedjob.h (VerifyDetachedJob): Export it.

	Qt/Cpp: Add version headers.
	+ commit b03c48cfb06faae7d7033a0532f319cbcf13f18a
	* lang/cpp/src/gpgmepp_version.h.in,
	lang/qt/src/qgpgme_version.h.in: New. Version information.
	* lang/qt/src/Makefile.am, lang/cpp/src/Makefile.am: Add them.
	* configure.ac: Configure them.

	Qt/Cpp: Add license blurb to export headers.
	+ commit 362b8cdf4e0d5cd54ec2b325508dcdefac686f2c
	* lang/cpp/src/gpgmepp_export.h,
	lang/qt/src/qgpgme_export.h: Add license blurb.

2016-07-11  Justus Winter  <justus@g10code.com>

	python: Fix distcheck.
	+ commit ce662891373eba6cce1cf8df516cb2370970737e
	* lang/python/Makefile.am (EXTRA_DIST): Add missing files.

2016-07-11  Andre Heinecke  <aheinecke@intevation.de>

	m4: Add compile / link check for qt.
	+ commit ed070313155a1c79a57ba69f4299f2aefc65fad7
	* m4/qt.m4 (FIND_QT): Check if a qt application can be compiled and
	linked.

2016-07-11  Justus Winter  <justus@g10code.com>

	python: Enable out-of-tree build of pyme bindings.
	+ commit 007382ce94a6318557370c440f7d609a030a119e
	* lang/python/MANIFEST.in: Update manifest template.
	* lang/python/Makefile.am: Copy more files, move generation of files
	to Python build script, add 'sdist' target to build a Python source
	distribution.
	* lang/python/gpgme-h-clean.py: Add code to build 'errors.i'.
	* lang/python/setup.py.in: Generate files, enable out-of-tree builds.

	python: Do not depend on access to internal data structures.
	+ commit 98cba522c906115efcba1f8cc0bec7e5edb51ecd
	* lang/python/gpgme.i (gpgme_data_t): Rework so that it works without
	access to the definition of 'struct gpgme_data'.
	* lang/python/helpers.c (object_to_gpgme_data_t): Add assertion.

	python: Make result wrapping backwards compatible.
	+ commit c53f87c5f9ca63119152f41dcebfb175d4df2cef
	* lang/python/pyme/results.py (Result.__init__): Skip missing fields.

2016-07-11  Andre Heinecke  <aheinecke@intevation.de>

	Qt: Fix memleaks in tests.
	+ commit bfa8ac7e02c16790ee5bd3b42c26699f4821d72e
	* lang/qt/tests/t-keylist.cpp(cleanupTestCase): Ensure that
	posted events are handled for autodeletion.
	(testSingleKeylistSync): delete job.
	* lang/qt/tests/t-ownertrust.cpp(cleanupTestCase): Ditto
	* lang/qt/tests/t-ownertrust.cpp(testChangeOwnerTrust): Delete
	keylistjobs.
	* lang/qt/tests/t-keylocate.cpp(cleanupTestCase): Ditto

	Qt: Add some general Protocol documentation.
	+ commit b1f42e8f25ada220ec8e4762cfebc3a49b1f7d56
	* lang/qt/src/protocol.h (Protocol): Add doc.

	Qt: Disable t-tofuinfo tests.
	+ commit 02babb29612d554c37b63a49f78acc45653b557e
	* lang/qt/tests/t-tofuinfo.cpp: Disable tests.

2016-07-08  Justus Winter  <justus@g10code.com>

	src: Fix error handling.
	+ commit de74fe59feef9adc858ac04004880bfd44315d0d
	* src/encrypt.c (encrypt_status_handler): Fix error handling, ||
	conflates errors.

	python: Fix raising stashed exceptions.
	+ commit 8a93f345b701332270c9829a4d0a93537f98a8d8
	Fixes an issue with newer versions of Python.

	* lang/python/helpers.c (pygpgme_raise_callback_exception): Be more
	careful when restoring the exception.

2016-07-07  Justus Winter  <justus@g10code.com>

	python: Fix distcheck.
	+ commit 52efcf1ee9fc8ba4c6bd23d8fe4f5f7993ba9fb1
	* lang/python/INSTALL: Drop obsolete file.
	* lang/python/Makefile.am (EXTRA_DIST): Add missing files.
	(CLEANFILES): Remove generated files.
	(clean-local): Fix permissions of copied files.
	* lang/python/tests/Makefile.am (TESTS): Use our own setup and
	teardown scripts.
	(EXTRA_DIST): Add missing files.
	* lang/python/tests/final.py: New file.
	* lang/python/tests/initial.py: Likewise.

	qt: Fix distcheck.
	+ commit 38c408560c6ebc3ea5eeeade01d38750bf5799e5
	* lang/qt/src/Makefile.am (qgpgme_headers): Add missing file.
	(CLEANFILES): Add generated file.
	* lang/qt/tests/Makefile.am (clean-local): Remove private keys.

	cpp: Fix distcheck.
	+ commit 49286ac1c82c480e2c718f828c57da9778ccd0b9
	* lang/cpp/src/Makefile.am (CLEANFILES): Remove generated file.

2016-07-06  Andre Heinecke  <aheinecke@intevation.de>

	Qt: Add test for publicKeyAlgorithmAsString.
	+ commit fc0267233239b42e9fb74a8acd7511503e287a9e
	* lang/qt/tests/t-keylist.cpp (testPubkeyAlgoAsString): New.

	Cpp: Expose gpgme_pubkey_algo_name.
	+ commit e41ae4db9e70d9aebf80ebbd4ce03977435c2ccf
	* lang/cpp/src/key.cpp (Subkey::publicKeyAlgorithmAsString): New
	static variant.
	* lang/cpp/src/key.h: Declare function. Clarify comment about name
	mismatch.

	Qt: Add check for pubkeyAlgo in t-keylist.
	+ commit 9f93346d21271b916f15d80420669f5d659a40de
	* lang/qt/tests/t-keylist.cpp (testSingleKeyListSync): Check
	pubkeyAlgo.

	Cpp: Add PubkeyAlgo enum.
	+ commit c28007d0407bcc3621b8266d6d77eb0d069aec35
	* lang/cpp/src/key.h (Subkey::PubkeyAlgo): New enum.
	(Subkey::publicKeyAlgorithm): Change return type.
	* lang/cpp/src/key.cpp (Subkey::publicKeyAlgorithm): Use enum.

	Qt: Fix include order when buildin test.
	+ commit 4934893e27a50f5715dcd4d2907ecbe629921b32
	* lang/qt/tests/Makefile.am (AM_CPPFLAGS): Include cpp before
	gpgme src directory.

	Revert "Qt: More robust lookup of Cpp's context.h"
	+ commit 7a8c04f66d382dc49d962ad18c46d7ad332ccc0f
	* lang/qt/src/threadedjobmixin.h: Revert using full path
	for context.h

2016-07-05  Andre Heinecke  <aheinecke@intevation.de>

	Qt: Fix test build with Qt < 5.4.0.
	+ commit 49a6ee50587c9d4b6f07e60ce1a939c863e7f15c
	* lang/qt/tests/t-keylist.cpp,
	lang/qt/tests/t-keylocate.cpp,
	lang/qt/tests/t-ownertrust.cpp: Use old style SIGNAl syntax for
	QSignalSpy

	Qt: More robust lookup of Cpp's context.h.
	+ commit 47bfbc9026b49b9918359af5fcc1621aab0d1065
	* lang/qt/src/threadedjobmixin.h: When building qgpgme look for
	context.h in the full cpp subdirectory.

	w32: Fallback to 2.1 reg key for gpgconf search.
	+ commit 72b83ffc4d7581f4efef3bd7c261d7d7424bcf0e
	* src/w32-util.c (_gpgme_get_gpgconf_path): Fallback to 2.1 installer
	 registry key.

2016-07-04  Andre Heinecke  <aheinecke@intevation.de>

	Doc: Document pinentry mode.
	+ commit 329ab93f7ed862d7f4c0501fca5355936a74ac52
	* doc/gpgme.texi (Passphrase Callback): Document as context
	attribute.
	(gpgme_set_passphrase_cb): Note that this requires LOOPBACK mode
	with GnuPG 2.1.

	Qt: Add testTofuSignCount.
	+ commit 8fa9b5696ca9f8386971e6f36646536f9579ceaa
	* src/lang/qt/tests/t-tofuinfo.cpp(testTofuSignCount): New.
	(initTestCase): Set gpg-agent loopback pinentry config.
	(signAndVerify): Helper for tofuTestSignCount.

	Qt: Add test passphrase provider.
	+ commit efb5059b9b6e81db7b0c016aa9fb70abe98308ea
	* lang/qt/tests/t-support.h (TestPassphraseProvider): New.
	* lang/qt/tests/Makefile.am (t_tofuinfo_SOURCES): Add t-support.h

	Cpp: Add support for TOFU_CONFLICT sigsum.
	+ commit 80498ab662238a31325e78c0037ea6752f680a37
	* lang/cpp/src/verificationresult.cpp (GpgME::Signature::Summary):
	Handle TOFU_CONFLICT.
	* lang/cpp/src/verificationresult.h (Summary): Add TofuConflict.

	Cpp: Add support for pinentry_mode.
	+ commit d75c118aae18e20f08dbbb69c7998e1f3694ccd0
	* lang/cpp/src/context.cpp (Context::pinentryMode): Return mode.
	(Context::setPinentryMode): Set mode.
	* lang/cpp/src/context.h (PinentryMode): Add enum.

2016-07-01  Andre Heinecke  <aheinecke@intevation.de>

	Qt: Add test for TofuInfo.
	+ commit fbd6ac4655ebf56d91ebd9a4ff499c8319fcd087
	* lang/qt/tests/t-tofuinfo.cpp: New.
	* lang/qt/tests/Makefile.am: Update accordingly.

	Cpp: Add TofuInfo to signatures.
	+ commit 93c5d420fcfe275aeff2b3d5ce99629edbe6625d
	* lang/cpp/src/tofuinfo.cpp, lang/cpp/src/tofuinfo.h: New class.
	* lang/cpp/src/verificationresult.cpp (Signature::tofuInfo): New.
	(VerificationResult::Private): Handle tofu info.
	(GpgME::operator<<(std::ostream &os, const Signature &sig)): Include
	TofuInfo in dump.
	* lang/cpp/src/verificationresult.h (Signature::tofuInfo): New.
	* lang/cpp/src/Makefile.am (main_sources, gpgmepp_headers): Add
	new files.
	* configure.ac (LIBGPGMEPP_LT_REVISION): Bump for new API.

	core: Clarify documentation of tofu_stats address.
	+ commit 948ce7d1edf12ecb5080a4816ca15f495d6393f5
	* src/gpgme.h.in: Mention that Address is not always in addr-spec.

	core: Fix identify for armored detached sigs.
	+ commit 570bf2a648f14b34c4c45d3890b7300529a82d37
	* src/data-identify.c (basic_detection): Return signature for
	signature.

2016-06-27  Andre Heinecke  <aheinecke@intevation.de>

	Cpp: Expose new data_identify values.
	+ commit 15fc5c34c88ecbb61272705af60f7054b41c57f7
	* lang/cpp/src/data.cpp (GpgME::Data::type): Handle PGP Encrypted
	 and Signature.
	* lang/cpp/src/data.h: Add values accordingly.

	Cpp: Do not treat KEYEXPIRED as error.
	+ commit 82d484c852d07958ac93efb3d2d7b7726fbb5231
	* lang/cpp/src/editinteractor.cpp (status_to_error): No error
	for KEYEXPIRED.

2016-06-24  Andre Heinecke  <aheinecke@intevation.de>

	tests: Add new test tool run-decrypt.
	+ commit 3364549c19682f56d4d9c52ab7f76862c5a456cf
	* tests/run-decrypt.c: New.
	* tests/Makefile.am (noinst_PROGRAMS): Add run-decrypt.

2016-06-23  Werner Koch  <wk@gnupg.org>

	core: Add closer inspection of "PGP MESSAGE".
	+ commit cf37a57d28c43ec36277e84ca44458b7287b940b
	* src/data-identify.c (inspect_pgp_message): New.
	(basic_detection): Un-const arg DATA. Call inspect_pgp_message.

	core: Add a base 64 decoder.
	+ commit f8b8027ae63c957557ed6bdc7e5a30ef1bdd8e77
	* src/b64dec.c: New. Taken from gnupg.  Prefix function names with
	_gpgme_ and change to use standard C malloc functions.
	* src/util.h.h (struct b64state): New.
	* src/Makefile.am (main_sources): Add file.

2016-06-22  Werner Koch  <wk@gnupg.org>

	core: Detect compressed signed OpenPGP data.
	+ commit bb8cf6236582fc9eb6564046599989af52779a26
	* src/data-identify.c (next_openpgp_packet): Allow partial encoding.
	(pgp_binary_detection): Handle compressed packets.

2016-06-21  Werner Koch  <wk@gnupg.org>

	tests: Add new test tool run-identify.
	+ commit 5905e8bbd809c1408edad4fa4eb0527fa51cbea3
	* src/gpgme-tool.c (gt_identify): Add new strings.
	* tests/run-identify.c: New.
	* tests/Makefile.am (noinst_PROGRAMS): Add run-identify.

	core: Enhance gpgme_data_identify to detect binary PGP messages.
	+ commit 32d4bbf5e3e5f88e4a6852d72a35ee30df9d5279
	* src/gpgme.h.in (GPGME_DATA_TYPE_PGP_ENCRYPTED): New.
	(GPGME_DATA_TYPE_PGP_SIGNATURE): New.
	* src/data-identify.c: Add enum for OpenPGP packet types.
	(buf32_to_ulong): New.
	(next_openpgp_packet): New.  Based on the gnupg/kbx/keybox-openpgp.c
	implementation and relicensed to LGPL by g10 Code.
	(pgp_binary_detection): New.
	(basic_detection): Call pgp_binary_detection instead of returning
	unknown.

2016-06-16  Justus Winter  <justus@g10code.com>

	python: Improve autmatically generated docstrings.
	+ commit 8997d88bf97d1784706becbf8e9dc74e4656e311
	* lang/python/gpgme.i: Add comment.
	* lang/python/pyme/core.py (__getattr__): Rewrite automatically
	generated doctrings for the wrapper methods.

	python: Make result objects more robust.
	+ commit a324d0cffe93cab955698c2c065b2f2227e379e4
	Results returned by the GPGME are fragile, i.e. they are only valid
	until the next operation is performed in the context.

	We cannot arbitrarily constrain the lifetime of Python objects, we
	therefore create deep copies of the results.

	* lang/python/gpgme.i (gpgme_tofu_info_t): Turn these into a list.
	(gpgme_*_result_t): Create deep copies of these objects.
	* lang/python/helpers.c (pygpgme_wrap_fragile_result): New function.
	* lang/python/helpers.h (pygpgme_wrap_fragile_result): New prototype.
	* lang/python/pyme/results.py: New file.

	python: Avoid creating SWIG proxy classes.
	+ commit 856bcfe2934237011984fab0bc69800a7c25c34b
	* lang/python/Makefile.am (gpgme_wrap.c): Use '-builtin' to make SWIG
	generate builtin types for c types.
	* lang/python/gpgme.i (pygpgme_wrap_gpgme_data_t): Adapt slightly.

	python: Simplify wrapping glue.
	+ commit 6641c7814b30e3e8f18105b2636545cc1bd07552
	* lang/python/pyme/core.py: Rename '_getctype' to '_ctype' and turn it
	  into a string.  Likewise rename '_getnameprepend' to '_cprefix'.
	* lang/python/helpers.c: Adapt accordingly.

	python: Rework callbacks.
	+ commit f3618bc615e3eff1f52fb5849cbf0f0b95515a61
	Simplify how the lifetime of callback arguments is managed.

	* lang/python/gpgme.i (gpgme_edit_cb_t): Check arguments.
	(PyObject_p_p, void_p_p): Drop rather dangerous interface.
	(pygpgme_unwrap_gpgme_ctx_t): New function.
	* lang/python/helpers.c (pygpgme_clear_generic_cb): Drop dangerous
	function.
	(pyPassphraseCb): Assert contract.
	(pygpgme_set_passphrase_cb): Use Python's calling convention so that
	we can raise exceptions.  Hand in 'self', get the wrapped object, and
	simply store the hook data as attribute of the wrapper object.
	(pyProgressCb, pygpgme_set_progress_cb): Likewise.
	(pygpgme_set_status_cb): Likewise.
	(pygpgme_data_new_from_cbs): Likewise.
	* lang/python/helpers.h (pygpgme_clear_generic_cb): Drop prototype.
	(pygpgme_set_passphrase_cb): Update prototype.
	(pygpgme_set_progress_cb): Likewise.
	(pygpgme_set_status_cb): Likewise.
	(pygpgme_data_new_from_cbs): Likewise.
	(pygpgme_unwrap_gpgme_ctx_t): New prottotype.
	* lang/python/pyme/core.py (Context, Data): Update callsites.

	python: Wrap objects implementing the buffer protocol.
	+ commit 616929b6edf00b4a774b727385d39b785a112b90
	* lang/python/Makefile.am: Add the toplevel source directory to CFLAGS
	when compiling the bindings so that we can use private header files.
	* lang/python/gpgme.i (gpgme_data_t): Rework the object wrapping.  Do
	not create a Python wrapper object, merely a gpgme_data_t object, and
	keep references to buffer objects, if any.  If necessary, update the
	buffer after the function call.
	(pygpgme_wrap_gpgme_data_t): New function.
	* lang/python/helpers.c (object_to_gpgme_data_t): Rework object
	wrapping.  Also wrap objects implementing the buffer protocol.
	* lang/python/helpers.h (object_to_gpgme_data_t): Update prototype.
	(pygpgme_wrap_gpgme_data_t): New prototype.
	* lang/python/tests/t-idiomatic.py: Demonstrate this.

	python: Add properties to wrapped object.
	+ commit 5464060baef2da8f5ea377118758e451c55e3787
	* lang/python/pyme/core.py (GpgmeWrapper.__repr__): Saner
	representation.
	(GpgmeWrapper.__str__): Construct a nicer human readable string.
	(GpgmeWrapper._boolean_properties): New field.
	(GpgmeWrapper.__wrap_boolean_property): New function.
	(GpgmeWrapper.__getattr__): Wrap functions using properties.
	(GpgmeWrapper.__setattr__): New method.  Likewise wrap functions.
	(Context.signers): New property.
	(Context.pinentry_mode): Likewise.
	(Context._boolean_properties): List boolean properties.
	(Context.__init__): Add keyword arguments for properties and apply
	them.

	python: Improve the documentation.
	+ commit 5492853d7b84b4e1d0b11b234e32252ba8d1608d
	* lang/python/Makefile.am: Copy the README file.
	* lang/python/README: Rename, convert to org, and update.
	* lang/python/pyme/__init__.py: Move license out of the docstring,
	update docstring.
	* lang/python/pyme/core.py: Add and update docstrings.

	python: Get version information from the build system.
	+ commit 7eef399d89d4c3877cb795ed5ba45ecb241e67be
	* configure.ac: Generate 'setup.py' and 'version.py'.
	* lang/python/Makefile.am: Use generated setup script.
	* lang/python/pyme/version.py: Turn it into a template, and get
	version information from the build system.  Also drop some variables.
	* lang/python/setup.py: Likewise.  This way we can avoid importing the
	version module, which is frowned upon and actually caused a problem.

	python: Fix exception leak.
	+ commit a852f99a0ac9dc7f7493b403f811f5f7518fae40
	* lang/python/helpers.c (pygpgme_stash_callback_exception): Fix leak.

	python: Fix license.
	+ commit 3bacce03e60dc45cc2da99a2f5c504612202e802
	Other parts of the build system are also LGPLed.

	* lang/python/Makefile.am: Fix license.

2016-06-14  Werner Koch  <wk@gnupg.org>

	core: Make sure FD_SET is not used with an out of range fd.
	+ commit 8173c4f1f8a145c4b1d454f6f05e26950e23d675
	* src/posix-io.c (_gpgme_io_select): Check for FD out of range.

2016-06-08  Justus Winter  <justus@g10code.com>

	python: Improve error handling.
	+ commit 77d149e8614c381458e07808a7930ce3fb92cdc3
	* lang/python/helpers.c (pyPassphraseCb): Handle write errors.
	(pyEditCb): Likewise.

	python: Add function to raise exceptions from c.
	+ commit 5ebc205439cac266685d2532466df8b3457dea23
	* lang/python/helpers.c (pygpgme_raise_exception): New function.

	python: Fix stripping deprecated functionality.
	+ commit 8426304b67a0b0a5630db500abf740b0e0b9e43c
	* lang/python/Makefile.am (gpgme.h): Add script as input.
	* lang/python/gpgme-h-clean.py (deprec_func): Also match struct
	members.
	(line_break): Fix matching on struct members.

	python: Fix type.
	+ commit 990492ea4f7dafbb75de15ea91c30cbf090034b5
	* lang/python/gpgme.i: Use correct Python type for size.

	python: Implement the context manager protocol.
	+ commit e3c5913a33edcbd7329b8d154c669f95ce782038
	* lang/python/pyme/core.py (Context.__del__): Make function
	idemptotent.
	(Context.{__enter__,__exit__}): Implement the context manager
	protocol.
	(Data.__del__): Make function idemptotent, drop debug print.
	(Data.{__enter__,__exit__}): Implement the context manager
	protocol.
	* lang/python/tests/t-idiomatic.py: Demonstrate this.

2016-06-07  Justus Winter  <justus@g10code.com>

	python: Fix error handling.
	+ commit f8f9bf06bc3190968ba6613032d60a3bf2c8a6d9
	* lang/python/gpgme.i: Fix freeing an uninitialized pointer in the
	error handling of generated wrapper functions by explicitly storing
	the pointer in a local variable which can be initialized.

2016-06-06  Justus Winter  <justus@g10code.com>

	python: Wrap file-like objects on demand.
	+ commit 8196edf9ca5c8f2f02553e7f22d9c79dbd229882
	* lang/python/gpgme.i (gpgme_data_t): Use new function to create
	wrapper objects if necessary, and deallocate them after the function
	call.
	* lang/python/helpers.c (object_to_gpgme_data_t): New function.
	* lang/python/helpers.h (object_to_gpgme_data_t): New prototype.
	* lang/python/tests/Makefile.am (pytests): Add new test.
	* lang/python/tests/t-idiomatic.py: New file.

	python: Move helper function.
	+ commit 26c3accc95ab77ddbe60db822e2938ad5f480d41
	* lang/python/gpgme.i (object_to_gpgme_t): Move...
	* lang/python/helpers.c: ... here.
	* lang/python/helpers.h (object_to_gpgme_t): New prototype.

	python: Fix error handling.
	+ commit 89eb0cd4d65bc033ed6342810b26232797482d64
	* lang/python/gpgme.i (object_to_gpgme_t): Properly propagate
	exceptions.

	python: Initialize GPGME for the user.
	+ commit ae06f7c2fe0e49baeab5a827dc38ba8c57a6404c
	* lang/python/pyme/core.py: Call 'check_version' and explain why.
	* lang/python/tests/support.py (init_gpgme): Drop call here.

2016-06-01  Justus Winter  <justus@g10code.com>

	python: Fix test suite with GnuPG prior to 2.1.12.
	+ commit bbf19124bbec9eb6298cef2914baae7ac74382fe
	* lang/python/tests/Makefile.am (gpg-agent.conf): Use
	'allow-loopback-pinentry'.

	python: Make Python detection more robust.
	+ commit 1607aa7fe5dd686ba3bfb6de4a2b602d6a458c86
	Previously, missing Python development packages made configure fail
	instead of merely disabling the bindings.

	* configure.ac: Check for 'PYTHON_VERSION'.
	* m4/ax_python_devel.m4: Make test non-fatal.

	python: Improve build system integration, fix warnings.
	+ commit 73c47535b631a55687ecc5eff1d1d9a9fd71021e
	* lang/python/Makefile.am: Pass CFLAGS to python build system.
	* lang/python/helpers.c (pyPassphraseCb): Use correct type for length.
	(pygpgme_data_new_from_cbs): Drop unused variable.

2016-06-01  Andre Heinecke  <aheinecke@intevation.de>

	Cpp: Use whitelist for status messages.
	+ commit 54314a9c7d7ad52981c836ca742644a1fa69b518
	* lang/cpp/src/editinteractor.cpp (EditInteractor::needsNoResponse):
	Use whitelist instead of blacklist.

	Qt: Fix debug output in t-ownertrust.
	+ commit 9d6f85bd25e51445f1776b498875e77b529311b1
	* lang/qt/tests/t-ownertrust.cpp (testChangeOwnerTrust): Remove
	general debug of trust level. Add debug output for error.

2016-06-01  Justus Winter  <justus@gnupg.org>

	tests: Fix notation tests.
	+ commit c88c9ef384b6f7bda9a61b58f26c2f89ae25f684
	* lang/python/tests/t-sig-notation.py (check_result): Check critical
	flag.
	* tests/gpg/t-sig-notation.c (check_result): Likewise.

2016-06-01  Werner Koch  <wk@gnupg.org>

	core: Set notation flags for verify.
	+ commit 1cacd7d00a7b3de4a5e11ccce5ee6c50e0a5516d
	* src/gpgme.h.in (GPGME_STATUS_NOTATION_FLAGS): New.
	* src/status-table.c (status_table): Add new status.
	* src/verify.c (parse_notation): Handle flags.  Also fix NOTATION_DATA
	in case gpg would not percent-escape spaces.
	(_gpgme_verify_status_handler): Handle flags.
	* tests/run-verify.c (print_result): Print notaion data.

2016-05-31  Tobias Mueller  <muelli@cryptobitch.de>

	python: use GPG_ERROR_CONFIG variable.
	+ commit 8ad17f402f6420880dcf06a13a54feadb52c0208
	instead of calling gpg-error-config.
	This is useful when configuring with --with-gpgerror-prefix
	because then GPG_ERROR_CONFIG contains the correct
	/path/to/bin/gpg-error-config whereas calling gpg-error-config
	directly would look in the user's PATH (and not in the prefix
	where gpg-error-config was installed).

2016-05-31  Justus Winter  <justus@gnupg.org>

	python: Port more tests.
	+ commit afa0dd56e1cce64fe08bff3c64b12aecce54fd2d
	* lang/python/gpgme.i: Hide length fields of notations.
	* lang/python/tests/Makefile.am (pytests): Add new tests.
	* lang/python/tests/t-decrypt-verify.py: New file.
	* lang/python/tests/t-sig-notation.py: Likewise.
	* lang/python/tests/t-verify.py: Likewise.

2016-05-27  Werner Koch  <wk@gnupg.org>

	Speedup closing of fds before exec.
	+ commit 89d22f9229f2ecd559ac6ea91dae60eeff940fa5
	* src/posix-io.c [__linux__]: Include dirent.h.
	(get_max_fds) [__linux__]: Try to figure out the highest used fd.

2016-05-27  Justus Winter  <justus@gnupg.org>

	python: Port more tests.
	+ commit 3915842657f0849a038752fd7445f96081a89dd9
	* lang/python/pyme/core.py (Data._error_check): Add
	'gpgme_data_get_file_name' to the list of functions not returning an
	error code.
	* lang/python/tests/Makefile.am (pytests): Add new tests.
	* lang/python/tests/support.py (verbose): New variable.
	* lang/python/tests/t-data.py: Test setting and getting the filename.
	* lang/python/tests/t-encrypt-large.py: New file.
	* lang/python/tests/t-file-name.py: Likewise.
	* lang/python/tests/t-trustlist.py: Likewise.

	python: Implement data callbacks.
	+ commit 2ae847c02731994d99e69d3d025ff01f41406452
	* lang/python/gpgme.i (object_to_gpgme_t): Set exception on error.
	* lang/python/helpers.c (pyDataReadCb): New function.
	(pyDataWriteCb): Likewise.
	(pyDataSeekCb): Likewise.
	(pyDataReleaseCb): Likewise.
	(pygpgme_data_new_from_cbs): Likewise.
	* lang/python/helpers.h (pygpgme_data_new_from_cbs): New prototype.
	* lang/python/pyme/core.py (Data.__init__): Fix docstring, fix read
	callbacks.
	(Data.__del__): Fix read callbacks.
	(Data._free_readcb): Drop function.
	(Data._free_datacbs): New function.
	(Data.new_from_cbs): Fix setting the callbacks.
	(Data.write): Raise stashed exceptions.
	(Data.read): Likewise.
	* lang/python/tests/t-callbacks.py: Test new functionality.
	* lang/python/tests/t-data.py: Likewise.

	python: Fix object deallocation.
	+ commit ebfe2300c33a3bad311e9ac1530e6c92636a08a4
	Handing a reference to the wrapper object created a non-trivial
	circular reference that Pythons garbage collector is unable to break.
	Explicitly break it by using a weak reference.

	* lang/python/helpers.c (pygpgme_stash_callback_exception): Retrieve
	object from weak reference.
	* lang/python/pyme/core.py (Context.__del__): Free status callback.
	(Context.set_passphrase_cb): Use a weak reference.
	(Context.set_progress_cb): Likewise.
	(Context.set_status_cb): Likewise.
	(Context.op_edit): Likewise.

	Improve comments.
	+ commit e74cd9fb80f12b764d5e4561e73d55644147e9e7
	* src/gpgme.h.in (gpgme_data_seek_cb_t, gpgme_data_seek): Clarify that
	these functions return the new offset.
	(gpgme_data_release_cb_t): Fix name of parameter.

	python: Fix reading data from existing files.
	+ commit bf188e280b8b4fc775f33c47e2e1e275ed044004
	* lang/python/pyme/core.py (Data.__init__): Add 'copy' kwargument, and
	pass it to functions supporting it.  PEP8 fix.
	(Data.new_from_fd): PEP8 fix.
	(Data.new_from_file): Give a more helpful error message if copy is
	False.  PEP8 fix.
	(Data.new_from_fd): Hand the file descriptor to
	'gpgme_data_new_from_fd', not a stream.  Fix docstring.
	* lang/python/tests/t-data.py: Add tests for this.

2016-05-25  Justus Winter  <justus@gnupg.org>

	src: Fix trace string.
	+ commit ce73ae9d0cbf782cd3a1949fc4f568f0d1da60d9
	* src/data-compat.c (gpgme_data_new_from_file): Fix trace string.

2016-05-24  Justus Winter  <justus@gnupg.org>

	python: Improve and test Context.wait.
	+ commit 00ff6d07330028da370c869e3ec442eb76f8cbb8
	* lang/python/pyme/core.py (Context.wait): Improve docstring.  As the
	context passed to 'gpgme_wait' is never NULL, it is pointless to look
	at the returned context.  Always raise exceptions.
	* lang/python/tests/Makefile.am (pytests): Add new test.
	* lang/python/tests/t-wait.py: New file.

	python: Make all GnuPG errors available.
	+ commit 7bc9cc717e428f48d4b27016f44c9f3900b1fba6
	* lang/python/Makefile.am (errors.i): Generate file.
	* lang/python/gpgme.i: Include generated file.
	* lang/python/pyme/errors.py: Pull in all errors and error sources.

	python: Move the base wrapper class.
	+ commit 0ebd6a1b43a96bffa78da89dc8629edac0a74d35
	* python/lang/pyme/util.py (GpgmeWrapper): Move...
	* python/lang/pyme/core.py: ... here.

	python: Support status callbacks.
	+ commit 8b57f06e0c04f5c9b87a3c76618230d757412076
	* lang/python/helpers.c (pyStatusCb): New function.
	(pygpgme_set_status_cb): Likewise.
	* lang/python/helpers.h (pygpgme_set_status_cb): New prototype.
	* lang/python/pyme/core.py (Context.__init__): Initialize
	'last_statuscb'.
	(Context._free_statuscb): New function.
	(Context.set_status_cb): Likewise.
	* lang/python/tests/t-callbacks.py: Test status callbacks.

	python: Improve docstring.
	+ commit 72afb68f8c2f0cb326f20b289215402fd849339d
	* lang/python/pyme/core.py (Context.set_progress_cb): Improve
	docstring.

2016-05-24  Andre Heinecke  <aheinecke@intevation.de>

	Qt: Fix test build with clang.
	+ commit 00e93b2cae0585ff10425421d9097a846943b21c
	* lang/qt/tests/Makefile.am (LDADD): Explicitly add -lstdc++

	Cpp: Set -std=c++11 also if CXXCPP is already set.
	+ commit b107fc8a92bd16bc0d868c771b6334d6594e6395
	* m4/ax_cxx_compile_stdxx.m4 (AX_CXX_COMPILE_STDCXX): Set CXXCPP if
	neccessary.

2016-05-24  Justus Winter  <justus@gnupg.org>

	python: Improve support for edit callbacks.
	+ commit 09803c4a81b9431fd4c8f30abb1c60c4c735f0cb
	* lang/python/helpers.c (pyEditCb): Stash exceptions.
	* lang/python/pyme/core.py (Context.op_edit): Hand in 'self'.
	* lang/python/tests/Makefile.am (py_tests): Add new test.
	* lang/python/tests/t-callbacks.py: Test edit callbacks.
	* lang/python/tests/t-edit.py: New file.

2016-05-23  Justus Winter  <justus@gnupg.org>

	python: Fix hook.
	+ commit 283f0bdc3d32624dac93d02ba3df516e69d8d4ba
	* lang/python/helpers.c (pyProgressCb): Fix getting hook data.
	* lang/python/tests/t-callbacks.py: Show that this works.

	python: Move edit callback function.
	+ commit 5476ca6813fc9d8833d5224f19d4bb7515380ab5
	* lang/python/gpgme.i (pyEditCb): Move...
	* lang/python/helpers.c: ... here.
	* lang/python/helpers.h (pyEditCb): New prototype.

	python: Port more tests.
	+ commit a42d814a65fdc29a3be6efa97433997495696a88
	* lang/python/tests/Makefile.am (TESTS_ENVIRONMENT): Set
	LD_LIBRARY_PATH.
	(pytests): Add new tests.
	* lang/python/tests/t-callbacks.py: Trim imports.
	* lang/python/tests/t-encrypt-sign.py: New file.
	* lang/python/tests/t-export.py: Likewise.
	* lang/python/tests/t-signers.py: Likewise.

	python: Translate list of strings.
	+ commit c9cc0412e940c78c3e9bacb6ff1459b5bb5bb9ad
	* lang/python/gpgme.i: Add typemap translating list of strings.

2016-05-21  Werner Koch  <wk@gnupg.org>

	api: Return Tofu info for signatures.
	+ commit 10df06ee8f9192309bf124872438f7c32457e1c6
	* src/gpgme.h.in (gpgme_tofu_policy_t): New.
	(gpgme_status_code_t): Add status codes for TOFU.
	(struct _gpgme_tofu_info, gpgme_tofu_info_t): New.
	(struct _gpgme_signature): Add field 'tofu'.
	* src/status-table.c (status_table): Add new codes.
	* src/verify.c: Include limits.h.
	(release_tofu_info): New.
	(release_op_data): Call that.
	(parse_tofu_user): New.
	(parse_tofu_stats): New.
	(parse_tofu_stats_long): New.
	(_gpgme_verify_status_handler): Handle TOFU status lines.

	* tests/run-verify.c (print_description): New.
	(print_result): print tofu info.

	api: Add new context flag "raw-description".
	+ commit dac2c5441d418536632f014c8b0e1359580279d1
	* src/context.h (struct gpgme_context): Add field raw_description.
	* src/gpgme.c (gpgme_set_ctx_flag): New flag.

	core: New functions to help parsing of status lines.
	+ commit a92946a8cacc44f655249d84b316deae59e62671
	* src/conversion.c (_gpgme_split_fields): New.
	(_gpgme_strtoul_field): New.

2016-05-20  Andre Heinecke  <aheinecke@intevation.de>

	Qt: Add test for changeownertrust.
	+ commit eaf2d018e63c15cd9a81e5c1fd2fedbf8829f7b9
	* lang/qt/tests/t-ownertrust.cpp: New test.
	* lang/qt/tests/Makefile.am: Add test.

	Cpp: Ignore STATUS_KEY_CONSIDERED when editing.
	+ commit 5df858cbf196b2a53d600b7f45655f7b35c1fe93
	* lang/cpp/src/editinteractor.cpp (EditInteractor::needsNoResponse):
	Handle GPGME_STATUS_KEY_CONSIDERED.

2016-05-19  Werner Koch  <wk@gnupg.org>

	api: Add new function gpgme_set_ctx_flag.
	+ commit 88f2c1c0d16eee6bb36a901623ea65ac69499f03
	* src/gpgme.h.in (gpgme_set_ctx_flag): New prototype.
	* src/gpgme.c (gpgme_set_ctx_flag): New.
	* src/gpgme.def, src/libgpgme.vers: Add new function.
	* src/context.h (struct gpgme_context): Add FULL_STATUS.
	* src/decrypt.c (_gpgme_decrypt_status_handler): Do not call the
	  status callback if FULL_STATUS is set.
	* src/genkey.c (genkey_status_handler): Ditto.
	* src/passphrase.c (_gpgme_passphrase_status_handler): Ditto.
	* src/sign.c (_gpgme_sign_status_handler): Ditto.

	* src/engine-backend.h (struct engine_ops): Add SET_STATUS_CB and add
	adjust all definitions of that variable.
	* src/engine.c (_gpgme_engine_set_status_cb): New.
	* src/op-support.c (_gpgme_op_reset): Call this function.

	* src/engine-gpg.c (struct engine_gpg): Add fields MON_CB and
	MON_CB_VALUE.
	(gpg_set_status_cb): New.
	(_gpgme_engine_ops_gpg): Register that function.
	(read_status): Call the monitor callback.

	* src/engine-gpgsm.c (struct engine_gpgsm): Add fields MON_CB and
	MON_CB_VALUE.
	(_gpgme_engine_ops_gpgsm): Register that function.
	(gpgsm_assuan_simple_command): Change first arg to be an engine
	context and adjust call callers.  Call the monitor callback.

	* src/engine-uiserver.c (struct engine_uiserver): Add fields MON_CB
	and MON_CB_VALUE.
	(_gpgme_engine_ops_uiserver): Register that function.
	(uiserver_assuan_simple_command): Change first arg to be an engine
	context and adjust call callers.  Call the monitor callback.

	* tests/run-verify.c (status_cb): New.
	(print_result): Print algo names.
	(main): Add option --status.

	api: Remove arbitrary restriction from gpgme_op_verify.
	+ commit 5aa8e588e166abeef2e3d677ab6830f2d7af1b5d
	* src/verify.c (verify_start): Do not return GPG_ERR_INV_VALUES when
	when SIGNED_TEXT is not given.

2016-05-19  Justus Winter  <justus@gnupg.org>

	python: Improve progress callbacks.
	+ commit 0d4e95621e05d50cd454049a424bb9ee098a5db6
	* lang/python/helpers.c (pyProgressCb): Stash python errors, convert
	'what' to Unicode object.
	* lang/python/pyme/core.py (Context.set_progress_cb): Hand in 'self'.
	* lang/python/tests/t-callbacks.py: Test progress callbacks.

	python: Robust exception handling in callbacks.
	+ commit d90857a08c4fe5b73b6d6d46fd6200efdd72db44
	* lang/python/helpers.c (pygpgme_stash_callback_exception): New
	function.
	(pygpgme_raise_callback_exception): Likewise.
	(pyPassphraseCb): Stash python errors.
	* lang/python/helpers.h (pygpgme_raise_callback_exception): New
	prototype.
	* lang/python/pyme/core.py ({Context,Data}.__init__): Move common
	initialization to superclass.
	(Context.set_progress_cb): Hand in 'self'.
	* lang/python/pyme/util.py (GpgmeWrapper.__init__): New function.
	(GpgmeWrapper.__getattr__): Raise stashed exceptions.
	* lang/python/tests/Makefile.am (py_tests): Add new test.
	* lang/python/tests/t-callbacks.py: New file.

2016-05-19  Andre Heinecke  <aheinecke@intevation.de>

	Qt: Check for graphviz and set HAVE_DOT correctly.
	+ commit 2f748b5a2d162be4f23b18782219771ead54cb51
	* configure.ac: Check for graphviz and define HAVE_DOT.
	* lang/qt/doc/Doxyfile.in (HAVE_DOT): Use variable.

2016-05-19  Justus Winter  <justus@gnupg.org>

	python: Add more tests.
	+ commit 464d404c8816fc93baf945816c93e86bdeb0ea39
	* lang/python/tests/Makefile.am (py_tests): Add new tests.
	* lang/python/tests/support.py (print_data): New function.
	* lang/python/tests/t-decrypt.py: Use new function.
	* lang/python/tests/t-encrypt.py: Likewise.
	* lang/python/tests/t-sign.py: New file.
	* lang/python/tests/t-encrypt-sym.py: Likewise.

	python: More type conversion fixes.
	+ commit c1c893e3384a07ff864507902fbac4a7fee4d6f1
	* lang/python/helpers.c (pyPassphraseCb): Cope with 'uid_hint' being
	NULL, convert it to an Unicode object, and cope with the callback
	returning both Unicode and bytes objects.

	python: Fix import.
	+ commit 07f71cd17706093ca6b1507c41609356d479ae9f
	* lang/python/helpers.c (pygpgme_exception_init): Make module import
	relative.

2016-05-19  Andre Heinecke  <aheinecke@intevation.de>

	Qt: Fix compilation of unit tests.
	+ commit 375523ead3a749d77d286c56f10d403c07f2b014
	* lang/qt/tests/Makefile.am (AM_CPPFLAGS): Add -DBUILDING_QGPGME.

2016-05-18  Justus Winter  <justus@gnupg.org>

	python: Various fixes.
	+ commit 2c3a5d93e78cfca22785e51c5a65184a47da4bff
	* configure.ac: Fix SWIG detection, bump required Python version.
	* lang/python/Makefile.am: Portability fix.

2016-05-18  Andre Heinecke  <aheinecke@intevation.de>

	Fix typo in compatibility declaration.
	+ commit f0dca0ab92ed18d80e30d7d39db1596b4112794f
	* src/op-support.c (GPG_ERR_SUBKEYS_EXP_REV): Change to
	GPG_ERR_SUBKEYS_EXP_OR_REV.

2016-05-17  Werner Koch  <wk@gnupg.org>

	tests: New maintenance helper run-encrypt.
	+ commit 30b447fcfe0e4f362c2575e1b9388e8144b5b2fd
	* tests/run-encrypt.c: New.

	Return dedicated error code for all subkeys expired or revoked.
	+ commit 315fb73d4a774e2c699ac1804f5377559b4d0027
	* src/gpgme.h.in (GPGME_STATUS_KEY_CONSIDERED): New.
	(GPGME_SIGSUM_TOFU_CONFLICT): New.
	* src/status-table.c (KEY_CONSIDERED): New.
	* src/op-support.c (_gpgme_parse_inv_recp): Add argc KC_FPR and
	KC_FLAGS.  Use calloc.  Detect all expired or revoked subkeys.
	(_gpgme_parse_key_considered): New.
	* src/sign.c (op_data_t): Add fields KC_FPR and KC_FLAGS.
	(release_op_data): Free KC_FPR.
	(_gpgme_sign_status_handler): Handle STATUS_KEY_CONSIDERED.
	* src/encrypt.c (op_data_t): Add fields KC_FPR and KC_FLAGS.
	(release_op_data): Free KC_FPR.
	(_gpgme_encrypt_status_handler): Handle STATUS_KEY_CONSIDERED.

2016-05-17  Andre Heinecke  <aheinecke@intevation.de>

	Qt / Cpp: Port auto_ptr to unique_ptr.
	+ commit 9b36ebf37a3b889c955ba68038bd5b3d9c5cde4e
	* lang/cpp/src/context.cpp,
	lang/cpp/src/context.h,
	lang/cpp/src/context_p.h (Context::createForEngine),
	(Context::edit, Context::startEditing),
	(Context::takeLastEditInteractor, Context::cardEdit),
	(Context::startCardEditing, Context::takeLastCardEditInteractor),
	(Context::assuanTransact, Context::startAssuanTransaction),
	(Context::takeLastAssuanTransaction): Port to unique_ptr.
	* lang/qt/src/qgpgmeadduseridjob.cpp,
	lang/qt/src/qgpgmechangeexpiryjob.cpp,
	lang/qt/src/qgpgmechangeownertrustjob.cpp,
	lang/qt/src/qgpgmechangepasswdjob.cpp,
	lang/qt/src/qgpgmesignkeyjob.cpp: Update accordingly.

2016-05-17  Justus Winter  <justus@gnupg.org>

	build: Add python autoconf macro.
	+ commit 4711a1e181153a2395e5f523047595abd47965db
	* m4/ax_python_devel.m4: New file.

	python: Clean up examples.
	+ commit 10328324c8fc9725cd0c885eaebfc80dc32c1ff6
	* lang/python/examples/delkey.py: Clean up example.
	* lang/python/examples/encrypt-to-all.py: Likewise.
	* lang/python/examples/genkey.py: Likewise.
	* lang/python/examples/inter-edit.py: Likewise.
	* lang/python/examples/sign.py: Likewise.
	* lang/python/examples/signverify.py: Likewise.
	* lang/python/examples/simple.py: Likewise.
	* lang/python/examples/t-edit.py: Likewise.
	* lang/python/examples/verifydetails.py: Likewise.
	* lang/python/pyme/__init__.py: Likewise.

	python: Import GPGMEError.
	+ commit 64e5fe767f45e9ccb0fb3fe919171c222132a54c
	* pyme/core.py: Import GPGMEError.

	Fixes c5d118b2.

	python: Port more tests.
	+ commit 9ceaec25918c6c5f2dfafe4e20181b83ce78f6ce
	* lang/python/Makefile.am: Add bits from the c test suite.
	* lang/python/support.py: New file.
	* lang/python/t-decrypt.py: Likewise.
	* lang/python/t-encrypt.py: Likewise.

2016-05-13  Andre Heinecke  <aheinecke@intevation.de>

	Qt: Add keyLocateJob and test for it.
	+ commit 52f2295d528029a36a3e0a89c777297762b3fc9b
	* configure.ac (LIBQGPGME_LT_REVISION): Bump.
	* lang/qt/src/protocol.h (locateKeysJob): Add Job.
	* lang/qt/src/protocol_p.h (locateKeysJob): Implement.
	* lang/qt/tests/Makefile.am: Add t-keylocate.
	* lang/qt/tests/t-keylocate.cpp: New.

	Qt: Add missing copyright header in test.
	+ commit 66ded1a5ce7236254f8541addecd4c3bc7b2878e
	* lang/qt/tests/t-keylist.cpp: Add copyright header.

2016-05-12  Justus Winter  <justus@gnupg.org>

	python: Share generated methods between objects.
	+ commit 11314f0db6e57597e3f56351a86fdb36a7a17dd7
	* lang/python/pyme/util.py (GpgmeWrapper.__getattr__): Monkey-patch
	the class.
	* lang/python/tests/t-wrapper.py: Demonstrate the sharing.

	python: Raise exceptions on write errors.
	+ commit c5d118b2a76e9528df780d11da9566ff7c22e4f5
	* lang/python/pyme/core.py (Data.write): Handle errors.
	* lang/python/pyme/errors.py (GPGMEError.fromSyserror): New function.

	python: Fix writing to data buffers.
	+ commit f7094d8358e933f3ce074eade7a40b2a7d291180
	* lang/python/gpgme.i: Add typemap for buffers.
	* lang/python/pyme/core.py (Data.write): Fix function.
	* lang/python/tests/Makefile.am: Add new test.
	* lang/python/tests/t-data.py: New file.

	python: Add a test suite.
	+ commit e64bffe0307d14204b00a177a472cd4f99c07561
	* configure.ac: Add new Makefile.
	* lang/python/Makefile.am: Add subdirectory.
	* lang/python/tests/Makefile.am: New file.
	* lang/python/tests/t-wrapper.py: Likewise.

	python: Cache generated wrapper functions.
	+ commit ed0ce84fbd2904bf59ac66ae7422716db3624efa
	* lang/python/util.py (GpgmeWrap.__getattr__): Cache generated wrapper
	functions.

	python: Fix function invocation.
	+ commit e3d3d366bd1a1aea8a38ae5dcbf71ea3c784e920
	* lang/python/pyme/core.py (Data.new_from_fd): Fix function
	invocation.

	python: Fix name of exception, make slot methods explicit.
	+ commit af9371eb63664c92fb67e8e7e03cc984e7d38a7f
	* lang/python/pyme/util.py (GpgmeWrapper._getctype): Fix exception,
	add docstring.
	(GpgmeWrapper._getnameprepend): New function.
	(GpgmeWrapper._errorcheck): Likewise.

	python: Handle interpreter shutdown.
	+ commit ce5121ad53b0e17fbf9150b354c80da73f7fe190
	* lang/python/pyme/core.py: Avoid races at interpreter shutdown.  This
	silences the most annoying occurrences, however this problem also
	affects the SWIG generated code, which might indicate that the real
	problem is somewhere else.  If so, this change can be easily reverted.

	python: Make test case more robust.
	+ commit c89d3a71ad20ff02755539a44f254b1e59054c4a
	* lang/python/examples/t-edit.py: Check if key is found.

	python: Fix type translation.
	+ commit d60deb8a127fb35c01acc729f33b014840af0e7b
	* lang/python/gpgme.i: Adjust to Python3's string type being
	'Unicode', not 'bytes'.  Fix type checking.
	* lang/python/core.py (Data.write): Add docstring mentioning the
	expected type of parameter 'buffer'.
	(Data.read): Adjust read loop.  Also, use a saner chunk size, and join
	all chunks at the end instead of adding them.
	* lang/python/examples/simple.py: Adjust example.

2016-05-11  Andre Heinecke  <aheinecke@intevation.de>

	Cpp: Ensure gpgme.h is taken from current build.
	+ commit b8de79160b2e05ac84d8feb61ff7ed1f7015a623
	* lang/cpp/src/Makefile.am (AM_CPPFLAGS): Add gpgme.h location.

2016-05-11  Justus Winter  <justus@gnupg.org>

	python: Fix simple example.
	+ commit bbeee5e1a060f2d1e37a08220eb552cf4673a058
	* lang/python/examples/simple.py: Flush stdout, encode name as
	UTF-8 before passing it to GPGME.

	python: Integrate into the build system.
	+ commit a29babd07cf9f9625d2b5aa2eb6b7bc9d1828359
	* configure.ac: Make Python bindings configurable, add new Makefile.
	* lang/python/Makefile.am: New file.
	* lang/python/setup.py: Integrate into the build system.
	* m4/ax_pkg_swig.m4: New file from the autoconf archive.
	* m4/m4_ax_swig_python.m4: Likewise.

2016-05-10  Andre Heinecke  <aheinecke@intevation.de>

	Qt / Cpp: Fix make dist.
	+ commit c303292aca26c43b6efe98719edb3ff7b2d6665d
	* lang/cpp/src/Makefile.am (EXTRA_DIST): Fix typo.
	(private_gpgmepp_headers): New. Private headers.
	(libgpgmepp_la_SOURCES): Add private headers.
	* lang/qt/src/Makefile.am (t_keylist_SOURCES): Remove non existent
	header.

2016-05-10  Justus Winter  <justus@gnupg.org>

	python: PEP8 fixes.
	+ commit 11392a80d9a85bcd8718b105e6d58038e61beaac
	Cherry picked from 0267c151.

2016-05-10  Andre Heinecke  <aheinecke@intevation.de>

	Qt: Make Protocol class public API.
	+ commit 56c4d9ea9520c95612e525b2fa1359db6fa88f4a
	* lang/qt/src/Makefile.am (qgpgme_headers): Add protocol.h
	(private_qgpgme_headers): Add protocol_p.h
	* lang/qt/src/protocol.h: New. From QGpgMEBackend.
	* lang/qt/src/protocol_p.h: New. From QGpgMEBackend.
	* lang/qt/src/qgpgmebackend.h,
	lang/qt/src/qgpgmebackend.cpp (Protocol): Removed.

	Qt: Make doxygen quieter.
	+ commit 97225bb01cd2ffa1d84c7fedbc577275de4a4893
	* lang/qt/doc/Doxyfile.in: Quiet and no undocumented warnings.

	Qt: Only install public headers.
	+ commit 740f92a7b83389ee9bde98b7bd25556793500b8b
	* lang/qt/src/Makefile.am: Do not install all headers.

	Qt: Add test for async keylisting.
	+ commit 0e3195948ddaba3af07d2415bb496491076edc17
	* src/lang/qt/tests/t-keylist.cpp(KeyListTest::testKeyListAsync): New.

2016-05-10  Werner Koch  <wk@gnupg.org>

	Allow cc to detect missing cases in a switch.
	+ commit fc38c15136c87ce971a8381fa87399088dd5a3cc
	* src/delete.c (delete_status_handler): Remove default case from a
	switch so that cc can check the use of all enum values.

2016-05-06  Andre Heinecke  <aheinecke@intevation.de>

	Use common error message style for qt lang checks.
	+ commit a579be82c84f0b9732ee3d52ff2142a3decf95d7
	* configure.ac: Use common error highliting for qt lang options.

	Qt: Fix license mentioned in README.
	+ commit 11ff8d5964bf66f905818514f6a51fc881ea1a56
	* lang/qt/README: License is GPLv2+ and not LGPL.

	Add maybe mode for langs and default to it.
	+ commit cd267791e9bd73505a2a1ea90c85df988e153c19
	* configure.ac (languages): Warn and disable langs for which
	requirements are not met.

	Cpp: Handle PINENTRY_LAUNCHED status line.
	+ commit 3fad1216770f446a89801d842aa8667356a5ec95
	* lang/cpp/src/editinteractor.cpp (EditInteractor::needsNoResponse):
	Add GPGME_STATUS_PINENTRY_LAUNCHED.

2016-04-12  Andre Heinecke  <aheinecke@intevation.de>

	Cpp: Add support for pubkey_algo_name.
	+ commit 5489532ad6ccf3a9b59405686b8a17352f1ecf06
	* lang/cpp/src/key.cpp (Subkey::algoName): New.
	* lang/cpp/src/key.h: Declare.

	Cpp: Add support for gpgme_data_identify.
	+ commit d949d711dc1d944a9d627d39a89af74943a5a8c1
	* lang/cpp/src/data.cpp (Data::type): New.
	* lang/cpp/src/data.h (Data::Type): New enum mapping.

	Fix configuration without Qt language.
	+ commit 6dba47c3a2c32d7c1e1d91a96030f99f606433ea
	* configure.ac: Define HAVE_DOXYGEN also if qt should not be built.

2016-04-11  Andre Heinecke  <aheinecke@intevation.de>

	Qt/Cpp: Bump so version to 6.
	+ commit 8e7074dbb8093cc342e330bcd6b172b4f769a0c6
	* configure.ac (LIBGPGMEPP_LT_CURRENT, LIBQGPGME_LT_CURRENT): Bump.

	Qt / Cpp: Mention coding style in READMES.
	+ commit d2b55101195efe9702e855a48fc6e21839fb98cc
	* src/lang/cpp/README, src/lang/qt/README: Add hacking note.

	Qt: Add doc generation with doxygen.
	+ commit a1e95f36ce1895cd9894f6d3ca76640c42c2f9fc
	* configure.ac: Look for doxygen if qt is built.
	 Configure new files.
	* lang/qt/doc/Doxyfile.in: New.
	* lang/qt/doc/Makefile.am: New.
	* lang/qt/README: Update.

	Qt: Fix unit test by adding initial.test dep.
	+ commit d9f7a18ed88127e7f05d770d55118d1e928f3b3f
	* lang/qt/tests/t-keylist.cpp: Verify that GNUPGHOME is set.
	* lang/qt/tests/initial.test: New dummy test.
	* lang/qt/tests/Makefile.am: Add dependency to initial.test

	Qt: Remove remaining boost usage.
	+ commit afd8fad6e275e2f74b2ad045dce05d826986e2ec
	* lang/qt/src/dataprovider.h,
	 lang/qt/src/decryptjob.h,
	 lang/qt/src/decryptverifyjob.h,
	 lang/qt/src/encryptjob.h,
	 lang/qt/src/qgpgmeadduseridjob.cpp,
	 lang/qt/src/qgpgmechangeexpiryjob.cpp,
	 lang/qt/src/qgpgmechangeownertrustjob.cpp,
	 lang/qt/src/qgpgmechangepasswdjob.cpp,
	 lang/qt/src/qgpgmedecryptjob.cpp,
	 lang/qt/src/qgpgmedecryptverifyjob.cpp,
	 lang/qt/src/qgpgmedeletejob.cpp,
	 lang/qt/src/qgpgmedownloadjob.cpp,
	 lang/qt/src/qgpgmeencryptjob.cpp,
	 lang/qt/src/qgpgmeexportjob.cpp,
	 lang/qt/src/qgpgmeimportfromkeyserverjob.cpp,
	 lang/qt/src/qgpgmeimportjob.cpp,
	 lang/qt/src/qgpgmekeygenerationjob.cpp,
	 lang/qt/src/qgpgmekeylistjob.cpp,
	 lang/qt/src/qgpgmenewcryptoconfig.cpp,
	 lang/qt/src/qgpgmenewcryptoconfig.h,
	 lang/qt/src/qgpgmesignencryptjob.cpp,
	 lang/qt/src/qgpgmesignjob.cpp,
	 lang/qt/src/qgpgmesignkeyjob.cpp,
	 lang/qt/src/qgpgmeverifydetachedjob.cpp,
	 lang/qt/src/qgpgmeverifyopaquejob.cpp,
	 lang/qt/src/signencryptjob.h,
	 lang/qt/src/signjob.h,
	 lang/qt/src/threadedjobmixin.cpp,
	 lang/qt/src/threadedjobmixin.h,
	 lang/qt/src/verifydetachedjob.h,
	 lang/qt/src/verifyopaquejob.h: Remove boost usage.

	Qt: Remove predicates.h and stl_util.h.
	+ commit e18256fc5f613da9406da60c3ef2f84f2be04ef0
	* src/lang/qt/predicates.h, src/lang/qt/stl_util.h: Removed.

	Qt: Remove usage of stl_util.h and predicates.h.
	+ commit d293bd32293929eeb3f6ec35f916a4678fb51729
	* src/lang/qt/qgpgmelistallkeysjob.cpp: Use comperators from
	  gpgmepp instead of detail. Remove boost usage.

	Cpp: Add string comparators for keys.
	+ commit 1bb162a54ba480413c4da07f2578efe6860494c0
	* lang/cpp/src/global.h (GPGMEPP_MAKE_STRCMP): New.
	  (_gpgmepp_strcmp): NULL save wrapper around std::strcmp.
	* lang/cpp/src/key.h: Add comparators for various attributes.

	Cpp: Remove last usages of boost.
	+ commit 691950e18cf08a3f9bbc2004501834cd47bea579
	* lang/cpp/src/configuration.cpp: Use std::remove_pointer.
	  (Configuration::operator<<): std::for_each.
	* lang/cpp/src/context.cpp: Delete manually instead of scoped ptr.
	* lang/cpp/src/scdgetinfoassuantransaction.cpp: Use static_assert.
	  (to_reader_list): Tokenize with getline.

2016-04-04  Andre Heinecke  <aheinecke@intevation.de>

	Add pthread in gpgmepp config.
	+ commit cc68ff5f7210ac879fbdf719fcd5944f9ae5602b
	* lang/cpp/src/GpgmeppConfig.cmake.in.in: Add pthread.

2016-04-03  Andre Heinecke  <aheinecke@intevation.de>

	Cpp / Qt: Reduce boost usage (memory and tuple)
	+ commit f98898ab1a6952e0c3a5d235963a27eba2e19e46
	* cpp/src/assuanresult.h,
	 cpp/src/configuration.cpp,
	 cpp/src/configuration.h,
	 cpp/src/data.h,
	 cpp/src/decryptionresult.h,
	 cpp/src/defaultassuantransaction.cpp,
	 cpp/src/encryptionresult.cpp,
	 cpp/src/encryptionresult.h,
	 cpp/src/engineinfo.h,
	 cpp/src/gpgagentgetinfoassuantransaction.cpp,
	 cpp/src/gpgsignkeyeditinteractor.cpp,
	 cpp/src/importresult.cpp,
	 cpp/src/importresult.h,
	 cpp/src/key.h,
	 cpp/src/keygenerationresult.h,
	 cpp/src/keylistresult.h,
	 cpp/src/notation.h,
	 cpp/src/signingresult.cpp,
	 cpp/src/signingresult.h,
	 cpp/src/verificationresult.cpp,
	 cpp/src/verificationresult.h,
	 cpp/src/vfsmountresult.h,
	 qt/src/dataprovider.cpp,
	 qt/src/dataprovider.h,
	 qt/src/decryptjob.h,
	 qt/src/decryptverifyjob.h,
	 qt/src/downloadjob.h,
	 qt/src/encryptjob.h,
	 qt/src/qgpgmeadduseridjob.cpp,
	 qt/src/qgpgmechangeexpiryjob.cpp,
	 qt/src/qgpgmechangeownertrustjob.cpp,
	 qt/src/qgpgmechangepasswdjob.cpp,
	 qt/src/qgpgmedecryptjob.cpp,
	 qt/src/qgpgmedecryptjob.h,
	 qt/src/qgpgmedecryptverifyjob.cpp,
	 qt/src/qgpgmedecryptverifyjob.h,
	 qt/src/qgpgmedeletejob.cpp,
	 qt/src/qgpgmedownloadjob.cpp,
	 qt/src/qgpgmedownloadjob.h,
	 qt/src/qgpgmeencryptjob.cpp,
	 qt/src/qgpgmeencryptjob.h,
	 qt/src/qgpgmeexportjob.cpp,
	 qt/src/qgpgmeexportjob.h,
	 qt/src/qgpgmeimportfromkeyserverjob.cpp,
	 qt/src/qgpgmeimportfromkeyserverjob.h,
	 qt/src/qgpgmeimportjob.cpp,
	 qt/src/qgpgmeimportjob.h,
	 qt/src/qgpgmekeygenerationjob.cpp,
	 qt/src/qgpgmekeygenerationjob.h,
	 qt/src/qgpgmekeylistjob.cpp,
	 qt/src/qgpgmekeylistjob.h,
	 qt/src/qgpgmelistallkeysjob.cpp,
	 qt/src/qgpgmelistallkeysjob.h,
	 qt/src/qgpgmenewcryptoconfig.cpp,
	 qt/src/qgpgmenewcryptoconfig.h,
	 qt/src/qgpgmesignencryptjob.cpp,
	 qt/src/qgpgmesignencryptjob.h,
	 qt/src/qgpgmesignjob.cpp,
	 qt/src/qgpgmesignjob.h,
	 qt/src/qgpgmesignkeyjob.cpp,
	 qt/src/qgpgmeverifydetachedjob.cpp,
	 qt/src/qgpgmeverifydetachedjob.h,
	 qt/src/qgpgmeverifyopaquejob.cpp,
	 qt/src/qgpgmeverifyopaquejob.h,
	 qt/src/signencryptjob.h,
	 qt/src/signjob.h,
	 qt/src/threadedjobmixin.h,
	 qt/src/verifydetachedjob.h,
	 qt/src/verifyopaquejob.h: Reduce boost usage.

	Cpp: Require c++ 11 if cpp binding requested.
	+ commit c07aaef6eb8a9b5e623479f27d562fd1570bf4bb
	* configure.ac: Call ax_cxx_compile_stdcxx
	* m4/ax_cxx_compile_stdcxx.m4

	Qt: Add static factor methods for protocol.
	+ commit 0991485170ca4ef90fd566540522027d0fc59a72
	* lang/qt/src/qgpgmebackend.cpp (QGpgME::openpgp, QGpgME::smime): New.
	* lang/qt/src/qgpgmebackend.h: Declare.
	* lang/qt/tests/t-keylist.cpp (KeyListTest::testSingleKeyListSync):
	  Use new functions.

	Qt: Add a unit test for qgpgme.
	+ commit faf987dd62893955251378a2a715edd2892a540c
	* configure.ac: Configure test Makefile.
	* m4/qt.m4: Look up Qt5Test flags.
	* lang/qt/tests/t-keylist.cpp: New. Simple keylist check.
	* lang/qt/tests/Makefile.am: New. General test framework.

	Qt: Add missing MOC includes.
	+ commit b7b9e38399a572cb61a297db552026eac5b2a5e1
	* qgpgmeadduseridjob.cpp,
	 qgpgmechangeexpiryjob.cpp,
	 qgpgmechangeownertrustjob.cpp,
	 qgpgmechangepasswdjob.cpp,
	 qgpgmedecryptjob.cpp,
	 qgpgmedecryptverifyjob.cpp,
	 qgpgmedeletejob.cpp,
	 qgpgmedownloadjob.cpp,
	 qgpgmeencryptjob.cpp,
	 qgpgmeexportjob.cpp,
	 qgpgmeimportfromkeyserverjob.cpp,
	 qgpgmeimportjob.cpp,
	 qgpgmekeygenerationjob.cpp,
	 qgpgmekeylistjob.cpp,
	 qgpgmelistallkeysjob.cpp,
	 qgpgmerefreshkeysjob.cpp,
	 qgpgmesecretkeyexportjob.cpp,
	 qgpgmesignencryptjob.cpp,
	 qgpgmesignjob.cpp,
	 qgpgmesignkeyjob.cpp,
	 qgpgmeverifydetachedjob.cpp,
	 qgpgmeverifyopaquejob.cpp: Add missing MOC includes.

	Qt: Declare pure virtuals as such.
	+ commit 0cc9006dbc59d87c6bcda88b36d59dcb69ac35cb
	* lang/qt/src/qgpgmebackend.h (Protocol): Make all functions
	 pure virtual.

	Qt: Don't declare showErrorDialog anymore.
	+ commit 3e38cc6fc67c420dec3e9e8afd072b4c8a157c85
	* cpp/qt/src/job.h: Remove showErrorDialog.

	Qt: Only use GpgME based config class.
	+ commit 7071b2a9c00b85d434d01b6166269ebf48b01b81
	* lang/qt/src/qgpgmecryptoconfig.cpp,
	 lang/qt/src/qgpgmecryptoconfig.h: Removed.
	* lang/qt/src/qgpgmebackend.cpp: Return newcryptoconfig.

2016-04-02  Andre Heinecke  <aheinecke@intevation.de>

	Add additional include path in config files.
	+ commit 63c115b067400e1b02c7d849c99f54dc9f394d68
	* lang/cpp/src/GpgmeppConfig.cmake.in.in
	 lang/qt/src/QGpgmeConfig.cmake.in.in: Include directory above headers.

	Qt: Fix library name in nodist variable.
	+ commit 576be46f34b42e896a5e3be65560a4b518a758be
	* lang/qt/Makefile.am (nodist_qgpgme_SOURCES): Change to real name.

	Add missing files to QGpgME.
	+ commit a440050fc2c11e4867da9d4707616fa23ac52141
	* lang/qt/src/gpgme_backend_debug.cpp,
	 lang/qt/src/gpgme_backend_debug.h,
	 lang/qt/src/predicates.h,
	 lang/qt/src/stl_util.h: New.

	Add QGpgME code from libkleo.
	+ commit 226e51052ae73efa8d9f30729b28de68d35231af
	* lang/qt/src/Makefile.am,
	lang/qt/src/abstractimportjob.h,
	lang/qt/src/adduseridjob.h,
	lang/qt/src/changeexpiryjob.h,
	lang/qt/src/changeownertrustjob.h,
	lang/qt/src/changepasswdjob.h,
	lang/qt/src/cryptoconfig.h,
	lang/qt/src/decryptjob.h,
	lang/qt/src/decryptverifyjob.h,
	lang/qt/src/deletejob.h,
	lang/qt/src/downloadjob.h,
	lang/qt/src/encryptjob.h,
	lang/qt/src/exportjob.h,
	lang/qt/src/hierarchicalkeylistjob.h,
	lang/qt/src/importfromkeyserverjob.h,
	lang/qt/src/importjob.h,
	lang/qt/src/job.cpp,
	lang/qt/src/job.h,
	lang/qt/src/keygenerationjob.h,
	lang/qt/src/keylistjob.h,
	lang/qt/src/listallkeysjob.h,
	lang/qt/src/multideletejob.h,
	lang/qt/src/qgpgmeadduseridjob.cpp,
	lang/qt/src/qgpgmeadduseridjob.h,
	lang/qt/src/qgpgmebackend.cpp,
	lang/qt/src/qgpgmebackend.h,
	lang/qt/src/qgpgmechangeexpiryjob.cpp,
	lang/qt/src/qgpgmechangeexpiryjob.h,
	lang/qt/src/qgpgmechangeownertrustjob.cpp,
	lang/qt/src/qgpgmechangeownertrustjob.h,
	lang/qt/src/qgpgmechangepasswdjob.cpp,
	lang/qt/src/qgpgmechangepasswdjob.h,
	lang/qt/src/qgpgmecryptoconfig.cpp,
	lang/qt/src/qgpgmecryptoconfig.h,
	lang/qt/src/qgpgmedecryptjob.cpp,
	lang/qt/src/qgpgmedecryptjob.h,
	lang/qt/src/qgpgmedecryptverifyjob.cpp,
	lang/qt/src/qgpgmedecryptverifyjob.h,
	lang/qt/src/qgpgmedeletejob.cpp,
	lang/qt/src/qgpgmedeletejob.h,
	lang/qt/src/qgpgmedownloadjob.cpp,
	lang/qt/src/qgpgmedownloadjob.h,
	lang/qt/src/qgpgmeencryptjob.cpp,
	lang/qt/src/qgpgmeencryptjob.h,
	lang/qt/src/qgpgmeexportjob.cpp,
	lang/qt/src/qgpgmeexportjob.h,
	lang/qt/src/qgpgmeimportfromkeyserverjob.cpp,
	lang/qt/src/qgpgmeimportfromkeyserverjob.h,
	lang/qt/src/qgpgmeimportjob.cpp,
	lang/qt/src/qgpgmeimportjob.h,
	lang/qt/src/qgpgmekeygenerationjob.cpp,
	lang/qt/src/qgpgmekeygenerationjob.h,
	lang/qt/src/qgpgmekeylistjob.cpp,
	lang/qt/src/qgpgmekeylistjob.h,
	lang/qt/src/qgpgmelistallkeysjob.cpp,
	lang/qt/src/qgpgmelistallkeysjob.h,
	lang/qt/src/qgpgmenewcryptoconfig.cpp,
	lang/qt/src/qgpgmenewcryptoconfig.h,
	lang/qt/src/qgpgmerefreshkeysjob.cpp,
	lang/qt/src/qgpgmerefreshkeysjob.h,
	lang/qt/src/qgpgmesecretkeyexportjob.cpp,
	lang/qt/src/qgpgmesecretkeyexportjob.h,
	lang/qt/src/qgpgmesignencryptjob.cpp,
	lang/qt/src/qgpgmesignencryptjob.h,
	lang/qt/src/qgpgmesignjob.cpp,
	lang/qt/src/qgpgmesignjob.h,
	lang/qt/src/qgpgmesignkeyjob.cpp,
	lang/qt/src/qgpgmesignkeyjob.h,
	lang/qt/src/qgpgmeverifydetachedjob.cpp,
	lang/qt/src/qgpgmeverifydetachedjob.h,
	lang/qt/src/qgpgmeverifyopaquejob.cpp,
	lang/qt/src/qgpgmeverifyopaquejob.h,
	lang/qt/src/refreshkeysjob.h,
	lang/qt/src/signencryptjob.h,
	lang/qt/src/signjob.h,
	lang/qt/src/signkeyjob.h,
	lang/qt/src/specialjob.h,
	lang/qt/src/threadedjobmixin.cpp,
	lang/qt/src/threadedjobmixin.h,
	lang/qt/src/verifydetachedjob.h,
	lang/qt/src/verifyopaquejob.h: New.
	* lang/qt/src/Makefile.am:

2016-03-08  Andre Heinecke  <aheinecke@intevation.de>

	Add qgpgme as qt language binding.
	+ commit 8347f3d5fc3e476aa767fbbaf09a1310a6154280
	* configure.ac: Add version defines. Check for qt if neccessary.
	* lang/README: Mention qt
	* lang/cpp/src/GpgmeppConfig.cmake.in.in: Remove comment. Find qgpgme.
	* lang/qt/src/Makefile.am: New. Build qgpgme.
	* lang/qt/README,
	 lang/qt/src/Makefile.am,
	 lang/qt/src/QGpgmeConfig.cmake.in.in,
	 lang/qt/src/QGpgmeConfigVersion.cmake.in,
	 lang/qt/src/dataprovider.cpp,
	 lang/qt/src/dataprovider.h,
	 lang/qt/src/qgpgme_export.h,
	 m4/qt.m4: New.
	* lang/cpp/src/GpgmeppConfig.cmake.in.in,
	 lang/cpp/src/Makefile.am: Fix generated config file.

	Remove obsolete w32-qt code.
	+ commit 58ed9c17f00f420035ecc6973a6c6ed948757a9a
	* configure.ac (w32-qt): Remove option and Qt checks.
	* src/Makefile.am: Remove BUILD_W32_QT handling.
	* src/kdpipeiodevice.cpp,
	 src/kdpipeiodevice.h,
	 src/kdpipeiodevice.moc,
	 src/w32-qt-io.cpp: Removed.

2016-03-02  Andre Heinecke  <aheinecke@intevation.de>

	Add version info for gpgmepp.
	+ commit a06603d75e80aba58df58f9a41770c56b6a1f0b8
	* lang/cpp/src/Makefile.am (libgpgmepp_la_LDFLAGS): Add version info.

	Add cmake configuration files.
	+ commit 77c3fb450c7adf36804a55d76ff49a06a71d22a0
	* configure.ac: Add libgpgmepp version. Configure cmake files.
	* lang/cpp/src/Makefile.am: Add targets for cmake files.
	 (EXTRA_DIST): Add cmake files.

	Fix export header and windows export macros.
	+ commit 98e5b672422ca1e38ca38ff0357cee6cc936aee0
	* lang/cpp/src/gpgme_export.h: Fix variable name. Add Windows ifdefs.

	Add header installation.
	+ commit c5291a88913ace8f2115021b69c7aeb59b4f79d4
	* lang/cpp/src/Makefile.am: Add headers as deps and install them.
	 (AM_CPPFLAGS): Add BUILDING_GPGMEPP to be used in export macros.

	Add enable-languages build option.
	+ commit a313b3e28cc42785365822519b25d6a87dfdf0c9
	* acinclude.m4 (LIST_MEMBER): New macro.
	* configure.ac (enable-languages): New option. Add info output.
	* lang/Makefile.am: Only add enabled language subdirs.

2016-02-22  Andre Heinecke  <aheinecke@intevation.de>

	Add README for gpgmepp.
	+ commit 7286fc7f3d51d475f82c7c9821d031290f5b0066
	* lang/README: Note down cpp.
	* cpp/README: Add README based on original repo version.

	Add buildsystem for Gpgmepp.
	+ commit f5fd787b5b45cb14d539b5c26f44066eb9ac0f75
	* configure.ac: Configure Makefiles.
	* lang/Makefile.am: Add cpp subdir
	* lang/cpp/Makefile.am: New. Add src subdir.
	* lang/cpp/src/Makefile.am: New. Basic buildsystem.

	Remove feature check ifdefs.
	+ commit 433bb8e84b2d1e50b5c5b9f7f2006b60cd7d7785
	* lang/cpp/src/assuanresult.cpp,
	 lang/cpp/src/callbacks.cpp,
	 lang/cpp/src/configuration.cpp,
	 lang/cpp/src/context.cpp,
	 lang/cpp/src/context_glib.cpp,
	 lang/cpp/src/context_qt.cpp,
	 lang/cpp/src/context_vanilla.cpp,
	 lang/cpp/src/data.cpp,
	 lang/cpp/src/decryptionresult.cpp,
	 lang/cpp/src/defaultassuantransaction.cpp,
	 lang/cpp/src/editinteractor.cpp,
	 lang/cpp/src/encryptionresult.cpp,
	 lang/cpp/src/engineinfo.cpp,
	 lang/cpp/src/eventloopinteractor.cpp,
	 lang/cpp/src/global.h,
	 lang/cpp/src/gpgagentgetinfoassuantransaction.cpp,
	 lang/cpp/src/importresult.cpp,
	 lang/cpp/src/interfaces/assuantransaction.h,
	 lang/cpp/src/key.cpp,
	 lang/cpp/src/keygenerationresult.cpp,
	 lang/cpp/src/keylistresult.cpp,
	 lang/cpp/src/scdgetinfoassuantransaction.cpp,
	 lang/cpp/src/signingresult.cpp,
	 lang/cpp/src/trustitem.cpp,
	 lang/cpp/src/util.h,
	 lang/cpp/src/verificationresult.cpp,
	 lang/cpp/src/vfsmountresult.cpp: Remove feature checks.

	Initial checkin of gpgmepp sources.
	+ commit 0855a1296a1908016f011eb5e6552854ac53e63a
	Based on git.kde.org/pim/gpgmepp rev. 0e3ebc02

	* lang/cpp/src/assuanresult.cpp,
	 lang/cpp/src/assuanresult.h,
	 lang/cpp/src/callbacks.cpp,
	 lang/cpp/src/callbacks.h,
	 lang/cpp/src/configuration.cpp,
	 lang/cpp/src/configuration.h,
	 lang/cpp/src/context.cpp,
	 lang/cpp/src/context.h,
	 lang/cpp/src/context_glib.cpp,
	 lang/cpp/src/context_p.h,
	 lang/cpp/src/context_qt.cpp,
	 lang/cpp/src/context_vanilla.cpp,
	 lang/cpp/src/data.cpp,
	 lang/cpp/src/data.h,
	 lang/cpp/src/data_p.h,
	 lang/cpp/src/decryptionresult.cpp,
	 lang/cpp/src/decryptionresult.h,
	 lang/cpp/src/defaultassuantransaction.cpp,
	 lang/cpp/src/defaultassuantransaction.h,
	 lang/cpp/src/editinteractor.cpp,
	 lang/cpp/src/editinteractor.h,
	 lang/cpp/src/encryptionresult.cpp,
	 lang/cpp/src/encryptionresult.h,
	 lang/cpp/src/engineinfo.cpp,
	 lang/cpp/src/engineinfo.h,
	 lang/cpp/src/error.h,
	 lang/cpp/src/eventloopinteractor.cpp,
	 lang/cpp/src/eventloopinteractor.h,
	 lang/cpp/src/exception.cpp,
	 lang/cpp/src/exception.h,
	 lang/cpp/src/global.h,
	 lang/cpp/src/gpgadduserideditinteractor.cpp,
	 lang/cpp/src/gpgadduserideditinteractor.h,
	 lang/cpp/src/gpgagentgetinfoassuantransaction.cpp,
	 lang/cpp/src/gpgagentgetinfoassuantransaction.h,
	 lang/cpp/src/gpgmefw.h,
	 lang/cpp/src/gpgmepp_export.h,
	 lang/cpp/src/gpgsetexpirytimeeditinteractor.cpp,
	 lang/cpp/src/gpgsetexpirytimeeditinteractor.h,
	 lang/cpp/src/gpgsetownertrusteditinteractor.cpp,
	 lang/cpp/src/gpgsetownertrusteditinteractor.h,
	 lang/cpp/src/gpgsignkeyeditinteractor.cpp,
	 lang/cpp/src/gpgsignkeyeditinteractor.h,
	 lang/cpp/src/importresult.cpp,
	 lang/cpp/src/importresult.h,
	 lang/cpp/src/key.cpp,
	 lang/cpp/src/key.h,
	 lang/cpp/src/keygenerationresult.cpp,
	 lang/cpp/src/keygenerationresult.h,
	 lang/cpp/src/keylistresult.cpp,
	 lang/cpp/src/keylistresult.h,
	 lang/cpp/src/notation.h,
	 lang/cpp/src/result.h,
	 lang/cpp/src/result_p.h,
	 lang/cpp/src/scdgetinfoassuantransaction.cpp,
	 lang/cpp/src/scdgetinfoassuantransaction.h,
	 lang/cpp/src/signingresult.cpp,
	 lang/cpp/src/signingresult.h,
	 lang/cpp/src/trustitem.cpp,
	 lang/cpp/src/trustitem.h,
	 lang/cpp/src/util.h,
	 lang/cpp/src/verificationresult.cpp,
	 lang/cpp/src/verificationresult.h,
	 lang/cpp/src/vfsmountresult.cpp,
	 lang/cpp/src/vfsmountresult.h,
	 lang/cpp/src/interfaces/assuantransaction.h,
	 lang/cpp/src/interfaces/dataprovider.h,
	 lang/cpp/src/interfaces/passphraseprovider.h,
	 lang/cpp/src/interfaces/progressprovider.h: New.

2016-01-15  Werner Koch  <wk@gnupg.org>

	Fix possible _SC_OPEN_MAX max problem on AIX.
	+ commit e79199468ac54ce4fe919603ff7bada97267174f
	* src/posix-io.c [HAVE_STDINT_H]: Include stdint.h.
	(get_max_fds): Limit returned value for too high values.

2015-12-09  Werner Koch  <wk@gnupg.org>

	w32: Avoid conflict with Mingw-w64 version 4.0.4-1.
	+ commit 83415dffaea53611dbce77b50d8ddfb2a50aed2e
	* src/w32-util.c (mkstemp): Rename to my_mkstemp.  Change caller.

2015-12-04  Daiki Ueno  <ueno@gnu.org>

	Return on user cancellation of delete operation.
	+ commit 67d7f7a9383763b01daf877c846bf3e32f647fa5
	* src/delete.c (delete_status_handler): Return on ERROR status, if the
	error location is set to "delete_key.secret" and the code is either
	CANCELED or FULLY_CANCELED, which indicates a situation that the user
	selected "No" on the confirmation dialog.

	doc: Fix minor errors.
	+ commit 3b6e9a3d0afcdd3c2f1de19f15924c3404c7140a
	* doc/gpgme.texi: Fix errors and typos in the cancellation and
	gpgme_import_result_t documentation.

2015-10-29  Ben Kibbey  <bjk@luxsci.net>

	Make use of user passphrase handler during passwd.
	+ commit dfa79f9300b837b0f7f2ea44afa589bfcda1dbd9
	* src/passwd.c (passwd_start): set engine passphrase command handler.

2015-10-28  Werner Koch  <wk@gnupg.org>

	w32: Add extra diagnostic about possible missing gpgme-w32spawn.exe.
	+ commit bb2d11c1eebd4bcfb0f2cfce728026a7420dca47
	* src/w32-io.c (_gpgme_io_spawn): Add a new diagnostic.

	w32: Improve locating gpgconf on 64 bit systems.
	+ commit a82e9b182f62966207cad0972be6fa284329a5a1
	* src/w32-util.c (find_program_at_standard_place): Fallback to
	CSIDL_PROGRAM_FILESX86.

	w32: Add new global flag "w32-inst-dir".
	+ commit bb600aa8fd2f9575ee7afc64c978e3e7523b1173
	* src/gpgme.c (gpgme_set_global_flag): Add flag "w32-inst-dir";
	* src/posix-util.c (_gpgme_set_override_inst_dir): New stub.
	* src/w32-util.c (override_inst_dir): New var.
	(_gpgme_get_inst_dir): Return this var is set.
	(_gpgme_set_override_inst_dir): New.

2015-10-16  NIIBE Yutaka  <gniibe@fsij.org>

	cleanup: Fix type mismatch around gpgme_error_t.
	+ commit 0d9d0a6b5b0c6f474a079bbaef11078c5df5f3b5
	* src/data-compat.c (gpgme_error_to_errno): Use gpg_err_code
	to get error code from gpgme_error_t.
	* src/gpgme.c (gpgme_new): Don't use gpgme_error.

2015-08-31  Werner Koch  <wk@gnupg.org>

	gpgme-tool: Switch to argparse.c for option parsing.
	+ commit f0ccce855bd99fca7cfbbcafe3544e3113fedc67
	* src/argparse.c, src/argparse.h: New. Taken from current gnupg.
	* src/Makefile.am (gpgme_tool_SOURCES): New.
	* src/gpgme-tool.c: Remove all argp.h stuff.
	(my_strusage): New.
	(main): Change to use argparse.

2015-08-30  Werner Koch  <wk@gnupg.org>

	Add gpgme_pubkey_algo_string.
	+ commit c4b6b35bfa98e478f1d13f4ce3e664771f2604c2
	* src/gpgme.h.in (GPGME_PK_EDDSA): New.
	(gpgme_pubkey_algo_string): New.
	* src/conversion.c (_gpgme_map_pk_algo): Add new algo.
	* src/gpgme.c (gpgme_pubkey_algo_string): New.
	(gpgme_pubkey_algo_name): Reformat.

2015-08-26  Werner Koch  <wk@gnupg.org>

	Release 1.6.0.
	+ commit 107bff70edb611309f627058dd4777a5da084b1a
	* configure.ac: Set LT version to C25/A14/R0.

	Make use of GPGRT macros is available.
	+ commit c4f4b5c0a6fc172f7ceedc1a0021169e7f31b941
	* src/gpgme.h.in (_GPGME_INLINE): Define using GPGRT_INLINE if
	possible.  Fix problem with -Wundef by adding an extra "defined()".
	(_GPGME_GCC_VERSION): Define using GPGRT_ macro if possible.

2015-08-25  Werner Koch  <wk@gnupg.org>

	Avoid -Wundef warnings if gpgme.h is used by g++.
	+ commit 3f53d3d5d9e73a053b1e89073ef8f7cf01bfc8e6
	* src/gpgme.h.in (_GPGME_INLINE): Move definition into the
	extern-C-scope.

	Add configure option --enable-build-timestamp.
	+ commit ff91e699f7c14ea6cbc27b487cb40e9f6bd58901
	* configure.ac (BUILD_TIMESTAMP): Set to "<none>" by default.

2015-08-25  Daiki Ueno  <ueno@gnu.org>

	Relax ttyname_r error checks.
	+ commit 028a0ef3336c5180797fb247448683195376c007
	* src/engine-assuan.c (llass_new): Don't treat ttyname_r error as
	fatal.
	* src/engine-g13.c (g13_new): Likewise.
	* src/engine-gpg.c (gpg_new): Likewise.
	* src/engine-gpgsm.c (gpgsm_new): Likewise.
	* src/engine-uiserver.c (uiserver_new): Likewise.

2015-08-25  Werner Koch  <wk@gnupg.org>

	Cleanup layout of gpgme.h.
	+ commit 97f1f3e883808743da5ee144abab25de062f34ac
	* src/gpgme.h.in: Reorder prototypes.  Chnage some comments.

	Improve error return by checking the FAILURE status.
	+ commit 8ddc5801ade02297924447df5745c8877a96e5e3
	* src/gpgme.h.in (GPGME_STATUS_FAILURE): New.
	* src/status-table.c (FAILURE): New.
	* src/op-support.c (_gpgme_parse_failure): New.
	* src/passphrase.c (_gpgme_passphrase_status_handler): Forward FAILURE
	status line to the status callback.

	* src/decrypt.c (op_data_t): Add field failure_code.
	(_gpgme_decrypt_status_handler): Parse that code and act upon it on EOF.
	* src/encrypt.c (op_data_t): Add field failure_code.
	(_gpgme_encrypt_status_handler): Parse that code and act upon it on EOF.
	* src/genkey.c (op_data_t): Add field failure_code.
	(genkey_status_handler): Parse that code and act upon it on EOF.
	* src/passwd.c (op_data_t): Add field failure_code.
	(passwd_status_handler): Parse that code and act upon it on EOF.
	* src/sign.c (op_data_t): Add field failure_code.
	(_gpgme_sign_status_handler): Parse that code and act upon it on EOF.
	* src/verify.c (op_data_t): Add field failure_code.
	(_gpgme_verify_status_handler): Parse that code and act upon it on EOF.

	tests: Allow using run-sign to test loopback pinentry problems.
	+ commit 491fcd91b84564232d5d061942baa50b99e166c0
	* tests/run-sign.c: Add options --status and --loopback.

2015-08-24  Werner Koch  <wk@gnupg.org>

	Call status_cb for an ERROR status seen in the passphrase handler.
	+ commit ad46f4f655e653580343c15f1b0b365b7d307d1b
	* src/passphrase.c (_gpgme_passphrase_status_handler): Call status_cb.

	w32: Look for gpgconf in the new GnuPG 2.1 install dir.
	+ commit a7dbab23ea4976d106d649aa515ffb2968a085ed
	* src/w32-util.c (_gpgme_get_gpgconf_path): Try another location of
	gpgconf.exe.

	w32: Expect gpgme-w32spawn.exe only in the gpgme installation dir.
	+ commit 06d6fd8ca01354c8f7cfc847c4ac1b868268cbaa
	* src/w32-util.c (find_program_at_standard_place): Remove.
	(_gpgme_get_gpg_path): Make the search order more explicit.
	(_gpgme_get_gpgconf_path): Ditto.
	(_gpgme_get_w32spawn_path): Search only in the inst_dir.

	w32: Print the installation directory in debug mode.
	+ commit df098d6a437109c57516db75addf3764a6dfda81
	* src/debug.c (debug_init) [W32]: Show libgpgme installation dir.

	Add an export secret key feature.
	+ commit 2b632bbb78eee2b94c122f66d171a7c80e9c4fb0
	* src/gpgme.h.in (GPGME_EXPORT_MODE_SECRET): New.
	(GPGME_EXPORT_MODE_RAW): New.
	(GPGME_EXPORT_MODE_PKCS12): New.
	* src/export.c (export_start, export_ext_start): Allow new flags.
	* src/engine-gpg.c (export_common): Support secret key export.
	* src/engine-gpgsm.c (gpgsm_export, gpgsm_export_ext): Ditto.

	* src/gpgme-tool.c (cmd_export): Add options --secret, --raw,
	and --pkcs12.
	* tests/run-export.c (main): Likewise.

2015-08-16  Ben Kibbey  <bjk@luxsci.net>

	Parse INQUIRE_MAXLEN in the passphrase callback.
	+ commit ccbaccbf2e0ba582d181b9ee4d8543d7c1248b2c
	* src/passphrase.c (_gpgme_passphrase_status_handler): Parse
	GPGME_STATUS_INQUIRE_MAXLEN.
	* src/passphrase.c (_gpgme_passphrase_command_handler): Send the
	INQUIRE_MAXLEN status message.

	Fix gpgme_{get,set}_status_cb to match documentation.
	+ commit 70b3e5964ea0592bd09d1877d720b2c63f501970
	* doc/gpgme.texi: Minor fixes.
	* src/gpgme.c (gpgme_get_status_cb): Set return variables to NULL and
	check for a valid ctx pointer.

	Parse the INQUIRE_MAXLEN status message.
	+ commit 6dd24c3c6133ec54f75abd056191a8027fe01de0
	* src/gpgme.h.in: (gpgme_status_code_t): Add INQUIRE_MAXLEN.
	* src/status-table.c (status_table_s): Ditto.
	* src/genkey.c (genkey_status_handler): Parse INQUIRE_MAXLEN.
	* src/decrypt.c (_gpgme_decrypt_status_handler): Ditto.
	* src/sign.c (_gpgme_sign_status_handler): Ditto.

	This status message informs the client of the maximum length of an
	inquired line. It is sent from gpg and forwarded to the client via
	gpgme_status_cb_t.

	Add gpgme_set/get_status_cb().
	+ commit 4fadcf06ec8b0ebfb05c7622dbc3b73fd3c1bad9
	* src/gpgme.h.in (gpgme_set_status_cb): New.
	(gpgme_get_status_cb): New.
	(gpgme_status_cb_t): New.
	* src/gpgme.c (gpgme_set_status_cb): New.
	(gpgme_get_status_cb): New.
	* src/context.h (status_cb): New.
	(status_cb_value): New.
	* src/gpgme.def: Export new symbols.
	* src/libgpgme.vers: Ditto.
	* doc/gpgme.texi: Document these new functions.

	Make use of user passphrase handler during genkey.
	+ commit 2b6ae3dadf4432f7a72fd119144b835f7b1adcc4
	* src/genkey.c (genkey_start): set engine passphrase command handler.

2015-08-12  Ben Kibbey  <bjk@luxsci.net>

	Also check the return code in gpg_sign().
	+ commit e07d38f5f9f3b94e403f1265ff7fd3d7009dd557
	* src/engine-gpg.c (gpg_sign): Check return value from start().

2015-08-11  Ben Kibbey  <bjk@luxsci.net>

	Check the return value when starting gpg.
	+ commit 8f28e3caf95d7bc99e9271bfc2b44080166af31f
	* src/engine-gpg.c (gpg_decrypt, gpg_delete, gpg_passwd): Check return
	value of start().

2015-08-02  Ben McGinnes  <ben@adversary.org>

	More GTK2 removal.
	+ commit a7fbd5293ed0ba2c179837a4a2b859376d30e35e
	* Missed a couple of files, these 2 go for the same reason as the
	  previous 3.

	Removed GUI examples.
	+ commit 1cd0aef0afb196094d90673002d4c210a04911c9
	* GUI examples written with pygtk, which has not been ported to Python
	  3 and won't be as it is for GTK2 and GNOME is moving to GTK3.
	* New GUI examples may be required in future using any of several GUI
	  frameworks (e.g. wxPython, PyQt, PySide, PyGObject, etc.).

2015-07-31  Andre Heinecke  <aheinecke@intevation.de>

	Add offline mode support for CMS keylisting.
	+ commit 08086dd6901740e155e4361212b4e9cff8a47296
	* doc/gpgme.texi: Document offline mode.
	* src/context.h (gpgme_context): Add offline.
	* src/engine-backend.h (keylist, keylist_ext): Add engine_flags.
	* src/engine.c, src/engine.h (_gpgme_engine_op_keylist): Ditto.
	  (_gpgme_engine_op_keylist_ext): Ditto.
	* src/engine.h (GPGME_ENGINE_FLAG_OFFLINE): New.
	* src/engine-gpg.c (gpg_keylist, gpg_keylist_ext): Ditto.
	* src/engine-gpgsm.c (gpgsm_keylist): Handle engine_flags.
	  (gpgsm_keylist_ext): Ditto.
	* src/gpgme.c (gpgme_set_offline, gpgme_get_offline): New.
	* src/gpgme.def (gpgme_set_offline, gpgme_get_offline): New.
	* src/gpgme.h.in (gpgme_set_offline, gpgme_get_offline): New.
	* src/libgpgme.vers (gpgme_set_offline, gpgme_get_offline): New.
	* src/keylist.c (gpgme_op_keylist_start): Set offline flag.
	  (gpgme_op_keylist_ext_start): Ditto.
	* tests/run-keylist.c (show_usage, main): Add offline argument.

2015-07-23  Peter Wu  <peter@lekensteyn.nl>

	build: ignore scissor line for the commit-msg hook.
	+ commit 157c8be183153ff588f98874a3205aa483d0fd23
	* build-aux/git-hooks/commit-msg: Stop processing more lines when the
	  scissor line is encountered.

2015-07-23  Werner Koch  <wk@gnupg.org>

	Add option --lib-version to gpgme-tool.
	+ commit c23f8897105ce2bb6e62d9c44ca0779fcc08a919
	* src/gpgme-tool.c (options, parse_options):  Add --lib-version
	(CMD_LIBVERSION): New.
	(main): Implement.

2015-06-08  Werner Koch  <wk@gnupg.org>

	Release 1.5.5.
	+ commit 052a9e3c5671d1ab69551f7b0abd0bbf859d4aba


	Fix regression with gpgsm 2.0 due to "OPTION with-secret".
	+ commit ddbd54ef881bd2c3481d62b89bef7241667b64ee
	* src/engine-gpgsm.c (gpgsm_assuan_simple_command): Do not terminate
	on a status lines.

	tests: Add option --secret to run-keylist.
	+ commit 7addffc0826e7f36afcc7f66268e9ee2a37e2042


	Fix compiler warnings about unused value in TRACE macros.
	+ commit 8b9f84828cd04a7dab37e219123edc1905da8e6b
	* src/debug.h: Change macros to not have a literal 0 as last
	expression of the comma operator.
	* src/debug.c (_gpgme_debug_frame_end): Return 0.
	(_gpgme_debug): Return 0.

	Fix test suite for GnuPG 2.1 which uses pubring.kbx.
	+ commit a5b040cc57c65b3d105666b90c7eb59ee6ff3882
	* tests/gpgsm/final.test: New.
	* tests/gpgsm/initial.test: New.
	* tests/gpg/start-stop-agent: Move to ../.
	* tests/gpgsm/Makefile.am (TESTS_ENVIRONMENT): Export top_srcdir.
	(TESTS): Add intial.test and final.test.
	(AM_LDFLAGS): Add -no-install.
	(clean-local): Use start-stop-agent
	(initial.test): Add dependency.
	* tests/gpg/Makefile.am (top_srcdir): Export top_srcdir.
	(AM_LDFLAGS): Add -no-install.
	(check-local): Depend on pubring-stamp instead of pubring.gpg.
	(initial.test): Depend on check-local.
	(./pubring-gpg): Replace by rule for ./pubring-stamp.

2015-06-05  Matthew Barnes  <mbarnes@redhat.com>

	Set GPGME_SIGSUM_KEY_REVOKED also for gpg.
	+ commit 87d713ff41454bd08a345c63605f6fc7ac854dd4
	* src/verify.c (calc_sig_summary): Handle GPG_ERR_CERT_REVOKED.

2015-06-05  Werner Koch  <wk@gnupg.org>

	Fix segv for userids with a backslash.
	+ commit 0d28a696163677d6b34a802b6beddecd805d0fc7
	* src/engine-gpg.c (gpg_keylist_preprocess): Increment SRC for a
	backslash.

2015-05-16  Ben McGinnes  <ben@adversary.org>

	Python 3 port of PyME.
	+ commit 90405ac84b78ba7e5458ea09986749594a01195a
	* Port of PyME 0.9.0 for Python 2 to Python 3 along with most of the
	  example scripts.
	* Intended to be developed in parallel with the original Python 2
	  version until such time as a rewrite of GPGME leads to developing an
	  IO API in Python 3 from scratch.
	* Python 3 PyME and API maintainer has entered, stage left with current
	  GPG key ID 0x321E4E2373590E5D, primary fingerprint is "DB47 24E6 FA42
	  86C9 2B4E  55C4 321E 4E23 7359 0E5D" and signing subkey fingerprint is
	  "B7F0 FE75 9387 430D D0C5  8BDB 7FF2 D371 35C7 553C" for future
	  reference with git commit signatures.

	Explaining why not all scripts work.
	+ commit 29887c9b28c0db14bf75e227a8082d23a2c151d2
	* Some of them cannot be properly tested on OS X, especially with GTK in
	  the mix (it works on OS X, but is unlikely to be as easily accessible
	  as Cocoa or Qt).
	* Most major functions are showcased and do work, albeit sometimes with
	  false positives of error messages, at least on OS X.

	Byte encoding.
	+ commit c39cea7a07cec9ab34cd2026f47b6fba80fea3c8
	* More string updates.
	* verifydetails.py still fails, but as Bernhard is still contactable, it
	  might be worth him checking on it instead.

	No change, note added to explain why.
	+ commit 0e6e6689ef1aea36c1cb3cb47e94f1f2ebbd97cb


	Strings vs. Bytes.
	+ commit 40290507bcdc63ab9023393d071167d455d70737
	* CLI input must be byte encoded.

	More byte changes and passphrase changes.
	+ commit 325b0ca341ae3ac8c3232f557ea2c381b4843969
	* exportimport works, but will still segfault for an as yet unknown
	  reason.
	* genkey produces a traceback error, but does create the key as
	  intended.
	* matched passphrase in signverify.

	More bytes good.
	+ commit ba3c9f2617955dc828309a4800e4f5b3f1c3a949
	* Another string to byte change.

	Updated encrypt-to-all.
	+ commit 1c87ecb86ae364b18f69bca726021271fefaa1c1
	* Changed plaintext string to byte literal.
	* Nested key selection in a try/except statement in case of
	  UnicodeEncodeError instances.
	* Tested successfully on over 9,000 keys.

	Passphrase update.
	+ commit 24c738f5bb5c253a17962c62867d6c847250b41e
	* Changed example passphrase to something that meets the current minimum
	  requirements.

	example email.
	+ commit 8345bf6f43c4f671124eaa1b713a7f5ac5780cbd
	* changed joe@foo.bar to joe@example.org as it is only a matter of time
	  before ICANN actually creates bar as a gTLD, if they haven't already.

	Updated string and key data.
	+ commit 4fc123981514c7087114e08ee8ca63de1a1db59f
	* Text changed to byte literals.
	* Changed key type to RSA/RSA.
	* Changed expiry to the future (2020).

2015-05-08  Ben McGinnes  <ben@adversary.org>

	String type.
	+ commit 90079786c5cde4dd8ceb2e0fcda7605b08ccd021
	* the plain text string must be bytes and not unicode.
	* Expect most of the example code to have similar issues at present.

2015-05-05  Ben McGinnes  <ben@adversary.org>

	Python 3 port of PyME.
	+ commit ebd8734ad705afa4edc409787a00d4968d25e018
	* The entirety of the Python 3 port of PyME up to commit
	  2145348ec54c6027f2ea20f695de0277e2871405
	* The old commit log has been saved as
	  lang/py3-pyme/docs/old-commits.log
	* Can be viewed as a normal (separate) git repository at
	  https://github.com/adversary-org/pyme3
	* Utilising the submodule feature of git was deliberately skipped on
	  humanitarian grounds (in order to prevent pain and suffering on the
	  part of anyone having to manage this repository).

2015-04-13  Werner Koch  <wk@gnupg.org>

	Release 1.5.4.
	+ commit d2712d9f6f086911184453219a096c61f6829d3b


	w32: Use -static-libgcc to avoid linking to libgcc_s_sjlj-1.dll.
	+ commit 524dacfbb6bb131f05a4ecab3d7bcd91c1b43d33
	* src/Makefile.am (extra_ltoptions): New.
	(libgpgme_la_LDFLAGS): Use it.
	(libgpgme_pthread_la_LDFLAGS): Ditto.
	(libgpgme_glib_la_LDFLAGS): Ditto.

2015-03-16  Werner Koch  <wk@gnupg.org>

	Fix potential crash in trace macro.
	+ commit 8cfcdfe5564f87362e5ec1bfdca5c14aed9c45f0
	* src/signers.c (gpgme_signers_add): Avoid deref of a NULL KEY in the
	trace macro.
	* src/engine-spawn.c (engspawn_release): Remove always true condition.
	* src/engine-gpg.c (gpg_release): Ditto.

	Fix one byte too short malloc.
	+ commit 119f27032b822ace8c012b96f9e41bcf23251a54
	* src/engine-spawn.c (add_data): Fix malloc

2015-01-30  Werner Koch  <wk@gnupg.org>

	Switch to automake 1.14 and update  build-aux files.
	+ commit 428ea7696585bc24d127b903840554ca659069b6


2014-12-11  Werner Koch  <wk@gnupg.org>

	Release 1.5.3.
	+ commit 37d927a9706fff6d8ef8d45073984ea2f92afb31
	* configure.ac: Set LT version to C24/A13/R2.

2014-12-08  Werner Koch  <wk@gnupg.org>

	Return an error for some export key operations.
	+ commit 05258d427513a933f01d4df13aca834d797f91e7
	* src/context.h (OPDATA_EXPORT): New.
	* src/export.c (op_data_t): New.
	(release_op_data): New.
	(parse_error): New.
	(export_status_handler): New.
	(export_start, export_ext_start): Prepare op_data.
	(gpgme_op_export_ext, gpgme_op_export_keys): Return an error from the
	status handler.

2014-11-21  Werner Koch  <wk@gnupg.org>

	Release 1.5.2.
	+ commit c62ce32b9c01ee9ceb1d69e7344fb79a9162d232
	* configure.ac: Set LT version to C24/A13/R1.

	Update the previous commit.
	+ commit 81ce87111f5a3f966188629abb07a4d0702e6db0
	* src/sign.c (gpgme_op_sign_result): Reformat and take care of failed
	malloc.

2014-11-21  Ben Kibbey  <bjk@luxsci.net>

	Fix returning new signatures when there are none.
	+ commit 5942b0c7e0593b82b4c4a142c214d7a2649de104
	* src/sign.c (gpgme_op_sign_result): Test that invalid and valid
	signatures add up to gpgme_signers_count().

2014-11-06  Werner Koch  <wk@gnupg.org>

	Improve the debug output a bit.
	+ commit 8031341283f4fcb1f226aa6f66bc5a6042586815
	* src/debug.h (TRACE_ERR): Include the line number in the output.

2014-10-02  Werner Koch  <wk@gnupg.org>

	build: Implement SYSROOT feature.
	+ commit 4027a0a89724df3aeef8a964c529548d724b6a5a
	* configure.ac: Document SYSROOT.
	* m4/gpg-error.m4: Update from libgpg-error master.
	* src/gpgme.m4: Implement SYSROOT stuff.

2014-09-24  Werner Koch  <wk@gnupg.org>

	tests: Delay some test file extraction until "make check".
	+ commit 2e8ecc24cf74f918c303c315da3bb18636a5e288
	* tests/gpg/Makefile.am (all-local): Change to check-local.
	* tests/gpgsm/Makefile.am (all-local): Ditto.

2014-09-24  Daniel Kahn Gillmor  <dkg@fifthhorseman.net>

	Clean up gpgme's tests/gpg when gpg2.1 is available.
	+ commit 36997e0f746ce2d38de997055141542583cc0f52
	* tests/gpg/Makefile.am: Clean up .gpg-v21-migrated

2014-08-12  Werner Koch  <wk@gnupg.org>

	gpgme-tool: Print fingerprint and keyid with keyservers.
	+ commit 4160ef90a1b1b778c735f31f98a6966ba3b3ea90
	* src/gpgme-tool.c (cmd_keylist): Print keyid.  Print FPR only if
	available.

	Handle modern keyserver output which may emit the fingerprint.
	+ commit 3450bff52baef2c14118958cf79ead46940d58f0
	* src/engine-gpg.c (read_colon_line): Split preprocessed lines.
	(gpg_keylist_preprocess): Limit keyid field and print fingerprint.

	gpgme-tool: Install gpgme-tool.
	+ commit 488e44cdb531035fa8813b95b212f9728abc7e62
	* src/Makefile.am (bin_PROGRAMS): New.  Add gpgme-tools.
	(noinst_PROGRAMS): Remove.

	gpgme-tool: Fix segv for external key listing.
	+ commit e5ab11607281b9838da2728268a8f9f0daa2b04d
	* src/gpgme-tool.c (result_xml_escape): Allow for DATA being NULL.

2014-07-30  Werner Koch  <wk@gnupg.org>

	Release 1.5.1.
	+ commit 16835c3b5d1cea18512b2c93e884d8ca513a2ee7
	* configure.ac: Change LT version to C24/A13/R0.

	Fix possible realloc overflow for gpgsm and uiserver engines.
	+ commit 2cbd76f7911fc215845e89b50d6af5ff4a83dd77
	* src/engine-gpgsm.c (status_handler):
	* src/engine-uiserver.c (status_handler):

2014-06-26  Werner Koch  <wk@gnupg.org>

	w32: Get IOSPAWN flag back in sync with spawn helper.
	+ commit 68116fa5f67238a60bb8be375cc959262fa021d3
	* src/gpgme-w32spawn.c: Include priv-io.h.

2014-06-10  Werner Koch  <wk@gnupg.org>

	Add new reason codes to the INV_RECP status code.
	+ commit 86260b47c9e306e325103d1af767842357647e60
	* src/op-support.c (_gpgme_parse_inv_recp): Add codes 13 and 14.

2014-06-04  Werner Koch  <wk@gnupg.org>

	Add new keylist mode GPGME_KEYLIST_MODE_WITH_SECRET.
	+ commit 4dc9af24156b4fd52c7b76e7522b9b7a64e5386a
	* src/gpgme.h.in (GPGME_KEYLIST_MODE_WITH_SECRET): New.
	* src/engine-gpg.c (gpg_keylist_build_options): Handle new mode.
	* src/engine-gpgsm.c (gpgsm_keylist, gpgsm_keylist_ext): Ditto.
	* src/keylist.c (parse_sec_field15): Add arg key and take care of
	--with-secret output.

	* src/gpgme-tool.c (gt_get_keylist_mode, cmd_keylist_mode): Add
	"with_secret".  Print card info and and secret flag for subkeys.

2014-05-21  Werner Koch  <wk@gnupg.org>

	Release 1.5.0.
	+ commit 0eca21113c1d1ab2aea58e1ea21075f472f99c23
	* configure.ac: Change LT version to C22/A11/R0.

2014-05-13  Werner Koch  <wk@gnupg.org>

	Add 6 new GPGME_STATUS_ codes.
	+ commit de6caeed6d6432101c673c35717f152d5facf823
	* src/status-table.c: Also add missing DECRYPTION_INFO entry.

2014-05-08  Werner Koch  <wk@gnupg.org>

	Add field CURVE to the key info.
	+ commit 88f15336ec0eadde68ff2618349efb9006b8e801
	* src/gpgme.h.in (struct _gpgme_subkey): Add field CURVE.
	* src/key.c (gpgme_key_unref): Free CURVE.
	* src/keylist.c (keylist_colon_handler): Set CURVE.

	* src/gpgme.c (gpgme_release): For failsafe reasons reset engine and
	engine info after freeing.

	Fix a memory access and a double slash bug.
	+ commit de4a1ea684e1591975feb801e7651309e1ee2c49
	* src/engine-spawn.c (engspawn_start): Allocate space for list
	terminator.
	* src/posix-util.c (walk_path): Fix trailing slash detection.

	Map public key algos returned by gpg to gpgme values.
	+ commit d5fb92cdaed21eea2f1a921e4f11df72635a8462
	* src/conversion.c (_gpgme_map_pk_algo): New.
	* src/decrypt.c (parse_enc_to): Add arg PROTOCOL and map pubkey algo.
	(_gpgme_decrypt_status_handler): Map pubkey algo.
	* src/keylist.c (keylist_colon_handler): Map pubkey algo.
	* src/sign.c (parse_sig_created): Add arg PROTOCOL and map pubkey
	algo.
	* src/verify.c (parse_new_sig): Ditto.
	(parse_valid_sig): Ditto.

	* src/gpgme.h.in (GPGME_PK_ECC): New.
	(GPGME_MD_SHA224): New.
	* src/gpgme.c (gpgme_pubkey_algo_name): Add GPGME_PK_ECC case.
	(gpgme_hash_algo_name): Add GPGME_MD_SHA224.

	Add GPGME_ENCRYPT_NO_COMPRESS flag.
	+ commit 991cde9e79fec70aad093ded383c5574d30f9388
	* src/gpgme.h.in (GPGME_ENCRYPT_NO_COMPRESS): New.
	* src/engine-gpg.c (gpg_encrypt, gpg_encrypt_sign): Implement it.
	* src/gpgme-tool.c (_cmd_sign_encrypt): Add option --no-compress.

2014-04-16  Werner Koch  <wk@gnupg.org>

	w32: Fix another memleak on error.
	+ commit 62711e5614e44e65a7c7bb7d21493d09d3081271
	* src/w32-io.c (create_reader): free CTX.

2014-04-15  Werner Koch  <wk@gnupg.org>

	w32: Fix memleak in an error code paths.
	+ commit 85a07ca7e3dffdefc8ae74beebb59e47a6e6bd1b
	* src/w32-io.c (create_writer): Free CTX in cased of bad FD.
	* src/w32-util.c (_gpgme_mkstemp): Free TMPNAME in case of a failed
	mkstemp.

	Fix possible zombie processes.
	+ commit 2bb26185e3b9a048033c559517d6ba7d2eb47066
	* src/posix-io.c (_gpgme_io_waitpid): Protect waitpid agains EINTR.
	(_gpgme_io_dup): Likewise.
	(_gpgme_io_connect): Likewise.

2014-04-10  Werner Koch  <wk@gnupg.org>

	Actually implement flags for gpgme_op_spawn.
	+ commit d3bd8fff863f62b6d0e228aea754efbbde861e9a
	* src/spawn.c (gpgme_op_spawn_start, gpgme_op_spawn): Pass FLAGS dow
	to spawn_start and add FLAGS args along the call path.
	* src/engine-spawn.c (engspawn_start): Hack to automagically provide
	argv[0].

	Add GPGME_PROTOCOL_SPAWN and gpgme_op_spawn.
	+ commit 4f2d652e60700e03809307a10015ff9003ac3579
	* src/gpgme.h.in (GPGME_PROTOCOL_SPAWN): New.
	(GPGME_SPAWN_DETACHED, GPGME_SPAWN_ALLOW_SET_FG): New.
	* src/gpgme.c (gpgme_set_protocol): Add new protocol.
	(gpgme_get_protocol_name): Ditto.
	* src/spawn.c: New.
	* src/libgpgme.vers, src/gpgme.def: Add new public functions.
	* src/engine-spawn.c: New.
	* src/Makefile.am: Add new files.
	* src/engine-backend.h (struct engine_ops): Add OPSPAWN.
	* src/engine.c (engine_ops): Add _gpgme_engine_ops_spawn.
	(gpgme_get_engine_info): Add Spawn to the list of protocols.
	(_gpgme_engine_op_spawn): New.

	* src/gpgme-tool.c (gt_protocol_from_name): Add new protocol.
	(gt_spawn, cmd_spawn): New.

	Add gpgme_get_dirinfo.
	+ commit 77931a9a1468b0cfbaafd4153867d90764a6d258
	* src/dirinfo.c (gpgme_get_dirinfo): New.
	* tests/t-engine-info.c (main): Print results from that function.

	Make use of internal iospawn flags more flexible.
	+ commit 443f6b76a964b77e2e61c03592a83ffa0a6da4b1
	* src/priv-io.h (IOSPAWN_FLAG_DETACHED): New. Renumber the others.
	* src/w32-io.c (_gpgme_io_spawn): Use DETACHED_PROCESS process only if
	IOSPAWN_FLAG_DETACHED is given.
	* src/w32-qt-io.cpp (_gpgme_io_spawn): Ditto.
	* src/w32-glib-io.c (_gpgme_io_spawn): Ditto.
	* src/assuan-support.c (my_spawn): Pass IOSPAWN_FLAG_DETACHED flags.
	* src/dirinfo.c (read_gpgconf_dirs): Ditto.
	* src/engine-gpg.c (start): Ditto.
	* src/engine-gpgconf.c (gpgconf_read, gpgconf_write): Ditto.
	* src/version.c (_gpgme_get_program_version): Ditto.

	Make sure a spawned process has all standard fds connected.
	+ commit 617d3be629229cbebfdc2d26a4e854bc4fe38a68
	* src/posix-io.c (_gpgme_io_spawn): dup /dev/null also to unsued
	stdout.

2014-03-13  Werner Koch  <wk@gnupg.org>

	Add configure option --enable-fixed-path.
	+ commit 766355b5d4f63261c428531fdbdafb8b67de9369
	* configure.ac: Add option --enable-fixed-path.
	(FIXED_SEARCH_PATH): New ac_define.
	* src/posix-util.c (walk_path): Make use of the option.  Remove
	current directory from fallback PATH.

2014-03-11  Werner Koch  <wk@gnupg.org>

	Avoid pointer arithmetic on void pointer.
	+ commit dd9c8c56719db093b8daa23aa40b2be71bbd1526
	* src/gpgme.c (gpgme_io_writen): Use new var buffer.

	Change implementation return type to match the definition.
	+ commit 75a6255935f450d56f3637cbb2b6c8161ace57ab
	* src/gpgme.c (gpgme_get_sub_protocol): Change return type to
	gpgme_protocol_t.

2014-03-05  Daiki Ueno  <ueno@gnu.org>

	doc: Fix documentation of struct data types.
	+ commit 40938feb3f3393b0cdc6ec61ca2e77ff0b82c69a
	* gpgme.texi (Key Management): Document is_cardkey and card_number
	members of gpgme_subkey_t.
	(Decrypt): Remove description of the non-existent wrong_key_usage
	member of gpgme_recipient_t.
	(Verify): Document pka_address member of gpgme_signature_t.
	(Creating a Signature): Add missing member names in
	gpgme_new_signature_t.
	(Registering I/O Callbacks): Fix reference of gpgme_io_cbs struct.

2014-02-21  Werner Koch  <wk@gnupg.org>

	Always pass correct name to argv[0].  Ignore GPG_AGENT_INFO for gpg2.
	+ commit 651d9e1c6bc1cab248024c3850ef64698247588f
	* src/dirinfo.c (WANT_GPG_ONE_MODE): New.
	(struct dirinfo): Add field "gpg_one_mode".
	(get_gpgconf_item): Set that field and return it if requested.
	(_gpgme_in_gpg_one_mode): New.
	* src/engine-gpg.c (build_argv): Check GPG_AGENT_INFO only in gpg-1
	mode.

	* src/dirinfo.c (_gpgme_get_basename): New.
	* src/engine-g13.c (g13_new): Take argv[0] from the pgmname.
	* src/engine-gpgsm.c (gpgsm_new): Ditto.
	* src/engine-gpg.c (build_argv): Ditto. Add arg PGMNAME.
	(start): Pass PGMNAME to buildargv.

2014-02-12  Werner Koch  <wk@gnupg.org>

	Fix type inconsistency between gpgme.h and gpgme.c.
	+ commit f916ab753b7d17210cd455666870038949f72851
	* src/gpgme.c (gpgme_set_pinentry_mode): Fix type of MODE.

2014-01-10  Werner Koch  <wk@gnupg.org>

	Use the generic autogen.sh script.
	+ commit 1a504aab384947c1a6e949affd14bc696297fc8d
	* autogen.rc: New.
	* Makefile.am (EXTRA_DIST): Add it.
	* autogen.sh: Update from GnuPG.

	* configure.ac (AM_SILENT_RULES): New.

2014-01-07  Werner Koch  <wk@gnupg.org>

	Make gpgconf engine work again - fixes 02ba35c1.
	+ commit ab6e718327451e418782990c5a0a4e72588e3f0b
	* src/gpgconf.c: Remove ENABLE_GPGCONF and move prototypes to ...
	* src/engine-backend.h: ... here.

	Make gpgme_new return a proper error if no engines are installed.
	+ commit 121efcc5618374a1b4450b1d6a18bb3c35edb1fd
	* src/engine.c (gpgme_get_engine_info): Improve error handling.
	(_gpgme_engine_info_copy): Ditto.
	* src/gpgme.c (gpgme_new): Return error GPG_ERR_NO_ENGINE.

	Print the full PATH in the log if gpg was not found.
	+ commit d63058b852b83515e7715103c04a684ecf59838a
	* src/posix-util.c (walk_path): Keep a copy of PATH.

2014-01-06  Werner Koch  <wk@gnupg.org>

	Add global flags disable-gpgconf, gpgconf-name, and gpg-name.
	+ commit 6564e5e78e8c6e5a120675a5699b5b75248cfbc7
	* src/gpgme.c (gpgme_set_global_flag): Add names "disable-gpgconf",
	"gpgconf-name", and "gpg-name".
	* src/dirinfo.c (_gpgme_dirinfo_disable_gpgconf): New.
	(get_gpgconf_item): Minor debug info change.
	* src/posix-util.c (default_gpg_name, default_gpgconf_name): Add vars.
	(_gpgme_set_default_gpg_name): New.
	(_gpgme_set_default_gpgconf_name): New.
	(_gpgme_get_gpg_path, _gpgme_get_gpgconf_path): Use new vars.
	(walk_path): Add debug output on failure.
	* src/w32-util.c (default_gpg_name, default_gpgconf_name): Add vars.
	(replace_slashes): New.
	(get_basename): New.
	(_gpgme_set_default_gpg_name): New.
	(_gpgme_set_default_gpgconf_name): New.
	(_gpgme_get_gpg_path, _gpgme_get_gpgconf_path): Use new vars.

	* tests/t-engine-info.c (main): Add --verbose and --set-global-flag
	options.

2013-12-27  Werner Koch  <wk@gnupg.org>

	Locate engine names only at runtime and prefer GnuPG-2.
	+ commit 02ba35c1b6a2cbb3361b2f2ad507c53564b2be0b
	* configure.ac (NEED_GPG_VERSION, NEED_GPGSM_VERSION)
	(NEED_G13_VERSION, NEED_GPGCONF_VERSION): Remove vars and all related
	checks.  Do not check for any engine version.
	(HAVE_ASSUAN): Remove AM conditional.
	* src/Makefile.am: Remove separate component vars and always build all
	engines but uiserver.
	* src/dirinfo.c (WANT_GPGCONF_NAME): New.
	(struct dirinfo): Add field gpgconf_name.
	(_gpgme_get_default_gpgconf_name): Use WANT_GPGCONF_NAME.
	(get_gpgconf_item): Set gpgconf name and adjust for _gpgme_get_*_path
	now returning a malloced string.
	* src/engine.c (engine_ops): Always init all engines except for
	uiserver.
	* src/posix-util.c (_gpgme_get_gpgsm_path, _gpgme_get_g13_path):
	Remove unused functions.
	(walk_path): New.
	(_gpgme_get_gpg_path, _gpgme_get_gpgconf_path ): Re-implement using
	walk_path.
	* src/w32-util.c (_gpgme_get_gpgsm_path, _gpgme_get_g13_path): Remove
	unused functions.
	(_gpgme_get_gpg_path, _gpgme_get_gpgconf_path): Return a malloced
	string.
	* src/engine-g13.c (g13_get_req_version): Use a hardwired string with
	the required version.  This info belongs into this file.
	* src/engine-gpg.c (gpg_get_req_version): Ditto.
	* src/engine-gpgconf.c (gpgconf_get_req_version): Ditto.
	* src/engine-gpgsm.c (gpgsm_get_req_version): Ditto.
	* tests/t-engine-info.c: Replace now useless test by an info output.
	* tests/gpg/Makefile.am (GPG, GPG_AGENT): Hardwire gpg and gpg-agent.
	* tests/gpgsm/Makefile.am (GPGSM): Hardwire gpgsm.

2013-08-19  Werner Koch  <wk@gnupg.org>

	Document API change for GPGME_EVENT_DONE from 2009.
	+ commit b0aaa3f9aef36634b5c391812362f016114f02ba
	* doc/gpgme.texi (I/O Callback Interface): Fix description for the
	event arg.

	Fix possible segv in the gpgme_op_card_edit.
	+ commit 372bd439834c69d502668007c8c683233d676bd5
	* src/edit.c (gpgme_op_edit_start, gpgme_op_card_edit_start): Do not
	deref a NULL KEY in TRACE_BEG.

	tests: Fix NULL ptr deref in gpgsm/t-verify.
	+ commit eae9c32bd9c80ca4a4ecf794808211808f2ebbdd
	* tests/gpgsm/t-verify.c (check_result): Do not dereference a sig or
	sig->fpr if NULL.

2013-08-12  Werner Koch  <wk@gnupg.org>

	Release 1.4.3.
	+ commit d788c35e19df9eade8eb0b880ca1dc47ae7928ad
	* configure.ac: Change LT version to C22/A11/R0.

	Make test suite workable with GnuPG 2.1.
	+ commit 3ca7e96e384d5872c71ceb3b2e2a05b0c1b7e1a0
	* tests/gpg/start-stop-agent: New.
	* tests/gpg/initial.test: New.
	* tests/gpg/final.test: New.
	* tests/gpg/Makefile.am (c_tests): New.
	(TESTS): Move all to c_tests.  Add initial.test, final.test, and
	c_tests.
	(TESTS_ENVIRONMENT): Add C_ALL=C
	(private_keys): New.
	(EXTRA_DIST): Add new files.
	(./private-keys-v1.d/gpg-sample.stamp): Copy private keys.
	(all-local): Depend on gpg-sample.stamp.
	* tests/gpg/13CBE3758AFE42B5E5E2AE4CED27AFA455E3F87F: New.
	* tests/gpg/13CD0F3BDF24BE53FE192D62F18737256FF6E4FD: New.
	* tests/gpg/76F7E2B35832976B50A27A282D9B87E44577EB66: New.
	* tests/gpg/7A030357C0F253A5BBCD282FFC4E521B37558F5C: New.
	* tests/gpg/A0747D5F9425E6664F4FFBEED20FBCA79FDED2BD: New.

	Improve detection of default gpg by configure.
	+ commit 069ac580373923f5635b7172ecff79eb189f6944
	* configure.ac: Move test for gpgconf before test for gpg.
	(GPG, GPGSM, G13): Use gpgconf instead of AC_PATH_PROG if possible.

2013-08-09  Werner Koch  <wk@gnupg.org>

	Add function gpgme_data_identify.
	+ commit 8579091c4f6a36e6bb06fcfbd147a776166fd3ea
	* src/gpgme.h.in (gpgme_data_type_t): New.
	(gpgme_data_identify): New prototype.
	* src/data-identify.c: New.
	* src/parsetlv.c, src/parsetlv.h: New.  Take from gpa.
	* src/libgpgme.vers, src/gpgme.def: Add gpgme_data_identify.
	* src/gpgme-tool.c (status): Add STATUS_IDENTIFY_RESULT.
	(gt_identify): New.
	(cmd_identify): New.

	(hlp_passwd): Move close to cmd_passwd.

2013-08-02  Werner Koch  <wk@gnupg.org>

	Prefer GnuPG-2 engines over GnuPG-1.
	+ commit a4c80126ae4754c8478c69a8a24a6ffd975485fc
	* src/util.h: Move some prototypes to ...
	* src/sys-util.h: New.
	* src/Makefile.am (main_sources): Add sys-util.h.
	* configure.ac (AH_VERBATIM): Add DIRSEP_C and DIRSEP_S.
	* src/dirinfo.c: Include sys-util.h.
	(WANT_GPG_NAME, WANT_GPGSM_NAME, WANT_G13_NAME)
	(WANT_UISRV_SOCKET): New.
	(dirinfo): Add corresponding fields.
	(parse_output): Add arg COMPONENTS and set new fields.
	(read_gpgconf_dirs): Add arg components and act upon it.
	(get_gpgconf_item): Call read_gpgconf_dirs two times.  Add debug
	output.
	(_gpgme_get_default_gpg_name): New.
	(_gpgme_get_default_gpgsm_name): New.
	(_gpgme_get_default_g13_name): New.
	(_gpgme_get_default_gpgconf_name): New.
	(_gpgme_get_default_uisrv_socket): New.
	* src/engine-gpg.c, src/engine-g13.c, src/engine-gpgconf.c
	* src/engine-gpgsm.c, src/engine-uiserver.c: Change to use
	_gpgme_get_default_ instead of those from sys-util.h.
	* src/posix-util.c (_gpgme_get_gpg_path): Include sys-util.h.
	(_gpgme_get_uiserver_socket_path): Remove.
	* src/w32-util.c (_gpgme_get_gpg_path): Include sys-util.h.
	(_gpgme_get_uiserver_socket_path): Remove.

	w32: Try to locate gpg in the gpgme installation dir.
	+ commit 3881ea4e83d1533ef497b7332398fc1850e29205
	* src/w32-util.c (my_hmodule): New.
	(wchar_to_utf8): New.
	(DllMain): New.
	(_gpgme_get_inst_dir): New.
	(find_program_in_dir): New.
	(find_program_in_inst_dir): Add arg INST_DIR.
	(_gpgme_get_gpg_path): Get inst_dir before acquiring the lock.
	(_gpgme_get_gpgconf_path): Ditto.
	(_gpgme_get_g13_path): Ditto.
	(_gpgme_get_w32spawn_path): Ditto.

2013-07-31  Werner Koch  <wk@gnupg.org>

	doc: Add --binary option for the OUTPUT command of an uiserver.
	+ commit 393a9471f2f3ac0a5b14f3534a5bfc7ffe948567


2013-06-18  Werner Koch  <wk@gnupg.org>

	Add function gpgme_signers_count.
	+ commit f2eeccbdfaf855a81abb92abe5ab4c702712bac7
	* src/signers.c (gpgme_signers_count): New.
	* src/libgpgme.vers, src/gpgme.def: Add as external symbol.
	* src/gpgme.h.in: Add prototype.

2013-05-28  Werner Koch  <wk@gnupg.org>

	Release 1.4.2.
	+ commit 009e26a989f8a251563303f155c51fe012af52a4
	* configure.ac: Set LT version to C21/A10/R0.

	Add convenience macro GPGME_PROTOCOL_OPENPGP.
	+ commit 2e8feb6016dede400053f76fc3a418e1dd567bef
	* src/gpgme.h.in (GPGME_PROTOCOL_OPENPGP): New.

2013-05-23  Werner Koch  <wk@gnupg.org>

	w32: Fix installing of .def file.
	+ commit c29dad2315406bed75b9547103650bef642e6aa7
	* src/Makefile.am (install-def-file): Create libdir first.

	Fix libtool 2.4.2 to correctly detect .def files.
	+ commit d739d4d8cf9c873b0f3bb7836aaf3d0ba31a7b7f
	* build-aux/ltmain.sh (sed_uncomment_deffile): New.
	(orig_export_symbols): Uncomment def file before testing for EXPORTS.
	* m4/libtool.m4: Do the same for the generated code.

2013-05-22  Werner Koch  <wk@gnupg.org>

	Support --no-encrypt-to also with gpgme_op_encrypt_sign.
	+ commit d4371ed30da2e8b3d9f440613af299a952bde2b1
	* src/engine-gpg.c (gpg_encrypt_sign): Support the
	GPGME_ENCRYPT_NO_ENCRYPT_TO flag.

2013-05-22  Werner Koch  <wk@gnupg.org>
	    Kyle L. Huff  <g10bts@curetheitch.com>

	Allow symmetric encryption with gpgme_op_encrypt_sign.
	+ commit 567e6481d767af60390d649897b897a8b0e7e9a5
	* src/encrypt-sign.c (encrypt_sym_status_handler): New.
	(encrypt_sign_start): Handle recp == NULL case.
	* src/engine-gpg.c (gpg_encrypt_sign): Implement symmetric encryption.
	* tests/gpg/t-encrypt-sign.c (main): Add a test case for this.

2013-05-22  Werner Koch  <wk@gnupg.org>

	gpgme-tool: Allow for symmetric encryption.
	+ commit 0c1de7abd57b677998792e6cd5df5ddfb6e451b7
	* src/gpgme-tool.c (gt_sign_encrypt): Pass NULL for recp if no
	recipients are given.

	tests: Print auditlog in plain text format.
	+ commit 18254f88f82da7542a986dca60917fb48d5bccd3
	* tests/gpgsm/t-verify.c (show_auditlog): Use plain text format.

2013-05-18  Werner Koch  <wk@gnupg.org>

	Improve C++ compatibility of previous patch.
	+ commit e99356306d7bda61802530ebeb07d9ba73c4dec0
	* src/gpgme.h.in: Move gpgme_sssize_t and gpgme_off_t typedefs into
	the extern "C" scope.

2013-05-16  Werner Koch  <wk@gnupg.org>

	Make definition of off_t robust against misbehaving w32 toolchains.
	+ commit 6d0d8e7ba0bb989c251545fa8af35b97d1a703ba
	* configure.ac (NEED__FILE_OFFSET_BITS): Change to define gpgme_off_t
	and gpgme_ssize_t.
	(API__OFF_T, API__SSIZE_T): New ac_subst.
	* src/gpgme.h.in: Replace all ssize_t and off_t by ac_subst macros.
	* src/assuan-support.c, src/ath-pthread.c, src/ath.c, src/ath.h
	* src/data-compat.c, src/data-fd.c, src/data-mem.c, src/data-stream.c
	* src/data-user.c, src/data.c, src/data.h, src/engine-gpgsm.c
	* src/engine-uiserver.c, src/gpgme-tool.c, src/gpgme.c: Replace off_t
	by gpgme_off_t and sszie_t by gpgme_ssize_t.
	* src/ath-pthread.c, src/ath.h: Include gpgme.h.

2013-05-11  Werner Koch  <wk@gnupg.org>

	w32: Change the way the I/O threads are cleaned up.
	+ commit 9e7df9aa6d81f0abbabb03a2346d80eb5d375f81
	* src/w32-io.c (reader_context_s, create_reader)
	(writer_context_s, create_writer): Rename STOPPED to CLOSE_EV.
	(reader, writer): Remove setting of STOPPED.  Wait for CLOSE_EV and
	then release the context.
	(destroy_reader, destroy_writer): Do not wait but set the CLOSE_EV.
	(kill_reader, kill_writer): Remove.
	(_gpgme_io_close): Add code from kill_reader and kill_writer.

2013-05-08  Werner Koch  <wk@gnupg.org>

	Fix hang in socket closing.
	+ commit 9f330be8210d2498fe93d4166b6f6c02fca76475
	* src/w32-io.c (destroy_reader): Call shutdown.
	(reader): Do not print an error in the shutdown case.

	Improve debug output of the I/O reader and writer.
	+ commit 2118f497010a9a41c29d062a7605ff2e136f8f4e
	* src/w32-io.c (reader, writer): Also print file_sock.

2013-05-06  Werner Koch  <wk@gnupg.org>

	Simplify a debug code function.
	+ commit a7e5f1096f02af7bfb678b0bea8da6ccfc28cc79
	* src/debug.c (_gpgme_debug): Remove static space string.

2013-05-01  Werner Koch  <wk@gnupg.org>

	Release 1.4.1.
	+ commit 5075c0da7c464af2a45cd36db134ed7e88f155af
	* configure.ac: Bump LT version to C20/A9/R1.

	Disable fd-passing for Apple.
	+ commit ef5b4ae37d13142e89a051908dc080cda3d24baa
	* configure.ac: Disable fd-passing by default for Apple.

2013-04-30  Werner Koch  <wk@gnupg.org>

	Allow reading of long gpgconf output lines.
	+ commit f623a6b94c527795d0b6f7e66a3966e5d9e1c454
	* src/engine-gpgconf.c (gpgconf_read): Rewrite to allow for line
	lengths up to 64k.

2013-04-29  Werner Koch  <wk@gnupg.org>

	Fix for i686-w64-mingw32.
	+ commit 867b950b9306904a0ff522d0ef4a43789393cfc4
	* configure.ac (NEED__FILE_OFFSET_BITS): Do not define under Windows.

2013-02-26  Werner Koch  <wk@gnupg.org>

	Release 1.4.0.
	+ commit ef5cd38123dfbef7843f374ee697b0b5e8730c46
	* configure.ac: Bump LT version to C20/A9/R0.

	Enable FD passing and thus building of the UI-server.
	+ commit 5090f6f246bfad2eb80f3cc222963f73996d8028
	* configure.ac: Make --enable-fd-passing the default.
	* src/engine-uiserver.c (_gpgme_engine_ops_uiserver): Syntax fix.

	w32: Hacks for building with 32 bit mingw64.
	+ commit cdae524b282ef0ea67c3880b3e0f852c84c351ce
	* configure.ac (INSERT__TYPEDEFS_FOR_GPGME_H): Add hacks for 32 bit
	mingw64.
	* src/util.h [W32]: Include winsock2.h before windows to make mingw64
	happy.
	* src/w32-util.c (_WIN32_IE): Need to use 5.1 for mingw64.

	Improve missing libgpg-error reporting in configure.
	+ commit 787b5f14b933e5cee2624f79a23a60947f8134c8
	* configure.ac (NEED_GPG_ERROR_VERSION): New.  Improve reporting for
	missing libgpg-error.

	Change the various version numbers to the new scheme.
	+ commit d8b46c919f45666af0d541e00dcedf57e6c4b66f
	* configure.ac: Rename my_foo variables to mym4_foo variables to make
	clear that they are processed by m4.
	(VERSION_NUMBER): New ac_subst.
	(AH_BOTTOM): Add CRIGHTBLURB macro.
	(BUILD_REVISION, BUILD_FILEVERSION, BUILD_TIMESTAMP): Change them to
	work similar to libgpg-error et al.
	* src/versioninfo.rc.in: Remove use of BUILD_NUMBER and get it in line
	with gpg-error et al.
	* src/version.c (cright_blurb): New.
	(gpgme_check_version_internal): Add magic to display the above
	information.
	* tests/t-version.c (main): Add option --verbose.

	Update GnuPG related m4 files.
	+ commit 863c0f2a3eaf2a5d46c5518e5ac3486cc1a49bd3
	* m4/gpg-error.m4: Update from libgpg-error.
	* m4/libassuan.m4: Update from libassuan.

	Update helper scripts.
	+ commit fdcd5736e610cd64e47da73dcafe8bc4a6a67666
	* configure.ac: Use AC_CONFIG_AUX_DIR.  Remove args from
	AM_INIT_AUTOMAKE.  Replace AM_CONFIG_HEADER by AC_CONFIG_HEADER.
	* compile, config.guess, config.sub, depcomp, install-sh, ltmain.sh
	* mkinstalldirs, texinfo.texi: Move to build-aux/ and update from
	gnulib (c042abf).
	* build-aux/mdate-sh, build-aux/missing: Install via automake -a -c.
	Update autogen.sh for changed config dir.
	* autogen.sh: Adjust for scripts dir change.  Update W32 toolprefix
	list.

2013-02-25  Werner Koch  <wk@gnupg.org>

	Remove included gitlog-to-changelog.
	+ commit 967e043ac42330ee692f23d05ce3a0dd457f2119
	* build-aux/gitlog-to-changelog: Remove.
	* configure.ac (GITLOG_TO_CHANGELOG): Default to just
	gitlog-to-changelog.

2013-02-12  Werner Koch  <wk@gnupg.org>

	Add macro GPGME_VERSION_NUMBER.
	+ commit f48f75b1e812d33b76e439412efffa8277ab9abe
	* src/gpgme.h.in (GPGME_VERSION_NUMBER): New.
	* configure.ac (my_version_major, my_version_minor)
	(my_version_micro): New m4 macros.
	(my_version): Build from new m4 macros.
	(VERSION_NUMBER): New ac_subst.

	Add public function gpgme_get_pinentry_mode.
	+ commit 4f381554411ef019d79492f1751543f145604bcf
	* src/gpgme.c (gpgme_get_pinentry_mode): New.

2013-02-07  Werner Koch  <wk@gnupg.org>

	gpgme_tool: Support GPG's new pinentry-mode.
	+ commit 02a2cf0ccb4d01700adf6d18316d7705d519a048
	* src/gpgme-tool.c (log_error): Do not always print the error source.
	(gt_set_pinentry_mode): New.
	(server_passphrase_cb): New.
	(cmd_pinentry_mode): New.
	(register_commands): Add cmd_pinentry_mode.
	(options): Add option --gpg-binary.
	(struct args): Add field gpg-binary.
	(parse_options, main): Implement that option.

	Add public function gpgme_set_pinentry_mode.
	+ commit 61a0d92b679f248505f1bf16386bc41a5bf2ba1d
	* src/gpgme.c (gpgme_set_pinentry_mode): New.
	* src/gpgme.h.in (gpgme_pinentry_t): New.
	(gpgme_set_pinentry_mode): New.
	* src/context.h (struct gpgme_context): Add field pinentry_mode.
	* src/engine-backend.h (struct engine_ops): Add field
	set_pinentry_mode.
	* src/engine-gpg.c (struct engine_gpg): Add field pinentry_mode.
	(build_argv): Implement pinentry_mode.
	(gpg_set_pinentry_mode): New.
	(_gpgme_engine_ops_gpg): Register gpg_set_pinentry_mode.

	Add public function gpgme_io_writen.
	+ commit 29eced50687dd8a39dafe704102ae09ea8e8533a
	* src/gpgme.c (gpgme_io_read): New.

2012-11-16  Werner Koch  <wk@gnupg.org>

	Improve parsing of the GIT revision number.
	+ commit 322552a88db47896881e55c00ca301137cd160c6
	* configure.ac (git_revision): Use git rev-parse.

	Fix non-portable use of chmod in autogen.sh.
	+ commit cd6de92f42cb6e5b85bc376d5544496cb4d6a88a
	* autogen.sh: Remove option -c from chmod.

2012-11-15  Werner Koch  <wk@gnupg.org>

	Make _gpgme_encode_percent_string work for memory buffers.
	+ commit 1a17acd8e9b7c0ef924f98bfb1502fe12e83c363
	* src/conversion.c (D_gpgme_encode_percent_string): Remove stray
	semicolon.  Reported by Xi Wang.

2012-10-24  Werner Koch  <wk@gnupg.org>

	Make local variables configure hack more robust.
	+ commit c97d067f27899d890a99036fcbed9263f4f68875
	* configure.ac (emacs_local_vars_begin): Use extra m4 quoting so that
	newer Emscasen won't take it up as Local Variables for this file.

	Fix ttyname problem on Android.
	+ commit 12a0c93433a0b1d7e8019fc35a63476db39327fa
	* configure.ac: Define macro and conditional HAVE_ANDROID_SYSTEM.
	* m4/gnupg-ttyname.m4: Force use of replacement on Android.
	* src/ttyname_r.c: Ditto.

	tests: Adhere to the docs and call gpgme_check_version.
	+ commit cc59b75b21516198b39a56950afbcec140d8ba48
	* tests/t-engine-info.c: Call gpgme_check_version.

2012-10-19  Werner Koch  <wk@gnupg.org>

	Trace the use of GPG_ERR_INV_ENGINE.
	+ commit bd24feaa86f8154e550107990392ac9ac05e60d4
	* src/debug.h: Include "gpgme.h"
	(_gpgme_trace_gpgme_error): New.
	(trace_gpg_error): New macro.  Use it in all files where we return
	GPG_ERR_INV_ENGINE; also "include debug.h" as needed.

	Avoid warning about initialized but not used variable.
	+ commit 14a8fd4eec126cad282a85c5aa336a6b55229b52
	* src/engine-gpgsm.c (gpgsm_set_fd): Do not set DIR if not needed.

2012-10-11  Werner Koch  <wk@gnupg.org>

	gpgme-tool: Use membuf functions to build up strings.
	+ commit e11e7fc5586613525035c3358e15ae24accb96ea
	* src/gpgme-tool.c (clear_membuf, init_membuf, put_membuf)
	(put_membuf_str, get_membuf, peek_membuf): Add membuf functions.
	Take from GnuPG master's common/membuf.[ch] and patch for our use.
	(result_xml_escape): Rewrite using new functions.

	gpgme-tool: Change license from LPGLv2+ to GPLv3+
	+ commit aa30b47aa010bf46876f2335e288f8bd8718e396
	* src/gpgme-tool.c: Change license notice.

2012-10-11  W. Trevor King  <wking@tremily.us>

	gpgme-tool: escape special characters in output XML data (<, >, and &).
	+ commit 3f1329e1c9b99b1632cc4c4eec2e4399676fd93d

	src/gpgme-tool.c (result_xml_escape_replacement, result_xml_escape):
	New.
	(result_xml_tag_data): Use result_xml_escape() to escape data.
	(result_add_error): Use unescaped < and >.

	gpgme-tool: Fix chain_id -> chain-id in KEYLIST XML.
	+ commit c28ebca9f2e21344d68e9fdcec60553f225c2e54

	src/gpgme-tool.c (cmd_keylist): Use <chain-id> instead of <chain_id>.

2012-09-28  W. Trevor King  <wking@tremily.us>

	gpgme-tool: Return more detailed XML from KEYLIST.
	+ commit 3d69b51f7f083193db28f364da4590c33b5e44e6
	src/gpgme-tool.c (cmd_keylist): Convert output from a list of
	to more detailed XML.
	(xml_preamble1, xml_preamble2, xml_end): Make global.
	(result_add_protocol, result_add_validity): New functions for
	generating XML from GPGME types.
	(result_add_string): Treat NULL strings as "".
	(result_xml_tag_data): Make 'data' a 'const char' so we can use the
	value returned by gpgme_get_protocol_name directly.

	gpgme-tool: Initialize input_fd and output_fd.
	+ commit dda3702a9024a08da7bb949e15b63a47d23d59f5
	* src/gpgme-tool.c (gpgme_server): Initialize input_fd and output_fd.

2012-09-26  Werner Koch  <wk@gnupg.org>

	gpgme-tool: Fix handling of file descriptors.
	+ commit 193eb62538b9413e0dfbd04c075f871d5aa9130b
	* src/gpgme-tool.c (server_reset_fds): Use close/CloseHandle instead
	of the assuan close functions.
	(_cmd_decrypt_verify, _cmd_sign_encrypt, cmd_verify, cmd_import)
	(cmd_export, cmd_genkey, cmd_getauditlog): Use SERVER object instead
	of assuan_get_*_fd functions.

2012-09-25  Werner Koch  <wk@gnupg.org>

	Document contribution rules.
	+ commit db33945ab3b8c173a3fc2dd1a0d22d7fc15d8730
	* doc/HACKING (License policy): New.
	* doc/DCO: New.
	* AUTHORS: Change maintainer address.

	Add gpgme_set_global_flag to help debugging.
	+ commit c62b79a1d6e576d94e08cb81c2f5dbcb42ecf8cf
	* src/gpgme.c (gpgme_set_global_flag): New.
	* src/gpgme.h.in (gpgme_set_global_flag): New.
	* src/gpgme.def, src/libgpgme.vers: Add new public function.
	* src/debug.c (envvar_override): New.:
	(_gpgme_debug_set_debug_envvar): New.
	(debug_init): Take ENVVAR_OVERRIDE in account.

2012-07-28  Marcus Brinkmann  <marcus.brinkmann@ruhr-uni-bochum.de>

	Add two recent contributors.
	+ commit 83e74202cd7c4c975d149c49e2507fdb0e60ef32


	Fix sign error in position calculation for mem_seek.
	+ commit 8384ccbd1a51447dccbd608fc5df3c24cb8999b1
	* data-mem.c (mem_seek): Fix sign error in position calculation.

	Allow null context on gpgme_set_locale.
	+ commit 434735f71e6969248651ac01c6bd6f6789a6305d
	* gpgme.c (gpgme_set_locale): Allow CTX to be a null pointer.

2012-07-13  Werner Koch  <wk@gnupg.org>

	Do not include the removed file status-table.h.
	+ commit e7aeaebb01395b170c91f290bf3ff5021023420f
	* src/engine-uiserver.c: Remove status-table.h which is not anymore
	built.  Fixes bug#1412.

	Make handling of new conf values more robust (bug#1413).
	+ commit 9f081da7356288a96e8ea4d81a74ff706c00b0cd
	* src/engine-gpgconf.c (arg_to_data): Allow for NULL as value.string.

2012-05-02  Werner Koch  <wk@gnupg.org>

	Release 1.3.2.
	+ commit 9c8608f702ec0f44ae55cd7f33bd8df0a2d48508
	* configure.ac: Bump LT version to C19/A8/R1.

	* configure.ac (GITLOG_TO_CHANGELOG): Define.
	* Makefile.am (gen-ChangeLog): Use it.

	Remove unused pth stuff from gpgme-config.
	+ commit 295dd3f238fa656493d34e8a718958d62226b56c
	* src/gpgme-config.in: Remove unused pth stuff.

	Update signature summary for the case of missing X.509 keys.
	+ commit d6402b888fd00b883bbfc00c91a2aa9706e4377e
	* src/verify.c (gpgme_op_verify_result): Update summary field.

2012-04-30  Werner Koch  <wk@gnupg.org>

	Fix timestamp parsing for y2038 hack.
	+ commit 1a21574b48ee91eedbf95251ee600648b377d1e7
	* src/conversion.c (_gpgme_parse_timestamp): Set ENDP before year 2038
	check.

2012-04-20  W. Trevor King  <wking@drexel.edu>

	.gitignore: flesh out rules and add subdirectory-.gitignores.
	+ commit 4cb408d33efe80e7d102049dea244d22907d8395


2012-04-13  W. Trevor King  <wking@drexel.edu>

	status-table.c: include string.h for strcmp.
	+ commit 62bbe58280737d73badbe518f140e40480205176
	* status-table.c: include string.h to avoid `warning: implicit
	declaration of function 'strcmp'`.

2012-04-03  W. Trevor King  <wking@drexel.edu>

	gpgme-tool: add help messages for a number of commands.
	+ commit c318e69d8fa5f9e92d4aac3dd44fae5adcaade72
	* src/gpgme-tool.c (hlp_engine, hlp_sub_protocol, hlp_armor, hlp_textmode,
	hlp_include_certs, hlp_keylist_mode, hlp_input, hlp_output, hlp_message,
	hlp_recipient, hlp_signer, hlp_signers_clear, hlp_decrypt, hlp_decrypt_verify,
	hlp_encrypt, hlp_sign_encrypt, hlp_sign, hlp_verify, hlp_import): New strings.
	(hlp_protocol): Fix typo.
	(register_commands): Add documentation strings.
	(doc): Mention Assuan.

	uiserver.texi: fix decryption -> encryption typo in PREP_ENCRYPT discussion.
	+ commit bb62104adf78e8416b3c56b8b2621edd723b56cd
	* doc/uiserver.texi (PREP_ENCRYPT): Fix documentation.

	Update Werner Koch's distribution signing key in the README.
	+ commit 6ec9e21dd1ea2f8509700bce018aef6ad7e9a927
	* README: Update signing key.

2012-03-12  Marcus Brinkmann  <marcus.brinkmann@ruhr-uni-bochum.de>

	Do not rely on glibc name of syscall.
	+ commit ff0a640a18e7b7457e6c2edfdc8307bf44628b60
	* src/ath.c (ath_self): Use __NR_gettid, not SYS_gettid.

	Update config.guess and config.sub to latest version.
	+ commit ced1ad01aed32d1e4c5000f3b901db018ef7bf1e
	* config.guess, config.sub: Update to latest version.

2012-02-14  Marcus Brinkmann  <marcus.brinkmann@ruhr-uni-bochum.de>

	Rework status table to be less dynamically generated.
	+ commit 885243e05467e79e2375b3febe7904053ab45dfc
	* src/Makefile.am (EXTRA_DIST): Remove mkstatus.
	(BUILT_SOURCE, MOSTLYCLEANFILES): Remove.
	(main_sources): Remove status-table.h, extra-stati.h.
	Add status-table.c.
	(status-table.h): Remove rules for built source.
	* src/decrypt.c: Don't include extra-stati.h.
	* src/engine-gpg.c: Don't include status-table.h.
	(status_cmp): Remove function.
	(read_status): Use _gpgme_parse_status.
	* src/engine-gpgsm.c: Don't include status-table.h.
	(status_cmp, parse_status): Remove function.
	(gpgsm_assuan_simple_command, status_handler): Use _gpgme_parse_status.
	* src/engine-uiserver.c: Don't include status-table.h.
	(status_cmp, parse_status): Remove function.
	(uiserver_assuan_simple_command, status_handler): Use
	_gpgme_parse_status.
	* src/gpgme.h.in (gpgme_status_code_t): Add
	GPGME_STATUS_DECRYPTION_INFO.
	* src/util.h (_gpgme_status_init,_gpgme_parse_status): New declaration.
	* src/status-table.c: New file.
	* src/extra-stati.h, src/mkstatus: Files removed.
	* version.c (do_subsystem_inits): Call _gpgme_status_init.

2012-02-08  Marcus Brinkmann  <mb@g10code.com>

	Use gpgme interface for error handling to avoid linking with gpg-error.
	+ commit dae3073aaa8b7feb1c844fdaf711f79141b9cc65
	* tests/t-data.c, tests/run-export.c, tests/run-keylist.c,
	tests/run-support.h, tests/run-verify.c, tests/gpg/t-decrypt-verify.c,
	tests/gpg/t-edit.c, tests/gpg/t-eventloop.c, tests/gpg/t-keylist-sig.c,
	tests/gpg/t-keylist.c, tests/gpg/t-support.h, tests/gpg/t-trustlist.c,
	tests/gpg/t-verify.c, tests/gpg/t-wait.c, tests/gpgsm/cms-decrypt.c,
	tests/gpgsm/cms-keylist.c, tests/gpgsm/t-keylist.c,
	tests/gpgsm/t-support.h, tests/gpgsm/t-verify.c,
	tests/opassuan/t-command.c: Use gpgme interface for gpg-error functions.

	Link the thread test to pthread.
	+ commit 0052a72f89c6830818e354358fdd84702d3494c8
	* tests/gpg/Makefile.am (t_thread1_LDADD): Add -lpthread.

	Link gpgme-tool directly to libassuan, as it uses its interface.
	+ commit 3f03897cbd223d4a75eb62c3b7bdfeb800661641
	* src/Makefile.am (gpgme_tool_LDADD): Add @LIBASSUAN_LIBS@.

2012-01-19  Werner Koch  <wk@gnupg.org>

	Support the mingw-w64 toolchain.
	+ commit 24a10a4af948ebb1c767b69a92fa5bbe933a417c
	* autogen.sh (build-w32): Add i686-w64-mingw32 to the toolprefix.

	Fix Solaris problems with ttyname_r.
	+ commit 2f304957f5122a5d9da643dc9951ee67ece06eaf
	* m4/gnupg-ttyname.m4: New.  Based on ttyname_r from gnulib.
	* src/ttyname_r.c (_gpgme_ttyname_r): Rename from ttyname_r.
	Implement hacks required for Solaris and possible other non-fully
	Posix systems.
	* src/util.h: Include unistd.h.  Redefine ttyname_r depending on
	REPLACE_TTYNAME_R and put it into the gpgme name space.

	Try to make configure.ac a bit smaller.
	+ commit c96778297f5477448a676fcf0c61044bdbccc86d
	* configure.ac: Move header checks.

	For W32 use a build number instead of abbreviated commit id.
	+ commit 574b087e84f5652cf9d8eba8aa16b8d6bb988035
	We would need to use a shortened commit id so that it fits into an 16
	bit Windows variable.  Further it is a random number and not something
	increasing.  Thus a build number made up from the day of the year and
	the hour is much more useful to describe a build number for a specific
	revision.
	* configure.ac [W32]: Replace BUILD_REVISION by BUILD_NUMBER.
	* src/versioninfo.rc.in: Ditto.

	Adjust configure.ac for modern autoconf.
	+ commit a0149630ce6d3e17a7475e20e8b2e31ed5ba57fd
	* configure.ac: Minor cleanups.

	Update to libtool 2.4.2.
	+ commit 4cfddadcd0a569f0b204dccea3c975ce0bdfb232
	* ltmain.sh, m4/libtool.m4, m4/ltoptions.m4, m4/ltversion.m4,
	* m4/lt~obsolete.m4: Update.

	Add ttyname_r check macro from gnulib.
	+ commit 3ef528b63679df912551d5d21fc36e465cf50c40
	* m4/gnupg-ttyname.m4: New. Taken from current gnulib.

2011-12-02  Werner Koch  <wk@gnupg.org>

	Generate the ChangeLog from commit logs.
	+ commit a4c4ee1aaea4359432bdf60dd572f549ef8dee83
	* build-aux/gitlog-to-changelog: New script.  Taken from gnulib.
	* build-aux/git-log-fix: New file.
	* build-aux/git-log-footer: New file.
	* build-aux/git-hook/commit-msg: New script.
	* doc/HACKING: New file.
	* ChangeLog: New file.
	* Makefile.am (EXTRA_DIST): Add new files.
	(gen-ChangeLog): New.
	(dist-hook): Run gen-ChangeLog.
	* autogen.sh: Install commit-msg hook for git.

	Rename all ChangeLog files to ChangeLog-2011.

2011-12-02  Werner Koch  <wk@gnupg.org>

	NB: Changes done before December 1st, 2011 are described in
	per directory files named ChangeLog-2011.  See doc/HACKING for
	details.

        -----
        Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
                      2010, 2011, 2012, 2013 g10 Code GmbH

	Copying and distribution of this file and/or the original GIT
	commit log messages, with or without modification, are
	permitted provided the copyright notice and this notice are
	preserved.