Compare commits
2391 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8f6dd13b0a | ||
|
|
809fb0d457 | ||
|
|
3ab7166e63 | ||
|
|
ee08ef421d | ||
|
|
48bf993ac5 | ||
|
|
b7e6679a58 | ||
|
|
071145dd19 | ||
|
|
22811471ac | ||
|
|
ed3f7f5a16 | ||
|
|
f83cd81ad7 | ||
|
|
c3259b2610 | ||
|
|
54afbe6a2f | ||
|
|
0aba77ee55 | ||
|
|
cf023253a0 | ||
|
|
c464f2bfe9 | ||
|
|
f19d254a0c | ||
|
|
e7f9d58541 | ||
|
|
8cbbe7cdfc | ||
|
|
8bdc7c4702 | ||
|
|
018686afeb | ||
|
|
abcff25e57 | ||
|
|
64eb3d0c82 | ||
|
|
e26dbc5608 | ||
|
|
42a2443d62 | ||
|
|
6fbab25478 | ||
|
|
2f43ca42be | ||
|
|
95b91a0890 | ||
|
|
6f77d98642 | ||
|
|
1b3abf8ab0 | ||
|
|
1bdf1bbbed | ||
|
|
1125a02d1e | ||
|
|
6e362ee637 | ||
|
|
388b4a736a | ||
|
|
87bf232e97 | ||
|
|
f6757d35ad | ||
|
|
235015cb56 | ||
|
|
75de62327d | ||
|
|
8f98d390e3 | ||
|
|
c9d71e7781 | ||
|
|
505f338d28 | ||
|
|
ffc72c896c | ||
|
|
8c91836038 | ||
|
|
d14821fb16 | ||
|
|
2dfc0e540c | ||
|
|
30d4e36a8b | ||
|
|
43ca4e7dfe | ||
|
|
49fd85c975 | ||
|
|
94df540ffe | ||
|
|
96fcc2ce89 | ||
|
|
c4e27d431a | ||
|
|
3e9fba7283 | ||
|
|
d7c054e9b2 | ||
|
|
485c446013 | ||
|
|
9dd90c95a7 | ||
|
|
a8b60b7b02 | ||
|
|
3b8dc028c1 | ||
|
|
bab48b42f7 | ||
|
|
775efc65ed | ||
|
|
d8006e0b76 | ||
|
|
651bcfc904 | ||
|
|
029ccefe22 | ||
|
|
9d714d5b4d | ||
|
|
b5827aa25f | ||
|
|
8f03f2f59e | ||
|
|
417bc29bc8 | ||
|
|
381eb76f7b | ||
|
|
dbc7f020fd | ||
|
|
50eec240b4 | ||
|
|
d87f0030a3 | ||
|
|
8723b7f6a4 | ||
|
|
4b87a3e58e | ||
|
|
bd5984ca82 | ||
|
|
969d3f9b23 | ||
|
|
f61f55fff7 | ||
|
|
305fd24a8e | ||
|
|
a5c3bf6d9d | ||
|
|
97cf35c993 | ||
|
|
eeea299187 | ||
|
|
6875851892 | ||
|
|
ff6c3d7d9a | ||
|
|
deb0926497 | ||
|
|
0b71cb1dad | ||
|
|
caece405fb | ||
|
|
3a86381df8 | ||
|
|
68e2dd8d22 | ||
|
|
bbd1604894 | ||
|
|
976c6914a6 | ||
|
|
cde88546f3 | ||
|
|
fff1b49f73 | ||
|
|
18cfbf729c | ||
|
|
6f112b11e4 | ||
|
|
ee1268c518 | ||
|
|
d78a6b6095 | ||
|
|
63b18084ac | ||
|
|
7d0dc67180 | ||
|
|
f20b531430 | ||
|
|
28d096a89a | ||
|
|
350931b707 | ||
|
|
b7a1c620e4 | ||
|
|
067deb9bd7 | ||
|
|
99e42b1fce | ||
|
|
53d06f127d | ||
|
|
3094302bcc | ||
|
|
b504c72563 | ||
|
|
b1168d0233 | ||
|
|
3ca757883f | ||
|
|
c76d9e45e7 | ||
|
|
a23b4f4dc0 | ||
|
|
e6d2e5fe6e | ||
|
|
c9b0cbaa4e | ||
|
|
762fd9462f | ||
|
|
394c0375b7 | ||
|
|
4cf5e83c38 | ||
|
|
cb5d3ed21d | ||
|
|
4bd9fdd7a4 | ||
|
|
fe739578ab | ||
|
|
3f77678b5c | ||
|
|
c477f43c40 | ||
|
|
7371589955 | ||
|
|
1cbbcff259 | ||
|
|
416581b179 | ||
|
|
82c1bf4ddb | ||
|
|
7f33868d14 | ||
|
|
c5312d63f2 | ||
|
|
e401e8f4bc | ||
|
|
159c7cf153 | ||
|
|
5686776e53 | ||
|
|
05ab5b1700 | ||
|
|
be873c83d6 | ||
|
|
87c24222b8 | ||
|
|
dd21defcf3 | ||
|
|
25d46fbc03 | ||
|
|
742a4f8980 | ||
|
|
e84d6c0b06 | ||
|
|
636d013557 | ||
|
|
3e6b118267 | ||
|
|
eee4ca9a26 | ||
|
|
aecd154399 | ||
|
|
f293aad74f | ||
|
|
5804e63559 | ||
|
|
fb2664b54a | ||
|
|
10f4704724 | ||
|
|
ea77ee686d | ||
|
|
09bda6a882 | ||
|
|
6fb498648d | ||
|
|
5b47190fcc | ||
|
|
663d4d99ae | ||
|
|
4ea0a1058c | ||
|
|
55ca5ca34c | ||
|
|
cdf6cd7cd2 | ||
|
|
4c1105f968 | ||
|
|
a81771207f | ||
|
|
2fe647fd7a | ||
|
|
33b740ddd0 | ||
|
|
f30604c6f6 | ||
|
|
e9ea5b43ec | ||
|
|
76a7dc79f4 | ||
|
|
1594e5f4e3 | ||
|
|
13a71ff1c8 | ||
|
|
fa73f100f7 | ||
|
|
b8da5e0577 | ||
|
|
6165975bdc | ||
|
|
10891a403d | ||
|
|
37dabd2561 | ||
|
|
9d0537bdab | ||
|
|
063bf4a58d | ||
|
|
d5d9a4c08c | ||
|
|
eddd97fbab | ||
|
|
53f88b93fb | ||
|
|
59042563b3 | ||
|
|
74d96fc06f | ||
|
|
9c1a01ffe8 | ||
|
|
4b92838b4f | ||
|
|
b225b85644 | ||
|
|
ebc0b3ff5f | ||
|
|
64281b508b | ||
|
|
6c9078c870 | ||
|
|
6b51c66c68 | ||
|
|
d04a6c4eb7 | ||
|
|
28e2806e07 | ||
|
|
6182b605c0 | ||
|
|
8077cd028d | ||
|
|
761e1aed58 | ||
|
|
ee44a7fd70 | ||
|
|
058e6d15c1 | ||
|
|
83720e6960 | ||
|
|
86550f2253 | ||
|
|
881e6b5a8b | ||
|
|
102ce04b2d | ||
|
|
90bbb66409 | ||
|
|
df40742223 | ||
|
|
f7920c12d5 | ||
|
|
51a08fc85e | ||
|
|
655202a35a | ||
|
|
cbbabf477a | ||
|
|
0167ce60bd | ||
|
|
d362b51450 | ||
|
|
95aaa96fb8 | ||
|
|
fa53c79ecf | ||
|
|
27668b81a5 | ||
|
|
f1a5e1c899 | ||
|
|
ae55d88544 | ||
|
|
25fc69dcd4 | ||
|
|
1bb215156e | ||
|
|
758d6f0c8d | ||
|
|
798fee338b | ||
|
|
9253a59f05 | ||
|
|
18857cb60b | ||
|
|
7bdcf05fc3 | ||
|
|
32d115d22e | ||
|
|
2e0d66039d | ||
|
|
acb37db6f1 | ||
|
|
0e1b32adcd | ||
|
|
c20104e67c | ||
|
|
32f2710430 | ||
|
|
605f13ed4a | ||
|
|
a6a4ed6ed4 | ||
|
|
c3bd31c51b | ||
|
|
90c63483c1 | ||
|
|
3383882b95 | ||
|
|
d5adf7592c | ||
|
|
9ba88e2f13 | ||
|
|
772964886e | ||
|
|
70b73524c6 | ||
|
|
a459344078 | ||
|
|
63b2394ed0 | ||
|
|
cdb10dce0c | ||
|
|
9b5b1d6dce | ||
|
|
c231abe13d | ||
|
|
d81f6ea1c0 | ||
|
|
1012d715b2 | ||
|
|
a1a5e21834 | ||
|
|
bc147070b6 | ||
|
|
9176ddc3e1 | ||
|
|
4f07a6592c | ||
|
|
3ad205f733 | ||
|
|
f01608f2bb | ||
|
|
fa4837c67b | ||
|
|
af466b120e | ||
|
|
ce790dcd3a | ||
|
|
e1d9a4fb53 | ||
|
|
d8483d3350 | ||
|
|
2d13588c95 | ||
|
|
acf1d6b1ac | ||
|
|
2ac1e0ed49 | ||
|
|
0a0389ad56 | ||
|
|
9d2f3d53d6 | ||
|
|
9bd4c785e6 | ||
|
|
c203ee7f09 | ||
|
|
047251a07f | ||
|
|
a6db8ba2db | ||
|
|
71b1df39eb | ||
|
|
82f056e5d0 | ||
|
|
edae652d6f | ||
|
|
b1f868cd6c | ||
|
|
08f7c6f863 | ||
|
|
7fa3e6ef90 | ||
|
|
035c99896b | ||
|
|
b56cc62942 | ||
|
|
3e3990934a | ||
|
|
faa4c07095 | ||
|
|
245dccf91c | ||
|
|
c6d4fd6d31 | ||
|
|
14d0732e1d | ||
|
|
dc07f01418 | ||
|
|
3fa513a78d | ||
|
|
0480c45d5c | ||
|
|
44fa40ca72 | ||
|
|
285f8981f8 | ||
|
|
00c019c8c2 | ||
|
|
3746452b88 | ||
|
|
643ab4e95d | ||
|
|
4978184480 | ||
|
|
d80be4c459 | ||
|
|
31924fcd89 | ||
|
|
87cd9c6fb9 | ||
|
|
8654b25e80 | ||
|
|
f95019964e | ||
|
|
59d20cb7ae | ||
|
|
e83c9734e0 | ||
|
|
f4510c64ec | ||
|
|
64dda09565 | ||
|
|
de168959a5 | ||
|
|
ee55143c4a | ||
|
|
5b923aee1a | ||
|
|
f3d448485a | ||
|
|
28328a7080 | ||
|
|
fab76c04cc | ||
|
|
74e1e7c9d1 | ||
|
|
7de9ab25ab | ||
|
|
233be1fc10 | ||
|
|
bad015115d | ||
|
|
e7e75c1277 | ||
|
|
e245701533 | ||
|
|
0cbfbc08f3 | ||
|
|
731c89cc1c | ||
|
|
b75abaad08 | ||
|
|
40316ac7b9 | ||
|
|
c4f625a3d1 | ||
|
|
d954519e10 | ||
|
|
f0a7c636a4 | ||
|
|
bfeb75c900 | ||
|
|
19bd6069d7 | ||
|
|
60d4e06531 | ||
|
|
9150febd02 | ||
|
|
d8d5ddcab6 | ||
|
|
8190b20efe | ||
|
|
989348bbfb | ||
|
|
679b93b601 | ||
|
|
d1d191e2b0 | ||
|
|
6f619271c4 | ||
|
|
3163547096 | ||
|
|
6da7188ecf | ||
|
|
35285d72bb | ||
|
|
07755c324a | ||
|
|
8711d31f24 | ||
|
|
a3c24b4bbc | ||
|
|
4d20cb1654 | ||
|
|
7e8a672de4 | ||
|
|
107dcae26c | ||
|
|
121d54c96a | ||
|
|
6f28b5e2ba | ||
|
|
dca70f809d | ||
|
|
750a3383ca | ||
|
|
dda70e1453 | ||
|
|
5916a8f8dd | ||
|
|
4ffdc98512 | ||
|
|
9f402885d8 | ||
|
|
6b0eeb9722 | ||
|
|
a98bf1eac3 | ||
|
|
7cd824ae1c | ||
|
|
31db3c325d | ||
|
|
656e6161a0 | ||
|
|
44be95cc1b | ||
|
|
48a3fd8e3c | ||
|
|
7d7c635423 | ||
|
|
097be1a5cd | ||
|
|
c5d25ac371 | ||
|
|
dd5217734c | ||
|
|
41061cfde8 | ||
|
|
d8da81d87c | ||
|
|
2b8d670f17 | ||
|
|
aca197a96f | ||
|
|
044fc8d50c | ||
|
|
5c45cf2d76 | ||
|
|
7eb7172635 | ||
|
|
02602da257 | ||
|
|
ad61d71c6e | ||
|
|
fc5a07b46d | ||
|
|
01b15fbeba | ||
|
|
c33995e075 | ||
|
|
4178e72fe0 | ||
|
|
7dc2d236df | ||
|
|
eac60b3228 | ||
|
|
75e857bbfc | ||
|
|
11351613ed | ||
|
|
3d04e2b86e | ||
|
|
7d3c3b09fb | ||
|
|
1e73d549ed | ||
|
|
9e21df2515 | ||
|
|
c5f40a55e7 | ||
|
|
5239ecc780 | ||
|
|
acfad54ae3 | ||
|
|
ab153a24ec | ||
|
|
60f7744ec6 | ||
|
|
1ca358f3fd | ||
|
|
17aefc3cf7 | ||
|
|
cf5429a39b | ||
|
|
4cc5850c86 | ||
|
|
7da9899c48 | ||
|
|
5c772cea1a | ||
|
|
9569438295 | ||
|
|
68113f8f3f | ||
|
|
e488452ef3 | ||
|
|
8a7eb36950 | ||
|
|
392cab2e36 | ||
|
|
747c2ef28f | ||
|
|
c363e4a969 | ||
|
|
ed7acf358a | ||
|
|
e07d143c9b | ||
|
|
e6a6ba7d63 | ||
|
|
4bc32d37ac | ||
|
|
1ae0d772c4 | ||
|
|
8f76ea3106 | ||
|
|
0ad75ccb8f | ||
|
|
a2140d7081 | ||
|
|
e5a2958458 | ||
|
|
93624c3700 | ||
|
|
abfebea4f2 | ||
|
|
046e50882b | ||
|
|
ab007c4815 | ||
|
|
18704f5a19 | ||
|
|
e85425050b | ||
|
|
f3b0fe46b4 | ||
|
|
7284a8062a | ||
|
|
6791024995 | ||
|
|
4f0710350f | ||
|
|
a76daeb4c5 | ||
|
|
acce1bc5ce | ||
|
|
bfbc0e5ec6 | ||
|
|
0701d1d6cd | ||
|
|
d10c5a4e2a | ||
|
|
58615d78bd | ||
|
|
1150b69836 | ||
|
|
5927821896 | ||
|
|
86ba58da06 | ||
|
|
bc55974ff3 | ||
|
|
84f245badb | ||
|
|
07564d533a | ||
|
|
6897787d8f | ||
|
|
3c824cb500 | ||
|
|
064d621846 | ||
|
|
9b7e54947b | ||
|
|
b29e8fb0b5 | ||
|
|
6a12f450e6 | ||
|
|
bce8c84c26 | ||
|
|
c914c116e4 | ||
|
|
98beb0e5a1 | ||
|
|
7f92504a2d | ||
|
|
4a21cee98c | ||
|
|
56a1b465a1 | ||
|
|
7efaca6fbe | ||
|
|
cd642e7fee | ||
|
|
15d1b2f0ab | ||
|
|
12990e59ad | ||
|
|
c88d8c870f | ||
|
|
456726556d | ||
|
|
12d16f67ae | ||
|
|
d16fc2d62a | ||
|
|
6c4a82bd51 | ||
|
|
a0a063b57f | ||
|
|
b3896f2600 | ||
|
|
d8c62f8eba | ||
|
|
606096278b | ||
|
|
d3d7bd7b81 | ||
|
|
2fb1c076d4 | ||
|
|
dc7ad6c1b7 | ||
|
|
61e378077e | ||
|
|
296cbf0df7 | ||
|
|
d3b28f8651 | ||
|
|
a3dc977e58 | ||
|
|
67603ab42e | ||
|
|
c94efe6b5c | ||
|
|
c872e406ed | ||
|
|
835e31ac3c | ||
|
|
390e14b2c6 | ||
|
|
70e62d90db | ||
|
|
e5822974ac | ||
|
|
cd9ef58e98 | ||
|
|
ffaeac130f | ||
|
|
035757e228 | ||
|
|
e5065a01c8 | ||
|
|
c37e2d3d69 | ||
|
|
004f2b6801 | ||
|
|
6f5bbf7ad1 | ||
|
|
84ff6a13f9 | ||
|
|
8d7e491810 | ||
|
|
7d37f65ad0 | ||
|
|
7811f10dba | ||
|
|
bb88ad6e8c | ||
|
|
3b1acd0831 | ||
|
|
20db504c3a | ||
|
|
55f2bd41aa | ||
|
|
dd41f093e6 | ||
|
|
2a9d92faeb | ||
|
|
c8f135aaed | ||
|
|
9fc30265c8 | ||
|
|
9aa30c4e72 | ||
|
|
3ecc0c70e2 | ||
|
|
8b6d0e4b12 | ||
|
|
a31c5ba006 | ||
|
|
b6716bdfe5 | ||
|
|
c7cdce6e33 | ||
|
|
be6835e42f | ||
|
|
3b3bc42e10 | ||
|
|
f2aa32c7b0 | ||
|
|
484bc5dd01 | ||
|
|
bd744d1e32 | ||
|
|
d82abf0be5 | ||
|
|
6c18b10979 | ||
|
|
2514c1d5c5 | ||
|
|
e660802fac | ||
|
|
5ec2686024 | ||
|
|
60cfba8e46 | ||
|
|
860fcfd78d | ||
|
|
c07a57d141 | ||
|
|
6ded326de7 | ||
|
|
17d51b558e | ||
|
|
1dbec40be9 | ||
|
|
405d3ee1ca | ||
|
|
6d1fc31e96 | ||
|
|
cc39f9ec23 | ||
|
|
c90ab2b9cb | ||
|
|
e8a32cc6a8 | ||
|
|
9c2ae81f19 | ||
|
|
10b4854915 | ||
|
|
626a4910ca | ||
|
|
8cbc327f90 | ||
|
|
fd2992913e | ||
|
|
1c529cbd20 | ||
|
|
c766f9c77d | ||
|
|
62ec2e8331 | ||
|
|
9735e43ecb | ||
|
|
3a0ec33c56 | ||
|
|
d375ad14d7 | ||
|
|
c198541b6f | ||
|
|
7ff8720a39 | ||
|
|
e6bf8463d9 | ||
|
|
486779cce7 | ||
|
|
973557a9f9 | ||
|
|
3cb4ac37ba | ||
|
|
6d79d2ffc4 | ||
|
|
2ed2b7118f | ||
|
|
59ebb360e2 | ||
|
|
18183ebac0 | ||
|
|
fac4d4c85c | ||
|
|
b0821c0435 | ||
|
|
2776758f14 | ||
|
|
163fffe8f4 | ||
|
|
8bf0c8f800 | ||
|
|
3fe4ff93e1 | ||
|
|
16bf725dc4 | ||
|
|
afa58b79a9 | ||
|
|
5ba0639f47 | ||
|
|
a8b65741ea | ||
|
|
7c9109d973 | ||
|
|
064893830d | ||
|
|
6760a7f5ca | ||
|
|
da2d86789e | ||
|
|
e2b4900541 | ||
|
|
8bc75c1840 | ||
|
|
2c63f2f8c5 | ||
|
|
9a669cc17f | ||
|
|
2d64592d85 | ||
|
|
a03fa1c9bc | ||
|
|
a59fd43cc0 | ||
|
|
635abaee51 | ||
|
|
c331cbc8ab | ||
|
|
85f70c29bd | ||
|
|
a8da1587b6 | ||
|
|
2b0a1fc63f | ||
|
|
a46231a39a | ||
|
|
eeba485f95 | ||
|
|
4c10e516c3 | ||
|
|
e3c7b570ae | ||
|
|
9aec84dee7 | ||
|
|
34ed63f495 | ||
|
|
0c6587b5b7 | ||
|
|
24a23ce66e | ||
|
|
e6798112be | ||
|
|
470129091a | ||
|
|
b37dbe7dd5 | ||
|
|
6e27dd8db5 | ||
|
|
0450bf3487 | ||
|
|
53dcafaa58 | ||
|
|
37d29b5e8c | ||
|
|
e8f2c9d126 | ||
|
|
ec81d2bc3f | ||
|
|
d2c74340a3 | ||
|
|
250cd1933c | ||
|
|
986fa42ca8 | ||
|
|
3a1560d2f6 | ||
|
|
93f0fef1e1 | ||
|
|
af9eb6d6b1 | ||
|
|
746276edea | ||
|
|
5e68cd2fa2 | ||
|
|
0413662136 | ||
|
|
38a60df40b | ||
|
|
304cb44d0d | ||
|
|
bc5d0df19e | ||
|
|
0921bf2d61 | ||
|
|
4af0c18f33 | ||
|
|
8753347f69 | ||
|
|
089c8df01d | ||
|
|
9b2b861a2a | ||
|
|
6b14b5dc27 | ||
|
|
f770edb6d3 | ||
|
|
724f691e15 | ||
|
|
7cb2991a13 | ||
|
|
6a8b070b0a | ||
|
|
a0912b057e | ||
|
|
25a34a66e1 | ||
|
|
11afd73117 | ||
|
|
33bf6eb892 | ||
|
|
6acd0b25ae | ||
|
|
1f50ac6045 | ||
|
|
44954fc0ac | ||
|
|
3d9877a7c7 | ||
|
|
64cb1553d0 | ||
|
|
81a66c439c | ||
|
|
66c3026cf5 | ||
|
|
fd0bdaae80 | ||
|
|
60adcacaaa | ||
|
|
cc6f5c3226 | ||
|
|
8c61a73bb0 | ||
|
|
e1c8304c4b | ||
|
|
ee92b980bb | ||
|
|
17326dc3ec | ||
|
|
3c2abaaa82 | ||
|
|
64279bb881 | ||
|
|
8a7be101e4 | ||
|
|
be3e77d721 | ||
|
|
dc496fd1d9 | ||
|
|
01d86760e0 | ||
|
|
7b7f52c8af | ||
|
|
5c709f0da3 | ||
|
|
9fee79ea96 | ||
|
|
91e74944f3 | ||
|
|
c0ae130656 | ||
|
|
7fe0e2629c | ||
|
|
805574cac1 | ||
|
|
31aa5e12e5 | ||
|
|
9b8feed3ed | ||
|
|
ed0ece304d | ||
|
|
80809ace67 | ||
|
|
86ddd702fb | ||
|
|
871c4fffdd | ||
|
|
ca8abecc4b | ||
|
|
371bd2e51b | ||
|
|
c19efb5b19 | ||
|
|
439c155552 | ||
|
|
8c9530e3ec | ||
|
|
4d07507739 | ||
|
|
2423bede60 | ||
|
|
8b8fb9562f | ||
|
|
e29cf8bfef | ||
|
|
d6b69204a6 | ||
|
|
bc08913c61 | ||
|
|
57af7c131d | ||
|
|
6c7b04fee8 | ||
|
|
4e8b00da34 | ||
|
|
b9ea6fd2e7 | ||
|
|
022154462e | ||
|
|
c9c19d043f | ||
|
|
c5a2aa0a2a | ||
|
|
2d66786656 | ||
|
|
3ccd4f9b14 | ||
|
|
46f5596e59 | ||
|
|
c0d673b46f | ||
|
|
8d058cbd04 | ||
|
|
02446af743 | ||
|
|
813ab47e29 | ||
|
|
027ff9f2bf | ||
|
|
d9ae449f04 | ||
|
|
7ce35f81de | ||
|
|
f3d88fbd36 | ||
|
|
4f7460afbd | ||
|
|
75e4329c80 | ||
|
|
af55d1b1b3 | ||
|
|
a5094dd3ea | ||
|
|
9a8a5a0006 | ||
|
|
33e6da33ca | ||
|
|
1385929089 | ||
|
|
61b85183f9 | ||
|
|
4e90cb5818 | ||
|
|
b55f419386 | ||
|
|
c7323accf2 | ||
|
|
2e6c22d44d | ||
|
|
3b30855855 | ||
|
|
fff15d2d4d | ||
|
|
86278311d2 | ||
|
|
beae1869a3 | ||
|
|
835d51c59f | ||
|
|
38bf2ceb78 | ||
|
|
bbc71b3144 | ||
|
|
7078086b50 | ||
|
|
618c1166ce | ||
|
|
0a0b3a6b4f | ||
|
|
23ca46c918 | ||
|
|
9a7b20cbfd | ||
|
|
80c1b9be6a | ||
|
|
49d2b87889 | ||
|
|
66f5a8736a | ||
|
|
37dab85df7 | ||
|
|
14b01784ec | ||
|
|
a74e2391e8 | ||
|
|
4b5248ee98 | ||
|
|
60c2d89cb0 | ||
|
|
f9b2cf8484 | ||
|
|
260c84ccf0 | ||
|
|
e8dfa9cfa1 | ||
|
|
cd0084f21c | ||
|
|
404fd941e8 | ||
|
|
2ee4168956 | ||
|
|
f0204dbb10 | ||
|
|
a6f01349e8 | ||
|
|
c9d1512748 | ||
|
|
de44764efa | ||
|
|
c9e7ffadad | ||
|
|
5ea46d4c12 | ||
|
|
3b29f20d60 | ||
|
|
59bd238ae1 | ||
|
|
a273deae12 | ||
|
|
2fe9ea3f41 | ||
|
|
30989e35bf | ||
|
|
7ac651763c | ||
|
|
748a6b5ce1 | ||
|
|
3f7e79cdf3 | ||
|
|
30c2e39e70 | ||
|
|
9cb36abe91 | ||
|
|
1dd99559bb | ||
|
|
9a96124040 | ||
|
|
c6bd22aa12 | ||
|
|
3d10f31211 | ||
|
|
9f4118974d | ||
|
|
7f85eb77aa | ||
|
|
a651d7049d | ||
|
|
804a3b6706 | ||
|
|
f5caf3968f | ||
|
|
000e1823ac | ||
|
|
f8f2271f33 | ||
|
|
15dc6f062e | ||
|
|
91dea9cbc4 | ||
|
|
fb8423fdca | ||
|
|
cd519e1bf3 | ||
|
|
e9b9582817 | ||
|
|
4f61f57c14 | ||
|
|
1c88b6339c | ||
|
|
8b8cc2fa20 | ||
|
|
59b8b13146 | ||
|
|
eb6f0eb346 | ||
|
|
0c5dd1556a | ||
|
|
b10a55a547 | ||
|
|
389899e0c6 | ||
|
|
b0e038e789 | ||
|
|
a09acc86d0 | ||
|
|
1ad9c1257b | ||
|
|
d7a9e48a9c | ||
|
|
dc57025218 | ||
|
|
1ed5cc9898 | ||
|
|
39f1504ca2 | ||
|
|
12782161bc | ||
|
|
c2f36d877f | ||
|
|
fd3cc7e8c3 | ||
|
|
bf2cad28af | ||
|
|
fa546c440e | ||
|
|
34b44e7496 | ||
|
|
48d9fb3e79 | ||
|
|
fb87b1c794 | ||
|
|
af4ecb4aa1 | ||
|
|
ba8611cf4c | ||
|
|
9bffe05020 | ||
|
|
8f84675874 | ||
|
|
2e7a44de61 | ||
|
|
a55bb39f20 | ||
|
|
8424acda4d | ||
|
|
bb7a74b632 | ||
|
|
443b9e4d37 | ||
|
|
7426693f1d | ||
|
|
fd8d81f517 | ||
|
|
e1c2537084 | ||
|
|
9fd9d65995 | ||
|
|
829697d53e | ||
|
|
9886b1075f | ||
|
|
122051c91c | ||
|
|
55e4889053 | ||
|
|
ac5c1af829 | ||
|
|
d3747f40e2 | ||
|
|
55eb855267 | ||
|
|
3c5bd0ff6b | ||
|
|
8a4a804c8c | ||
|
|
e391dd182d | ||
|
|
9bab5d5a33 | ||
|
|
c67ebf19d4 | ||
|
|
9cf93111d6 | ||
|
|
6a35bbea2f | ||
|
|
1c27dccabb | ||
|
|
f17fce9461 | ||
|
|
f947c96462 | ||
|
|
639e44e182 | ||
|
|
aedc45abd5 | ||
|
|
f49f62d3be | ||
|
|
bbdfbe64da | ||
|
|
e53850627f | ||
|
|
6b96806914 | ||
|
|
656e6d289a | ||
|
|
7858430631 | ||
|
|
745f1befe9 | ||
|
|
5c2a1a4284 | ||
|
|
9a35bba3b7 | ||
|
|
b09d3eb855 | ||
|
|
71f9ef30f5 | ||
|
|
c0c0ef9fe8 | ||
|
|
8a7bdd5b95 | ||
|
|
0cc2c83525 | ||
|
|
a5208959c4 | ||
|
|
e96d0429cd | ||
|
|
c538f0b907 | ||
|
|
fd7daf4c89 | ||
|
|
7f2efd3193 | ||
|
|
a79afd6580 | ||
|
|
51f3014028 | ||
|
|
60317ffadd | ||
|
|
1f4c7cc22b | ||
|
|
a32147182a | ||
|
|
0070d5f295 | ||
|
|
2f422ab719 | ||
|
|
b206cdba92 | ||
|
|
9042ef7557 | ||
|
|
0aa029d548 | ||
|
|
c511cb518c | ||
|
|
a88fe61a7b | ||
|
|
004f5d407f | ||
|
|
71b05dbcf4 | ||
|
|
22e0d8b442 | ||
|
|
1d0523ec21 | ||
|
|
f73855a7f2 | ||
|
|
c2bdb48bc6 | ||
|
|
a52b0c5439 | ||
|
|
10dc859231 | ||
|
|
f3f6ce3943 | ||
|
|
fb7cc673ac | ||
|
|
e1a264825a | ||
|
|
a5d75e4f4c | ||
|
|
d6857e654f | ||
|
|
747be8d629 | ||
|
|
7c39907251 | ||
|
|
005d9d368f | ||
|
|
ff9dd43262 | ||
|
|
02f6a59c10 | ||
|
|
2631ae682d | ||
|
|
e02a63b061 | ||
|
|
4a917d171d | ||
|
|
88a0a8d35a | ||
|
|
2fe74c2947 | ||
|
|
4f1d8943d6 | ||
|
|
b6787d91a3 | ||
|
|
c03a734ebb | ||
|
|
07659547ce | ||
|
|
cf95f5e72e | ||
|
|
13c86cbdc5 | ||
|
|
44f2d3a3c2 | ||
|
|
6e99bb178d | ||
|
|
9bf0d7680e | ||
|
|
d4ff927181 | ||
|
|
138378626f | ||
|
|
9b63e6a289 | ||
|
|
8ebd1ab4f4 | ||
|
|
9dde9314e8 | ||
|
|
124739fde2 | ||
|
|
3b459813ed | ||
|
|
60bb593228 | ||
|
|
ef7a4288ae | ||
|
|
790b3382a3 | ||
|
|
05a0df799e | ||
|
|
9c0fa376a1 | ||
|
|
247882eb54 | ||
|
|
3596fabc78 | ||
|
|
fd65a47d51 | ||
|
|
4bf6d8d94d | ||
|
|
1dd758c66a | ||
|
|
58e8d819c9 | ||
|
|
736df7696f | ||
|
|
c46f3d37b1 | ||
|
|
1becb6137a | ||
|
|
5f9bed6a52 | ||
|
|
ac3014378f | ||
|
|
c68f4872fa | ||
|
|
cbf7759e7c | ||
|
|
639a7f91a4 | ||
|
|
e5b0219e3f | ||
|
|
fbebf30b98 | ||
|
|
1ad0184473 | ||
|
|
6c9125402a | ||
|
|
712b8224c6 | ||
|
|
e039006667 | ||
|
|
f129768f07 | ||
|
|
b7104be689 | ||
|
|
9d10792640 | ||
|
|
2073f2ddc3 | ||
|
|
6f5e13815c | ||
|
|
c830f85c09 | ||
|
|
e36cba703e | ||
|
|
a91358e7bf | ||
|
|
2d945bc215 | ||
|
|
3095e29507 | ||
|
|
4f75432fc6 | ||
|
|
9d2e066aca | ||
|
|
5c69875b59 | ||
|
|
4de99cfe8e | ||
|
|
b5554e05d8 | ||
|
|
90d5372813 | ||
|
|
229a756d84 | ||
|
|
a1f599c7c4 | ||
|
|
b849fdead5 | ||
|
|
463bb0b03f | ||
|
|
44779bc862 | ||
|
|
af6493b07b | ||
|
|
b17b9683e1 | ||
|
|
1fbddf4149 | ||
|
|
443614a375 | ||
|
|
a83345d136 | ||
|
|
98566fec83 | ||
|
|
eb198271ac | ||
|
|
43c82ccb09 | ||
|
|
d863496f62 | ||
|
|
bcb64a231f | ||
|
|
a1b4a3f8b7 | ||
|
|
9e17d52e8e | ||
|
|
92a7fe33bd | ||
|
|
09f5a74a15 | ||
|
|
3dc8b7a5d0 | ||
|
|
e367c6df95 | ||
|
|
48bf4fb85d | ||
|
|
45848c3f61 | ||
|
|
2237cf0188 | ||
|
|
689a85a071 | ||
|
|
287e822e02 | ||
|
|
d5de042529 | ||
|
|
49487f9d4a | ||
|
|
5142981018 | ||
|
|
a145bf9119 | ||
|
|
3b4057a78c | ||
|
|
f1080d633e | ||
|
|
485852c9db | ||
|
|
612f8d2e5b | ||
|
|
560209550c | ||
|
|
dcff507e02 | ||
|
|
ce7b34e96b | ||
|
|
3c19fdd193 | ||
|
|
ce8f32e797 | ||
|
|
adc743503a | ||
|
|
c416c036ea | ||
|
|
ad1b333601 | ||
|
|
071cc856da | ||
|
|
4ba8ef30f2 | ||
|
|
26ea274259 | ||
|
|
ab6222a5f8 | ||
|
|
1b18c5d51d | ||
|
|
d9214db404 | ||
|
|
596d2cf425 | ||
|
|
5add01243d | ||
|
|
5f9b640da1 | ||
|
|
3dcac2c46c | ||
|
|
34483a1287 | ||
|
|
2f12294639 | ||
|
|
7168bcdbe5 | ||
|
|
243f68e0e8 | ||
|
|
fbd78037ff | ||
|
|
8d2f7832ed | ||
|
|
1a3dc2145d | ||
|
|
7f98323962 | ||
|
|
f7a3cee25a | ||
|
|
5795051477 | ||
|
|
730367557f | ||
|
|
7ef1ee916b | ||
|
|
0a2dd28cd8 | ||
|
|
d189f9132e | ||
|
|
dcca5aa0f0 | ||
|
|
db2cfd424b | ||
|
|
770b09cc23 | ||
|
|
a362c08613 | ||
|
|
e54f24e303 | ||
|
|
3552ba2a30 | ||
|
|
e9754efbbe | ||
|
|
6128e5d582 | ||
|
|
ef668f552e | ||
|
|
d41a37c9bc | ||
|
|
2022a5e65c | ||
|
|
7b25fe9cc6 | ||
|
|
ab9856ee88 | ||
|
|
f0709d187d | ||
|
|
e316a09a79 | ||
|
|
0a61aa0d46 | ||
|
|
83ed9a8d4e | ||
|
|
464e49d329 | ||
|
|
8e4b0fdfe8 | ||
|
|
5927b6298d | ||
|
|
e6c2c7ed93 | ||
|
|
b045160e4f | ||
|
|
4ff781fa48 | ||
|
|
b2c2f42f30 | ||
|
|
dce9af219f | ||
|
|
2359742de1 | ||
|
|
8ae718b747 | ||
|
|
fb5173cebd | ||
|
|
fe1189ea79 | ||
|
|
1d7ef5d4eb | ||
|
|
a8c02fdc3c | ||
|
|
91c6e436b3 | ||
|
|
7ac292e09b | ||
|
|
6bce5836f9 | ||
|
|
e6186b07e1 | ||
|
|
a6c3c118a7 | ||
|
|
ca471e9986 | ||
|
|
50e52df04b | ||
|
|
e26063a872 | ||
|
|
557736ea5e | ||
|
|
6d2ca74878 | ||
|
|
b9daed2055 | ||
|
|
eb88b8cc0c | ||
|
|
b188385184 | ||
|
|
409190c85a | ||
|
|
40ad211f3e | ||
|
|
cb6b0dde27 | ||
|
|
e85854aa24 | ||
|
|
9f3516a4da | ||
|
|
c306fb55ae | ||
|
|
8dbd5b11eb | ||
|
|
8dba308d54 | ||
|
|
f227a2d529 | ||
|
|
f62e0534a2 | ||
|
|
c663b5d5fc | ||
|
|
c427000184 | ||
|
|
a81c6469a8 | ||
|
|
71a39c37ec | ||
|
|
06e0f38523 | ||
|
|
792c1c94f7 | ||
|
|
0383aa104c | ||
|
|
7d8072bf8f | ||
|
|
97b034dbcb | ||
|
|
94b45ea16f | ||
|
|
d2a19f3e86 | ||
|
|
4968d95cab | ||
|
|
f170022fa3 | ||
|
|
0b6d9cb472 | ||
|
|
a41c26e9cd | ||
|
|
4dee16c9fa | ||
|
|
6fc7be78ea | ||
|
|
47ce81c9a6 | ||
|
|
b0ad4a50d9 | ||
|
|
91755fa83a | ||
|
|
0c252b6ed4 | ||
|
|
06e5f19fab | ||
|
|
4939179b9f | ||
|
|
e24a858f39 | ||
|
|
c97ee5395b | ||
|
|
b78ca924fd | ||
|
|
04be724614 | ||
|
|
c8ab3b5f4f | ||
|
|
8bac8a7163 | ||
|
|
332c133893 | ||
|
|
6ff3e8801d | ||
|
|
796b5ceacb | ||
|
|
b6ff613189 | ||
|
|
b34a8f9d94 | ||
|
|
bf8e2e5959 | ||
|
|
b2fd7f6d54 | ||
|
|
f8c962bd25 | ||
|
|
27dbc152f3 | ||
|
|
606661b271 | ||
|
|
dc37537797 | ||
|
|
08a911466e | ||
|
|
d2e76058cd | ||
|
|
6f9907a3cb | ||
|
|
0d3eb047c7 | ||
|
|
6cde2b83e8 | ||
|
|
9da07f2f66 | ||
|
|
460732097c | ||
|
|
84e3925e7b | ||
|
|
05ef937e92 | ||
|
|
2ca8dbebea | ||
|
|
36f92b7649 | ||
|
|
470838f21c | ||
|
|
247ebf5a35 | ||
|
|
cba8947ee8 | ||
|
|
39a7ce58b9 | ||
|
|
3fdafc6d25 | ||
|
|
04d6d675a5 | ||
|
|
edea88b535 | ||
|
|
ae471bea14 | ||
|
|
8ded3bdba2 | ||
|
|
62cda9dd40 | ||
|
|
062654ebdd | ||
|
|
d406b57311 | ||
|
|
7ad330eccb | ||
|
|
7250fd9313 | ||
|
|
181ad76ec9 | ||
|
|
9ab531473a | ||
|
|
87af012a97 | ||
|
|
db032831e0 | ||
|
|
2a51f2cba5 | ||
|
|
adb29dd0e4 | ||
|
|
af14929af1 | ||
|
|
3ffeab4c41 | ||
|
|
8459a216a5 | ||
|
|
2fab4d576a | ||
|
|
90cdfc4a6d | ||
|
|
12efb281f8 | ||
|
|
98ff9f1e77 | ||
|
|
1ae7e72aa8 | ||
|
|
a518f4306d | ||
|
|
0654ffc117 | ||
|
|
c0796d8fb1 | ||
|
|
7f262a1210 | ||
|
|
26afdb39d3 | ||
|
|
794cc1eeab | ||
|
|
c70ebe6dce | ||
|
|
c0f29cc790 | ||
|
|
663393d994 | ||
|
|
ed0b76813d | ||
|
|
8e76c30dd1 | ||
|
|
f9cb2bd5df | ||
|
|
7b95867378 | ||
|
|
6dd9702b79 | ||
|
|
0423bbe168 | ||
|
|
9363123047 | ||
|
|
c0b1c9e106 | ||
|
|
cb28329f14 | ||
|
|
6c65b486e4 | ||
|
|
dc6c9186c9 | ||
|
|
ed60a3dcce | ||
|
|
5c54dfe581 | ||
|
|
697f265249 | ||
|
|
024e00cc97 | ||
|
|
dc42d5dda6 | ||
|
|
56a5a129c6 | ||
|
|
a66f8ec04d | ||
|
|
e2c95f75f1 | ||
|
|
a590289900 | ||
|
|
39af47fbf9 | ||
|
|
d007ee97e3 | ||
|
|
0fd883686c | ||
|
|
db63a40461 | ||
|
|
90cf5c08ad | ||
|
|
0454f4ea4c | ||
|
|
d37e71b793 | ||
|
|
3d0964bce9 | ||
|
|
4437e6a609 | ||
|
|
7659bbb711 | ||
|
|
a07bae2530 | ||
|
|
29ca08f9ff | ||
|
|
d3978980d2 | ||
|
|
7ba9fcc0e5 | ||
|
|
440331d319 | ||
|
|
035823e414 | ||
|
|
5996ba51c9 | ||
|
|
22af66e3b5 | ||
|
|
87ca7c7f7b | ||
|
|
f9d2696046 | ||
|
|
4edb623745 | ||
|
|
cb9929712c | ||
|
|
837df4f4cb | ||
|
|
6339d61419 | ||
|
|
f9097c84e9 | ||
|
|
b96c1e92a3 | ||
|
|
329701a34e | ||
|
|
5d2766e016 | ||
|
|
eed935c923 | ||
|
|
74381dc115 | ||
|
|
1722397040 | ||
|
|
38a663163d | ||
|
|
f4d6b4d13a | ||
|
|
98badfb4a2 | ||
|
|
09d7b5db31 | ||
|
|
ac7face247 | ||
|
|
eb75985aa6 | ||
|
|
36e14157be | ||
|
|
178bea6bbc | ||
|
|
9b5a46f4b0 | ||
|
|
1ab8a9f42c | ||
|
|
b3d834acb0 | ||
|
|
0a273ba1e2 | ||
|
|
74202a86b2 | ||
|
|
744354c550 | ||
|
|
57a7720274 | ||
|
|
8c300b4fcb | ||
|
|
6a25c8dc84 | ||
|
|
ebc006c4b9 | ||
|
|
8c8c181f73 | ||
|
|
7c6c027d33 | ||
|
|
99aafe657d | ||
|
|
c2b16c663f | ||
|
|
957ba90073 | ||
|
|
34bbf8b3a1 | ||
|
|
af263fd80d | ||
|
|
b8830dfd32 | ||
|
|
a8c10cda91 | ||
|
|
62027d35ea | ||
|
|
bee861ff8f | ||
|
|
d0a7d44ec3 | ||
|
|
86a5553c3a | ||
|
|
2d44c7e462 | ||
|
|
4cc06f94c0 | ||
|
|
936bda8f71 | ||
|
|
56a3e4d680 | ||
|
|
1e694271a3 | ||
|
|
744b4abce8 | ||
|
|
6b746913e4 | ||
|
|
a876b3b72f | ||
|
|
a1e12c1b30 | ||
|
|
99a2d66086 | ||
|
|
71085838db | ||
|
|
f726d7501f | ||
|
|
e50261a99c | ||
|
|
dbe15d32e5 | ||
|
|
82cfedfa43 | ||
|
|
8afb1f17b4 | ||
|
|
ca0c4f5a3d | ||
|
|
a93b22f89a | ||
|
|
e5295b4eb0 | ||
|
|
7d0f89ef46 | ||
|
|
058b4da954 | ||
|
|
1ceacdf636 | ||
|
|
37c04f3e42 | ||
|
|
0ee4608d96 | ||
|
|
8bcec87d3a | ||
|
|
bef1b94d71 | ||
|
|
23eb13ced6 | ||
|
|
cf057b1146 | ||
|
|
b1eda37cca | ||
|
|
a07ea12ac4 | ||
|
|
19f87ca057 | ||
|
|
964478e78f | ||
|
|
77fcde875e | ||
|
|
547c246e88 | ||
|
|
344198bc2a | ||
|
|
c19703c39f | ||
|
|
c99b656279 | ||
|
|
490ef29d82 | ||
|
|
9683b7b7a1 | ||
|
|
77be468670 | ||
|
|
72c1783b5b | ||
|
|
0a75b47509 | ||
|
|
41131ae48d | ||
|
|
0a3b19edf2 | ||
|
|
018e9f30be | ||
|
|
eb1882453f | ||
|
|
79bb991a61 | ||
|
|
493b51882b | ||
|
|
fccbb98b8e | ||
|
|
c12fd369d9 | ||
|
|
2aac83d03b | ||
|
|
3b330ee2d1 | ||
|
|
58d357e9ce | ||
|
|
b9e1088f74 | ||
|
|
7cbcea18e9 | ||
|
|
726dbc004d | ||
|
|
6ae27fa47b | ||
|
|
65cec901d5 | ||
|
|
2a8b52a014 | ||
|
|
c669ecb4dd | ||
|
|
e1471cbd19 | ||
|
|
ce1f19cacc | ||
|
|
c27ee6aba8 | ||
|
|
d12f15da92 | ||
|
|
aac76ad407 | ||
|
|
4a3cfab146 | ||
|
|
32e62faf39 | ||
|
|
12f42a555e | ||
|
|
f66e9191a9 | ||
|
|
11dabfa1b7 | ||
|
|
12cefdb7d5 | ||
|
|
8e248bbde6 | ||
|
|
d49e74c1f4 | ||
|
|
a0d1304bfc | ||
|
|
0e0cba653f | ||
|
|
bb2d7bca5a | ||
|
|
41b2a013a7 | ||
|
|
f85642741d | ||
|
|
a22e8a1f40 | ||
|
|
6dcd00b609 | ||
|
|
5492b5c4f6 | ||
|
|
eb9371091a | ||
|
|
ef3c2daef1 | ||
|
|
07da5de880 | ||
|
|
37c53f326c | ||
|
|
c5a93ca215 | ||
|
|
e40f10657d | ||
|
|
7ceca8ff3c | ||
|
|
bb8377ae6a | ||
|
|
84eec03cb7 | ||
|
|
9e06dc0d5c | ||
|
|
9728df2a48 | ||
|
|
05c11d1b7c | ||
|
|
1e915eef89 | ||
|
|
09181fab13 | ||
|
|
0c2d1bcc50 | ||
|
|
04360ed552 | ||
|
|
3cf171cbf5 | ||
|
|
b4dab5d8b1 | ||
|
|
7c45d4f328 | ||
|
|
38524507d5 | ||
|
|
5d6ef0c471 | ||
|
|
9d7990b4a7 | ||
|
|
1398b9f5fc | ||
|
|
ba02bad45b | ||
|
|
72de3cf9ca | ||
|
|
430aec93d3 | ||
|
|
5f42a0b3b9 | ||
|
|
c3a8ca62c9 | ||
|
|
6d449aca49 | ||
|
|
fbf8cb3d6f | ||
|
|
293ef357fc | ||
|
|
b13454eeb4 | ||
|
|
54eafc8ebe | ||
|
|
d5e544ab32 | ||
|
|
16a11c3a7f | ||
|
|
a775031fe9 | ||
|
|
3bc78f9946 | ||
|
|
9a3481e900 | ||
|
|
b90e9ee428 | ||
|
|
c645e2e303 | ||
|
|
a747886323 | ||
|
|
6f443ee9fc | ||
|
|
96b0ea45dd | ||
|
|
91283e7c76 | ||
|
|
63aab99b9c | ||
|
|
3d5879b8ed | ||
|
|
5341a8215c | ||
|
|
6d5c6c7d17 | ||
|
|
7ead8e7290 | ||
|
|
2ee97ed191 | ||
|
|
96438a45b4 | ||
|
|
125a81f2ed | ||
|
|
7ce6f9d3b1 | ||
|
|
ecaa4fd6ce | ||
|
|
baa55d1597 | ||
|
|
63855346bf | ||
|
|
e121f4bc28 | ||
|
|
d93f33f514 | ||
|
|
fed8a56098 | ||
|
|
bc891761b6 | ||
|
|
247b85fe69 | ||
|
|
faf7a2bbb3 | ||
|
|
ebe6649683 | ||
|
|
e4eee897f9 | ||
|
|
01a3d5b0ba | ||
|
|
0f8d2986af | ||
|
|
a2caa31eca | ||
|
|
1cbd395d71 | ||
|
|
d3a53a702e | ||
|
|
13eb1c0bbd | ||
|
|
c7898fdeee | ||
|
|
53796a216e | ||
|
|
219a0f40ff | ||
|
|
bbe7e8a45a | ||
|
|
acd6847cd4 | ||
|
|
cb442f8c6e | ||
|
|
7d46ce3de1 | ||
|
|
5b28610c6a | ||
|
|
42d34a1999 | ||
|
|
12e020b7c2 | ||
|
|
7bd079d48d | ||
|
|
a0c84dbd0d | ||
|
|
ba4d68c76e | ||
|
|
7067a4d004 | ||
|
|
663467e214 | ||
|
|
04983ce4cd | ||
|
|
61b1f8c966 | ||
|
|
7546ba7406 | ||
|
|
8e19843db7 | ||
|
|
c3ae446fd9 | ||
|
|
d5d51d668f | ||
|
|
7bafe65d17 | ||
|
|
5b007ece14 | ||
|
|
0d4318e466 | ||
|
|
b97cc1d398 | ||
|
|
fbba5b1420 | ||
|
|
05bee40f0a | ||
|
|
771ecdba12 | ||
|
|
2eb82c8356 | ||
|
|
e7815787c7 | ||
|
|
cc27a367d6 | ||
|
|
bc5173bac7 | ||
|
|
c195452c54 | ||
|
|
1f28dc6013 | ||
|
|
2ffefc95ae | ||
|
|
53a57ee8c7 | ||
|
|
8bc94874a1 | ||
|
|
29c79c935a | ||
|
|
1493943e2e | ||
|
|
4b1258f585 | ||
|
|
71e375aff0 | ||
|
|
88c8cdd800 | ||
|
|
0201fcd400 | ||
|
|
791b796c23 | ||
|
|
3b0b5d85e9 | ||
|
|
ec82931573 | ||
|
|
835e1b8787 | ||
|
|
e025444c86 | ||
|
|
f49a8a7f70 | ||
|
|
b3ce7ec9c4 | ||
|
|
cb2900f5a9 | ||
|
|
edef225eab | ||
|
|
52d411f423 | ||
|
|
e786291086 | ||
|
|
d6324feafd | ||
|
|
d7660dad37 | ||
|
|
bc3a7522a2 | ||
|
|
38826a851d | ||
|
|
72f0e9ba77 | ||
|
|
28a3824d2d | ||
|
|
3404b4ac58 | ||
|
|
86e5dbda4f | ||
|
|
13a9ac8f57 | ||
|
|
a58e3d5ee0 | ||
|
|
76913a5dd1 | ||
|
|
4a0bb32c2e | ||
|
|
eb9ff677d0 | ||
|
|
bf1e5b8805 | ||
|
|
e909d1b594 | ||
|
|
31bd90a8df | ||
|
|
c51752df39 | ||
|
|
348a7e5111 | ||
|
|
f67b60623e | ||
|
|
10568f4200 | ||
|
|
ce5cf3573a | ||
|
|
fb5faf0ff5 | ||
|
|
306bf0f292 | ||
|
|
fb5746e4f7 | ||
|
|
37b18a532c | ||
|
|
e20d652cca | ||
|
|
14e868d2f7 | ||
|
|
84f5adb24a | ||
|
|
11ecaf4fa4 | ||
|
|
ebb87e6379 | ||
|
|
a2bd08ca8a | ||
|
|
f997e86869 | ||
|
|
0f1be60bda | ||
|
|
f09f00a6b8 | ||
|
|
c369130338 | ||
|
|
9d44a756bb | ||
|
|
010d44eab7 | ||
|
|
ff87207cf4 | ||
|
|
bbf678975f | ||
|
|
d0d1b25e5c | ||
|
|
5cf50d9fae | ||
|
|
e8ec45ef97 | ||
|
|
9bc20f0b42 | ||
|
|
0c587999c6 | ||
|
|
fa459b0d1e | ||
|
|
fa3c959212 | ||
|
|
8cf3ee866e | ||
|
|
504904a414 | ||
|
|
877a0924c1 | ||
|
|
79b8647fd7 | ||
|
|
8e596165ab | ||
|
|
b4de4369eb | ||
|
|
cc932eff30 | ||
|
|
d3a424cc74 | ||
|
|
ca39f6e159 | ||
|
|
c9f91b2de5 | ||
|
|
e60f4278f7 | ||
|
|
42cfe01ad2 | ||
|
|
5a34f90319 | ||
|
|
8bfc539234 | ||
|
|
b56ef2b758 | ||
|
|
37f63406c4 | ||
|
|
c8a99ee3a4 | ||
|
|
21d1e981ca | ||
|
|
7f3ce65d96 | ||
|
|
0dac53df54 | ||
|
|
c01e14c879 | ||
|
|
2cf837801d | ||
|
|
39b96c13e8 | ||
|
|
6df9c6f9b2 | ||
|
|
ffea029001 | ||
|
|
9a5bbea2e4 | ||
|
|
891f67a1cd | ||
|
|
779b529da2 | ||
|
|
5c9b062f13 | ||
|
|
1989b86c60 | ||
|
|
f8b21d8d16 | ||
|
|
c682b48fb9 | ||
|
|
d74c8a30db | ||
|
|
1d24b52fa6 | ||
|
|
f446774605 | ||
|
|
7e1b16250c | ||
|
|
c74664097b | ||
|
|
d66299260c | ||
|
|
395a88a5ef | ||
|
|
b21936f94d | ||
|
|
1bb5a5794d | ||
|
|
cbf92598e2 | ||
|
|
0da9efdbd4 | ||
|
|
94430c300b | ||
|
|
b59fd6d06a | ||
|
|
18e234aefc | ||
|
|
8c5da624e5 | ||
|
|
9b4a680f7e | ||
|
|
a8e266129a | ||
|
|
726bbb2d94 | ||
|
|
d09ca076dc | ||
|
|
f8c6c9f72c | ||
|
|
d6ce6b85d5 | ||
|
|
b6bb2ca06a | ||
|
|
16d32c59ba | ||
|
|
d11bb247b3 | ||
|
|
c954c95da4 | ||
|
|
a978880b0b | ||
|
|
383b8b77eb | ||
|
|
f46062cc4a | ||
|
|
2bfe66e840 | ||
|
|
51d63f0e83 | ||
|
|
b204451d06 | ||
|
|
6e25da6a19 | ||
|
|
ba604390d2 | ||
|
|
080b02e9d5 | ||
|
|
3d02013513 | ||
|
|
2e18388825 | ||
|
|
d4c391deb2 | ||
|
|
52dcc2855e | ||
|
|
21de6f6163 | ||
|
|
dd5665c656 | ||
|
|
b96b86bfa7 | ||
|
|
b1ff346f63 | ||
|
|
c34b0069ff | ||
|
|
5488f1bfc3 | ||
|
|
c630214915 | ||
|
|
4d4c839afa | ||
|
|
8ac9d0a131 | ||
|
|
9e2be34897 | ||
|
|
a070f1bce7 | ||
|
|
cb3c4893dc | ||
|
|
b6eeabab5e | ||
|
|
bdee748a6a | ||
|
|
1af293847c | ||
|
|
9be538a5f6 | ||
|
|
294188dea1 | ||
|
|
c66f293f1e | ||
|
|
e81841550b | ||
|
|
fc930bae69 | ||
|
|
f9625189cb | ||
|
|
a9fa8915d9 | ||
|
|
9d106d6bfc | ||
|
|
b39522f874 | ||
|
|
49b82ea6a2 | ||
|
|
1a2721529d | ||
|
|
d84ba23c81 | ||
|
|
fff0f11b33 | ||
|
|
4e49de1afb | ||
|
|
a67cac1322 | ||
|
|
4aab93084a | ||
|
|
a90a577ee1 | ||
|
|
3c362ac822 | ||
|
|
ff7191eef3 | ||
|
|
785a64cc3b | ||
|
|
d612cad09a | ||
|
|
917c4cc18b | ||
|
|
340076974e | ||
|
|
880c3aeb34 | ||
|
|
d6ffee5e99 | ||
|
|
4b983251cb | ||
|
|
4b57fcb563 | ||
|
|
d8d758f0e1 | ||
|
|
a5e7da67d8 | ||
|
|
ee9c71e11e | ||
|
|
f06742cf41 | ||
|
|
a7dd9f19f4 | ||
|
|
91bccf75d5 | ||
|
|
c339470496 | ||
|
|
b1d481893e | ||
|
|
d7f5a15f68 | ||
|
|
91160c5f36 | ||
|
|
156b480f93 | ||
|
|
82bf00de73 | ||
|
|
e06eae423e | ||
|
|
0f604aa8c7 | ||
|
|
379c41d20c | ||
|
|
896a66e6d8 | ||
|
|
7208635502 | ||
|
|
da9afd3f6f | ||
|
|
a67a574b89 | ||
|
|
18fd20f898 | ||
|
|
4ac1601696 | ||
|
|
4876beabed | ||
|
|
e2ee82169c | ||
|
|
7a823e8dc7 | ||
|
|
09fbb6d35a | ||
|
|
4ae5ddf80f | ||
|
|
2ad8036823 | ||
|
|
5bf4f51389 | ||
|
|
4e1d3bfd73 | ||
|
|
fa687f246e | ||
|
|
7263dcddfe | ||
|
|
c9cab250c7 | ||
|
|
f31d65bdaf | ||
|
|
efdb43dc53 | ||
|
|
cfa1eca249 | ||
|
|
d990f12f56 | ||
|
|
1d9f46ebc5 | ||
|
|
6ea869bb18 | ||
|
|
5c92082f7c | ||
|
|
b45f0e3e46 | ||
|
|
a44138dd5c | ||
|
|
c749f7018e | ||
|
|
77adbef401 | ||
|
|
0ca7fd369a | ||
|
|
bea31f9bcc | ||
|
|
108e4efc8a | ||
|
|
113c8eb702 | ||
|
|
18b22834c1 | ||
|
|
b8d2d5d877 | ||
|
|
bb16dc6d01 | ||
|
|
80749958b7 | ||
|
|
d3069eb734 | ||
|
|
ca328242bc | ||
|
|
265325057a | ||
|
|
4ff63c2bf5 | ||
|
|
66a36b3af1 | ||
|
|
aa7216b9d9 | ||
|
|
28e7540096 | ||
|
|
1a42c58975 | ||
|
|
eca9c658f4 | ||
|
|
c1e9f45df9 | ||
|
|
b40e5686dc | ||
|
|
a4c6529d60 | ||
|
|
61d7e6bc6c | ||
|
|
44c9469221 | ||
|
|
d4112fe2bf | ||
|
|
e7c5e17a8e | ||
|
|
5295a68906 | ||
|
|
e443cde452 | ||
|
|
e4ded388b4 | ||
|
|
cbe81d2d1b | ||
|
|
f8b997bcf4 | ||
|
|
341635f6bd | ||
|
|
a64d2ec716 | ||
|
|
f1a13a1f2b | ||
|
|
1a9511da29 | ||
|
|
32456e1b24 | ||
|
|
d9fcdd2920 | ||
|
|
5aeb30e845 | ||
|
|
c8f18e49f1 | ||
|
|
4ce42fa6d4 | ||
|
|
c88390e3be | ||
|
|
c0aa1ef145 | ||
|
|
823a916220 | ||
|
|
1dc9f10c7f | ||
|
|
b74fb3e208 | ||
|
|
53a17c2355 | ||
|
|
57e60681f2 | ||
|
|
7592f40de2 | ||
|
|
08a36b4d40 | ||
|
|
ca27fb06d5 | ||
|
|
8b5530d2ba | ||
|
|
a19895850c | ||
|
|
6fe821c30e | ||
|
|
b0812c2235 | ||
|
|
d6cae74176 | ||
|
|
67304c71a0 | ||
|
|
bb73df5d77 | ||
|
|
95a60087f9 | ||
|
|
38e48e7591 | ||
|
|
1d80bddde3 | ||
|
|
1d71059580 | ||
|
|
8db604e787 | ||
|
|
3b1e15ea1a | ||
|
|
d70a474bac | ||
|
|
41ebc10c03 | ||
|
|
07efabed03 | ||
|
|
057cf6aed3 | ||
|
|
add4ba21fa | ||
|
|
3727d37101 | ||
|
|
c67f7afa49 | ||
|
|
ded0aab586 | ||
|
|
4b51b39a83 | ||
|
|
470a74ee24 | ||
|
|
0142e070cc | ||
|
|
d06819eb6c | ||
|
|
c19df0130b | ||
|
|
c5cd4b6783 | ||
|
|
a025bcd7db | ||
|
|
c47882b887 | ||
|
|
b4d806ad41 | ||
|
|
ad4423d226 | ||
|
|
dcece140a0 | ||
|
|
5d3b6953af | ||
|
|
8c70856a82 | ||
|
|
9805f2331d | ||
|
|
4e7aeca3b7 | ||
|
|
f9eef6d986 | ||
|
|
5df8ddfc3f | ||
|
|
0ad598119f | ||
|
|
fc8e0e7b19 | ||
|
|
e825b55a99 | ||
|
|
f4f8be56ce | ||
|
|
e124f17c64 | ||
|
|
83917299db | ||
|
|
76102ee9f0 | ||
|
|
2e292699b7 | ||
|
|
b07d4efe5f | ||
|
|
959acb7988 | ||
|
|
558cb3d0b5 | ||
|
|
28d949fa5f | ||
|
|
486b99b39d | ||
|
|
b16447b13d | ||
|
|
b9fa06c890 | ||
|
|
2eb3159f8a | ||
|
|
8a0aae775a | ||
|
|
dbc7593328 | ||
|
|
e5e6e8cbd5 | ||
|
|
3bbc6ac0e6 | ||
|
|
a6486f0adc | ||
|
|
bf5f82ff27 | ||
|
|
98131c3e5e | ||
|
|
1d499d2f29 | ||
|
|
30ccc102d2 | ||
|
|
dee7572c5d | ||
|
|
f524d51624 | ||
|
|
b02bd59e0c | ||
|
|
0a155d89a3 | ||
|
|
27b08725fc | ||
|
|
34ed6fdd1c | ||
|
|
4f304aa384 | ||
|
|
3d3bc7a062 | ||
|
|
aae6d09fd3 | ||
|
|
2bb72eba02 | ||
|
|
902584855b | ||
|
|
3b7e63a773 | ||
|
|
9d7e7c1ca8 | ||
|
|
13a313ff66 | ||
|
|
9ed2a74421 | ||
|
|
48295efe0d | ||
|
|
963ac75389 | ||
|
|
635d6fe82c | ||
|
|
658298bc31 | ||
|
|
f25c8d3d2a | ||
|
|
5c7aaf5754 | ||
|
|
64917bd9fb | ||
|
|
a910821506 | ||
|
|
2110ae4d33 | ||
|
|
062503a903 | ||
|
|
bbfac92672 | ||
|
|
2df6fd03fb | ||
|
|
214f4b7dc2 | ||
|
|
57860fc33c | ||
|
|
d843ad414a | ||
|
|
677b8caa63 | ||
|
|
5a84978dab | ||
|
|
ddc4b9b7d5 | ||
|
|
586961013d | ||
|
|
056bbaa921 | ||
|
|
9b6c589b9c | ||
|
|
c21f4b5ec2 | ||
|
|
d1c5a1a5f8 | ||
|
|
ea55a2ad29 | ||
|
|
c773d85876 | ||
|
|
3a92e4aab9 | ||
|
|
72bbf12747 | ||
|
|
dd246f1ff0 | ||
|
|
8324d03f0a | ||
|
|
74efc57369 | ||
|
|
3eb917055e | ||
|
|
0b6eb3b30e | ||
|
|
07bc9a7b4b | ||
|
|
410d88bf99 | ||
|
|
bd654ea1db | ||
|
|
240939ce3b | ||
|
|
78ef6f0d04 | ||
|
|
0650b3084e | ||
|
|
e92d5e80ee | ||
|
|
7e75d04055 | ||
|
|
ed2da34d7a | ||
|
|
4a207f079b | ||
|
|
123701080d | ||
|
|
3353b329fc | ||
|
|
963a7802d1 | ||
|
|
e66adfbf68 | ||
|
|
3def6a3bc4 | ||
|
|
e718e9f5e5 | ||
|
|
970cedf972 | ||
|
|
f305517724 | ||
|
|
8646586c1a | ||
|
|
bf9c1b3205 | ||
|
|
467867016d | ||
|
|
319c8201be | ||
|
|
f620ad979f | ||
|
|
64f5ee6399 | ||
|
|
46099fdd71 | ||
|
|
dc1aead2a2 | ||
|
|
d156457405 | ||
|
|
2b91e4d27c | ||
|
|
f164847f9b | ||
|
|
082ecc3f37 | ||
|
|
46e8e3dbbc | ||
|
|
aa6327716f | ||
|
|
2fcaeeaec8 | ||
|
|
d68d41a878 | ||
|
|
642daa641b | ||
|
|
323c271d01 | ||
|
|
2f821af0a0 | ||
|
|
63a17f697c | ||
|
|
386b78b896 | ||
|
|
4c9dcf5c98 | ||
|
|
084758908a | ||
|
|
4ce0005711 | ||
|
|
63d34ac348 | ||
|
|
10170a555e | ||
|
|
18628612b2 | ||
|
|
83974732f3 | ||
|
|
cdd6852709 | ||
|
|
5f9f27604b | ||
|
|
d3a80513a7 | ||
|
|
02b923b0e5 | ||
|
|
2fd2085bb5 | ||
|
|
df185b4343 | ||
|
|
d1d97bed73 | ||
|
|
da00a6c687 | ||
|
|
8cd4d839aa | ||
|
|
b0a61f437a | ||
|
|
a06e85f6ce | ||
|
|
97a890e8a0 | ||
|
|
a5dc1964a9 | ||
|
|
ea5c6c1eb5 | ||
|
|
c0cb0f9487 | ||
|
|
ee8499f65c | ||
|
|
199f0932bf | ||
|
|
e6c19fdcb1 | ||
|
|
f08a49fd0c | ||
|
|
6f6a63f5e9 | ||
|
|
0d4aff55bc | ||
|
|
2e8846ef8d | ||
|
|
923d24b448 | ||
|
|
fae8979463 | ||
|
|
8be53e68ee | ||
|
|
81e2db7170 | ||
|
|
3f7f1aa47f | ||
|
|
c167a0d190 | ||
|
|
5a90993938 | ||
|
|
e17bee8e31 | ||
|
|
3c274135ce | ||
|
|
4c0ed74341 | ||
|
|
1db064425a | ||
|
|
d8866c64d2 | ||
|
|
3cde0d988e | ||
|
|
59f17ab8f3 | ||
|
|
4c8d426f23 | ||
|
|
395afe59eb | ||
|
|
6531f94f86 | ||
|
|
e231774b05 | ||
|
|
e1558d6300 | ||
|
|
c13c6ade29 | ||
|
|
114f87c6b4 | ||
|
|
c1a397e624 | ||
|
|
cc3cc35565 | ||
|
|
7fbdcd3fed | ||
|
|
f1cf697547 | ||
|
|
9bb8dd7a7a | ||
|
|
0668c2be94 | ||
|
|
2e9f247e29 | ||
|
|
09d3896304 | ||
|
|
ad92b11f12 | ||
|
|
a06a1f84e0 | ||
|
|
686adbe65a | ||
|
|
77e345570d | ||
|
|
fd71b4a22e | ||
|
|
8c4df37062 | ||
|
|
5e2e12977d | ||
|
|
8dad78194f | ||
|
|
daaa3c5b41 | ||
|
|
32a4078240 | ||
|
|
3089894d20 | ||
|
|
70c13f919a | ||
|
|
69283e83d8 | ||
|
|
ea33caa1a8 | ||
|
|
9f5b5bb424 | ||
|
|
1b95efd1fa | ||
|
|
10bd73cd4a | ||
|
|
0237b21aad | ||
|
|
7c6eddeae7 | ||
|
|
148dbc5d41 | ||
|
|
f15088f496 | ||
|
|
da52da37b3 | ||
|
|
5410d78bbb | ||
|
|
114f00e1e8 | ||
|
|
0b54710734 | ||
|
|
698b44f71c | ||
|
|
d0c583b5e2 | ||
|
|
cd3e1fc27e | ||
|
|
397d804cdd | ||
|
|
ca30d1832d | ||
|
|
6a85556b33 | ||
|
|
7dfcad6f8f | ||
|
|
5c51d11651 | ||
|
|
924d472de5 | ||
|
|
d36e9875c5 | ||
|
|
7713a7b750 | ||
|
|
4c52aa9c88 | ||
|
|
c5dd64d18a | ||
|
|
536db062f4 | ||
|
|
b80ddef274 | ||
|
|
b143e93e5a | ||
|
|
d58e3ca34d | ||
|
|
d2359df2b0 | ||
|
|
80d85965e9 | ||
|
|
828dbf76eb | ||
|
|
ab3775d4c5 | ||
|
|
13dc1e02ab | ||
|
|
1bfbb9242c | ||
|
|
6723f4215a | ||
|
|
33b95836b9 | ||
|
|
4782b20d61 | ||
|
|
e57a2e0fa9 | ||
|
|
e9612ee9e6 | ||
|
|
27f8aa095a | ||
|
|
490e92167d | ||
|
|
61a3d5ffda | ||
|
|
b33259b1f2 | ||
|
|
4206fd94e3 | ||
|
|
aa54c7b6b3 | ||
|
|
16fad1aba1 | ||
|
|
b4cf98998e | ||
|
|
a76c92ed9a | ||
|
|
ba4ef52e9e | ||
|
|
12a4b9aaa3 | ||
|
|
a9479fd662 | ||
|
|
b5cabbeb43 | ||
|
|
065a85e05c | ||
|
|
a5745eee5d | ||
|
|
92e42b581f | ||
|
|
a8471f1617 | ||
|
|
e0809a2ffe | ||
|
|
78e962e30a | ||
|
|
a5993afb60 | ||
|
|
cbb70cdc7c | ||
|
|
90eea14b8c | ||
|
|
b264614b9d | ||
|
|
6007e0de71 | ||
|
|
c4b9d54085 | ||
|
|
3ba42ee32e | ||
|
|
3443c36087 | ||
|
|
7cc3d911ba | ||
|
|
527868a6b3 | ||
|
|
af9e1e79cd | ||
|
|
e987479d04 | ||
|
|
ba04ad8603 | ||
|
|
d911987787 | ||
|
|
8218c728a8 | ||
|
|
17e3f1c21f | ||
|
|
9c51e1af18 | ||
|
|
a326d72be9 | ||
|
|
fc556d15f8 | ||
|
|
053d998103 | ||
|
|
d8649f7a60 | ||
|
|
5b72407746 | ||
|
|
3e2443a861 | ||
|
|
bed921c593 | ||
|
|
8c8a61ddfe | ||
|
|
6a4b275d40 | ||
|
|
3db9a86a4c | ||
|
|
d7f408e455 | ||
|
|
490f77137d | ||
|
|
07a2077c1e | ||
|
|
2849e19d49 | ||
|
|
98a89e4f2c | ||
|
|
e560650bf3 | ||
|
|
46c58b3202 | ||
|
|
b7c5283a66 | ||
|
|
998fc9890e | ||
|
|
6a97a6dafc | ||
|
|
c18d6b5ae5 | ||
|
|
ee03d44053 | ||
|
|
7a6850d5fe | ||
|
|
6e2500385c | ||
|
|
aabf5f09ab | ||
|
|
75d2895db6 | ||
|
|
50beac2baf | ||
|
|
8dd6cdeb69 | ||
|
|
258438f01f | ||
|
|
943dc6cdd6 | ||
|
|
045f157a63 | ||
|
|
83f1a53d32 | ||
|
|
0f5307437c | ||
|
|
28ebdb72a0 | ||
|
|
745d255808 | ||
|
|
e4088d5e6c | ||
|
|
9c641ddf6b | ||
|
|
c824b0694e | ||
|
|
36b4d5a120 | ||
|
|
bbc5ff5103 | ||
|
|
3c98ce43c6 | ||
|
|
8da3efa2c2 | ||
|
|
3605bec8e0 | ||
|
|
0c0c558ff7 | ||
|
|
7a4e74950c | ||
|
|
0a876c8af9 | ||
|
|
8c78aca69e | ||
|
|
9ff648177c | ||
|
|
161d0ea50f | ||
|
|
e3a5a22b84 | ||
|
|
18be1a0254 | ||
|
|
66291ecc38 | ||
|
|
31d73626e5 | ||
|
|
268035ff9e | ||
|
|
34a7ba4477 | ||
|
|
5e30214e4c | ||
|
|
5231d07fdf | ||
|
|
cfe8ca9836 | ||
|
|
6667b79ac0 | ||
|
|
8ac909b0eb | ||
|
|
ee3ccf151a | ||
|
|
a6fd52d1f9 | ||
|
|
30f77b07bb | ||
|
|
f520a0f272 | ||
|
|
f2b3181735 | ||
|
|
780608894e | ||
|
|
e20cecf7aa | ||
|
|
679a7b6ec2 | ||
|
|
a595239624 | ||
|
|
cdefc7ea9b | ||
|
|
92dd4c0d99 | ||
|
|
00ce60ef20 | ||
|
|
edb7b56f1a | ||
|
|
ef8751a795 | ||
|
|
243edda7f2 | ||
|
|
7665bc6c63 | ||
|
|
48ac3790c2 | ||
|
|
28a67f9957 | ||
|
|
98591c3bc0 | ||
|
|
871332ecf0 | ||
|
|
21a6c0fd89 | ||
|
|
002d374f0c | ||
|
|
ed46f9ac7e | ||
|
|
8d5dbd74b6 | ||
|
|
c2ead0e265 | ||
|
|
43a620b9ff | ||
|
|
7a55ab64d8 | ||
|
|
1575088585 | ||
|
|
96e271e8be | ||
|
|
90380adc90 | ||
|
|
824607080a | ||
|
|
337a21f6d6 | ||
|
|
6df54cfe8d | ||
|
|
b04c8c2b6e | ||
|
|
d327c16904 | ||
|
|
c51585c279 | ||
|
|
df728083cc | ||
|
|
a6ddc22fb8 | ||
|
|
72a1c65d00 | ||
|
|
ccfd7a065c | ||
|
|
54fb0d9bd3 | ||
|
|
995d6646be | ||
|
|
f7d3c90218 | ||
|
|
564188b0d3 | ||
|
|
bef7ba2cfe | ||
|
|
7dba788d09 | ||
|
|
738f870e70 | ||
|
|
542ee42313 | ||
|
|
9140893cd3 | ||
|
|
2866bc626a | ||
|
|
61c4fe8992 | ||
|
|
4592de8fb6 | ||
|
|
15648991fc | ||
|
|
d00ccd2eb5 | ||
|
|
0d6ca0945b | ||
|
|
d1a19a1009 | ||
|
|
3461cbfb06 | ||
|
|
e5ec585f98 | ||
|
|
6a0d05e1ef | ||
|
|
4532108678 | ||
|
|
33974d710a | ||
|
|
a5ec7fc704 | ||
|
|
663b8dcb08 | ||
|
|
656836950e | ||
|
|
23347b392f | ||
|
|
2e19af5032 | ||
|
|
6aaa89a23c | ||
|
|
acceb8efc9 | ||
|
|
92ab7bece2 | ||
|
|
540bcd8d70 | ||
|
|
6476b6b1f0 | ||
|
|
4316999254 | ||
|
|
5fe18400c5 | ||
|
|
9b5ed176cd | ||
|
|
5e38faa09d | ||
|
|
6a75fd84ab | ||
|
|
8f99764f24 | ||
|
|
1a7b874c60 | ||
|
|
36e5377e6a | ||
|
|
a80d1bbd2b | ||
|
|
c2d04499ab | ||
|
|
a5a5c6723e | ||
|
|
d80c6b4b7d | ||
|
|
06518c5736 | ||
|
|
a7e6e4ef45 | ||
|
|
506057d202 | ||
|
|
ffddcb5060 | ||
|
|
3720c5ef79 | ||
|
|
165d664524 | ||
|
|
7b9b23b143 | ||
|
|
cdaf25cb3e | ||
|
|
6d046f251e | ||
|
|
e803076063 | ||
|
|
203960b4b5 | ||
|
|
3d5ff723e9 | ||
|
|
a02a49a184 | ||
|
|
8ca444aee0 | ||
|
|
7ceac05395 | ||
|
|
4893d99774 | ||
|
|
393017cf3b | ||
|
|
6057c9f27d | ||
|
|
a4bdc9a71d | ||
|
|
fbfc2e4d07 | ||
|
|
7bb9ea201c | ||
|
|
70127bad4b | ||
|
|
2bf68b7970 | ||
|
|
d524aea779 | ||
|
|
4fcedc2187 | ||
|
|
45cb97ec85 | ||
|
|
f5070dfa26 | ||
|
|
a89f57a2df | ||
|
|
ad8fca259f | ||
|
|
0bea8a881d | ||
|
|
f4be4c594a | ||
|
|
716a5d1543 | ||
|
|
c7eb466e63 | ||
|
|
71f38f17cd | ||
|
|
e29d3497eb | ||
|
|
8f4c2f5c58 | ||
|
|
528e93004f | ||
|
|
23f8d58859 | ||
|
|
4fa00b74ad | ||
|
|
55271311c4 | ||
|
|
f80b5af432 | ||
|
|
60b3037e4a | ||
|
|
901bf62213 | ||
|
|
ac6a9e7696 | ||
|
|
d2555db952 | ||
|
|
3e37cfa8ed | ||
|
|
f8b7ffcf8c | ||
|
|
d571f22ec0 | ||
|
|
910c630f8e | ||
|
|
cc1ab94a4f | ||
|
|
497eb3c587 | ||
|
|
d217da421f | ||
|
|
d7a83f1b83 | ||
|
|
80636ab083 | ||
|
|
c490c21cd5 | ||
|
|
ed0bda98a6 | ||
|
|
0c200d360b | ||
|
|
90a64dbde2 | ||
|
|
bf5b96362f | ||
|
|
0a9b250d73 | ||
|
|
6c2ccada13 | ||
|
|
a4cf32dce0 | ||
|
|
c579736158 | ||
|
|
5b525eb9ca | ||
|
|
b807215aec | ||
|
|
fc39e8f27d | ||
|
|
fd27e6f928 | ||
|
|
470ddb4704 | ||
|
|
8037a79673 | ||
|
|
0c5ccba9be | ||
|
|
f6a48f2672 | ||
|
|
959103a416 | ||
|
|
b268671afd | ||
|
|
9f8943c89b | ||
|
|
8e231dfa95 | ||
|
|
d8f408ee83 | ||
|
|
76e6d498cf | ||
|
|
d2a59c556e | ||
|
|
9b632eaaca | ||
|
|
b457c8c1fa | ||
|
|
f257145ee0 | ||
|
|
8b1c8f69f7 | ||
|
|
57845851c0 | ||
|
|
4723f66d23 | ||
|
|
6f68d05545 | ||
|
|
8c682c80ce | ||
|
|
525e66d566 | ||
|
|
3cde0a5b96 | ||
|
|
882f0ab8a5 | ||
|
|
4cfa687a3f | ||
|
|
0141fa2f1c | ||
|
|
24b1ec2592 | ||
|
|
28ad6ed552 | ||
|
|
cf94610f46 | ||
|
|
c7836f1157 | ||
|
|
228843b010 | ||
|
|
ab31619745 | ||
|
|
1bc2d58ae1 | ||
|
|
89c59498d1 | ||
|
|
74dac174db | ||
|
|
fef8f5c453 | ||
|
|
8f48ede957 | ||
|
|
8a71c680ac | ||
|
|
5584481bef | ||
|
|
f2a464f626 | ||
|
|
44399991f4 | ||
|
|
afe2967473 | ||
|
|
471e684151 | ||
|
|
1ce77e6f15 | ||
|
|
938cf8fce2 | ||
|
|
18c4df98ff | ||
|
|
c4bbb76da4 | ||
|
|
d99dee9c40 | ||
|
|
5c7d34677d | ||
|
|
4c4d8a5e84 | ||
|
|
b44092ac43 | ||
|
|
806dd5d783 | ||
|
|
d4d0f4c131 | ||
|
|
8c7ef64fab | ||
|
|
fb6636d182 | ||
|
|
58faae95af | ||
|
|
468519cd46 | ||
|
|
0ff75e7a88 | ||
|
|
d2063cc357 | ||
|
|
d35f3fc573 | ||
|
|
d1c26e4535 | ||
|
|
5fa76dfd66 | ||
|
|
525d5de30c | ||
|
|
54d500737a | ||
|
|
8651736e61 | ||
|
|
b20918b60e | ||
|
|
8905fe5a54 | ||
|
|
a519ec6220 | ||
|
|
a0bfa710be | ||
|
|
bff80dfc70 | ||
|
|
e17b3d24bf | ||
|
|
135e8419ae | ||
|
|
cd1e0571a5 | ||
|
|
b0e6bcfaa0 | ||
|
|
f25c23c051 | ||
|
|
2cd5006260 | ||
|
|
94ea323836 | ||
|
|
2ff56fe86c | ||
|
|
9603c91877 | ||
|
|
feba525e7c | ||
|
|
236846baa7 | ||
|
|
a4d1293eaf | ||
|
|
42abc858a4 | ||
|
|
19ac36b965 | ||
|
|
0eb79368ea | ||
|
|
8ca52ba8f9 | ||
|
|
1cb91fabb6 | ||
|
|
afe48da4b1 | ||
|
|
806248ebd4 | ||
|
|
dc7322cc4a | ||
|
|
415e6a46f8 | ||
|
|
f0a34de3c0 | ||
|
|
a953db6d9c | ||
|
|
3b8d49104c | ||
|
|
ac73e25d88 | ||
|
|
4840c2c64f | ||
|
|
248ae9d4ba | ||
|
|
a81a5fa31b | ||
|
|
8625e2c051 | ||
|
|
cc6be754f7 | ||
|
|
c9895dd5c7 | ||
|
|
b28333ea0d | ||
|
|
f34b090b42 | ||
|
|
2987895370 | ||
|
|
f141325258 | ||
|
|
3427a1aff4 | ||
|
|
35136090cb | ||
|
|
4853014a61 | ||
|
|
7ef61b47e3 | ||
|
|
c280eac309 | ||
|
|
78408cf54b | ||
|
|
2106be6a04 | ||
|
|
d6e8e1be6e | ||
|
|
c3c67f18b8 | ||
|
|
c8911c0dfd | ||
|
|
afaa0a3493 | ||
|
|
8b00d0580b | ||
|
|
6bbd42bfd1 | ||
|
|
4e6a171a42 | ||
|
|
3e9067fe8e | ||
|
|
ffe344ce90 | ||
|
|
e100ba8362 | ||
|
|
7e54bd4956 | ||
|
|
4e7f2c6a4f | ||
|
|
5718f3dca2 | ||
|
|
2027429d87 | ||
|
|
cfe4299301 | ||
|
|
9840470df8 | ||
|
|
ff01a7da1e | ||
|
|
fdceeb368e | ||
|
|
0c2d71c2ce | ||
|
|
5bc000cc31 | ||
|
|
3b9ffa194d | ||
|
|
f3d85ae219 | ||
|
|
b9fd609bb2 | ||
|
|
8416d69f1e | ||
|
|
71ae2a3458 | ||
|
|
9279bf7628 | ||
|
|
d0f8d43739 | ||
|
|
eb65822665 | ||
|
|
4a5fc2104f | ||
|
|
0e6fedc056 | ||
|
|
1a87e30b95 | ||
|
|
03eda06a38 | ||
|
|
263bee3c09 | ||
|
|
0c3f352c63 | ||
|
|
055ba4f14e | ||
|
|
ecfbad0443 | ||
|
|
8f0e717404 | ||
|
|
4076b37378 | ||
|
|
ca59ae4f4f | ||
|
|
be88e93820 | ||
|
|
83fd387f2f | ||
|
|
cd6aac9acf | ||
|
|
05d02b702a | ||
|
|
f6933a8868 | ||
|
|
51b42bc7b8 | ||
|
|
e95f36c725 | ||
|
|
b6387f7709 | ||
|
|
1f5a0c0130 | ||
|
|
7f2bd47849 | ||
|
|
4c2bc56d2e | ||
|
|
010690a9c7 | ||
|
|
1a4303bbce | ||
|
|
d4343a5e42 | ||
|
|
067da8223d | ||
|
|
b510243dd8 | ||
|
|
fe77360874 | ||
|
|
fdc7471a7b | ||
|
|
7198f20d69 | ||
|
|
de065c728f | ||
|
|
2fa3f5072d | ||
|
|
7cc6f6f2a3 | ||
|
|
a298d2976f | ||
|
|
09e94397aa | ||
|
|
f634f20ccc | ||
|
|
190d3a1da9 | ||
|
|
8592f7e672 | ||
|
|
f0fcc19915 | ||
|
|
e81d8beb19 | ||
|
|
5e0df62d7a | ||
|
|
f38fe5a9dd | ||
|
|
75cfe1c5dd | ||
|
|
1374c68274 | ||
|
|
6c3d6b7c28 | ||
|
|
0fc8c37f23 | ||
|
|
ab21f718ba | ||
|
|
42c7256a55 | ||
|
|
24333d0a19 | ||
|
|
60215cf2cf | ||
|
|
6d569a86f9 | ||
|
|
549fef8eb5 | ||
|
|
e9dd6e6c90 | ||
|
|
242faa138b | ||
|
|
0d5fec6dfc | ||
|
|
8a8eecbe8b | ||
|
|
2481367ab4 | ||
|
|
14e3d9d576 | ||
|
|
be312bbe4f | ||
|
|
852e89c0df | ||
|
|
522e132200 | ||
|
|
0c62d8454d | ||
|
|
5a18b8de77 | ||
|
|
8e8d9f39cb | ||
|
|
f73150c998 | ||
|
|
6e1fd0694f | ||
|
|
1220b7d501 | ||
|
|
321d4e9c87 | ||
|
|
6608de6cfe | ||
|
|
e217774678 | ||
|
|
091a35293a | ||
|
|
b95eaa5843 | ||
|
|
5e309feaeb | ||
|
|
e72c56520e | ||
|
|
12b5cf0331 | ||
|
|
0987521cd3 | ||
|
|
8b46feb085 | ||
|
|
03bd346432 | ||
|
|
cd46a08f4a | ||
|
|
09d6d3c545 | ||
|
|
b2107b5e27 | ||
|
|
ca2e448684 | ||
|
|
b4dcfd650a | ||
|
|
23b818f9e6 | ||
|
|
839a61ef59 | ||
|
|
fe877486ff | ||
|
|
ece6969edf | ||
|
|
4c76c97762 | ||
|
|
1d30283514 | ||
|
|
1edabc4b3c | ||
|
|
90468e8095 | ||
|
|
3b23e68540 | ||
|
|
99e3af8ff7 | ||
|
|
e4c78f92d4 | ||
|
|
1030cce4c7 | ||
|
|
7580c385da | ||
|
|
0d8a3fb389 | ||
|
|
55d863adb8 | ||
|
|
6e44eed9fe | ||
|
|
13c678344e | ||
|
|
138e3fb9f4 | ||
|
|
8fa875a542 | ||
|
|
ceeeee3d76 | ||
|
|
a763b3d140 | ||
|
|
ea8f9c3d0d | ||
|
|
9a22ac6ee6 | ||
|
|
8a36322e28 | ||
|
|
4a6fddf280 | ||
|
|
2822f5fd0a | ||
|
|
0359c1845a | ||
|
|
34ff6d5f6b | ||
|
|
640b09c6b2 | ||
|
|
079e383319 | ||
|
|
a42ac00d3c | ||
|
|
701f3d6054 | ||
|
|
9d1c58a218 | ||
|
|
13cc117caa | ||
|
|
2727f75919 | ||
|
|
0f2f6621b5 | ||
|
|
3a5f19f7fd | ||
|
|
e708ef96d1 |
@@ -23,15 +23,14 @@ BraceWrapping:
|
||||
AfterClass: true
|
||||
AfterFunction: true
|
||||
AfterControlStatement: false
|
||||
AfterEnum: false
|
||||
AfterNamespace: false
|
||||
AfterObjCDeclaration: false
|
||||
AfterStruct: false
|
||||
AfterUnion: false
|
||||
AfterEnum: true
|
||||
AfterNamespace: true
|
||||
AfterStruct: true
|
||||
AfterUnion: true
|
||||
BeforeCatch: false
|
||||
BeforeElse: false
|
||||
IndentBraces: false
|
||||
BreakBeforeBinaryOperators: None
|
||||
BreakBeforeBinaryOperators: NonAssignment
|
||||
BreakBeforeBraces: Custom
|
||||
BreakBeforeTernaryOperators: true
|
||||
BreakConstructorInitializersBeforeComma: true
|
||||
@@ -86,4 +85,3 @@ Standard: Cpp11
|
||||
TabWidth: 4
|
||||
UseTab: Never
|
||||
...
|
||||
|
||||
|
||||
6
.gitattributes
vendored
@@ -11,3 +11,9 @@ AppImage-Recipe.sh export-ignore
|
||||
# github-linguist language hints
|
||||
*.h linguist-language=C++
|
||||
*.cpp linguist-language=C++
|
||||
|
||||
# binary files
|
||||
*.ai binary
|
||||
|
||||
# Line endings harmony
|
||||
* text=auto
|
||||
|
||||
103
.github/CONTRIBUTING.md
vendored
@@ -53,7 +53,7 @@ If we reject your contribution, it means only that we do not consider it suitabl
|
||||
## How can I contribute?
|
||||
### Feature requests
|
||||
|
||||
We're always looking for suggestions to improve our application. If you have a suggestion to improve an existing feature, or would like to suggest a completely new feature for KeePassXC, please use the [issue tracker on GitHub][issues-section]. For more general discussion, try using our [Google Groups][google-groups] forum.
|
||||
We're always looking for suggestions to improve our application. If you have a suggestion to improve an existing feature, or would like to suggest a completely new feature for KeePassXC, please use the [issue tracker on GitHub][issues-section].
|
||||
|
||||
### Bug reports
|
||||
|
||||
@@ -63,7 +63,7 @@ Before submitting a bug report, check if the problem has already been reported.
|
||||
|
||||
### Discuss with the team
|
||||
|
||||
As with feature requests, you can talk to the KeePassXC team about bugs, new features, other issues and pull requests on the dedicated issue tracker, using the [Google Groups][google-groups] forum, or in the IRC channel on Freenode (`#keepassxc-dev` on `irc.freenode.net`, or use a [webchat link](https://webchat.freenode.net/?channels=%23keepassxc-dev)).
|
||||
As with feature requests, you can talk to the KeePassXC team about bugs, new features, other issues and pull requests on the dedicated issue tracker, on the [Matrix development channel](https://matrix.to/#/!RhJPJPGwQIFVQeXqZa:matrix.org?via=matrix.org), or in the IRC channel on Libera.Chat (`#keepassxc-dev` on `irc.libera.chat`, or use a [webchat link](https://web.libera.chat/#keepassxc-dev)).
|
||||
|
||||
### Your first code contribution
|
||||
|
||||
@@ -85,16 +85,23 @@ All pull requests must comply with the above requirements and with the [stylegui
|
||||
Translations are managed on [Transifex](https://www.transifex.com/keepassxc/keepassxc/) which offers a web interface.
|
||||
Please join an existing language team or request a new one if there is none.
|
||||
|
||||
If you open a Pull Request with new strings that require translations, you will need to run the following:
|
||||
```
|
||||
./release-tool i18n lupdate
|
||||
```
|
||||
This will make the new strings available for translation in Transifex.
|
||||
|
||||
## Styleguides
|
||||
|
||||
### Git branch strategy
|
||||
|
||||
The Branch Strategy is based on [git-flow-lite](http://nvie.com/posts/a-successful-git-branching-model/).
|
||||
|
||||
* **master** – points to the latest public release
|
||||
* **develop** – points to the development of the next release, contains tested and reviewed code
|
||||
* **feature/**[name] – points to a branch with a new feature, one which is candidate for merge into develop (subject to rebase)
|
||||
* **hotfix/**[id]-[description] – points to a branch with a fix for a particular issue ID
|
||||
* **fix/**[name] – points to a branch with a fix for a particular issue ID
|
||||
|
||||
Note: The **latest** tag is used to point to the most recent stable release.
|
||||
|
||||
|
||||
### Git commit messages
|
||||
@@ -103,24 +110,16 @@ The Branch Strategy is based on [git-flow-lite](http://nvie.com/posts/a-successf
|
||||
* Use the imperative mood ("Move cursor to…" not "Moves cursor to…")
|
||||
* Limit the first line to 72 characters or less
|
||||
* Reference issues and pull requests liberally
|
||||
* When only changing documentation, include `[ci skip]` in the commit description
|
||||
* Consider starting the commit message with an applicable emoji:
|
||||
* :memo: `:memo:` when writing docs
|
||||
* :penguin: `:penguin:` when fixing something on Linux
|
||||
* :apple: `:apple:` when fixing something on macOS
|
||||
* :checkered_flag: `:checkered_flag:` when fixing something on Windows
|
||||
* :bug: `:bug:` when fixing a bug
|
||||
* :fire: `:fire:` when removing code or files
|
||||
* :green_heart: `:green_heart:` when fixing the CI build
|
||||
* :white_check_mark: `:white_check_mark:` when adding tests
|
||||
* :lock: `:lock:` when dealing with security
|
||||
|
||||
* If your pull request fixes an existing issue, add "Fixes #ISSUENUMBER" to your pull request description
|
||||
|
||||
### Coding styleguide
|
||||
|
||||
This project follows the [Qt Coding Style](https://wiki.qt.io/Qt_Coding_Style). All submissions are expected to follow this style.
|
||||
The coding style of the project is enforced using llvm's `clang-format` formatting tool. A thorough description
|
||||
of the coding style can be found in the `.clang-format` file, but the main conventions are presented here.
|
||||
|
||||
In particular, code must stick to the following rules:
|
||||
Formatting can be performed automatically by calling `make format` from the `build/` directory.
|
||||
|
||||
Note that [formatting can be disabled on a piece of code](https://clang.llvm.org/docs/ClangFormatStyleOptions.html#disabling-formatting-on-a-piece-of-code) if manual formatting is deemed more readable.
|
||||
|
||||
#### Naming convention
|
||||
`lowerCamelCase`
|
||||
@@ -132,15 +131,67 @@ For names made of multiple concatenated words, the first letter of the whole is
|
||||
For **C++ files** (*.cpp .h*): 4 spaces
|
||||
For **Qt-UI files** (*.ui*): 2 spaces
|
||||
|
||||
#### Pointers
|
||||
```c
|
||||
#### Includes
|
||||
```cpp
|
||||
// Class includes
|
||||
#include "MyWidget.h"
|
||||
#include "ui_MyWidget.h"
|
||||
|
||||
// Application includes
|
||||
#include "core/Config.h"
|
||||
#include "core/Resources.h"
|
||||
|
||||
// Global includes
|
||||
#include <QWidget>
|
||||
#include <stdin>
|
||||
```
|
||||
|
||||
#### Classes
|
||||
```cpp
|
||||
// Note: order is important, stay organized!
|
||||
class MyWidget : public QWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit MyWidget(QWidget* parent);
|
||||
~MyWidget() override;
|
||||
|
||||
signals:
|
||||
void alert();
|
||||
|
||||
public slots:
|
||||
void processEvent(Event* event);
|
||||
|
||||
private slots:
|
||||
void myEvent(Event* event);
|
||||
|
||||
private:
|
||||
const QScopedPointer<Ui::MyWidget> m_ui;
|
||||
int m_counter;
|
||||
};
|
||||
|
||||
// Note: alignment of variable initialization
|
||||
MyWidget::MyWidget(QWidget* parent)
|
||||
: QWidget(parent)
|
||||
, m_ui(new Ui::MyWidget())
|
||||
{
|
||||
|
||||
}
|
||||
```
|
||||
|
||||
#### Pointers / References
|
||||
```cpp
|
||||
int* count;
|
||||
const QString& string;
|
||||
```
|
||||
|
||||
#### Braces
|
||||
```c
|
||||
```cpp
|
||||
if (condition) {
|
||||
doSomething();
|
||||
} else {
|
||||
doSomethingElse();
|
||||
}
|
||||
|
||||
void ExampleClass::exampleFunction()
|
||||
@@ -150,16 +201,19 @@ void ExampleClass::exampleFunction()
|
||||
```
|
||||
|
||||
#### Switch statement
|
||||
```c
|
||||
```cpp
|
||||
// Note: avoid declaring variables in a switch statement
|
||||
switch (a) {
|
||||
case 1:
|
||||
doSomething();
|
||||
break;
|
||||
|
||||
default:
|
||||
// Note: use braces if necessary
|
||||
default: {
|
||||
doSomethingElse();
|
||||
break;
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
#### Member variables
|
||||
@@ -174,7 +228,6 @@ Example: `<widget class="QCheckBox" name="rememberCheckBox">`
|
||||
|
||||
|
||||
|
||||
[beginner]:https://github.com/keepassxreboot/keepassx/issues?q=is%3Aopen+is%3Aissue+label%3Abeginner+label%3A%22help+wanted%22+sort%3Acomments-desc
|
||||
[beginner]:https://github.com/keepassxreboot/keepassxc/issues?utf8=%E2%9C%93&q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22+sort%3Acomments-desc+
|
||||
[help-wanted]:https://github.com/keepassxreboot/keepassx/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22+sort%3Acomments-desc
|
||||
[issues-section]:https://github.com/keepassxreboot/keepassxc/issues
|
||||
[google-groups]:https://groups.google.com/forum/#!forum/keepassx-reboot
|
||||
|
||||
5
.github/FUNDING.yml
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
github: ["droidmonkey", "phoerious"]
|
||||
patreon: keepassxc
|
||||
open_collective: keepassxc
|
||||
liberapay: keepassxc
|
||||
custom: ["https://keepassxc.org/donate"]
|
||||
32
.github/ISSUE_TEMPLATE.md
vendored
@@ -1,32 +0,0 @@
|
||||
<!--- Provide a general summary of the issue in the title above -->
|
||||
|
||||
## Expected Behavior
|
||||
<!--- If you're describing a bug, tell us what should happen -->
|
||||
<!--- If you're suggesting a change/improvement, tell us how it should work -->
|
||||
|
||||
## Current Behavior
|
||||
<!--- If describing a bug, tell us what happens instead of the expected behavior -->
|
||||
<!--- If suggesting a change/improvement, explain the difference from the current behavior -->
|
||||
|
||||
## Possible Solution
|
||||
<!--- Not obligatory, but suggest a fix/reason for the bug, -->
|
||||
<!--- or ideas how to implement the addition or change -->
|
||||
|
||||
## Steps to Reproduce (for bugs)
|
||||
<!--- Provide a link to a live example, or an unambiguous set of steps to -->
|
||||
<!--- reproduce this bug. Include code to reproduce, if relevant -->
|
||||
1.
|
||||
2.
|
||||
3.
|
||||
4.
|
||||
|
||||
## Context
|
||||
<!--- How has this issue affected you? What are you trying to accomplish? -->
|
||||
<!--- Providing context helps us come up with a solution that is most useful in the real world -->
|
||||
|
||||
## Your Environment
|
||||
<!--- Include relevant details about the environment you experienced the bug in -->
|
||||
* KeePassXC version/commit used: (can be found under Help -> About)
|
||||
* Qt version (e.g. Qt 5.3):
|
||||
* Compiler (e.g. Clang++3.6.0):
|
||||
* Operating System and version:
|
||||
39
.github/ISSUE_TEMPLATE/bug-report.md
vendored
Normal file
@@ -0,0 +1,39 @@
|
||||
---
|
||||
name: Bug Report
|
||||
about: provide information about a problem
|
||||
title:
|
||||
labels: bug
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
## Overview
|
||||
[TIP]: # ( DO NOT include screenshots of your actual database! )
|
||||
[NOTE]: # ( Give a BRIEF summary about your problem )
|
||||
|
||||
|
||||
## Steps to Reproduce
|
||||
[NOTE]: # ( Provide a simple set of steps to reproduce this bug. )
|
||||
1.
|
||||
2.
|
||||
3.
|
||||
|
||||
## Expected Behavior
|
||||
[NOTE]: # ( Tell us what you expected to happen )
|
||||
|
||||
|
||||
## Actual Behavior
|
||||
[NOTE]: # ( Tell us what actually happens )
|
||||
|
||||
|
||||
## Context
|
||||
[NOTE]: # ( Give us any additional information you may have. )
|
||||
|
||||
|
||||
[NOTE]: # ( Paste debug info from Help → About here )
|
||||
KeePassXC - VERSION
|
||||
Revision: REVISION
|
||||
|
||||
[NOTE]: # ( Pick choices based on your environment )
|
||||
Operating System: Windows/Linux/macOS
|
||||
Desktop Env: Gnome/KDE/XFCE/Mate/Cinnamon
|
||||
Windowing System: X11/Wayland
|
||||
19
.github/ISSUE_TEMPLATE/feature-request.md
vendored
Normal file
@@ -0,0 +1,19 @@
|
||||
---
|
||||
name: Feature Request
|
||||
about: tell us about a new feature you want
|
||||
title:
|
||||
labels: new feature
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
## Summary
|
||||
[TIP]: # ( DO NOT include screenshots of your actual database! )
|
||||
[NOTE]: # ( Provide a brief overview of what the new feature is all about )
|
||||
|
||||
|
||||
## Examples
|
||||
[NOTE]: # ( Show us a picture or mock-up of your proposal )
|
||||
|
||||
|
||||
## Context
|
||||
[NOTE]: # ( Why does this feature matter to you? What unique circumstances do you have? )
|
||||
39
.github/ISSUE_TEMPLATE/release-preview-bug-report.md
vendored
Normal file
@@ -0,0 +1,39 @@
|
||||
---
|
||||
name: Release Preview Bug report
|
||||
about: report a bug with a release preview (e.g., 2.6.0-beta1)
|
||||
title:
|
||||
labels: PRE-RELEASE BUG
|
||||
assignees: droidmonkey
|
||||
|
||||
---
|
||||
## Overview
|
||||
[TIP]: # ( DO NOT include screenshots of your actual database! )
|
||||
[NOTE]: # ( Give a BRIEF summary about your problem )
|
||||
|
||||
|
||||
## Steps to Reproduce
|
||||
[NOTE]: # ( Provide a simple set of steps to reproduce this bug. )
|
||||
1.
|
||||
2.
|
||||
3.
|
||||
|
||||
## Expected Behavior
|
||||
[NOTE]: # ( Tell us what you expected to happen )
|
||||
|
||||
|
||||
## Actual Behavior
|
||||
[NOTE]: # ( Tell us what actually happens )
|
||||
|
||||
|
||||
## Context
|
||||
[NOTE]: # ( Give us any additional information you may have. )
|
||||
|
||||
|
||||
[NOTE]: # ( Paste debug info from Help → About here )
|
||||
KeePassXC - VERSION
|
||||
Revision: REVISION
|
||||
|
||||
[NOTE]: # ( Pick choices based on your environment )
|
||||
Operating System: Windows/Linux/macOS
|
||||
Desktop Env: Gnome/KDE/XFCE/Mate/Cinnamon
|
||||
Windowing System: X11/Wayland
|
||||
43
.github/PULL_REQUEST_TEMPLATE.md
vendored
@@ -1,34 +1,21 @@
|
||||
<!--- Provide a general summary of your changes in the title above -->
|
||||
[NOTE]: # ( Describe your changes in detail, why is this change required? )
|
||||
[NOTE]: # ( Explain large or complex code modifications. )
|
||||
[NOTE]: # ( If it fixes an open issue, please add "Fixes #XXX" )
|
||||
|
||||
## Description
|
||||
<!--- Describe your changes in detail -->
|
||||
|
||||
## Motivation and context
|
||||
<!--- Why is this change required? What problem does it solve? -->
|
||||
<!--- If it fixes an open issue, please link to the issue here. -->
|
||||
## Screenshots
|
||||
[TIP]: # ( Do not include screenshots of your actual database! )
|
||||
|
||||
## How has this been tested?
|
||||
<!--- Please describe in detail how you tested your changes. -->
|
||||
<!--- Include details of your testing environment, and the tests you ran to -->
|
||||
<!--- see how your change affects other areas of the code, etc. -->
|
||||
|
||||
## Screenshots (if appropriate):
|
||||
## Testing strategy
|
||||
[NOTE]: # ( Please describe in detail how you tested your changes. )
|
||||
[TIP]: # ( We expect new code to be covered by unit tests and documented with doc blocks! )
|
||||
|
||||
## Types of changes
|
||||
<!--- What types of changes does your code introduce? -->
|
||||
<!--- Please remove all lines which don't apply. -->
|
||||
- ✅ Bug fix (non-breaking change which fixes an issue)
|
||||
- ✅ New feature (non-breaking change which adds functionality)
|
||||
- ✅ Breaking change (fix or feature that would cause existing functionality to change)
|
||||
|
||||
## Checklist:
|
||||
<!--- Please go over all the following points. -->
|
||||
<!--- Again, remove any lines which don't apply. -->
|
||||
<!--- Pull Requests that don't fulfill all [REQUIRED] requisites are likely -->
|
||||
<!--- to be sent back to you for correction or will be rejected. -->
|
||||
- ✅ I have read the **CONTRIBUTING** document. **[REQUIRED]**
|
||||
- ✅ My code follows the code style of this project. **[REQUIRED]**
|
||||
- ✅ All new and existing tests passed. **[REQUIRED]**
|
||||
- ✅ I have compiled and verified my code with `-DWITH_ASAN=ON`. **[REQUIRED]**
|
||||
- ✅ My change requires a change to the documentation and I have updated it accordingly.
|
||||
- ✅ I have added tests to cover my changes.
|
||||
## Type of change
|
||||
[NOTE]: # ( Please remove all lines which don't apply. )
|
||||
- ✅ Bug fix (non-breaking change that fixes an issue)
|
||||
- ✅ New feature (change that adds functionality)
|
||||
- ✅ Breaking change (causes existing functionality to change)
|
||||
- ✅ Refactor (significant modification to existing code)
|
||||
- ✅ Documentation (non-code change)
|
||||
|
||||
8
.github/pull.yml
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
# doc: https://github.com/wei/pull#basic-setup
|
||||
# manual trigger: https://pull.git.ci/process/${fork-user}/keepassxc
|
||||
# pull from: https://github.com/keepassxreboot/keepassxc
|
||||
version: "1"
|
||||
rules:
|
||||
- base: develop
|
||||
upstream: keepassxreboot:develop
|
||||
mergeMethod: rebase
|
||||
23
.gitignore
vendored
@@ -7,3 +7,26 @@ release*/
|
||||
*.kdev4
|
||||
|
||||
\.vscode/
|
||||
*.swp
|
||||
|
||||
.DS_Store
|
||||
.version
|
||||
desktop.ini
|
||||
\.scannerwork/
|
||||
|
||||
/snap/.snapcraft/
|
||||
/parts/
|
||||
/stage/
|
||||
/prime/
|
||||
/*.snap
|
||||
/*_source.tar.bz2
|
||||
|
||||
# MSVC Files
|
||||
CMakeSettings.json
|
||||
CMakePresets.json
|
||||
.vs/
|
||||
out/
|
||||
|
||||
# vcpkg
|
||||
vcpkg_installed*/
|
||||
|
||||
|
||||
47
.travis.yml
@@ -1,47 +0,0 @@
|
||||
language: cpp
|
||||
sudo: required
|
||||
dist: trusty
|
||||
# FIXME : remove when (https://github.com/google/sanitizers/issues/837) is resolved.
|
||||
group: deprecated-2017Q3
|
||||
services: [docker]
|
||||
|
||||
os:
|
||||
- linux
|
||||
# - osx
|
||||
|
||||
# Define clang compiler without any frills
|
||||
compiler:
|
||||
- clang
|
||||
- gcc
|
||||
|
||||
env:
|
||||
- CONFIG=Release ASAN_OPTIONS=detect_odr_violation=1:leak_check_at_exit=0
|
||||
- CONFIG=Debug ASAN_OPTIONS=detect_odr_violation=1:leak_check_at_exit=0
|
||||
|
||||
git:
|
||||
depth: 3
|
||||
|
||||
before_install:
|
||||
- if [ "$TRAVIS_OS_NAME" = "linux" ]; then sudo apt-get -qq update; fi
|
||||
- if [ "$TRAVIS_OS_NAME" = "linux" ]; then sudo apt-get -qq install cmake libclang-common-3.5-dev libxi-dev qtbase5-dev libqt5x11extras5-dev qttools5-dev qttools5-dev-tools libgcrypt20-dev zlib1g-dev libxtst-dev xvfb libyubikey-dev libykpers-1-dev; fi
|
||||
- if [ "$TRAVIS_OS_NAME" = "osx" ]; then brew update; fi
|
||||
- if [ "$TRAVIS_OS_NAME" = "osx" ]; then brew ls | grep -wq cmake || brew install cmake; fi
|
||||
- if [ "$TRAVIS_OS_NAME" = "osx" ]; then brew ls | grep -wq qt5 || brew install qt5; fi
|
||||
- if [ "$TRAVIS_OS_NAME" = "osx" ]; then brew ls | grep -wq libgcrypt || brew install libgcrypt; fi
|
||||
|
||||
before_script:
|
||||
- if [ "$TRAVIS_OS_NAME" = "osx" ]; then CMAKE_ARGS="-DCMAKE_PREFIX_PATH=/usr/local/opt/qt5"; fi
|
||||
- mkdir build && pushd build
|
||||
|
||||
script:
|
||||
- cmake -DCMAKE_BUILD_TYPE=${CONFIG} -DWITH_GUI_TESTS=ON -DWITH_ASAN=ON -DWITH_XC_HTTP=ON -DWITH_XC_AUTOTYPE=ON -DWITH_XC_YUBIKEY=ON $CMAKE_ARGS ..
|
||||
- make -j2
|
||||
- if [ "$TRAVIS_OS_NAME" = "linux" ]; then make test ARGS+="-E testgui --output-on-failure"; fi
|
||||
- if [ "$TRAVIS_OS_NAME" = "linux" ]; then xvfb-run -a --server-args="-screen 0 800x600x24" make test ARGS+="-R testgui --output-on-failure"; fi
|
||||
- if [ "$TRAVIS_OS_NAME" = "osx" ]; then make test ARGS+="--output-on-failure"; fi
|
||||
|
||||
# Generate snapcraft build when merging into master/develop branches
|
||||
#after_success:
|
||||
# - popd
|
||||
# - "[[ $DEPLOY = 1 ]] && [[ $CONFIG = Release ]] && [[ $TRAVIS_BRANCH =~ (master|develop) ]] && [[ $TRAVIS_PULL_REQUEST = false ]] \
|
||||
# && docker run -v $(pwd):/cwd snapcore/snapcraft sh -c 'cd /cwd && apt update && snapcraft'"
|
||||
19
.tx/config
@@ -1,8 +1,17 @@
|
||||
[main]
|
||||
host = https://www.transifex.com
|
||||
host = https://app.transifex.com
|
||||
|
||||
[keepassxc.keepassx_ents]
|
||||
source_file = share/translations/keepassx_en.ts
|
||||
file_filter = share/translations/keepassx_<lang>.ts
|
||||
source_lang = en
|
||||
[o:keepassxc:p:keepassxc:r:share-translations-keepassxc-en-ts--develop]
|
||||
file_filter = share/translations/keepassxc_<lang>.ts
|
||||
source_file = share/translations/keepassxc_en.ts
|
||||
type = QT
|
||||
minimum_perc = 0
|
||||
resource_name = keepassxc_en.ts (develop)
|
||||
|
||||
[o:keepassxc:p:keepassxc:r:share-translations-keepassxc-en-ts--master]
|
||||
file_filter = share/translations/keepassxc_<lang>.ts
|
||||
source_file = share/translations/keepassxc_en.ts
|
||||
type = QT
|
||||
minimum_perc = 0
|
||||
resource_name = keepassxc_en.ts (2.7.x stable)
|
||||
|
||||
|
||||
@@ -1,102 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
#
|
||||
# KeePassXC AppImage Recipe
|
||||
# Copyright (C) 2017 KeePassXC team <https://keepassxc.org/>
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 2 or (at your option)
|
||||
# version 3 of the License.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
if [ "$1" == "" ] || [ "$2" == "" ]; then
|
||||
echo "Usage: $(basename $0) APP_NAME RELEASE_VERSION" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ -f CHANGELOG ]; then
|
||||
echo "This recipe must not be run from the sources root." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ ! -d ../bin-release ]; then
|
||||
echo "../bin-release does not exist." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
APP="$1"
|
||||
LOWERAPP="$(echo "$APP" | tr '[:upper:]' '[:lower:]')"
|
||||
VERSION="$2"
|
||||
export ARCH=x86_64
|
||||
|
||||
mkdir -p $APP.AppDir
|
||||
wget -q https://github.com/probonopd/AppImages/raw/master/functions.sh -O ./functions.sh
|
||||
. ./functions.sh
|
||||
|
||||
LIB_DIR=./usr/lib
|
||||
if [ -d ./usr/lib/x86_64-linux-gnu ]; then
|
||||
LIB_DIR=./usr/lib/x86_64-linux-gnu
|
||||
elif [ -d ./usr/lib64 ]; then
|
||||
LIB_DIR=./usr/lib64
|
||||
fi
|
||||
|
||||
cd $APP.AppDir
|
||||
cp -a ../../bin-release/* .
|
||||
cp -a ./usr/local/* ./usr
|
||||
rm -R ./usr/local
|
||||
rmdir ./opt 2> /dev/null
|
||||
|
||||
# bundle Qt platform plugins and themes
|
||||
QXCB_PLUGIN="$(find /usr/lib* -name 'libqxcb.so' 2> /dev/null)"
|
||||
if [ "$QXCB_PLUGIN" == "" ]; then
|
||||
QXCB_PLUGIN="$(find /opt/qt*/plugins -name 'libqxcb.so' 2> /dev/null)"
|
||||
fi
|
||||
QT_PLUGIN_PATH="$(dirname $(dirname $QXCB_PLUGIN))"
|
||||
mkdir -p ".${QT_PLUGIN_PATH}/platforms"
|
||||
cp "$QXCB_PLUGIN" ".${QT_PLUGIN_PATH}/platforms/"
|
||||
|
||||
get_apprun
|
||||
copy_deps
|
||||
delete_blacklisted
|
||||
|
||||
# remove dbus and systemd libs as they are not blacklisted
|
||||
find . -name libdbus-1.so.3 -exec rm {} \;
|
||||
find . -name libsystemd.so.0 -exec rm {} \;
|
||||
|
||||
get_desktop
|
||||
get_icon
|
||||
cat << EOF > ./usr/bin/keepassxc_env
|
||||
#!/usr/bin/env bash
|
||||
export LD_LIBRARY_PATH="..$(dirname ${QT_PLUGIN_PATH})/lib:\${LD_LIBRARY_PATH}"
|
||||
export QT_PLUGIN_PATH="..${QT_PLUGIN_PATH}:\${KPXC_QT_PLUGIN_PATH}"
|
||||
|
||||
# unset XDG_DATA_DIRS to make tray icon work in Ubuntu Unity
|
||||
# see https://github.com/AppImage/AppImageKit/issues/351
|
||||
unset XDG_DATA_DIRS
|
||||
|
||||
if [ "\${1}" == "cli" ]; then
|
||||
shift
|
||||
exec keepassxc-cli "\$@"
|
||||
else
|
||||
exec keepassxc "\$@"
|
||||
fi
|
||||
EOF
|
||||
chmod +x ./usr/bin/keepassxc_env
|
||||
sed -i 's/Exec=keepassxc/Exec=keepassxc_env/' org.keepassxc.desktop
|
||||
get_desktopintegration $LOWERAPP
|
||||
|
||||
GLIBC_NEEDED=$(glibc_needed)
|
||||
|
||||
cd ..
|
||||
|
||||
generate_type2_appimage
|
||||
|
||||
mv ../out/*.AppImage ../KeePassXC-${VERSION}-${ARCH}.AppImage
|
||||
rmdir ../out > /dev/null 2>&1
|
||||
261
CHANGELOG
@@ -1,261 +0,0 @@
|
||||
2.2.2 (2017-10-22)
|
||||
=========================
|
||||
|
||||
- Fixed entries with empty URLs being reported to KeePassHTTP clients [#1031]
|
||||
- Fixed YubiKey detection and enabled CLI tool for AppImage binary [#1100]
|
||||
- Added AppStream description [#1082]
|
||||
- Improved TOTP compatibility and added new Base32 implementation [#1069]
|
||||
- Fixed error handling when processing invalid cipher stream [#1099]
|
||||
- Fixed double warning display when opening a database [#1037]
|
||||
- Fixed unlocking databases with --pw-stdin [#1087]
|
||||
- Added ability to override QT_PLUGIN_PATH environment variable for AppImages [#1079]
|
||||
- Fixed transform seed not being regenerated when saving the database [#1068]
|
||||
- Fixed only one YubiKey slot being polled [#1048]
|
||||
- Corrected an issue with entry icons while merging [#1008]
|
||||
- Corrected desktop and tray icons in Snap package [#1030]
|
||||
- Fixed screen lock and Google fallback settings [#1029]
|
||||
|
||||
2.2.1 (2017-10-01)
|
||||
=========================
|
||||
|
||||
- Corrected multiple snap issues [#934, #1011]
|
||||
- Corrected multiple custom icon issues [#708, #719, #994]
|
||||
- Corrected multiple Yubikey issues [#880]
|
||||
- Fixed single instance preventing load on occasion [#997]
|
||||
- Keep entry history when merging databases [#970]
|
||||
- Prevent data loss if passwords were mismatched [#1007]
|
||||
- Fixed crash after merge [#941]
|
||||
- Added configurable auto-type default delay [#703]
|
||||
- Unlock database dialog window comes to front [#663]
|
||||
- Translation and compiling fixes
|
||||
|
||||
2.2.0 (2017-06-23)
|
||||
=========================
|
||||
|
||||
- Added YubiKey 2FA integration for unlocking databases [#127]
|
||||
- Added TOTP support [#519]
|
||||
- Added CSV import tool [#146, #490]
|
||||
- Added KeePassXC CLI tool [#254]
|
||||
- Added diceware password generator [#373]
|
||||
- Added support for entry references [#370, #378]
|
||||
- Added support for Twofish encryption [#167]
|
||||
- Enabled DEP and ASLR for in-memory protection [#371]
|
||||
- Enabled single instance mode [#510]
|
||||
- Enabled portable mode [#645]
|
||||
- Enabled database lock on screensaver and session lock [#545]
|
||||
- Redesigned welcome screen with common features and recent databases [#292]
|
||||
- Multiple updates to search behavior [#168, #213, #374, #471, #603, #654]
|
||||
- Added auto-type fields {CLEARFIELD}, {SPACE}, {{}, {}} [#267, #427, #480]
|
||||
- Fixed auto-type errors on Linux [#550]
|
||||
- Prompt user prior to executing a cmd:// URL [#235]
|
||||
- Entry attributes can be protected (hidden) [#220]
|
||||
- Added extended ascii to password generator [#538]
|
||||
- Added new database icon to toolbar [#289]
|
||||
- Added context menu entry to empty recycle bin in databases [#520]
|
||||
- Added "apply" button to entry and group edit windows [#624]
|
||||
- Added macOS tray icon and enabled minimize on close [#583]
|
||||
- Fixed issues with unclean shutdowns [#170, #580]
|
||||
- Changed keyboard shortcut to create new database to CTRL+SHIFT+N [#515]
|
||||
- Compare window title to entry URLs [#556]
|
||||
- Implemented inline error messages [#162]
|
||||
- Ignore group expansion and other minor changes when making database "dirty" [#464]
|
||||
- Updated license and copyright information on souce files [#632]
|
||||
- Added contributors list to about dialog [#629]
|
||||
|
||||
2.1.4 (2017-04-09)
|
||||
=========================
|
||||
|
||||
- Bumped KeePassHTTP version to 1.8.4.2
|
||||
- KeePassHTTP confirmation window comes to foreground [#466]
|
||||
|
||||
2.1.3 (2017-03-03)
|
||||
=========================
|
||||
|
||||
- Fix possible overflow in zxcvbn library [#363]
|
||||
- Revert HiDPI setting to avoid problems on laptop screens [#332]
|
||||
- Set file meta properties in Windows executable [#330]
|
||||
- Suppress error message when auto-reloading a locked database [#345]
|
||||
- Improve usability of question dialog when database is already locked by a different instance [#346]
|
||||
- Fix compiler warnings in QHttp library [#351]
|
||||
- Use unified toolbar on Mac OS X [#361]
|
||||
- Fix an issue on X11 where the main window would be raised instead of closed on Alt+F4 [#362]
|
||||
|
||||
2.1.2 (2017-02-17)
|
||||
=========================
|
||||
|
||||
- Ask for save location when creating a new database [#302]
|
||||
- Remove Libmicrohttpd dependency to clean up the code and ensure better OS X compatibility [#317, #265]
|
||||
- Prevent Qt from degrading Wifi network performance on certain platforms [#318]
|
||||
- Visually refine user interface on OS X and other platforms [#299]
|
||||
- Remove unusable tray icon setting on OS X [#293]
|
||||
- Fix compositing glitches on Ubuntu and prevent flashing when minimizing to the tray at startup [#307]
|
||||
- Fix AppImage tray icon on Ubuntu [#277, #273]
|
||||
- Fix global menu disappearing after restoring KeePassXC from the tray on Ubuntu [#276]
|
||||
- Fix result order in entry search [#320]
|
||||
- Enable HiDPI scaling on supported platforms [#315]
|
||||
- Remove empty directories from installation target [#282]
|
||||
|
||||
2.1.1 (2017-02-06)
|
||||
=========================
|
||||
|
||||
- Enabled HTTP plugin build; plugin is disabled by default and limited to localhost [#147]
|
||||
- Escape HTML in dialog boxes [#247]
|
||||
- Corrected crashes in favicon download and password generator [#233, #226]
|
||||
- Increase font size of password meter [#228]
|
||||
- Fixed compatibility with Qt 5.8 [#211]
|
||||
- Use consistent button heights in password generator [#229]
|
||||
|
||||
2.1.0 (2017-01-22)
|
||||
=========================
|
||||
|
||||
- Show unlock dialog when using autotype on a closed database [#10, #89]
|
||||
- Show different tray icon when database is locked [#37, #46]
|
||||
- Support autotype on Windows and OS X [#42, #60, #63]
|
||||
- Add delay feature to autotype [#76, #77]
|
||||
- Add password strength meter [#84, #92]
|
||||
- Add option for automatically locking the database when minimizing
|
||||
the window [#57]
|
||||
- Add feature to download favicons and use them as entry icons [#30]
|
||||
- Automatically reload and merge database when the file changed on
|
||||
disk [#22, #33, #93]
|
||||
- Add tool for merging two databases [#22, #47, #143]
|
||||
- Add --pw-stdin commandline option to unlock the database by providing
|
||||
a password on STDIN [#54]
|
||||
- Add utility script for reading the database password from KWallet [#55]
|
||||
- Fix some KeePassHTTP settings not being remembered [#34, #65]
|
||||
- Make search box persistent [#15, #67, #157]
|
||||
- Enhance search feature by scoping the search to selected group [#16, #118]
|
||||
- Improve interaction between search field and entry list [#131, #141]
|
||||
- Add stand-alone password-generator [#18, #92]
|
||||
- Don't require password repetition when password is visible [#27, #92]
|
||||
- Add support for entry attributes in autotype sequences [#107]
|
||||
- Always focus password field when opening the database unlock widget [#116, #117]
|
||||
- Fix compilation errors on various platforms [#53, #126, #130]
|
||||
- Restructure and improve kdbx-extract utility [#160]
|
||||
|
||||
2.0.3 (2016-09-04)
|
||||
=========================
|
||||
|
||||
- Improved error reporting when reading / writing databases fails. [#450, #462]
|
||||
- Display an error message when opening a custom icon fails.
|
||||
- Detect custom icon format based on contents instead of the filename. [#512]
|
||||
- Keep symlink intact when saving databases. [#442].
|
||||
- Fix a crash when deleting parent group of recycle bin. [#520]
|
||||
- Display a confirm dialog before moving an entry to the recycle bin. [#447]
|
||||
- Repair UUIDs of inconsistent history items. [#130]
|
||||
- Only include top-level windows in auto-type window list when using gnome-shell.
|
||||
- Update translations.
|
||||
|
||||
2.0.2 (2016-02-02)
|
||||
=========================
|
||||
|
||||
- Fix regression in database writer that caused it to strip certain special
|
||||
characters (characters from Unicode plane > 0).
|
||||
- Fix bug in repair function that caused it to strip non-ASCII characters.
|
||||
|
||||
2.0.1 (2016-01-31)
|
||||
=========================
|
||||
|
||||
- Flush temporary file before opening attachment. [#390]
|
||||
- Disable password generator when showing entry in history mode. [#422]
|
||||
- Strip invalid XML chars when writing databases. [#392]
|
||||
- Add repair function to fix databases with invalid XML chars. [#392]
|
||||
- Display custom icons scaled. [#322]
|
||||
- Allow opening databases that have no password and keyfile. [#391]
|
||||
- Fix crash when importing .kdb files with invalid icon ids. [#425]
|
||||
- Update translations.
|
||||
|
||||
2.0 (2015-12-06)
|
||||
=========================
|
||||
|
||||
- Improve UI of the search edit.
|
||||
- Clear clipboard when locking databases. [#342]
|
||||
- Enable Ctrl+M shortcut to minimize the window on all platforms. [#329]
|
||||
- Show a better message when trying to open an old database format. [#338]
|
||||
- Fix global auto-type behavior with some window managers.
|
||||
- Show global auto-type window on the active desktop. [#359]
|
||||
- Disable systray on OS X. [#326]
|
||||
- Restore main window when clicking on the OS X docker icon. [#326]
|
||||
|
||||
2.0 Beta 2 (2015-09-06)
|
||||
=========================
|
||||
|
||||
- Fix crash when locking with search UI open [#309]
|
||||
- Fix file locking on Mac OS X [#327]
|
||||
- Set default extension when saving a database [#79, #308]
|
||||
|
||||
2.0 Beta 1 (2015-07-18)
|
||||
=========================
|
||||
|
||||
- Remember entry column sizes [#159]
|
||||
- Add translations
|
||||
- Support opening attachments directly
|
||||
- Support cmd:// URLs [#244]
|
||||
- Protect opened databases with a file lock [#18]
|
||||
- Export to csv files [#57]
|
||||
- Add optional tray icon [#153]
|
||||
- Allow setting the default auto-type sequence for groups [#175]
|
||||
- Make the kdbx parser more lenient
|
||||
- Remove --password command line option [#285]
|
||||
|
||||
2.0 Alpha 6 (2014-04-12)
|
||||
=========================
|
||||
|
||||
- Add option to lock databases after user inactivity [#62]
|
||||
- Add compatibility with libgcrypt 1.6 [#129]
|
||||
- Display passwords in monospace font [#51]
|
||||
- Use an icon for the button that shows/masks passwords [#38]
|
||||
- Add an option to show passwords by default [#93]
|
||||
- Improve password generator design [#122]
|
||||
- On Linux link .kdbx files with KeePassX
|
||||
- Remember window size [#154]
|
||||
- Disallow global auto-typing when the database is locked
|
||||
|
||||
2.0 Alpha 5 (2013-12-20)
|
||||
=========================
|
||||
|
||||
- Support copying entries and groups using drag'n'drop [#74]
|
||||
- Open last used databases on startup [#36]
|
||||
- Made the kdbx file parser more robust
|
||||
- Only edit entries on doubleclick (not single) or with enter key
|
||||
- Allow removing multiple entries
|
||||
- Added option to minimize window when copying data to clipboard
|
||||
- Save password generator settings
|
||||
- Fixed auto-type producing wrong chars in some keyboard configurations [#116]
|
||||
- Added some more actions to the toolbar
|
||||
|
||||
2.0 Alpha 4 (2013-03-29)
|
||||
=========================
|
||||
|
||||
- Add random password generator [#52]
|
||||
- Merge the 'Description' tab into the 'Entry' tab [#59]
|
||||
- Fix crash when deleting history items [#56]
|
||||
- Fix crash on Mac OS X Mountain Lion during startup [#50]
|
||||
- Improved KeePassX application icon [#58]
|
||||
|
||||
2.0 Alpha 3 (2012-10-27)
|
||||
=========================
|
||||
|
||||
- Auto-Type on Linux / X11
|
||||
- Database locking
|
||||
- Fix database corruption when changing key transformation rounds [#34]
|
||||
- Verify header data of kdbx files
|
||||
- Add menu entry to open URLs in the browser
|
||||
- Add menu entry to copy an entry attribute to clipboard
|
||||
|
||||
2.0 Alpha 2 (2012-07-02)
|
||||
=========================
|
||||
|
||||
- Import kdb (KeePass 1) files [#2]
|
||||
- Display history items [#23]
|
||||
- Implement history item limits [#16]
|
||||
- Group and entry icons can be set [#22]
|
||||
- Add keyboard shortcuts
|
||||
- Search in databases [#24]
|
||||
- Sortable entry view
|
||||
- Support building Mac OS X bundles
|
||||
|
||||
2.0 Alpha 1 (2012-05-07)
|
||||
=========================
|
||||
|
||||
- First release.
|
||||
1243
CHANGELOG.md
Normal file
550
CMakeLists.txt
@@ -1,5 +1,5 @@
|
||||
# Copyright (C) 2018 KeePassXC Team <team@keepassxc.org>
|
||||
# Copyright (C) 2010 Felix Geyer <debfx@fobos.de>
|
||||
# Copyright (C) 2017 KeePassXC Team <team@keepassxc.org>
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
@@ -14,20 +14,27 @@
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
if(NOT CMAKE_BUILD_TYPE)
|
||||
set(CMAKE_BUILD_TYPE "RelWithDebInfo" CACHE STRING
|
||||
"Choose the type of build, options are: None Debug Release RelWithDebInfo Debug DebugFull Profile MinSizeRel."
|
||||
FORCE)
|
||||
endif()
|
||||
cmake_minimum_required(VERSION 3.10.0)
|
||||
|
||||
project(KeePassXC)
|
||||
set(APP_ID "org.keepassxc.${PROJECT_NAME}")
|
||||
|
||||
cmake_minimum_required(VERSION 3.1.0)
|
||||
if(NOT CMAKE_BUILD_TYPE)
|
||||
set(CMAKE_BUILD_TYPE "RelWithDebInfo" CACHE STRING
|
||||
"Choose the type of build, options are: Debug Release RelWithDebInfo Profile"
|
||||
FORCE)
|
||||
endif()
|
||||
string(TOLOWER "${CMAKE_BUILD_TYPE}" CMAKE_BUILD_TYPE_LOWER)
|
||||
if(CMAKE_BUILD_TYPE_LOWER STREQUAL "debug" OR CMAKE_BUILD_TYPE_LOWER STREQUAL "relwithdebinfo")
|
||||
set(IS_DEBUG_BUILD TRUE)
|
||||
endif()
|
||||
|
||||
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
|
||||
|
||||
# Support Visual Studio Code
|
||||
include(CMakeToolsHelpers OPTIONAL)
|
||||
include(FeatureSummary)
|
||||
include(KPXCMacDeployHelpers)
|
||||
|
||||
include(CheckCCompilerFlag)
|
||||
include(CheckCXXCompilerFlag)
|
||||
@@ -36,39 +43,195 @@ include(CheckCXXSourceCompiles)
|
||||
option(WITH_TESTS "Enable building of unit tests" ON)
|
||||
option(WITH_GUI_TESTS "Enable building of GUI tests" OFF)
|
||||
option(WITH_DEV_BUILD "Use only for development. Disables/warns about deprecated methods." OFF)
|
||||
option(WITH_ASAN "Enable address sanitizer checks (Linux only)" OFF)
|
||||
option(WITH_ASAN "Enable address sanitizer checks (Linux / macOS only)" OFF)
|
||||
option(WITH_COVERAGE "Use to build with coverage tests (GCC only)." OFF)
|
||||
option(WITH_APP_BUNDLE "Enable Application Bundle for OS X" ON)
|
||||
option(WITH_APP_BUNDLE "Enable Application Bundle for macOS" ON)
|
||||
option(WITH_CCACHE "Use ccache for build" OFF)
|
||||
|
||||
set(WITH_XC_ALL OFF CACHE BOOL "Build in all available plugins")
|
||||
|
||||
option(WITH_XC_AUTOTYPE "Include Auto-Type." ON)
|
||||
option(WITH_XC_HTTP "Include KeePassHTTP and Custom Icon Downloads." OFF)
|
||||
option(WITH_XC_NETWORKING "Include networking code (e.g. for downloading website icons)." OFF)
|
||||
option(WITH_XC_BROWSER "Include browser integration with keepassxc-browser." OFF)
|
||||
option(WITH_XC_BROWSER_PASSKEYS "Passkeys support for browser integration." OFF)
|
||||
option(WITH_XC_YUBIKEY "Include YubiKey support." OFF)
|
||||
option(WITH_XC_SSHAGENT "Include SSH agent support." OFF)
|
||||
option(WITH_XC_KEESHARE "Sharing integration with KeeShare" OFF)
|
||||
option(WITH_XC_UPDATECHECK "Include automatic update checks; disable for controlled distributions" ON)
|
||||
if(UNIX AND NOT APPLE)
|
||||
option(WITH_XC_FDOSECRETS "Implement freedesktop.org Secret Storage Spec server side API." OFF)
|
||||
endif()
|
||||
option(WITH_XC_DOCS "Enable building of documentation" ON)
|
||||
|
||||
# Process ui files automatically from source files
|
||||
set(CMAKE_AUTOUIC ON)
|
||||
set(WITH_XC_X11 ON CACHE BOOL "Enable building with X11 deps")
|
||||
|
||||
if(APPLE)
|
||||
# Perform the platform checks before applying the stricter compiler flags.
|
||||
# Otherwise the kSecAccessControlTouchIDCurrentSet deprecation warning will result in an error.
|
||||
try_compile(XC_APPLE_COMPILER_SUPPORT_BIOMETRY
|
||||
${CMAKE_CURRENT_BINARY_DIR}/tiometry_test/
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/cmake/compiler-checks/macos/control_biometry_support.mm)
|
||||
message(STATUS "Biometry compiler support: ${XC_APPLE_COMPILER_SUPPORT_BIOMETRY}")
|
||||
|
||||
try_compile(XC_APPLE_COMPILER_SUPPORT_TOUCH_ID
|
||||
${CMAKE_CURRENT_BINARY_DIR}/touch_id_test/
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/cmake/compiler-checks/macos/control_touch_id_support.mm)
|
||||
message(STATUS "Touch ID compiler support: ${XC_APPLE_COMPILER_SUPPORT_TOUCH_ID}")
|
||||
|
||||
try_compile(XC_APPLE_COMPILER_SUPPORT_WATCH
|
||||
${CMAKE_CURRENT_BINARY_DIR}/tiometry_test/
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/cmake/compiler-checks/macos/control_watch_support.mm)
|
||||
message(STATUS "Apple watch compiler support: ${XC_APPLE_COMPILER_SUPPORT_WATCH}")
|
||||
endif()
|
||||
|
||||
if(WITH_CCACHE)
|
||||
# Use the Compiler Cache (ccache) program
|
||||
# (install with: sudo apt get ccache)
|
||||
find_program(CCACHE_FOUND ccache)
|
||||
if(NOT CCACHE_FOUND)
|
||||
message(FATAL_ERROR "ccache requested but cannot be found.")
|
||||
endif()
|
||||
set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ${CCACHE_FOUND})
|
||||
endif()
|
||||
|
||||
if(WITH_XC_ALL)
|
||||
# Enable all options (except update check and docs)
|
||||
set(WITH_XC_AUTOTYPE ON)
|
||||
set(WITH_XC_NETWORKING ON)
|
||||
set(WITH_XC_BROWSER ON)
|
||||
set(WITH_XC_BROWSER_PASSKEYS ON)
|
||||
set(WITH_XC_YUBIKEY ON)
|
||||
set(WITH_XC_SSHAGENT ON)
|
||||
set(WITH_XC_KEESHARE ON)
|
||||
if(UNIX AND NOT APPLE)
|
||||
set(WITH_XC_FDOSECRETS ON)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# Prefer WITH_XC_NETWORKING setting over WITH_XC_UPDATECHECK
|
||||
if(NOT WITH_XC_NETWORKING AND WITH_XC_UPDATECHECK)
|
||||
message(STATUS "Disabling WITH_XC_UPDATECHECK because WITH_XC_NETWORKING is disabled")
|
||||
set(WITH_XC_UPDATECHECK OFF)
|
||||
endif()
|
||||
|
||||
if(UNIX AND NOT APPLE AND NOT WITH_XC_X11)
|
||||
message(STATUS "Disabling WITH_XC_AUTOTYPE because WITH_XC_X11 is disabled")
|
||||
set(WITH_XC_AUTOTYPE OFF)
|
||||
endif()
|
||||
|
||||
set(KEEPASSXC_VERSION_MAJOR "2")
|
||||
set(KEEPASSXC_VERSION_MINOR "2")
|
||||
set(KEEPASSXC_VERSION_PATCH "2")
|
||||
set(KEEPASSXC_VERSION_MINOR "7")
|
||||
set(KEEPASSXC_VERSION_PATCH "9")
|
||||
set(KEEPASSXC_VERSION "${KEEPASSXC_VERSION_MAJOR}.${KEEPASSXC_VERSION_MINOR}.${KEEPASSXC_VERSION_PATCH}")
|
||||
set(OVERRIDE_VERSION "" CACHE STRING "Override the KeePassXC Version for Snapshot builds")
|
||||
|
||||
set(KEEPASSXC_BUILD_TYPE "Snapshot" CACHE STRING "Set KeePassXC build type to distinguish between stable releases and snapshots")
|
||||
set_property(CACHE KEEPASSXC_BUILD_TYPE PROPERTY STRINGS Snapshot Release PreRelease)
|
||||
|
||||
# Retrieve git HEAD revision hash
|
||||
set(GIT_HEAD_OVERRIDE "" CACHE STRING "Manually set the Git HEAD hash when missing (eg, when no .git folder exists)")
|
||||
execute_process(COMMAND git rev-parse --short=7 HEAD
|
||||
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
||||
OUTPUT_VARIABLE GIT_HEAD
|
||||
ERROR_QUIET)
|
||||
string(STRIP "${GIT_HEAD}" GIT_HEAD)
|
||||
if(GIT_HEAD STREQUAL "" AND NOT GIT_HEAD_OVERRIDE STREQUAL "")
|
||||
string(SUBSTRING "${GIT_HEAD_OVERRIDE}" 0 7 GIT_HEAD)
|
||||
elseif(EXISTS ${CMAKE_SOURCE_DIR}/.gitrev)
|
||||
file(READ ${CMAKE_SOURCE_DIR}/.gitrev GIT_HEAD)
|
||||
endif()
|
||||
message(STATUS "Found Git HEAD Revision: ${GIT_HEAD}\n")
|
||||
|
||||
# Check if on a tag, if so build as a release
|
||||
execute_process(COMMAND git tag --points-at HEAD
|
||||
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
||||
OUTPUT_VARIABLE GIT_TAG
|
||||
ERROR_QUIET)
|
||||
string(REGEX REPLACE "latest" "" GIT_TAG "${GIT_TAG}")
|
||||
if(GIT_TAG MATCHES "[0-9]+\.[0-9]+\.[0-9]+")
|
||||
string(STRIP "${GIT_TAG}" GIT_TAG)
|
||||
set(OVERRIDE_VERSION ${GIT_TAG})
|
||||
elseif(EXISTS ${CMAKE_SOURCE_DIR}/.version)
|
||||
file(READ ${CMAKE_SOURCE_DIR}/.version OVERRIDE_VERSION)
|
||||
endif()
|
||||
|
||||
string(REGEX REPLACE "(\r?\n)+" "" OVERRIDE_VERSION "${OVERRIDE_VERSION}")
|
||||
if(OVERRIDE_VERSION)
|
||||
if(OVERRIDE_VERSION MATCHES "^[\\.0-9]+-beta[0-9]*")
|
||||
set(KEEPASSXC_BUILD_TYPE "PreRelease")
|
||||
set(KEEPASSXC_VERSION ${OVERRIDE_VERSION})
|
||||
elseif(OVERRIDE_VERSION MATCHES "^[\\.0-9]+$")
|
||||
set(KEEPASSXC_BUILD_TYPE "Release")
|
||||
set(KEEPASSXC_VERSION ${OVERRIDE_VERSION})
|
||||
else()
|
||||
set(KEEPASSXC_BUILD_TYPE "Snapshot")
|
||||
set(KEEPASSXC_VERSION ${OVERRIDE_VERSION})
|
||||
endif()
|
||||
else()
|
||||
if(KEEPASSXC_BUILD_TYPE STREQUAL "PreRelease")
|
||||
set(KEEPASSXC_VERSION "${KEEPASSXC_VERSION}-preview")
|
||||
elseif(KEEPASSXC_BUILD_TYPE STREQUAL "Snapshot")
|
||||
set(KEEPASSXC_VERSION "${KEEPASSXC_VERSION}-snapshot")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(KEEPASSXC_BUILD_TYPE STREQUAL "Release")
|
||||
set(KEEPASSXC_BUILD_TYPE_RELEASE ON)
|
||||
elseif(KEEPASSXC_BUILD_TYPE STREQUAL "PreRelease")
|
||||
set(KEEPASSXC_BUILD_TYPE_PRE_RELEASE ON)
|
||||
else()
|
||||
set(KEEPASSXC_BUILD_TYPE_SNAPSHOT ON)
|
||||
endif()
|
||||
|
||||
message(STATUS "Setting up build for KeePassXC v${KEEPASSXC_VERSION}\n")
|
||||
|
||||
# Distribution info
|
||||
set(KEEPASSXC_DIST True)
|
||||
set(KEEPASSXC_DIST_TYPE "Other" CACHE STRING "KeePassXC Distribution type")
|
||||
set_property(CACHE KEEPASSXC_DIST_TYPE PROPERTY STRINGS Snap AppImage Other)
|
||||
set(KEEPASSXC_DIST ON)
|
||||
set(KEEPASSXC_DIST_TYPE "Other" CACHE STRING "KeePassXC Distribution Type")
|
||||
set_property(CACHE KEEPASSXC_DIST_TYPE PROPERTY STRINGS Snap AppImage Flatpak Other)
|
||||
if(KEEPASSXC_DIST_TYPE STREQUAL "Snap")
|
||||
set(KEEPASSXC_DIST_SNAP True)
|
||||
set(KEEPASSXC_DIST_SNAP ON)
|
||||
elseif(KEEPASSXC_DIST_TYPE STREQUAL "AppImage")
|
||||
set(KEEPASSXC_DIST_APPIMAGE True)
|
||||
set(KEEPASSXC_DIST_APPIMAGE ON)
|
||||
elseif(KEEPASSXC_DIST_TYPE STREQUAL "Flatpak")
|
||||
set(KEEPASSXC_DIST_FLATPAK ON)
|
||||
elseif(KEEPASSXC_DIST_TYPE STREQUAL "Other")
|
||||
unset(KEEPASSXC_DIST)
|
||||
endif()
|
||||
|
||||
if("${CMAKE_C_COMPILER}" MATCHES "clang$" OR "${CMAKE_C_COMPILER_ID}" STREQUAL "Clang")
|
||||
if(${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.14.0")
|
||||
cmake_policy(SET CMP0083 NEW)
|
||||
include(CheckPIESupported)
|
||||
check_pie_supported()
|
||||
endif()
|
||||
|
||||
# Find Botan early since the version affects subsequent compiler options
|
||||
find_package(Botan REQUIRED)
|
||||
if(BOTAN_VERSION VERSION_GREATER_EQUAL "3.0.0")
|
||||
set(WITH_XC_BOTAN3 TRUE)
|
||||
elseif(BOTAN_VERSION VERSION_LESS "2.11.0")
|
||||
# Check for minimum Botan version
|
||||
message(FATAL_ERROR "Botan 2.11.0 or higher is required")
|
||||
endif()
|
||||
include_directories(SYSTEM ${BOTAN_INCLUDE_DIR})
|
||||
|
||||
# Create position independent code for shared libraries and executables
|
||||
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
||||
|
||||
if("${CMAKE_SIZEOF_VOID_P}" EQUAL "4")
|
||||
set(IS_32BIT TRUE)
|
||||
endif()
|
||||
|
||||
set(CLANG_COMPILER_ID_REGEX "^(Apple)?[Cc]lang$")
|
||||
if("${CMAKE_C_COMPILER}" MATCHES "clang$"
|
||||
OR "${CMAKE_EXTRA_GENERATOR_C_SYSTEM_DEFINED_MACROS}" MATCHES "__clang__"
|
||||
OR "${CMAKE_C_COMPILER_ID}" MATCHES ${CLANG_COMPILER_ID_REGEX})
|
||||
set(CMAKE_COMPILER_IS_CLANG 1)
|
||||
endif()
|
||||
|
||||
if("${CMAKE_CXX_COMPILER}" MATCHES "clang(\\+\\+)?$" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
||||
if("${CMAKE_CXX_COMPILER}" MATCHES "clang(\\+\\+)?$"
|
||||
OR "${CMAKE_EXTRA_GENERATOR_CXX_SYSTEM_DEFINED_MACROS}" MATCHES "__clang__"
|
||||
OR "${CMAKE_CXX_COMPILER_ID}" MATCHES ${CLANG_COMPILER_ID_REGEX})
|
||||
set(CMAKE_COMPILER_IS_CLANGXX 1)
|
||||
endif()
|
||||
|
||||
@@ -89,123 +252,206 @@ macro(add_gcc_compiler_flags FLAGS)
|
||||
add_gcc_compiler_cflags("${FLAGS}")
|
||||
endmacro(add_gcc_compiler_flags)
|
||||
|
||||
# Copies of above macros that first ensure the compiler understands a given flag
|
||||
# Because check_*_compiler_flag() sets -D with name, need to provide "safe" FLAGNAME
|
||||
macro(check_add_gcc_compiler_cxxflag FLAG FLAGNAME)
|
||||
check_cxx_compiler_flag("${FLAG}" CXX_HAS${FLAGNAME})
|
||||
if(CXX_HAS${FLAGNAME})
|
||||
add_gcc_compiler_cxxflags("${FLAG}")
|
||||
endif()
|
||||
endmacro(check_add_gcc_compiler_cxxflag)
|
||||
|
||||
macro(check_add_gcc_compiler_cflag FLAG FLAGNAME)
|
||||
check_c_compiler_flag("${FLAG}" CC_HAS${FLAGNAME})
|
||||
if(CC_HAS${FLAGNAME})
|
||||
add_gcc_compiler_cflags("${FLAG}")
|
||||
endif()
|
||||
endmacro(check_add_gcc_compiler_cflag)
|
||||
|
||||
# This is the "front-end" for the above macros
|
||||
# Optionally takes additional parameter(s) with language to check (currently "C" or "CXX")
|
||||
macro(check_add_gcc_compiler_flag FLAG)
|
||||
string(REGEX REPLACE "[-=]" "_" FLAGNAME "${FLAG}")
|
||||
set(check_lang_spec ${ARGN})
|
||||
list(LENGTH check_lang_spec num_extra_args)
|
||||
set(langs C CXX)
|
||||
if(num_extra_args GREATER 0)
|
||||
set(langs "${check_lang_spec}")
|
||||
endif()
|
||||
if("C" IN_LIST langs)
|
||||
check_add_gcc_compiler_cflag("${FLAG}" "${FLAGNAME}")
|
||||
endif()
|
||||
if("CXX" IN_LIST langs)
|
||||
check_add_gcc_compiler_cxxflag("${FLAG}" "${FLAGNAME}")
|
||||
endif()
|
||||
endmacro(check_add_gcc_compiler_flag)
|
||||
|
||||
add_definitions(-DQT_NO_EXCEPTIONS -DQT_STRICT_ITERATORS -DQT_NO_CAST_TO_ASCII)
|
||||
if(NOT IS_DEBUG_BUILD)
|
||||
add_definitions(-DQT_NO_DEBUG_OUTPUT)
|
||||
endif()
|
||||
|
||||
if(WITH_APP_BUNDLE)
|
||||
add_definitions(-DWITH_APP_BUNDLE)
|
||||
endif()
|
||||
|
||||
add_gcc_compiler_flags("-fno-common")
|
||||
find_package(OpenMP)
|
||||
if(OpenMP_FOUND)
|
||||
add_gcc_compiler_cflags(${OpenMP_C_FLAGS})
|
||||
add_gcc_compiler_cxxflags(${OpenMP_CXX_FLAGS})
|
||||
endif()
|
||||
add_gcc_compiler_flags("-Wall -Wextra -Wundef -Wpointer-arith -Wno-long-long")
|
||||
add_gcc_compiler_flags("-Wformat=2 -Wmissing-format-attribute")
|
||||
add_gcc_compiler_flags("-fvisibility=hidden")
|
||||
add_gcc_compiler_cxxflags("-fvisibility-inlines-hidden")
|
||||
|
||||
if(CMAKE_BUILD_TYPE_LOWER STREQUAL "debug")
|
||||
check_add_gcc_compiler_flag("-Wshadow-compatible-local")
|
||||
check_add_gcc_compiler_flag("-Wshadow-local")
|
||||
add_gcc_compiler_flags("-Werror")
|
||||
# This is needed since compiling aginst Botan3 requires compiling against C++20
|
||||
if(WITH_XC_BOTAN3)
|
||||
add_gcc_compiler_cxxflags("-Wno-error=deprecated-enum-enum-conversion -Wno-error=deprecated")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if (NOT HAIKU)
|
||||
if((CMAKE_COMPILER_IS_GNUCXX AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 4.8.999) OR CMAKE_COMPILER_IS_CLANGXX)
|
||||
add_gcc_compiler_flags("-fstack-protector-strong")
|
||||
else()
|
||||
add_gcc_compiler_flags("-fstack-protector --param=ssp-buffer-size=4")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
add_gcc_compiler_cxxflags("-fno-exceptions -fno-rtti")
|
||||
add_gcc_compiler_cxxflags("-Wnon-virtual-dtor -Wold-style-cast -Woverloaded-virtual")
|
||||
add_gcc_compiler_cflags("-Wchar-subscripts -Wwrite-strings")
|
||||
|
||||
if(WITH_ASAN)
|
||||
if(NOT CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
||||
message(FATAL_ERROR "WITH_ASAN is only supported on Linux at the moment.")
|
||||
if(NOT (CMAKE_SYSTEM_NAME STREQUAL "Linux" OR APPLE))
|
||||
message(FATAL_ERROR "WITH_ASAN is only supported on Linux / macOS at the moment.")
|
||||
endif()
|
||||
|
||||
add_gcc_compiler_flags("-fsanitize=address -DWITH_ASAN")
|
||||
|
||||
if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
||||
if(NOT (CMAKE_COMPILER_IS_GNUCXX AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.9))
|
||||
add_gcc_compiler_flags("-fsanitize=leak -DWITH_LSAN")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
string(TOLOWER "${CMAKE_BUILD_TYPE}" CMAKE_BUILD_TYPE_LOWER)
|
||||
endif()
|
||||
|
||||
if(CMAKE_BUILD_TYPE_LOWER MATCHES "(release|relwithdebinfo|minsizerel)")
|
||||
add_gcc_compiler_flags("-D_FORTIFY_SOURCE=2")
|
||||
add_gcc_compiler_flags("-U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2")
|
||||
endif()
|
||||
|
||||
check_c_compiler_flag("-Werror=format-security -Werror=implicit-function-declaration" WERROR_C_AVAILABLE)
|
||||
check_cxx_compiler_flag("-Werror=format-security" WERROR_CXX_AVAILABLE)
|
||||
if(WERROR_C_AVAILABLE AND WERROR_CXX_AVAILABLE)
|
||||
add_gcc_compiler_flags("-Werror=format-security")
|
||||
add_gcc_compiler_cflags("-Werror=implicit-function-declaration")
|
||||
endif()
|
||||
check_add_gcc_compiler_flag("-Werror=format-security")
|
||||
check_add_gcc_compiler_flag("-Werror=implicit-function-declaration" C)
|
||||
check_add_gcc_compiler_flag("-Wcast-align")
|
||||
|
||||
if(CMAKE_COMPILER_IS_GNUCXX)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wcast-align")
|
||||
|
||||
if(WITH_COVERAGE)
|
||||
# Include code coverage, use with -DCMAKE_BUILD_TYPE=Coverage
|
||||
include(CodeCoverage)
|
||||
setup_target_for_coverage(kp_coverage "make test" coverage)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(CMAKE_COMPILER_IS_GNUCC)
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wcast-align")
|
||||
endif()
|
||||
|
||||
if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
||||
if (CMAKE_COMPILER_IS_CLANGXX)
|
||||
add_gcc_compiler_flags("-Qunused-arguments")
|
||||
endif()
|
||||
add_gcc_compiler_flags("-pie -fPIE")
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--no-add-needed -Wl,--as-needed -Wl,--no-undefined")
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-z,relro,-z,now")
|
||||
set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -Wl,--no-add-needed -Wl,--as-needed")
|
||||
if(UNIX AND NOT APPLE)
|
||||
check_add_gcc_compiler_flag("-Qunused-arguments")
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--as-needed -Wl,--no-undefined")
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-z,relro,-z,now -pie")
|
||||
set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -Wl,--as-needed")
|
||||
set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -Wl,-z,relro,-z,now")
|
||||
endif()
|
||||
|
||||
add_gcc_compiler_cxxflags("-std=c++11")
|
||||
set(CMAKE_C_STANDARD 99)
|
||||
if(WITH_XC_BOTAN3)
|
||||
set(CMAKE_CXX_STANDARD 20)
|
||||
else()
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
endif()
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
|
||||
if(APPLE)
|
||||
check_cxx_compiler_flag("-fsized-deallocation" CXX_HAS_fsized_deallocation)
|
||||
if(CXX_HAS_fsized_deallocation)
|
||||
# Do additional check: the deallocation functions must be there too.
|
||||
set(CMAKE_REQUIRED_FLAGS "-fsized-deallocation")
|
||||
check_cxx_source_compiles("#include <new>
|
||||
int main() { void * ptr = nullptr; std::size_t size = 1; ::operator delete(ptr, size); }"
|
||||
HAVE_DEALLOCATION_FUNCTIONS)
|
||||
if(HAVE_DEALLOCATION_FUNCTIONS)
|
||||
check_add_gcc_compiler_flag("-fsized-deallocation" CXX)
|
||||
endif()
|
||||
unset(CMAKE_REQUIRED_FLAGS)
|
||||
endif()
|
||||
|
||||
if(APPLE AND CMAKE_COMPILER_IS_CLANGXX)
|
||||
add_gcc_compiler_cxxflags("-stdlib=libc++")
|
||||
endif()
|
||||
|
||||
add_gcc_compiler_cflags("-ansi")
|
||||
|
||||
if(WITH_DEV_BUILD)
|
||||
add_definitions(-DQT_DEPRECATED_WARNINGS -DGCRYPT_NO_DEPRECATED)
|
||||
add_definitions(-DQT_DEPRECATED_WARNINGS)
|
||||
else()
|
||||
add_definitions(-DQT_NO_DEPRECATED_WARNINGS)
|
||||
add_gcc_compiler_cxxflags("-Wno-deprecated-declarations")
|
||||
endif()
|
||||
|
||||
if(MINGW)
|
||||
# MSVC specific options
|
||||
if (MSVC)
|
||||
if(MSVC_TOOLSET_VERSION LESS 141)
|
||||
message(FATAL_ERROR "Only Microsoft Visual Studio 17 and newer are supported!")
|
||||
endif()
|
||||
add_compile_options(/permissive- /utf-8 /MP)
|
||||
if(IS_DEBUG_BUILD)
|
||||
add_compile_options(/Zf)
|
||||
if(MSVC_TOOLSET_VERSION GREATER 141)
|
||||
add_compile_definitions(/fsanitize=address)
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(WIN32)
|
||||
set(CMAKE_RC_COMPILER_INIT windres)
|
||||
enable_language(RC)
|
||||
if(MINGW)
|
||||
set(CMAKE_RC_COMPILE_OBJECT "<CMAKE_RC_COMPILER> <FLAGS> -O coff <DEFINES> -i <SOURCE> -o <OBJECT>")
|
||||
if(NOT (CMAKE_BUILD_TYPE STREQUAL "Debug" OR CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo"))
|
||||
# Enable DEP and ASLR
|
||||
endif()
|
||||
if(NOT IS_DEBUG_BUILD)
|
||||
if(MSVC)
|
||||
# By default MSVC enables NXCOMPAT
|
||||
add_compile_options(/guard:cf)
|
||||
add_link_options(/DYNAMICBASE /HIGHENTROPYVA /GUARD:CF)
|
||||
else(MINGW)
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--nxcompat -Wl,--dynamicbase")
|
||||
set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -Wl,--nxcompat -Wl,--dynamicbase")
|
||||
# Enable high entropy ASLR for 64-bit builds
|
||||
if(NOT IS_32BIT)
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--high-entropy-va")
|
||||
set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -Wl,--high-entropy-va")
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(APPLE AND WITH_APP_BUNDLE OR MINGW)
|
||||
if(APPLE AND WITH_APP_BUNDLE OR WIN32)
|
||||
set(PROGNAME KeePassXC)
|
||||
else()
|
||||
set(PROGNAME keepassxc)
|
||||
endif()
|
||||
|
||||
if(APPLE AND WITH_APP_BUNDLE AND "${CMAKE_INSTALL_PREFIX}" STREQUAL "/usr/local")
|
||||
set(CMAKE_INSTALL_PREFIX "/Applications")
|
||||
endif()
|
||||
|
||||
if(MINGW)
|
||||
if(WIN32)
|
||||
set(CLI_INSTALL_DIR ".")
|
||||
set(PROXY_INSTALL_DIR ".")
|
||||
set(BIN_INSTALL_DIR ".")
|
||||
set(PLUGIN_INSTALL_DIR ".")
|
||||
set(DATA_INSTALL_DIR "share")
|
||||
elseif(APPLE AND WITH_APP_BUNDLE)
|
||||
set(CLI_INSTALL_DIR "/usr/local/bin")
|
||||
set(BIN_INSTALL_DIR ".")
|
||||
set(PLUGIN_INSTALL_DIR "${PROGNAME}.app/Contents/PlugIns")
|
||||
set(DATA_INSTALL_DIR "${PROGNAME}.app/Contents/Resources")
|
||||
set(BUNDLE_INSTALL_DIR "${PROGNAME}.app/Contents")
|
||||
set(CMAKE_INSTALL_MANDIR "${BUNDLE_INSTALL_DIR}/Resources/man")
|
||||
set(CLI_INSTALL_DIR "${BUNDLE_INSTALL_DIR}/MacOS")
|
||||
set(PROXY_INSTALL_DIR "${BUNDLE_INSTALL_DIR}/MacOS")
|
||||
set(BIN_INSTALL_DIR "${BUNDLE_INSTALL_DIR}/MacOS")
|
||||
set(PLUGIN_INSTALL_DIR "${BUNDLE_INSTALL_DIR}/PlugIns")
|
||||
set(DATA_INSTALL_DIR "${BUNDLE_INSTALL_DIR}/Resources")
|
||||
else()
|
||||
include(GNUInstallDirs)
|
||||
|
||||
set(CLI_INSTALL_DIR "${CMAKE_INSTALL_BINDIR}")
|
||||
set(PROXY_INSTALL_DIR "${CMAKE_INSTALL_BINDIR}")
|
||||
set(BIN_INSTALL_DIR "${CMAKE_INSTALL_BINDIR}")
|
||||
set(PLUGIN_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR}/keepassxc")
|
||||
set(DATA_INSTALL_DIR "${CMAKE_INSTALL_DATADIR}/keepassxc")
|
||||
@@ -215,48 +461,124 @@ if(WITH_TESTS)
|
||||
enable_testing()
|
||||
endif(WITH_TESTS)
|
||||
|
||||
find_package(Qt5Core 5.2 REQUIRED)
|
||||
find_package(Qt5Network 5.2 REQUIRED)
|
||||
find_package(Qt5Concurrent 5.2 REQUIRED)
|
||||
find_package(Qt5Widgets 5.2 REQUIRED)
|
||||
find_package(Qt5Test 5.2 REQUIRED)
|
||||
find_package(Qt5LinguistTools 5.2 REQUIRED)
|
||||
find_package(Qt5Network 5.2 REQUIRED)
|
||||
if (UNIX AND NOT APPLE)
|
||||
find_package(Qt5DBus 5.2 REQUIRED)
|
||||
endif()
|
||||
set(CMAKE_AUTOMOC ON)
|
||||
if(WITH_COVERAGE)
|
||||
# Include code coverage, use with -DCMAKE_BUILD_TYPE=Debug
|
||||
include(CodeCoverage)
|
||||
append_coverage_compiler_flags()
|
||||
|
||||
# Debian sets the the build type to None for package builds.
|
||||
set(COVERAGE_EXCLUDES
|
||||
"'^(.+/)?thirdparty/.*'"
|
||||
"'^(.+/)?main\\.cpp$$'"
|
||||
"'^(.+/)?cli/keepassxc-cli\\.cpp$$'"
|
||||
"'^(.+/)?proxy/keepassxc-proxy\\.cpp$$'")
|
||||
if(WITH_COVERAGE AND CMAKE_COMPILER_IS_CLANGXX)
|
||||
set(MAIN_BINARIES
|
||||
"$<TARGET_FILE:${PROGNAME}>"
|
||||
"$<TARGET_FILE:keepassxc-cli>"
|
||||
"$<TARGET_FILE:keepassxc-proxy>")
|
||||
setup_target_for_coverage_llvm(
|
||||
NAME coverage
|
||||
BINARY ${MAIN_BINARIES}
|
||||
SOURCES_ROOT ${CMAKE_SOURCE_DIR}/src
|
||||
)
|
||||
else()
|
||||
setup_target_for_coverage_gcovr(
|
||||
NAME coverage
|
||||
SOURCES_ROOT ${CMAKE_SOURCE_DIR}/src
|
||||
)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
include(CLangFormat)
|
||||
|
||||
set(QT_COMPONENTS Core Network Concurrent Gui Svg Widgets Test LinguistTools)
|
||||
if(UNIX AND NOT APPLE)
|
||||
if(WITH_XC_X11)
|
||||
list(APPEND QT_COMPONENTS X11Extras)
|
||||
endif()
|
||||
find_package(Qt5 COMPONENTS ${QT_COMPONENTS} DBus REQUIRED)
|
||||
elseif(APPLE)
|
||||
find_package(Qt5 COMPONENTS ${QT_COMPONENTS} REQUIRED HINTS
|
||||
/usr/local/opt/qt@5/lib/cmake
|
||||
/usr/local/Cellar/qt@5/*/lib/cmake
|
||||
/opt/homebrew/opt/qt@5/lib/cmake
|
||||
ENV PATH)
|
||||
find_package(Qt5 COMPONENTS MacExtras HINTS
|
||||
/usr/local/opt/qt@5/lib/cmake
|
||||
/usr/local/Cellar/qt@5/*/lib/cmake
|
||||
/opt/homebrew/opt/qt@5/lib/cmake
|
||||
ENV PATH)
|
||||
else()
|
||||
find_package(Qt5 COMPONENTS ${QT_COMPONENTS} REQUIRED)
|
||||
endif()
|
||||
|
||||
if(Qt5Core_VERSION VERSION_LESS "5.2.0")
|
||||
message(FATAL_ERROR "Qt version 5.2.0 or higher is required")
|
||||
endif()
|
||||
|
||||
# CBOR for Passkeys requires Qt 5.12
|
||||
if(Qt5Core_VERSION VERSION_LESS "5.12.0")
|
||||
message(STATUS "Qt version 5.12.0 or higher is required for Passkeys support")
|
||||
set(WITH_XC_BROWSER_PASSKEYS OFF)
|
||||
endif()
|
||||
|
||||
get_filename_component(Qt5_PREFIX ${Qt5_DIR}/../../.. REALPATH)
|
||||
if(APPLE)
|
||||
# Add includes under Qt5 Prefix in case Qt6 is also installed
|
||||
include_directories(SYSTEM ${Qt5_PREFIX}/include)
|
||||
endif()
|
||||
|
||||
# Process moc automatically
|
||||
set(CMAKE_AUTOMOC ON)
|
||||
# Process .ui files automatically
|
||||
set(CMAKE_AUTOUIC ON)
|
||||
# Process .qrc files automatically
|
||||
set(CMAKE_AUTORCC ON)
|
||||
|
||||
if(APPLE)
|
||||
set(CMAKE_MACOSX_RPATH TRUE)
|
||||
find_program(MACDEPLOYQT_EXE macdeployqt HINTS ${Qt5_PREFIX}/bin ${Qt5_PREFIX}/tools/qt5/bin ENV PATH)
|
||||
if(NOT MACDEPLOYQT_EXE)
|
||||
message(FATAL_ERROR "macdeployqt is required to build on macOS")
|
||||
endif()
|
||||
message(STATUS "Using macdeployqt: ${MACDEPLOYQT_EXE}")
|
||||
set(MACDEPLOYQT_EXTRA_BINARIES "")
|
||||
elseif(WIN32)
|
||||
find_program(WINDEPLOYQT_EXE windeployqt HINTS ${Qt5_PREFIX}/bin ${Qt5_PREFIX}/tools/qt5/bin ENV PATH)
|
||||
if(NOT WINDEPLOYQT_EXE)
|
||||
message(FATAL_ERROR "windeployqt is required to build on Windows")
|
||||
endif()
|
||||
message(STATUS "Using windeployqt: ${WINDEPLOYQT_EXE}")
|
||||
endif()
|
||||
|
||||
# Debian sets the build type to None for package builds.
|
||||
# Make sure we don't enable asserts there.
|
||||
set_property(DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS_NONE QT_NO_DEBUG)
|
||||
|
||||
find_package(LibGPGError REQUIRED)
|
||||
|
||||
find_package(Gcrypt 1.6.0 REQUIRED)
|
||||
# Find Argon2 -- Botan 2.18 and below does not support threaded Argon2
|
||||
find_library(ARGON2_LIBRARIES NAMES argon2)
|
||||
find_path(ARGON2_INCLUDE_DIR NAMES argon2.h PATH_SUFFIXES local/include)
|
||||
include_directories(SYSTEM ${ARGON2_INCLUDE_DIR})
|
||||
|
||||
# Find zlib
|
||||
find_package(ZLIB REQUIRED)
|
||||
|
||||
set(CMAKE_REQUIRED_INCLUDES ${ZLIB_INCLUDE_DIR})
|
||||
|
||||
check_cxx_source_compiles("
|
||||
#include <zlib.h>
|
||||
|
||||
#if !defined(ZLIB_VERNUM) || (ZLIB_VERNUM < 0x1200)
|
||||
#error zlib 1.2.x or higher is required to use the gzip format
|
||||
#endif
|
||||
|
||||
int main() { return 0; }" ZLIB_SUPPORTS_GZIP)
|
||||
|
||||
if(NOT ZLIB_SUPPORTS_GZIP)
|
||||
message(FATAL_ERROR "zlib 1.2.x or higher is required to use the gzip format")
|
||||
if(ZLIB_VERSION_STRING VERSION_LESS "1.2.0")
|
||||
message(FATAL_ERROR "zlib 1.2.0 or higher is required to use the gzip format")
|
||||
endif()
|
||||
include_directories(SYSTEM ${ZLIB_INCLUDE_DIR})
|
||||
|
||||
# Find Minizip
|
||||
find_package(Minizip REQUIRED)
|
||||
|
||||
# Optional
|
||||
if(WITH_XC_YUBIKEY)
|
||||
find_package(YubiKey REQUIRED)
|
||||
find_package(PCSC REQUIRED)
|
||||
include_directories(SYSTEM ${PCSC_INCLUDE_DIRS})
|
||||
|
||||
include_directories(SYSTEM ${YUBIKEY_INCLUDE_DIRS})
|
||||
if(UNIX AND NOT APPLE)
|
||||
find_library(LIBUSB_LIBRARIES NAMES usb-1.0 REQUIRED)
|
||||
find_path(LIBUSB_INCLUDE_DIR NAMES libusb.h PATH_SUFFIXES "libusb-1.0" "libusb" REQUIRED)
|
||||
include_directories(SYSTEM ${LIBUSB_INCLUDE_DIR})
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(UNIX)
|
||||
@@ -264,6 +586,14 @@ if(UNIX)
|
||||
int main() { prctl(PR_SET_DUMPABLE, 0); return 0; }"
|
||||
HAVE_PR_SET_DUMPABLE)
|
||||
|
||||
check_cxx_source_compiles("#include <malloc.h>
|
||||
int main() { return 0; }"
|
||||
HAVE_MALLOC_H)
|
||||
|
||||
check_cxx_source_compiles("#include <malloc.h>
|
||||
int main() { malloc_usable_size(NULL); return 0; }"
|
||||
HAVE_MALLOC_USABLE_SIZE)
|
||||
|
||||
check_cxx_source_compiles("#include <sys/resource.h>
|
||||
int main() {
|
||||
struct rlimit limit;
|
||||
@@ -281,9 +611,13 @@ if(UNIX)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
include_directories(SYSTEM ${GCRYPT_INCLUDE_DIR} ${ZLIB_INCLUDE_DIR})
|
||||
include_directories(SYSTEM ${ZLIB_INCLUDE_DIR})
|
||||
|
||||
include(FeatureSummary)
|
||||
find_library(ZXCVBN_LIBRARIES zxcvbn)
|
||||
if(NOT ZXCVBN_LIBRARIES)
|
||||
add_subdirectory(src/thirdparty/zxcvbn)
|
||||
set(ZXCVBN_LIBRARIES zxcvbn)
|
||||
endif(NOT ZXCVBN_LIBRARIES)
|
||||
|
||||
add_subdirectory(src)
|
||||
add_subdirectory(share)
|
||||
@@ -291,6 +625,10 @@ if(WITH_TESTS)
|
||||
add_subdirectory(tests)
|
||||
endif(WITH_TESTS)
|
||||
|
||||
if(WITH_XC_DOCS)
|
||||
add_subdirectory(docs)
|
||||
endif()
|
||||
|
||||
if(PRINT_SUMMARY)
|
||||
# This will print ENABLED, REQUIRED and DISABLED
|
||||
feature_summary(WHAT ALL)
|
||||
|
||||
20
CODE-OF-CONDUCT.md
Normal file
@@ -0,0 +1,20 @@
|
||||
# Contributor Code of Conduct
|
||||
|
||||
KeePassXC is an open project that welcomes everybody no matter their ethnicity, sex,
|
||||
sexual identity or orientation, age, socio-economic status, nationality, or religion.
|
||||
Regardless of what background you come from, feel encouraged to participate in
|
||||
the project and express your views as long you are respectful to others.
|
||||
|
||||
We value all members of our community and so in order to ensure a harassment-free
|
||||
experience for everyone and mutual respect among members of this community, we
|
||||
impose the following simple rules:
|
||||
|
||||
- No bullying, no insults. Any form of harassment will not be tolerated.
|
||||
- No racism, no sexism, no homophobia, no hurtful extremist views of any kind.
|
||||
- Be mindful of what you say, be diligent in how you say it.
|
||||
- Show respect and, as always, be excellent to each other.
|
||||
|
||||
Violations of these rules or any other form of abuse can be reported confidentially
|
||||
to conduct AT keepassxc DOT org. Members who do not adhere to our code of conduct
|
||||
will be banned either permanently or until they change their ways so as to be
|
||||
compatible with a friendly, open, and inclusive community.
|
||||
392
COPYING
@@ -1,5 +1,5 @@
|
||||
KeePassXC - http://www.keepassxc.org/
|
||||
Copyright (C) 2016-2017 KeePassXC Team <team@keepassxc.org>
|
||||
Copyright (C) 2016-2023 KeePassXC Team <team@keepassxc.org>
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -27,192 +27,221 @@ Copyright: 2010-2012, Felix Geyer <debfx@fobos.de>
|
||||
2000-2008, Tom Sato <VEF00200@nifty.ne.jp>
|
||||
2013, Laszlo Papp <lpapp@kde.org>
|
||||
2013, David Faure <faure@kde.org>
|
||||
2016-2017, KeePassXC Team <team@keepassxc.org>
|
||||
2016-2023, KeePassXC Team <team@keepassxc.org>
|
||||
License: GPL-2 or GPL-3
|
||||
|
||||
Comment: The "KeePassXC Team" in every copyright notice is formed by the following people:
|
||||
- droidmonkey
|
||||
- phoerious
|
||||
- TheZ3ro <io@thezero.org>
|
||||
- varjolintu
|
||||
- hifi
|
||||
- louib
|
||||
- weslly
|
||||
Every other contributor is listed on https://github.com/keepassxreboot/keepassxc/graphs/contributors
|
||||
|
||||
Files: cmake/GNUInstallDirs.cmake
|
||||
Copyright: 2011 Nikita Krupen'ko <krnekit@gmail.com>
|
||||
2011 Kitware, Inc.
|
||||
License: BSD-3-clause
|
||||
|
||||
Files: cmake/CodeCoverage.cmake
|
||||
Copyright: 2012 - 2015, Lars Bilke
|
||||
License: BSD-3-clause
|
||||
|
||||
Files: cmake/FindYubiKey.cmake
|
||||
Copyright: 2014 Kyle Manna <kyle@kylemanna.com>
|
||||
License: GPL-2 or GPL-3
|
||||
Files: cmake/FindBotan.cmake
|
||||
Copyright: none
|
||||
License: LGPL-2.1
|
||||
|
||||
Files: cmake/GenerateProductVersion.cmake
|
||||
Copyright: 2015 halex2005 <akharlov@gmail.com>
|
||||
License: MIT
|
||||
|
||||
Files: cmake/CodeCoverage.cmake
|
||||
Copyright: 2012 - 2015, Lars Bilke
|
||||
License: BSD-3-clause
|
||||
|
||||
Files: share/icons/application/*/apps/keepassxc.png
|
||||
share/icons/application/scalable/apps/keepassxc.svgz
|
||||
share/icons/application/*/apps/keepassxc-dark.png
|
||||
share/icons/application/scalable/apps/keepassxc-dark.svgz
|
||||
share/icons/application/*/apps/keepassxc-locked.png
|
||||
share/icons/application/scalable/apps/keepassxc-locked.svgz
|
||||
share/icons/application/*/apps/keepassxc-unlocked.png
|
||||
share/icons/application/scalable/apps/keepassxc-unlocked.svgz
|
||||
share/icons/application/*/mimetypes/application-x-keepassxc.png
|
||||
share/icons/application/scalable/mimetypes/application-x-keepassxc.svgz
|
||||
Files: share/icons/application/scalable/apps/keepassxc.svg
|
||||
share/icons/application/scalable/apps/keepassxc-dark.svg
|
||||
share/icons/application/scalable/apps/keepassxc-locked.svg
|
||||
share/icons/application/scalable/apps/keepassxc-unlocked.svg
|
||||
share/icons/application/scalable/mimetypes/application-x-keepassxc.svg
|
||||
Copyright: 2016, Lorenzo Stella <lorenzo.stl@gmail.com>
|
||||
License: LGPL-2
|
||||
|
||||
Files: share/icons/application/*/actions/auto-type.png
|
||||
share/icons/application/*/actions/database-change-key.png
|
||||
share/icons/application/*/actions/entry-clone.png
|
||||
share/icons/application/*/actions/entry-edit.png
|
||||
share/icons/application/*/actions/entry-new.png
|
||||
share/icons/application/*/actions/group-empty-trash.png
|
||||
share/icons/application/*/actions/help-about.png
|
||||
share/icons/application/*/actions/password-generate.png
|
||||
share/icons/database/C00_Password.png
|
||||
share/icons/database/C01_Package_Network.png
|
||||
share/icons/database/C02_MessageBox_Warning.png
|
||||
share/icons/database/C03_Server.png
|
||||
share/icons/database/C04_Klipper.png
|
||||
share/icons/database/C05_Edu_Languages.png
|
||||
share/icons/database/C06_KCMDF.png
|
||||
share/icons/database/C07_Kate.png
|
||||
share/icons/database/C08_Socket.png
|
||||
share/icons/database/C09_Identity.png
|
||||
share/icons/database/C10_Kontact.png
|
||||
share/icons/database/C11_Camera.png
|
||||
share/icons/database/C12_IRKickFlash.png
|
||||
share/icons/database/C13_KGPG_Key3.png
|
||||
share/icons/database/C14_Laptop_Power.png
|
||||
share/icons/database/C15_Scanner.png
|
||||
share/icons/database/C16_Mozilla_Firebird.png
|
||||
share/icons/database/C17_CDROM_Unmount.png
|
||||
share/icons/database/C18_Display.png
|
||||
share/icons/database/C19_Mail_Generic.png
|
||||
share/icons/database/C20_Misc.png
|
||||
share/icons/database/C21_KOrganizer.png
|
||||
share/icons/database/C22_ASCII.png
|
||||
share/icons/database/C23_Icons.png
|
||||
share/icons/database/C24_Connect_Established.png
|
||||
share/icons/database/C25_Folder_Mail.png
|
||||
share/icons/database/C26_FileSave.png
|
||||
share/icons/database/C27_NFS_Unmount.png
|
||||
share/icons/database/C28_QuickTime.png
|
||||
share/icons/database/C29_KGPG_Term.png
|
||||
share/icons/database/C30_Konsole.png
|
||||
share/icons/database/C31_FilePrint.png
|
||||
share/icons/database/C32_FSView.png
|
||||
share/icons/database/C33_Run.png
|
||||
share/icons/database/C34_Configure.png
|
||||
share/icons/database/C35_KRFB.png
|
||||
share/icons/database/C36_Ark.png
|
||||
share/icons/database/C37_KPercentage.png
|
||||
share/icons/database/C38_Samba_Unmount.png
|
||||
share/icons/database/C39_History.png
|
||||
share/icons/database/C40_Mail_Find.png
|
||||
share/icons/database/C41_VectorGfx.png
|
||||
share/icons/database/C42_KCMMemory.png
|
||||
share/icons/database/C43_EditTrash.png
|
||||
share/icons/database/C44_KNotes.png
|
||||
share/icons/database/C45_Cancel.png
|
||||
share/icons/database/C46_Help.png
|
||||
share/icons/database/C47_KPackage.png
|
||||
share/icons/database/C48_Folder.png
|
||||
share/icons/database/C49_Folder_Blue_Open.png
|
||||
share/icons/database/C50_Folder_Tar.png
|
||||
share/icons/database/C51_Decrypted.png
|
||||
share/icons/database/C52_Encrypted.png
|
||||
share/icons/database/C53_Apply.png
|
||||
share/icons/database/C54_Signature.png
|
||||
share/icons/database/C55_Thumbnail.png
|
||||
share/icons/database/C56_KAddressBook.png
|
||||
share/icons/database/C57_View_Text.png
|
||||
share/icons/database/C58_KGPG.png
|
||||
share/icons/database/C59_Package_Development.png
|
||||
share/icons/database/C60_KFM_Home.png
|
||||
share/icons/database/C61_Services.png
|
||||
Copyright: 2003-2004, David Vignoni <david@icon-king.com>
|
||||
License: LGPL-2.1
|
||||
Comment: from Nuvola icon theme
|
||||
|
||||
Files: share/icons/application/*/actions/entry-delete.png
|
||||
share/icons/application/*/actions/group-delete.png
|
||||
share/icons/application/*/actions/group-edit.png
|
||||
share/icons/application/*/actions/group-new.png
|
||||
Copyright: 2003-2004, David Vignoni <david@icon-king.com>
|
||||
2012, Felix Geyer <debfx@fobos.de>
|
||||
License: LGPL-2.1
|
||||
Comment: based on Nuvola icon theme
|
||||
|
||||
Files: share/icons/application/*/actions/application-exit.png
|
||||
share/icons/application/*/actions/configure.png
|
||||
share/icons/application/*/actions/dialog-close.png
|
||||
share/icons/application/*/actions/dialog-ok.png
|
||||
share/icons/application/*/actions/document-close.png
|
||||
share/icons/application/*/actions/document-edit.png
|
||||
share/icons/application/*/actions/document-encrypt.png
|
||||
share/icons/application/*/actions/document-new.png
|
||||
share/icons/application/*/actions/document-open.png
|
||||
share/icons/application/*/actions/document-properties.png
|
||||
share/icons/application/*/actions/document-save.png
|
||||
share/icons/application/*/actions/document-save-as.png
|
||||
share/icons/application/*/actions/edit-clear-locationbar-ltr.png
|
||||
share/icons/application/*/actions/edit-clear-locationbar-rtl.png
|
||||
share/icons/application/*/actions/key-enter.png
|
||||
share/icons/application/*/actions/password-generator.png
|
||||
share/icons/application/*/actions/password-copy.png
|
||||
share/icons/application/*/actions/password-show-*.png
|
||||
share/icons/application/*/actions/system-search.png
|
||||
share/icons/application/*/actions/username-copy.png
|
||||
share/icons/application/*/actions/view-history.png
|
||||
share/icons/application/*/apps/internet-web-browser.png
|
||||
share/icons/application/*/apps/preferences-desktop-icons.png
|
||||
share/icons/application/*/categories/preferences-other.png
|
||||
share/icons/application/*/status/dialog-error.png
|
||||
share/icons/application/*/status/dialog-information.png
|
||||
share/icons/application/*/status/dialog-warning.png
|
||||
share/icons/application/*/status/security-high.png
|
||||
share/icons/svg/*.svgz
|
||||
Copyright: 2007, Nuno Pinheiro <nuno@oxygen-icons.org>
|
||||
2007, David Vignoni <david@icon-king.com>
|
||||
2007, David Miller <miller@oxygen-icons.org>
|
||||
2007, Johann Ollivier Lapeyre <johann@oxygen-icons.org>
|
||||
2007, Kenneth Wimer <kwwii@bootsplash.org>
|
||||
2007, Riccardo Iaconelli <riccardo@oxygen-icons.org>
|
||||
License: LGPL-3+
|
||||
Comment: from Oxygen icon theme (http://www.oxygen-icons.org/)
|
||||
|
||||
Files: share/icons/database/C62_Tux.png
|
||||
share/icons/database/C63_Feather.png
|
||||
share/icons/database/C64_Apple.png
|
||||
share/icons/database/C67_Certificate.png
|
||||
share/icons/database/C68_BlackBerry.png
|
||||
Copyright: Mairin Duffy
|
||||
Sarah Owens
|
||||
James Birkett
|
||||
Dominik Reichl
|
||||
License: CC0
|
||||
Comment: C62_Tux.png from https://openclipart.org/detail/103855
|
||||
C63_Feather.png from http://openclipart.org/detail/122017
|
||||
C64_Apple.png based on http://openclipart.org/detail/24319
|
||||
C67_Certificate.png based on https://openclipart.org/detail/16729
|
||||
C68_BlackBerry.png from https://openclipart.org/detail/4465
|
||||
|
||||
Files: share/icons/database/C65_W.png
|
||||
share/icons/database/C66_Money.png
|
||||
Files: share/icons/database/C00_Password.svg
|
||||
share/icons/database/C01_Package_Network.svg
|
||||
share/icons/database/C02_MessageBox_Warning.svg
|
||||
share/icons/database/C03_Server.svg
|
||||
share/icons/database/C04_Klipper.svg
|
||||
share/icons/database/C05_Edu_Languages.svg
|
||||
share/icons/database/C06_KCMDF.svg
|
||||
share/icons/database/C08_Socket.svg
|
||||
share/icons/database/C09_Identity.svg
|
||||
share/icons/database/C10_Kontact.svg
|
||||
share/icons/database/C11_Camera.svg
|
||||
share/icons/database/C12_IRKickFlash.svg
|
||||
share/icons/database/C13_KGPG_Key3.svg
|
||||
share/icons/database/C14_Laptop_Power.svg
|
||||
share/icons/database/C15_Scanner.svg
|
||||
share/icons/database/C16_Mozilla_Firebird.svg
|
||||
share/icons/database/C19_Mail_Generic.svg
|
||||
share/icons/database/C20_Misc.svg
|
||||
share/icons/database/C21_KOrganizer.svg
|
||||
share/icons/database/C22_ASCII.svg
|
||||
share/icons/database/C23_Icons.svg
|
||||
share/icons/database/C24_Connect_Established.svg
|
||||
share/icons/database/C25_Folder_Mail.svg
|
||||
share/icons/database/C28_QuickTime.svg
|
||||
share/icons/database/C29_KGPG_Term.svg
|
||||
share/icons/database/C30_Konsole.svg
|
||||
share/icons/database/C31_FilePrint.svg
|
||||
share/icons/database/C32_FSView.svg
|
||||
share/icons/database/C33_Run.svg
|
||||
share/icons/database/C34_Configure.svg
|
||||
share/icons/database/C36_Ark.svg
|
||||
share/icons/database/C39_History.svg
|
||||
share/icons/database/C40_Mail_Find.svg
|
||||
share/icons/database/C41_VectorGfx.svg
|
||||
share/icons/database/C42_KCMMemory.svg
|
||||
share/icons/database/C43_EditTrash.svg
|
||||
share/icons/database/C47_KPackage.svg
|
||||
share/icons/database/C48_Folder.svg
|
||||
share/icons/database/C49_Folder_Blue_Open.svg
|
||||
share/icons/database/C50_Folder_Tar.svg
|
||||
share/icons/database/C55_Thumbnail.svg
|
||||
share/icons/database/C56_KAddressBook.svg
|
||||
share/icons/database/C57_View_Text.svg
|
||||
share/icons/database/C58_KGPG.svg
|
||||
share/icons/database/C59_Package_Development.svg
|
||||
share/icons/database/C60_KFM_Home.svg
|
||||
share/icons/database/C62_Tux.svg
|
||||
share/icons/database/C63_Feather.svg
|
||||
share/icons/database/C65_W.svg
|
||||
share/icons/database/C67_Certificate.svg
|
||||
share/icons/database/C68_BlackBerry.svg
|
||||
Copyright: none
|
||||
License: public-domain
|
||||
License: MIT
|
||||
Comment: Taken from https://github.com/icons8/flat-color-icons
|
||||
|
||||
Files: share/icons/badges/0_ShareActive.svg
|
||||
share/icons/badges/1_ShareInactive.svg
|
||||
share/icons/database/C07_Kate.svg
|
||||
share/icons/database/C17_CDROM_Unmount.svg
|
||||
share/icons/database/C18_Display.svg
|
||||
share/icons/database/C26_FileSave.svg
|
||||
share/icons/database/C27_NFS_Unmount.svg
|
||||
share/icons/database/C35_KRFB.svg
|
||||
share/icons/database/C38_Samba_Unmount.svg
|
||||
share/icons/database/C44_KNotes.svg
|
||||
share/icons/database/C51_Decrypted.svg
|
||||
share/icons/database/C52_Encrypted.svg
|
||||
share/icons/database/C54_Signature.svg
|
||||
share/icons/database/C66_Money.svg
|
||||
Copyright: none
|
||||
License: CC0
|
||||
Comment: Taken from https://github.com/paomedia/small-n-flat
|
||||
|
||||
Files: share/icons/badges/2_Expired.svg
|
||||
share/icons/database/C37_KPercentage.svg
|
||||
share/icons/database/C45_Cancel.svg
|
||||
share/icons/database/C46_Help.svg
|
||||
share/icons/database/C53_Apply.svg
|
||||
share/icons/database/C61_Services.svg
|
||||
Copyright: 2022 KeePassXC Team <team@keepassxc.org>
|
||||
License: MIT
|
||||
|
||||
Files: share/icons/application/scalable/actions/application-exit.svg
|
||||
share/icons/application/scalable/actions/attributes-copy.svg
|
||||
share/icons/application/scalable/actions/auto-type.svg
|
||||
share/icons/application/scalable/actions/bitwarden.svg
|
||||
share/icons/application/scalable/actions/bugreport.svg
|
||||
share/icons/application/scalable/actions/chevron-double-down.svg
|
||||
share/icons/application/scalable/actions/chevron-double-right.svg
|
||||
share/icons/application/scalable/actions/clipboard-text.svg
|
||||
share/icons/application/scalable/actions/configure.svg
|
||||
share/icons/application/scalable/actions/csv.svg
|
||||
share/icons/application/scalable/actions/database-change-key.svg
|
||||
share/icons/application/scalable/actions/database-lock.svg
|
||||
share/icons/application/scalable/actions/database-lock-all.svg
|
||||
share/icons/application/scalable/actions/database-merge.svg
|
||||
share/icons/application/scalable/actions/database-search.svg
|
||||
share/icons/application/scalable/actions/dialog-close.svg
|
||||
share/icons/application/scalable/actions/dialog-ok.svg
|
||||
share/icons/application/scalable/actions/document-close.svg
|
||||
share/icons/application/scalable/actions/document-edit.svg
|
||||
share/icons/application/scalable/actions/document-export.svg
|
||||
share/icons/application/scalable/actions/document-import.svg
|
||||
share/icons/application/scalable/actions/document-new.svg
|
||||
share/icons/application/scalable/actions/document-open.svg
|
||||
share/icons/application/scalable/actions/document-open-recent.svg
|
||||
share/icons/application/scalable/actions/document-properties.svg
|
||||
share/icons/application/scalable/actions/document-save.svg
|
||||
share/icons/application/scalable/actions/document-save-as.svg
|
||||
share/icons/application/scalable/actions/document-save-copy.svg
|
||||
share/icons/application/scalable/actions/donate.svg
|
||||
share/icons/application/scalable/actions/edit-clear-locationbar-ltr.svg
|
||||
share/icons/application/scalable/actions/edit-clear-locationbar-rtl.svg
|
||||
share/icons/application/scalable/actions/entry-clone.svg
|
||||
share/icons/application/scalable/actions/entry-delete.svg
|
||||
share/icons/application/scalable/actions/entry-restore.svg
|
||||
share/icons/application/scalable/actions/entry-edit.svg
|
||||
share/icons/application/scalable/actions/entry-new.svg
|
||||
share/icons/application/scalable/actions/favicon-download.svg
|
||||
share/icons/application/scalable/actions/fingerprint.svg
|
||||
share/icons/application/scalable/actions/getting-started.svg
|
||||
share/icons/application/scalable/actions/group-delete.svg
|
||||
share/icons/application/scalable/actions/group-edit.svg
|
||||
share/icons/application/scalable/actions/group-clone.svg
|
||||
share/icons/application/scalable/actions/group-empty-trash.svg
|
||||
share/icons/application/scalable/actions/group-new.svg
|
||||
share/icons/application/scalable/actions/hammer-wrench.svg
|
||||
share/icons/application/scalable/actions/health.svg
|
||||
share/icons/application/scalable/actions/help-about.svg
|
||||
share/icons/application/scalable/actions/lock-question.svg
|
||||
share/icons/application/scalable/actions/keyboard-shortcuts.svg
|
||||
share/icons/application/scalable/actions/message-close.svg
|
||||
share/icons/application/scalable/actions/move-down.svg
|
||||
share/icons/application/scalable/actions/move-up.svg
|
||||
share/icons/application/scalable/actions/object-locked.svg
|
||||
share/icons/application/scalable/actions/object-unlocked.svg
|
||||
share/icons/application/scalable/actions/onepassword.svg
|
||||
share/icons/application/scalable/actions/paperclip.svg
|
||||
share/icons/application/scalable/actions/password-copy.svg
|
||||
share/icons/application/scalable/actions/passkey.svg
|
||||
share/icons/application/scalable/actions/password-generator.svg
|
||||
share/icons/application/scalable/actions/password-show-off.svg
|
||||
share/icons/application/scalable/actions/password-show-on.svg
|
||||
share/icons/application/scalable/actions/qrcode.svg
|
||||
share/icons/application/scalable/actions/refresh.svg
|
||||
share/icons/application/scalable/actions/reports.svg
|
||||
share/icons/application/scalable/actions/reports-exclude.svg
|
||||
share/icons/application/scalable/actions/sort-alphabetical-ascending.svg
|
||||
share/icons/application/scalable/actions/sort-alphabetical-descending.svg
|
||||
share/icons/application/scalable/actions/statistics.svg
|
||||
share/icons/application/scalable/actions/system-help.svg
|
||||
share/icons/application/scalable/actions/system-search.svg
|
||||
share/icons/application/scalable/actions/system-software-update.svg
|
||||
share/icons/application/scalable/actions/tag.svg
|
||||
share/icons/application/scalable/actions/tag-multiple.svg
|
||||
share/icons/application/scalable/actions/tag-search.svg
|
||||
share/icons/application/scalable/actions/totp.svg
|
||||
share/icons/application/scalable/actions/totp-copy.svg
|
||||
share/icons/application/scalable/actions/totp-copy-password.svg
|
||||
share/icons/application/scalable/actions/totp-edit.svg
|
||||
share/icons/application/scalable/actions/trash.svg
|
||||
share/icons/application/scalable/actions/url-copy.svg
|
||||
share/icons/application/scalable/actions/user-guide.svg
|
||||
share/icons/application/scalable/actions/username-copy.svg
|
||||
share/icons/application/scalable/actions/view-history.svg
|
||||
share/icons/application/scalable/actions/web.svg
|
||||
share/icons/application/scalable/actions/yubikey-refresh.svg
|
||||
share/icons/application/scalable/apps/internet-web-browser.svg
|
||||
share/icons/application/scalable/apps/keepassxc.svg
|
||||
share/icons/application/scalable/apps/keepassxc-dark.svg
|
||||
share/icons/application/scalable/apps/keepassxc-locked.svg
|
||||
share/icons/application/scalable/apps/keepassxc-unlocked.svg
|
||||
share/icons/application/scalable/apps/preferences-desktop-icons.svg
|
||||
share/icons/application/scalable/apps/preferences-system-network-sharing.svg
|
||||
share/icons/application/scalable/apps/utilities-terminal.svg
|
||||
share/icons/application/scalable/categories/preferences-other.svg
|
||||
share/icons/application/scalable/mimetypes/application-x-keepassxc.svg
|
||||
share/icons/application/scalable/status/dialog-error.svg
|
||||
share/icons/application/scalable/status/dialog-information.svg
|
||||
share/icons/application/scalable/status/dialog-warning.svg
|
||||
share/icons/application/scalable/status/security-high.svg
|
||||
Copyright: 2019 Austin Andrews <http://templarian.com/>
|
||||
License: SIL OPEN FONT LICENSE Version 1.1
|
||||
Comment: Taken from Material Design icon set (https://github.com/templarian/MaterialDesign/)
|
||||
|
||||
Files: src/streams/qtiocompressor.*
|
||||
src/streams/QtIOCompressor
|
||||
@@ -220,16 +249,8 @@ Files: src/streams/qtiocompressor.*
|
||||
Copyright: 2009-2012, Nokia Corporation and/or its subsidiary(-ies)
|
||||
License: LGPL-2.1 or GPL-3
|
||||
|
||||
Files: cmake/GetGitRevisionDescription.cmake*
|
||||
Copyright: 2009-2010, Iowa State University
|
||||
License: Boost-1.0
|
||||
|
||||
Files: src/zxcvbn/zxcvbn.*
|
||||
Copyright: 2015, Tony Evans
|
||||
License: BSD 3-clause
|
||||
|
||||
Files: src/http/qhttp/*
|
||||
Copyright: 2014, Amir Zamani
|
||||
Files: src/thirdparty/zxcvbn/zxcvbn.*
|
||||
Copyright: 2015-2017, Tony Evans
|
||||
License: MIT
|
||||
|
||||
Files: src/gui/KMessageWidget.h
|
||||
@@ -237,3 +258,22 @@ Files: src/gui/KMessageWidget.h
|
||||
Copyright: 2011 Aurélien Gâteau <agateau@kde.org>
|
||||
2014 Dominik Haumann <dhaumann@kde.org>
|
||||
License: LGPL-2.1
|
||||
|
||||
Files: share/macosx/background.tiff
|
||||
Copyright: 2008-2014, Andrey Tarantsov
|
||||
License: MIT
|
||||
|
||||
Files: share/icons/application/scalable/apps/freedesktop.svg
|
||||
Copyright: GPL-2+
|
||||
Comment: from Freedesktop.org website
|
||||
|
||||
Files: share/icons/application/scalable/actions/hibp.svg
|
||||
share/icons/database/C64_Apple.svg
|
||||
Copyright: GPL-2+
|
||||
Comment: from the Simple Icons repo (https://github.com/simple-icons/simple-icons/)
|
||||
|
||||
Files: src/thirdparty/ykcore/yk*
|
||||
src/thirdparty/ykcore/yubikey.h
|
||||
Copyright: 2006-2015, Yubico AB
|
||||
License: BSD-2-Clause
|
||||
Comment: from the yubikey-personalization repo (https://github.com/Yubico/yubikey-personalization)
|
||||
|
||||
81
Dockerfile
@@ -1,81 +0,0 @@
|
||||
# KeePassXC Linux Release Build Dockerfile
|
||||
# Copyright (C) 2017 KeePassXC team <https://keepassxc.org/>
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 2 or (at your option)
|
||||
# version 3 of the License.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
FROM centos:7
|
||||
|
||||
RUN set -x \
|
||||
&& curl "https://copr.fedorainfracloud.org/coprs/bugzy/keepassxc/repo/epel-7/bugzy-keepassxc-epel-7.repo" \
|
||||
> /etc/yum.repos.d/bugzy-keepassxc-epel-7.repo
|
||||
|
||||
RUN set -x \
|
||||
&& curl "https://copr.fedorainfracloud.org/coprs/sic/backports/repo/epel-7/sic-backports-epel-7.repo" \
|
||||
> /etc/yum.repos.d/sic-backports-epel-7.repo
|
||||
|
||||
RUN set -x \
|
||||
&& yum clean -y all \
|
||||
&& yum upgrade -y
|
||||
|
||||
# build and runtime dependencies
|
||||
RUN set -x \
|
||||
&& yum install -y \
|
||||
make \
|
||||
automake \
|
||||
gcc-c++ \
|
||||
cmake \
|
||||
libgcrypt16-devel \
|
||||
qt5-qtbase-devel \
|
||||
qt5-linguist \
|
||||
qt5-qttools \
|
||||
zlib-devel \
|
||||
qt5-qtx11extras \
|
||||
qt5-qtx11extras-devel \
|
||||
libXi-devel \
|
||||
libXtst-devel
|
||||
|
||||
# AppImage dependencies
|
||||
RUN set -x \
|
||||
&& yum install -y \
|
||||
wget \
|
||||
fuse-libs
|
||||
|
||||
# build libyubikey
|
||||
ENV YUBIKEY_VERSION=1.13
|
||||
RUN set -x && yum install -y libusb-devel
|
||||
RUN set -x \
|
||||
&& wget "https://developers.yubico.com/yubico-c/Releases/libyubikey-${YUBIKEY_VERSION}.tar.gz" \
|
||||
&& tar xf libyubikey-${YUBIKEY_VERSION}.tar.gz \
|
||||
&& cd libyubikey-${YUBIKEY_VERSION} \
|
||||
&& ./configure --prefix=/usr --libdir=/usr/lib64 \
|
||||
&& make \
|
||||
&& make install \
|
||||
&& cd .. \
|
||||
&& rm -Rf libyubikey-${YUBIKEY_VERSION}*
|
||||
|
||||
# build libykpers-1
|
||||
ENV YKPERS_VERSION=1.18.0
|
||||
RUN set -x \
|
||||
&& wget "https://developers.yubico.com/yubikey-personalization/Releases/ykpers-${YKPERS_VERSION}.tar.gz" \
|
||||
&& tar xf ykpers-${YKPERS_VERSION}.tar.gz \
|
||||
&& cd ykpers-${YKPERS_VERSION} \
|
||||
&& ./configure --prefix=/usr --libdir=/usr/lib64 \
|
||||
&& make \
|
||||
&& make install \
|
||||
&& cd .. \
|
||||
&& rm -Rf ykpers-${YKPERS_VERSION}*
|
||||
|
||||
VOLUME /keepassxc/src
|
||||
VOLUME /keepassxc/out
|
||||
WORKDIR /keepassxc
|
||||
157
INSTALL.md
@@ -1,96 +1,155 @@
|
||||
Install KeePassXC
|
||||
Build and Install KeePassXC
|
||||
=================
|
||||
|
||||
This document will guide you across the steps to install KeePassXC.
|
||||
You can visit the online version of this document a the following link
|
||||
This document will guide you through the steps to build and install KeePassXC from source.
|
||||
For more information, see also the [_Building KeePassXC_](https://github.com/keepassxreboot/keepassxc/wiki/Building-KeePassXC) page on the wiki.
|
||||
|
||||
https://github.com/keepassxreboot/keepassx/wiki/Install-Instruction-from-Source
|
||||
The [QuickStart Guide](https://keepassxc.org/docs/KeePassXC_GettingStarted.html) gets you started using KeePassXC on your Windows, macOS, or Linux computer using pre-compiled binaries from the [downloads page](https://keepassxc.org/download).
|
||||
|
||||
|
||||
Build Dependencies
|
||||
==================
|
||||
|
||||
The following tools must exist within your PATH:
|
||||
|
||||
* make
|
||||
* cmake (>= 2.8.12)
|
||||
* g++ (>= 4.7) or clang++ (>= 3.0)
|
||||
|
||||
The following libraries are required:
|
||||
|
||||
* Qt 5 (>= 5.2): qtbase and qttools5
|
||||
* libgcrypt (>= 1.6)
|
||||
* zlib
|
||||
* libmicrohttpd
|
||||
* libxi, libxtst, qtx11extras (optional for auto-type on X11)
|
||||
|
||||
|
||||
Prepare the Building Environment
|
||||
Toolchain and Build Dependencies
|
||||
================================
|
||||
|
||||
Building Environment on Linux ==> https://github.com/keepassxreboot/keepassx/wiki/Building-Environment-on-Linux
|
||||
Building Environment on Windows ==> https://github.com/keepassxreboot/keepassx/wiki/Building-Environment-on-Windows
|
||||
Building Environment on MacOS ==> https://github.com/keepassxreboot/keepassx/wiki/Building-Environment-on-MacOS
|
||||
The following build tools must exist within your PATH:
|
||||
|
||||
* cmake (>= 3.10.0)
|
||||
* make (>= 4.2) or ninja (>= 1.10)
|
||||
* g++ (>= 4.9) or clang++ (>= 6.0)
|
||||
* asciidoctor (>= 2.0)
|
||||
|
||||
* Besides a working C++ toolchain, KeePassXC also has a number of direct build and runtime dependencies. For detailed information about how to install them, please refer to the GitHub wiki:
|
||||
|
||||
* [Set up Build Environment on Linux](https://github.com/keepassxreboot/keepassxc/wiki/Set-up-Build-Environment-on-Linux)
|
||||
* [Set up Build Environment on Windows](https://github.com/keepassxreboot/keepassxc/wiki/Set-up-Build-Environment-on-Windows)
|
||||
* [Set up Build Environment on macOS](https://github.com/keepassxreboot/keepassxc/wiki/Set-up-Build-Environment-on-macOS)
|
||||
|
||||
Build Steps
|
||||
===========
|
||||
We recommend using the release tool to perform builds, please read up-to-date instructions [on our wiki](https://github.com/keepassxreboot/keepassxc/wiki/Building-KeePassXC#building-using-the-release-tool).
|
||||
|
||||
To compile from source, open a **Terminal (on Linux/MacOS)** or a **MSYS2-MinGW shell (on Windows)**<br/>
|
||||
**Note:** on Windows make sure you are using a **MINGW shell** by checking the label before the current path
|
||||
To compile from source, open a **Terminal (Linux/MacOS)**, the **MSVC Tools Command Prompt (Windows)**, or **MSYS2-MinGW shell (Windows)**. For code development on Windows, you can use Visual Studio 2022, Visual Studio Code, or CLion.
|
||||
|
||||
Navigate to the path you have downloaded KeePassXC and type these commands:
|
||||
1. Download the KeePassXC [source tarball](https://keepassxc.org/download#source) or check out the latest version from our [Git repository](https://github.com/keepassxreboot/keepassxc).
|
||||
|
||||
To clone the project from Git, `cd` to a suitable location and run
|
||||
|
||||
```
|
||||
git clone https://github.com/keepassxreboot/keepassxc.git
|
||||
```
|
||||
|
||||
This will clone the entire contents of the repository and check out the current `develop` branch.
|
||||
|
||||
To update the project from within the project's folder, you can run the following command:
|
||||
|
||||
```
|
||||
git pull
|
||||
```
|
||||
|
||||
For a stable build, it is recommended to check out the `latest` tag.
|
||||
|
||||
```
|
||||
git checkout latest
|
||||
```
|
||||
|
||||
2. Navigate to the directory where you have downloaded KeePassXC and run:
|
||||
|
||||
```
|
||||
mkdir build
|
||||
cd build
|
||||
cmake -DWITH_TESTS=OFF
|
||||
cmake -DWITH_XC_ALL=ON ..
|
||||
make
|
||||
```
|
||||
|
||||
**Note:** If you are on MacOS you must add this parameter to **Cmake**, with the Qt version you have installed<br/> `-DCMAKE_PREFIX_PATH=/usr/local/Cellar/qt5/5.6.2/lib/cmake/`
|
||||
If you have `vcpkg` installed, add `-DCMAKE_TOOLCHAIN_FILE=${VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake` to the `cmake` command to automatically download and install all required build and runtime dependencies locally to your build directory before compiling KeePassXC. Using `vcpkg` is the preferred way to install dependencies on macOS and required on Windows if using the MSVC toolchain.
|
||||
|
||||
You will have the compiled KeePassXC binary inside the `./build/src/` directory.
|
||||
For more detailed build instructions for each platform, please refer to the [GitHub wiki](https://github.com/keepassxreboot/keepassxc/wiki/Building-KeePassXC).
|
||||
|
||||
Note: These steps place the compiled KeePassXC binary inside the `./build/src/` directory (`src/KeePassXC.app/Contents/MacOS` on macOS).
|
||||
|
||||
## MacOS Build Notes
|
||||
|
||||
If you installed Qt5 via Homebrew and CMake fails to find your Qt installation, you can specify it manually by adding the following parameter:
|
||||
|
||||
`-DCMAKE_PREFIX_PATH=$(brew --prefix qt5)/lib/cmake`
|
||||
|
||||
When building with ASAN support on macOS, you need to use `export ASAN_OPTIONS=detect_leaks=0` before running the tests (LSAN is no supported on macOS).
|
||||
|
||||
## Windows Build Notes
|
||||
|
||||
If you are using MSYS2, you have to add ```-G "MSYS Makefiles"``` at the beginning of the cmake command.
|
||||
|
||||
CMake Configuration Options
|
||||
==========================
|
||||
|
||||
## Recommended CMake Build Parameters
|
||||
|
||||
Common cmake parameters
|
||||
```
|
||||
-DCMAKE_INSTALL_PREFIX=/usr/local
|
||||
-DCMAKE_VERBOSE_MAKEFILE=ON
|
||||
-DCMAKE_BUILD_TYPE=<RelWithDebInfo/Debug/Release>
|
||||
-DWITH_GUI_TESTS=ON
|
||||
```
|
||||
|
||||
## Additional CMake Parameters
|
||||
|
||||
KeePassXC comes with a variety of build options that can turn on/off features. Most notably, we allow you to build the application with all TCP/IP networking code disabled. Please note that we still require and link against Qt5's network library in order to use local named pipes on all operating systems. Each of these build options are supplied at the time of calling cmake:
|
||||
|
||||
```
|
||||
-DWITH_XC_AUTOTYPE=[ON|OFF] Enable/Disable Auto-Type (default: ON)
|
||||
-DWITH_XC_YUBIKEY=[ON|OFF] Enable/Disable YubiKey HMAC-SHA1 authentication support (default: OFF)
|
||||
-DWITH_XC_BROWSER=[ON|OFF] Enable/Disable KeePassXC-Browser extension support (default: OFF)
|
||||
-DWITH_XC_BROWSER_PASSKEYS=[ON|OFF] Enable/Disable Passkeys support for browser integration (default: OFF)
|
||||
-DWITH_XC_NETWORKING=[ON|OFF] Enable/Disable Networking support (e.g., favicon downloading) (default: OFF)
|
||||
-DWITH_XC_SSHAGENT=[ON|OFF] Enable/Disable SSHAgent support (default: OFF)
|
||||
-DWITH_XC_FDOSECRETS=[ON|OFF] (Linux Only) Enable/Disable Freedesktop.org Secrets Service support (default:OFF)
|
||||
-DWITH_XC_KEESHARE=[ON|OFF] Enable/Disable KeeShare group synchronization extension (default: OFF)
|
||||
-DWITH_XC_ALL=[ON|OFF] Enable/Disable compiling all plugins above (default: OFF)
|
||||
|
||||
-DWITH_XC_UPDATECHECK=[ON|OFF] Enable/Disable automatic updating checking (requires WITH_XC_NETWORKING) (default: ON)
|
||||
|
||||
-DWITH_TESTS=[ON|OFF] Enable/Disable building of unit tests (default: ON)
|
||||
-DWITH_GUI_TESTS=[ON|OFF] Enable/Disable building of GUI tests (default: OFF)
|
||||
-DWITH_DEV_BUILD=[ON|OFF] Enable/Disable deprecated method warnings (default: OFF)
|
||||
-DWITH_ASAN=[ON|OFF] Enable/Disable address sanitizer checks (Linux / macOS only) (default: OFF)
|
||||
-DWITH_COVERAGE=[ON|OFF] Enable/Disable coverage tests (GCC only) (default: OFF)
|
||||
-DWITH_APP_BUNDLE=[ON|OFF] Enable Application Bundle for macOS (default: ON)
|
||||
|
||||
-DKEEPASSXC_BUILD_TYPE=[Snapshot|PreRelease|Release] Set the build type to show/hide stability warnings (default: "Snapshot")
|
||||
-DKEEPASSXC_DIST_TYPE=[Snap|AppImage|Other] Specify the distribution method (default: "Other")
|
||||
-DOVERRIDE_VERSION=[X.X.X] Specify a version number when building. Used with snapshot builds (default: "")
|
||||
-DGIT_HEAD_OVERRIDE=[XXXXXXX] Specify the 7 digit git commit ref for this build. Used with distribution builds (default: "")
|
||||
```
|
||||
|
||||
Installation
|
||||
============
|
||||
|
||||
To install this binary execute the following:
|
||||
After you have successfully built KeePassXC, install the binary by executing the following:
|
||||
|
||||
```bash
|
||||
```
|
||||
sudo make install
|
||||
```
|
||||
|
||||
You can specify the destination dir with
|
||||
```
|
||||
DESTDIR=X
|
||||
```
|
||||
|
||||
|
||||
Packaging
|
||||
=========
|
||||
|
||||
You can create a package to redistribute KeePassXC (zip, deb, rpm, dmg, etc..)
|
||||
```
|
||||
make package
|
||||
```
|
||||
You can create a package to redistribute KeePassXC (zip, deb, rpm, dmg, etc..). Refer to [keepassxc-packaging](https://github.com/keepassxreboot/keepassxc-packaging) for packaging scripts.
|
||||
|
||||
To package using CMake, run the following command using whichever [generators](https://cmake.org/cmake/help/latest/manual/cpack-generators.7.html) you would like to package with.
|
||||
|
||||
```
|
||||
cpack -G "ZIP;WIX"
|
||||
```
|
||||
|
||||
Testing
|
||||
=======
|
||||
|
||||
You can perform test on the executable
|
||||
You can perform tests on the built executables with:
|
||||
```
|
||||
make test
|
||||
make test ARGS+="--output-on-failure"
|
||||
```
|
||||
|
||||
On Linux, if you are not currently running on an X Server or Wayland, run the tests as follows:
|
||||
```
|
||||
make test ARGS+="-E test\(cli\|gui\) --output-on-failure"
|
||||
xvfb-run -e errors -a --server-args="-screen 0 1024x768x24" make test ARGS+="-R test\(cli\|gui\) --output-on-failure"
|
||||
```
|
||||
|
||||
Common parameters:
|
||||
|
||||
@@ -1,23 +0,0 @@
|
||||
Boost Software License - Version 1.0 - August 17th, 2003
|
||||
|
||||
Permission is hereby granted, free of charge, to any person or organization
|
||||
obtaining a copy of the software and accompanying documentation covered by
|
||||
this license (the "Software") to use, reproduce, display, distribute,
|
||||
execute, and transmit the Software, and to prepare derivative works of the
|
||||
Software, and to permit third-parties to whom the Software is furnished to
|
||||
do so, all subject to the following:
|
||||
|
||||
The copyright notices in the Software and this entire statement, including
|
||||
the above license grant, this restriction and the following disclaimer,
|
||||
must be included in all copies of the Software, in whole or in part, and
|
||||
all derivative works of the Software, unless such copies or derivative
|
||||
works are solely in the form of machine-executable object code generated by
|
||||
a source language processor.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
|
||||
SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
|
||||
FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
|
||||
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||
DEALINGS IN THE SOFTWARE.
|
||||
@@ -1,8 +1,7 @@
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 3, 29 June 2007
|
||||
|
||||
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
|
||||
Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
@@ -646,7 +645,7 @@ the "copyright" line and a pointer to where the full notice is found.
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
@@ -665,12 +664,11 @@ might be different; for a GUI interface, you would use an "about box".
|
||||
You should also get your employer (if you work as a programmer) or school,
|
||||
if any, to sign a "copyright disclaimer" for the program, if necessary.
|
||||
For more information on this, and how to apply and follow the GNU GPL, see
|
||||
<http://www.gnu.org/licenses/>.
|
||||
<https://www.gnu.org/licenses/>.
|
||||
|
||||
The GNU General Public License does not permit incorporating your program
|
||||
into proprietary programs. If your program is a subroutine library, you
|
||||
may consider it more useful to permit linking proprietary applications with
|
||||
the library. If this is what you want to do, use the GNU Lesser General
|
||||
Public License instead of this License. But first, please read
|
||||
<http://www.gnu.org/philosophy/why-not-lgpl.html>.
|
||||
|
||||
<https://www.gnu.org/licenses/why-not-lgpl.html>.
|
||||
|
||||
@@ -55,7 +55,7 @@ modified by someone else and passed on, the recipients should know
|
||||
that what they have is not the original version, so that the original
|
||||
author's reputation will not be affected by problems that might be
|
||||
introduced by others.
|
||||
|
||||
|
||||
Finally, software patents pose a constant threat to the existence of
|
||||
any free program. We wish to make sure that a company cannot
|
||||
effectively restrict the users of a free program by obtaining a
|
||||
@@ -111,7 +111,7 @@ modification follow. Pay close attention to the difference between a
|
||||
"work based on the library" and a "work that uses the library". The
|
||||
former contains code derived from the library, whereas the latter must
|
||||
be combined with the library in order to run.
|
||||
|
||||
|
||||
GNU LESSER GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
@@ -158,7 +158,7 @@ Library.
|
||||
You may charge a fee for the physical act of transferring a copy,
|
||||
and you may at your option offer warranty protection in exchange for a
|
||||
fee.
|
||||
|
||||
|
||||
2. You may modify your copy or copies of the Library or any portion
|
||||
of it, thus forming a work based on the Library, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
@@ -216,7 +216,7 @@ instead of to this License. (If a newer version than version 2 of the
|
||||
ordinary GNU General Public License has appeared, then you can specify
|
||||
that version instead if you wish.) Do not make any other change in
|
||||
these notices.
|
||||
|
||||
|
||||
Once this change is made in a given copy, it is irreversible for
|
||||
that copy, so the ordinary GNU General Public License applies to all
|
||||
subsequent copies and derivative works made from that copy.
|
||||
@@ -267,7 +267,7 @@ Library will still fall under Section 6.)
|
||||
distribute the object code for the work under the terms of Section 6.
|
||||
Any executables containing that work also fall under Section 6,
|
||||
whether or not they are linked directly with the Library itself.
|
||||
|
||||
|
||||
6. As an exception to the Sections above, you may also combine or
|
||||
link a "work that uses the Library" with the Library to produce a
|
||||
work containing portions of the Library, and distribute that work
|
||||
@@ -329,7 +329,7 @@ restrictions of other proprietary libraries that do not normally
|
||||
accompany the operating system. Such a contradiction means you cannot
|
||||
use both them and the Library together in an executable that you
|
||||
distribute.
|
||||
|
||||
|
||||
7. You may place library facilities that are a work based on the
|
||||
Library side-by-side in a single library together with other library
|
||||
facilities not covered by this License, and distribute such a combined
|
||||
@@ -370,7 +370,7 @@ subject to these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties with
|
||||
this License.
|
||||
|
||||
|
||||
11. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
@@ -422,7 +422,7 @@ conditions either of that version or of any later version published by
|
||||
the Free Software Foundation. If the Library does not specify a
|
||||
license version number, you may choose any version ever published by
|
||||
the Free Software Foundation.
|
||||
|
||||
|
||||
14. If you wish to incorporate parts of the Library into other free
|
||||
programs whose distribution conditions are incompatible with these,
|
||||
write to the author to ask for permission. For software which is
|
||||
@@ -456,7 +456,7 @@ SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
|
||||
DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
|
||||
How to Apply These Terms to Your New Libraries
|
||||
|
||||
If you develop a new library, and you want it to be of the greatest
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
GNU LESSER GENERAL PUBLIC LICENSE
|
||||
Version 3, 29 June 2007
|
||||
|
||||
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
|
||||
Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
|
||||
19
LICENSE.MIT
Normal file
@@ -0,0 +1,19 @@
|
||||
The MIT License (MIT)
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
96
LICENSE.OFL
Normal file
@@ -0,0 +1,96 @@
|
||||
Copyright (c) 2014, Austin Andrews (http://materialdesignicons.com/),
|
||||
with Reserved Font Name Material Design Icons.
|
||||
Copyright (c) 2014, Google (http://www.google.com/design/)
|
||||
uses the license at https://github.com/google/material-design-icons/blob/master/LICENSE
|
||||
|
||||
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
||||
This license is copied below, and is also available with a FAQ at:
|
||||
http://scripts.sil.org/OFL
|
||||
|
||||
|
||||
-----------------------------------------------------------
|
||||
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
||||
-----------------------------------------------------------
|
||||
|
||||
PREAMBLE
|
||||
The goals of the Open Font License (OFL) are to stimulate worldwide
|
||||
development of collaborative font projects, to support the font creation
|
||||
efforts of academic and linguistic communities, and to provide a free and
|
||||
open framework in which fonts may be shared and improved in partnership
|
||||
with others.
|
||||
|
||||
The OFL allows the licensed fonts to be used, studied, modified and
|
||||
redistributed freely as long as they are not sold by themselves. The
|
||||
fonts, including any derivative works, can be bundled, embedded,
|
||||
redistributed and/or sold with any software provided that any reserved
|
||||
names are not used by derivative works. The fonts and derivatives,
|
||||
however, cannot be released under any other type of license. The
|
||||
requirement for fonts to remain under this license does not apply
|
||||
to any document created using the fonts or their derivatives.
|
||||
|
||||
DEFINITIONS
|
||||
"Font Software" refers to the set of files released by the Copyright
|
||||
Holder(s) under this license and clearly marked as such. This may
|
||||
include source files, build scripts and documentation.
|
||||
|
||||
"Reserved Font Name" refers to any names specified as such after the
|
||||
copyright statement(s).
|
||||
|
||||
"Original Version" refers to the collection of Font Software components as
|
||||
distributed by the Copyright Holder(s).
|
||||
|
||||
"Modified Version" refers to any derivative made by adding to, deleting,
|
||||
or substituting -- in part or in whole -- any of the components of the
|
||||
Original Version, by changing formats or by porting the Font Software to a
|
||||
new environment.
|
||||
|
||||
"Author" refers to any designer, engineer, programmer, technical
|
||||
writer or other person who contributed to the Font Software.
|
||||
|
||||
PERMISSION & CONDITIONS
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of the Font Software, to use, study, copy, merge, embed, modify,
|
||||
redistribute, and sell modified and unmodified copies of the Font
|
||||
Software, subject to the following conditions:
|
||||
|
||||
1) Neither the Font Software nor any of its individual components,
|
||||
in Original or Modified Versions, may be sold by itself.
|
||||
|
||||
2) Original or Modified Versions of the Font Software may be bundled,
|
||||
redistributed and/or sold with any software, provided that each copy
|
||||
contains the above copyright notice and this license. These can be
|
||||
included either as stand-alone text files, human-readable headers or
|
||||
in the appropriate machine-readable metadata fields within text or
|
||||
binary files as long as those fields can be easily viewed by the user.
|
||||
|
||||
3) No Modified Version of the Font Software may use the Reserved Font
|
||||
Name(s) unless explicit written permission is granted by the corresponding
|
||||
Copyright Holder. This restriction only applies to the primary font name as
|
||||
presented to the users.
|
||||
|
||||
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
||||
Software shall not be used to promote, endorse or advertise any
|
||||
Modified Version, except to acknowledge the contribution(s) of the
|
||||
Copyright Holder(s) and the Author(s) or with their explicit written
|
||||
permission.
|
||||
|
||||
5) The Font Software, modified or unmodified, in part or in whole,
|
||||
must be distributed entirely under this license, and must not be
|
||||
distributed under any other license. The requirement for fonts to
|
||||
remain under this license does not apply to any document created
|
||||
using the Font Software.
|
||||
|
||||
TERMINATION
|
||||
This license becomes null and void if any of the above conditions are
|
||||
not met.
|
||||
|
||||
DISCLAIMER
|
||||
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
||||
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
||||
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
||||
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
||||
OTHER DEALINGS IN THE FONT SOFTWARE.
|
||||
108
README.md
@@ -1,78 +1,60 @@
|
||||
# <img src="https://keepassxc.org/logo.png" width="40" height="40"/> KeePassXC [](https://travis-ci.org/keepassxreboot/keepassxc) [](https://coveralls.io/github/keepassxreboot/keepassxc)
|
||||
# <img src="https://keepassxc.org/assets/img/keepassxc.svg" width="40" height="40"/> KeePassXC
|
||||
[](https://bestpractices.coreinfrastructure.org/projects/6326)
|
||||
[/statusIcon)](https://ci.keepassxc.org/?guest=1)
|
||||
[](https://codecov.io/gh/keepassxreboot/keepassxc)
|
||||
[](https://github.com/keepassxreboot/keepassxc/releases/)
|
||||
|
||||
KeePass Cross-platform Community Edition
|
||||
[](https://app.element.io/#/room/#keepassxc:mozilla.org)
|
||||
[](https://app.element.io/#/room/#keepassxc-dev:mozilla.org)
|
||||
|
||||
## About
|
||||
[KeePassXC](https://keepassxc.org) is a community fork of [KeePassX](https://www.keepassx.org/) with the goal to extend and improve it with new features and bugfixes to provide a feature-rich, fully cross-platform and modern open-source password manager.
|
||||
[KeePassXC](https://keepassxc.org) is a modern, secure, and open-source password manager that stores and manages your most sensitive information. You can run KeePassXC on Windows, macOS, and Linux systems. KeePassXC is for people with extremely high demands of secure personal data management. It saves many different types of information, such as usernames, passwords, URLs, attachments, and notes in an offline, encrypted file that can be stored in any location, including private and public cloud solutions. For easy identification and management, user-defined titles and icons can be specified for entries. In addition, entries are sorted into customizable groups. An integrated search function allows you to use advanced patterns to easily find any entry in your database. A customizable, fast, and easy-to-use password generator utility allows you to create passwords with any combination of characters or easy to remember passphrases.
|
||||
|
||||
## Quick Start
|
||||
The [QuickStart Guide](https://keepassxc.org/docs/KeePassXC_GettingStarted.html) gets you started using KeePassXC on your Windows, macOS, or Linux computer using pre-compiled binaries from the [downloads page](https://keepassxc.org/download). Additionally, individual Linux distributions may ship their own versions, so please check your distribution's package list to see if KeePassXC is available. Detailed documentation is available in the [User Guide](https://keepassxc.org/docs/KeePassXC_UserGuide.html).
|
||||
|
||||
## Additional features compared to KeePassX
|
||||
- Auto-Type on all three major platforms (Linux, Windows, OS X)
|
||||
- Stand-alone password generator
|
||||
- Password strength meter
|
||||
- YubiKey HMAC-SHA1 authentication for unlocking databases
|
||||
- Using website favicons as entry icons
|
||||
- Merging of databases
|
||||
- Automatic reload when the database changed on disk
|
||||
- KeePassHTTP support for use with KeePassHTTP-Connector for [Mozilla Firefox](https://addons.mozilla.org/en-US/firefox/addon/keepasshttp-connector/) and [Google Chrome or Chromium](https://chrome.google.com/webstore/detail/keepasshttp-connector/dafgdjggglmmknipkhngniifhplpcldb), and [passafari](https://github.com/mmichaa/passafari.safariextension/) in Safari.
|
||||
- Many bug fixes
|
||||
## Features List
|
||||
KeePassXC has numerous features for novice and power users alike. Our goal is to create an application that can be used by anyone while still offering advanced features to those that need them.
|
||||
|
||||
For a full list of features and changes, read the [CHANGELOG](CHANGELOG) document.
|
||||
### Basic
|
||||
* Create, open, and save databases in the KDBX format (KeePass-compatible with KDBX4 and KDBX3)
|
||||
* Store sensitive information in entries that are organized by groups
|
||||
* Search for entries
|
||||
* Password generator
|
||||
* Auto-Type passwords into applications
|
||||
* Browser integration with Google Chrome, Mozilla Firefox, Microsoft Edge, Chromium, Vivaldi, Brave, and Tor-Browser
|
||||
* Entry icon download
|
||||
* Import databases from CSV, 1Password, and KeePass1 formats
|
||||
|
||||
### Note about KeePassHTTP
|
||||
KeePassHTTP is not a highly secure protocol and has certain flaw which allow an attacker to decrypt your passwords when they manage to intercept communication between a KeePassHTTP server and PassIFox/chromeIPass over a network connection (see [here](https://github.com/pfn/keepasshttp/issues/258) and [here](https://github.com/keepassxreboot/keepassxc/issues/147)). KeePassXC therefore strictly limits communication between itself and the browser plugin to your local computer. As long as your computer is not compromised, your passwords are fairly safe that way, but use it at your own risk!
|
||||
### Advanced
|
||||
* Database reports (password health, HIBP, and statistics)
|
||||
* Database export to CSV and HTML formats
|
||||
* TOTP storage and generation
|
||||
* Field references between entries
|
||||
* File attachments and custom attributes
|
||||
* Entry history and data restoration
|
||||
* YubiKey/OnlyKey challenge-response support
|
||||
* Command line interface (keepassxc-cli)
|
||||
* Auto-Open databases
|
||||
* KeeShare shared databases (import, export, and synchronize)
|
||||
* SSH Agent integration
|
||||
* FreeDesktop.org Secret Service (replace Gnome keyring, etc.)
|
||||
* Additional encryption choices: Twofish and ChaCha20
|
||||
|
||||
### Installation
|
||||
Pre-compiled binaries can be found on the [downloads page](https://keepassxc.org/download). Additionally, individual Linux distributions may ship their own versions, so please check out your distribution's package list to see if KeePassXC is available.
|
||||
For a full list of changes, read the [CHANGELOG](CHANGELOG.md) document. \
|
||||
For a full list of keyboard shortcuts, see [KeyboardShortcuts.adoc](./docs/topics/KeyboardShortcuts.adoc)
|
||||
|
||||
### Building KeePassXC
|
||||
## Building KeePassXC
|
||||
|
||||
*More detailed instructions are available in the INSTALL file or on the [Wiki page](https://github.com/keepassxreboot/keepassxc/wiki/Building-KeePassXC).*
|
||||
Detailed instructions are available in the [Build and Install](./INSTALL.md) page and in the [Wiki](https://github.com/keepassxreboot/keepassxc/wiki/Building-KeePassXC).
|
||||
|
||||
First, you must download the KeePassXC [source tarball](https://keepassxc.org/download#source) or check out the latest version from our [Git repository](https://github.com/keepassxreboot/keepassxc).
|
||||
## Contributing
|
||||
|
||||
To clone the project from Git, `cd` to a suitable location and run
|
||||
We are always looking for suggestions on how to improve KeePassXC. If you find any bugs or have an idea for a new feature, please let us know by opening a report in the [issue tracker](https://github.com/keepassxreboot/keepassxc/issues) on GitHub, or join us on [Matrix community channel](https://matrix.to/#/!zUxwGnFkUyycpxeHeM:matrix.org?via=matrix.org) or [Matrix development channel](https://matrix.to/#/!RhJPJPGwQIFVQeXqZa:matrix.org?via=matrix.org), or on IRC in [Libera.Chat](https://web.libera.chat/) channels #keepassxc and #keepassxc-dev.
|
||||
|
||||
```bash
|
||||
git clone https://github.com/keepassxreboot/keepassxc.git
|
||||
```
|
||||
You may directly contribute your own code by submitting a pull request. Please read the [CONTRIBUTING](.github/CONTRIBUTING.md) document for further information.
|
||||
|
||||
This will clone the entire contents of the repository and check out the current `develop` branch.
|
||||
Contributors are required to adhere to the project's [Code of Conduct](CODE-OF-CONDUCT.md).
|
||||
|
||||
To update the project from within the project's folder, you can run the following command:
|
||||
## License
|
||||
|
||||
```bash
|
||||
git pull
|
||||
```
|
||||
|
||||
Once you have downloaded the source code, you can `cd` into the source code directory, build and install KeePassXC:
|
||||
|
||||
```bash
|
||||
mkdir build
|
||||
cd build
|
||||
cmake -DWITH_TESTS=OFF ..
|
||||
make -j8
|
||||
sudo make install
|
||||
```
|
||||
|
||||
cmake accepts the following options:
|
||||
|
||||
```
|
||||
-DWITH_XC_AUTOTYPE=[ON|OFF] Enable/Disable Auto-Type (default: ON)
|
||||
-DWITH_XC_HTTP=[ON|OFF] Enable/Disable KeePassHTTP and custom icon downloads (default: OFF)
|
||||
-DWITH_XC_YUBIKEY=[ON|OFF] Enable/Disable YubiKey HMAC-SHA1 authentication support (default: OFF)
|
||||
|
||||
-DWITH_TESTS=[ON|OFF] Enable/Disable building of unit tests (default: ON)
|
||||
-DWITH_GUI_TESTS=[ON|OFF] Enable/Disable building of GUI tests (default: OFF)
|
||||
-DWITH_DEV_BUILD=[ON|OFF] Enable/Disable deprecated method warnings (default: OFF)
|
||||
-DWITH_ASAN=[ON|OFF] Enable/Disable address sanitizer checks (Linux only) (default: OFF)
|
||||
-DWITH_COVERAGE=[ON|OFF] Enable/Disable coverage tests (GCC only) (default: OFF)
|
||||
```
|
||||
|
||||
### Contributing
|
||||
|
||||
We are always looking for suggestions how to improve our application. If you find any bugs or have an idea for a new feature, please let us know by opening a report in our [issue tracker](https://github.com/keepassxreboot/keepassxc/issues) on GitHub or join us on IRC on freenode channels #keepassxc or #keepassxc-dev.
|
||||
|
||||
You can of course also directly contribute your own code. We are happy to accept your pull requests.
|
||||
|
||||
Please read the [CONTRIBUTING document](.github/CONTRIBUTING.md) for further information.
|
||||
KeePassXC code is licensed under GPL-2 or GPL-3. Additional licensing for third-party files is detailed in [COPYING](./COPYING).
|
||||
|
||||
59
cmake/CLangFormat.cmake
Normal file
@@ -0,0 +1,59 @@
|
||||
# Copyright (C) 2017 KeePassXC Team <team@keepassxc.org>
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 2 or (at your option)
|
||||
# version 3 of the License.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
set(EXCLUDED_DIRS
|
||||
# third-party directories
|
||||
src/thirdparty
|
||||
# objective-c directories
|
||||
src/touchid
|
||||
src/autotype/mac
|
||||
src/gui/osutils/macutils)
|
||||
|
||||
set(EXCLUDED_FILES
|
||||
# third-party files
|
||||
src/streams/qtiocompressor.\\*
|
||||
src/gui/KMessageWidget.\\*
|
||||
src/gui/MainWindowAdaptor.\\*
|
||||
src/gui/tag/TagsEdit.\\*
|
||||
tests/modeltest.\\*
|
||||
# objective-c files
|
||||
src/core/ScreenLockListenerMac.\\*)
|
||||
|
||||
set(FIND_EXCLUDE_DIR_EXPR "")
|
||||
foreach(EXCLUDE ${EXCLUDED_DIRS})
|
||||
list(APPEND FIND_EXCLUDE_DIR_EXPR -o -path "${EXCLUDE}" -prune)
|
||||
endforeach()
|
||||
|
||||
set(FIND_EXCLUDE_FILE_EXPR "")
|
||||
foreach(EXCLUDE ${EXCLUDED_FILES})
|
||||
if(FIND_EXCLUDE_FILE_EXPR)
|
||||
list(APPEND FIND_EXCLUDE_FILE_EXPR -o)
|
||||
endif()
|
||||
list(APPEND FIND_EXCLUDE_FILE_EXPR -path "${EXCLUDE}")
|
||||
endforeach()
|
||||
if(FIND_EXCLUDE_FILE_EXPR)
|
||||
set(FIND_EXCLUDE_FILE_EXPR -a -not "\\(" ${FIND_EXCLUDE_FILE_EXPR} "\\)")
|
||||
endif()
|
||||
|
||||
add_custom_target(format)
|
||||
|
||||
add_custom_command(
|
||||
TARGET format
|
||||
PRE_BUILD
|
||||
COMMAND find src tests "\\(" -name "\\*.h" -o -name "\\*.cpp" ${FIND_EXCLUDE_DIR_EXPR} "\\)"
|
||||
${FIND_EXCLUDE_FILE_EXPR} -type f -print0 | xargs -0 -P0 -n10 clang-format -style=file -i
|
||||
|
||||
COMMENT "Formatting source files..."
|
||||
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR})
|
||||
@@ -1,4 +1,5 @@
|
||||
# Copyright (c) 2012 - 2015, Lars Bilke
|
||||
# Copyright (c) 2012 - 2017, Lars Bilke
|
||||
# Copyright (c) 2021 KeePassXC Team
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without modification,
|
||||
@@ -25,173 +26,218 @@
|
||||
# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
#
|
||||
#
|
||||
#
|
||||
# 2012-01-31, Lars Bilke
|
||||
# - Enable Code Coverage
|
||||
#
|
||||
# 2013-09-17, Joakim Söderberg
|
||||
# - Added support for Clang.
|
||||
# - Some additional usage instructions.
|
||||
#
|
||||
# USAGE:
|
||||
|
||||
# 0. (Mac only) If you use Xcode 5.1 make sure to patch geninfo as described here:
|
||||
# http://stackoverflow.com/a/22404544/80480
|
||||
#
|
||||
# 1. Copy this file into your cmake modules path.
|
||||
#
|
||||
# 2. Add the following line to your CMakeLists.txt:
|
||||
# INCLUDE(CodeCoverage)
|
||||
#
|
||||
# 3. Set compiler flags to turn off optimization and enable coverage:
|
||||
# SET(CMAKE_CXX_FLAGS "-g -O0 -fprofile-arcs -ftest-coverage")
|
||||
# SET(CMAKE_C_FLAGS "-g -O0 -fprofile-arcs -ftest-coverage")
|
||||
#
|
||||
# 3. Use the function SETUP_TARGET_FOR_COVERAGE to create a custom make target
|
||||
# which runs your test executable and produces a lcov code coverage report:
|
||||
# Example:
|
||||
# SETUP_TARGET_FOR_COVERAGE(
|
||||
# my_coverage_target # Name for custom target.
|
||||
# test_driver # Name of the test driver executable that runs the tests.
|
||||
# # NOTE! This should always have a ZERO as exit code
|
||||
# # otherwise the coverage generation will not complete.
|
||||
# coverage # Name of output directory.
|
||||
# )
|
||||
#
|
||||
# 4. Build a Debug build:
|
||||
# cmake -DCMAKE_BUILD_TYPE=Debug ..
|
||||
# make
|
||||
# make my_coverage_target
|
||||
#
|
||||
#
|
||||
include(CMakeParseArguments)
|
||||
|
||||
# Check prereqs
|
||||
FIND_PROGRAM( GCOV_PATH gcov )
|
||||
FIND_PROGRAM( LCOV_PATH lcov )
|
||||
FIND_PROGRAM( GENHTML_PATH genhtml )
|
||||
FIND_PROGRAM( GCOVR_PATH gcovr PATHS ${CMAKE_SOURCE_DIR}/tests)
|
||||
find_program(GCOV_PATH gcov)
|
||||
find_program(LLVM_COV_PATH llvm-cov)
|
||||
find_program(LLVM_PROFDATA_PATH llvm-profdata)
|
||||
find_program(XCRUN_PATH xcrun)
|
||||
find_program(GENHTML_PATH NAMES genhtml genhtml.perl genhtml.bat)
|
||||
find_program(GCOVR_PATH gcovr PATHS ${CMAKE_SOURCE_DIR}/scripts/test)
|
||||
|
||||
IF(NOT GCOV_PATH)
|
||||
MESSAGE(FATAL_ERROR "gcov not found! Aborting...")
|
||||
ENDIF() # NOT GCOV_PATH
|
||||
set(COVERAGE_COMPILER_FLAGS "-g -O0" CACHE INTERNAL "")
|
||||
if(CMAKE_COMPILER_IS_GNUCXX)
|
||||
set(COVERAGE_COMPILER_FLAGS "${COVERAGE_COMPILER_FLAGS} --coverage -fprofile-arcs -ftest-coverage")
|
||||
elseif(CMAKE_COMPILER_IS_CLANGXX)
|
||||
set(COVERAGE_COMPILER_FLAGS "${COVERAGE_COMPILER_FLAGS} -fprofile-instr-generate -fcoverage-mapping")
|
||||
endif()
|
||||
|
||||
IF("${CMAKE_CXX_COMPILER_ID}" MATCHES "(Apple)?[Cc]lang")
|
||||
IF("${CMAKE_CXX_COMPILER_VERSION}" VERSION_LESS 3)
|
||||
MESSAGE(FATAL_ERROR "Clang version must be 3.0.0 or greater! Aborting...")
|
||||
ENDIF()
|
||||
ELSEIF(NOT CMAKE_COMPILER_IS_GNUCXX)
|
||||
MESSAGE(FATAL_ERROR "Compiler is not GNU gcc! Aborting...")
|
||||
ENDIF() # CHECK VALID COMPILER
|
||||
set(CMAKE_COVERAGE_FORMAT
|
||||
"html" "xml"
|
||||
CACHE STRING "Coverage report output format.")
|
||||
set_property(CACHE CMAKE_COVERAGE_FORMAT PROPERTY STRINGS "html" "txt")
|
||||
|
||||
SET(CMAKE_CXX_FLAGS_COVERAGE
|
||||
"-g -O0 --coverage -fprofile-arcs -ftest-coverage"
|
||||
CACHE STRING "Flags used by the C++ compiler during coverage builds."
|
||||
FORCE )
|
||||
SET(CMAKE_C_FLAGS_COVERAGE
|
||||
"-g -O0 --coverage -fprofile-arcs -ftest-coverage"
|
||||
CACHE STRING "Flags used by the C compiler during coverage builds."
|
||||
FORCE )
|
||||
SET(CMAKE_EXE_LINKER_FLAGS_COVERAGE
|
||||
set(CMAKE_CXX_FLAGS_COVERAGE
|
||||
${COVERAGE_COMPILER_FLAGS}
|
||||
CACHE STRING "Flags used by the C++ compiler during coverage builds.")
|
||||
set(CMAKE_C_FLAGS_COVERAGE
|
||||
${COVERAGE_COMPILER_FLAGS}
|
||||
CACHE STRING "Flags used by the C compiler during coverage builds.")
|
||||
set(CMAKE_EXE_LINKER_FLAGS_COVERAGE
|
||||
""
|
||||
CACHE STRING "Flags used for linking binaries during coverage builds."
|
||||
FORCE )
|
||||
SET(CMAKE_SHARED_LINKER_FLAGS_COVERAGE
|
||||
CACHE STRING "Flags used for linking binaries during coverage builds.")
|
||||
set(CMAKE_SHARED_LINKER_FLAGS_COVERAGE
|
||||
""
|
||||
CACHE STRING "Flags used by the shared libraries linker during coverage builds."
|
||||
FORCE )
|
||||
MARK_AS_ADVANCED(
|
||||
CACHE STRING "Flags used by the shared libraries linker during coverage builds.")
|
||||
mark_as_advanced(
|
||||
CMAKE_COVERAGE_FORMAT
|
||||
CMAKE_CXX_FLAGS_COVERAGE
|
||||
CMAKE_C_FLAGS_COVERAGE
|
||||
CMAKE_EXE_LINKER_FLAGS_COVERAGE
|
||||
CMAKE_SHARED_LINKER_FLAGS_COVERAGE)
|
||||
|
||||
IF ( NOT (CMAKE_BUILD_TYPE STREQUAL "Debug" OR CMAKE_BUILD_TYPE STREQUAL "Coverage"))
|
||||
MESSAGE( WARNING "Code coverage results with an optimized (non-Debug) build may be misleading" )
|
||||
ENDIF() # NOT CMAKE_BUILD_TYPE STREQUAL "Debug"
|
||||
if(NOT CMAKE_BUILD_TYPE_LOWER STREQUAL "debug")
|
||||
message(WARNING "Code coverage results with an optimised (non-Debug) build may be misleading")
|
||||
endif() # NOT CMAKE_BUILD_TYPE STREQUAL "Debug"
|
||||
|
||||
if(CMAKE_COMPILER_IS_GNUCXX)
|
||||
if(NOT GCOV_PATH)
|
||||
message(FATAL_ERROR "gcov not found! Aborting...")
|
||||
endif() # NOT GCOV_PATH
|
||||
link_libraries(gcov)
|
||||
endif()
|
||||
|
||||
|
||||
# Param _targetname The name of new the custom make target
|
||||
# Param _testrunner The name of the target which runs the tests.
|
||||
# MUST return ZERO always, even on errors.
|
||||
# If not, no coverage report will be created!
|
||||
# Param _outputname lcov output is generated as _outputname.info
|
||||
# HTML report is generated in _outputname/index.html
|
||||
# Optional fourth parameter is passed as arguments to _testrunner
|
||||
# Pass them in list form, e.g.: "-j;2" for -j 2
|
||||
FUNCTION(SETUP_TARGET_FOR_COVERAGE _targetname _testrunner _outputname)
|
||||
# Defines a target for running and collection code coverage information
|
||||
# Builds dependencies, runs the given executable and outputs reports.
|
||||
# NOTE! The executable should always have a ZERO as exit code otherwise
|
||||
# the coverage generation will not complete.
|
||||
#
|
||||
# SETUP_TARGET_FOR_COVERAGE_GCOVR(
|
||||
# NAME ctest_coverage # New target name
|
||||
# EXECUTABLE ctest -j ${PROCESSOR_COUNT} # Executable in PROJECT_BINARY_DIR
|
||||
# DEPENDENCIES executable_target # Dependencies to build first
|
||||
# )
|
||||
function(SETUP_TARGET_FOR_COVERAGE_GCOVR)
|
||||
|
||||
IF(NOT LCOV_PATH)
|
||||
MESSAGE(FATAL_ERROR "lcov not found! Aborting...")
|
||||
ENDIF() # NOT LCOV_PATH
|
||||
set(options NONE)
|
||||
set(oneValueArgs NAME SOURCES_ROOT)
|
||||
set(multiValueArgs EXECUTABLE EXECUTABLE_ARGS DEPENDENCIES)
|
||||
cmake_parse_arguments(Coverage "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
|
||||
|
||||
IF(NOT GENHTML_PATH)
|
||||
MESSAGE(FATAL_ERROR "genhtml not found! Aborting...")
|
||||
ENDIF() # NOT GENHTML_PATH
|
||||
if(NOT GCOVR_PATH)
|
||||
message(FATAL_ERROR "gcovr not found! Aborting...")
|
||||
endif() # NOT GCOVR_PATH
|
||||
|
||||
SET(coverage_info "${CMAKE_BINARY_DIR}/${_outputname}.info")
|
||||
SET(coverage_cleaned "${coverage_info}.cleaned")
|
||||
|
||||
SEPARATE_ARGUMENTS(test_command UNIX_COMMAND "${_testrunner}")
|
||||
|
||||
# Setup target
|
||||
ADD_CUSTOM_TARGET(${_targetname}
|
||||
|
||||
# Cleanup lcov
|
||||
${LCOV_PATH} --directory . --zerocounters
|
||||
# Combine excludes to several -e arguments
|
||||
set(GCOVR_EXCLUDES "")
|
||||
foreach(EXCLUDE ${COVERAGE_EXCLUDES})
|
||||
list(APPEND GCOVR_EXCLUDES "-e")
|
||||
list(APPEND GCOVR_EXCLUDES "${EXCLUDE}")
|
||||
endforeach()
|
||||
|
||||
add_custom_target(${Coverage_NAME}
|
||||
# Run tests
|
||||
COMMAND ${test_command} ${ARGV3}
|
||||
COMMAND ctest -C $<CONFIG> $ENV{ARGS} $$ARGS
|
||||
|
||||
# Capturing lcov counters and generating report
|
||||
COMMAND ${LCOV_PATH} --directory . --capture --output-file ${coverage_info}
|
||||
COMMAND ${LCOV_PATH} --remove ${coverage_info} 'tests/*' '/usr/*' --output-file ${coverage_cleaned}
|
||||
COMMAND ${GENHTML_PATH} -o ${_outputname} ${coverage_cleaned}
|
||||
COMMAND ${CMAKE_COMMAND} -E remove ${coverage_info} ${coverage_cleaned}
|
||||
|
||||
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
|
||||
COMMENT "Resetting code coverage counters to zero.\nProcessing code coverage counters and generating report."
|
||||
WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
|
||||
DEPENDS ${Coverage_DEPENDENCIES}
|
||||
)
|
||||
|
||||
# Show info where to find the report
|
||||
ADD_CUSTOM_COMMAND(TARGET ${_targetname} POST_BUILD
|
||||
COMMAND ;
|
||||
COMMENT "Open ./${_outputname}/index.html in your browser to view the coverage report."
|
||||
if("html" IN_LIST CMAKE_COVERAGE_FORMAT)
|
||||
add_custom_command(TARGET ${Coverage_NAME} POST_BUILD
|
||||
# Create folder
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory ${PROJECT_BINARY_DIR}/${Coverage_NAME}-html
|
||||
|
||||
# Running gcovr HTML
|
||||
COMMAND ${GCOVR_PATH} --html --html-details
|
||||
-r ${Coverage_SOURCES_ROOT} ${GCOVR_EXCLUDES}
|
||||
--object-directory=${PROJECT_BINARY_DIR}
|
||||
--exclude-unreachable-branches --exclude-throw-branches
|
||||
-o ${Coverage_NAME}-html/index.html
|
||||
WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
|
||||
COMMENT "Running gcovr to produce HTML code coverage report ${Coverage_NAME}-html."
|
||||
)
|
||||
endif()
|
||||
|
||||
ENDFUNCTION() # SETUP_TARGET_FOR_COVERAGE
|
||||
|
||||
# Param _targetname The name of new the custom make target
|
||||
# Param _testrunner The name of the target which runs the tests
|
||||
# Param _outputname cobertura output is generated as _outputname.xml
|
||||
# Optional fourth parameter is passed as arguments to _testrunner
|
||||
# Pass them in list form, e.g.: "-j;2" for -j 2
|
||||
FUNCTION(SETUP_TARGET_FOR_COVERAGE_COBERTURA _targetname _testrunner _outputname)
|
||||
|
||||
IF(NOT PYTHON_EXECUTABLE)
|
||||
MESSAGE(FATAL_ERROR "Python not found! Aborting...")
|
||||
ENDIF() # NOT PYTHON_EXECUTABLE
|
||||
|
||||
IF(NOT GCOVR_PATH)
|
||||
MESSAGE(FATAL_ERROR "gcovr not found! Aborting...")
|
||||
ENDIF() # NOT GCOVR_PATH
|
||||
|
||||
ADD_CUSTOM_TARGET(${_targetname}
|
||||
|
||||
# Run tests
|
||||
${_testrunner} ${ARGV3}
|
||||
|
||||
# Running gcovr
|
||||
COMMAND ${GCOVR_PATH} -x -r ${CMAKE_SOURCE_DIR} -e '${CMAKE_SOURCE_DIR}/tests/' -o ${_outputname}.xml
|
||||
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
|
||||
COMMENT "Running gcovr to produce Cobertura code coverage report."
|
||||
if("xml" IN_LIST CMAKE_COVERAGE_FORMAT)
|
||||
add_custom_command(TARGET ${Coverage_NAME} POST_BUILD
|
||||
# Running gcovr TXT
|
||||
COMMAND ${GCOVR_PATH} --xml
|
||||
-r ${Coverage_SOURCES_ROOT} ${GCOVR_EXCLUDES}
|
||||
--object-directory=${PROJECT_BINARY_DIR}
|
||||
--exclude-unreachable-branches --exclude-throw-branches
|
||||
-o ${Coverage_NAME}.xml
|
||||
WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
|
||||
COMMENT "Running gcovr to produce XML code coverage report ${Coverage_NAME}.xml."
|
||||
)
|
||||
endif()
|
||||
|
||||
# Show info where to find the report
|
||||
ADD_CUSTOM_COMMAND(TARGET ${_targetname} POST_BUILD
|
||||
COMMAND ;
|
||||
COMMENT "Cobertura code coverage report saved in ${_outputname}.xml."
|
||||
if("txt" IN_LIST CMAKE_COVERAGE_FORMAT)
|
||||
add_custom_command(TARGET ${Coverage_NAME} POST_BUILD
|
||||
# Running gcovr TXT
|
||||
COMMAND ${GCOVR_PATH}
|
||||
-r ${Coverage_SOURCES_ROOT} ${GCOVR_EXCLUDES}
|
||||
--object-directory=${PROJECT_BINARY_DIR}
|
||||
--exclude-unreachable-branches --exclude-throw-branches
|
||||
-o ${Coverage_NAME}.txt
|
||||
WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
|
||||
COMMENT "Running gcovr to produce TXT code coverage report ${Coverage_NAME}.txt."
|
||||
)
|
||||
endif()
|
||||
|
||||
ENDFUNCTION() # SETUP_TARGET_FOR_COVERAGE_COBERTURA
|
||||
endfunction() # SETUP_TARGET_FOR_COVERAGE_GCOVR
|
||||
|
||||
# Defines a target for running and collection code coverage information
|
||||
# Builds dependencies, runs the given executable and outputs reports.
|
||||
# NOTE! The executable should always have a ZERO as exit code otherwise
|
||||
# the coverage generation will not complete.
|
||||
#
|
||||
# SETUP_TARGET_FOR_COVERAGE_LLVM(
|
||||
# NAME ctest_coverage # New target name
|
||||
# EXECUTABLE ctest -j ${PROCESSOR_COUNT} # Executable in PROJECT_BINARY_DIR
|
||||
# DEPENDENCIES executable_target # Dependencies to build first
|
||||
# )
|
||||
function(SETUP_TARGET_FOR_COVERAGE_LLVM)
|
||||
|
||||
set(options NONE)
|
||||
set(oneValueArgs NAME SOURCES_ROOT PROF_FILE)
|
||||
set(multiValueArgs EXECUTABLE BINARY EXECUTABLE_ARGS DEPENDENCIES)
|
||||
cmake_parse_arguments(Coverage "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
|
||||
|
||||
if(XCRUN_PATH)
|
||||
set(LLVM_COV_PATH ${XCRUN_PATH} llvm-cov)
|
||||
set(LLVM_PROFDATA_PATH ${XCRUN_PATH} llvm-profdata)
|
||||
else()
|
||||
if(NOT LLVM_COV_PATH)
|
||||
message(FATAL_ERROR "llvm-cov not found! Aborting...")
|
||||
endif() # NOT LLVM_COV_PATH
|
||||
if(NOT LLVM_PROFDATA_PATH)
|
||||
message(FATAL_ERROR "llvm-profdata not found! Aborting...")
|
||||
endif() # NOT LLVM_PROFDATA_PATH
|
||||
endif() # XCRUN_PATH
|
||||
|
||||
set(LLVM_PROFILE_DIR ${PROJECT_BINARY_DIR}/llvm_profile)
|
||||
file(REMOVE_RECURSE ${LLVM_PROFILE_DIR})
|
||||
|
||||
set(COV_EXCLUDES "")
|
||||
foreach(EXCLUDE ${COVERAGE_EXCLUDES})
|
||||
list(APPEND COV_EXCLUDES "-ignore-filename-regex=${EXCLUDE}")
|
||||
endforeach()
|
||||
|
||||
list(GET Coverage_BINARY 0 COV_BINARY)
|
||||
if(Coverage_BINARY)
|
||||
list(REMOVE_AT Coverage_BINARY 0)
|
||||
foreach(BIN ${Coverage_BINARY})
|
||||
list(APPEND COV_BINARY -object ${BIN})
|
||||
endforeach()
|
||||
endif()
|
||||
|
||||
add_custom_target(${Coverage_NAME}
|
||||
COMMAND ${CMAKE_COMMAND} -E env LLVM_PROFILE_FILE=${LLVM_PROFILE_DIR}/profile-%p.profraw ctest -C $<CONFIG> $$ARGS
|
||||
|
||||
COMMAND ${LLVM_PROFDATA_PATH} merge -sparse ${LLVM_PROFILE_DIR}/* -o coverage.profdata
|
||||
WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
|
||||
DEPENDS ${Coverage_DEPENDENCIES})
|
||||
|
||||
if("html" IN_LIST CMAKE_COVERAGE_FORMAT)
|
||||
add_custom_command(TARGET ${Coverage_NAME} POST_BUILD
|
||||
COMMAND ${LLVM_COV_PATH} show -instr-profile=coverage.profdata ${COV_BINARY}
|
||||
--format=html --output-dir=${Coverage_NAME}-html ${COV_EXCLUDES} ${Coverage_SOURCES_ROOT}
|
||||
WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
|
||||
COMMENT "Running llvm-cov to produce HTML code coverage report ${Coverage_NAME}-html")
|
||||
endif()
|
||||
|
||||
if("xml" IN_LIST CMAKE_COVERAGE_FORMAT)
|
||||
message(WARNING "XML coverage report format not supported for llvm-cov")
|
||||
endif()
|
||||
|
||||
if("txt" IN_LIST CMAKE_COVERAGE_FORMAT)
|
||||
add_custom_command(TARGET ${Coverage_NAME} POST_BUILD
|
||||
COMMAND ${LLVM_COV_PATH} show -instr-profile=coverage.profdata ${COV_BINARY}
|
||||
--format=text ${COV_EXCLUDES} ${Coverage_SOURCES_ROOT} > ${Coverage_NAME}.txt
|
||||
|
||||
WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
|
||||
COMMENT "Running llvm-cov to produce TXT code coverage report ${Coverage_NAME}.txt.")
|
||||
endif()
|
||||
|
||||
endfunction() # SETUP_TARGET_FOR_COVERAGE_LLVM
|
||||
|
||||
|
||||
function(APPEND_COVERAGE_COMPILER_FLAGS)
|
||||
message(STATUS "Appending code coverage compiler flags: ${COVERAGE_COMPILER_FLAGS}")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${COVERAGE_COMPILER_FLAGS}" PARENT_SCOPE)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${COVERAGE_COMPILER_FLAGS}" PARENT_SCOPE)
|
||||
endfunction() # APPEND_COVERAGE_COMPILER_FLAGS
|
||||
|
||||
65
cmake/FindBotan.cmake
Normal file
@@ -0,0 +1,65 @@
|
||||
# - Find botan
|
||||
# Find the botan cryptographic library
|
||||
#
|
||||
# This module defines the following variables:
|
||||
# BOTAN_FOUND - True if library and include directory are found
|
||||
# If set to TRUE, the following are also defined:
|
||||
# BOTAN_INCLUDE_DIRS - The directory where to find the header file
|
||||
# BOTAN_LIBRARIES - Where to find the library files
|
||||
#
|
||||
# This file is in the public domain (https://github.com/vistle/vistle/blob/master/cmake/Modules/FindBOTAN.cmake)
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
|
||||
set(BOTAN_VERSIONS botan-3 botan-2)
|
||||
set(BOTAN_NAMES botan-3 botan-2 botan)
|
||||
set(BOTAN_NAMES_DEBUG botand-3 botand-2 botand botan botan-3)
|
||||
|
||||
find_path(
|
||||
BOTAN_INCLUDE_DIR
|
||||
NAMES botan/build.h
|
||||
PATH_SUFFIXES ${BOTAN_VERSIONS}
|
||||
DOC "The Botan include directory")
|
||||
if(BOTAN_INCLUDE_DIR)
|
||||
file(READ "${BOTAN_INCLUDE_DIR}/botan/build.h" build)
|
||||
string(REGEX MATCH "BOTAN_VERSION_MAJOR ([0-9]*)" _ ${build})
|
||||
set(BOTAN_VERSION_MAJOR ${CMAKE_MATCH_1})
|
||||
string(REGEX MATCH "BOTAN_VERSION_MINOR ([0-9]*)" _ ${build})
|
||||
set(BOTAN_VERSION_MINOR ${CMAKE_MATCH_1})
|
||||
string(REGEX MATCH "BOTAN_VERSION_PATCH ([0-9]*)" _ ${build})
|
||||
set(BOTAN_VERSION_PATCH ${CMAKE_MATCH_1})
|
||||
set(BOTAN_VERSION "${BOTAN_VERSION_MAJOR}.${BOTAN_VERSION_MINOR}.${BOTAN_VERSION_PATCH}")
|
||||
endif()
|
||||
|
||||
find_library(
|
||||
BOTAN_LIBRARY
|
||||
NAMES ${BOTAN_NAMES}
|
||||
PATH_SUFFIXES release/lib lib
|
||||
DOC "The Botan (release) library")
|
||||
if(MSVC)
|
||||
find_library(
|
||||
BOTAN_LIBRARY_DEBUG
|
||||
NAMES ${BOTAN_NAMES_DEBUG}
|
||||
PATH_SUFFIXES debug/lib lib
|
||||
DOC "The Botan debug library")
|
||||
find_package_handle_standard_args(
|
||||
Botan
|
||||
REQUIRED_VARS BOTAN_LIBRARY BOTAN_LIBRARY_DEBUG BOTAN_INCLUDE_DIR
|
||||
VERSION_VAR BOTAN_VERSION)
|
||||
else()
|
||||
find_package_handle_standard_args(
|
||||
Botan
|
||||
REQUIRED_VARS BOTAN_LIBRARY BOTAN_INCLUDE_DIR
|
||||
VERSION_VAR BOTAN_VERSION)
|
||||
endif()
|
||||
|
||||
if(BOTAN_FOUND)
|
||||
set(BOTAN_INCLUDE_DIRS ${BOTAN_INCLUDE_DIR})
|
||||
if(MSVC)
|
||||
set(BOTAN_LIBRARIES optimized ${BOTAN_LIBRARY} debug ${BOTAN_LIBRARY_DEBUG})
|
||||
else()
|
||||
set(BOTAN_LIBRARIES ${BOTAN_LIBRARY})
|
||||
endif()
|
||||
endif()
|
||||
|
||||
mark_as_advanced(BOTAN_INCLUDE_DIR BOTAN_LIBRARY BOTAN_LIBRARY_DEBUG)
|
||||
@@ -1,31 +0,0 @@
|
||||
# Copyright (C) 2011 Felix Geyer <debfx@fobos.de>
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 2 or (at your option)
|
||||
# version 3 of the License.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
find_path(GCRYPT_INCLUDE_DIR gcrypt.h)
|
||||
|
||||
find_library(GCRYPT_LIBRARIES gcrypt)
|
||||
|
||||
mark_as_advanced(GCRYPT_LIBRARIES GCRYPT_INCLUDE_DIR)
|
||||
|
||||
if(GCRYPT_INCLUDE_DIR AND EXISTS "${GCRYPT_INCLUDE_DIR}/gcrypt.h")
|
||||
file(STRINGS "${GCRYPT_INCLUDE_DIR}/gcrypt.h" GCRYPT_H REGEX "^#define GCRYPT_VERSION \"[^\"]*\"$")
|
||||
string(REGEX REPLACE "^.*GCRYPT_VERSION \"([0-9]+).*$" "\\1" GCRYPT_VERSION_MAJOR "${GCRYPT_H}")
|
||||
string(REGEX REPLACE "^.*GCRYPT_VERSION \"[0-9]+\\.([0-9]+).*$" "\\1" GCRYPT_VERSION_MINOR "${GCRYPT_H}")
|
||||
string(REGEX REPLACE "^.*GCRYPT_VERSION \"[0-9]+\\.[0-9]+\\.([0-9]+).*$" "\\1" GCRYPT_VERSION_PATCH "${GCRYPT_H}")
|
||||
set(GCRYPT_VERSION_STRING "${GCRYPT_VERSION_MAJOR}.${GCRYPT_VERSION_MINOR}.${GCRYPT_VERSION_PATCH}")
|
||||
endif()
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(Gcrypt DEFAULT_MSG GCRYPT_LIBRARIES GCRYPT_INCLUDE_DIR)
|
||||
9
cmake/FindMinizip.cmake
Normal file
@@ -0,0 +1,9 @@
|
||||
# MINIZIP_FOUND - Minizip library was found
|
||||
# MINIZIP_INCLUDE_DIR - Path to Minizip include dir
|
||||
# MINIZIP_LIBRARIES - List of Minizip libraries
|
||||
|
||||
find_library(MINIZIP_LIBRARIES NAMES minizip libminizip)
|
||||
find_path(MINIZIP_INCLUDE_DIR zip.h PATH_SUFFIXES minizip)
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(Minizip DEFAULT_MSG MINIZIP_LIBRARIES MINIZIP_INCLUDE_DIR)
|
||||
39
cmake/FindPCSC.cmake
Normal file
@@ -0,0 +1,39 @@
|
||||
# Copyright (C) 2021 KeePassXC Team <team@keepassxc.org>
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 2 or (at your option)
|
||||
# version 3 of the License.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
# Use pkgconfig on Linux
|
||||
if(NOT WIN32)
|
||||
find_package(PkgConfig QUIET)
|
||||
pkg_check_modules(PCSC libpcsclite)
|
||||
endif()
|
||||
|
||||
if(NOT PCSC_FOUND)
|
||||
# Search for PC/SC headers on Mac and Windows
|
||||
find_path(PCSC_INCLUDE_DIRS winscard.h
|
||||
HINTS
|
||||
${CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES}
|
||||
/usr/include/PCSC
|
||||
PATH_SUFFIXES PCSC)
|
||||
|
||||
# MAC library is PCSC, Windows library is WinSCard
|
||||
find_library(PCSC_LIBRARIES NAMES pcsclite libpcsclite WinSCard PCSC
|
||||
HINTS
|
||||
${CMAKE_C_IMPLICIT_LINK_DIRECTORIES})
|
||||
endif()
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(PCSC DEFAULT_MSG PCSC_LIBRARIES PCSC_INCLUDE_DIRS)
|
||||
|
||||
mark_as_advanced(PCSC_LIBRARIES PCSC_INCLUDE_DIRS)
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright (C) 2014 Kyle Manna <kyle@kylemanna.com>
|
||||
# Copyright (C) 2017 KeePassXC Team <team@keepassxc.org>
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
@@ -13,15 +13,17 @@
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
find_path(YUBIKEY_CORE_INCLUDE_DIR yubikey.h)
|
||||
find_path(YUBIKEY_PERS_INCLUDE_DIR ykcore.h PATH_SUFFIXES ykpers-1)
|
||||
set(YUBIKEY_INCLUDE_DIRS ${YUBIKEY_CORE_INCLUDE_DIR} ${YUBIKEY_PERS_INCLUDE_DIR})
|
||||
find_path(QRENCODE_INCLUDE_DIR NAMES qrencode.h)
|
||||
|
||||
find_library(YUBIKEY_CORE_LIBRARY yubikey)
|
||||
find_library(YUBIKEY_PERS_LIBRARY ykpers-1)
|
||||
set(YUBIKEY_LIBRARIES ${YUBIKEY_CORE_LIBRARY} ${YUBIKEY_PERS_LIBRARY})
|
||||
if(WIN32 AND MSVC)
|
||||
find_library(QRENCODE_LIBRARY_RELEASE qrencode)
|
||||
find_library(QRENCODE_LIBRARY_DEBUG qrencoded)
|
||||
set(QRENCODE_LIBRARY optimized ${QRENCODE_LIBRARY_RELEASE} debug ${QRENCODE_LIBRARY_DEBUG})
|
||||
else()
|
||||
find_library(QRENCODE_LIBRARY qrencode)
|
||||
endif()
|
||||
|
||||
mark_as_advanced(QRENCODE_LIBRARY QRENCODE_INCLUDE_DIR)
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(YubiKey DEFAULT_MSG YUBIKEY_LIBRARIES YUBIKEY_INCLUDE_DIRS)
|
||||
|
||||
mark_as_advanced(YUBIKEY_LIBRARIES YUBIKEY_INCLUDE_DIRS)
|
||||
find_package_handle_standard_args(QREncode DEFAULT_MSG QRENCODE_LIBRARY QRENCODE_INCLUDE_DIR)
|
||||
49
cmake/FindReadline.cmake
Normal file
@@ -0,0 +1,49 @@
|
||||
# Code copied from sethhall@github
|
||||
#
|
||||
# - Try to find readline include dirs and libraries
|
||||
#
|
||||
# Usage of this module as follows:
|
||||
#
|
||||
# find_package(Readline)
|
||||
#
|
||||
# Variables used by this module, they can change the default behaviour and need
|
||||
# to be set before calling find_package:
|
||||
#
|
||||
# Readline_ROOT_DIR Set this variable to the root installation of
|
||||
# readline if the module has problems finding the
|
||||
# proper installation path.
|
||||
#
|
||||
# Variables defined by this module:
|
||||
#
|
||||
# READLINE_FOUND System has readline, include and lib dirs found
|
||||
# Readline_INCLUDE_DIR The readline include directories.
|
||||
# Readline_LIBRARY The readline library.
|
||||
|
||||
find_path(Readline_ROOT_DIR
|
||||
NAMES include/readline/readline.h
|
||||
)
|
||||
|
||||
find_path(Readline_INCLUDE_DIR
|
||||
NAMES readline/readline.h
|
||||
HINTS ${Readline_ROOT_DIR}/include
|
||||
)
|
||||
|
||||
find_library(Readline_LIBRARY
|
||||
NAMES readline
|
||||
HINTS ${Readline_ROOT_DIR}/lib
|
||||
)
|
||||
|
||||
if(Readline_INCLUDE_DIR AND Readline_LIBRARY AND Ncurses_LIBRARY)
|
||||
set(READLINE_FOUND TRUE)
|
||||
else(Readline_INCLUDE_DIR AND Readline_LIBRARY AND Ncurses_LIBRARY)
|
||||
find_library(Readline_LIBRARY NAMES readline)
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(Readline DEFAULT_MSG Readline_INCLUDE_DIR Readline_LIBRARY )
|
||||
mark_as_advanced(Readline_INCLUDE_DIR Readline_LIBRARY)
|
||||
endif(Readline_INCLUDE_DIR AND Readline_LIBRARY AND Ncurses_LIBRARY)
|
||||
|
||||
mark_as_advanced(
|
||||
Readline_ROOT_DIR
|
||||
Readline_INCLUDE_DIR
|
||||
Readline_LIBRARY
|
||||
)
|
||||
@@ -1,188 +0,0 @@
|
||||
# - Define GNU standard installation directories
|
||||
# Provides install directory variables as defined for GNU software:
|
||||
# http://www.gnu.org/prep/standards/html_node/Directory-Variables.html
|
||||
# Inclusion of this module defines the following variables:
|
||||
# CMAKE_INSTALL_<dir> - destination for files of a given type
|
||||
# CMAKE_INSTALL_FULL_<dir> - corresponding absolute path
|
||||
# where <dir> is one of:
|
||||
# BINDIR - user executables (bin)
|
||||
# SBINDIR - system admin executables (sbin)
|
||||
# LIBEXECDIR - program executables (libexec)
|
||||
# SYSCONFDIR - read-only single-machine data (etc)
|
||||
# SHAREDSTATEDIR - modifiable architecture-independent data (com)
|
||||
# LOCALSTATEDIR - modifiable single-machine data (var)
|
||||
# LIBDIR - object code libraries (lib or lib64 or lib/<multiarch-tuple> on Debian)
|
||||
# INCLUDEDIR - C header files (include)
|
||||
# OLDINCLUDEDIR - C header files for non-gcc (/usr/include)
|
||||
# DATAROOTDIR - read-only architecture-independent data root (share)
|
||||
# DATADIR - read-only architecture-independent data (DATAROOTDIR)
|
||||
# INFODIR - info documentation (DATAROOTDIR/info)
|
||||
# LOCALEDIR - locale-dependent data (DATAROOTDIR/locale)
|
||||
# MANDIR - man documentation (DATAROOTDIR/man)
|
||||
# DOCDIR - documentation root (DATAROOTDIR/doc/PROJECT_NAME)
|
||||
# Each CMAKE_INSTALL_<dir> value may be passed to the DESTINATION options of
|
||||
# install() commands for the corresponding file type. If the includer does
|
||||
# not define a value the above-shown default will be used and the value will
|
||||
# appear in the cache for editing by the user.
|
||||
# Each CMAKE_INSTALL_FULL_<dir> value contains an absolute path constructed
|
||||
# from the corresponding destination by prepending (if necessary) the value
|
||||
# of CMAKE_INSTALL_PREFIX.
|
||||
|
||||
#=============================================================================
|
||||
# Copyright 2011 Nikita Krupen'ko <krnekit@gmail.com>
|
||||
# Copyright 2011 Kitware, Inc.
|
||||
#
|
||||
# Distributed under the OSI-approved BSD License (the "License");
|
||||
# see accompanying file Copyright.txt for details.
|
||||
#
|
||||
# This software is distributed WITHOUT ANY WARRANTY; without even the
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
# Installation directories
|
||||
#
|
||||
if(NOT DEFINED CMAKE_INSTALL_BINDIR)
|
||||
set(CMAKE_INSTALL_BINDIR "bin" CACHE PATH "user executables (bin)")
|
||||
endif()
|
||||
|
||||
if(NOT DEFINED CMAKE_INSTALL_SBINDIR)
|
||||
set(CMAKE_INSTALL_SBINDIR "sbin" CACHE PATH "system admin executables (sbin)")
|
||||
endif()
|
||||
|
||||
if(NOT DEFINED CMAKE_INSTALL_LIBEXECDIR)
|
||||
set(CMAKE_INSTALL_LIBEXECDIR "libexec" CACHE PATH "program executables (libexec)")
|
||||
endif()
|
||||
|
||||
if(NOT DEFINED CMAKE_INSTALL_SYSCONFDIR)
|
||||
set(CMAKE_INSTALL_SYSCONFDIR "etc" CACHE PATH "read-only single-machine data (etc)")
|
||||
endif()
|
||||
|
||||
if(NOT DEFINED CMAKE_INSTALL_SHAREDSTATEDIR)
|
||||
set(CMAKE_INSTALL_SHAREDSTATEDIR "com" CACHE PATH "modifiable architecture-independent data (com)")
|
||||
endif()
|
||||
|
||||
if(NOT DEFINED CMAKE_INSTALL_LOCALSTATEDIR)
|
||||
set(CMAKE_INSTALL_LOCALSTATEDIR "var" CACHE PATH "modifiable single-machine data (var)")
|
||||
endif()
|
||||
|
||||
if(NOT DEFINED CMAKE_INSTALL_LIBDIR)
|
||||
set(_LIBDIR_DEFAULT "lib")
|
||||
# Override this default 'lib' with 'lib64' iff:
|
||||
# - we are on Linux system but NOT cross-compiling
|
||||
# - we are NOT on debian
|
||||
# - we are on a 64 bits system
|
||||
# reason is: amd64 ABI: http://www.x86-64.org/documentation/abi.pdf
|
||||
# For Debian with multiarch, use 'lib/${CMAKE_LIBRARY_ARCHITECTURE}' if
|
||||
# CMAKE_LIBRARY_ARCHITECTURE is set (which contains e.g. "i386-linux-gnu"
|
||||
# See http://wiki.debian.org/Multiarch
|
||||
if((CMAKE_SYSTEM_NAME MATCHES "Linux|kFreeBSD" OR CMAKE_SYSTEM_NAME STREQUAL "GNU")
|
||||
AND NOT CMAKE_CROSSCOMPILING)
|
||||
if (EXISTS "/etc/debian_version") # is this a debian system ?
|
||||
if(CMAKE_LIBRARY_ARCHITECTURE)
|
||||
set(_LIBDIR_DEFAULT "lib/${CMAKE_LIBRARY_ARCHITECTURE}")
|
||||
endif()
|
||||
else() # not debian, rely on CMAKE_SIZEOF_VOID_P:
|
||||
if(NOT DEFINED CMAKE_SIZEOF_VOID_P)
|
||||
message(AUTHOR_WARNING
|
||||
"Unable to determine default CMAKE_INSTALL_LIBDIR directory because no target architecture is known. "
|
||||
"Please enable at least one language before including GNUInstallDirs.")
|
||||
else()
|
||||
if("${CMAKE_SIZEOF_VOID_P}" EQUAL "8")
|
||||
set(_LIBDIR_DEFAULT "lib64")
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
set(CMAKE_INSTALL_LIBDIR "${_LIBDIR_DEFAULT}" CACHE PATH "object code libraries (${_LIBDIR_DEFAULT})")
|
||||
endif()
|
||||
|
||||
if(NOT DEFINED CMAKE_INSTALL_INCLUDEDIR)
|
||||
set(CMAKE_INSTALL_INCLUDEDIR "include" CACHE PATH "C header files (include)")
|
||||
endif()
|
||||
|
||||
if(NOT DEFINED CMAKE_INSTALL_OLDINCLUDEDIR)
|
||||
set(CMAKE_INSTALL_OLDINCLUDEDIR "/usr/include" CACHE PATH "C header files for non-gcc (/usr/include)")
|
||||
endif()
|
||||
|
||||
if(NOT DEFINED CMAKE_INSTALL_DATAROOTDIR)
|
||||
set(CMAKE_INSTALL_DATAROOTDIR "share" CACHE PATH "read-only architecture-independent data root (share)")
|
||||
endif()
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# Values whose defaults are relative to DATAROOTDIR. Store empty values in
|
||||
# the cache and store the defaults in local variables if the cache values are
|
||||
# not set explicitly. This auto-updates the defaults as DATAROOTDIR changes.
|
||||
|
||||
if(NOT CMAKE_INSTALL_DATADIR)
|
||||
set(CMAKE_INSTALL_DATADIR "" CACHE PATH "read-only architecture-independent data (DATAROOTDIR)")
|
||||
set(CMAKE_INSTALL_DATADIR "${CMAKE_INSTALL_DATAROOTDIR}")
|
||||
endif()
|
||||
|
||||
if(NOT CMAKE_INSTALL_INFODIR)
|
||||
set(CMAKE_INSTALL_INFODIR "" CACHE PATH "info documentation (DATAROOTDIR/info)")
|
||||
set(CMAKE_INSTALL_INFODIR "${CMAKE_INSTALL_DATAROOTDIR}/info")
|
||||
endif()
|
||||
|
||||
if(NOT CMAKE_INSTALL_LOCALEDIR)
|
||||
set(CMAKE_INSTALL_LOCALEDIR "" CACHE PATH "locale-dependent data (DATAROOTDIR/locale)")
|
||||
set(CMAKE_INSTALL_LOCALEDIR "${CMAKE_INSTALL_DATAROOTDIR}/locale")
|
||||
endif()
|
||||
|
||||
if(NOT CMAKE_INSTALL_MANDIR)
|
||||
set(CMAKE_INSTALL_MANDIR "" CACHE PATH "man documentation (DATAROOTDIR/man)")
|
||||
set(CMAKE_INSTALL_MANDIR "${CMAKE_INSTALL_DATAROOTDIR}/man")
|
||||
endif()
|
||||
|
||||
if(NOT CMAKE_INSTALL_DOCDIR)
|
||||
set(CMAKE_INSTALL_DOCDIR "" CACHE PATH "documentation root (DATAROOTDIR/doc/PROJECT_NAME)")
|
||||
set(CMAKE_INSTALL_DOCDIR "${CMAKE_INSTALL_DATAROOTDIR}/doc/${PROJECT_NAME}")
|
||||
endif()
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
|
||||
mark_as_advanced(
|
||||
CMAKE_INSTALL_BINDIR
|
||||
CMAKE_INSTALL_SBINDIR
|
||||
CMAKE_INSTALL_LIBEXECDIR
|
||||
CMAKE_INSTALL_SYSCONFDIR
|
||||
CMAKE_INSTALL_SHAREDSTATEDIR
|
||||
CMAKE_INSTALL_LOCALSTATEDIR
|
||||
CMAKE_INSTALL_LIBDIR
|
||||
CMAKE_INSTALL_INCLUDEDIR
|
||||
CMAKE_INSTALL_OLDINCLUDEDIR
|
||||
CMAKE_INSTALL_DATAROOTDIR
|
||||
CMAKE_INSTALL_DATADIR
|
||||
CMAKE_INSTALL_INFODIR
|
||||
CMAKE_INSTALL_LOCALEDIR
|
||||
CMAKE_INSTALL_MANDIR
|
||||
CMAKE_INSTALL_DOCDIR
|
||||
)
|
||||
|
||||
# Result directories
|
||||
#
|
||||
foreach(dir
|
||||
BINDIR
|
||||
SBINDIR
|
||||
LIBEXECDIR
|
||||
SYSCONFDIR
|
||||
SHAREDSTATEDIR
|
||||
LOCALSTATEDIR
|
||||
LIBDIR
|
||||
INCLUDEDIR
|
||||
OLDINCLUDEDIR
|
||||
DATAROOTDIR
|
||||
DATADIR
|
||||
INFODIR
|
||||
LOCALEDIR
|
||||
MANDIR
|
||||
DOCDIR
|
||||
)
|
||||
if(NOT IS_ABSOLUTE ${CMAKE_INSTALL_${dir}})
|
||||
set(CMAKE_INSTALL_FULL_${dir} "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_${dir}}")
|
||||
else()
|
||||
set(CMAKE_INSTALL_FULL_${dir} "${CMAKE_INSTALL_${dir}}")
|
||||
endif()
|
||||
endforeach()
|
||||
@@ -91,7 +91,7 @@ function(generate_product_version outfiles)
|
||||
set(PRODUCT_COMPANY_COPYRIGHT "Copyright (C) ${PRODUCT_CURRENT_YEAR} ${PRODUCT_COMPANY_NAME}")
|
||||
endif()
|
||||
if (NOT PRODUCT_COMMENTS OR "${PRODUCT_COMMENTS}" STREQUAL "")
|
||||
set(PRODUCT_COMMENTS "${PRODUCT_NAME} v${PRODUCT_VERSION_MAJOR}.${PRODUCT_VERSION_MINOR}")
|
||||
set(PRODUCT_COMMENTS "${PRODUCT_NAME} v${PRODUCT_VERSION_MAJOR}.${PRODUCT_VERSION_MINOR}.${PRODUCT_VERSION_PATCH}")
|
||||
endif()
|
||||
if (NOT PRODUCT_ORIGINAL_FILENAME OR "${PRODUCT_ORIGINAL_FILENAME}" STREQUAL "")
|
||||
set(PRODUCT_ORIGINAL_FILENAME "${PRODUCT_NAME}")
|
||||
|
||||
@@ -1,130 +0,0 @@
|
||||
# - Returns a version string from Git
|
||||
#
|
||||
# These functions force a re-configure on each git commit so that you can
|
||||
# trust the values of the variables in your build system.
|
||||
#
|
||||
# get_git_head_revision(<refspecvar> <hashvar> [<additional arguments to git describe> ...])
|
||||
#
|
||||
# Returns the refspec and sha hash of the current head revision
|
||||
#
|
||||
# git_describe(<var> [<additional arguments to git describe> ...])
|
||||
#
|
||||
# Returns the results of git describe on the source tree, and adjusting
|
||||
# the output so that it tests false if an error occurs.
|
||||
#
|
||||
# git_get_exact_tag(<var> [<additional arguments to git describe> ...])
|
||||
#
|
||||
# Returns the results of git describe --exact-match on the source tree,
|
||||
# and adjusting the output so that it tests false if there was no exact
|
||||
# matching tag.
|
||||
#
|
||||
# Requires CMake 2.6 or newer (uses the 'function' command)
|
||||
#
|
||||
# Original Author:
|
||||
# 2009-2010 Ryan Pavlik <rpavlik@iastate.edu> <abiryan@ryand.net>
|
||||
# http://academic.cleardefinition.com
|
||||
# Iowa State University HCI Graduate Program/VRAC
|
||||
#
|
||||
# Copyright Iowa State University 2009-2010.
|
||||
# Distributed under the Boost Software License, Version 1.0.
|
||||
# (See accompanying file LICENSE.BOOST-1.0 or copy at
|
||||
# http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
if(__get_git_revision_description)
|
||||
return()
|
||||
endif()
|
||||
set(__get_git_revision_description YES)
|
||||
|
||||
# We must run the following at "include" time, not at function call time,
|
||||
# to find the path to this module rather than the path to a calling list file
|
||||
get_filename_component(_gitdescmoddir ${CMAKE_CURRENT_LIST_FILE} PATH)
|
||||
|
||||
function(get_git_head_revision _refspecvar _hashvar)
|
||||
set(GIT_PARENT_DIR "${CMAKE_CURRENT_SOURCE_DIR}")
|
||||
set(GIT_DIR "${GIT_PARENT_DIR}/.git")
|
||||
while(NOT EXISTS "${GIT_DIR}") # .git dir not found, search parent directories
|
||||
set(GIT_PREVIOUS_PARENT "${GIT_PARENT_DIR}")
|
||||
get_filename_component(GIT_PARENT_DIR ${GIT_PARENT_DIR} PATH)
|
||||
if(GIT_PARENT_DIR STREQUAL GIT_PREVIOUS_PARENT)
|
||||
# We have reached the root directory, we are not in git
|
||||
set(${_refspecvar} "GITDIR-NOTFOUND" PARENT_SCOPE)
|
||||
set(${_hashvar} "GITDIR-NOTFOUND" PARENT_SCOPE)
|
||||
return()
|
||||
endif()
|
||||
set(GIT_DIR "${GIT_PARENT_DIR}/.git")
|
||||
endwhile()
|
||||
# check if this is a submodule
|
||||
if(NOT IS_DIRECTORY ${GIT_DIR})
|
||||
file(READ ${GIT_DIR} submodule)
|
||||
string(REGEX REPLACE "gitdir: (.*)\n$" "\\1" GIT_DIR_RELATIVE ${submodule})
|
||||
get_filename_component(SUBMODULE_DIR ${GIT_DIR} PATH)
|
||||
get_filename_component(GIT_DIR ${SUBMODULE_DIR}/${GIT_DIR_RELATIVE} ABSOLUTE)
|
||||
endif()
|
||||
set(GIT_DATA "${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/git-data")
|
||||
if(NOT EXISTS "${GIT_DATA}")
|
||||
file(MAKE_DIRECTORY "${GIT_DATA}")
|
||||
endif()
|
||||
|
||||
if(NOT EXISTS "${GIT_DIR}/HEAD")
|
||||
return()
|
||||
endif()
|
||||
set(HEAD_FILE "${GIT_DATA}/HEAD")
|
||||
configure_file("${GIT_DIR}/HEAD" "${HEAD_FILE}" COPYONLY)
|
||||
|
||||
configure_file("${_gitdescmoddir}/GetGitRevisionDescription.cmake.in"
|
||||
"${GIT_DATA}/grabRef.cmake"
|
||||
@ONLY)
|
||||
include("${GIT_DATA}/grabRef.cmake")
|
||||
|
||||
set(${_refspecvar} "${HEAD_REF}" PARENT_SCOPE)
|
||||
set(${_hashvar} "${HEAD_HASH}" PARENT_SCOPE)
|
||||
endfunction()
|
||||
|
||||
function(git_describe _var)
|
||||
if(NOT GIT_FOUND)
|
||||
find_package(Git QUIET)
|
||||
endif()
|
||||
get_git_head_revision(refspec hash)
|
||||
if(NOT GIT_FOUND)
|
||||
set(${_var} "GIT-NOTFOUND" PARENT_SCOPE)
|
||||
return()
|
||||
endif()
|
||||
if(NOT hash)
|
||||
set(${_var} "HEAD-HASH-NOTFOUND" PARENT_SCOPE)
|
||||
return()
|
||||
endif()
|
||||
|
||||
# TODO sanitize
|
||||
#if((${ARGN}" MATCHES "&&") OR
|
||||
# (ARGN MATCHES "||") OR
|
||||
# (ARGN MATCHES "\\;"))
|
||||
# message("Please report the following error to the project!")
|
||||
# message(FATAL_ERROR "Looks like someone's doing something nefarious with git_describe! Passed arguments ${ARGN}")
|
||||
#endif()
|
||||
|
||||
#message(STATUS "Arguments to execute_process: ${ARGN}")
|
||||
|
||||
execute_process(COMMAND
|
||||
"${GIT_EXECUTABLE}"
|
||||
describe
|
||||
${hash}
|
||||
${ARGN}
|
||||
WORKING_DIRECTORY
|
||||
"${CMAKE_SOURCE_DIR}"
|
||||
RESULT_VARIABLE
|
||||
res
|
||||
OUTPUT_VARIABLE
|
||||
out
|
||||
ERROR_QUIET
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
if(NOT res EQUAL 0)
|
||||
set(out "${out}-${res}-NOTFOUND")
|
||||
endif()
|
||||
|
||||
set(${_var} "${out}" PARENT_SCOPE)
|
||||
endfunction()
|
||||
|
||||
function(git_get_exact_tag _var)
|
||||
git_describe(out --exact-match ${ARGN})
|
||||
set(${_var} "${out}" PARENT_SCOPE)
|
||||
endfunction()
|
||||
@@ -1,41 +0,0 @@
|
||||
#
|
||||
# Internal file for GetGitRevisionDescription.cmake
|
||||
#
|
||||
# Requires CMake 2.6 or newer (uses the 'function' command)
|
||||
#
|
||||
# Original Author:
|
||||
# 2009-2010 Ryan Pavlik <rpavlik@iastate.edu> <abiryan@ryand.net>
|
||||
# http://academic.cleardefinition.com
|
||||
# Iowa State University HCI Graduate Program/VRAC
|
||||
#
|
||||
# Copyright Iowa State University 2009-2010.
|
||||
# Distributed under the Boost Software License, Version 1.0.
|
||||
# (See accompanying file LICENSE.BOOST-1.0 or copy at
|
||||
# http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
set(HEAD_HASH)
|
||||
|
||||
file(READ "@HEAD_FILE@" HEAD_CONTENTS LIMIT 1024)
|
||||
|
||||
string(STRIP "${HEAD_CONTENTS}" HEAD_CONTENTS)
|
||||
if(HEAD_CONTENTS MATCHES "ref")
|
||||
# named branch
|
||||
string(REPLACE "ref: " "" HEAD_REF "${HEAD_CONTENTS}")
|
||||
if(EXISTS "@GIT_DIR@/${HEAD_REF}")
|
||||
configure_file("@GIT_DIR@/${HEAD_REF}" "@GIT_DATA@/head-ref" COPYONLY)
|
||||
else()
|
||||
configure_file("@GIT_DIR@/packed-refs" "@GIT_DATA@/packed-refs" COPYONLY)
|
||||
file(READ "@GIT_DATA@/packed-refs" PACKED_REFS)
|
||||
if(${PACKED_REFS} MATCHES "([0-9a-z]*) ${HEAD_REF}")
|
||||
set(HEAD_HASH "${CMAKE_MATCH_1}")
|
||||
endif()
|
||||
endif()
|
||||
else()
|
||||
# detached HEAD
|
||||
configure_file("@GIT_DIR@/HEAD" "@GIT_DATA@/head-ref" COPYONLY)
|
||||
endif()
|
||||
|
||||
if(NOT HEAD_HASH)
|
||||
file(READ "@GIT_DATA@/head-ref" HEAD_HASH LIMIT 1024)
|
||||
string(STRIP "${HEAD_HASH}" HEAD_HASH)
|
||||
endif()
|
||||
61
cmake/KPXCMacDeployHelpers.cmake
Normal file
@@ -0,0 +1,61 @@
|
||||
# Running macdeployqt on a POST_BUILD copied binaries is pointless when using CPack because
|
||||
# the copied binaries will be overriden by the corresponding install(TARGETS) commands.
|
||||
# That's why we run macdeployqt using install(CODE) on the already installed binaries.
|
||||
# The precondition is that all install(TARGETS) calls have to be called before this function is
|
||||
# called.
|
||||
# macdeloyqt is called only once, but it is given all executables that should be processed.
|
||||
function(kpxc_run_macdeployqt_at_install_time)
|
||||
set(NO_VALUE_OPTIONS)
|
||||
set(SINGLE_VALUE_OPTIONS
|
||||
APP_NAME
|
||||
)
|
||||
set(MULTI_VALUE_OPTIONS
|
||||
EXTRA_BINARIES
|
||||
)
|
||||
cmake_parse_arguments(PARSE_ARGV 0 ARG
|
||||
"${NO_VALUE_OPTIONS}" "${SINGLE_VALUE_OPTIONS}" "${MULTI_VALUE_OPTIONS}"
|
||||
)
|
||||
|
||||
set(ESCAPED_PREFIX "\${CMAKE_INSTALL_PREFIX}")
|
||||
set(APP_BUNDLE_NAME "${ARG_APP_NAME}.app")
|
||||
set(APP_BUNDLE_PATH "${ESCAPED_PREFIX}/${APP_BUNDLE_NAME}")
|
||||
|
||||
# Collect extra binaries and plugins that should be handled by macdpeloyqt.
|
||||
set(EXTRA_BINARIES "")
|
||||
foreach(EXTRA_BINARY ${ARG_EXTRA_BINARIES})
|
||||
set(INSTALLED_BINARY_PATH "${ESCAPED_PREFIX}/${EXTRA_BINARY}")
|
||||
list(APPEND EXTRA_BINARIES "-executable=${INSTALLED_BINARY_PATH}")
|
||||
endforeach()
|
||||
|
||||
list(JOIN EXTRA_BINARIES " " EXTRA_BINARIES_STR)
|
||||
|
||||
if(CMAKE_VERSION VERSION_GREATER "3.14")
|
||||
set(COMMAND_ECHO "COMMAND_ECHO STDOUT")
|
||||
else()
|
||||
set(COMMAND_ECHO "")
|
||||
endif()
|
||||
|
||||
set(COMMAND_ARGS
|
||||
${MACDEPLOYQT_EXE}
|
||||
${APP_BUNDLE_PATH}
|
||||
|
||||
# Adjusts dependency rpaths of extra binaries
|
||||
${EXTRA_BINARIES_STR}
|
||||
|
||||
# Silences warnings on subsequent re-installations
|
||||
-always-overwrite
|
||||
)
|
||||
|
||||
install(CODE
|
||||
"
|
||||
execute_process(
|
||||
COMMAND ${COMMAND_ARGS}
|
||||
${COMMAND_ECHO}
|
||||
RESULT_VARIABLE EXIT_CODE
|
||||
)
|
||||
if(NOT EXIT_CODE EQUAL 0)
|
||||
message(FATAL_ERROR
|
||||
\"Running ${COMMAND_ARGS} failed with exit code \${EXIT_CODE}.\")
|
||||
endif()
|
||||
")
|
||||
endfunction()
|
||||
3
cmake/MakePortableZip.cmake
Normal file
@@ -0,0 +1,3 @@
|
||||
if (CMAKE_INSTALL_PREFIX MATCHES "/ZIP/")
|
||||
file(TOUCH "${CMAKE_INSTALL_PREFIX}/.portable")
|
||||
endif()
|
||||
5
cmake/compiler-checks/macos/control_biometry_support.mm
Normal file
@@ -0,0 +1,5 @@
|
||||
#include <Security/Security.h>
|
||||
|
||||
int main() {
|
||||
return static_cast<int>(kSecAccessControlBiometryCurrentSet);
|
||||
}
|
||||
5
cmake/compiler-checks/macos/control_touch_id_support.mm
Normal file
@@ -0,0 +1,5 @@
|
||||
#include <Security/Security.h>
|
||||
|
||||
int main() {
|
||||
return static_cast<int>(kSecAccessControlTouchIDCurrentSet);
|
||||
}
|
||||
5
cmake/compiler-checks/macos/control_watch_support.mm
Normal file
@@ -0,0 +1,5 @@
|
||||
#include <Security/Security.h>
|
||||
|
||||
int main() {
|
||||
return static_cast<int>(kSecAccessControlWatch);
|
||||
}
|
||||
27
codecov.yaml
Normal file
@@ -0,0 +1,27 @@
|
||||
codecov:
|
||||
require_ci_to_pass: false
|
||||
coverage:
|
||||
range: 60..80
|
||||
round: nearest
|
||||
precision: 2
|
||||
status:
|
||||
project:
|
||||
default:
|
||||
target: auto
|
||||
threshold: 0.5%
|
||||
paths:
|
||||
- "src"
|
||||
patch:
|
||||
default:
|
||||
target: 50%
|
||||
threshold: 0%
|
||||
informational: true
|
||||
paths:
|
||||
- "src"
|
||||
fixes:
|
||||
- "*/src/::"
|
||||
ignore:
|
||||
- "src/gui/styles/**"
|
||||
- "src/thirdparty/**"
|
||||
comment:
|
||||
require_changes: true
|
||||
60
docs/CMakeLists.txt
Normal file
@@ -0,0 +1,60 @@
|
||||
# Copyright (C) 2020 KeePassXC Team <team@keepassxc.org>
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 2 or (at your option)
|
||||
# version 3 of the License.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
find_program(ASCIIDOCTOR_EXE asciidoctor)
|
||||
if(NOT ASCIIDOCTOR_EXE)
|
||||
message(FATAL_ERROR "asciidoctor is required to build documentation")
|
||||
endif()
|
||||
message(STATUS "Using asciidoctor: ${ASCIIDOCTOR_EXE}")
|
||||
|
||||
set(DOC_DIR ${CMAKE_CURRENT_SOURCE_DIR})
|
||||
set(OUT_DIR ${CMAKE_CURRENT_BINARY_DIR})
|
||||
set(REV -a revnumber=${KEEPASSXC_VERSION})
|
||||
|
||||
# Build html documentation on all platforms
|
||||
# NOTE: Combine into one long command to prevent MSVC from failing to build all docs
|
||||
file(GLOB doc_depends ${DOC_DIR}/*.adoc ${DOC_DIR}/topics/* ${DOC_DIR}/styles/* ${DOC_DIR}/images/*)
|
||||
add_custom_command(
|
||||
OUTPUT KeePassXC_GettingStarted.html KeePassXC_UserGuide.html KeePassXC_KeyboardShortcuts.html
|
||||
COMMAND
|
||||
${ASCIIDOCTOR_EXE} -D ${OUT_DIR} -o KeePassXC_GettingStarted.html ${REV} ${DOC_DIR}/GettingStarted.adoc &&
|
||||
${ASCIIDOCTOR_EXE} -D ${OUT_DIR} -o KeePassXC_UserGuide.html ${REV} ${DOC_DIR}/UserGuide.adoc &&
|
||||
${ASCIIDOCTOR_EXE} -D ${OUT_DIR} -o KeePassXC_KeyboardShortcuts.html ${REV} ${DOC_DIR}/topics/KeyboardShortcuts.adoc
|
||||
DEPENDS ${doc_depends}
|
||||
VERBATIM)
|
||||
|
||||
add_custom_target(docs ALL DEPENDS KeePassXC_GettingStarted.html KeePassXC_UserGuide.html KeePassXC_KeyboardShortcuts.html)
|
||||
|
||||
install(FILES
|
||||
${OUT_DIR}/KeePassXC_GettingStarted.html
|
||||
${OUT_DIR}/KeePassXC_UserGuide.html
|
||||
${OUT_DIR}/KeePassXC_KeyboardShortcuts.html
|
||||
DESTINATION ${DATA_INSTALL_DIR}/docs)
|
||||
|
||||
# Build Man Pages on Linux and macOS
|
||||
if(UNIX)
|
||||
add_custom_command(OUTPUT keepassxc.1 keepassxc-cli.1
|
||||
COMMAND ${ASCIIDOCTOR_EXE} -D ${OUT_DIR} -b manpage ${REV} ./man/keepassxc.1.adoc
|
||||
COMMAND ${ASCIIDOCTOR_EXE} -D ${OUT_DIR} -b manpage ${REV} ./man/keepassxc-cli.1.adoc
|
||||
DEPENDS ${DOC_DIR}/man/keepassxc.1.adoc ${DOC_DIR}/man/keepassxc-cli.1.adoc
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
||||
VERBATIM)
|
||||
add_custom_target(manpages ALL DEPENDS keepassxc.1 keepassxc-cli.1)
|
||||
|
||||
install(FILES
|
||||
${OUT_DIR}/keepassxc.1
|
||||
${OUT_DIR}/keepassxc-cli.1
|
||||
DESTINATION ${CMAKE_INSTALL_MANDIR}/man1/)
|
||||
endif()
|
||||
68
docs/FuzzTest.md
Normal file
@@ -0,0 +1,68 @@
|
||||
# Fuzz-Testing KeePassXC
|
||||
|
||||
Fuzz-testing = feeding random input into a program until it crashes. Be smart about what's "random" by looking at how the program executes the input.
|
||||
|
||||
We use the "American Fuzzy Lop" (AFL) fuzz tester (https://lcamtuf.coredump.cx/afl/).
|
||||
|
||||
The following assumes that all tools and libraries required to build KeePassXC from source have already been installed.
|
||||
|
||||
## Installing AFL
|
||||
|
||||
$ sudo apt install afl
|
||||
|
||||
Optionally, build AFL from source:
|
||||
|
||||
$ git clone https://github.com/google/AFL
|
||||
$ cd AFL
|
||||
$ make
|
||||
$ make install
|
||||
|
||||
## Building KeePassXC For Fuzzing
|
||||
|
||||
A special "instrumented build" is used that allows the fuzzer to look into the program as it executes. We place it in its own build directory so it doesn't get confused with the production build.
|
||||
|
||||
$ cd your_keepassxc_source_directory
|
||||
$ mkdir buildafl
|
||||
$ cd buildafl
|
||||
$ CXX=afl-g++ AFL_HARDEN=1 cmake -DWITH_XC_ALL=ON ..
|
||||
$ make
|
||||
|
||||
In the source code, special behavior for fuzz testing can be implemented with `#ifdef __AFL_COMPILER`. For example, in fuzz builds, the KeePassXC CLI takes the database password from environment variable `KEYPASSXC_AFL_PASSWORD` to allow non-interactive operation.
|
||||
|
||||
## Prepare Fuzzer Input
|
||||
|
||||
To get the fuzzer started, we provide empty password database files (the password is `secret`).
|
||||
|
||||
$ cd buildafl
|
||||
$ mkdir -p findings/testcases
|
||||
$ cp ../share/empty*.kdbx findings/testcases
|
||||
|
||||
The fuzzer works by running KeePassXC with variations of this input, mutated in ways that make the program crash or hang.
|
||||
|
||||
## Run The Fuzzer
|
||||
|
||||
$ cd buildafl
|
||||
$ KEYPASSXC_AFL_PASSWORD=secret afl-fuzz -i findings/testcases -o findings -m 2000 -t 1000 src/cli/keepassxc-cli ls @@
|
||||
|
||||
This fuzz-tests the `ls` command of the KeePassXC CLI, which loads and decrypts a database file and then lists its contents. The parameters mean:
|
||||
|
||||
* `KEYPASSXC_AFL_PASSWORD=secret`: In fuzz test builds, the KeePassXC CLI takes the database password from this environment variable.
|
||||
* `-i findings/testcases`: The directory which contains the initial fuzzer input.
|
||||
* `-o findings`: The directory in which to store fuzzer results.
|
||||
* `-m 2000`: Fuzzer memory (in megabytes). Adjust as required if the fuzzer fails to start up.
|
||||
* `-t 1000`: Timeout until a hang is detected (in milliseconds).
|
||||
* `src/cli/keepassxc-cli`: The instrumented executable.
|
||||
* `ls`: The subcommand we're testing.
|
||||
* `@@`: The fuzzer replaces this by the name of a file with the generated input.
|
||||
|
||||
You may also need `export AFL_SKIP_CPUFREQ=1`.
|
||||
|
||||
If KeePassXC crashes or hangs when processing the input, the fuzzer writes the database file (that was used in place of `@@`) to the `findings/crashes` or `findings/hangs` directory, respectively.
|
||||
|
||||
To continue where the fuzzer left off, use `-i -`. To start over, remove and re-create the `findings` directory.
|
||||
|
||||
## More Information
|
||||
|
||||
AFL documentation: https://afl-1.readthedocs.io/en/latest/
|
||||
|
||||
Read this if you want to get serious about fuzz-testing.
|
||||
33
docs/GettingStarted.adoc
Normal file
@@ -0,0 +1,33 @@
|
||||
= KeePassXC: Getting Started Guide
|
||||
KeePassXC Team <team@keepassxc.org>
|
||||
:data-uri:
|
||||
:linkcss!:
|
||||
:homepage: https://keepassxc.org
|
||||
:icons: font
|
||||
:imagesdir: images
|
||||
:stylesheet: styles/dark.css
|
||||
:toc: left
|
||||
ifdef::backend-pdf[]
|
||||
:title-page:
|
||||
:title-logo-image: {imagesdir}/kpxc_logo.png
|
||||
:pdf-theme: styles/pdf_theme.yml
|
||||
:compress:
|
||||
endif::[]
|
||||
|
||||
include::topics/Disclaimers.adoc[]
|
||||
|
||||
<<<
|
||||
|
||||
// Include various topics, excluding advanced sections
|
||||
|
||||
include::topics/Welcome.adoc[tags=*;!advanced]
|
||||
|
||||
include::topics/DownloadInstall.adoc[tags=*;!advanced]
|
||||
|
||||
include::topics/UserInterface.adoc[tags=*;!advanced]
|
||||
|
||||
include::topics/PasswordGenerator.adoc[tags=*;!advanced]
|
||||
|
||||
include::topics/DatabaseOperations.adoc[tags=*;!advanced]
|
||||
|
||||
include::topics/BrowserPlugin.adoc[tags=*;!advanced]
|
||||
40
docs/UserGuide.adoc
Normal file
@@ -0,0 +1,40 @@
|
||||
= KeePassXC: User Guide
|
||||
KeePassXC Team <team@keepassxc.org>
|
||||
:data-uri:
|
||||
:homepage: https://keepassxc.org
|
||||
:icons: font
|
||||
:imagesdir: images
|
||||
:stylesheet: styles/dark.css
|
||||
:toc: left
|
||||
ifdef::backend-pdf[]
|
||||
:title-page:
|
||||
:title-logo-image: {imagesdir}/kpxc_logo.png
|
||||
:pdf-theme: styles/pdf_theme.yml
|
||||
:compress:
|
||||
endif::[]
|
||||
|
||||
include::topics/Disclaimers.adoc[]
|
||||
|
||||
<<<
|
||||
|
||||
// Include feature topics and advanced sections
|
||||
|
||||
include::topics/UserInterface.adoc[tags=*]
|
||||
|
||||
include::topics/DatabaseOperations.adoc[tags=*]
|
||||
|
||||
include::topics/ImportExport.adoc[tags=*]
|
||||
|
||||
include::topics/PasswordGenerator.adoc[tags=*]
|
||||
|
||||
include::topics/BrowserPlugin.adoc[tags=*]
|
||||
|
||||
include::topics/Passkeys.adoc[tags=*]
|
||||
|
||||
include::topics/AutoType.adoc[tags=*]
|
||||
|
||||
include::topics/KeeShare.adoc[tags=*]
|
||||
|
||||
include::topics/SSHAgent.adoc[tags=*]
|
||||
|
||||
include::topics/Reference.adoc[tags=*]
|
||||
BIN
docs/images/autoopen.png
Normal file
|
After Width: | Height: | Size: 31 KiB |
BIN
docs/images/autoopen_ifdevice.png
Normal file
|
After Width: | Height: | Size: 17 KiB |
BIN
docs/images/autotype_entry_sequences.png
Normal file
|
After Width: | Height: | Size: 56 KiB |
BIN
docs/images/autotype_entrylevel.png
Normal file
|
After Width: | Height: | Size: 78 KiB |
BIN
docs/images/autotype_selection_dialog.png
Normal file
|
After Width: | Height: | Size: 25 KiB |
BIN
docs/images/autotype_selection_dialog_search.png
Normal file
|
After Width: | Height: | Size: 29 KiB |
BIN
docs/images/autotype_selection_dialog_type_menu.png
Normal file
|
After Width: | Height: | Size: 54 KiB |
BIN
docs/images/autotype_settings.png
Normal file
|
After Width: | Height: | Size: 56 KiB |
BIN
docs/images/browser_advanced_settings.png
Normal file
|
After Width: | Height: | Size: 36 KiB |
BIN
docs/images/browser_confirm_access_dialog.png
Normal file
|
After Width: | Height: | Size: 10 KiB |
BIN
docs/images/browser_database_settings.png
Normal file
|
After Width: | Height: | Size: 47 KiB |
BIN
docs/images/browser_entry_settings.png
Normal file
|
After Width: | Height: | Size: 32 KiB |
BIN
docs/images/browser_extension_association.png
Normal file
|
After Width: | Height: | Size: 8.8 KiB |
BIN
docs/images/browser_extension_connect.png
Normal file
|
After Width: | Height: | Size: 10 KiB |
BIN
docs/images/browser_extension_icons.png
Normal file
|
After Width: | Height: | Size: 13 KiB |
BIN
docs/images/browser_extension_reload.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
docs/images/browser_fill_credentials.png
Normal file
|
After Width: | Height: | Size: 21 KiB |
BIN
docs/images/browser_group_settings.png
Normal file
|
After Width: | Height: | Size: 47 KiB |
BIN
docs/images/browser_settings.png
Normal file
|
After Width: | Height: | Size: 59 KiB |
BIN
docs/images/browser_statistics.png
Normal file
|
After Width: | Height: | Size: 94 KiB |
BIN
docs/images/clone_entry.png
Normal file
|
After Width: | Height: | Size: 88 KiB |
BIN
docs/images/clone_entry_dialog.png
Normal file
|
After Width: | Height: | Size: 6.1 KiB |
BIN
docs/images/clone_entry_references.png
Normal file
|
After Width: | Height: | Size: 29 KiB |
BIN
docs/images/compact_mode_comparison.png
Normal file
|
After Width: | Height: | Size: 64 KiB |
BIN
docs/images/csv_import.png
Normal file
|
After Width: | Height: | Size: 100 KiB |
BIN
docs/images/database_maintenance.png
Normal file
|
After Width: | Height: | Size: 89 KiB |
BIN
docs/images/database_security.png
Normal file
|
After Width: | Height: | Size: 24 KiB |
BIN
docs/images/database_security_credentials.png
Normal file
|
After Width: | Height: | Size: 35 KiB |
BIN
docs/images/database_security_encryption.png
Normal file
|
After Width: | Height: | Size: 28 KiB |
BIN
docs/images/database_security_encryption_advanced.png
Normal file
|
After Width: | Height: | Size: 40 KiB |
BIN
docs/images/database_settings.png
Normal file
|
After Width: | Height: | Size: 60 KiB |
BIN
docs/images/database_view.png
Normal file
|
After Width: | Height: | Size: 87 KiB |
BIN
docs/images/edit_entry.png
Normal file
|
After Width: | Height: | Size: 42 KiB |
BIN
docs/images/edit_entry_attachments.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
BIN
docs/images/edit_entry_attributes.png
Normal file
|
After Width: | Height: | Size: 33 KiB |
BIN
docs/images/edit_entry_colors.png
Normal file
|
After Width: | Height: | Size: 77 KiB |
BIN
docs/images/edit_entry_history.png
Normal file
|
After Width: | Height: | Size: 46 KiB |
BIN
docs/images/edit_entry_icons.png
Normal file
|
After Width: | Height: | Size: 131 KiB |
BIN
docs/images/edit_entry_properties.png
Normal file
|
After Width: | Height: | Size: 27 KiB |
BIN
docs/images/export_database.png
Normal file
|
After Width: | Height: | Size: 90 KiB |
BIN
docs/images/import_wizard.png
Normal file
|
After Width: | Height: | Size: 115 KiB |
BIN
docs/images/install_wizard_1.png
Normal file
|
After Width: | Height: | Size: 56 KiB |
BIN
docs/images/install_wizard_2.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
docs/images/keeshare_application_settings.png
Normal file
|
After Width: | Height: | Size: 45 KiB |
BIN
docs/images/keeshare_group_settings.png
Normal file
|
After Width: | Height: | Size: 23 KiB |
BIN
docs/images/keeshare_shared_group.png
Normal file
|
After Width: | Height: | Size: 63 KiB |
BIN
docs/images/kpxc_logo.png
Normal file
|
After Width: | Height: | Size: 4.1 KiB |
BIN
docs/images/linux_store.png
Normal file
|
After Width: | Height: | Size: 92 KiB |
BIN
docs/images/macos_install.png
Normal file
|
After Width: | Height: | Size: 30 KiB |
BIN
docs/images/main_interface.png
Normal file
|
After Width: | Height: | Size: 95 KiB |