Compare commits
536 Commits
v2.7.0-bet
...
v2.7.0-bet
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
501380a004 | ||
|
|
e010d58401 | ||
|
|
b98cf0a029 | ||
|
|
2475fb73b7 | ||
|
|
f4d83d02f6 | ||
|
|
ff631e919f | ||
|
|
8503226c44 | ||
|
|
42eb3388f8 | ||
|
|
ea95c4bf49 | ||
|
|
81c644e702 | ||
|
|
18cbbc5052 | ||
|
|
2a3ef044be | ||
|
|
203a2ce003 | ||
|
|
d3d713ff9c | ||
|
|
180f191014 | ||
|
|
628a426d22 | ||
|
|
d5587e386c | ||
|
|
5db717d48c | ||
|
|
d217fc272e | ||
|
|
0b1cf69134 | ||
|
|
7bb48a76c4 | ||
|
|
287a130044 | ||
|
|
3520360159 | ||
|
|
f98c7990ba | ||
|
|
abb5c8b70e | ||
|
|
90ac7b75bf | ||
|
|
8fc1ae81b5 | ||
|
|
4e3fffc4bc | ||
|
|
bd9aae8ca2 | ||
|
|
fdc160460b | ||
|
|
6081ef636d | ||
|
|
be4ba031ec | ||
|
|
5a07a36d06 | ||
|
|
27b982ceaf | ||
|
|
5e20e2b46f | ||
|
|
56a6fe4731 | ||
|
|
542d303313 | ||
|
|
cb9ba9702b | ||
|
|
d2e8cd4469 | ||
|
|
9a2d04720a | ||
|
|
0f21b625ab | ||
|
|
3204c15911 | ||
|
|
8d5c79c219 | ||
|
|
8a181adb3a | ||
|
|
d2447ae90a | ||
|
|
fdceb1f2d2 | ||
|
|
f557dd7792 | ||
|
|
be2d9d4838 | ||
|
|
808fb17809 | ||
|
|
7996eaae82 | ||
|
|
53c31f5fed | ||
|
|
90f757b96b | ||
|
|
5a05c2d6cd | ||
|
|
cd96b4a265 | ||
|
|
44fc881ced | ||
|
|
669e42edd1 | ||
|
|
a57bf0c899 | ||
|
|
039d885b76 | ||
|
|
09c9a1c5bc | ||
|
|
b171bd991d | ||
|
|
fd493a0598 | ||
|
|
01e6f73da5 | ||
|
|
d526f9e073 | ||
|
|
e28708beee | ||
|
|
aaba0f2bb5 | ||
|
|
d7a9a4cd09 | ||
|
|
3182c613ac | ||
|
|
6dc12166ad | ||
|
|
2abc3ce2f5 | ||
|
|
01d44dd3a1 | ||
|
|
710c470c13 | ||
|
|
3e13919c35 | ||
|
|
3db267a03b | ||
|
|
f93fdafa80 | ||
|
|
319e441653 | ||
|
|
fc9a8c4496 | ||
|
|
74978a23fb | ||
|
|
b3fb730d5a | ||
|
|
5f611d6e39 | ||
|
|
76fbbfefa5 | ||
|
|
5afcf71e68 | ||
|
|
839c056b8d | ||
|
|
3bbc54ee6c | ||
|
|
03ecaab259 | ||
|
|
7794de9b59 | ||
|
|
372f67839e | ||
|
|
6ec5f9ea10 | ||
|
|
20b58219e4 | ||
|
|
080505ef46 | ||
|
|
afa5267932 | ||
|
|
d71249bb6e | ||
|
|
109f9ae60a | ||
|
|
cbea0e7134 | ||
|
|
f90e0e519f | ||
|
|
08cb289b8c | ||
|
|
6adb798728 | ||
|
|
af5acd5142 | ||
|
|
5959a98e29 | ||
|
|
902963fa10 | ||
|
|
d5113b5342 | ||
|
|
3f4ed0883a | ||
|
|
f671a4b23f | ||
|
|
6f5bf018f6 | ||
|
|
0b5484bfea | ||
|
|
cee8a4ccf6 | ||
|
|
92c8d6836b | ||
|
|
1afb70e114 | ||
|
|
0253e98041 | ||
|
|
50dcab5f88 | ||
|
|
9b9504c860 | ||
|
|
56f79eb8b4 | ||
|
|
93404c6c1b | ||
|
|
bc9f7415b6 | ||
|
|
2ce1669ceb | ||
|
|
a6873f556b | ||
|
|
bb78789300 | ||
|
|
afac668d9c | ||
|
|
73a689bc39 | ||
|
|
4f7a6cfb1d | ||
|
|
f147e5a66f | ||
|
|
2096e8295d | ||
|
|
bc863584db | ||
|
|
f8e2e3403a | ||
|
|
07bede8a56 | ||
|
|
a12205f322 | ||
|
|
1157ceafb1 | ||
|
|
be2e5266aa | ||
|
|
cf6ac3d14e | ||
|
|
d3d99b2d9d | ||
|
|
44a9200c5d | ||
|
|
5055f526c2 | ||
|
|
f15a9cfc82 | ||
|
|
5848a1575b | ||
|
|
40824dc427 | ||
|
|
6c6dfb15a7 | ||
|
|
83b36b4ab0 | ||
|
|
aa90237e94 | ||
|
|
65e8f33ccf | ||
|
|
a6f918f3c2 | ||
|
|
f44df7f61a | ||
|
|
121e23e322 | ||
|
|
299749681d | ||
|
|
39e8c80116 | ||
|
|
e92d79956f | ||
|
|
037b4a6ba6 | ||
|
|
473f3fd05c | ||
|
|
456c1eadbe | ||
|
|
3f685fd933 | ||
|
|
2b680cadd3 | ||
|
|
24177ec7e4 | ||
|
|
6420725fb9 | ||
|
|
0f620acc1f | ||
|
|
749070a29c | ||
|
|
131c1f1bac | ||
|
|
2946c335ba | ||
|
|
e138c7dcc5 | ||
|
|
ea16804751 | ||
|
|
bce93b052b | ||
|
|
fba69de096 | ||
|
|
3b4c409aab | ||
|
|
565fa18db2 | ||
|
|
be48889812 | ||
|
|
e6389959ce | ||
|
|
a45c2e04e5 | ||
|
|
acb56be528 | ||
|
|
3ce88bb62c | ||
|
|
221e5c5fc4 | ||
|
|
992b05c53e | ||
|
|
b28fe79902 | ||
|
|
0fe7a65738 | ||
|
|
45bddb6f9c | ||
|
|
674759d94e | ||
|
|
30ba341b8c | ||
|
|
00d20b03ac | ||
|
|
7525ce887f | ||
|
|
0503be65ae | ||
|
|
891c192ebc | ||
|
|
e3e262e42e | ||
|
|
965909f7fa | ||
|
|
12279089f5 | ||
|
|
3bae570f29 | ||
|
|
e90eb9d717 | ||
|
|
e99d3f18be | ||
|
|
02a28325a8 | ||
|
|
c800d9149e | ||
|
|
f286603ffe | ||
|
|
4fb370275d | ||
|
|
c31b1a750d | ||
|
|
5a1404ef59 | ||
|
|
2720897cde | ||
|
|
e348f6458d | ||
|
|
a57903259b | ||
|
|
fe1d287c62 | ||
|
|
b5ffad192c | ||
|
|
a80d0b0f0f | ||
|
|
6ec69a700d | ||
|
|
ae0ea12501 | ||
|
|
ba4d109315 | ||
|
|
efdef8535f | ||
|
|
4620734194 | ||
|
|
53c3eb8fe5 | ||
|
|
08cc4e1967 | ||
|
|
8d823baede | ||
|
|
300fb90c0b | ||
|
|
a2fd79bcf7 | ||
|
|
2b4ea340e2 | ||
|
|
7f7dd6bc76 | ||
|
|
c0a9f60d0d | ||
|
|
ad8075a30b | ||
|
|
b39a14bf2b | ||
|
|
6e62c8b430 | ||
|
|
ccc409dbd0 | ||
|
|
606aa131e7 | ||
|
|
044a4bf6b5 | ||
|
|
b2b0e8f4e4 | ||
|
|
4b2684cf4a | ||
|
|
21c6dd50a2 | ||
|
|
7a102feca8 | ||
|
|
f5350db078 | ||
|
|
a73a1f3927 | ||
|
|
9e20a0fecf | ||
|
|
65e6c445e5 | ||
|
|
0bc4dcd8a5 | ||
|
|
86b1821251 | ||
|
|
b579b49a5c | ||
|
|
4825c472f6 | ||
|
|
6a207d19e7 | ||
|
|
d4563e9196 | ||
|
|
375fcb8e14 | ||
|
|
f46ce2ce98 | ||
|
|
deff3230f5 | ||
|
|
7b2ef2f41e | ||
|
|
77c2048ff6 | ||
|
|
d53121c6ad | ||
|
|
81682b4cbe | ||
|
|
89316ced9e | ||
|
|
c3ad79ba91 | ||
|
|
9d10671cea | ||
|
|
faeb233a74 | ||
|
|
04a24c14a8 | ||
|
|
3015ea5715 | ||
|
|
f275640343 | ||
|
|
8bc1525df5 | ||
|
|
eaf4aa0e5b | ||
|
|
71a474129b | ||
|
|
15bdfa9fbf | ||
|
|
ff192e48d0 | ||
|
|
5543e4d834 | ||
|
|
e9a82dff77 | ||
|
|
7c5dbdd004 | ||
|
|
ef7d268a63 | ||
|
|
7804b8e006 | ||
|
|
712869db9a | ||
|
|
3d2de4fc40 | ||
|
|
1f2bfc0f42 | ||
|
|
6559ba46bb | ||
|
|
7fd431b50f | ||
|
|
dea6ebaa35 | ||
|
|
0c040c9686 | ||
|
|
9bfcdbae3a | ||
|
|
aa13aa533a | ||
|
|
fa9dddf567 | ||
|
|
6ba59c9a9b | ||
|
|
1f402e3482 | ||
|
|
35d1b8b820 | ||
|
|
cd5db46036 | ||
|
|
2744146101 | ||
|
|
7f598b181e | ||
|
|
00574ef8b4 | ||
|
|
b7517e9082 | ||
|
|
9328a4bba3 | ||
|
|
4d1ff01654 | ||
|
|
8f1b10ea70 | ||
|
|
9a5d3ede18 | ||
|
|
bfeb408a8c | ||
|
|
34c9eea413 | ||
|
|
3867e73fd5 | ||
|
|
57ad12f3d2 | ||
|
|
7cb7678dd4 | ||
|
|
4788f5032c | ||
|
|
a786c3a972 | ||
|
|
9000a880cb | ||
|
|
bfdb1e730a | ||
|
|
d2b4d1de4b | ||
|
|
8bd1ce2a3d | ||
|
|
56b067bbb9 | ||
|
|
afae7606cf | ||
|
|
697d303259 | ||
|
|
66d69bf197 | ||
|
|
3b6ab2fa5a | ||
|
|
f47b68b96c | ||
|
|
f0758c96aa | ||
|
|
de7021e85e | ||
|
|
590d0f25b5 | ||
|
|
244c8fa995 | ||
|
|
cd8762f2c1 | ||
|
|
5f75231cf6 | ||
|
|
6cdae6c19e | ||
|
|
0082ff90df | ||
|
|
684f061ab1 | ||
|
|
c14761445b | ||
|
|
4f3ea3ae66 | ||
|
|
d7841fd9b1 | ||
|
|
8133897d1a | ||
|
|
0d71d03d7b | ||
|
|
0743a0b502 | ||
|
|
7193d2ffba | ||
|
|
4729e5272a | ||
|
|
1c53126340 | ||
|
|
e6eb13915f | ||
|
|
6ddce0a90a | ||
|
|
7c8de2bb40 | ||
|
|
230b2f3781 | ||
|
|
46c1d7f298 | ||
|
|
7b2de328a2 | ||
|
|
47824c104e | ||
|
|
671961e641 | ||
|
|
22f839bbe9 | ||
|
|
ae48a41510 | ||
|
|
8345d47cc5 | ||
|
|
e41e7de404 | ||
|
|
b389eed6b0 | ||
|
|
b0f788415f | ||
|
|
3626715394 | ||
|
|
c77bf6c634 | ||
|
|
1c21bfdd7c | ||
|
|
061ca2d713 | ||
|
|
ddee26084d | ||
|
|
6df75328fd | ||
|
|
79eface432 | ||
|
|
210253ce35 | ||
|
|
4bd5e9d79b | ||
|
|
c126f1a540 | ||
|
|
3d44a71755 | ||
|
|
0514fdd933 | ||
|
|
e961eac5c1 | ||
|
|
90dd893ddd | ||
|
|
ebfe796ad8 | ||
|
|
60684da95d | ||
|
|
d077c7884e | ||
|
|
870f336a4c | ||
|
|
685379beac | ||
|
|
6fc877577c | ||
|
|
6e220b10e4 | ||
|
|
45342d7952 | ||
|
|
d0b698ed37 | ||
|
|
ef42635c23 | ||
|
|
92afba538f | ||
|
|
159218d5ae | ||
|
|
29fa924853 | ||
|
|
54d862436e | ||
|
|
2c6628158f | ||
|
|
8d76b88edb | ||
|
|
8b4abddb71 | ||
|
|
18615d0297 | ||
|
|
f1ffc16d86 | ||
|
|
151224f12e | ||
|
|
49e1338087 | ||
|
|
80c8bc760f | ||
|
|
98a2740ca0 | ||
|
|
1fad22596f | ||
|
|
3359b019c3 | ||
|
|
e2c8ff9295 | ||
|
|
7a68565268 | ||
|
|
6b74e8b969 | ||
|
|
aa3ad18221 | ||
|
|
9189d7f1ab | ||
|
|
20cf9c8b57 | ||
|
|
8aea96a640 | ||
|
|
732d59ad14 | ||
|
|
5d2e99d15c | ||
|
|
19a58ed9c8 | ||
|
|
56222de768 | ||
|
|
56679299dd | ||
|
|
b4d1a63c14 | ||
|
|
d54add6233 | ||
|
|
2aa3dfa9c0 | ||
|
|
20b7e938c5 | ||
|
|
db8b304608 | ||
|
|
a482e3c834 | ||
|
|
e1f4d17446 | ||
|
|
1afda2b875 | ||
|
|
c1189421c0 | ||
|
|
b84a1eeb8d | ||
|
|
2f54e911b7 | ||
|
|
3ca586c464 | ||
|
|
6cc9a55833 | ||
|
|
9da7f4eaa4 | ||
|
|
43da96b3dc | ||
|
|
af44c430cf | ||
|
|
bc40e358b0 | ||
|
|
8ee6b0dab2 | ||
|
|
75259b24f3 | ||
|
|
7a2f8b75c2 | ||
|
|
d2d9d29b55 | ||
|
|
102369bfbe | ||
|
|
37f9e62993 | ||
|
|
5f42813d98 | ||
|
|
78776f81e4 | ||
|
|
f629e83203 | ||
|
|
74562f2597 | ||
|
|
0bf6e5e53c | ||
|
|
e833e86da6 | ||
|
|
c812d896aa | ||
|
|
c043a4e55c | ||
|
|
555b41f300 | ||
|
|
4ae16d92ac | ||
|
|
d8c407ac97 | ||
|
|
2adde0fcca | ||
|
|
a471868d88 | ||
|
|
6685722cb3 | ||
|
|
6a0ee0cee5 | ||
|
|
aa5556b7d0 | ||
|
|
275fe95895 | ||
|
|
0e60bf7c82 | ||
|
|
87c920cbf2 | ||
|
|
9a23210e59 | ||
|
|
b34ed01109 | ||
|
|
3776a04206 | ||
|
|
76e4a2646a | ||
|
|
398c5a2a37 | ||
|
|
744d527300 | ||
|
|
5ef08a51b2 | ||
|
|
601804b78c | ||
|
|
a704cca090 | ||
|
|
ff642085b4 | ||
|
|
377526d6f9 | ||
|
|
ab1099f13e | ||
|
|
3edcd2a578 | ||
|
|
c6b59c5e58 | ||
|
|
aab735a595 | ||
|
|
7378ae6a7f | ||
|
|
68ee513bd0 | ||
|
|
7fa44d438d | ||
|
|
f90f31756a | ||
|
|
e2066b317b | ||
|
|
eb7ed33d98 | ||
|
|
deb90a6ba1 | ||
|
|
b846e25ddb | ||
|
|
712fef0cac | ||
|
|
318c749558 | ||
|
|
662fbb7b2a | ||
|
|
5b2877a63e | ||
|
|
29e02d0579 | ||
|
|
a92a764c2a | ||
|
|
2c88b46e26 | ||
|
|
40767f7ae0 | ||
|
|
f1dd312b2e | ||
|
|
bf838bd336 | ||
|
|
ce322fd39c | ||
|
|
c8e9aac4cf | ||
|
|
ac491aeb8b | ||
|
|
3b00bc3cde | ||
|
|
b3a9954fa8 | ||
|
|
67e2999f63 | ||
|
|
b936cc1f6e | ||
|
|
62bc9d025e | ||
|
|
961c05363a | ||
|
|
3f7cd5c0f3 | ||
|
|
3d3021e3b0 | ||
|
|
b7b3601cc1 | ||
|
|
366016ce3c | ||
|
|
eb419d54fa | ||
|
|
5ab20d4ab1 | ||
|
|
9c8a0204e5 | ||
|
|
34e3d236f8 | ||
|
|
67bc8fc529 | ||
|
|
ac1e4d2bb1 | ||
|
|
04d68018d6 | ||
|
|
7bb3646781 | ||
|
|
5554488dd8 | ||
|
|
39a48a17ef | ||
|
|
7dd903c9b6 | ||
|
|
cf209f4c10 | ||
|
|
33896de943 | ||
|
|
3e255df533 | ||
|
|
640655ea10 | ||
|
|
abfebcf291 | ||
|
|
bbb310a853 | ||
|
|
fd6eba287e | ||
|
|
8f2e853ec0 | ||
|
|
8c287fcb6b | ||
|
|
f55f5f2e63 | ||
|
|
ed9dd8b18a | ||
|
|
0bcf67c49c | ||
|
|
6d23ce82d7 | ||
|
|
4b8b84f2dd | ||
|
|
32ce9c76bc | ||
|
|
8e67de3d3d | ||
|
|
e7b5cc8974 | ||
|
|
8765908f65 | ||
|
|
da66b3956e | ||
|
|
1988511c55 | ||
|
|
abcadec94a | ||
|
|
8f82fc2e51 | ||
|
|
f9d27e4e3b | ||
|
|
b47a2f1b76 | ||
|
|
de5cfbd384 | ||
|
|
32c2c062c0 | ||
|
|
9e59386560 | ||
|
|
c69aba9b44 | ||
|
|
f44c7f00bb | ||
|
|
842f71891e | ||
|
|
5f34604b20 | ||
|
|
6485f63a60 | ||
|
|
56a7a68de3 | ||
|
|
2987851914 | ||
|
|
31d55c5c4e | ||
|
|
a7d6555de2 | ||
|
|
dfdb872e7b | ||
|
|
4e83f3d525 | ||
|
|
37377bf470 | ||
|
|
24ef0b3aa9 | ||
|
|
bd9b0cf23f | ||
|
|
d449912a0a | ||
|
|
83733684f0 | ||
|
|
f3c90436e7 | ||
|
|
490af281af | ||
|
|
ecffff5a76 | ||
|
|
6a8f3a1397 | ||
|
|
afc6a41169 | ||
|
|
20f1a01219 | ||
|
|
0697c81ae6 | ||
|
|
77be6729a2 | ||
|
|
baf082df7c | ||
|
|
f3062f6c96 | ||
|
|
5ad6f727f8 | ||
|
|
04a08bfb23 | ||
|
|
bb757c6a27 | ||
|
|
6593317afa | ||
|
|
9deb51c846 | ||
|
|
3a39e636ae | ||
|
|
f99fc722ac | ||
|
|
a9ba51885e | ||
|
|
01e9343d8b | ||
|
|
1e2a9a322b |
22
.clang-tidy
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
Checks: '-*,
|
||||||
|
cppcoreguidelines-init-variables,
|
||||||
|
modernize-make-*,
|
||||||
|
modernize-redundant-void-arg,
|
||||||
|
modernize-replace-*,
|
||||||
|
modernize-return-braced-init-list,
|
||||||
|
modernize-shrink-to-fit,
|
||||||
|
modernize-use-auto,
|
||||||
|
modernize-use-bool-literals,
|
||||||
|
modernize-use-default-member-init,
|
||||||
|
modernize-use-emplace,
|
||||||
|
modernize-use-noexcept,
|
||||||
|
modernize-use-transparent-functors,
|
||||||
|
modernize-use-uncaught-exceptions,
|
||||||
|
'
|
||||||
|
WarningsAsErrors: '*'
|
||||||
|
HeaderFilterRegex: '.*'
|
||||||
|
AnalyzeTemporaryDtors: false
|
||||||
|
FormatStyle: none
|
||||||
|
CheckOptions:
|
||||||
|
- key: modernize-use-default-member-init.UseAssignment
|
||||||
|
value: 1
|
||||||
256
.drone.yml
@@ -1,249 +1,15 @@
|
|||||||
kind: pipeline
|
kind: pipeline
|
||||||
name: qt-5.7
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: build and test
|
|
||||||
image: nextcloudci/client-5.7:client-5.7-4
|
|
||||||
commands:
|
|
||||||
# Install QtKeyChain
|
|
||||||
- /bin/bash -c "
|
|
||||||
source /opt/qt57/bin/qt57-env.sh &&
|
|
||||||
cd /tmp &&
|
|
||||||
git clone https://github.com/frankosterfeld/qtkeychain.git &&
|
|
||||||
cd qtkeychain &&
|
|
||||||
git checkout v0.9.1 &&
|
|
||||||
mkdir build &&
|
|
||||||
cd build &&
|
|
||||||
cmake ../ &&
|
|
||||||
make &&
|
|
||||||
make install"
|
|
||||||
# Build client
|
|
||||||
- /bin/bash -c "
|
|
||||||
source /opt/qt57/bin/qt57-env.sh &&
|
|
||||||
mkdir build &&
|
|
||||||
cd build &&
|
|
||||||
cmake -D NO_SHIBBOLETH=1 -DCMAKE_BUILD_TYPE=Debug -DUNIT_TESTING=1 -DSANITIZE_ADDRESS=ON ../ &&
|
|
||||||
make &&
|
|
||||||
useradd -m -s /bin/bash test &&
|
|
||||||
chown -R test:test . &&
|
|
||||||
su -c 'ASAN_OPTIONS=detect_leaks=0 ctest --output-on-failure' test"
|
|
||||||
trigger:
|
|
||||||
branch:
|
|
||||||
- master
|
|
||||||
event:
|
|
||||||
- pull_request
|
|
||||||
- push
|
|
||||||
|
|
||||||
---
|
|
||||||
kind: pipeline
|
|
||||||
name: qt-5.8
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: build and test
|
|
||||||
image: nextcloudci/client-5.8:client-5.8-4
|
|
||||||
commands:
|
|
||||||
# Install QtKeyChain
|
|
||||||
- /bin/bash -c "
|
|
||||||
source /opt/qt58/bin/qt58-env.sh &&
|
|
||||||
cd /tmp &&
|
|
||||||
git clone https://github.com/frankosterfeld/qtkeychain.git &&
|
|
||||||
cd qtkeychain &&
|
|
||||||
git checkout v0.9.1 &&
|
|
||||||
mkdir build &&
|
|
||||||
cd build &&
|
|
||||||
cmake ../ &&
|
|
||||||
make &&
|
|
||||||
make install"
|
|
||||||
# Build client
|
|
||||||
- /bin/bash -c "
|
|
||||||
source /opt/qt58/bin/qt58-env.sh &&
|
|
||||||
mkdir build &&
|
|
||||||
cd build &&
|
|
||||||
cmake -D NO_SHIBBOLETH=1 -DCMAKE_BUILD_TYPE=Debug -DUNIT_TESTING=1 -DSANITIZE_ADDRESS=ON ../ &&
|
|
||||||
make &&
|
|
||||||
useradd -m -s /bin/bash test &&
|
|
||||||
chown -R test:test . &&
|
|
||||||
su -c 'ASAN_OPTIONS=detect_leaks=0 ctest --output-on-failure' test"
|
|
||||||
trigger:
|
|
||||||
branch:
|
|
||||||
- master
|
|
||||||
event:
|
|
||||||
- pull_request
|
|
||||||
- push
|
|
||||||
|
|
||||||
---
|
|
||||||
kind: pipeline
|
|
||||||
name: qt-5.9
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: build and test
|
|
||||||
image: nextcloudci/client-5.9:client-5.9-5
|
|
||||||
commands:
|
|
||||||
# Install QtKeyChain
|
|
||||||
- /bin/bash -c "
|
|
||||||
source /opt/qt59/bin/qt59-env.sh &&
|
|
||||||
cd /tmp &&
|
|
||||||
git clone https://github.com/frankosterfeld/qtkeychain.git &&
|
|
||||||
cd qtkeychain &&
|
|
||||||
git checkout v0.9.1 &&
|
|
||||||
mkdir build &&
|
|
||||||
cd build &&
|
|
||||||
cmake ../ &&
|
|
||||||
make &&
|
|
||||||
make install"
|
|
||||||
# Build client
|
|
||||||
- /bin/bash -c "
|
|
||||||
source /opt/qt59/bin/qt59-env.sh &&
|
|
||||||
mkdir build &&
|
|
||||||
cd build &&
|
|
||||||
cmake -D NO_SHIBBOLETH=1 -DCMAKE_BUILD_TYPE=Debug -DUNIT_TESTING=1 -DSANITIZE_ADDRESS=ON ../ &&
|
|
||||||
make &&
|
|
||||||
useradd -m -s /bin/bash test &&
|
|
||||||
chown -R test:test . &&
|
|
||||||
su -c 'ASAN_OPTIONS=detect_leaks=0 ctest --output-on-failure' test"
|
|
||||||
trigger:
|
|
||||||
branch:
|
|
||||||
- master
|
|
||||||
event:
|
|
||||||
- pull_request
|
|
||||||
- push
|
|
||||||
|
|
||||||
---
|
|
||||||
kind: pipeline
|
|
||||||
name: qt-5.10
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: build and test
|
|
||||||
image: nextcloudci/client-5.10:client-5.10-3
|
|
||||||
commands:
|
|
||||||
# Install QtKeyChain
|
|
||||||
- /bin/bash -c "
|
|
||||||
export CC=gcc-7 &&
|
|
||||||
export CXX=g++-7 &&
|
|
||||||
source /opt/qt510/bin/qt510-env.sh &&
|
|
||||||
cd /tmp &&
|
|
||||||
git clone https://github.com/frankosterfeld/qtkeychain.git &&
|
|
||||||
cd qtkeychain &&
|
|
||||||
git checkout v0.9.1 &&
|
|
||||||
mkdir build &&
|
|
||||||
cd build &&
|
|
||||||
cmake ../ &&
|
|
||||||
make &&
|
|
||||||
make install"
|
|
||||||
# Build client
|
|
||||||
- /bin/bash -c "
|
|
||||||
export CC=gcc-7 &&
|
|
||||||
export CXX=g++-7 &&
|
|
||||||
source /opt/qt510/bin/qt510-env.sh &&
|
|
||||||
mkdir build &&
|
|
||||||
cd build &&
|
|
||||||
cmake -D NO_SHIBBOLETH=1 -DCMAKE_BUILD_TYPE=Debug -DUNIT_TESTING=1 -DSANITIZE_ADDRESS=ON ../ &&
|
|
||||||
make &&
|
|
||||||
useradd -m -s /bin/bash test &&
|
|
||||||
chown -R test:test . &&
|
|
||||||
su -c 'ASAN_OPTIONS=detect_leaks=0 ctest --output-on-failure' test"
|
|
||||||
trigger:
|
|
||||||
branch:
|
|
||||||
- master
|
|
||||||
event:
|
|
||||||
- pull_request
|
|
||||||
- push
|
|
||||||
|
|
||||||
---
|
|
||||||
kind: pipeline
|
|
||||||
name: qt-5.11
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: build and test
|
|
||||||
image: nextcloudci/client-5.11:client-5.11-3
|
|
||||||
commands:
|
|
||||||
# Install QtKeyChain
|
|
||||||
- /bin/bash -c "
|
|
||||||
export CC=gcc-7 &&
|
|
||||||
export CXX=g++-7 &&
|
|
||||||
source /opt/qt511/bin/qt511-env.sh &&
|
|
||||||
cd /tmp &&
|
|
||||||
git clone https://github.com/frankosterfeld/qtkeychain.git &&
|
|
||||||
cd qtkeychain &&
|
|
||||||
git checkout v0.9.1 &&
|
|
||||||
mkdir build &&
|
|
||||||
cd build &&
|
|
||||||
cmake ../ &&
|
|
||||||
make &&
|
|
||||||
make install"
|
|
||||||
# Build client
|
|
||||||
- /bin/bash -c "
|
|
||||||
export CC=gcc-7 &&
|
|
||||||
export CXX=g++-7 &&
|
|
||||||
source /opt/qt511/bin/qt511-env.sh &&
|
|
||||||
mkdir build &&
|
|
||||||
cd build &&
|
|
||||||
cmake -D NO_SHIBBOLETH=1 -DCMAKE_BUILD_TYPE=Debug -DUNIT_TESTING=1 -DSANITIZE_ADDRESS=ON ../ &&
|
|
||||||
make &&
|
|
||||||
useradd -m -s /bin/bash test &&
|
|
||||||
chown -R test:test . &&
|
|
||||||
su -c 'ASAN_OPTIONS=detect_leaks=0 ctest --output-on-failure' test"
|
|
||||||
trigger:
|
|
||||||
branch:
|
|
||||||
- master
|
|
||||||
event:
|
|
||||||
- pull_request
|
|
||||||
- push
|
|
||||||
|
|
||||||
---
|
|
||||||
kind: pipeline
|
|
||||||
name: qt-5.11-clang
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: build and test
|
|
||||||
image: nextcloudci/client-5.11:client-5.11-3
|
|
||||||
commands:
|
|
||||||
# Install QtKeyChain
|
|
||||||
- /bin/bash -c "
|
|
||||||
export CC=clang-6.0 &&
|
|
||||||
export CXX=clang++-6.0 &&
|
|
||||||
source /opt/qt511/bin/qt511-env.sh &&
|
|
||||||
cd /tmp &&
|
|
||||||
git clone https://github.com/frankosterfeld/qtkeychain.git &&
|
|
||||||
cd qtkeychain &&
|
|
||||||
git checkout v0.9.1 &&
|
|
||||||
mkdir build &&
|
|
||||||
cd build &&
|
|
||||||
cmake ../ &&
|
|
||||||
make &&
|
|
||||||
make install"
|
|
||||||
# Build client
|
|
||||||
- /bin/bash -c "
|
|
||||||
export CC=clang-6.0 &&
|
|
||||||
export CXX=clang++-6.0 &&
|
|
||||||
source /opt/qt511/bin/qt511-env.sh &&
|
|
||||||
mkdir build &&
|
|
||||||
cd build &&
|
|
||||||
cmake -D NO_SHIBBOLETH=1 -DCMAKE_BUILD_TYPE=Debug -DUNIT_TESTING=1 -DSANITIZE_ADDRESS=ON ../ &&
|
|
||||||
make &&
|
|
||||||
useradd -m -s /bin/bash test &&
|
|
||||||
chown -R test:test . &&
|
|
||||||
su -c 'ASAN_OPTIONS=detect_leaks=0 ctest --output-on-failure' test"
|
|
||||||
trigger:
|
|
||||||
branch:
|
|
||||||
- master
|
|
||||||
event:
|
|
||||||
- pull_request
|
|
||||||
- push
|
|
||||||
|
|
||||||
---
|
|
||||||
kind: pipeline
|
|
||||||
name: qt-5.12
|
name: qt-5.12
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: build and test
|
- name: build and test
|
||||||
image: nextcloudci/client-5.12:client-5.12-5
|
image: nextcloudci/client-5.12:client-5.12-7
|
||||||
commands:
|
commands:
|
||||||
# Install QtKeyChain
|
# Install QtKeyChain
|
||||||
- /bin/bash -c "
|
- /bin/bash -c "
|
||||||
export CC=gcc-7 &&
|
export CC=gcc-7 &&
|
||||||
export CXX=g++-7 &&
|
export CXX=g++-7 &&
|
||||||
export QT_BASE_DIR=/opt/qt5.12.5 &&
|
export QT_BASE_DIR=/opt/qt5.12.8 &&
|
||||||
export QTDIR=\$QT_BASE_DIR &&
|
export QTDIR=\$QT_BASE_DIR &&
|
||||||
export PATH=\$QT_BASE_DIR/bin:\$PATH &&
|
export PATH=\$QT_BASE_DIR/bin:\$PATH &&
|
||||||
export LD_LIBRARY_PATH=\$QT_BASE_DIR/lib/x86_64-linux-gnu:\$QT_BASE_DIR/lib:/usr/local/lib:\$LD_LIBRARY_PATH &&
|
export LD_LIBRARY_PATH=\$QT_BASE_DIR/lib/x86_64-linux-gnu:\$QT_BASE_DIR/lib:/usr/local/lib:\$LD_LIBRARY_PATH &&
|
||||||
@@ -261,14 +27,14 @@ steps:
|
|||||||
- /bin/bash -c "
|
- /bin/bash -c "
|
||||||
export CC=gcc-7 &&
|
export CC=gcc-7 &&
|
||||||
export CXX=g++-7 &&
|
export CXX=g++-7 &&
|
||||||
export QT_BASE_DIR=/opt/qt5.12.5 &&
|
export QT_BASE_DIR=/opt/qt5.12.8 &&
|
||||||
export QTDIR=\$QT_BASE_DIR &&
|
export QTDIR=\$QT_BASE_DIR &&
|
||||||
export PATH=\$QT_BASE_DIR/bin:\$PATH &&
|
export PATH=\$QT_BASE_DIR/bin:\$PATH &&
|
||||||
export LD_LIBRARY_PATH=\$QT_BASE_DIR/lib/x86_64-linux-gnu:\$QT_BASE_DIR/lib:/usr/local/lib:\$LD_LIBRARY_PATH &&
|
export LD_LIBRARY_PATH=\$QT_BASE_DIR/lib/x86_64-linux-gnu:\$QT_BASE_DIR/lib:/usr/local/lib:\$LD_LIBRARY_PATH &&
|
||||||
export PKG_CONFIG_PATH=\$QT_BASE_DIR/lib/pkgconfig:\$PKG_CONFIG_PATH &&
|
export PKG_CONFIG_PATH=\$QT_BASE_DIR/lib/pkgconfig:\$PKG_CONFIG_PATH &&
|
||||||
mkdir build &&
|
mkdir build &&
|
||||||
cd build &&
|
cd build &&
|
||||||
cmake -D NO_SHIBBOLETH=1 -DCMAKE_BUILD_TYPE=Debug -DUNIT_TESTING=1 -DSANITIZE_ADDRESS=ON ../ &&
|
cmake -D NO_SHIBBOLETH=1 -DBUILD_UPDATER=ON -DCMAKE_BUILD_TYPE=Debug -DUNIT_TESTING=1 -DSANITIZE_ADDRESS=ON ../ &&
|
||||||
make &&
|
make &&
|
||||||
useradd -m -s /bin/bash test &&
|
useradd -m -s /bin/bash test &&
|
||||||
chown -R test:test . &&
|
chown -R test:test . &&
|
||||||
@@ -286,13 +52,13 @@ name: qt-5.12-clang
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: build and test
|
- name: build and test
|
||||||
image: nextcloudci/client-5.12:client-5.12-5
|
image: nextcloudci/client-5.12:client-5.12-7
|
||||||
commands:
|
commands:
|
||||||
# Install QtKeyChain
|
# Install QtKeyChain
|
||||||
- /bin/bash -c "
|
- /bin/bash -c "
|
||||||
export CC=clang-6.0 &&
|
export CC=clang-6.0 &&
|
||||||
export CXX=clang++-6.0 &&
|
export CXX=clang++-6.0 &&
|
||||||
export QT_BASE_DIR=/opt/qt5.12.5 &&
|
export QT_BASE_DIR=/opt/qt5.12.8 &&
|
||||||
export QTDIR=\$QT_BASE_DIR &&
|
export QTDIR=\$QT_BASE_DIR &&
|
||||||
export PATH=\$QT_BASE_DIR/bin:\$PATH &&
|
export PATH=\$QT_BASE_DIR/bin:\$PATH &&
|
||||||
export LD_LIBRARY_PATH=\$QT_BASE_DIR/lib/x86_64-linux-gnu:\$QT_BASE_DIR/lib:/usr/local/lib:\$LD_LIBRARY_PATH &&
|
export LD_LIBRARY_PATH=\$QT_BASE_DIR/lib/x86_64-linux-gnu:\$QT_BASE_DIR/lib:/usr/local/lib:\$LD_LIBRARY_PATH &&
|
||||||
@@ -310,18 +76,22 @@ steps:
|
|||||||
- /bin/bash -c "
|
- /bin/bash -c "
|
||||||
export CC=clang-6.0 &&
|
export CC=clang-6.0 &&
|
||||||
export CXX=clang++-6.0 &&
|
export CXX=clang++-6.0 &&
|
||||||
export QT_BASE_DIR=/opt/qt5.12.5 &&
|
export QT_BASE_DIR=/opt/qt5.12.8 &&
|
||||||
export QTDIR=\$QT_BASE_DIR &&
|
export QTDIR=\$QT_BASE_DIR &&
|
||||||
export PATH=\$QT_BASE_DIR/bin:\$PATH &&
|
export PATH=\$QT_BASE_DIR/bin:\$PATH &&
|
||||||
export LD_LIBRARY_PATH=\$QT_BASE_DIR/lib/x86_64-linux-gnu:\$QT_BASE_DIR/lib:/usr/local/lib:\$LD_LIBRARY_PATH &&
|
export LD_LIBRARY_PATH=\$QT_BASE_DIR/lib/x86_64-linux-gnu:\$QT_BASE_DIR/lib:/usr/local/lib:\$LD_LIBRARY_PATH &&
|
||||||
export PKG_CONFIG_PATH=\$QT_BASE_DIR/lib/pkgconfig:\$PKG_CONFIG_PATH &&
|
export PKG_CONFIG_PATH=\$QT_BASE_DIR/lib/pkgconfig:\$PKG_CONFIG_PATH &&
|
||||||
mkdir build &&
|
mkdir build &&
|
||||||
cd build &&
|
cd build &&
|
||||||
cmake -D NO_SHIBBOLETH=1 -DCMAKE_BUILD_TYPE=Debug -DUNIT_TESTING=1 -DSANITIZE_ADDRESS=ON ../ &&
|
cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DNO_SHIBBOLETH=1 -DBUILD_UPDATER=ON -DCMAKE_BUILD_TYPE=Debug -DUNIT_TESTING=1 -DSANITIZE_ADDRESS=ON ../ &&
|
||||||
make &&
|
make &&
|
||||||
useradd -m -s /bin/bash test &&
|
useradd -m -s /bin/bash test &&
|
||||||
chown -R test:test . &&
|
chown -R test:test . &&
|
||||||
su -c 'ASAN_OPTIONS=detect_leaks=0 ctest --output-on-failure' test"
|
su -c 'ASAN_OPTIONS=detect_leaks=0 ctest --output-on-failure' test"
|
||||||
|
# Static analysis with clang-tidy
|
||||||
|
- /bin/bash -c "
|
||||||
|
ln -s build/compile_commands.json . &&
|
||||||
|
run-clang-tidy-6.0"
|
||||||
trigger:
|
trigger:
|
||||||
branch:
|
branch:
|
||||||
- master
|
- master
|
||||||
@@ -335,7 +105,7 @@ name: AppImage
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: build
|
- name: build
|
||||||
image: nextcloudci/client-5.12:client-5.12-5
|
image: nextcloudci/client-5.12:client-5.12-7
|
||||||
commands:
|
commands:
|
||||||
- /bin/bash -c "./admin/linux/build-appimage.sh"
|
- /bin/bash -c "./admin/linux/build-appimage.sh"
|
||||||
- /bin/bash -c "./admin/linux/upload-appimage.sh"
|
- /bin/bash -c "./admin/linux/upload-appimage.sh"
|
||||||
|
|||||||
18
.github/workflows/rebase.yml
vendored
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
on:
|
||||||
|
issue_comment:
|
||||||
|
types: [created]
|
||||||
|
name: Automatic Rebase
|
||||||
|
jobs:
|
||||||
|
rebase:
|
||||||
|
name: Rebase
|
||||||
|
if: github.event.issue.pull_request != '' && contains(github.event.comment.body, '/rebase')
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout the latest code
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
with:
|
||||||
|
fetch-depth: 0
|
||||||
|
- name: Automatic Rebase
|
||||||
|
uses: cirrus-actions/rebase@1.3.1
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
3
.gitmodules
vendored
@@ -1,6 +1,3 @@
|
|||||||
[submodule "binary"]
|
|
||||||
path = binary
|
|
||||||
url = git://github.com/owncloud/owncloud-client-binary.git
|
|
||||||
[submodule "src/3rdparty/libcrashreporter-qt"]
|
[submodule "src/3rdparty/libcrashreporter-qt"]
|
||||||
path = src/3rdparty/libcrashreporter-qt
|
path = src/3rdparty/libcrashreporter-qt
|
||||||
url = git://github.com/dschmidt/libcrashreporter-qt.git
|
url = git://github.com/dschmidt/libcrashreporter-qt.git
|
||||||
|
|||||||
@@ -199,6 +199,6 @@ X-GNOME-Autostart-Delay=3
|
|||||||
|
|
||||||
# Translations
|
# Translations
|
||||||
Icon[bg_BG]=@APPLICATION_ICON_NAME@
|
Icon[bg_BG]=@APPLICATION_ICON_NAME@
|
||||||
Name[bg_BG]=@APPLICATION_NAME@ клиент за синхронизиране на десктоп
|
Name[bg_BG]=@APPLICATION_NAME@ десктоп клиент за синхронизиране
|
||||||
Comment[bg_BG]=@APPLICATION_NAME@ клиент за синхронизиране на десктоп
|
Comment[bg_BG]=@APPLICATION_NAME@ десктоп клиент за синхронизиране
|
||||||
GenericName[bg_BG]=Синхронизиране на папка
|
GenericName[bg_BG]=Синхронизиране на папка
|
||||||
|
|||||||
204
.tx/nextcloud.client-desktop/br_translation
Normal file
@@ -0,0 +1,204 @@
|
|||||||
|
[Desktop Entry]
|
||||||
|
Categories=Utility;X-SuSE-SyncUtility;
|
||||||
|
Type=Application
|
||||||
|
Exec=@APPLICATION_EXECUTABLE@
|
||||||
|
Name=@APPLICATION_NAME@ desktop sync client
|
||||||
|
Comment=@APPLICATION_NAME@ desktop synchronization client
|
||||||
|
GenericName=Folder Sync
|
||||||
|
Icon=@APPLICATION_ICON_NAME@
|
||||||
|
Keywords=@APPLICATION_NAME@;syncing;file;sharing;
|
||||||
|
X-GNOME-Autostart-Delay=3
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
Icon[br]=@APPLICATION_ICON_NAME@
|
||||||
|
Name[br]=@APPLICATION_NAME@ burev kempreet an implijer
|
||||||
|
Comment[br]=@APPLICATION_NAME@ burev kempreet an implijer
|
||||||
|
GenericName[br]=Tuliad kemprenan
|
||||||
@@ -199,6 +199,6 @@ X-GNOME-Autostart-Delay=3
|
|||||||
|
|
||||||
# Translations
|
# Translations
|
||||||
Icon[ca]=@APPLICATION_ICON_NAME@
|
Icon[ca]=@APPLICATION_ICON_NAME@
|
||||||
Name[ca]=@APPLICATION_NAME@ client de sincronització d'escriptori
|
Name[ca]=Client de sincronització d'escriptori del @APPLICATION_NAME@
|
||||||
Comment[ca]=@APPLICATION_NAME@ client de sincronització d'escriptori
|
Comment[ca]=Client de sincronització d'escriptori del @APPLICATION_NAME@
|
||||||
GenericName[ca]=Directori de sincronització
|
GenericName[ca]=Directori de sincronització
|
||||||
|
|||||||
@@ -199,6 +199,6 @@ X-GNOME-Autostart-Delay=3
|
|||||||
|
|
||||||
# Translations
|
# Translations
|
||||||
Icon[de_DE]=@APPLICATION_ICON_NAME@
|
Icon[de_DE]=@APPLICATION_ICON_NAME@
|
||||||
Name[de_DE]=@APPLICATION_NAME@ Client zur Desktop-Synchronisation
|
Name[de_DE]=@APPLICATION_NAME@ Client zur Desktop-Synchronisierung
|
||||||
Comment[de_DE]=@APPLICATION_NAME@ Client zur Desktop-Synchronisation
|
Comment[de_DE]=@APPLICATION_NAME@ Client zur Desktop-Synchronisierung
|
||||||
GenericName[de_DE]=Synchronisationsordner
|
GenericName[de_DE]=Synchronisierungsordner
|
||||||
|
|||||||
204
.tx/nextcloud.client-desktop/et_translation
Normal file
@@ -0,0 +1,204 @@
|
|||||||
|
[Desktop Entry]
|
||||||
|
Categories=Utility;X-SuSE-SyncUtility;
|
||||||
|
Type=Application
|
||||||
|
Exec=@APPLICATION_EXECUTABLE@
|
||||||
|
Name=@APPLICATION_NAME@ desktop sync client
|
||||||
|
Comment=@APPLICATION_NAME@ desktop synchronization client
|
||||||
|
GenericName=Folder Sync
|
||||||
|
Icon=@APPLICATION_ICON_NAME@
|
||||||
|
Keywords=@APPLICATION_NAME@;syncing;file;sharing;
|
||||||
|
X-GNOME-Autostart-Delay=3
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
Icon[et_EE]=@APPLICATION_ICON_NAME@
|
||||||
|
Name[et_EE]=@APPLICATION_NAME@ töölaua sünkimise klient
|
||||||
|
Comment[et_EE]=@APPLICATION_NAME@ töölaua sünkroniseerimise klient
|
||||||
|
GenericName[et_EE]=Kausta Sünkroonimine
|
||||||
201
.tx/nextcloud.client-desktop/fa_translation
Normal file
@@ -0,0 +1,201 @@
|
|||||||
|
[Desktop Entry]
|
||||||
|
Categories=Utility;X-SuSE-SyncUtility;
|
||||||
|
Type=Application
|
||||||
|
Exec=@APPLICATION_EXECUTABLE@
|
||||||
|
Name=@APPLICATION_NAME@ desktop sync client
|
||||||
|
Comment=@APPLICATION_NAME@ desktop synchronization client
|
||||||
|
GenericName=Folder Sync
|
||||||
|
Icon=@APPLICATION_ICON_NAME@
|
||||||
|
Keywords=@APPLICATION_NAME@;syncing;file;sharing;
|
||||||
|
X-GNOME-Autostart-Delay=3
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
Comment[fa]=@ APPLICATION_NAME @ مشتری هماهنگ سازی دسکتاپ
|
||||||
204
.tx/nextcloud.client-desktop/fi_translation
Normal file
@@ -0,0 +1,204 @@
|
|||||||
|
[Desktop Entry]
|
||||||
|
Categories=Utility;X-SuSE-SyncUtility;
|
||||||
|
Type=Application
|
||||||
|
Exec=@APPLICATION_EXECUTABLE@
|
||||||
|
Name=@APPLICATION_NAME@ desktop sync client
|
||||||
|
Comment=@APPLICATION_NAME@ desktop synchronization client
|
||||||
|
GenericName=Folder Sync
|
||||||
|
Icon=@APPLICATION_ICON_NAME@
|
||||||
|
Keywords=@APPLICATION_NAME@;syncing;file;sharing;
|
||||||
|
X-GNOME-Autostart-Delay=3
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
Icon[fi_FI]=@APPLICATION_ICON_NAME@
|
||||||
|
Name[fi_FI]=@APPLICATION_NAME@ työpöydän synkronointipääte
|
||||||
|
Comment[fi_FI]=@APPLICATION_NAME@ työpöydän synkronointipääte
|
||||||
|
GenericName[fi_FI]=Kansio synkronointi
|
||||||
204
.tx/nextcloud.client-desktop/oc_translation
Normal file
@@ -0,0 +1,204 @@
|
|||||||
|
[Desktop Entry]
|
||||||
|
Categories=Utility;X-SuSE-SyncUtility;
|
||||||
|
Type=Application
|
||||||
|
Exec=@APPLICATION_EXECUTABLE@
|
||||||
|
Name=@APPLICATION_NAME@ desktop sync client
|
||||||
|
Comment=@APPLICATION_NAME@ desktop synchronization client
|
||||||
|
GenericName=Folder Sync
|
||||||
|
Icon=@APPLICATION_ICON_NAME@
|
||||||
|
Keywords=@APPLICATION_NAME@;syncing;file;sharing;
|
||||||
|
X-GNOME-Autostart-Delay=3
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
Icon[oc]=@APPLICATION_ICON_NAME@
|
||||||
|
Name[oc]=@APPLICATION_NAME@ client de sincronizacion
|
||||||
|
Comment[oc]=@APPLICATION_NAME@ client de sincronizacion
|
||||||
|
GenericName[oc]=Sincro. dossièr
|
||||||
@@ -201,4 +201,4 @@ X-GNOME-Autostart-Delay=3
|
|||||||
Icon[uk]=@APPLICATION_ICON_NAME@
|
Icon[uk]=@APPLICATION_ICON_NAME@
|
||||||
Name[uk]=@APPLICATION_NAME@ клієнт для ПК
|
Name[uk]=@APPLICATION_NAME@ клієнт для ПК
|
||||||
Comment[uk]=Клієнт синхронізації @APPLICATION_NAME@ для ПК
|
Comment[uk]=Клієнт синхронізації @APPLICATION_NAME@ для ПК
|
||||||
GenericName[uk]=Синхронізація каталогів
|
GenericName[uk]=Синхронізація тек
|
||||||
|
|||||||
@@ -198,6 +198,7 @@ X-GNOME-Autostart-Delay=3
|
|||||||
|
|
||||||
|
|
||||||
# Translations
|
# Translations
|
||||||
|
Icon[zh_TW]=@APPLICATION_ICON_NAME@
|
||||||
Name[zh_TW]=@APPLICATION_NAME@ 桌面同步客戶端
|
Name[zh_TW]=@APPLICATION_NAME@ 桌面同步客戶端
|
||||||
Comment[zh_TW]=@APPLICATION_NAME@ 桌面同步客戶端
|
Comment[zh_TW]=@APPLICATION_NAME@ 桌面同步客戶端
|
||||||
GenericName[zh_TW]=資料夾同步
|
GenericName[zh_TW]=資料夾同步
|
||||||
|
|||||||
@@ -123,6 +123,15 @@ if(NO_MSG_HANDLER)
|
|||||||
add_definitions(-DNO_MSG_HANDLER=1)
|
add_definitions(-DNO_MSG_HANDLER=1)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
# this option builds the updater
|
||||||
|
option(BUILD_UPDATER "BUILD_UPDATER" OFF)
|
||||||
|
if(BUILD_UPDATER)
|
||||||
|
message("Compiling with updater")
|
||||||
|
add_definitions(-DBUILD_UPDATER=1)
|
||||||
|
else()
|
||||||
|
message("Compiling without updater")
|
||||||
|
endif()
|
||||||
|
|
||||||
# this option builds the shell integration
|
# this option builds the shell integration
|
||||||
option(BUILD_SHELL_INTEGRATION "BUILD_SHELL_INTEGRATION" ON)
|
option(BUILD_SHELL_INTEGRATION "BUILD_SHELL_INTEGRATION" ON)
|
||||||
|
|
||||||
@@ -172,9 +181,9 @@ if(APPLE)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(BUILD_CLIENT)
|
if(BUILD_CLIENT)
|
||||||
if(APPLE)
|
if(APPLE AND BUILD_UPDATER)
|
||||||
find_package(Sparkle)
|
find_package(Sparkle)
|
||||||
endif(APPLE)
|
endif()
|
||||||
|
|
||||||
if(UNIX)
|
if(UNIX)
|
||||||
find_package(INotify REQUIRED)
|
find_package(INotify REQUIRED)
|
||||||
@@ -219,11 +228,7 @@ if (APPLE)
|
|||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
option(SANITIZE_ADDRESS "Enable address sanitizer in tests" OFF)
|
include(SanitizerFlags)
|
||||||
if (SANITIZE_ADDRESS)
|
|
||||||
include(SanitizerFlags)
|
|
||||||
enable_sanitizer()
|
|
||||||
endif ()
|
|
||||||
|
|
||||||
# Handle Translations, pick all client_* files from trans directory.
|
# Handle Translations, pick all client_* files from trans directory.
|
||||||
file( GLOB TRANS_FILES ${CMAKE_SOURCE_DIR}/translations/client_*.ts)
|
file( GLOB TRANS_FILES ${CMAKE_SOURCE_DIR}/translations/client_*.ts)
|
||||||
|
|||||||
125
ChangeLog
@@ -1,5 +1,126 @@
|
|||||||
Will be tracked going forward here:
|
ChangeLog
|
||||||
https://github.com/nextcloud/desktop/releases
|
====================
|
||||||
|
For details check https://nextcloud.com/blog/category/release.
|
||||||
|
|
||||||
|
2.6 Series ChangeLog
|
||||||
|
====================
|
||||||
|
|
||||||
|
version 2.6.4 (release 2020-03-04)
|
||||||
|
* Fix Explorer pinning: Add fallbacks for Shell commands (fixes #1599)
|
||||||
|
* WebFlowCredentials: Make username comparison case-insensitive (fix #1741)
|
||||||
|
* ActivityListModel: Show full date and time as a Tooltip only
|
||||||
|
* Disable HTTP/2 for now due to Qt bug, allow enabling it via env var
|
||||||
|
* Fix Explorer integration re-save and hide option on non-Windows
|
||||||
|
* l10n: Changes to improve source strings
|
||||||
|
* Updater: Add query-parameter 'updatesegment' to the update check
|
||||||
|
* Allow Desktop translation merging and custom backport branches
|
||||||
|
|
||||||
|
version 2.6.3 (release 2020-02-17)
|
||||||
|
* Add UserInfo class and fetch quota via API instead of PropfindJob
|
||||||
|
* l10n: Changed grammar and triple dots to ellipsis
|
||||||
|
* l10n: Changed spelling of "user name" to "username"
|
||||||
|
* Start the client in background if activated by D-Bus
|
||||||
|
* Do not install files related to cloud providers under Xenial
|
||||||
|
* Make sure that the libcloudprovider integration is using a valid D-Bus path
|
||||||
|
* Changed product name to Nextcloud
|
||||||
|
* Update autoupdate.rst
|
||||||
|
* Use system proxy by default if no config file is present
|
||||||
|
* Install libcloudproviders files by default on debian
|
||||||
|
* Windows 7 is out of support
|
||||||
|
* BugFix: Handle broken shared file error gracefully
|
||||||
|
* Fix Explorer integration on Windows and the crash on other systems
|
||||||
|
* Welcome to 2020
|
||||||
|
* Updated year in legalnotice.cpp
|
||||||
|
* apply http2 qt resend patch from owncloud
|
||||||
|
|
||||||
|
version 2.6.2 (release 2019-12-24)
|
||||||
|
* Revert DEFAULT_REMOTE_POLL_INTERVAL back from 5 seconds to 30 seconds
|
||||||
|
* Use user-provided username in displayName() - Fix #836
|
||||||
|
* Fix typo
|
||||||
|
* Build with libcloudproviders on debian and in the AppImage
|
||||||
|
* Fix tests for Windows platform
|
||||||
|
* Merge the list of ignored files/symlinks into one Activity notification.
|
||||||
|
* Fix clang's variadic macro warnings
|
||||||
|
* Add libdbus-1-dev to the build dependencies
|
||||||
|
* Compare QDateTime objects more efficient
|
||||||
|
* Improve the translation of "Share via …"
|
||||||
|
* Upgrade for Qt 5.12.5 in docker-ci
|
||||||
|
* Bump Qt 5.12.5 image
|
||||||
|
* Add timestamp to Mac installer code signing
|
||||||
|
* MacOS build: Avoid the Get-Task-Allow Entitlement (Notarization)
|
||||||
|
* Build for Debian stable and oldstable
|
||||||
|
* Happy new year
|
||||||
|
* Fall back to old login flow on GS as this is not yet ready
|
||||||
|
* [stable-2.6] macOS build: Avoid the Get-Task-Allow Entitlement (Notarization)
|
||||||
|
* Fix remote wipe keychain storage (issue #1592)
|
||||||
|
* Fix copyright year in MacOSXBundleInfo.plist.in for 2019
|
||||||
|
* Fix macOS GUI (Qt 5.12)
|
||||||
|
* Windows: Workaround for storing >= 4k (4096 bit) client-cert SSL keys
|
||||||
|
* Fix Activity List: Add check to avoid first empty entry
|
||||||
|
* Fix macOS GUI (Qt 5.12) No. 2 (continuation of #1651)
|
||||||
|
* Show date and time in activity log (fixes issue #1683)
|
||||||
|
* Login Flow v2 enhancements
|
||||||
|
* Activity List: Fix crash and folder opening
|
||||||
|
* Fix issue #1237: White text on almost-white background
|
||||||
|
* Heavy refactoring: Windows workaround for >= 4k (4096 bit) client-cert SSL keys and large certs
|
||||||
|
* Fix date in ActivityWidget and remove unnecessary string conversion
|
||||||
|
|
||||||
|
version 2.6.1 (release 2019-11-04)
|
||||||
|
* Changed max GUI bandwidth limits
|
||||||
|
* Add sync date next to "Synchronized with local folder"
|
||||||
|
* Slideshow buttons
|
||||||
|
* Fix qt warning about registering a URL sheme first.
|
||||||
|
* Issue #1216: added sync-exclude entry for emacs recovery files
|
||||||
|
* Race condition in the remote size loading logic
|
||||||
|
* Review of msvc/gcc warnings -> code cleanup, prevention of implicit casts, variadic macros
|
||||||
|
* Fix double slashes
|
||||||
|
* Fixing E2E CSR transmission failure for new connections
|
||||||
|
* Fixed missing 'translatable' exclusions, added missing window titles
|
||||||
|
* Checks if exclude file is empty before creating the regular expressions.
|
||||||
|
* Add server info to menu
|
||||||
|
* Fixed grammar
|
||||||
|
* Prevent jumping of tray menu
|
||||||
|
* Don't run connection wizard when quitting the application
|
||||||
|
* Avoiding copying in range-based loops
|
||||||
|
* Add a 'Content-Length: 0' header to initial POST requests
|
||||||
|
* Remote wipe.
|
||||||
|
* Pick from upstream: Update qtmacgoodies for an OSX crash fix #6930
|
||||||
|
* fix for issue no. #1351
|
||||||
|
* Merge the list of ignored files/symlinks into one Activity notification.
|
||||||
|
* Update submodules for Qt 5.12.5 (qtmacgoodies)
|
||||||
|
* Fix duplicate items in Apps menu (a bug introduced in #1477)
|
||||||
|
* Fix #1182
|
||||||
|
* Fix remote wipe when a proxy is configured.
|
||||||
|
* Fix updater message: Download link instead of "use the system's update
|
||||||
|
|
||||||
|
version 2.6.0 Login flow v2 (release 2019-09-27)
|
||||||
|
* Reinstate Debian build in the new Drone config
|
||||||
|
* Typo
|
||||||
|
* Marking unused strings as unstranslatable
|
||||||
|
* Fixes #607
|
||||||
|
* Fixes issue #878
|
||||||
|
* Fixes issue #1187
|
||||||
|
* Displays FileIgnored activities with an info icon
|
||||||
|
* Minor text change in the link to help in the tab 'General'.
|
||||||
|
* Update Qt 5.5 compatibility patch for Xenial
|
||||||
|
* Remove Ubuntu Cosmic and add Eoan package
|
||||||
|
* Add proper CA to client side certificate connection
|
||||||
|
* Remove dependency on libgnome-keyring0 on Eoan
|
||||||
|
* Read .sync_exclude.lst in each subdirectory
|
||||||
|
* Updates ChangeLog.
|
||||||
|
* Login flow v2
|
||||||
|
* Adds SSL client cert storage to webflow + Login Flow v2
|
||||||
|
* Windows: Workaround for CredWriteW used by QtKeychain
|
||||||
|
* Integrated registry check on windows when hasDarkSystray is called.
|
||||||
|
* Logo update
|
||||||
|
* Updated .gitignore to integrate unwanted files when working with VSC …
|
||||||
|
* Full-Scaled new logo in Windows 10 start menu tile
|
||||||
|
* Qt5.5 compatiblity patch for login flow V2 + UI improvement (Use newer digest algorithms in TLS error dialog)
|
||||||
|
* Fix for #1382 "linux client crashes for no discernable reason"
|
||||||
|
* UI improvement: Message box: Delete / Keep all files
|
||||||
|
* Improve wording of the context menu in the file manager extension.
|
||||||
|
* Changes wording in the share context menu.
|
||||||
|
* Fix White Window issue on Windows by upgrading to Qt 5.12.5
|
||||||
|
|
||||||
2.5 Series ChangeLog
|
2.5 Series ChangeLog
|
||||||
====================
|
====================
|
||||||
|
|||||||
@@ -24,6 +24,9 @@ option( WITH_CRASHREPORTER "Build crashreporter" OFF )
|
|||||||
#set( CRASHREPORTER_SUBMIT_URL "https://crash-reports.owncloud.com/submit" CACHE STRING "URL for crash reporter" )
|
#set( CRASHREPORTER_SUBMIT_URL "https://crash-reports.owncloud.com/submit" CACHE STRING "URL for crash reporter" )
|
||||||
#set( CRASHREPORTER_ICON ":/owncloud-icon.png" )
|
#set( CRASHREPORTER_ICON ":/owncloud-icon.png" )
|
||||||
|
|
||||||
|
## Updater options
|
||||||
|
option( BUILD_UPDATER "Build updater" OFF )
|
||||||
|
|
||||||
option( WITH_PROVIDERS "Build with providers list" ON )
|
option( WITH_PROVIDERS "Build with providers list" ON )
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -61,14 +61,14 @@ For more info: [Wiki/Daily Builds](https://github.com/nextcloud/desktop/wiki/Dai
|
|||||||
### :bomb: Reporting issues
|
### :bomb: Reporting issues
|
||||||
|
|
||||||
- If you find any bugs or have any suggestion for improvement, please
|
- If you find any bugs or have any suggestion for improvement, please
|
||||||
file an issue at https://github.com/nextcloud/client/issues. Do not
|
file an issue at https://github.com/nextcloud/desktop/issues. Do not
|
||||||
contact the authors directly by mail, as this increases the chance
|
contact the authors directly by mail, as this increases the chance
|
||||||
of your report being lost. :boom:
|
of your report being lost. :boom:
|
||||||
|
|
||||||
### :smiley: :trophy: Pull requests
|
### :smiley: :trophy: Pull requests
|
||||||
|
|
||||||
- If you created a patch :heart_eyes:, please submit a [Pull
|
- If you created a patch :heart_eyes:, please submit a [Pull
|
||||||
Request](https://github.com/nextcloud/client/pulls).
|
Request](https://github.com/nextcloud/desktop/pulls).
|
||||||
- How to create a pull request? This guide will help you get started: [Opening a pull request](https://opensource.guide/how-to-contribute/#opening-a-pull-request) :heart:
|
- How to create a pull request? This guide will help you get started: [Opening a pull request](https://opensource.guide/how-to-contribute/#opening-a-pull-request) :heart:
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,23 +0,0 @@
|
|||||||
# This DockerFile is used to create the image used for Jenkins, the CI system (see Jenkinsfile)
|
|
||||||
# It is not meant to be used to create the production packages.
|
|
||||||
|
|
||||||
# Distro with Qt 5.6
|
|
||||||
FROM ubuntu:yakkety
|
|
||||||
|
|
||||||
RUN apt-get update -q && DEBIAN_FRONTEND=noninteractive apt-get install -q -y --no-install-recommends \
|
|
||||||
locales \
|
|
||||||
build-essential \
|
|
||||||
clang \
|
|
||||||
ninja-build \
|
|
||||||
cmake \
|
|
||||||
extra-cmake-modules \
|
|
||||||
libsqlite3-dev \
|
|
||||||
libssl-dev \
|
|
||||||
libcmocka-dev \
|
|
||||||
libcloudproviders-dev \
|
|
||||||
qt5-default \
|
|
||||||
qttools5-dev-tools \
|
|
||||||
libqt5webkit5-dev \
|
|
||||||
qt5keychain-dev \
|
|
||||||
kio-dev \
|
|
||||||
&& apt-get clean
|
|
||||||
@@ -6,7 +6,7 @@ mkdir /app
|
|||||||
mkdir /build
|
mkdir /build
|
||||||
|
|
||||||
#Set Qt-5.12
|
#Set Qt-5.12
|
||||||
export QT_BASE_DIR=/opt/qt5.12.5
|
export QT_BASE_DIR=/opt/qt5.12.8
|
||||||
export QTDIR=$QT_BASE_DIR
|
export QTDIR=$QT_BASE_DIR
|
||||||
export PATH=$QT_BASE_DIR/bin:$PATH
|
export PATH=$QT_BASE_DIR/bin:$PATH
|
||||||
export LD_LIBRARY_PATH=$QT_BASE_DIR/lib/x86_64-linux-gnu:$QT_BASE_DIR/lib:$LD_LIBRARY_PATH
|
export LD_LIBRARY_PATH=$QT_BASE_DIR/lib/x86_64-linux-gnu:$QT_BASE_DIR/lib:$LD_LIBRARY_PATH
|
||||||
@@ -38,6 +38,7 @@ mkdir build-client
|
|||||||
cd build-client
|
cd build-client
|
||||||
cmake -D CMAKE_INSTALL_PREFIX=/usr \
|
cmake -D CMAKE_INSTALL_PREFIX=/usr \
|
||||||
-D NO_SHIBBOLETH=1 \
|
-D NO_SHIBBOLETH=1 \
|
||||||
|
-D BUILD_UPDATER=ON \
|
||||||
-D QTKEYCHAIN_LIBRARY=/app/usr/lib/x86_64-linux-gnu/libqt5keychain.so \
|
-D QTKEYCHAIN_LIBRARY=/app/usr/lib/x86_64-linux-gnu/libqt5keychain.so \
|
||||||
-D QTKEYCHAIN_INCLUDE_DIR=/app/usr/include/qt5keychain/ \
|
-D QTKEYCHAIN_INCLUDE_DIR=/app/usr/include/qt5keychain/ \
|
||||||
-DMIRALL_VERSION_SUFFIX=PR-$DRONE_PULL_REQUEST \
|
-DMIRALL_VERSION_SUFFIX=PR-$DRONE_PULL_REQUEST \
|
||||||
|
|||||||
@@ -1,31 +0,0 @@
|
|||||||
- .pbuilderrc:
|
|
||||||
|
|
||||||
COMPONENTS="main restricted universe multiverse"
|
|
||||||
|
|
||||||
OTHERMIRROR="deb [trusted=yes] file:///${HOME}/pbuilder/deps ./"
|
|
||||||
HOOKDIR="${HOME}/pbuilder/hook.d"
|
|
||||||
BINDMOUNTS="${HOME}/pbuilder/deps"
|
|
||||||
|
|
||||||
EXTRAPACKAGES="apt-utils"
|
|
||||||
|
|
||||||
- pbuilder/hook.d/D70setupdeps: hook to create a Packages file for the
|
|
||||||
packages in pbuilder/deps
|
|
||||||
|
|
||||||
- pbuilder-dist trusty create --override-config --othermirror "deb [trusted=yes] file:///${HOME}/pbuilder/deps ./"
|
|
||||||
|
|
||||||
The OTHERMIRROR setting in .pbuilderrc is overridden by pbuilder-dist!
|
|
||||||
|
|
||||||
- scripts:
|
|
||||||
|
|
||||||
config.sh: basic configuration variables
|
|
||||||
|
|
||||||
create_debdir.sh <tag> <version> <distribution>:
|
|
||||||
create the Debian-conformant source directory and .orig.tar.bz2
|
|
||||||
in the build area
|
|
||||||
build.sh <tag> <version> <distribution> <debuild options...>:
|
|
||||||
call create_debdir.sh and then debuild
|
|
||||||
pbuilder.sh <distribution>:
|
|
||||||
build the existing source package with pbuilder-dist.
|
|
||||||
pbuild.sh <distribution>:
|
|
||||||
build the source packages with build.sh and then call
|
|
||||||
pbuilder.sh
|
|
||||||
@@ -1,23 +0,0 @@
|
|||||||
nextcloud-client (2.3.3-1.0~bionic1) bionic; urgency=medium
|
|
||||||
|
|
||||||
* Debian build support for the forked client.
|
|
||||||
|
|
||||||
-- István Váradi <ivaradi@varadiistvan.hu> Mon, 6 Nov 2017 20:20:04 +0100
|
|
||||||
|
|
||||||
nextcloud-client (2.3.1-1.0~bionic1) bionic; urgency=medium
|
|
||||||
|
|
||||||
* New upstream version
|
|
||||||
|
|
||||||
-- István Váradi <ivaradi@varadiistvan.hu> Thu, 23 Mar 2017 19:07:36 +0100
|
|
||||||
|
|
||||||
nextcloud-client (2.3.0-1.0~bionic1) bionic; urgency=medium
|
|
||||||
|
|
||||||
* New upstream version
|
|
||||||
|
|
||||||
-- István Váradi <ivaradi@varadiistvan.hu> Tue, 21 Mar 2017 19:34:13 +0100
|
|
||||||
|
|
||||||
nextcloud-client (2.2.4-1.4~bionic1) bionic; urgency=medium
|
|
||||||
|
|
||||||
* The locale-specific icon names are correct too
|
|
||||||
|
|
||||||
-- István Váradi <ivaradi@varadiistvan.hu> Tue, 7 Feb 2017 19:55:40 +0100
|
|
||||||
@@ -1,23 +0,0 @@
|
|||||||
nextcloud-client (2.3.3-1.0~disco1) disco; urgency=medium
|
|
||||||
|
|
||||||
* Debian build support for the forked client.
|
|
||||||
|
|
||||||
-- István Váradi <ivaradi@varadiistvan.hu> Mon, 6 Nov 2017 20:20:04 +0100
|
|
||||||
|
|
||||||
nextcloud-client (2.3.1-1.0~disco1) disco; urgency=medium
|
|
||||||
|
|
||||||
* New upstream version
|
|
||||||
|
|
||||||
-- István Váradi <ivaradi@varadiistvan.hu> Thu, 23 Mar 2017 19:07:36 +0100
|
|
||||||
|
|
||||||
nextcloud-client (2.3.0-1.0~disco1) disco; urgency=medium
|
|
||||||
|
|
||||||
* New upstream version
|
|
||||||
|
|
||||||
-- István Váradi <ivaradi@varadiistvan.hu> Tue, 21 Mar 2017 19:34:13 +0100
|
|
||||||
|
|
||||||
nextcloud-client (2.2.4-1.4~disco1) disco; urgency=medium
|
|
||||||
|
|
||||||
* The locale-specific icon names are correct too
|
|
||||||
|
|
||||||
-- István Váradi <ivaradi@varadiistvan.hu> Tue, 7 Feb 2017 19:55:40 +0100
|
|
||||||
@@ -1,23 +0,0 @@
|
|||||||
nextcloud-client (2.3.3-1.0~eoan1) eoan; urgency=medium
|
|
||||||
|
|
||||||
* Debian build support for the forked client.
|
|
||||||
|
|
||||||
-- István Váradi <ivaradi@varadiistvan.hu> Mon, 6 Nov 2017 20:20:04 +0100
|
|
||||||
|
|
||||||
nextcloud-client (2.3.1-1.0~eoan1) eoan; urgency=medium
|
|
||||||
|
|
||||||
* New upstream version
|
|
||||||
|
|
||||||
-- István Váradi <ivaradi@varadiistvan.hu> Thu, 23 Mar 2017 19:07:36 +0100
|
|
||||||
|
|
||||||
nextcloud-client (2.3.0-1.0~eoan1) eoan; urgency=medium
|
|
||||||
|
|
||||||
* New upstream version
|
|
||||||
|
|
||||||
-- István Váradi <ivaradi@varadiistvan.hu> Tue, 21 Mar 2017 19:34:13 +0100
|
|
||||||
|
|
||||||
nextcloud-client (2.2.4-1.4~eoan1) eoan; urgency=medium
|
|
||||||
|
|
||||||
* The locale-specific icon names are correct too
|
|
||||||
|
|
||||||
-- István Váradi <ivaradi@varadiistvan.hu> Tue, 7 Feb 2017 19:55:40 +0100
|
|
||||||
@@ -1,90 +0,0 @@
|
|||||||
Source: nextcloud-client
|
|
||||||
Section: contrib/devel
|
|
||||||
Priority: optional
|
|
||||||
Maintainer: István Váradi <ivaradi@varadiistvan.hu>
|
|
||||||
Build-Depends: cmake,
|
|
||||||
debhelper,
|
|
||||||
cdbs,
|
|
||||||
dh-python,
|
|
||||||
extra-cmake-modules (>= 5.16),
|
|
||||||
libkf5kio-dev,
|
|
||||||
libcmocka-dev,
|
|
||||||
libcloudproviders-dev,
|
|
||||||
libdbus-1-dev,
|
|
||||||
libhttp-dav-perl,
|
|
||||||
libinotify-dev [kfreebsd-any],
|
|
||||||
libqt5svg5-dev,
|
|
||||||
libqt5webkit5-dev,
|
|
||||||
libsqlite3-dev,
|
|
||||||
libssl-dev (>= 1.1.0),
|
|
||||||
zlib1g-dev,
|
|
||||||
optipng,
|
|
||||||
pkg-kde-tools,
|
|
||||||
python-sphinx | python3-sphinx,
|
|
||||||
python3-all,
|
|
||||||
qt5keychain-dev,
|
|
||||||
qtwebengine5-dev,
|
|
||||||
qtdeclarative5-dev,
|
|
||||||
qttools5-dev,
|
|
||||||
qttools5-dev-tools,
|
|
||||||
xvfb
|
|
||||||
Standards-Version: 3.9.8
|
|
||||||
Homepage: https://github.com/nextcloud/client_theming
|
|
||||||
#Vcs-Git: git://anonscm.debian.org/collab-maint/nextcloud-client.git
|
|
||||||
#Vcs-Browser: https://anonscm.debian.org/cgit/collab-maint/nextcloud-client.git
|
|
||||||
|
|
||||||
Package: nextcloud-client
|
|
||||||
Architecture: any
|
|
||||||
Depends: libnextcloudsync0 (=${binary:Version}), ${shlibs:Depends}, ${misc:Depends}, nextcloud-client-l10n
|
|
||||||
Description: Nextcloud desktop sync client
|
|
||||||
Use the desktop client to keep your files synchronized
|
|
||||||
between your Nextcloud server and your desktop. Select
|
|
||||||
one or more directories on your local machine and always
|
|
||||||
have access to your latest files wherever you are.
|
|
||||||
|
|
||||||
Package: libnextcloudsync0
|
|
||||||
Architecture: any
|
|
||||||
Depends: ${shlibs:Depends}, ${misc:Depends}
|
|
||||||
Description: Nextcloud sync library
|
|
||||||
Used by the Nextcloud desktop client as the synchronization engine.
|
|
||||||
|
|
||||||
Package: libnextcloudsync-dev
|
|
||||||
Architecture: any
|
|
||||||
Section: contrib/libdevel
|
|
||||||
Depends: libnextcloudsync0 (=${binary:Version}), ${misc:Depends}
|
|
||||||
Description: Nextcloud sync library development files
|
|
||||||
The headers and development library for the Nextcloud sync library.
|
|
||||||
|
|
||||||
Package: nextcloud-client-l10n
|
|
||||||
Architecture: all
|
|
||||||
Depends: ${misc:Depends}
|
|
||||||
Description: Nextcloud client internatialization files
|
|
||||||
The translation files.
|
|
||||||
|
|
||||||
Package: nextcloud-client-nautilus
|
|
||||||
Architecture: all
|
|
||||||
Depends: nextcloud-client (>=${binary:Version}), libnextcloudsync0, python-nautilus, nautilus, ${misc:Depends}
|
|
||||||
Description: Nautilus plugin for Nextcloud
|
|
||||||
This package contains a Nautilus plugin to display
|
|
||||||
synchronization status icons for Nextcloud files.
|
|
||||||
|
|
||||||
Package: nextcloud-client-nemo
|
|
||||||
Architecture: all
|
|
||||||
Depends: nextcloud-client (>=${binary:Version}), libnextcloudsync0, python-nemo | nemo-python, nemo, ${misc:Depends}
|
|
||||||
Description: Nemo plugin for Nextcloud
|
|
||||||
This package contains a Nemo plugin to display
|
|
||||||
synchronization status icons for Nextcloud files.
|
|
||||||
|
|
||||||
Package: nextcloud-client-caja
|
|
||||||
Architecture: all
|
|
||||||
Depends: nextcloud-client (>=${binary:Version}), libnextcloudsync0, python-caja, caja, ${misc:Depends}
|
|
||||||
Description: Caja plugin for Nextcloud
|
|
||||||
This package contains a Caja plugin to display
|
|
||||||
synchronization status icons for Nextcloud files.
|
|
||||||
|
|
||||||
Package: nextcloud-client-dolphin
|
|
||||||
Architecture: any
|
|
||||||
Depends: dolphin (>= 4:15.12.1), libnextcloudsync0 (= ${binary:Version}), nextcloud-client, ${misc:Depends}, ${shlibs:Depends}
|
|
||||||
Description: Dolphin plugin for Nextcloud
|
|
||||||
This package contains a Dolphin plugin to display
|
|
||||||
synchronization status icons for Nextcloud files.
|
|
||||||
@@ -1,48 +0,0 @@
|
|||||||
nextcloud-client (2.3.3-1.0~oldstable1) oldstable; urgency=medium
|
|
||||||
|
|
||||||
* Debian build support for the forked client.
|
|
||||||
|
|
||||||
-- István Váradi <ivaradi@varadiistvan.hu> Mon, 6 Nov 2017 20:20:04 +0100
|
|
||||||
|
|
||||||
nextcloud-client (2.3.1-1.0) oldstable; urgency=medium
|
|
||||||
|
|
||||||
* New upstream version
|
|
||||||
|
|
||||||
-- István Váradi <ivaradi@varadiistvan.hu> Thu, 23 Mar 2017 19:07:36 +0100
|
|
||||||
|
|
||||||
nextcloud-client (2.3.0-1.0) oldstable; urgency=medium
|
|
||||||
|
|
||||||
* New upstream version
|
|
||||||
|
|
||||||
-- István Váradi <ivaradi@varadiistvan.hu> Tue, 21 Mar 2017 19:34:13 +0100
|
|
||||||
|
|
||||||
nextcloud-client (2.2.4-1.4) oldstable; urgency=medium
|
|
||||||
|
|
||||||
* The locale-specific icon names are correct too
|
|
||||||
|
|
||||||
-- István Váradi <ivaradi@varadiistvan.hu> Tue, 7 Feb 2017 19:55:40 +0100
|
|
||||||
|
|
||||||
nextcloud-client (2.2.4-1.3) oldstable; urgency=medium
|
|
||||||
|
|
||||||
* Caja syncstate plugin is built.
|
|
||||||
* The syncstate plugin has application-specific name
|
|
||||||
|
|
||||||
-- István Váradi <ivaradi@varadiistvan.hu> Fri, 27 Jan 2017 19:34:18 +0100
|
|
||||||
|
|
||||||
nextcloud-client (2.2.4-1.2) oldstable; urgency=medium
|
|
||||||
|
|
||||||
* Fixed appname in the Nemo syncstate extension.
|
|
||||||
|
|
||||||
-- István Váradi <ivaradi@varadiistvan.hu> Thu, 19 Jan 2017 16:46:50 +0100
|
|
||||||
|
|
||||||
nextcloud-client (2.2.4-1.1) oldstable; urgency=medium
|
|
||||||
|
|
||||||
* Added Nautilus and Nemo syncstate extensions.
|
|
||||||
|
|
||||||
-- István Váradi <ivaradi@varadiistvan.hu> Tue, 17 Jan 2017 19:55:32 +0100
|
|
||||||
|
|
||||||
nextcloud-client (2.2.4-1.0) oldstable; urgency=medium
|
|
||||||
|
|
||||||
* Initial release.
|
|
||||||
|
|
||||||
-- István Váradi <ivaradi@varadiistvan.hu> Wed, 14 Dec 2016 20:07:46 +0100
|
|
||||||
@@ -1,84 +0,0 @@
|
|||||||
Source: nextcloud-client
|
|
||||||
Section: contrib/devel
|
|
||||||
Priority: optional
|
|
||||||
Maintainer: István Váradi <ivaradi@varadiistvan.hu>
|
|
||||||
Build-Depends: cmake,
|
|
||||||
debhelper,
|
|
||||||
cdbs,
|
|
||||||
dh-python,
|
|
||||||
extra-cmake-modules (>= 5.16),
|
|
||||||
kdelibs5-dev,
|
|
||||||
kio-dev,
|
|
||||||
libcmocka-dev,
|
|
||||||
libdbus-1-dev,
|
|
||||||
libhttp-dav-perl,
|
|
||||||
libinotify-dev [kfreebsd-any],
|
|
||||||
libqt5webkit5-dev,
|
|
||||||
libqt5svg5-dev,
|
|
||||||
libsqlite3-dev,
|
|
||||||
libssl-dev (>= 1.1.0),
|
|
||||||
zlib1g-dev,
|
|
||||||
optipng,
|
|
||||||
pkg-kde-tools,
|
|
||||||
python-sphinx | python3-sphinx,
|
|
||||||
python3-all,
|
|
||||||
qt5keychain-dev,
|
|
||||||
qtwebengine5-dev,
|
|
||||||
qtdeclarative5-dev,
|
|
||||||
qttools5-dev,
|
|
||||||
qttools5-dev-tools,
|
|
||||||
xvfb
|
|
||||||
Standards-Version: 3.9.8
|
|
||||||
Homepage: https://github.com/nextcloud/client_theming
|
|
||||||
#Vcs-Git: git://anonscm.debian.org/collab-maint/nextcloud-client.git
|
|
||||||
#Vcs-Browser: https://anonscm.debian.org/cgit/collab-maint/nextcloud-client.git
|
|
||||||
|
|
||||||
Package: nextcloud-client
|
|
||||||
Architecture: any
|
|
||||||
Depends: libnextcloudsync0 (=${binary:Version}), ${shlibs:Depends}, ${misc:Depends}, nextcloud-client-l10n
|
|
||||||
Recommends: libgnome-keyring0
|
|
||||||
Description: Nextcloud desktop sync client
|
|
||||||
Use the desktop client to keep your files synchronized
|
|
||||||
between your Nextcloud server and your desktop. Select
|
|
||||||
one or more directories on your local machine and always
|
|
||||||
have access to your latest files wherever you are.
|
|
||||||
|
|
||||||
Package: libnextcloudsync0
|
|
||||||
Architecture: any
|
|
||||||
Depends: ${shlibs:Depends}, ${misc:Depends}
|
|
||||||
Description: Nextcloud sync library
|
|
||||||
Used by the Nextcloud desktop client as the synchronization engine.
|
|
||||||
|
|
||||||
Package: libnextcloudsync-dev
|
|
||||||
Architecture: any
|
|
||||||
Section: contrib/libdevel
|
|
||||||
Depends: libnextcloudsync0 (=${binary:Version}), ${misc:Depends}
|
|
||||||
Description: Nextcloud sync library development files
|
|
||||||
The headers and development library for the Nextcloud sync library.
|
|
||||||
|
|
||||||
Package: nextcloud-client-l10n
|
|
||||||
Architecture: all
|
|
||||||
Depends: ${misc:Depends}
|
|
||||||
Description: Nextcloud client internatialization files
|
|
||||||
The translation files.
|
|
||||||
|
|
||||||
Package: nextcloud-client-nautilus
|
|
||||||
Architecture: all
|
|
||||||
Depends: nextcloud-client (>=${binary:Version}), libnextcloudsync0, python-nautilus, nautilus, ${misc:Depends}
|
|
||||||
Description: Nautilus plugin for Nextcloud
|
|
||||||
This package contains a Nautilus plugin to display
|
|
||||||
synchronization status icons for Nextcloud files.
|
|
||||||
|
|
||||||
Package: nextcloud-client-nemo
|
|
||||||
Architecture: all
|
|
||||||
Depends: nextcloud-client (>=${binary:Version}), libnextcloudsync0, python-nemo, nemo, ${misc:Depends}
|
|
||||||
Description: Nemo plugin for Nextcloud
|
|
||||||
This package contains a Nemo plugin to display
|
|
||||||
synchronization status icons for Nextcloud files.
|
|
||||||
|
|
||||||
Package: nextcloud-client-caja
|
|
||||||
Architecture: all
|
|
||||||
Depends: nextcloud-client (>=${binary:Version}), libnextcloudsync0, python-caja, caja, ${misc:Depends}
|
|
||||||
Description: Caja plugin for Nextcloud
|
|
||||||
This package contains a Caja plugin to display
|
|
||||||
synchronization status icons for Nextcloud files.
|
|
||||||
@@ -1,48 +0,0 @@
|
|||||||
nextcloud-client (2.3.3-1.0~stable1) stable; urgency=medium
|
|
||||||
|
|
||||||
* Debian build support for the forked client.
|
|
||||||
|
|
||||||
-- István Váradi <ivaradi@varadiistvan.hu> Mon, 6 Nov 2017 20:20:04 +0100
|
|
||||||
|
|
||||||
nextcloud-client (2.3.1-1.0) stable; urgency=medium
|
|
||||||
|
|
||||||
* New upstream version
|
|
||||||
|
|
||||||
-- István Váradi <ivaradi@varadiistvan.hu> Thu, 23 Mar 2017 19:07:36 +0100
|
|
||||||
|
|
||||||
nextcloud-client (2.3.0-1.0) stable; urgency=medium
|
|
||||||
|
|
||||||
* New upstream version
|
|
||||||
|
|
||||||
-- István Váradi <ivaradi@varadiistvan.hu> Tue, 21 Mar 2017 19:34:13 +0100
|
|
||||||
|
|
||||||
nextcloud-client (2.2.4-1.4) stable; urgency=medium
|
|
||||||
|
|
||||||
* The locale-specific icon names are correct too
|
|
||||||
|
|
||||||
-- István Váradi <ivaradi@varadiistvan.hu> Tue, 7 Feb 2017 19:55:40 +0100
|
|
||||||
|
|
||||||
nextcloud-client (2.2.4-1.3) stable; urgency=medium
|
|
||||||
|
|
||||||
* Caja syncstate plugin is built.
|
|
||||||
* The syncstate plugin has application-specific name
|
|
||||||
|
|
||||||
-- István Váradi <ivaradi@varadiistvan.hu> Fri, 27 Jan 2017 19:34:18 +0100
|
|
||||||
|
|
||||||
nextcloud-client (2.2.4-1.2) stable; urgency=medium
|
|
||||||
|
|
||||||
* Fixed appname in the Nemo syncstate extension.
|
|
||||||
|
|
||||||
-- István Váradi <ivaradi@varadiistvan.hu> Thu, 19 Jan 2017 16:46:50 +0100
|
|
||||||
|
|
||||||
nextcloud-client (2.2.4-1.1) stable; urgency=medium
|
|
||||||
|
|
||||||
* Added Nautilus and Nemo syncstate extensions.
|
|
||||||
|
|
||||||
-- István Váradi <ivaradi@varadiistvan.hu> Tue, 17 Jan 2017 19:55:32 +0100
|
|
||||||
|
|
||||||
nextcloud-client (2.2.4-1.0) stable; urgency=medium
|
|
||||||
|
|
||||||
* Initial release.
|
|
||||||
|
|
||||||
-- István Váradi <ivaradi@varadiistvan.hu> Wed, 14 Dec 2016 20:07:46 +0100
|
|
||||||
@@ -1,86 +0,0 @@
|
|||||||
Source: nextcloud-client
|
|
||||||
Section: contrib/devel
|
|
||||||
Priority: optional
|
|
||||||
Maintainer: István Váradi <ivaradi@varadiistvan.hu>
|
|
||||||
Build-Depends: cmake,
|
|
||||||
debhelper,
|
|
||||||
cdbs,
|
|
||||||
dh-python,
|
|
||||||
extra-cmake-modules (>= 5.16),
|
|
||||||
kdelibs5-dev,
|
|
||||||
kio-dev,
|
|
||||||
libavcodec58,
|
|
||||||
libcmocka-dev,
|
|
||||||
libcloudproviders-dev,
|
|
||||||
libdbus-1-dev,
|
|
||||||
libhttp-dav-perl,
|
|
||||||
libinotify-dev [kfreebsd-any],
|
|
||||||
libqt5webkit5-dev,
|
|
||||||
libqt5svg5-dev,
|
|
||||||
libsqlite3-dev,
|
|
||||||
libssl-dev (>= 1.1.0),
|
|
||||||
zlib1g-dev,
|
|
||||||
optipng,
|
|
||||||
pkg-kde-tools,
|
|
||||||
python-sphinx | python3-sphinx,
|
|
||||||
python3-all,
|
|
||||||
qt5keychain-dev,
|
|
||||||
qtwebengine5-dev,
|
|
||||||
qtdeclarative5-dev,
|
|
||||||
qttools5-dev,
|
|
||||||
qttools5-dev-tools,
|
|
||||||
xvfb
|
|
||||||
Standards-Version: 3.9.8
|
|
||||||
Homepage: https://github.com/nextcloud/client_theming
|
|
||||||
#Vcs-Git: git://anonscm.debian.org/collab-maint/nextcloud-client.git
|
|
||||||
#Vcs-Browser: https://anonscm.debian.org/cgit/collab-maint/nextcloud-client.git
|
|
||||||
|
|
||||||
Package: nextcloud-client
|
|
||||||
Architecture: any
|
|
||||||
Depends: libnextcloudsync0 (=${binary:Version}), ${shlibs:Depends}, ${misc:Depends}, nextcloud-client-l10n
|
|
||||||
Recommends: libgnome-keyring0
|
|
||||||
Description: Nextcloud desktop sync client
|
|
||||||
Use the desktop client to keep your files synchronized
|
|
||||||
between your Nextcloud server and your desktop. Select
|
|
||||||
one or more directories on your local machine and always
|
|
||||||
have access to your latest files wherever you are.
|
|
||||||
|
|
||||||
Package: libnextcloudsync0
|
|
||||||
Architecture: any
|
|
||||||
Depends: ${shlibs:Depends}, ${misc:Depends}
|
|
||||||
Description: Nextcloud sync library
|
|
||||||
Used by the Nextcloud desktop client as the synchronization engine.
|
|
||||||
|
|
||||||
Package: libnextcloudsync-dev
|
|
||||||
Architecture: any
|
|
||||||
Section: contrib/libdevel
|
|
||||||
Depends: libnextcloudsync0 (=${binary:Version}), ${misc:Depends}
|
|
||||||
Description: Nextcloud sync library development files
|
|
||||||
The headers and development library for the Nextcloud sync library.
|
|
||||||
|
|
||||||
Package: nextcloud-client-l10n
|
|
||||||
Architecture: all
|
|
||||||
Depends: ${misc:Depends}
|
|
||||||
Description: Nextcloud client internatialization files
|
|
||||||
The translation files.
|
|
||||||
|
|
||||||
Package: nextcloud-client-nautilus
|
|
||||||
Architecture: all
|
|
||||||
Depends: nextcloud-client (>=${binary:Version}), libnextcloudsync0, python-nautilus, nautilus, ${misc:Depends}
|
|
||||||
Description: Nautilus plugin for Nextcloud
|
|
||||||
This package contains a Nautilus plugin to display
|
|
||||||
synchronization status icons for Nextcloud files.
|
|
||||||
|
|
||||||
Package: nextcloud-client-nemo
|
|
||||||
Architecture: all
|
|
||||||
Depends: nextcloud-client (>=${binary:Version}), libnextcloudsync0, python-nemo, nemo, ${misc:Depends}
|
|
||||||
Description: Nemo plugin for Nextcloud
|
|
||||||
This package contains a Nemo plugin to display
|
|
||||||
synchronization status icons for Nextcloud files.
|
|
||||||
|
|
||||||
Package: nextcloud-client-caja
|
|
||||||
Architecture: all
|
|
||||||
Depends: nextcloud-client (>=${binary:Version}), libnextcloudsync0, python-caja, caja, ${misc:Depends}
|
|
||||||
Description: Caja plugin for Nextcloud
|
|
||||||
This package contains a Caja plugin to display
|
|
||||||
synchronization status icons for Nextcloud files.
|
|
||||||
@@ -1,90 +0,0 @@
|
|||||||
Source: nextcloud-client
|
|
||||||
Section: contrib/devel
|
|
||||||
Priority: optional
|
|
||||||
Maintainer: István Váradi <ivaradi@varadiistvan.hu>
|
|
||||||
Build-Depends: cmake,
|
|
||||||
debhelper,
|
|
||||||
cdbs,
|
|
||||||
dh-python,
|
|
||||||
extra-cmake-modules (>= 5.16),
|
|
||||||
kdelibs5-dev,
|
|
||||||
kio-dev,
|
|
||||||
libcmocka-dev,
|
|
||||||
libhttp-dav-perl,
|
|
||||||
libinotify-dev [kfreebsd-any],
|
|
||||||
libqt5webkit5-dev,
|
|
||||||
libqt5svg5-dev,
|
|
||||||
libsqlite3-dev,
|
|
||||||
libssl-dev (>> 1.0.0),
|
|
||||||
zlib1g-dev,
|
|
||||||
optipng,
|
|
||||||
pkg-kde-tools,
|
|
||||||
python-sphinx | python3-sphinx,
|
|
||||||
python3-all,
|
|
||||||
qt5keychain-dev,
|
|
||||||
qtwebengine5-dev,
|
|
||||||
qtdeclarative5-dev,
|
|
||||||
qttools5-dev,
|
|
||||||
qttools5-dev-tools,
|
|
||||||
xvfb
|
|
||||||
Standards-Version: 3.9.8
|
|
||||||
Homepage: https://github.com/nextcloud/client_theming
|
|
||||||
#Vcs-Git: git://anonscm.debian.org/collab-maint/nextcloud-client.git
|
|
||||||
#Vcs-Browser: https://anonscm.debian.org/cgit/collab-maint/nextcloud-client.git
|
|
||||||
|
|
||||||
Package: nextcloud-client
|
|
||||||
Architecture: any
|
|
||||||
Depends: libnextcloudsync0 (=${binary:Version}), ${shlibs:Depends}, ${misc:Depends}, nextcloud-client-l10n
|
|
||||||
Recommends: libgnome-keyring0
|
|
||||||
Description: Nextcloud desktop sync client
|
|
||||||
Use the desktop client to keep your files synchronized
|
|
||||||
between your Nextcloud server and your desktop. Select
|
|
||||||
one or more directories on your local machine and always
|
|
||||||
have access to your latest files wherever you are.
|
|
||||||
|
|
||||||
Package: libnextcloudsync0
|
|
||||||
Architecture: any
|
|
||||||
Depends: ${shlibs:Depends}, ${misc:Depends}
|
|
||||||
Description: Nextcloud sync library
|
|
||||||
Used by the Nextcloud desktop client as the synchronization engine.
|
|
||||||
|
|
||||||
Package: libnextcloudsync-dev
|
|
||||||
Architecture: any
|
|
||||||
Section: contrib/libdevel
|
|
||||||
Depends: libnextcloudsync0 (=${binary:Version}), ${misc:Depends}
|
|
||||||
Description: Nextcloud sync library development files
|
|
||||||
The headers and development library for the Nextcloud sync library.
|
|
||||||
|
|
||||||
Package: nextcloud-client-l10n
|
|
||||||
Architecture: all
|
|
||||||
Depends: ${misc:Depends}
|
|
||||||
Description: Nextcloud client internatialization files
|
|
||||||
The translation files.
|
|
||||||
|
|
||||||
Package: nextcloud-client-nautilus
|
|
||||||
Architecture: all
|
|
||||||
Depends: nextcloud-client (>=${binary:Version}), libnextcloudsync0, python-nautilus, nautilus, ${misc:Depends}
|
|
||||||
Description: Nautilus plugin for Nextcloud
|
|
||||||
This package contains a Nautilus plugin to display
|
|
||||||
synchronization status icons for Nextcloud files.
|
|
||||||
|
|
||||||
Package: nextcloud-client-nemo
|
|
||||||
Architecture: all
|
|
||||||
Depends: nextcloud-client (>=${binary:Version}), libnextcloudsync0, python-nemo | nemo-python, nemo, ${misc:Depends}
|
|
||||||
Description: Nemo plugin for Nextcloud
|
|
||||||
This package contains a Nemo plugin to display
|
|
||||||
synchronization status icons for Nextcloud files.
|
|
||||||
|
|
||||||
Package: nextcloud-client-caja
|
|
||||||
Architecture: all
|
|
||||||
Depends: nextcloud-client (>=${binary:Version}), libnextcloudsync0, python-caja, caja, ${misc:Depends}
|
|
||||||
Description: Caja plugin for Nextcloud
|
|
||||||
This package contains a Caja plugin to display
|
|
||||||
synchronization status icons for Nextcloud files.
|
|
||||||
|
|
||||||
Package: nextcloud-client-dolphin
|
|
||||||
Architecture: any
|
|
||||||
Depends: dolphin (>= 4:15.12.1), libnextcloudsync0 (= ${binary:Version}), nextcloud-client, ${misc:Depends}, ${shlibs:Depends}
|
|
||||||
Description: Dolphin plugin for Nextcloud
|
|
||||||
This package contains a Dolphin plugin to display
|
|
||||||
synchronization status icons for Nextcloud files.
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
--- nextcloud-client-2.5.0.orig/CMakeLists.txt 2018-08-13 16:19:57.191634632 +0200
|
|
||||||
+++ nextcloud-client-2.5.0/CMakeLists.txt 2018-08-13 16:20:05.167612238 +0200
|
|
||||||
@@ -183,7 +183,7 @@
|
|
||||||
endif()
|
|
||||||
find_package(Sphinx)
|
|
||||||
find_package(PdfLatex)
|
|
||||||
- find_package(OpenSSL 1.1 REQUIRED )
|
|
||||||
+ find_package(OpenSSL 1.0 REQUIRED )
|
|
||||||
|
|
||||||
find_package(ZLIB REQUIRED)
|
|
||||||
find_package(GLib2)
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
--- nextcloud-client-2.5.3.orig/src/3rdparty/kmessagewidget/kmessagewidget.cpp 2019-07-26 18:40:34.949349387 +0000
|
|
||||||
+++ nextcloud-client-2.5.3/src/3rdparty/kmessagewidget/kmessagewidget.cpp 2019-07-26 18:41:39.866478051 +0000
|
|
||||||
@@ -105,6 +105,9 @@
|
|
||||||
q->setMessageType(KMessageWidget::Information);
|
|
||||||
}
|
|
||||||
|
|
||||||
+template <typename T>
|
|
||||||
+constexpr typename std::add_const<T>::type &qAsConst(T &t) noexcept { return t; }
|
|
||||||
+
|
|
||||||
void KMessageWidgetPrivate::createLayout()
|
|
||||||
{
|
|
||||||
delete content->layout();
|
|
||||||
@@ -1,24 +0,0 @@
|
|||||||
Binary files nextcloud-client-2.4.0.orig/.git/index and nextcloud-client-2.4.0/.git/index differ
|
|
||||||
diff -ruN nextcloud-client-2.4.0.orig/src/CMakeLists.txt nextcloud-client-2.4.0/src/CMakeLists.txt
|
|
||||||
--- nextcloud-client-2.4.0.orig/src/CMakeLists.txt 2018-02-01 19:16:38.461162563 +0100
|
|
||||||
+++ nextcloud-client-2.4.0/src/CMakeLists.txt 2018-02-01 19:20:20.253824030 +0100
|
|
||||||
@@ -4,7 +4,7 @@
|
|
||||||
|
|
||||||
set(synclib_NAME ${APPLICATION_EXECUTABLE}sync)
|
|
||||||
|
|
||||||
-find_package(Qt5 5.6 COMPONENTS Core Network Xml Concurrent WebEngineWidgets WebEngine REQUIRED)
|
|
||||||
+find_package(Qt5 5.5 COMPONENTS Core Network Xml Concurrent WebEngineWidgets WebEngine REQUIRED)
|
|
||||||
if (Qt5Core_VERSION VERSION_LESS 5.9.0)
|
|
||||||
message(STATUS "For HTTP/2 support, compile with Qt 5.9 or higher.")
|
|
||||||
endif()
|
|
||||||
--- nextcloud-client-2.4.0.orig/admin/osx/CMakeLists.txt 2018-05-22 07:01:48.248646951 +0200
|
|
||||||
+++ nextcloud-client-2.4.0/admin/osx/CMakeLists.txt 2018-05-22 07:01:51.012689711 +0200
|
|
||||||
@@ -11,7 +11,7 @@
|
|
||||||
set(MAC_INSTALLER_DO_CUSTOM_BACKGROUND "0")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
-find_package(Qt5 5.6 COMPONENTS Core REQUIRED)
|
|
||||||
+find_package(Qt5 5.5 COMPONENTS Core REQUIRED)
|
|
||||||
configure_file(create_mac.sh.cmake ${CMAKE_CURRENT_BINARY_DIR}/create_mac.sh)
|
|
||||||
configure_file(macosx.pkgproj.cmake ${CMAKE_CURRENT_BINARY_DIR}/macosx.pkgproj)
|
|
||||||
configure_file(pre_install.sh.cmake ${CMAKE_CURRENT_BINARY_DIR}/pre_install.sh)
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
fs.inotify.max_user_watches = 524288
|
|
||||||
@@ -1,48 +0,0 @@
|
|||||||
nextcloud-client (2.3.3-1.0~xenial1) xenial; urgency=medium
|
|
||||||
|
|
||||||
* Debian build support for the forked client.
|
|
||||||
|
|
||||||
-- István Váradi <ivaradi@varadiistvan.hu> Mon, 6 Nov 2017 20:20:04 +0100
|
|
||||||
|
|
||||||
nextcloud-client (2.3.1-1.0~xenial1) xenial; urgency=medium
|
|
||||||
|
|
||||||
* New upstream version
|
|
||||||
|
|
||||||
-- István Váradi <ivaradi@varadiistvan.hu> Thu, 23 Mar 2017 19:07:36 +0100
|
|
||||||
|
|
||||||
nextcloud-client (2.3.0-1.0~xenial1) xenial; urgency=medium
|
|
||||||
|
|
||||||
* New upstream version
|
|
||||||
|
|
||||||
-- István Váradi <ivaradi@varadiistvan.hu> Tue, 21 Mar 2017 19:34:13 +0100
|
|
||||||
|
|
||||||
nextcloud-client (2.2.4-1.4~xenial1) xenial; urgency=medium
|
|
||||||
|
|
||||||
* The locale-specific icon names are correct too
|
|
||||||
|
|
||||||
-- István Váradi <ivaradi@varadiistvan.hu> Tue, 7 Feb 2017 19:55:40 +0100
|
|
||||||
|
|
||||||
nextcloud-client (2.2.4-1.3~xenial1) xenial; urgency=medium
|
|
||||||
|
|
||||||
* Caja syncstate plugin is built.
|
|
||||||
* The syncstate plugin has application-specific name
|
|
||||||
|
|
||||||
-- István Váradi <ivaradi@varadiistvan.hu> Fri, 27 Jan 2017 19:34:18 +0100
|
|
||||||
|
|
||||||
nextcloud-client (2.2.4-1.2~xenial1) xenial; urgency=medium
|
|
||||||
|
|
||||||
* Fixed appname in the Nemo syncstate extension.
|
|
||||||
|
|
||||||
-- István Váradi <ivaradi@varadiistvan.hu> Thu, 19 Jan 2017 16:46:50 +0100
|
|
||||||
|
|
||||||
nextcloud-client (2.2.4-1.1~xenial1) xenial; urgency=medium
|
|
||||||
|
|
||||||
* Added Nautilus and Nemo syncstate extensions.
|
|
||||||
|
|
||||||
-- István Váradi <ivaradi@varadiistvan.hu> Tue, 17 Jan 2017 19:55:32 +0100
|
|
||||||
|
|
||||||
nextcloud-client (2.2.4-1.0~xenial1) xenial; urgency=medium
|
|
||||||
|
|
||||||
* Initial release.
|
|
||||||
|
|
||||||
-- István Váradi <ivaradi@varadiistvan.hu> Wed, 14 Dec 2016 20:07:46 +0100
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
9
|
|
||||||
@@ -1,91 +0,0 @@
|
|||||||
Source: nextcloud-client
|
|
||||||
Section: contrib/devel
|
|
||||||
Priority: optional
|
|
||||||
Maintainer: István Váradi <ivaradi@varadiistvan.hu>
|
|
||||||
Build-Depends: cmake,
|
|
||||||
debhelper,
|
|
||||||
cdbs,
|
|
||||||
dh-python,
|
|
||||||
extra-cmake-modules (>= 5.16),
|
|
||||||
kdelibs5-dev,
|
|
||||||
libkf5kio-dev,
|
|
||||||
libcmocka-dev,
|
|
||||||
libcloudproviders-dev,
|
|
||||||
libdbus-1-dev,
|
|
||||||
libhttp-dav-perl,
|
|
||||||
libinotify-dev [kfreebsd-any],
|
|
||||||
libqt5svg5-dev,
|
|
||||||
libqt5webkit5-dev,
|
|
||||||
libsqlite3-dev,
|
|
||||||
libssl-dev (>= 1.1.0),
|
|
||||||
zlib1g-dev,
|
|
||||||
optipng,
|
|
||||||
pkg-kde-tools,
|
|
||||||
python-sphinx | python3-sphinx,
|
|
||||||
python3-all,
|
|
||||||
qt5keychain-dev,
|
|
||||||
qtwebengine5-dev,
|
|
||||||
qtdeclarative5-dev,
|
|
||||||
qttools5-dev,
|
|
||||||
qttools5-dev-tools,
|
|
||||||
xvfb
|
|
||||||
Standards-Version: 3.9.8
|
|
||||||
Homepage: https://github.com/nextcloud/client_theming
|
|
||||||
#Vcs-Git: git://anonscm.debian.org/collab-maint/nextcloud-client.git
|
|
||||||
#Vcs-Browser: https://anonscm.debian.org/cgit/collab-maint/nextcloud-client.git
|
|
||||||
|
|
||||||
Package: nextcloud-client
|
|
||||||
Architecture: any
|
|
||||||
Depends: libnextcloudsync0 (=${binary:Version}), ${shlibs:Depends}, ${misc:Depends}, libgnome-keyring0, nextcloud-client-l10n
|
|
||||||
Description: Nextcloud desktop sync client
|
|
||||||
Use the desktop client to keep your files synchronized
|
|
||||||
between your Nextcloud server and your desktop. Select
|
|
||||||
one or more directories on your local machine and always
|
|
||||||
have access to your latest files wherever you are.
|
|
||||||
|
|
||||||
Package: libnextcloudsync0
|
|
||||||
Architecture: any
|
|
||||||
Depends: ${shlibs:Depends}, ${misc:Depends}
|
|
||||||
Description: Nextcloud sync library
|
|
||||||
Used by the Nextcloud desktop client as the synchronization engine.
|
|
||||||
|
|
||||||
Package: libnextcloudsync-dev
|
|
||||||
Architecture: any
|
|
||||||
Section: contrib/libdevel
|
|
||||||
Depends: libnextcloudsync0 (=${binary:Version}), ${misc:Depends}
|
|
||||||
Description: Nextcloud sync library development files
|
|
||||||
The headers and development library for the Nextcloud sync library.
|
|
||||||
|
|
||||||
Package: nextcloud-client-l10n
|
|
||||||
Architecture: all
|
|
||||||
Depends: ${misc:Depends}
|
|
||||||
Description: Nextcloud client internatialization files
|
|
||||||
The translation files.
|
|
||||||
|
|
||||||
Package: nextcloud-client-nautilus
|
|
||||||
Architecture: all
|
|
||||||
Depends: nextcloud-client (>=${binary:Version}), libnextcloudsync0, python-nautilus, nautilus, ${misc:Depends}
|
|
||||||
Description: Nautilus plugin for Nextcloud
|
|
||||||
This package contains a Nautilus plugin to display
|
|
||||||
synchronization status icons for Nextcloud files.
|
|
||||||
|
|
||||||
Package: nextcloud-client-nemo
|
|
||||||
Architecture: all
|
|
||||||
Depends: nextcloud-client (>=${binary:Version}), libnextcloudsync0, python-nemo | nemo-python, nemo, ${misc:Depends}
|
|
||||||
Description: Nemo plugin for Nextcloud
|
|
||||||
This package contains a Nemo plugin to display
|
|
||||||
synchronization status icons for Nextcloud files.
|
|
||||||
|
|
||||||
Package: nextcloud-client-caja
|
|
||||||
Architecture: all
|
|
||||||
Depends: nextcloud-client (>=${binary:Version}), libnextcloudsync0, python-caja, caja, ${misc:Depends}
|
|
||||||
Description: Caja plugin for Nextcloud
|
|
||||||
This package contains a Caja plugin to display
|
|
||||||
synchronization status icons for Nextcloud files.
|
|
||||||
|
|
||||||
Package: nextcloud-client-dolphin
|
|
||||||
Architecture: any
|
|
||||||
Depends: dolphin (>= 4:15.12.1), libnextcloudsync0 (= ${binary:Version}), nextcloud-client, ${misc:Depends}, ${shlibs:Depends}
|
|
||||||
Description: Dolphin plugin for Nextcloud
|
|
||||||
This package contains a Dolphin plugin to display
|
|
||||||
synchronization status icons for Nextcloud files.
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
Files: *
|
|
||||||
Copyright: 2012-2015 ownCloud, inc.; Nuernberg, Germany., 2016 Nextcloud GmbH
|
|
||||||
License: GPL-2+
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
usr/include
|
|
||||||
usr/lib/*/libnextcloudsync.so
|
|
||||||
usr/lib/*/nextcloud/libocsync.so
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
etc
|
|
||||||
usr/lib/*/libnextcloudsync.so.?*
|
|
||||||
usr/lib/*/nextcloud/libocsync.so.?*
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
usr/share/caja-python
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
usr/lib/*/libnextclouddolphinpluginhelper.so
|
|
||||||
usr/lib/*/qt5/plugins/kf5/overlayicon/nextclouddolphinoverlayplugin.so
|
|
||||||
usr/lib/*/qt5/plugins/nextclouddolphinactionplugin.so
|
|
||||||
usr/share/kservices5/nextclouddolphinactionplugin.desktop
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
nextcloud-client-dolphin: package-name-doesnt-match-sonames
|
|
||||||
nextcloud-client-dolphin: shlib-without-versioned-soname
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
activate-noawait ldconfig
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
usr/share/nextcloud/i18n
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
usr/share/nautilus-python
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
usr/share/nemo-python
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
usr/bin
|
|
||||||
usr/share/applications
|
|
||||||
usr/share/icons
|
|
||||||
debian/101-sync-inotify.conf etc/sysctl.d
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
nextcloud-client: binary-or-shlib-defines-rpath
|
|
||||||
nextcloud-client: binary-without-manpage
|
|
||||||
nextcloud-client: license-problem-convert-utf-code
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
#!/usr/bin/make -f
|
|
||||||
# See debhelper(7) (uncomment to enable)
|
|
||||||
# output every command that modifies files on the build system.
|
|
||||||
#export DH_VERBOSE = 1
|
|
||||||
|
|
||||||
include /usr/share/cdbs/1/rules/debhelper.mk
|
|
||||||
include /usr/share/cdbs/1/class/cmake.mk
|
|
||||||
|
|
||||||
DEB_SHLIBDEPS_INCLUDE=$(CURDIR)/$(DEB_BUILDDIR)/csync/src
|
|
||||||
|
|
||||||
DEB_SRCDIR=.
|
|
||||||
DEB_CMAKE_EXTRA_FLAGS = -DCMAKE_SKIP_RPATH=OFF -DCMAKE_SKIP_BUILD_RPATH=ON -DCMAKE_BUILD_WITH_INSTALL_RPATH=ON
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
3.0 (quilt)
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
nextcloud-client source: source-is-missing client/doc/ocdoc/_shared_assets/themes/bootstrap/static/bootstrap.js line length is 22206 characters (>512)
|
|
||||||
nextcloud-client source: source-is-missing client/doc/ocdoc/_shared_assets/themes/bootstrap/static/jquery.js
|
|
||||||
nextcloud-client source: source-is-missing client/doc/ocdoc/_shared_assets/themes/bootstrap/static/jquery.js line length is 32412 characters (>512)
|
|
||||||
nextcloud-client source: source-is-missing client/doc/ocdoc/_shared_assets/themes/owncloud_com/static/bootstrap.js line length is 22206 characters (>512)
|
|
||||||
nextcloud-client source: source-is-missing client/doc/ocdoc/_shared_assets/themes/owncloud_com/static/jquery.js line length is 32412 characters (>512)
|
|
||||||
nextcloud-client source: source-is-missing client/doc/ocdoc/_shared_assets/themes/owncloud_release/static/bootstrap.js line length is 22206 characters (>512)
|
|
||||||
nextcloud-client source: source-is-missing client/doc/ocdoc/_shared_assets/themes/owncloud_release/static/jquery.js line length is 32412 characters (>512)
|
|
||||||
nextcloud-client source: source-is-missing client/doc/ocdoc/_shared_assets/themes/owncloud_org/static/js/jquery-1.11.0.min.js
|
|
||||||
nextcloud-client source: license-problem-convert-utf-code
|
|
||||||
@@ -3,12 +3,24 @@
|
|||||||
set -xe
|
set -xe
|
||||||
shopt -s extglob
|
shopt -s extglob
|
||||||
|
|
||||||
|
env
|
||||||
|
|
||||||
PPA=ppa:nextcloud-devs/client
|
PPA=ppa:nextcloud-devs/client
|
||||||
|
PPA_ALPHA=ppa:nextcloud-devs/client-alpha
|
||||||
PPA_BETA=ppa:nextcloud-devs/client-beta
|
PPA_BETA=ppa:nextcloud-devs/client-beta
|
||||||
|
|
||||||
OBS_PROJECT=home:ivaradi
|
OBS_PROJECT=home:ivaradi
|
||||||
|
OBS_PROJECT_ALPHA=home:ivaradi:alpha
|
||||||
OBS_PROJECT_BETA=home:ivaradi:beta
|
OBS_PROJECT_BETA=home:ivaradi:beta
|
||||||
OBS_PACKAGE=nextcloud-client
|
OBS_PACKAGE=nextcloud-desktop
|
||||||
|
|
||||||
|
if test "${DRONE_TARGET_BRANCH}" = "stable-2.6"; then
|
||||||
|
UBUNTU_DISTRIBUTIONS="bionic eoan focal groovy"
|
||||||
|
DEBIAN_DISTRIBUTIONS="buster stretch testing"
|
||||||
|
else
|
||||||
|
UBUNTU_DISTRIBUTIONS="eoan focal groovy"
|
||||||
|
DEBIAN_DISTRIBUTIONS="testing"
|
||||||
|
fi
|
||||||
|
|
||||||
pull_request=${DRONE_PULL_REQUEST:=master}
|
pull_request=${DRONE_PULL_REQUEST:=master}
|
||||||
|
|
||||||
@@ -31,13 +43,15 @@ fi
|
|||||||
set -x
|
set -x
|
||||||
|
|
||||||
cd "${DRONE_WORKSPACE}"
|
cd "${DRONE_WORKSPACE}"
|
||||||
read basever kind <<<$(admin/linux/debian/scripts/git2changelog.py /tmp/tmpchangelog stable)
|
read basever revdate kind <<<$(admin/linux/debian/scripts/git2changelog.py /tmp/tmpchangelog stable)
|
||||||
|
|
||||||
cd "${DRONE_DIR}"
|
cd "${DRONE_DIR}"
|
||||||
|
|
||||||
echo "$kind" > kind
|
echo "$kind" > kind
|
||||||
|
|
||||||
if test "$kind" = "beta"; then
|
if test "$kind" = "alpha"; then
|
||||||
|
repo=nextcloud-devs/client-alpha
|
||||||
|
elif test "$kind" = "beta"; then
|
||||||
repo=nextcloud-devs/client-beta
|
repo=nextcloud-devs/client-beta
|
||||||
else
|
else
|
||||||
repo=nextcloud-devs/client
|
repo=nextcloud-devs/client
|
||||||
@@ -45,79 +59,60 @@ fi
|
|||||||
|
|
||||||
origsourceopt=""
|
origsourceopt=""
|
||||||
|
|
||||||
if ! wget http://ppa.launchpad.net/${repo}/ubuntu/pool/main/n/nextcloud-client/nextcloud-client_${basever}.orig.tar.bz2; then
|
cp -a ${DRONE_WORKSPACE} nextcloud-desktop_${basever}-${revdate}
|
||||||
cp -a ${DRONE_WORKSPACE} nextcloud-client_${basever}
|
tar cjf nextcloud-desktop_${basever}-${revdate}.orig.tar.bz2 --exclude .git --exclude binary nextcloud-desktop_${basever}-${revdate}
|
||||||
tar cjf nextcloud-client_${basever}.orig.tar.bz2 --exclude .git nextcloud-client_${basever}
|
|
||||||
origsourceopt="-sa"
|
|
||||||
fi
|
|
||||||
|
|
||||||
for distribution in xenial bionic disco eoan stable oldstable; do
|
cd "${DRONE_WORKSPACE}"
|
||||||
rm -rf nextcloud-client_${basever}
|
git config --global user.email "drone@noemail.invalid"
|
||||||
cp -a ${DRONE_WORKSPACE} nextcloud-client_${basever}
|
git config --global user.name "Drone User"
|
||||||
|
|
||||||
cd nextcloud-client_${basever}
|
for distribution in ${UBUNTU_DISTRIBUTIONS} ${DEBIAN_DISTRIBUTIONS}; do
|
||||||
|
git checkout -- .
|
||||||
|
git clean -xdf
|
||||||
|
|
||||||
cp -a admin/linux/debian/debian .
|
git fetch origin debian/dist/${distribution}/${DRONE_TARGET_BRANCH}
|
||||||
if test -d admin/linux/debian/debian.${distribution}; then
|
git checkout origin/debian/dist/${distribution}/${DRONE_TARGET_BRANCH}
|
||||||
tar cf - -C admin/linux/debian/debian.${distribution} . | tar xf - -C debian
|
|
||||||
fi
|
|
||||||
|
|
||||||
admin/linux/debian/scripts/git2changelog.py /tmp/tmpchangelog ${distribution}
|
git merge ${DRONE_COMMIT}
|
||||||
cp /tmp/tmpchangelog debian/changelog
|
|
||||||
if test -f admin/linux/debian/debian.${distribution}/changelog; then
|
|
||||||
cat admin/linux/debian/debian.${distribution}/changelog >> debian/changelog
|
|
||||||
else
|
|
||||||
cat admin/linux/debian/debian/changelog >> debian/changelog
|
|
||||||
fi
|
|
||||||
|
|
||||||
for p in debian/post-patches/*.patch; do
|
admin/linux/debian/scripts/git2changelog.py /tmp/tmpchangelog ${distribution} ${revdate}
|
||||||
if test -f "${p}"; then
|
cat /tmp/tmpchangelog debian/changelog > debian/changelog.new
|
||||||
echo "Applying ${p}"
|
mv debian/changelog.new debian/changelog
|
||||||
patch -p1 < "${p}"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
fullver=`head -1 debian/changelog | sed "s:nextcloud-client (\([^)]*\)).*:\1:"`
|
fullver=`head -1 debian/changelog | sed "s:nextcloud-desktop (\([^)]*\)).*:\1:"`
|
||||||
|
|
||||||
EDITOR=true dpkg-source --commit . local-changes
|
EDITOR=true dpkg-source --commit . local-changes
|
||||||
|
|
||||||
dpkg-source --build .
|
dpkg-source --build .
|
||||||
dpkg-genchanges -S ${origsourceopt} > "../nextcloud-client_${fullver}_source.changes"
|
dpkg-genchanges -S -sa > "../nextcloud-desktop_${fullver}_source.changes"
|
||||||
|
|
||||||
if test -f ~/.has_ppa_keys; then
|
if test -f ~/.has_ppa_keys; then
|
||||||
debsign -k7D14AA7B -S
|
debsign -k7D14AA7B -S
|
||||||
fi
|
fi
|
||||||
|
|
||||||
cd ..
|
|
||||||
done
|
done
|
||||||
|
cd ..
|
||||||
|
ls -al
|
||||||
|
|
||||||
if test "${pull_request}" = "master"; then
|
if test "${pull_request}" = "master"; then
|
||||||
kind=`cat kind`
|
if test "$kind" = "alpha"; then
|
||||||
|
PPA=$PPA_ALPHA
|
||||||
if test "$kind" = "beta"; then
|
OBS_PROJECT=$OBS_PROJECT_ALPHA
|
||||||
|
elif test "$kind" = "beta"; then
|
||||||
PPA=$PPA_BETA
|
PPA=$PPA_BETA
|
||||||
OBS_PROJECT=$OBS_PROJECT_BETA
|
OBS_PROJECT=$OBS_PROJECT_BETA
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if test -f ~/.has_ppa_keys; then
|
if test -f ~/.has_ppa_keys; then
|
||||||
for changes in nextcloud-client_*~+([a-z])1_source.changes; do
|
for distribution in ${UBUNTU_DISTRIBUTIONS}; do
|
||||||
case "${changes}" in
|
changes=$(ls -1 nextcloud-desktop_*~${distribution}1_source.changes)
|
||||||
*oldstable1*)
|
if test -f "${changes}"; then
|
||||||
;;
|
dput $PPA "${changes}" > /dev/null
|
||||||
*)
|
fi
|
||||||
dput $PPA $changes > /dev/null
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
done
|
done
|
||||||
|
|
||||||
for distribution in stable oldstable; do
|
for distribution in ${DEBIAN_DISTRIBUTIONS}; do
|
||||||
if test "${distribution}" = "oldstable"; then
|
|
||||||
pkgsuffix=".${distribution}"
|
pkgsuffix=".${distribution}"
|
||||||
pkgvertag="~${distribution}1"
|
pkgvertag="~${distribution}1"
|
||||||
else
|
|
||||||
pkgsuffix=""
|
|
||||||
pkgvertag=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
package="${OBS_PACKAGE}${pkgsuffix}"
|
package="${OBS_PACKAGE}${pkgsuffix}"
|
||||||
OBS_SUBDIR="${OBS_PROJECT}/${package}"
|
OBS_SUBDIR="${OBS_PROJECT}/${package}"
|
||||||
@@ -129,10 +124,10 @@ if test "${pull_request}" = "master"; then
|
|||||||
osc delete ${OBS_SUBDIR}/*
|
osc delete ${OBS_SUBDIR}/*
|
||||||
fi
|
fi
|
||||||
|
|
||||||
cp ../nextcloud-client*.orig.tar.* ${OBS_SUBDIR}/
|
cp ../nextcloud-desktop*.orig.tar.* ${OBS_SUBDIR}/
|
||||||
cp ../nextcloud-client_*[0-9.][0-9]${pkgvertag}.dsc ${OBS_SUBDIR}/
|
cp ../nextcloud-desktop_*[0-9.][0-9]${pkgvertag}.dsc ${OBS_SUBDIR}/
|
||||||
cp ../nextcloud-client_*[0-9.][0-9]${pkgvertag}.debian.tar* ${OBS_SUBDIR}/
|
cp ../nextcloud-desktop_*[0-9.][0-9]${pkgvertag}.debian.tar* ${OBS_SUBDIR}/
|
||||||
cp ../nextcloud-client_*[0-9.][0-9]${pkgvertag}_source.changes ${OBS_SUBDIR}/
|
cp ../nextcloud-desktop_*[0-9.][0-9]${pkgvertag}_source.changes ${OBS_SUBDIR}/
|
||||||
osc add ${OBS_SUBDIR}/*
|
osc add ${OBS_SUBDIR}/*
|
||||||
|
|
||||||
cd ${OBS_SUBDIR}
|
cd ${OBS_SUBDIR}
|
||||||
|
|||||||
@@ -1,50 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
set -e -u
|
|
||||||
|
|
||||||
scriptdir=`dirname $0`
|
|
||||||
|
|
||||||
DEFAULT_DIST=yakkety
|
|
||||||
|
|
||||||
package="nextcloud-client"
|
|
||||||
version="$1"
|
|
||||||
comment="$2"
|
|
||||||
distver="${3:-}"
|
|
||||||
|
|
||||||
if test -z "${distver}"; then
|
|
||||||
distver="1"
|
|
||||||
fi
|
|
||||||
|
|
||||||
packagedir="${scriptdir}/../${package}"
|
|
||||||
|
|
||||||
now=`date -R`
|
|
||||||
|
|
||||||
tmpfile="/tmp/addchange.$$"
|
|
||||||
|
|
||||||
for subdir in "${packagedir}/debian"*; do
|
|
||||||
if test -f "${subdir}/changelog"; then
|
|
||||||
echo "${subdir}"
|
|
||||||
bname=`basename "${subdir}"`
|
|
||||||
dist=`echo "${bname}" | sed 's:debian\.\?::'`
|
|
||||||
if test -z "${dist}"; then
|
|
||||||
dist="${DEFAULT_DIST}"
|
|
||||||
fi
|
|
||||||
if test "${dist}" = "stable"; then
|
|
||||||
versuffix=""
|
|
||||||
else
|
|
||||||
versuffix="~${dist}${distver}"
|
|
||||||
fi
|
|
||||||
cat > "${tmpfile}" <<EOF
|
|
||||||
${package} (${version}${versuffix}) ${dist}; urgency=medium
|
|
||||||
|
|
||||||
* ${comment}
|
|
||||||
|
|
||||||
-- István Váradi <ivaradi@varadiistvan.hu> ${now}
|
|
||||||
|
|
||||||
EOF
|
|
||||||
cat "${subdir}/changelog" >> "${tmpfile}"
|
|
||||||
mv "${tmpfile}" "${subdir}/changelog"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
rm -f "${tmpfile}"
|
|
||||||
@@ -1,26 +0,0 @@
|
|||||||
# The directory where the sources are found
|
|
||||||
SOURCES="${HOME}/sources/nextcloud/client"
|
|
||||||
|
|
||||||
# The directory into which the packages should be genereated
|
|
||||||
BUILDAREA="${SOURCES}/build-area"
|
|
||||||
|
|
||||||
# The directory containing the Git repositories
|
|
||||||
GITROOTS="${SOURCES}/git"
|
|
||||||
|
|
||||||
# The pbuilder root directory
|
|
||||||
PBUILDER_ROOT="${HOME}/pbuilder"
|
|
||||||
|
|
||||||
# The dependencies directory for pbuilder
|
|
||||||
PBUILDER_DEPS="${PBUILDER_ROOT}/deps"
|
|
||||||
|
|
||||||
# The version of the nextcloud-client package
|
|
||||||
NEXTCLOUD_CLIENT_VERSION=2.4.0
|
|
||||||
|
|
||||||
# The FULL version of the nextcloud-client package
|
|
||||||
NEXTCLOUD_CLIENT_FULL_VERSION="${NEXTCLOUD_CLIENT_VERSION}-1.0~@DISTRIBUTION@1"
|
|
||||||
|
|
||||||
# The tag of the nextcloud-client package
|
|
||||||
NEXTCLOUD_CLIENT_TAG="v${NEXTCLOUD_CLIENT_VERSION}"
|
|
||||||
|
|
||||||
# The number of CPUs that can be used for paralel builds
|
|
||||||
NUMCPUS=4
|
|
||||||
@@ -1,89 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
set -e -u
|
|
||||||
|
|
||||||
scriptdir=`dirname $0`
|
|
||||||
scriptdir=`cd "${scriptdir}" && pwd`
|
|
||||||
|
|
||||||
. "${scriptdir}/config.sh"
|
|
||||||
|
|
||||||
package="nextcloud-client"
|
|
||||||
tag="${1}"
|
|
||||||
version="${2}"
|
|
||||||
distribution="${3}"
|
|
||||||
|
|
||||||
gitdir="${GITROOTS}/client"
|
|
||||||
packagedir="${BUILDAREA}/${package}_${version}"
|
|
||||||
origtarname="${package}_${version}.orig.tar.bz2"
|
|
||||||
origtar="${BUILDAREA}/${origtarname}"
|
|
||||||
|
|
||||||
archive_submodules()
|
|
||||||
{
|
|
||||||
local subdir="${1}"
|
|
||||||
local treeish="${2}"
|
|
||||||
|
|
||||||
local dir="${gitdir}"
|
|
||||||
local destdir="${packagedir}"
|
|
||||||
if test "${subdir}"; then
|
|
||||||
echo " copying submodule ${subdir}"
|
|
||||||
dir="${dir}/${subdir}"
|
|
||||||
destdir="${destdir}/${subdir}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
mkdir -p "${destdir}"
|
|
||||||
|
|
||||||
(cd "${dir}"; git archive "${treeish}" | tar xf - -C "${destdir}")
|
|
||||||
|
|
||||||
(cd "${dir}"; git ls-tree "${treeish}" -r) | while read mode type object file; do
|
|
||||||
if test "${type}" = "commit"; then
|
|
||||||
sdir="${file}"
|
|
||||||
if test "${subdir}"; then
|
|
||||||
sdir="${subdir}/${sdir}"
|
|
||||||
fi
|
|
||||||
archive_submodules "${sdir}" "${object}"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
rm -rf "${packagedir}"
|
|
||||||
mkdir -p "${packagedir}"
|
|
||||||
|
|
||||||
echo "Updating submodules"
|
|
||||||
commit=`cd "${gitdir}"; git rev-parse HEAD`
|
|
||||||
(cd "${gitdir}"; git checkout "${tag}"; git submodule update --recursive --init)
|
|
||||||
|
|
||||||
echo "Copying sources"
|
|
||||||
archive_submodules "" "${tag}"
|
|
||||||
|
|
||||||
if test -f "${GITROOTS}/${origtarname}"; then
|
|
||||||
echo "Copying orig archive from ${GITROOTS}"
|
|
||||||
cp -a "${GITROOTS}/${origtarname}" "${BUILDAREA}"
|
|
||||||
else
|
|
||||||
echo "Creating orig archive"
|
|
||||||
tar cjf "${origtar}" -C "${BUILDAREA}" "${package}_${version}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "Restoring Git state"
|
|
||||||
(cd "${gitdir}"; git checkout "${commit}")
|
|
||||||
cd "${scriptdir}"
|
|
||||||
|
|
||||||
echo "Copying Debian files"
|
|
||||||
mkdir -p "${packagedir}/debian"
|
|
||||||
tar cf - -C "${scriptdir}/../debian" . | tar xf - -C "${packagedir}/debian"
|
|
||||||
|
|
||||||
if test -d "${scriptdir}/../debian.${distribution}"; then
|
|
||||||
tar cf - -C "${scriptdir}/../debian.${distribution}" . | tar xf - -C "${packagedir}/debian"
|
|
||||||
fi
|
|
||||||
|
|
||||||
pushd "${packagedir}"
|
|
||||||
for p in debian/post-patches/*.patch; do
|
|
||||||
if test -f "${p}"; then
|
|
||||||
echo "Applying ${p}"
|
|
||||||
patch -p1 < "${p}"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
popd
|
|
||||||
|
|
||||||
"${scriptdir}/git2changelog.py" /tmp/git2changelog "${distribution}"
|
|
||||||
mv "${packagedir}/debian/changelog" "${packagedir}/debian/changelog.old"
|
|
||||||
cat /tmp/git2changelog "${packagedir}/debian/changelog.old" > "${packagedir}/debian/changelog"
|
|
||||||
@@ -6,3 +6,7 @@
|
|||||||
[versionhack]
|
[versionhack]
|
||||||
commit = bc7e65b39552ac458b2adacf76cbf98735ec29a0
|
commit = bc7e65b39552ac458b2adacf76cbf98735ec29a0
|
||||||
tag = v2.4.0-beta
|
tag = v2.4.0-beta
|
||||||
|
|
||||||
|
[base]
|
||||||
|
commit = 56222de768e3def4d504b3f9832d8598b1ec2043
|
||||||
|
version = 2.7.0
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
#!//usr/bin/env python2.7
|
#!//usr/bin/env python2.7
|
||||||
|
|
||||||
|
from __future__ import print_function
|
||||||
import subprocess
|
import subprocess
|
||||||
import re
|
import re
|
||||||
import sys
|
import sys
|
||||||
@@ -7,6 +8,11 @@ import datetime
|
|||||||
import os
|
import os
|
||||||
import ConfigParser
|
import ConfigParser
|
||||||
|
|
||||||
|
try:
|
||||||
|
long
|
||||||
|
except NameError:
|
||||||
|
long = int
|
||||||
|
|
||||||
distribution="yakkety"
|
distribution="yakkety"
|
||||||
|
|
||||||
versionTagRE = re.compile("^v([0-9]+((\.[0-9]+)+))(-(.+))?$")
|
versionTagRE = re.compile("^v([0-9]+((\.[0-9]+)+))(-(.+))?$")
|
||||||
@@ -22,6 +28,7 @@ def getCommitVersion(commit):
|
|||||||
major=None
|
major=None
|
||||||
minor=None
|
minor=None
|
||||||
patch=None
|
patch=None
|
||||||
|
try:
|
||||||
for line in subprocess.check_output(["git", "show",
|
for line in subprocess.check_output(["git", "show",
|
||||||
commit + ":VERSION.cmake"]).splitlines():
|
commit + ":VERSION.cmake"]).splitlines():
|
||||||
m = re.match("set\( MIRALL_VERSION_([A-Z]+) +([0-9])+ *\)", line)
|
m = re.match("set\( MIRALL_VERSION_([A-Z]+) +([0-9])+ *\)", line)
|
||||||
@@ -38,19 +45,16 @@ def getCommitVersion(commit):
|
|||||||
return major + "." + minor + "." + patch
|
return major + "." + minor + "." + patch
|
||||||
else:
|
else:
|
||||||
return None
|
return None
|
||||||
|
except:
|
||||||
|
return None
|
||||||
|
|
||||||
def collectEntries(baseCommit, baseVersion, kind):
|
def collectEntries(baseCommit, baseVersion, kind, finalRevDate, config):
|
||||||
scriptdir = os.path.dirname(__file__)
|
|
||||||
configPath = os.path.join(scriptdir, "git2changelog.cfg")
|
|
||||||
|
|
||||||
newVersionCommit = None
|
newVersionCommit = None
|
||||||
newVersionTag = None
|
newVersionTag = None
|
||||||
newVersionOrigTag = None
|
newVersionOrigTag = None
|
||||||
|
|
||||||
if os.path.exists(configPath):
|
if config is not None and config.has_section("versionhack"):
|
||||||
config = ConfigParser.SafeConfigParser()
|
|
||||||
config.read(configPath)
|
|
||||||
if config.has_section("versionhack"):
|
|
||||||
if config.has_option("versionhack", "commit") and \
|
if config.has_option("versionhack", "commit") and \
|
||||||
config.has_option("versionhack", "tag"):
|
config.has_option("versionhack", "tag"):
|
||||||
newVersionCommit = config.get("versionhack", "commit")
|
newVersionCommit = config.get("versionhack", "commit")
|
||||||
@@ -73,9 +77,11 @@ def collectEntries(baseCommit, baseVersion, kind):
|
|||||||
words = line.split("\t")
|
words = line.split("\t")
|
||||||
(commit, name, email, date, revdate) = words[0:5]
|
(commit, name, email, date, revdate) = words[0:5]
|
||||||
subject = "\t".join(words[5:])
|
subject = "\t".join(words[5:])
|
||||||
revdate = datetime.datetime.utcfromtimestamp(long(revdate)).strftime("%Y%m%d.%H%M%S")
|
|
||||||
|
|
||||||
kind = "beta"
|
revdate = datetime.datetime.utcfromtimestamp(long(revdate)).strftime("%Y%m%d.%H%M%S")
|
||||||
|
revdate += "." + commit
|
||||||
|
|
||||||
|
kind = "alpha"
|
||||||
|
|
||||||
if commit==newVersionCommit:
|
if commit==newVersionCommit:
|
||||||
result = processVersionTag(newVersionTag)
|
result = processVersionTag(newVersionTag)
|
||||||
@@ -107,38 +113,63 @@ def collectEntries(baseCommit, baseVersion, kind):
|
|||||||
entries.append((commit, name, email, date, revdate, subject,
|
entries.append((commit, name, email, date, revdate, subject,
|
||||||
baseVersion, kind))
|
baseVersion, kind))
|
||||||
|
|
||||||
|
if entries:
|
||||||
|
(commit, name, email, date, revdate, subject, baseVersion, kind) = entries[-1]
|
||||||
|
if finalRevDate is None:
|
||||||
|
revdate = datetime.datetime.now().strftime("%Y%m%d.%H%M%S")+ "." + commit
|
||||||
|
else:
|
||||||
|
revdate = finalRevDate
|
||||||
|
entries[-1] = (commit, name, email, date, revdate, subject, baseVersion, kind)
|
||||||
|
|
||||||
entries.reverse()
|
entries.reverse()
|
||||||
|
|
||||||
return entries
|
return entries
|
||||||
|
|
||||||
def genChangeLogEntries(f, entries, distribution):
|
def genChangeLogEntries(f, entries, distribution):
|
||||||
latestBaseVersion = None
|
latestBaseVersion = None
|
||||||
|
latestRevDate = None
|
||||||
latestKind = None
|
latestKind = None
|
||||||
for (commit, name, email, date, revdate, subject, baseVersion, kind) in entries:
|
for (commit, name, email, date, revdate, subject, baseVersion, kind) in entries:
|
||||||
if latestBaseVersion is None:
|
if latestBaseVersion is None:
|
||||||
latestBaseVersion = baseVersion
|
latestBaseVersion = baseVersion
|
||||||
|
latestRevDate = revdate
|
||||||
latestKind = kind
|
latestKind = kind
|
||||||
upstreamVersion = baseVersion + "-" + revdate
|
upstreamVersion = baseVersion + "-" + revdate
|
||||||
if distribution=="stable":
|
if distribution=="stable":
|
||||||
version = upstreamVersion
|
version = upstreamVersion
|
||||||
else:
|
else:
|
||||||
version = upstreamVersion + "~" + distribution + "1"
|
version = upstreamVersion + "-1.0~" + distribution + "1"
|
||||||
print >> f, "nextcloud-client (%s) %s; urgency=medium" % (version, distribution)
|
print("nextcloud-desktop (%s) %s; urgency=medium" % (version, distribution), file=f)
|
||||||
print >> f
|
print(file=f)
|
||||||
print >> f, " * " + subject
|
print(" * " + subject, file=f)
|
||||||
print >> f
|
print(file=f)
|
||||||
print >> f, " -- %s <%s> %s" % (name, email, date)
|
print(" -- %s <%s> %s" % (name, email, date), file=f)
|
||||||
print >> f
|
print(file=f)
|
||||||
return (latestBaseVersion, latestKind)
|
return (latestBaseVersion, latestRevDate, latestKind)
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
scriptdir = os.path.dirname(__file__)
|
||||||
|
configPath = os.path.join(scriptdir, "git2changelog.cfg")
|
||||||
|
|
||||||
|
baseCommit = "f9b1c724d6ab5431e0cd56b7cd834f2dd48cebb1"
|
||||||
|
baseVersion = "2.4.0"
|
||||||
|
|
||||||
|
config = None
|
||||||
|
if os.path.exists(configPath):
|
||||||
|
config = ConfigParser.SafeConfigParser()
|
||||||
|
config.read(configPath)
|
||||||
|
|
||||||
|
if config.has_section("base"):
|
||||||
|
if config.has_option("base", "commit") and \
|
||||||
|
config.has_option("base", "version"):
|
||||||
|
baseCommit = config.get("base", "commit")
|
||||||
|
baseVersion = config.get("base", "version")
|
||||||
|
|
||||||
distribution = sys.argv[2]
|
distribution = sys.argv[2]
|
||||||
|
finalRevDate = sys.argv[3] if len(sys.argv)>3 else None
|
||||||
|
|
||||||
#entries = collectEntries("8aade24147b5313f8241a8b42331442b7f40eef9", "2.2.4", "release")
|
entries = collectEntries(baseCommit, baseVersion, "alpha", finalRevDate, config)
|
||||||
entries = collectEntries("f9b1c724d6ab5431e0cd56b7cd834f2dd48cebb1", "2.4.0", "beta")
|
|
||||||
|
|
||||||
|
|
||||||
with open(sys.argv[1], "wt") as f:
|
with open(sys.argv[1], "wt") as f:
|
||||||
(baseVersion, kind) = genChangeLogEntries(f, entries, distribution)
|
(baseVersion, revdate, kind) = genChangeLogEntries(f, entries, distribution)
|
||||||
print baseVersion, kind
|
print(baseVersion, revdate, kind)
|
||||||
|
|||||||
@@ -1,17 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
set -e -u
|
|
||||||
|
|
||||||
scriptdir=`dirname $0`
|
|
||||||
scriptdir=`cd "${scriptdir}" && pwd`
|
|
||||||
|
|
||||||
. "${scriptdir}/config.sh"
|
|
||||||
|
|
||||||
distribution="${1}"
|
|
||||||
shift
|
|
||||||
|
|
||||||
pushd /
|
|
||||||
"${scriptdir}/build.sh" "${distribution}" -S "$@"
|
|
||||||
|
|
||||||
"${scriptdir}/pbuilder.sh" "${distribution}" "$@"
|
|
||||||
popd
|
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
set -e -u
|
|
||||||
|
|
||||||
scriptdir=`dirname $0`
|
|
||||||
|
|
||||||
. "${scriptdir}/config.sh"
|
|
||||||
|
|
||||||
distribution="${1}"
|
|
||||||
shift
|
|
||||||
|
|
||||||
resultdir="${PBUILDER_ROOT}/${distribution}_result"
|
|
||||||
|
|
||||||
rm -f "${PBUILDER_DEPS}/"*.deb
|
|
||||||
echo -n > "${PBUILDER_DEPS}/Packages"
|
|
||||||
rm -f "${resultdir}/"*
|
|
||||||
|
|
||||||
source "${HOME}/.pbuilderrc"
|
|
||||||
|
|
||||||
dscversion=`echo ${NEXTCLOUD_CLIENT_FULL_VERSION} | sed "s:@DISTRIBUTION@:${distribution}:g"`
|
|
||||||
pbuilder-dist "${distribution}" build --othermirror "${OTHERMIRROR}" --debbuildopts "-j${NUMCPUS}" "$@" "${BUILDAREA}/nextcloud-client_${dscversion}.dsc"
|
|
||||||
@@ -11,7 +11,7 @@ else()
|
|||||||
set(MAC_INSTALLER_DO_CUSTOM_BACKGROUND "0")
|
set(MAC_INSTALLER_DO_CUSTOM_BACKGROUND "0")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
find_package(Qt5 5.6 COMPONENTS Core REQUIRED)
|
find_package(Qt5 5.12 COMPONENTS Core REQUIRED)
|
||||||
configure_file(create_mac.sh.cmake ${CMAKE_CURRENT_BINARY_DIR}/create_mac.sh)
|
configure_file(create_mac.sh.cmake ${CMAKE_CURRENT_BINARY_DIR}/create_mac.sh)
|
||||||
configure_file(macosx.pkgproj.cmake ${CMAKE_CURRENT_BINARY_DIR}/macosx.pkgproj)
|
configure_file(macosx.pkgproj.cmake ${CMAKE_CURRENT_BINARY_DIR}/macosx.pkgproj)
|
||||||
configure_file(pre_install.sh.cmake ${CMAKE_CURRENT_BINARY_DIR}/pre_install.sh)
|
configure_file(pre_install.sh.cmake ${CMAKE_CURRENT_BINARY_DIR}/pre_install.sh)
|
||||||
|
|||||||
@@ -1,365 +0,0 @@
|
|||||||
#!/usr/bin/python
|
|
||||||
# This file is part of ownCloud.
|
|
||||||
# It was inspired in large part by the macdeploy script in Clementine
|
|
||||||
# and Tomahawk
|
|
||||||
#
|
|
||||||
# ownCloud 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 of the License, or
|
|
||||||
# (at your option) any later version.
|
|
||||||
#
|
|
||||||
# ownCLoud 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 ownCloud. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
|
|
||||||
import os
|
|
||||||
import re
|
|
||||||
import subprocess
|
|
||||||
import commands
|
|
||||||
import sys
|
|
||||||
from glob import glob
|
|
||||||
from distutils.version import LooseVersion
|
|
||||||
|
|
||||||
def QueryQMake(attrib):
|
|
||||||
return subprocess.check_output([qmake_path, '-query', attrib]).rstrip('\n')
|
|
||||||
|
|
||||||
FRAMEWORK_SEARCH_PATH=[
|
|
||||||
'/Library/Frameworks',
|
|
||||||
os.path.join(os.environ['HOME'], 'Library/Frameworks')
|
|
||||||
]
|
|
||||||
|
|
||||||
LIBRARY_SEARCH_PATH=['/usr/local/lib', '/usr/local/Qt-5.12.5/lib', '.']
|
|
||||||
|
|
||||||
QT_PLUGINS = [
|
|
||||||
'sqldrivers/libqsqlite.dylib',
|
|
||||||
'platforms/libqcocoa.dylib',
|
|
||||||
'styles/libqmacstyle.dylib',
|
|
||||||
'imageformats/libqgif.dylib',
|
|
||||||
'imageformats/libqico.dylib',
|
|
||||||
'imageformats/libqjpeg.dylib',
|
|
||||||
'imageformats/libqsvg.dylib',
|
|
||||||
]
|
|
||||||
|
|
||||||
QT_PLUGINS_SEARCH_PATH=[
|
|
||||||
# os.path.join(os.environ['QTDIR'], 'plugins'),
|
|
||||||
# '/usr/local/Cellar/qt/5.2.1/plugins',
|
|
||||||
'/usr/local/Qt-5.12.5/plugins',
|
|
||||||
]
|
|
||||||
|
|
||||||
|
|
||||||
class Error(Exception):
|
|
||||||
pass
|
|
||||||
|
|
||||||
|
|
||||||
class CouldNotFindQtPluginErrorFindFrameworkError(Error):
|
|
||||||
pass
|
|
||||||
|
|
||||||
|
|
||||||
class InstallNameToolError(Error):
|
|
||||||
pass
|
|
||||||
|
|
||||||
|
|
||||||
class CouldNotFindQtPluginError(Error):
|
|
||||||
pass
|
|
||||||
|
|
||||||
|
|
||||||
class CouldNotFindScriptPluginError(Error):
|
|
||||||
pass
|
|
||||||
|
|
||||||
class CouldNotFindFrameworkError(Error):
|
|
||||||
pass
|
|
||||||
|
|
||||||
if len(sys.argv) < 3:
|
|
||||||
print 'Usage: %s <bundle.app> <path-to-qmake>' % sys.argv[0]
|
|
||||||
exit()
|
|
||||||
|
|
||||||
def is_exe(fpath):
|
|
||||||
return os.path.isfile(fpath) and os.access(fpath, os.X_OK)
|
|
||||||
|
|
||||||
bundle_dir = sys.argv[1]
|
|
||||||
qmake_path = sys.argv[2]
|
|
||||||
|
|
||||||
bundle_name = os.path.basename(bundle_dir).split('.')[0]
|
|
||||||
|
|
||||||
commands = []
|
|
||||||
|
|
||||||
binary_dir = os.path.join(bundle_dir, 'Contents', 'MacOS')
|
|
||||||
frameworks_dir = os.path.join(bundle_dir, 'Contents', 'Frameworks')
|
|
||||||
commands.append(['mkdir', '-p', frameworks_dir])
|
|
||||||
resources_dir = os.path.join(bundle_dir, 'Contents', 'Resources')
|
|
||||||
commands.append(['mkdir', '-p', resources_dir])
|
|
||||||
plugins_dir = os.path.join(bundle_dir, 'Contents', 'PlugIns')
|
|
||||||
binaries = [i for i in glob(os.path.join(bundle_dir, 'Contents', 'MacOS', "*")) if is_exe(i)];
|
|
||||||
|
|
||||||
qt_version = QueryQMake('QT_VERSION')
|
|
||||||
print "Using Qt", qt_version
|
|
||||||
|
|
||||||
fixed_libraries = []
|
|
||||||
fixed_frameworks = []
|
|
||||||
|
|
||||||
def WriteQtConf():
|
|
||||||
print "Writing qt.conf..."
|
|
||||||
with open(os.path.join(resources_dir, 'qt.conf'), 'w') as f:
|
|
||||||
f.write("[Paths]\nPlugins = PlugIns\n");
|
|
||||||
f.close()
|
|
||||||
|
|
||||||
def GetBrokenLibraries(binary):
|
|
||||||
#print "Checking libs for binary: %s" % binary
|
|
||||||
output = subprocess.Popen(['otool', '-L', binary], stdout=subprocess.PIPE).communicate()[0]
|
|
||||||
broken_libs = {
|
|
||||||
'frameworks': [],
|
|
||||||
'libs': []}
|
|
||||||
for line in [x.split(' ')[0].lstrip() for x in output.split('\n')[1:]]:
|
|
||||||
#print "Checking line: %s" % line
|
|
||||||
if not line: # skip empty lines
|
|
||||||
continue
|
|
||||||
if os.path.basename(binary) == os.path.basename(line):
|
|
||||||
#print "mnope %s-%s" % (os.path.basename(binary), os.path.basename(line))
|
|
||||||
continue
|
|
||||||
if re.match(r'^\s*/System/', line):
|
|
||||||
continue # System framework
|
|
||||||
elif re.match(r'^\s*/usr/lib/', line):
|
|
||||||
#print "unix style system lib"
|
|
||||||
continue # unix style system library
|
|
||||||
elif re.match(r'Breakpad', line):
|
|
||||||
continue # Manually added by cmake.
|
|
||||||
elif re.match(r'^\s*@executable_path', line) or re.match(r'^\s*@loader_path', line):
|
|
||||||
# Potentially already fixed library
|
|
||||||
if '.framework' in line:
|
|
||||||
relative_path = os.path.join(*line.split('/')[3:])
|
|
||||||
if not os.path.exists(os.path.join(frameworks_dir, relative_path)):
|
|
||||||
broken_libs['frameworks'].append(relative_path)
|
|
||||||
else:
|
|
||||||
relative_path = os.path.join(*line.split('/')[1:])
|
|
||||||
#print "RELPATH %s %s" % (relative_path, os.path.join(binary_dir, relative_path))
|
|
||||||
if not os.path.exists(os.path.join(binary_dir, relative_path)):
|
|
||||||
broken_libs['libs'].append(relative_path)
|
|
||||||
elif re.search(r'\w+\.framework', line):
|
|
||||||
broken_libs['frameworks'].append(line)
|
|
||||||
else:
|
|
||||||
broken_libs['libs'].append(line)
|
|
||||||
|
|
||||||
return broken_libs
|
|
||||||
|
|
||||||
def FindFramework(path):
|
|
||||||
search_pathes = FRAMEWORK_SEARCH_PATH
|
|
||||||
search_pathes.insert(0, QueryQMake('QT_INSTALL_LIBS'))
|
|
||||||
for search_path in search_pathes:
|
|
||||||
# The following two lines are needed for a custom built Qt from version 5.5 on, possibly not for the one from the Qt SDK.
|
|
||||||
# Looks like the upstream macdeployqt also had an issue there https://bugreports.qt.io/browse/QTBUG-47868
|
|
||||||
if path.find( "\@rpath/"):
|
|
||||||
path = path.replace("@rpath/", "")
|
|
||||||
abs_path = os.path.join(search_path, path)
|
|
||||||
if os.path.exists(abs_path):
|
|
||||||
return abs_path
|
|
||||||
|
|
||||||
raise CouldNotFindFrameworkError(path)
|
|
||||||
|
|
||||||
def FindLibrary(path):
|
|
||||||
if os.path.exists(path):
|
|
||||||
return path
|
|
||||||
search_pathes = LIBRARY_SEARCH_PATH
|
|
||||||
search_pathes.insert(0, QueryQMake('QT_INSTALL_LIBS'))
|
|
||||||
for search_path in search_pathes:
|
|
||||||
abs_path = os.path.join(search_path, path)
|
|
||||||
if os.path.exists(abs_path):
|
|
||||||
return abs_path
|
|
||||||
else: # try harder---look for lib name in library folders
|
|
||||||
newpath = os.path.join(search_path,os.path.basename(path))
|
|
||||||
if os.path.exists(newpath):
|
|
||||||
return newpath
|
|
||||||
|
|
||||||
return ""
|
|
||||||
#raise CouldNotFindFrameworkError(path)
|
|
||||||
|
|
||||||
def FixAllLibraries(broken_libs):
|
|
||||||
for framework in broken_libs['frameworks']:
|
|
||||||
FixFramework(framework)
|
|
||||||
for lib in broken_libs['libs']:
|
|
||||||
FixLibrary(lib)
|
|
||||||
|
|
||||||
def FixFramework(path):
|
|
||||||
if path in fixed_libraries:
|
|
||||||
return
|
|
||||||
else:
|
|
||||||
fixed_libraries.append(path)
|
|
||||||
abs_path = FindFramework(path)
|
|
||||||
broken_libs = GetBrokenLibraries(abs_path)
|
|
||||||
FixAllLibraries(broken_libs)
|
|
||||||
|
|
||||||
new_path = CopyFramework(abs_path)
|
|
||||||
id = os.sep.join(new_path.split(os.sep)[3:])
|
|
||||||
FixFrameworkId(new_path, id)
|
|
||||||
for framework in broken_libs['frameworks']:
|
|
||||||
FixFrameworkInstallPath(framework, new_path)
|
|
||||||
for library in broken_libs['libs']:
|
|
||||||
FixLibraryInstallPath(library, new_path)
|
|
||||||
|
|
||||||
def FixLibrary(path):
|
|
||||||
if path in fixed_libraries or FindSystemLibrary(os.path.basename(path)) is not None:
|
|
||||||
return
|
|
||||||
else:
|
|
||||||
fixed_libraries.append(path)
|
|
||||||
abs_path = FindLibrary(path)
|
|
||||||
if abs_path == "":
|
|
||||||
print "Could not resolve %s, not fixing!" % path
|
|
||||||
return
|
|
||||||
broken_libs = GetBrokenLibraries(abs_path)
|
|
||||||
FixAllLibraries(broken_libs)
|
|
||||||
|
|
||||||
new_path = CopyLibrary(abs_path)
|
|
||||||
FixLibraryId(new_path)
|
|
||||||
for framework in broken_libs['frameworks']:
|
|
||||||
FixFrameworkInstallPath(framework, new_path)
|
|
||||||
for library in broken_libs['libs']:
|
|
||||||
FixLibraryInstallPath(library, new_path)
|
|
||||||
|
|
||||||
def FixPlugin(abs_path, subdir):
|
|
||||||
broken_libs = GetBrokenLibraries(abs_path)
|
|
||||||
FixAllLibraries(broken_libs)
|
|
||||||
|
|
||||||
new_path = CopyPlugin(abs_path, subdir)
|
|
||||||
for framework in broken_libs['frameworks']:
|
|
||||||
FixFrameworkInstallPath(framework, new_path)
|
|
||||||
for library in broken_libs['libs']:
|
|
||||||
FixLibraryInstallPath(library, new_path)
|
|
||||||
|
|
||||||
def FixBinary(path):
|
|
||||||
broken_libs = GetBrokenLibraries(path)
|
|
||||||
FixAllLibraries(broken_libs)
|
|
||||||
for framework in broken_libs['frameworks']:
|
|
||||||
FixFrameworkInstallPath(framework, path)
|
|
||||||
for library in broken_libs['libs']:
|
|
||||||
FixLibraryInstallPath(library, path)
|
|
||||||
|
|
||||||
def CopyLibrary(path):
|
|
||||||
new_path = os.path.join(binary_dir, os.path.basename(path))
|
|
||||||
args = ['ditto', '--arch=x86_64', path, new_path]
|
|
||||||
commands.append(args)
|
|
||||||
args = ['chmod', 'u+w', new_path]
|
|
||||||
commands.append(args)
|
|
||||||
return new_path
|
|
||||||
|
|
||||||
def CopyPlugin(path, subdir):
|
|
||||||
new_path = os.path.join(plugins_dir, subdir, os.path.basename(path))
|
|
||||||
args = ['mkdir', '-p', os.path.dirname(new_path)]
|
|
||||||
commands.append(args)
|
|
||||||
args = ['ditto', '--arch=x86_64', path, new_path]
|
|
||||||
commands.append(args)
|
|
||||||
args = ['chmod', 'u+w', new_path]
|
|
||||||
commands.append(args)
|
|
||||||
return new_path
|
|
||||||
|
|
||||||
def CopyFramework(source_dylib):
|
|
||||||
parts = source_dylib.split(os.sep)
|
|
||||||
print "CopyFramework:", source_dylib
|
|
||||||
for i, part in enumerate(parts):
|
|
||||||
matchObj = re.match(r'(\w+\.framework)', part)
|
|
||||||
if matchObj:
|
|
||||||
framework = matchObj.group(1)
|
|
||||||
dylib_name = parts[-1]
|
|
||||||
source_path = os.path.join('/', *parts[:i+1])
|
|
||||||
dest_path = os.path.join(frameworks_dir, framework)
|
|
||||||
dest_dylib_path = os.path.join(frameworks_dir, *parts[i:-1])
|
|
||||||
break
|
|
||||||
# if os.path.exists(dest_path):
|
|
||||||
# print dest_path, "already exists, skipping copy..."
|
|
||||||
# return os.path.join(dest_dylib_path, dylib_name)
|
|
||||||
|
|
||||||
args = ['mkdir', '-p', dest_dylib_path]
|
|
||||||
commands.append(args)
|
|
||||||
args = ['ditto', '--arch=x86_64', source_dylib, dest_dylib_path]
|
|
||||||
commands.append(args)
|
|
||||||
args = ['chmod', 'u+w', os.path.join(dest_dylib_path, parts[-1])]
|
|
||||||
commands.append(args)
|
|
||||||
args = ['ln', '-s', '5', os.path.join(dest_path, 'Versions', 'Current')]
|
|
||||||
commands.append(args)
|
|
||||||
args = ['ln', '-s', os.path.join('Versions', 'Current', dylib_name), os.path.join(dest_path, dylib_name)]
|
|
||||||
commands.append(args)
|
|
||||||
args = ['ln', '-s', os.path.join('Versions', 'Current', 'Resources'), os.path.join(dest_path, 'Resources')]
|
|
||||||
commands.append(args)
|
|
||||||
args = ['cp', '-r', os.path.join(source_path, 'Versions', '5', 'Resources'), os.path.join(dest_path, 'Versions', '5')]
|
|
||||||
commands.append(args)
|
|
||||||
args = ['ln', '-s', os.path.join('Versions', 'Current', 'Helpers'), os.path.join(dest_path, 'Helpers')]
|
|
||||||
commands.append(args)
|
|
||||||
args = ['cp', '-r', os.path.join(source_path, 'Versions', '5', 'Helpers'), os.path.join(dest_path, 'Versions', '5')]
|
|
||||||
commands.append(args)
|
|
||||||
|
|
||||||
return os.path.join(dest_dylib_path, dylib_name)
|
|
||||||
|
|
||||||
def FixId(path, library_name):
|
|
||||||
id = '@executable_path/../Frameworks/%s' % library_name
|
|
||||||
args = ['install_name_tool', '-id', id, path]
|
|
||||||
commands.append(args)
|
|
||||||
|
|
||||||
def FixLibraryId(path):
|
|
||||||
library_name = os.path.basename(path)
|
|
||||||
FixId(path, library_name)
|
|
||||||
|
|
||||||
def FixFrameworkId(path, id):
|
|
||||||
FixId(path, id)
|
|
||||||
|
|
||||||
def FixInstallPath(library_path, library, new_path):
|
|
||||||
args = ['install_name_tool', '-change', library_path, new_path, library]
|
|
||||||
commands.append(args)
|
|
||||||
|
|
||||||
def FindSystemLibrary(library_name):
|
|
||||||
for path in ['/lib', '/usr/lib']:
|
|
||||||
full_path = os.path.join(path, library_name)
|
|
||||||
if os.path.exists(full_path):
|
|
||||||
return full_path
|
|
||||||
return None
|
|
||||||
|
|
||||||
def FixLibraryInstallPath(library_path, library):
|
|
||||||
system_library = FindSystemLibrary(os.path.basename(library_path))
|
|
||||||
if system_library is None:
|
|
||||||
new_path = '@executable_path/../MacOS/%s' % os.path.basename(library_path)
|
|
||||||
FixInstallPath(library_path, library, new_path)
|
|
||||||
else:
|
|
||||||
FixInstallPath(library_path, library, system_library)
|
|
||||||
|
|
||||||
def FixFrameworkInstallPath(library_path, library):
|
|
||||||
parts = library_path.split(os.sep)
|
|
||||||
for i, part in enumerate(parts):
|
|
||||||
if re.match(r'\w+\.framework', part):
|
|
||||||
full_path = os.path.join(*parts[i:])
|
|
||||||
break
|
|
||||||
new_path = '@executable_path/../Frameworks/%s' % full_path
|
|
||||||
FixInstallPath(library_path, library, new_path)
|
|
||||||
|
|
||||||
def FindQtPlugin(name):
|
|
||||||
search_path = QT_PLUGINS_SEARCH_PATH
|
|
||||||
search_path.insert(0, QueryQMake('QT_INSTALL_PLUGINS'))
|
|
||||||
for path in search_path:
|
|
||||||
if os.path.exists(path):
|
|
||||||
if os.path.exists(os.path.join(path, name)):
|
|
||||||
return os.path.join(path, name)
|
|
||||||
raise CouldNotFindQtPluginError(name)
|
|
||||||
|
|
||||||
for binary in binaries:
|
|
||||||
FixBinary(binary)
|
|
||||||
|
|
||||||
for plugin in QT_PLUGINS:
|
|
||||||
FixPlugin(FindQtPlugin(plugin), os.path.dirname(plugin))
|
|
||||||
|
|
||||||
if LooseVersion(qt_version) >= LooseVersion("5.10.0"):
|
|
||||||
args = ['plutil', '-insert', 'LSMinimumSystemVersion', '-string', '10.10.0', os.path.join(bundle_dir, 'Contents', 'Info.plist')]
|
|
||||||
commands.append(args)
|
|
||||||
else:
|
|
||||||
args = ['plutil', '-insert', 'LSMinimumSystemVersion', '-string', '10.7.0', os.path.join(bundle_dir, 'Contents', 'Info.plist')]
|
|
||||||
commands.append(args)
|
|
||||||
|
|
||||||
if len(sys.argv) <= 2:
|
|
||||||
print 'Will run %d commands:' % len(commands)
|
|
||||||
for command in commands:
|
|
||||||
print ' '.join(command)
|
|
||||||
|
|
||||||
for command in commands:
|
|
||||||
p = subprocess.Popen(command)
|
|
||||||
os.waitpid(p.pid, 0)
|
|
||||||
|
|
||||||
WriteQtConf()
|
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
## Patches used
|
|
||||||
|
|
||||||
There are our patches on top of Qt 5.6.2, which we are currently
|
|
||||||
using for our binary packages on Windows and macOS. Most of them
|
|
||||||
have been sent upstream and are part of newer Qt releases.
|
|
||||||
|
|
||||||
All changes are designed to be upstream, and all those that are
|
|
||||||
special hacks to Qt will bear a NOUPSTREAM in their name
|
|
||||||
|
|
||||||
You can apply those patches on a git clone using:
|
|
||||||
|
|
||||||
```
|
|
||||||
git am <client>/admin/qt/patches/qtbase/*.patch
|
|
||||||
```
|
|
||||||
|
|
||||||
You can update them using:
|
|
||||||
|
|
||||||
```
|
|
||||||
git format-patch -N --no-signature -o <client>/admin/qt/patches/qtbase/ <v5.x.y>
|
|
||||||
```
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
From 96c34ce85136cbdc16ef83effa8a13137f7ae4c5 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Jocelyn Turcotte <jturcotte@woboq.com>
|
|
||||||
Date: Fri, 6 Mar 2015 16:12:37 +0100
|
|
||||||
Subject: [PATCH] [NOUPSTREAM] Fix -force-debug-info with macx-clang
|
|
||||||
|
|
||||||
---
|
|
||||||
mkspecs/common/clang.conf | 2 ++
|
|
||||||
1 file changed, 2 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/mkspecs/common/clang.conf b/mkspecs/common/clang.conf
|
|
||||||
index e003b94..e9b3291 100644
|
|
||||||
--- a/mkspecs/common/clang.conf
|
|
||||||
+++ b/mkspecs/common/clang.conf
|
|
||||||
@@ -21,11 +21,13 @@ QMAKE_CFLAGS_PRECOMPILE = -x c-header -c ${QMAKE_PCH_INPUT} -o ${QMAKE_
|
|
||||||
QMAKE_CFLAGS_USE_PRECOMPILE = -Xclang -include-pch -Xclang ${QMAKE_PCH_OUTPUT}
|
|
||||||
QMAKE_CFLAGS_LTCG = -flto
|
|
||||||
QMAKE_CFLAGS_DISABLE_LTCG = -fno-lto
|
|
||||||
+QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO = $$QMAKE_CFLAGS_OPTIMIZE -g
|
|
||||||
|
|
||||||
QMAKE_CXXFLAGS_PRECOMPILE = -x c++-header -c ${QMAKE_PCH_INPUT} -o ${QMAKE_PCH_OUTPUT}
|
|
||||||
QMAKE_CXXFLAGS_USE_PRECOMPILE = $$QMAKE_CFLAGS_USE_PRECOMPILE
|
|
||||||
QMAKE_CXXFLAGS_LTCG = $$QMAKE_CFLAGS_LTCG
|
|
||||||
QMAKE_CXXFLAGS_DISABLE_LTCG = $$QMAKE_CFLAGS_DISABLE_LTCG
|
|
||||||
+QMAKE_CXXFLAGS_RELEASE_WITH_DEBUGINFO = $$QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO
|
|
||||||
QMAKE_CXXFLAGS_CXX11 = -std=c++11
|
|
||||||
QMAKE_CXXFLAGS_CXX14 = -std=c++1y
|
|
||||||
QMAKE_CXXFLAGS_CXX1Z = -std=c++1z
|
|
||||||
@@ -1,148 +0,0 @@
|
|||||||
From e6bccb1f0d8ca59acb1ffdac74a823c06346e7f3 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Daniel Molkentin <daniel@molkentin.de>
|
|
||||||
Date: Mon, 16 Nov 2015 15:02:37 +0100
|
|
||||||
Subject: [PATCH] Remove legacy platform code in QSslSocket for OS X < 10.5
|
|
||||||
|
|
||||||
This avoids manual symbol lookups and makes the code more readable.
|
|
||||||
Mark identical code.
|
|
||||||
|
|
||||||
Also use smart pointers instead of manual memory management.
|
|
||||||
|
|
||||||
(Backport of d42d7781f1cd62c3c7c008859507f24a1ff5bb2a to Qt 5.4)
|
|
||||||
|
|
||||||
Change-Id: I62820313dce87de6623cdc87b6e1361200ed7822
|
|
||||||
Reviewed-by: Markus Goetz (Woboq GmbH) <markus@woboq.com>
|
|
||||||
|
|
||||||
Conflicts:
|
|
||||||
src/network/ssl/qsslsocket_openssl.cpp
|
|
||||||
---
|
|
||||||
src/network/ssl/qsslsocket_openssl.cpp | 81 +++++++++++-----------------------
|
|
||||||
src/network/ssl/qsslsocket_p.h | 6 +--
|
|
||||||
2 files changed, 26 insertions(+), 61 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/network/ssl/qsslsocket_openssl.cpp b/src/network/ssl/qsslsocket_openssl.cpp
|
|
||||||
index 82644c1..415f147 100644
|
|
||||||
--- a/src/network/ssl/qsslsocket_openssl.cpp
|
|
||||||
+++ b/src/network/ssl/qsslsocket_openssl.cpp
|
|
||||||
@@ -76,14 +76,17 @@
|
|
||||||
|
|
||||||
#include <string.h>
|
|
||||||
|
|
||||||
+#ifdef Q_OS_DARWIN
|
|
||||||
+# include <private/qcore_mac_p.h>
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
+#ifdef Q_OS_OSX
|
|
||||||
+# include <Security/Security.h>
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
QT_BEGIN_NAMESPACE
|
|
||||||
|
|
||||||
-#if defined(Q_OS_MACX)
|
|
||||||
-#define kSecTrustSettingsDomainSystem 2 // so we do not need to include the header file
|
|
||||||
- PtrSecCertificateCopyData QSslSocketPrivate::ptrSecCertificateCopyData = 0;
|
|
||||||
- PtrSecTrustSettingsCopyCertificates QSslSocketPrivate::ptrSecTrustSettingsCopyCertificates = 0;
|
|
||||||
- PtrSecTrustCopyAnchorCertificates QSslSocketPrivate::ptrSecTrustCopyAnchorCertificates = 0;
|
|
||||||
-#elif defined(Q_OS_WIN)
|
|
||||||
+#if defined(Q_OS_WIN)
|
|
||||||
PtrCertOpenSystemStoreW QSslSocketPrivate::ptrCertOpenSystemStoreW = 0;
|
|
||||||
PtrCertFindCertificateInStore QSslSocketPrivate::ptrCertFindCertificateInStore = 0;
|
|
||||||
PtrCertCloseStore QSslSocketPrivate::ptrCertCloseStore = 0;
|
|
||||||
@@ -509,23 +512,7 @@ void QSslSocketPrivate::ensureCiphersAndCertsLoaded()
|
|
||||||
|
|
||||||
#ifndef QT_NO_LIBRARY
|
|
||||||
//load symbols needed to receive certificates from system store
|
|
||||||
-#if defined(Q_OS_MACX)
|
|
||||||
- QLibrary securityLib("/System/Library/Frameworks/Security.framework/Versions/Current/Security");
|
|
||||||
- if (securityLib.load()) {
|
|
||||||
- ptrSecCertificateCopyData = (PtrSecCertificateCopyData) securityLib.resolve("SecCertificateCopyData");
|
|
||||||
- if (!ptrSecCertificateCopyData)
|
|
||||||
- qCWarning(lcSsl, "could not resolve symbols in security library"); // should never happen
|
|
||||||
-
|
|
||||||
- ptrSecTrustSettingsCopyCertificates = (PtrSecTrustSettingsCopyCertificates) securityLib.resolve("SecTrustSettingsCopyCertificates");
|
|
||||||
- if (!ptrSecTrustSettingsCopyCertificates) { // method was introduced in Leopard, use legacy method if it's not there
|
|
||||||
- ptrSecTrustCopyAnchorCertificates = (PtrSecTrustCopyAnchorCertificates) securityLib.resolve("SecTrustCopyAnchorCertificates");
|
|
||||||
- if (!ptrSecTrustCopyAnchorCertificates)
|
|
||||||
- qCWarning(lcSsl, "could not resolve symbols in security library"); // should never happen
|
|
||||||
- }
|
|
||||||
- } else {
|
|
||||||
- qCWarning(lcSsl, "could not load security library");
|
|
||||||
- }
|
|
||||||
-#elif defined(Q_OS_WIN)
|
|
||||||
+#if defined(Q_OS_WIN)
|
|
||||||
HINSTANCE hLib = LoadLibraryW(L"Crypt32");
|
|
||||||
if (hLib) {
|
|
||||||
#if defined(Q_OS_WINCE)
|
|
||||||
@@ -693,40 +680,22 @@ QList<QSslCertificate> QSslSocketPrivate::systemCaCertificates()
|
|
||||||
timer.start();
|
|
||||||
#endif
|
|
||||||
QList<QSslCertificate> systemCerts;
|
|
||||||
-#if defined(Q_OS_MACX)
|
|
||||||
- CFArrayRef cfCerts;
|
|
||||||
- OSStatus status = 1;
|
|
||||||
-
|
|
||||||
- CFDataRef SecCertificateCopyData (
|
|
||||||
- SecCertificateRef certificate
|
|
||||||
- );
|
|
||||||
-
|
|
||||||
- if (ptrSecCertificateCopyData) {
|
|
||||||
- if (ptrSecTrustSettingsCopyCertificates)
|
|
||||||
- status = ptrSecTrustSettingsCopyCertificates(kSecTrustSettingsDomainSystem, &cfCerts);
|
|
||||||
- else if (ptrSecTrustCopyAnchorCertificates)
|
|
||||||
- status = ptrSecTrustCopyAnchorCertificates(&cfCerts);
|
|
||||||
- if (!status) {
|
|
||||||
- CFIndex size = CFArrayGetCount(cfCerts);
|
|
||||||
- for (CFIndex i = 0; i < size; ++i) {
|
|
||||||
- SecCertificateRef cfCert = (SecCertificateRef)CFArrayGetValueAtIndex(cfCerts, i);
|
|
||||||
- CFDataRef data;
|
|
||||||
-
|
|
||||||
- data = ptrSecCertificateCopyData(cfCert);
|
|
||||||
-
|
|
||||||
- if (data == NULL) {
|
|
||||||
- qCWarning(lcSsl, "error retrieving a CA certificate from the system store");
|
|
||||||
- } else {
|
|
||||||
- QByteArray rawCert = QByteArray::fromRawData((const char *)CFDataGetBytePtr(data), CFDataGetLength(data));
|
|
||||||
- systemCerts.append(QSslCertificate::fromData(rawCert, QSsl::Der));
|
|
||||||
- CFRelease(data);
|
|
||||||
- }
|
|
||||||
+ // note: also check implementation in openssl_mac.cpp
|
|
||||||
+#if defined(Q_OS_OSX)
|
|
||||||
+ // SecTrustSettingsCopyCertificates is not defined on iOS.
|
|
||||||
+ QCFType<CFArrayRef> cfCerts;
|
|
||||||
+
|
|
||||||
+ OSStatus status = SecTrustSettingsCopyCertificates(kSecTrustSettingsDomainSystem, &cfCerts);
|
|
||||||
+ if (status == noErr ) {
|
|
||||||
+ const CFIndex size = CFArrayGetCount(cfCerts);
|
|
||||||
+ for (CFIndex i = 0; i < size; ++i) {
|
|
||||||
+ SecCertificateRef cfCert = (SecCertificateRef)CFArrayGetValueAtIndex(cfCerts, i);
|
|
||||||
+ QCFType<CFDataRef> derData = SecCertificateCopyData(cfCert);
|
|
||||||
+ if (derData == NULL) {
|
|
||||||
+ qWarning("error retrieving a CA certificate from the system store");
|
|
||||||
+ } else {
|
|
||||||
+ systemCerts << QSslCertificate(QByteArray::fromCFData(derData), QSsl::Der);
|
|
||||||
}
|
|
||||||
- CFRelease(cfCerts);
|
|
||||||
- }
|
|
||||||
- else {
|
|
||||||
- // no detailed error handling here
|
|
||||||
- qCWarning(lcSsl, "could not retrieve system CA certificates");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#elif defined(Q_OS_WIN)
|
|
||||||
diff --git a/src/network/ssl/qsslsocket_p.h b/src/network/ssl/qsslsocket_p.h
|
|
||||||
index d651971..17cc7b4 100644
|
|
||||||
--- a/src/network/ssl/qsslsocket_p.h
|
|
||||||
+++ b/src/network/ssl/qsslsocket_p.h
|
|
||||||
@@ -151,11 +151,7 @@ public:
|
|
||||||
static bool isMatchingHostname(const QSslCertificate &cert, const QString &peerName);
|
|
||||||
Q_AUTOTEST_EXPORT static bool isMatchingHostname(const QString &cn, const QString &hostname);
|
|
||||||
|
|
||||||
-#if defined(Q_OS_MACX)
|
|
||||||
- static PtrSecCertificateCopyData ptrSecCertificateCopyData;
|
|
||||||
- static PtrSecTrustSettingsCopyCertificates ptrSecTrustSettingsCopyCertificates;
|
|
||||||
- static PtrSecTrustCopyAnchorCertificates ptrSecTrustCopyAnchorCertificates;
|
|
||||||
-#elif defined(Q_OS_WIN) && !defined(Q_OS_WINRT)
|
|
||||||
+#if defined(Q_OS_WIN) && !defined(Q_OS_WINRT)
|
|
||||||
static PtrCertOpenSystemStoreW ptrCertOpenSystemStoreW;
|
|
||||||
static PtrCertFindCertificateInStore ptrCertFindCertificateInStore;
|
|
||||||
static PtrCertCloseStore ptrCertCloseStore;
|
|
||||||
@@ -1,276 +0,0 @@
|
|||||||
From 9d1120db0973ea7741b13a6555b20ae61f6d037e Mon Sep 17 00:00:00 2001
|
|
||||||
From: Daniel Molkentin <danimo@owncloud.com>
|
|
||||||
Date: Wed, 25 Nov 2015 12:37:27 +0100
|
|
||||||
Subject: [PATCH] QSslSocket: evaluate CAs in all keychain categories
|
|
||||||
|
|
||||||
This will make sure that certs in the domainUser (login),
|
|
||||||
and domainAdmin (per machine) keychain are being picked up
|
|
||||||
in systemCaCertificates() in addition to the (usually immutable)
|
|
||||||
DomainSystem keychain.
|
|
||||||
|
|
||||||
Also consider the trust settings on OS X: If a certificate
|
|
||||||
is either fully trusted or trusted for the purpose of SSL,
|
|
||||||
it will be accepted.
|
|
||||||
|
|
||||||
[ChangeLog][Platform Specific Changes] OS X now accepts trusted
|
|
||||||
certificates from the login and system keychains.
|
|
||||||
|
|
||||||
(Backport of fe3a84138e266c425f11353f7d8dc28a588af89e)
|
|
||||||
|
|
||||||
Task-number: QTBUG-32898
|
|
||||||
Change-Id: Ia23083d5af74388eeee31ba07239735cbbe64368
|
|
||||||
Reviewed-by: Markus Goetz (Woboq GmbH) <markus@woboq.com>
|
|
||||||
---
|
|
||||||
src/network/ssl/qsslsocket.cpp | 4 +
|
|
||||||
src/network/ssl/qsslsocket_mac_shared.cpp | 148 ++++++++++++++++++++++++++++++
|
|
||||||
src/network/ssl/qsslsocket_openssl.cpp | 30 +-----
|
|
||||||
src/network/ssl/ssl.pri | 4 +-
|
|
||||||
4 files changed, 158 insertions(+), 28 deletions(-)
|
|
||||||
create mode 100644 src/network/ssl/qsslsocket_mac_shared.cpp
|
|
||||||
|
|
||||||
diff --git a/src/network/ssl/qsslsocket.cpp b/src/network/ssl/qsslsocket.cpp
|
|
||||||
index 549906a..7b202b0 100644
|
|
||||||
--- a/src/network/ssl/qsslsocket.cpp
|
|
||||||
+++ b/src/network/ssl/qsslsocket.cpp
|
|
||||||
@@ -1508,6 +1508,10 @@ QList<QSslCertificate> QSslSocket::defaultCaCertificates()
|
|
||||||
returned by defaultCaCertificates(). You can replace that database
|
|
||||||
with your own with setDefaultCaCertificates().
|
|
||||||
|
|
||||||
+ \note: On OS X, only certificates that are either trusted for all
|
|
||||||
+ purposes or trusted for the purpose of SSL in the keychain will be
|
|
||||||
+ returned.
|
|
||||||
+
|
|
||||||
\sa caCertificates(), defaultCaCertificates(), setDefaultCaCertificates()
|
|
||||||
*/
|
|
||||||
QList<QSslCertificate> QSslSocket::systemCaCertificates()
|
|
||||||
diff --git a/src/network/ssl/qsslsocket_mac_shared.cpp b/src/network/ssl/qsslsocket_mac_shared.cpp
|
|
||||||
new file mode 100644
|
|
||||||
index 0000000..60fea4c
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/src/network/ssl/qsslsocket_mac_shared.cpp
|
|
||||||
@@ -0,0 +1,148 @@
|
|
||||||
+/****************************************************************************
|
|
||||||
+**
|
|
||||||
+** Copyright (C) 2015 The Qt Company Ltd.
|
|
||||||
+** Copyright (C) 2015 ownCloud Inc
|
|
||||||
+** Contact: http://www.qt.io/licensing/
|
|
||||||
+**
|
|
||||||
+** This file is part of the QtNetwork module of the Qt Toolkit.
|
|
||||||
+**
|
|
||||||
+** $QT_BEGIN_LICENSE:LGPL21$
|
|
||||||
+** Commercial License Usage
|
|
||||||
+** Licensees holding valid commercial Qt licenses may use this file in
|
|
||||||
+** accordance with the commercial license agreement provided with the
|
|
||||||
+** Software or, alternatively, in accordance with the terms contained in
|
|
||||||
+** a written agreement between you and The Qt Company. For licensing terms
|
|
||||||
+** and conditions see http://www.qt.io/terms-conditions. For further
|
|
||||||
+** information use the contact form at http://www.qt.io/contact-us.
|
|
||||||
+**
|
|
||||||
+** GNU Lesser General Public License Usage
|
|
||||||
+** Alternatively, this file may be used under the terms of the GNU Lesser
|
|
||||||
+** General Public License version 2.1 or version 3 as published by the Free
|
|
||||||
+** Software Foundation and appearing in the file LICENSE.LGPLv21 and
|
|
||||||
+** LICENSE.LGPLv3 included in the packaging of this file. Please review the
|
|
||||||
+** following information to ensure the GNU Lesser General Public License
|
|
||||||
+** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
|
|
||||||
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
|
||||||
+**
|
|
||||||
+** As a special exception, The Qt Company gives you certain additional
|
|
||||||
+** rights. These rights are described in The Qt Company LGPL Exception
|
|
||||||
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
|
||||||
+**
|
|
||||||
+** $QT_END_LICENSE$
|
|
||||||
+**
|
|
||||||
+****************************************************************************/
|
|
||||||
+
|
|
||||||
+//#define QSSLSOCKET_DEBUG
|
|
||||||
+//#define QT_DECRYPT_SSL_TRAFFIC
|
|
||||||
+
|
|
||||||
+#include "qsslsocket.h"
|
|
||||||
+
|
|
||||||
+#ifndef QT_NO_OPENSSL
|
|
||||||
+# include "qsslsocket_openssl_p.h"
|
|
||||||
+# include "qsslsocket_openssl_symbols_p.h"
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
+#include "qsslcertificate_p.h"
|
|
||||||
+
|
|
||||||
+#ifdef Q_OS_DARWIN
|
|
||||||
+# include <private/qcore_mac_p.h>
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
+#include <QtCore/qdebug.h>
|
|
||||||
+
|
|
||||||
+#ifdef Q_OS_OSX
|
|
||||||
+# include <Security/Security.h>
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+QT_BEGIN_NAMESPACE
|
|
||||||
+
|
|
||||||
+#ifdef Q_OS_OSX
|
|
||||||
+namespace {
|
|
||||||
+
|
|
||||||
+bool hasTrustedSslServerPolicy(SecPolicyRef policy, CFDictionaryRef props) {
|
|
||||||
+ QCFType<CFDictionaryRef> policyProps = SecPolicyCopyProperties(policy);
|
|
||||||
+ // only accept certificates with policies for SSL server validation for now
|
|
||||||
+ if (CFEqual(CFDictionaryGetValue(policyProps, kSecPolicyOid), kSecPolicyAppleSSL)) {
|
|
||||||
+ CFBooleanRef policyClient;
|
|
||||||
+ if (CFDictionaryGetValueIfPresent(policyProps, kSecPolicyClient, reinterpret_cast<const void**>(&policyClient)) &&
|
|
||||||
+ CFEqual(policyClient, kCFBooleanTrue)) {
|
|
||||||
+ return false; // no client certs
|
|
||||||
+ }
|
|
||||||
+ if (!CFDictionaryContainsKey(props, kSecTrustSettingsResult)) {
|
|
||||||
+ // as per the docs, no trust settings result implies full trust
|
|
||||||
+ return true;
|
|
||||||
+ }
|
|
||||||
+ CFNumberRef number = static_cast<CFNumberRef>(CFDictionaryGetValue(props, kSecTrustSettingsResult));
|
|
||||||
+ SecTrustSettingsResult settingsResult;
|
|
||||||
+ CFNumberGetValue(number, kCFNumberSInt32Type, &settingsResult);
|
|
||||||
+ switch (settingsResult) {
|
|
||||||
+ case kSecTrustSettingsResultTrustRoot:
|
|
||||||
+ case kSecTrustSettingsResultTrustAsRoot:
|
|
||||||
+ return true;
|
|
||||||
+ default:
|
|
||||||
+ return false;
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+ return false;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+bool isCaCertificateTrusted(SecCertificateRef cfCert, int domain)
|
|
||||||
+{
|
|
||||||
+ QCFType<CFArrayRef> cfTrustSettings;
|
|
||||||
+ OSStatus status = SecTrustSettingsCopyTrustSettings(cfCert, domain, &cfTrustSettings);
|
|
||||||
+ if (status == noErr) {
|
|
||||||
+ CFIndex size = CFArrayGetCount(cfTrustSettings);
|
|
||||||
+ // if empty, trust for everything (as per the Security Framework documentation)
|
|
||||||
+ if (size == 0) {
|
|
||||||
+ return true;
|
|
||||||
+ } else {
|
|
||||||
+ for (CFIndex i = 0; i < size; ++i) {
|
|
||||||
+ CFDictionaryRef props = static_cast<CFDictionaryRef>(CFArrayGetValueAtIndex(cfTrustSettings, i));
|
|
||||||
+ if (CFDictionaryContainsKey(props, kSecTrustSettingsPolicy)) {
|
|
||||||
+ if (hasTrustedSslServerPolicy((SecPolicyRef)CFDictionaryGetValue(props, kSecTrustSettingsPolicy), props))
|
|
||||||
+ return true;
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+ } else {
|
|
||||||
+ qWarning("Error receiving trust for a CA certificate");
|
|
||||||
+ }
|
|
||||||
+ return false;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+} // anon namespace
|
|
||||||
+#endif // Q_OS_OSX
|
|
||||||
+
|
|
||||||
+QList<QSslCertificate> QSslSocketPrivate::systemCaCertificates()
|
|
||||||
+{
|
|
||||||
+ ensureInitialized();
|
|
||||||
+
|
|
||||||
+ QList<QSslCertificate> systemCerts;
|
|
||||||
+ // SecTrustSettingsCopyCertificates is not defined on iOS.
|
|
||||||
+#ifdef Q_OS_OSX
|
|
||||||
+ QCFType<CFArrayRef> cfCerts;
|
|
||||||
+ // iterate through all enum members, order:
|
|
||||||
+ // kSecTrustSettingsDomainUser, kSecTrustSettingsDomainAdmin, kSecTrustSettingsDomainSystem
|
|
||||||
+ for (int dom = kSecTrustSettingsDomainUser; dom <= kSecTrustSettingsDomainSystem; dom++) {
|
|
||||||
+ OSStatus status = SecTrustSettingsCopyCertificates(dom, &cfCerts);
|
|
||||||
+ if (status == noErr) {
|
|
||||||
+ const CFIndex size = CFArrayGetCount(cfCerts);
|
|
||||||
+ for (CFIndex i = 0; i < size; ++i) {
|
|
||||||
+ SecCertificateRef cfCert = (SecCertificateRef)CFArrayGetValueAtIndex(cfCerts, i);
|
|
||||||
+ QCFType<CFDataRef> derData = SecCertificateCopyData(cfCert);
|
|
||||||
+ if (::isCaCertificateTrusted(cfCert, dom)) {
|
|
||||||
+ if (derData == NULL) {
|
|
||||||
+ qWarning("Error retrieving a CA certificate from the system store");
|
|
||||||
+ } else {
|
|
||||||
+ systemCerts << QSslCertificate(QByteArray::fromCFData(derData), QSsl::Der);
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+#endif
|
|
||||||
+ return systemCerts;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+QT_END_NAMESPACE
|
|
||||||
diff --git a/src/network/ssl/qsslsocket_openssl.cpp b/src/network/ssl/qsslsocket_openssl.cpp
|
|
||||||
index 415f147..7a3cb42 100644
|
|
||||||
--- a/src/network/ssl/qsslsocket_openssl.cpp
|
|
||||||
+++ b/src/network/ssl/qsslsocket_openssl.cpp
|
|
||||||
@@ -76,14 +76,6 @@
|
|
||||||
|
|
||||||
#include <string.h>
|
|
||||||
|
|
||||||
-#ifdef Q_OS_DARWIN
|
|
||||||
-# include <private/qcore_mac_p.h>
|
|
||||||
-#endif
|
|
||||||
-
|
|
||||||
-#ifdef Q_OS_OSX
|
|
||||||
-# include <Security/Security.h>
|
|
||||||
-#endif
|
|
||||||
-
|
|
||||||
QT_BEGIN_NAMESPACE
|
|
||||||
|
|
||||||
#if defined(Q_OS_WIN)
|
|
||||||
@@ -672,6 +664,7 @@ void QSslSocketPrivate::resetDefaultEllipticCurves()
|
|
||||||
setDefaultSupportedEllipticCurves(curves);
|
|
||||||
}
|
|
||||||
|
|
||||||
+#ifndef Q_OS_DARWIN // Apple implementation in qsslsocket_mac_shared.cpp
|
|
||||||
QList<QSslCertificate> QSslSocketPrivate::systemCaCertificates()
|
|
||||||
{
|
|
||||||
ensureInitialized();
|
|
||||||
@@ -680,25 +673,7 @@ QList<QSslCertificate> QSslSocketPrivate::systemCaCertificates()
|
|
||||||
timer.start();
|
|
||||||
#endif
|
|
||||||
QList<QSslCertificate> systemCerts;
|
|
||||||
- // note: also check implementation in openssl_mac.cpp
|
|
||||||
-#if defined(Q_OS_OSX)
|
|
||||||
- // SecTrustSettingsCopyCertificates is not defined on iOS.
|
|
||||||
- QCFType<CFArrayRef> cfCerts;
|
|
||||||
-
|
|
||||||
- OSStatus status = SecTrustSettingsCopyCertificates(kSecTrustSettingsDomainSystem, &cfCerts);
|
|
||||||
- if (status == noErr ) {
|
|
||||||
- const CFIndex size = CFArrayGetCount(cfCerts);
|
|
||||||
- for (CFIndex i = 0; i < size; ++i) {
|
|
||||||
- SecCertificateRef cfCert = (SecCertificateRef)CFArrayGetValueAtIndex(cfCerts, i);
|
|
||||||
- QCFType<CFDataRef> derData = SecCertificateCopyData(cfCert);
|
|
||||||
- if (derData == NULL) {
|
|
||||||
- qWarning("error retrieving a CA certificate from the system store");
|
|
||||||
- } else {
|
|
||||||
- systemCerts << QSslCertificate(QByteArray::fromCFData(derData), QSsl::Der);
|
|
||||||
- }
|
|
||||||
- }
|
|
||||||
- }
|
|
||||||
-#elif defined(Q_OS_WIN)
|
|
||||||
+#if defined(Q_OS_WIN)
|
|
||||||
if (ptrCertOpenSystemStoreW && ptrCertFindCertificateInStore && ptrCertCloseStore) {
|
|
||||||
HCERTSTORE hSystemStore;
|
|
||||||
#if defined(Q_OS_WINCE)
|
|
||||||
@@ -775,6 +750,7 @@ QList<QSslCertificate> QSslSocketPrivate::systemCaCertificates()
|
|
||||||
|
|
||||||
return systemCerts;
|
|
||||||
}
|
|
||||||
+#endif // Q_OS_DARWIN
|
|
||||||
|
|
||||||
void QSslSocketBackendPrivate::startClientEncryption()
|
|
||||||
{
|
|
||||||
diff --git a/src/network/ssl/ssl.pri b/src/network/ssl/ssl.pri
|
|
||||||
index 29c47cd..8eb605b 100644
|
|
||||||
--- a/src/network/ssl/ssl.pri
|
|
||||||
+++ b/src/network/ssl/ssl.pri
|
|
||||||
@@ -62,7 +62,9 @@ contains(QT_CONFIG, openssl) | contains(QT_CONFIG, openssl-linked) {
|
|
||||||
ssl/qsslsocket_openssl.cpp \
|
|
||||||
ssl/qsslsocket_openssl_symbols.cpp
|
|
||||||
|
|
||||||
-android:!android-no-sdk: SOURCES += ssl/qsslsocket_openssl_android.cpp
|
|
||||||
+ darwin:SOURCES += ssl/qsslsocket_mac_shared.cpp
|
|
||||||
+
|
|
||||||
+ android:!android-no-sdk: SOURCES += ssl/qsslsocket_openssl_android.cpp
|
|
||||||
|
|
||||||
# Add optional SSL libs
|
|
||||||
# Static linking of OpenSSL with msvc:
|
|
||||||
@@ -9,6 +9,11 @@ import os
|
|||||||
import polib
|
import polib
|
||||||
from optparse import OptionParser
|
from optparse import OptionParser
|
||||||
|
|
||||||
|
try:
|
||||||
|
unicode
|
||||||
|
except NameError:
|
||||||
|
unicode = str
|
||||||
|
|
||||||
parser = OptionParser()
|
parser = OptionParser()
|
||||||
parser.add_option("-o", "--output", dest="output",
|
parser.add_option("-o", "--output", dest="output",
|
||||||
help="Directory for localized output", default="../Shared/installer/nightly_localized.nsi")
|
help="Directory for localized output", default="../Shared/installer/nightly_localized.nsi")
|
||||||
|
|||||||
1
binary
43
client.qrc
@@ -1,43 +0,0 @@
|
|||||||
<RCC>
|
|
||||||
<qresource prefix="/client">
|
|
||||||
<file>resources/settings.png</file>
|
|
||||||
<file>resources/settings@2x.png</file>
|
|
||||||
<file>resources/activity.svg</file>
|
|
||||||
<file>resources/activity.png</file>
|
|
||||||
<file>resources/activity@2x.png</file>
|
|
||||||
<file>resources/network.png</file>
|
|
||||||
<file>resources/network@2x.png</file>
|
|
||||||
<file>resources/lock-http.png</file>
|
|
||||||
<file>resources/lock-http@2x.png</file>
|
|
||||||
<file>resources/lock-https.png</file>
|
|
||||||
<file>resources/lock-https@2x.png</file>
|
|
||||||
<file>resources/account.png</file>
|
|
||||||
<file>resources/account.svg</file>
|
|
||||||
<file>resources/more.svg</file>
|
|
||||||
<file>resources/delete.png</file>
|
|
||||||
<file>resources/close.svg</file>
|
|
||||||
<file>resources/bell.svg</file>
|
|
||||||
<file>resources/link.svg</file>
|
|
||||||
<file>resources/files.svg</file>
|
|
||||||
<file>resources/state-error.svg</file>
|
|
||||||
<file>resources/state-warning.svg</file>
|
|
||||||
<file>resources/folder.svg</file>
|
|
||||||
<file>resources/network.svg</file>
|
|
||||||
<file>resources/settings.svg</file>
|
|
||||||
<file>resources/public-white.svg</file>
|
|
||||||
<file>resources/public.svg</file>
|
|
||||||
<file>resources/confirm.svg</file>
|
|
||||||
<file>resources/copy.svg</file>
|
|
||||||
<file>resources/state-sync.svg</file>
|
|
||||||
<file>resources/add.png</file>
|
|
||||||
<file>resources/add-color.svg</file>
|
|
||||||
<file>resources/state-info.svg</file>
|
|
||||||
<file>resources/change.svg</file>
|
|
||||||
<file>resources/delete-color.svg</file>
|
|
||||||
</qresource>
|
|
||||||
<qresource prefix="/"/>
|
|
||||||
<qresource prefix="/qml">
|
|
||||||
<file>src/gui/tray/Window.qml</file>
|
|
||||||
<file>src/gui/tray/UserLine.qml</file>
|
|
||||||
</qresource>
|
|
||||||
</RCC>
|
|
||||||
@@ -10,7 +10,7 @@ set(CMAKE_INCLUDE_CURRENT_DIR ON)
|
|||||||
|
|
||||||
# Put the include dirs which are in the source or build tree
|
# Put the include dirs which are in the source or build tree
|
||||||
# before all other include dirs, so the headers in the sources
|
# before all other include dirs, so the headers in the sources
|
||||||
# are prefered over the already installed ones
|
# are preferred over the already installed ones
|
||||||
# since cmake 2.4.1
|
# since cmake 2.4.1
|
||||||
set(CMAKE_INCLUDE_DIRECTORIES_PROJECT_BEFORE ON)
|
set(CMAKE_INCLUDE_DIRECTORIES_PROJECT_BEFORE ON)
|
||||||
|
|
||||||
|
|||||||
@@ -30,6 +30,8 @@
|
|||||||
<string>(C) 2014-2020 @APPLICATION_VENDOR@</string>
|
<string>(C) 2014-2020 @APPLICATION_VENDOR@</string>
|
||||||
<key>NSSupportsAutomaticGraphicsSwitching</key>
|
<key>NSSupportsAutomaticGraphicsSwitching</key>
|
||||||
<true/>
|
<true/>
|
||||||
|
<key>NSRequiresAquaSystemAppearance</key>
|
||||||
|
<false/>
|
||||||
<key>SUShowReleaseNotes</key>
|
<key>SUShowReleaseNotes</key>
|
||||||
<false/>
|
<false/>
|
||||||
<key>SUPublicDSAKeyFile</key>
|
<key>SUPublicDSAKeyFile</key>
|
||||||
|
|||||||
@@ -1,17 +1,37 @@
|
|||||||
|
|
||||||
# Enable address sanitizer (gcc/clang only)
|
# Enable address sanitizer (gcc/clang only)
|
||||||
macro(ENABLE_SANITIZER)
|
if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang")
|
||||||
|
set(SANITIZERS)
|
||||||
|
set(SANITIZER_EXTRA_FLAGS " -g")
|
||||||
|
|
||||||
if (NOT CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang")
|
macro(add_sanitizer_option variable flag help)
|
||||||
message(FATAL_ERROR "Sanitizer supported only for gcc/clang")
|
option(${variable} "Enable ${help}" OFF)
|
||||||
|
if(${variable})
|
||||||
|
list(APPEND SANITIZERS ${flag})
|
||||||
|
string(REPLACE ";" " " optional_args "${ARGN}")
|
||||||
|
if(optional_args)
|
||||||
|
string(APPEND SANITIZER_EXTRA_FLAGS " ${optional_args}")
|
||||||
endif()
|
endif()
|
||||||
|
endif()
|
||||||
|
mark_as_advanced(${variable})
|
||||||
|
endmacro()
|
||||||
|
|
||||||
set(SANITIZER_FLAGS "-fsanitize=address -fsanitize=leak -g")
|
add_sanitizer_option(SANITIZE_ADDRESS "address"
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${SANITIZER_FLAGS}")
|
"AddressSanitizer (detects memory violations, buffer overflows, memory leaks)")
|
||||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${SANITIZER_FLAGS}")
|
add_sanitizer_option(SANITIZE_LEAK "leak"
|
||||||
|
"standalone LeakSanitizer (detects memory leaks only)")
|
||||||
set(LINKER_FLAGS "-fsanitize=address,undefined -fuse-ld=gold")
|
add_sanitizer_option(SANITIZE_MEMORY "memory"
|
||||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${LINKER_FLAGS}")
|
"MemorySanitizer (detects reads in uninitialized memory)")
|
||||||
|
add_sanitizer_option(SANITIZE_UNDEFINED "undefined"
|
||||||
endmacro()
|
"UndefinedBehaviorSanitizer (detects undefined behavior)"
|
||||||
|
"-fno-sanitize=vptr")
|
||||||
|
add_sanitizer_option(SANITIZE_THREAD "thread"
|
||||||
|
"ThreadSanitizer (detects data races)")
|
||||||
|
|
||||||
|
if(SANITIZERS)
|
||||||
|
string(REPLACE ";" "," SANITIZER_FLAGS "${SANITIZERS}")
|
||||||
|
set(SANITIZER_FLAGS "-fsanitize=${SANITIZER_FLAGS}${SANITIZER_EXTRA_FLAGS}")
|
||||||
|
string(APPEND CMAKE_CXX_FLAGS " ${SANITIZER_FLAGS}")
|
||||||
|
string(APPEND CMAKE_C_FLAGS " ${SANITIZER_FLAGS}")
|
||||||
|
string(APPEND CMAKE_EXE_LINKER_FLAGS " ${SANITIZER_FLAGS}")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|||||||
@@ -87,7 +87,7 @@ To prevent automatic updates and disallow manual overrides:
|
|||||||
|
|
||||||
1. Edit this Registry key:
|
1. Edit this Registry key:
|
||||||
|
|
||||||
``HKEY_LOCAL_MACHINE\Software\Policies\Nextcloud\Nextcloud``
|
``HKEY_LOCAL_MACHINE\Software\Policies\Nextcloud GmbH\Nextcloud``
|
||||||
|
|
||||||
2. Add the key ``skipUpdateCheck`` (of type DWORD).
|
2. Add the key ``skipUpdateCheck`` (of type DWORD).
|
||||||
|
|
||||||
|
|||||||
@@ -36,8 +36,7 @@ System Requirements
|
|||||||
- openSUSE Leap 42.2 & 42.3
|
- openSUSE Leap 42.2 & 42.3
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
For Linux distributions, we support, if technically feasible, the latest 2 versions per platform and the previous `LTS`_.
|
For Linux distributions, we support, if technically feasible, the latest 2 versions per platform and the previous LTS.
|
||||||
>>>>>>> b2da03441... update supported linux platforms
|
|
||||||
|
|
||||||
Installation Wizard
|
Installation Wizard
|
||||||
-------------------
|
-------------------
|
||||||
|
|||||||
@@ -8,6 +8,34 @@ repositories to the same state. Contrary to the GUI-based client,
|
|||||||
``nextcloudcmd`` does not repeat synchronizations on its own. It also does not
|
``nextcloudcmd`` does not repeat synchronizations on its own. It also does not
|
||||||
monitor for file system changes.
|
monitor for file system changes.
|
||||||
|
|
||||||
|
|
||||||
|
Install ``nextcloudcmd``
|
||||||
|
~~~~~~~~~~~~
|
||||||
|
|
||||||
|
CentOS
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
$ sudo yum -y install epel-release
|
||||||
|
$ sudo yum -y install nextcloud-client
|
||||||
|
|
||||||
|
Ubuntu/Debian
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
$ sudo add-apt-repository ppa:nextcloud-devs/client
|
||||||
|
$ sudo apt update
|
||||||
|
$ sudo apt install nextcloud-client
|
||||||
|
|
||||||
|
|
||||||
|
Refer to the link
|
||||||
|
|
||||||
|
- https://nextcloud.com/install/#install-clients
|
||||||
|
- https://launchpad.net/~nextcloud-devs/+archive/ubuntu/client
|
||||||
|
- https://pkgs.alpinelinux.org/packages?name=nextcloud-client
|
||||||
|
- https://help.nextcloud.com/t/linux-packages-status/10216
|
||||||
|
|
||||||
|
|
||||||
To invoke ``nextcloudcmd``, you must provide the local and the remote repository
|
To invoke ``nextcloudcmd``, you must provide the local and the remote repository
|
||||||
URL using the following command::
|
URL using the following command::
|
||||||
|
|
||||||
@@ -84,3 +112,13 @@ Exclude List
|
|||||||
installed along with ``nextcloudcmd`` and thus be available in a system location,
|
installed along with ``nextcloudcmd`` and thus be available in a system location,
|
||||||
be placed next to the binary as ``sync-exclude.lst`` or be explicitly specified
|
be placed next to the binary as ``sync-exclude.lst`` or be explicitly specified
|
||||||
with the ``--exclude`` switch.
|
with the ``--exclude`` switch.
|
||||||
|
|
||||||
|
Example
|
||||||
|
~~~~~~~~~~~~
|
||||||
|
|
||||||
|
- Synchronize a local directory to the specified directory of the nextcloud server
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
$ nextcloudcmd /home/user/<my_sync_folder> \
|
||||||
|
https://<username>:<secret>@<server_address>/remote.php/webdav/<Directory_that_has_been_created>
|
||||||
|
|||||||
9
resources.qrc
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
<RCC>
|
||||||
|
<qresource prefix="/qml">
|
||||||
|
<file>src/gui/tray/Window.qml</file>
|
||||||
|
<file>src/gui/tray/UserLine.qml</file>
|
||||||
|
<file>src/gui/tray/HeaderButton.qml</file>
|
||||||
|
<file>theme/Style/Style.qml</file>
|
||||||
|
<file>theme/Style/qmldir</file>
|
||||||
|
</qresource>
|
||||||
|
</RCC>
|
||||||
|
Before Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 2.7 KiB |
|
Before Width: | Height: | Size: 1.1 KiB |
@@ -1,10 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
||||||
<svg xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" height="64" width="64" version="1.0" xmlns:cc="http://creativecommons.org/ns#" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/">
|
|
||||||
<defs>
|
|
||||||
<linearGradient id="a" y2="62.102" gradientUnits="userSpaceOnUse" x2="32" y1="2.1695" x1="32">
|
|
||||||
<stop offset="0"/>
|
|
||||||
<stop stop-color="#363636" offset="1"/>
|
|
||||||
</linearGradient>
|
|
||||||
</defs>
|
|
||||||
<path opacity=".7" d="m32 2-20 36h22l-2 24 20-36h-22z" fill="url(#a)"/>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 597 B |
|
Before Width: | Height: | Size: 1.9 KiB |
|
Before Width: | Height: | Size: 16 KiB |
@@ -1,4 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" height="16" width="16" version="1.1" viewBox="0 0 16 16">
|
|
||||||
<path d="m8 2c-0.5523 0-1 0.4477-1 1 0 0.0472 0.021 0.0873 0.0273 0.1328-1.7366 0.4362-3.0273 1.9953-3.0273 3.8672v2l-1 1v1h10v-1l-1-1v-2c0-1.8719-1.291-3.431-3.0273-3.8672 0.0063-0.0455 0.0273-0.0856 0.0273-0.1328 0-0.5523-0.4477-1-1-1zm-2 10c0 1.1046 0.8954 2 2 2s2-0.8954 2-2z" fill="#000"/>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 456 B |
@@ -1,4 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" height="16" width="16" version="1.1">
|
|
||||||
<path d="m12.95 11.536l-1.414 1.414-3.536-3.536-3.535 3.536-1.415-1.414 3.536-3.536-3.536-3.536 1.415-1.414 3.535 3.536 3.516-3.555 1.434 1.434-3.536 3.535z"/>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 301 B |
|
Before Width: | Height: | Size: 243 B |
@@ -1 +0,0 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewbox="0 0 16 16"><path d="M7.4 0C3.3 0 0 3.3 0 7.4s3.3 7.4 7.4 7.4 7.4-3.3 7.4-7.4S11.5 0 7.4 0zm.8.9c1.3 0 2.4.8 3.5 1.3l1.8 2.5-.3 1.1.6.3V8.5c-.2.7-.6 1.3-.9 2-.2.1 0-.8-.1-1 0-.6-.5-.6-.9-.2-.4.3-1.4.3-1.5-.4-.3-.8 0-1.7.3-2.5l-.6-.7.2-1.8-.8-.9.2-1-1-.6c-.2-.2-.6-.2-.7-.4.1 0 .2-.1.2-.1zM5.6 1s.1 0 .1.1c.4.2-.1.4-.2.6-.5.3.3.7.5 1 .4-.1.8-.7 1.4-.5.7-.2.6.6 1.1 1 .1.2.9.8.4.6-.5-.4-1-.4-1.3.1-.8.5-.3-.9-.7-1.2-.6-.7-.4.5-.4.9-.4 0-1.1-.3-1.5.2l.4.6.5-.7c0-.3.1.2.3.3.1.2.8.7.3.9-.8.4-1.4 1.1-2.1 1.7-.2.5-.7.4-1 0-.7-.4-.7.7-.6 1.1l.6-.4v1.1c-.4.4-.9-.7-1.3-.9V5.9c0-.4-.1-.9 0-1.3.8-.9 1.7-1.9 2.2-3h.8c.6.2.3-.7.5-.6zM4.4 9.2c.1 0 .2 0 .3.1.8.1 1.4.7 2 1.1.5.5 1.6.3 1.7 1.2-.2.9-1.1 1.4-1.8 1.7-.2.1-.4.2-.6.2-.7.2-1-.6-1.2-1.1-.3-.7-1.1-1.2-1-2.1 0-.4.2-1 .6-1.1z"/></svg>
|
|
||||||
|
Before Width: | Height: | Size: 851 B |
|
Before Width: | Height: | Size: 479 B |
@@ -1,5 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
||||||
<svg xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" height="64" width="64" version="1.1" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/">
|
|
||||||
<path fill="#909090" d="m32 6c-8.284 0-15 6.716-15 15v10h-5v28h40v-28h-5v-10c0-8.284-6.716-15-15-15zm0 6c4.9706 0 9 4.0294 9 9v10h-18v-10c0-4.9706 4.0294-9 9-9z"/>
|
|
||||||
<path d="m26 45h36l-18-30z" fill="#dfae19"/>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 493 B |
|
Before Width: | Height: | Size: 583 B |
|
Before Width: | Height: | Size: 291 B |
@@ -1,4 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
||||||
<svg xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" height="64" width="64" version="1.1" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/">
|
|
||||||
<path fill="#60a149" d="m32 6c-8.284 0-15 6.716-15 15v10h-5v28h40v-28h-5v-10c0-8.284-6.716-15-15-15zm0 6c4.9706 0 9 4.0294 9 9v10h-18v-10c0-4.9706 4.0294-9 9-9z"/>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 447 B |
|
Before Width: | Height: | Size: 375 B |
@@ -1,5 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
||||||
<svg xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" height="16" width="16" version="1.0" xmlns:cc="http://creativecommons.org/ns#" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/">
|
|
||||||
<rect style="color:#000000" fill-opacity="0" height="97.986" width="163.31" y="-32.993" x="-62.897"/>
|
|
||||||
<path d="m3 6c-1.1046 0-2 0.8954-2 2s0.8954 2 2 2 2-0.8954 2-2-0.8954-2-2-2zm5 0c-1.1046 0-2 0.8954-2 2s0.8954 2 2 2 2-0.8954 2-2-0.8954-2-2-2zm5 0c-1.105 0-2 0.8954-2 2s0.895 2 2 2 2-0.8954 2-2-0.895-2-2-2z" fill-rule="evenodd"/>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 660 B |
|
Before Width: | Height: | Size: 879 B |
|
Before Width: | Height: | Size: 2.5 KiB |
@@ -1 +0,0 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 16 16" height="16" width="16"><path fill="#fff" d="m9.2363 2.166-3.1816 3.1836c-0.7071 0.7072-1.0378 1.6182-0.9883 2.457 0.05 0.8389 0.4333 1.5841 0.9883 2.1387l1.4121-1.416c-0.5672-0.5672-0.5444-1.2192 0.002-1.7656l3.1812-3.1817c0.52536-0.52536 1.2507-0.52318 1.772-0.002 0.48245 0.5556 0.52732 1.2382-0.004 1.7695l-0.82 0.8203c0.555 0.785 0.645 1.3663 0.593 2.2344l1.641-1.6406c1.2374-1.2374 1.2371-3.3645 0-4.6016-1.236-1.2361-3.342-1.2113-4.5957 0.004zm0.7071 3.8848-1.4141 1.418c0 0 0.003-00 0.004 0 0.55 0.55 0.50736 1.2582-0.004 1.7695l-3.1816 3.1817c-0.696 0.59192-1.2985 0.47105-1.7696 0-0.62636-0.62636-0.5-1.2681 0-1.768l0.85-0.8473c-0.556-0.7835-0.6484-1.365-0.5976-2.2324l-1.666 1.666c-1.2393 1.2393-1.2357 3.36 0 4.5957 1.2353 1.2353 3.362 1.2356 4.5976 0l3.1817-3.182c0.7086-0.7083 1.0396-1.6184 0.9906-2.4586-0.048-0.8401-0.432-1.5864-0.9887-2.1407z"/></svg>
|
|
||||||
|
Before Width: | Height: | Size: 942 B |
|
Before Width: | Height: | Size: 1.9 KiB |
|
Before Width: | Height: | Size: 3.6 KiB |
@@ -1 +0,0 @@
|
|||||||
<svg width="16" height="16" version="1.1" viewBox="0 0 4.2333 4.2333" xmlns="http://www.w3.org/2000/svg"><g transform="matrix(.87498 0 0 .87498 .26458 -255.9)"><circle cx="2.1167" cy="294.88" r="2.1167" fill="#d40000" stroke-width=".25066"/><path d="m1.1839 293.95 1.8656 1.8656" fill="none" stroke="#fff" stroke-linecap="round" stroke-linejoin="round" stroke-width=".52917"/><path d="m3.0495 293.95-1.8656 1.8656" fill="none" stroke="#fff" stroke-linecap="round" stroke-linejoin="round" stroke-width=".52917"/></g></svg>
|
|
||||||
|
Before Width: | Height: | Size: 522 B |
@@ -1 +0,0 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 4.2333 4.2333" version="1.1" height="16" width="16"><g id="g3830" transform="matrix(.87498 0 0 .87498 .26458 -255.9)"><circle id="circle3818" stroke-width=".25066" fill="#2268ab" r="2.1167" cy="294.88" cx="2.1167" /><g id="g3828" stroke-linejoin="round" stroke-linecap="round" fill="none" /></g><path style="fill:#ffffff;stroke-width:0.17859235" d="m 1.6076619,2.1122981 c 0.027682,0.068222 0.058043,0.1232286 0.115014,0.043934 0.072686,-0.047862 0.314322,-0.2548509 0.29682,-0.061078 C 1.953774,2.4553739 1.8705497,2.8125586 1.8105428,3.1738508 1.7403561,3.3728027 1.9237704,3.5430012 2.1028984,3.4078068 2.295421,3.3181535 2.4582973,3.1779584 2.6256382,3.0488362 2.599921,2.9911507 2.5809903,2.9077482 2.5191973,2.9868644 2.4356161,3.0297263 2.2566665,3.2222491 2.2163047,3.07116 2.2725613,2.681829 2.3904322,2.3041062 2.4600833,1.9170966 2.5309844,1.7376113 2.3950755,1.5200858 2.210054,1.6736753 1.985742,1.7836882 1.8010774,1.9562083 1.6076619,2.1122981 Z M 2.4041839,0.77839186 C 2.1702279,0.77446305 2.0636081,1.1609366 2.2889917,1.2561264 2.4716917,1.3236342 2.659928,1.1286114 2.6086721,0.94358974 2.5911701,0.8467927 2.5018738,0.77035521 2.4038266,0.77749894 Z" /></svg>
|
|
||||||
|
Before Width: | Height: | Size: 1.2 KiB |