Compare commits
188 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1d745535f7 | ||
|
|
3184aeed43 | ||
|
|
3faf010b55 | ||
|
|
163c80e203 | ||
|
|
73462e97aa | ||
|
|
6f4144a464 | ||
|
|
9820464545 | ||
|
|
3ecd7823f9 | ||
|
|
9b504eaddd | ||
|
|
838ca6cba0 | ||
|
|
7e5e40d5c4 | ||
|
|
abd8d1fda1 | ||
|
|
0a3491f332 | ||
|
|
15d9ca2b00 | ||
|
|
7682749415 | ||
|
|
a18fc5b5c9 | ||
|
|
96783a9b80 | ||
|
|
258c2cee2e | ||
|
|
65ff3c0de1 | ||
|
|
6879c9f1c9 | ||
|
|
fade8465e4 | ||
|
|
76b5c6b6d4 | ||
|
|
bdd0cc4dc3 | ||
|
|
876b1e239e | ||
|
|
da2007c7f6 | ||
|
|
7a33cb97cd | ||
|
|
7a18a58fae | ||
|
|
fcc9d02bcc | ||
|
|
98238669fe | ||
|
|
a80de38517 | ||
|
|
4cb75d91f9 | ||
|
|
55e4dceeb7 | ||
|
|
0006b35abf | ||
|
|
b153391cbf | ||
|
|
c0659a3124 | ||
|
|
de8a7aa680 | ||
|
|
03b11693a3 | ||
|
|
23f2d79f70 | ||
|
|
f6db365391 | ||
|
|
95f74ceb1f | ||
|
|
91be4961d7 | ||
|
|
b3eb16bfd3 | ||
|
|
52d91ce198 | ||
|
|
c49efcc137 | ||
|
|
c14556153f | ||
|
|
5e1a2a423f | ||
|
|
3ac1ba079a | ||
|
|
b7a9cd1d45 | ||
|
|
c7b0ce036d | ||
|
|
f5afa07b0a | ||
|
|
1b550b976f | ||
|
|
68f0b9e0aa | ||
|
|
8945ef2652 | ||
|
|
0cc74d21a2 | ||
|
|
f4c79c8f68 | ||
|
|
b6ef8edb12 | ||
|
|
06ffd3e841 | ||
|
|
a3596b80e9 | ||
|
|
8ac1d92161 | ||
|
|
d55f1d5c06 | ||
|
|
854c637c73 | ||
|
|
92ad0c4a43 | ||
|
|
fb8facb787 | ||
|
|
30832cc427 | ||
|
|
ab7f29c0b2 | ||
|
|
6500442217 | ||
|
|
0e6a9fd0c1 | ||
|
|
ed7c489722 | ||
|
|
d4b9b5129a | ||
|
|
4a79e24db2 | ||
|
|
215d185fbe | ||
|
|
6f273bf7dd | ||
|
|
f2bc25c9ca | ||
|
|
ca6de6128f | ||
|
|
a1e5e6ca40 | ||
|
|
cf8bb1c5bc | ||
|
|
ebe1cef357 | ||
|
|
922d14f016 | ||
|
|
7a0c6a2f8f | ||
|
|
f35a2c0b2c | ||
|
|
c6b22089e3 | ||
|
|
cf0082f92f | ||
|
|
f4e129d4e2 | ||
|
|
ec6eaf2121 | ||
|
|
1dc1f91620 | ||
|
|
5adbc01ef1 | ||
|
|
c4a04bfd05 | ||
|
|
03711429f4 | ||
|
|
e3cb040c3c | ||
|
|
83a21179fa | ||
|
|
829da85aa5 | ||
|
|
3b1ac89312 | ||
|
|
57df29e7c9 | ||
|
|
d774067004 | ||
|
|
728154386c | ||
|
|
bc31182c63 | ||
|
|
a6bb84080a | ||
|
|
576ba7c011 | ||
|
|
b6893aad16 | ||
|
|
59d1624ce5 | ||
|
|
a0faf1f54d | ||
|
|
caa7c845c2 | ||
|
|
e43a80d0be | ||
|
|
f060a92563 | ||
|
|
483696261d | ||
|
|
610e35ec64 | ||
|
|
5fa5526ea2 | ||
|
|
42d9d99a92 | ||
|
|
c3ff9ca917 | ||
|
|
875f123d5b | ||
|
|
a5f053afe4 | ||
|
|
63a6992f97 | ||
|
|
54740378f0 | ||
|
|
1dc443bc06 | ||
|
|
e541109d7c | ||
|
|
993f124120 | ||
|
|
0a373ea708 | ||
|
|
0fae01495e | ||
|
|
97867384b1 | ||
|
|
c54f6e83ed | ||
|
|
a9a731dfc0 | ||
|
|
d0f469bd90 | ||
|
|
374375ce3f | ||
|
|
89ef03412e | ||
|
|
07d3fe3a79 | ||
|
|
24107040cc | ||
|
|
9d9fc6d0bf | ||
|
|
51f5991f1e | ||
|
|
a8b93516cc | ||
|
|
a85c228e59 | ||
|
|
04a75eaca2 | ||
|
|
2f46601396 | ||
|
|
18fc6a9e0e | ||
|
|
34675e03a8 | ||
|
|
4b5cf94a29 | ||
|
|
1729e1a94c | ||
|
|
60859714ae | ||
|
|
b5fcfd918b | ||
|
|
44176be964 | ||
|
|
3935866052 | ||
|
|
1e9c45222c | ||
|
|
adc3b1a25c | ||
|
|
9ae0417cad | ||
|
|
03453d6800 | ||
|
|
1ac9c4ea8d | ||
|
|
986bb49a88 | ||
|
|
8f39c4140e | ||
|
|
9c7903868f | ||
|
|
8ee1adf058 | ||
|
|
27fb1fcd53 | ||
|
|
29cc5c1e7f | ||
|
|
29bb76019f | ||
|
|
bf6d57f327 | ||
|
|
eb5ec05ef8 | ||
|
|
c723028eae | ||
|
|
5d024fdf33 | ||
|
|
ed99cb297b | ||
|
|
a0e794a7f1 | ||
|
|
0761342840 | ||
|
|
4da9123b67 | ||
|
|
c7158e2c7c | ||
|
|
4adc45483a | ||
|
|
ae0ff6b3e3 | ||
|
|
dc6d2e6a6d | ||
|
|
5127f50d1e | ||
|
|
a26f2a7359 | ||
|
|
42f1f445a9 | ||
|
|
51304485c3 | ||
|
|
63cc6edddd | ||
|
|
58abebe9ac | ||
|
|
1182ae9e26 | ||
|
|
3407174c2f | ||
|
|
913894eaa5 | ||
|
|
db91552578 | ||
|
|
286e45bafe | ||
|
|
aa1bb470e6 | ||
|
|
3be9adde4b | ||
|
|
41d97abd08 | ||
|
|
6bc232c9b4 | ||
|
|
d4a0be92ae | ||
|
|
75bf41fba1 | ||
|
|
a2bfd5039c | ||
|
|
a9ee7472b9 | ||
|
|
211d6cb162 | ||
|
|
501c353291 | ||
|
|
aeba2e4de6 | ||
|
|
2f9f84c1f2 | ||
|
|
33646b1775 |
22
.clang-tidy
@@ -1,22 +0,0 @@
|
||||
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
|
||||
272
.drone.yml
@@ -1,15 +1,249 @@
|
||||
kind: pipeline
|
||||
name: qt-5.12
|
||||
name: qt-5.7
|
||||
|
||||
steps:
|
||||
- name: build and test
|
||||
image: nextcloudci/client-5.12:client-5.12-9
|
||||
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 ../ &&
|
||||
make &&
|
||||
useradd -m -s /bin/bash test &&
|
||||
chown -R test:test . &&
|
||||
su -c '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 ../ &&
|
||||
make &&
|
||||
useradd -m -s /bin/bash test &&
|
||||
chown -R test:test . &&
|
||||
su -c '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 ../ &&
|
||||
make &&
|
||||
useradd -m -s /bin/bash test &&
|
||||
chown -R test:test . &&
|
||||
su -c '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 &&
|
||||
export QT_BASE_DIR=/opt/qt5.12.9 &&
|
||||
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 ../ &&
|
||||
make &&
|
||||
useradd -m -s /bin/bash test &&
|
||||
chown -R test:test . &&
|
||||
su -c '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 ../ &&
|
||||
make &&
|
||||
useradd -m -s /bin/bash test &&
|
||||
chown -R test:test . &&
|
||||
su -c '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 ../ &&
|
||||
make &&
|
||||
useradd -m -s /bin/bash test &&
|
||||
chown -R test:test . &&
|
||||
su -c 'ctest --output-on-failure' test"
|
||||
trigger:
|
||||
branch:
|
||||
- master
|
||||
event:
|
||||
- pull_request
|
||||
- push
|
||||
|
||||
---
|
||||
kind: pipeline
|
||||
name: qt-5.12
|
||||
|
||||
steps:
|
||||
- name: build and test
|
||||
image: nextcloudci/client-5.12:client-5.12-5
|
||||
commands:
|
||||
# Install QtKeyChain
|
||||
- /bin/bash -c "
|
||||
export CC=gcc-7 &&
|
||||
export CXX=g++-7 &&
|
||||
export QT_BASE_DIR=/opt/qt5.12.5 &&
|
||||
export QTDIR=\$QT_BASE_DIR &&
|
||||
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 &&
|
||||
@@ -27,18 +261,18 @@ steps:
|
||||
- /bin/bash -c "
|
||||
export CC=gcc-7 &&
|
||||
export CXX=g++-7 &&
|
||||
export QT_BASE_DIR=/opt/qt5.12.9 &&
|
||||
export QT_BASE_DIR=/opt/qt5.12.5 &&
|
||||
export QTDIR=\$QT_BASE_DIR &&
|
||||
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 PKG_CONFIG_PATH=\$QT_BASE_DIR/lib/pkgconfig:\$PKG_CONFIG_PATH &&
|
||||
mkdir build &&
|
||||
cd build &&
|
||||
cmake -D NO_SHIBBOLETH=1 -DBUILD_UPDATER=ON -DCMAKE_BUILD_TYPE=Debug -DUNIT_TESTING=1 -DSANITIZE_ADDRESS=ON ../ &&
|
||||
cmake -D NO_SHIBBOLETH=1 -DCMAKE_BUILD_TYPE=Debug -DUNIT_TESTING=1 ../ &&
|
||||
make &&
|
||||
useradd -m -s /bin/bash test &&
|
||||
chown -R test:test . &&
|
||||
su -c 'ASAN_OPTIONS=detect_leaks=0 ctest --output-on-failure' test"
|
||||
su -c 'ctest --output-on-failure' test"
|
||||
trigger:
|
||||
branch:
|
||||
- master
|
||||
@@ -52,13 +286,13 @@ name: qt-5.12-clang
|
||||
|
||||
steps:
|
||||
- name: build and test
|
||||
image: nextcloudci/client-5.12:client-5.12-9
|
||||
image: nextcloudci/client-5.12:client-5.12-5
|
||||
commands:
|
||||
# Install QtKeyChain
|
||||
- /bin/bash -c "
|
||||
export CC=clang-6.0 &&
|
||||
export CXX=clang++-6.0 &&
|
||||
export QT_BASE_DIR=/opt/qt5.12.9 &&
|
||||
export QT_BASE_DIR=/opt/qt5.12.5 &&
|
||||
export QTDIR=\$QT_BASE_DIR &&
|
||||
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 &&
|
||||
@@ -76,20 +310,18 @@ steps:
|
||||
- /bin/bash -c "
|
||||
export CC=clang-6.0 &&
|
||||
export CXX=clang++-6.0 &&
|
||||
export QT_BASE_DIR=/opt/qt5.12.9 &&
|
||||
export QT_BASE_DIR=/opt/qt5.12.5 &&
|
||||
export QTDIR=\$QT_BASE_DIR &&
|
||||
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 PKG_CONFIG_PATH=\$QT_BASE_DIR/lib/pkgconfig:\$PKG_CONFIG_PATH &&
|
||||
mkdir build &&
|
||||
cd build &&
|
||||
cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DNO_SHIBBOLETH=1 -DBUILD_UPDATER=ON -DCMAKE_BUILD_TYPE=Debug -DUNIT_TESTING=1 -DSANITIZE_ADDRESS=ON ../ &&
|
||||
cmake -D NO_SHIBBOLETH=1 -DCMAKE_BUILD_TYPE=Debug -DUNIT_TESTING=1 ../ &&
|
||||
make &&
|
||||
useradd -m -s /bin/bash test &&
|
||||
chown -R test:test . &&
|
||||
su -c 'ASAN_OPTIONS=detect_leaks=0 ctest --output-on-failure' test"
|
||||
# Static analysis with clang-tidy
|
||||
- "! run-clang-tidy-6.0 -p build -quiet | grep -A 5 ': error:'"
|
||||
su -c 'ctest --output-on-failure' test"
|
||||
trigger:
|
||||
branch:
|
||||
- master
|
||||
@@ -103,15 +335,10 @@ name: AppImage
|
||||
|
||||
steps:
|
||||
- name: build
|
||||
image: nextcloudci/client-5.12:client-5.12-9
|
||||
environment:
|
||||
CI_UPLOAD_GIT_TOKEN:
|
||||
from_secret: CI_UPLOAD_GIT_TOKEN
|
||||
CI_UPLOAD_GIT_USERNAME:
|
||||
from_secret: CI_UPLOAD_GIT_USERNAME
|
||||
image: nextcloudci/client-5.12:client-5.12-5
|
||||
commands:
|
||||
- /bin/bash -c "./admin/linux/build-appimage.sh"
|
||||
- /bin/bash -c "./admin/linux/upload-appimage.sh" || echo "Upload failed, however this is an optional step."
|
||||
- /bin/bash -c "./admin/linux/upload-appimage.sh"
|
||||
trigger:
|
||||
branch:
|
||||
- master
|
||||
@@ -134,10 +361,9 @@ steps:
|
||||
from_secret: DEBIAN_SECRET_IV
|
||||
trigger:
|
||||
branch:
|
||||
- master
|
||||
- stable-2.6
|
||||
event:
|
||||
- pull_request
|
||||
- push
|
||||
- tag
|
||||
---
|
||||
kind: pipeline
|
||||
name: Documentation
|
||||
|
||||
3
.github/FUNDING.yml
vendored
@@ -1,3 +0,0 @@
|
||||
|
||||
# You can add one username per supported platform and one custom link
|
||||
custom: https://www.bountysource.com/teams/nextcloud/issues?tracker_ids=74294474
|
||||
67
.github/stale.yml
vendored
@@ -1,67 +0,0 @@
|
||||
|
||||
# Number of days of inactivity before an issue becomes stale
|
||||
daysUntilStale: 28
|
||||
# Number of days of inactivity before a stale issue is closed
|
||||
daysUntilClose: 14
|
||||
# Issues with these labels will never be considered stale
|
||||
exemptLabels:
|
||||
- 1. to develop
|
||||
- 2. to review
|
||||
- 3. to release
|
||||
- 4. to test
|
||||
- accessibility
|
||||
- backport-request
|
||||
- bug
|
||||
- design
|
||||
- enhancement
|
||||
- epic
|
||||
- discussion
|
||||
- documentation
|
||||
- overview
|
||||
- good first issue
|
||||
- feature-request
|
||||
- feature: :arrows_counterclockwise: sync engine
|
||||
- feature: :busts_in_silhouette: sharing
|
||||
- feature: :cloud: system tray
|
||||
- feature: :gear: settings
|
||||
- feature: :inbox_tray: install and update
|
||||
- feature: :key: authentication
|
||||
- feature: :lock: end to end encryption
|
||||
- feature: :memo: versions
|
||||
- feature: :minidisc: external storage
|
||||
- feature: :minidisc: virtual drive
|
||||
- feature: :new: versions
|
||||
- feature: :tongue: language l10n and translations
|
||||
- feature: :wheelchair: accessibility
|
||||
- feature: :white_square_button: nextcloudcmd
|
||||
- feature: :zap: activity and :bell: notification
|
||||
- good first issue
|
||||
- help wanted
|
||||
- high
|
||||
- integration
|
||||
- low
|
||||
- medium
|
||||
- needs info
|
||||
- os: :apple: macOS
|
||||
- os: :door: Windows
|
||||
- os: :penguin: Linux
|
||||
- os: :smiling_imp: FreeBSD
|
||||
- overview
|
||||
- package: appimage
|
||||
- package: debian
|
||||
- package: snap
|
||||
- papercut
|
||||
- regression
|
||||
- security
|
||||
- server
|
||||
- spec
|
||||
- technical debt
|
||||
# Label to use when marking an issue as stale
|
||||
staleLabel: stale
|
||||
# Comment to post when marking an issue as stale. Set to `false` to disable
|
||||
markComment: >
|
||||
This request did not receive an update in the last 4 weeks.
|
||||
Please take a look again and update the issue with new details,
|
||||
otherwise the issue will be automatically closed in 2 weeks. Thank you!
|
||||
# Comment to post when closing a stale issue. Set to `false` to disable
|
||||
closeComment: false
|
||||
18
.github/workflows/rebase.yml
vendored
@@ -1,18 +0,0 @@
|
||||
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,3 +1,6 @@
|
||||
[submodule "binary"]
|
||||
path = binary
|
||||
url = git://github.com/owncloud/owncloud-client-binary.git
|
||||
[submodule "src/3rdparty/libcrashreporter-qt"]
|
||||
path = src/3rdparty/libcrashreporter-qt
|
||||
url = git://github.com/dschmidt/libcrashreporter-qt.git
|
||||
|
||||
@@ -199,6 +199,6 @@ X-GNOME-Autostart-Delay=3
|
||||
|
||||
# Translations
|
||||
Icon[bg_BG]=@APPLICATION_ICON_NAME@
|
||||
Name[bg_BG]=@APPLICATION_NAME@ десктоп клиент за синхронизиране
|
||||
Comment[bg_BG]=@APPLICATION_NAME@ десктоп клиент за синхронизиране
|
||||
Name[bg_BG]=@APPLICATION_NAME@ клиент за синхронизиране на десктоп
|
||||
Comment[bg_BG]=@APPLICATION_NAME@ клиент за синхронизиране на десктоп
|
||||
GenericName[bg_BG]=Синхронизиране на папка
|
||||
|
||||
@@ -1,204 +0,0 @@
|
||||
[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
|
||||
Icon[ca]=@APPLICATION_ICON_NAME@
|
||||
Name[ca]=Client de sincronització d'escriptori del @APPLICATION_NAME@
|
||||
Comment[ca]=Client de sincronització d'escriptori del @APPLICATION_NAME@
|
||||
GenericName[ca]=Sincronització de carpetes
|
||||
Name[ca]=@APPLICATION_NAME@ client de sincronització d'escriptori
|
||||
Comment[ca]=@APPLICATION_NAME@ client de sincronització d'escriptori
|
||||
GenericName[ca]=Directori de sincronització
|
||||
|
||||
@@ -198,7 +198,7 @@ X-GNOME-Autostart-Delay=3
|
||||
|
||||
|
||||
# Translations
|
||||
Icon[cs_CZ]=@APPLICATION_ICON_NAME@
|
||||
Icon[cs_CZ]=@NAZEV_IKONY_APLIKACE@
|
||||
Name[cs_CZ]=@APPLICATION_NAME@ synchronizační klient pro desktop
|
||||
Comment[cs_CZ]=@APPLICATION_NAME@ synchronizační klient pro desktop
|
||||
GenericName[cs_CZ]=Synchronizace složek
|
||||
|
||||
@@ -199,6 +199,6 @@ X-GNOME-Autostart-Delay=3
|
||||
|
||||
# Translations
|
||||
Icon[de]=@APPLICATION_ICON_NAME@
|
||||
Name[de]=@APPLICATION_NAME@ Client zur Desktop-Synchronisierung
|
||||
Comment[de]=@APPLICATION_NAME@ Client zur Desktop-Synchronisierung
|
||||
GenericName[de]=Synchronisierungsordner
|
||||
Name[de]=@APPLICATION_NAME@ Client zur Desktop-Synchronisation
|
||||
Comment[de]=@APPLICATION_NAME@ Client zur Desktop-Synchronisation
|
||||
GenericName[de]=Synchronisationsordner
|
||||
|
||||
@@ -1,204 +0,0 @@
|
||||
[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[es_AR]=@APPLICATION_ICON_NAME@
|
||||
Name[es_AR]=@APPLICATION_NAME@ cliente de sincronización de escritorio
|
||||
Comment[es_AR]=@APPLICATION_NAME@ cliente de sincronización de escritorio
|
||||
GenericName[es_AR]=Sincronización de carpetas
|
||||
@@ -1,204 +0,0 @@
|
||||
[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
|
||||
@@ -1,201 +0,0 @@
|
||||
[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 @ مشتری هماهنگ سازی دسکتاپ
|
||||
@@ -1,204 +0,0 @@
|
||||
[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
|
||||
@@ -1,204 +0,0 @@
|
||||
[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
|
||||
@@ -199,6 +199,4 @@ X-GNOME-Autostart-Delay=3
|
||||
|
||||
# Translations
|
||||
Icon[sv]=@APPLICATION_ICON_NAME@
|
||||
Name[sv]=@APPLICATION_NAME@ desktopssynkklient
|
||||
Comment[sv]=@APPLICATION_NAME@ desktopssynkroniseringsklient
|
||||
GenericName[sv]=Mappsynkronisering
|
||||
|
||||
@@ -201,4 +201,4 @@ X-GNOME-Autostart-Delay=3
|
||||
Icon[uk]=@APPLICATION_ICON_NAME@
|
||||
Name[uk]=@APPLICATION_NAME@ клієнт для ПК
|
||||
Comment[uk]=Клієнт синхронізації @APPLICATION_NAME@ для ПК
|
||||
GenericName[uk]=Синхронізація тек
|
||||
GenericName[uk]=Синхронізація каталогів
|
||||
|
||||
@@ -198,7 +198,6 @@ X-GNOME-Autostart-Delay=3
|
||||
|
||||
|
||||
# Translations
|
||||
Icon[zh_TW]=@APPLICATION_ICON_NAME@
|
||||
Name[zh_TW]=@APPLICATION_NAME@ 桌面同步客戶端
|
||||
Comment[zh_TW]=@APPLICATION_NAME@ 桌面同步客戶端
|
||||
GenericName[zh_TW]=資料夾同步
|
||||
|
||||
@@ -123,15 +123,6 @@ if(NO_MSG_HANDLER)
|
||||
add_definitions(-DNO_MSG_HANDLER=1)
|
||||
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
|
||||
option(BUILD_SHELL_INTEGRATION "BUILD_SHELL_INTEGRATION" ON)
|
||||
|
||||
@@ -181,9 +172,9 @@ if(APPLE)
|
||||
endif()
|
||||
|
||||
if(BUILD_CLIENT)
|
||||
if(APPLE AND BUILD_UPDATER)
|
||||
if(APPLE)
|
||||
find_package(Sparkle)
|
||||
endif()
|
||||
endif(APPLE)
|
||||
|
||||
if(UNIX)
|
||||
find_package(INotify REQUIRED)
|
||||
@@ -228,8 +219,6 @@ if (APPLE)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++")
|
||||
endif()
|
||||
|
||||
include(SanitizerFlags)
|
||||
|
||||
# Handle Translations, pick all client_* files from trans directory.
|
||||
file( GLOB TRANS_FILES ${CMAKE_SOURCE_DIR}/translations/client_*.ts)
|
||||
set(TRANSLATIONS ${TRANS_FILES})
|
||||
|
||||
124
ChangeLog
@@ -1,127 +1,3 @@
|
||||
ChangeLog
|
||||
====================
|
||||
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
|
||||
====================
|
||||
|
||||
|
||||
@@ -7,12 +7,11 @@ set( APPLICATION_UPDATE_URL "https://updates.nextcloud.org/client/" CACHE STRING
|
||||
set( APPLICATION_HELP_URL "" CACHE STRING "URL for the help menu" )
|
||||
set( APPLICATION_ICON_NAME "Nextcloud" )
|
||||
set( APPLICATION_SERVER_URL "" CACHE STRING "URL for the server to use. If entered the server can only connect to this instance" )
|
||||
set( APPLICATION_REV_DOMAIN "com.nextcloud.desktopclient" )
|
||||
|
||||
set( LINUX_PACKAGE_SHORTNAME "nextcloud" )
|
||||
set( LINUX_APPLICATION_ID "${APPLICATION_REV_DOMAIN}.${LINUX_PACKAGE_SHORTNAME}")
|
||||
|
||||
set( THEME_CLASS "NextcloudTheme" )
|
||||
set( APPLICATION_REV_DOMAIN "com.nextcloud.desktopclient" )
|
||||
set( WIN_SETUP_BITMAP_PATH "${CMAKE_SOURCE_DIR}/admin/win/nsi" )
|
||||
|
||||
set( MAC_INSTALLER_BACKGROUND_FILE "${CMAKE_SOURCE_DIR}/admin/osx/installer-background.png" CACHE STRING "The MacOSX installer background image")
|
||||
@@ -24,9 +23,6 @@ option( WITH_CRASHREPORTER "Build crashreporter" OFF )
|
||||
#set( CRASHREPORTER_SUBMIT_URL "https://crash-reports.owncloud.com/submit" CACHE STRING "URL for crash reporter" )
|
||||
#set( CRASHREPORTER_ICON ":/owncloud-icon.png" )
|
||||
|
||||
## Updater options
|
||||
option( BUILD_UPDATER "Build updater" OFF )
|
||||
|
||||
option( WITH_PROVIDERS "Build with providers list" ON )
|
||||
|
||||
|
||||
@@ -35,17 +31,3 @@ set( APPLICATION_WIZARD_HEADER_BACKGROUND_COLOR "#0082c9" CACHE STRING "Hex colo
|
||||
set( APPLICATION_WIZARD_HEADER_TITLE_COLOR "#ffffff" CACHE STRING "Hex color of the text in the wizard header")
|
||||
option( APPLICATION_WIZARD_USE_CUSTOM_LOGO "Use the logo from ':/client/theme/colored/wizard_logo.png' else the default application icon is used" ON )
|
||||
|
||||
|
||||
#
|
||||
## Windows Shell Extensions - IMPORTANT: Generate new GUIDs for custom builds with "guidgen" or "uuidgen"
|
||||
#
|
||||
|
||||
# Context Menu
|
||||
set( WIN_SHELLEXT_CONTEXT_MENU_GUID "{BC6988AB-ACE2-4B81-84DC-DC34F9B24401}" )
|
||||
|
||||
# Overlays
|
||||
set( WIN_SHELLEXT_OVERLAY_GUID_ERROR "{E0342B74-7593-4C70-9D61-22F294AAFE05}" )
|
||||
set( WIN_SHELLEXT_OVERLAY_GUID_OK "{E1094E94-BE93-4EA2-9639-8475C68F3886}" )
|
||||
set( WIN_SHELLEXT_OVERLAY_GUID_OK_SHARED "{E243AD85-F71B-496B-B17E-B8091CBE93D2}" )
|
||||
set( WIN_SHELLEXT_OVERLAY_GUID_SYNC "{E3D6DB20-1D83-4829-B5C9-941B31C0C35A}" )
|
||||
set( WIN_SHELLEXT_OVERLAY_GUID_WARNING "{E4977F33-F93A-4A0A-9D3C-83DEA0EE8483}" )
|
||||
|
||||
@@ -61,14 +61,14 @@ For more info: [Wiki/Daily Builds](https://github.com/nextcloud/desktop/wiki/Dai
|
||||
### :bomb: Reporting issues
|
||||
|
||||
- If you find any bugs or have any suggestion for improvement, please
|
||||
file an issue at https://github.com/nextcloud/desktop/issues. Do not
|
||||
file an issue at https://github.com/nextcloud/client/issues. Do not
|
||||
contact the authors directly by mail, as this increases the chance
|
||||
of your report being lost. :boom:
|
||||
|
||||
### :smiley: :trophy: Pull requests
|
||||
|
||||
- If you created a patch :heart_eyes:, please submit a [Pull
|
||||
Request](https://github.com/nextcloud/desktop/pulls).
|
||||
Request](https://github.com/nextcloud/client/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:
|
||||
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
set( MIRALL_VERSION_MAJOR 3 )
|
||||
set( MIRALL_VERSION_MINOR 0 )
|
||||
set( MIRALL_VERSION_PATCH 1 )
|
||||
set( MIRALL_VERSION_YEAR 2020 )
|
||||
set( MIRALL_VERSION_MAJOR 2 )
|
||||
set( MIRALL_VERSION_MINOR 6 )
|
||||
set( MIRALL_VERSION_PATCH 2 )
|
||||
set( MIRALL_VERSION_YEAR 2019 )
|
||||
set( MIRALL_SOVERSION 0 )
|
||||
|
||||
if ( NOT DEFINED MIRALL_VERSION_SUFFIX )
|
||||
|
||||
23
admin/linux/Dockerfile
Normal file
@@ -0,0 +1,23 @@
|
||||
# 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,26 +6,23 @@ mkdir /app
|
||||
mkdir /build
|
||||
|
||||
#Set Qt-5.12
|
||||
export QT_BASE_DIR=/opt/qt5.12.9
|
||||
export QT_BASE_DIR=/opt/qt5.12.5
|
||||
export QTDIR=$QT_BASE_DIR
|
||||
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 PKG_CONFIG_PATH=$QT_BASE_DIR/lib/pkgconfig:$PKG_CONFIG_PATH
|
||||
|
||||
#Set APPID for .desktop file processing
|
||||
export LINUX_APPLICATION_ID=com.nextcloud.desktopclient.nextcloud
|
||||
|
||||
#set defaults
|
||||
export SUFFIX=${DRONE_PULL_REQUEST:=master}
|
||||
if [ $SUFFIX != "master" ]; then
|
||||
SUFFIX="PR-$SUFFIX"
|
||||
fi
|
||||
|
||||
#QtKeyChain master
|
||||
#QtKeyChain 0.9.1
|
||||
cd /build
|
||||
git clone https://github.com/frankosterfeld/qtkeychain.git
|
||||
cd qtkeychain
|
||||
git checkout master
|
||||
git checkout v0.9.1
|
||||
mkdir build
|
||||
cd build
|
||||
cmake -D CMAKE_INSTALL_PREFIX=/usr ../
|
||||
@@ -38,7 +35,6 @@ mkdir build-client
|
||||
cd build-client
|
||||
cmake -D CMAKE_INSTALL_PREFIX=/usr \
|
||||
-D NO_SHIBBOLETH=1 \
|
||||
-D BUILD_UPDATER=ON \
|
||||
-D QTKEYCHAIN_LIBRARY=/app/usr/lib/x86_64-linux-gnu/libqt5keychain.so \
|
||||
-D QTKEYCHAIN_INCLUDE_DIR=/app/usr/include/qt5keychain/ \
|
||||
-DMIRALL_VERSION_SUFFIX=PR-$DRONE_PULL_REQUEST \
|
||||
@@ -66,7 +62,7 @@ rm -rf ./usr/share/caja-python/
|
||||
rm -rf ./usr/share/nautilus-python/
|
||||
rm -rf ./usr/share/nemo-python/
|
||||
|
||||
# Move sync exclude to right location
|
||||
# Move sync exlucde to right location
|
||||
mv ./etc/Nextcloud/sync-exclude.lst ./usr/bin/
|
||||
rm -rf ./etc
|
||||
|
||||
@@ -92,7 +88,7 @@ chmod a+x linuxdeployqt*.AppImage
|
||||
rm ./linuxdeployqt-continuous-x86_64.AppImage
|
||||
unset QTDIR; unset QT_PLUGIN_PATH ; unset LD_LIBRARY_PATH
|
||||
export LD_LIBRARY_PATH=/app/usr/lib/
|
||||
./squashfs-root/AppRun ${DESKTOP_FILE} -bundle-non-qt-libs -qmldir=$DRONE_WORKSPACE/src/gui
|
||||
./squashfs-root/AppRun ${DESKTOP_FILE} -bundle-non-qt-libs
|
||||
|
||||
# Set origin
|
||||
./squashfs-root/usr/bin/patchelf --set-rpath '$ORIGIN/' /app/usr/lib/libnextcloudsync.so.0
|
||||
|
||||
31
admin/linux/debian/README
Normal file
@@ -0,0 +1,31 @@
|
||||
- .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
|
||||
23
admin/linux/debian/debian.bionic/changelog
Normal file
@@ -0,0 +1,23 @@
|
||||
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
|
||||
23
admin/linux/debian/debian.disco/changelog
Normal file
@@ -0,0 +1,23 @@
|
||||
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
|
||||
23
admin/linux/debian/debian.eoan/changelog
Normal file
@@ -0,0 +1,23 @@
|
||||
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
|
||||
90
admin/linux/debian/debian.eoan/control
Normal file
@@ -0,0 +1,90 @@
|
||||
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.
|
||||
48
admin/linux/debian/debian.oldstable/changelog
Normal file
@@ -0,0 +1,48 @@
|
||||
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
|
||||
84
admin/linux/debian/debian.oldstable/control
Normal file
@@ -0,0 +1,84 @@
|
||||
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.
|
||||
48
admin/linux/debian/debian.stable/changelog
Normal file
@@ -0,0 +1,48 @@
|
||||
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
|
||||
86
admin/linux/debian/debian.stable/control
Normal file
@@ -0,0 +1,86 @@
|
||||
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.
|
||||
90
admin/linux/debian/debian.xenial/control
Normal file
@@ -0,0 +1,90 @@
|
||||
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.
|
||||
11
admin/linux/debian/debian.xenial/post-patches/libssl.patch
Normal file
@@ -0,0 +1,11 @@
|
||||
--- 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)
|
||||
@@ -0,0 +1,12 @@
|
||||
--- 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();
|
||||
24
admin/linux/debian/debian.xenial/post-patches/qt5.5.patch
Normal file
@@ -0,0 +1,24 @@
|
||||
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
admin/linux/debian/debian/101-sync-inotify.conf
Normal file
@@ -0,0 +1 @@
|
||||
fs.inotify.max_user_watches = 524288
|
||||
48
admin/linux/debian/debian/changelog
Normal file
@@ -0,0 +1,48 @@
|
||||
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
admin/linux/debian/debian/compat
Normal file
@@ -0,0 +1 @@
|
||||
9
|
||||
91
admin/linux/debian/debian/control
Normal file
@@ -0,0 +1,91 @@
|
||||
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.
|
||||
3
admin/linux/debian/debian/copyright
Normal file
@@ -0,0 +1,3 @@
|
||||
Files: *
|
||||
Copyright: 2012-2015 ownCloud, inc.; Nuernberg, Germany., 2016 Nextcloud GmbH
|
||||
License: GPL-2+
|
||||
3
admin/linux/debian/debian/libnextcloudsync-dev.install
Normal file
@@ -0,0 +1,3 @@
|
||||
usr/include
|
||||
usr/lib/*/libnextcloudsync.so
|
||||
usr/lib/*/nextcloud/libocsync.so
|
||||
3
admin/linux/debian/debian/libnextcloudsync0.install
Normal file
@@ -0,0 +1,3 @@
|
||||
etc
|
||||
usr/lib/*/libnextcloudsync.so.?*
|
||||
usr/lib/*/nextcloud/libocsync.so.?*
|
||||
1
admin/linux/debian/debian/nextcloud-client-caja.install
Normal file
@@ -0,0 +1 @@
|
||||
usr/share/caja-python
|
||||
@@ -0,0 +1,4 @@
|
||||
usr/lib/*/libnextclouddolphinpluginhelper.so
|
||||
usr/lib/*/qt5/plugins/kf5/overlayicon/nextclouddolphinoverlayplugin.so
|
||||
usr/lib/*/qt5/plugins/nextclouddolphinactionplugin.so
|
||||
usr/share/kservices5/nextclouddolphinactionplugin.desktop
|
||||
@@ -0,0 +1,2 @@
|
||||
nextcloud-client-dolphin: package-name-doesnt-match-sonames
|
||||
nextcloud-client-dolphin: shlib-without-versioned-soname
|
||||
@@ -0,0 +1 @@
|
||||
activate-noawait ldconfig
|
||||
1
admin/linux/debian/debian/nextcloud-client-l10n.install
Normal file
@@ -0,0 +1 @@
|
||||
usr/share/nextcloud/i18n
|
||||
@@ -0,0 +1 @@
|
||||
usr/share/nautilus-python
|
||||
1
admin/linux/debian/debian/nextcloud-client-nemo.install
Normal file
@@ -0,0 +1 @@
|
||||
usr/share/nemo-python
|
||||
4
admin/linux/debian/debian/nextcloud-client.install
Normal file
@@ -0,0 +1,4 @@
|
||||
usr/bin
|
||||
usr/share/applications
|
||||
usr/share/icons
|
||||
debian/101-sync-inotify.conf etc/sysctl.d
|
||||
@@ -0,0 +1,3 @@
|
||||
nextcloud-client: binary-or-shlib-defines-rpath
|
||||
nextcloud-client: binary-without-manpage
|
||||
nextcloud-client: license-problem-convert-utf-code
|
||||
12
admin/linux/debian/debian/rules
Executable file
@@ -0,0 +1,12 @@
|
||||
#!/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
admin/linux/debian/debian/source/format
Normal file
@@ -0,0 +1 @@
|
||||
3.0 (quilt)
|
||||
9
admin/linux/debian/debian/source/lintian-overrides
Normal file
@@ -0,0 +1,9 @@
|
||||
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,24 +3,12 @@
|
||||
set -xe
|
||||
shopt -s extglob
|
||||
|
||||
env
|
||||
|
||||
PPA=ppa:nextcloud-devs/client
|
||||
PPA_ALPHA=ppa:nextcloud-devs/client-alpha
|
||||
PPA_BETA=ppa:nextcloud-devs/client-beta
|
||||
|
||||
OBS_PROJECT=home:ivaradi
|
||||
OBS_PROJECT_ALPHA=home:ivaradi:alpha
|
||||
OBS_PROJECT_BETA=home:ivaradi:beta
|
||||
OBS_PACKAGE=nextcloud-desktop
|
||||
|
||||
if test "${DRONE_TARGET_BRANCH}" = "stable-2.6"; then
|
||||
UBUNTU_DISTRIBUTIONS="bionic focal groovy"
|
||||
DEBIAN_DISTRIBUTIONS="buster stretch testing"
|
||||
else
|
||||
UBUNTU_DISTRIBUTIONS="focal groovy"
|
||||
DEBIAN_DISTRIBUTIONS="testing"
|
||||
fi
|
||||
OBS_PACKAGE=nextcloud-client
|
||||
|
||||
pull_request=${DRONE_PULL_REQUEST:=master}
|
||||
|
||||
@@ -43,16 +31,13 @@ fi
|
||||
set -x
|
||||
|
||||
cd "${DRONE_WORKSPACE}"
|
||||
git fetch --tags
|
||||
read basever revdate kind <<<$(admin/linux/debian/scripts/git2changelog.py /tmp/tmpchangelog stable)
|
||||
read basever kind <<<$(admin/linux/debian/scripts/git2changelog.py /tmp/tmpchangelog stable)
|
||||
|
||||
cd "${DRONE_DIR}"
|
||||
|
||||
echo "$kind" > kind
|
||||
|
||||
if test "$kind" = "alpha"; then
|
||||
repo=nextcloud-devs/client-alpha
|
||||
elif test "$kind" = "beta"; then
|
||||
if test "$kind" = "beta"; then
|
||||
repo=nextcloud-devs/client-beta
|
||||
else
|
||||
repo=nextcloud-devs/client
|
||||
@@ -60,60 +45,79 @@ fi
|
||||
|
||||
origsourceopt=""
|
||||
|
||||
cp -a ${DRONE_WORKSPACE} nextcloud-desktop_${basever}-${revdate}
|
||||
tar cjf nextcloud-desktop_${basever}-${revdate}.orig.tar.bz2 --exclude .git --exclude binary nextcloud-desktop_${basever}-${revdate}
|
||||
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-client_${basever}
|
||||
tar cjf nextcloud-client_${basever}.orig.tar.bz2 --exclude .git nextcloud-client_${basever}
|
||||
origsourceopt="-sa"
|
||||
fi
|
||||
|
||||
cd "${DRONE_WORKSPACE}"
|
||||
git config --global user.email "drone@noemail.invalid"
|
||||
git config --global user.name "Drone User"
|
||||
for distribution in xenial bionic disco eoan stable oldstable; do
|
||||
rm -rf nextcloud-client_${basever}
|
||||
cp -a ${DRONE_WORKSPACE} nextcloud-client_${basever}
|
||||
|
||||
for distribution in ${UBUNTU_DISTRIBUTIONS} ${DEBIAN_DISTRIBUTIONS}; do
|
||||
git checkout -- .
|
||||
git clean -xdf
|
||||
cd nextcloud-client_${basever}
|
||||
|
||||
git fetch origin debian/dist/${distribution}/${DRONE_TARGET_BRANCH}
|
||||
git checkout origin/debian/dist/${distribution}/${DRONE_TARGET_BRANCH}
|
||||
cp -a admin/linux/debian/debian .
|
||||
if test -d admin/linux/debian/debian.${distribution}; then
|
||||
tar cf - -C admin/linux/debian/debian.${distribution} . | tar xf - -C debian
|
||||
fi
|
||||
|
||||
git merge ${DRONE_COMMIT}
|
||||
admin/linux/debian/scripts/git2changelog.py /tmp/tmpchangelog ${distribution}
|
||||
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
|
||||
|
||||
admin/linux/debian/scripts/git2changelog.py /tmp/tmpchangelog ${distribution} ${revdate}
|
||||
cat /tmp/tmpchangelog debian/changelog > debian/changelog.new
|
||||
mv debian/changelog.new debian/changelog
|
||||
for p in debian/post-patches/*.patch; do
|
||||
if test -f "${p}"; then
|
||||
echo "Applying ${p}"
|
||||
patch -p1 < "${p}"
|
||||
fi
|
||||
done
|
||||
|
||||
fullver=`head -1 debian/changelog | sed "s:nextcloud-desktop (\([^)]*\)).*:\1:"`
|
||||
fullver=`head -1 debian/changelog | sed "s:nextcloud-client (\([^)]*\)).*:\1:"`
|
||||
|
||||
EDITOR=true dpkg-source --commit . local-changes
|
||||
|
||||
dpkg-source --build .
|
||||
dpkg-genchanges -S -sa > "../nextcloud-desktop_${fullver}_source.changes"
|
||||
dpkg-genchanges -S ${origsourceopt} > "../nextcloud-client_${fullver}_source.changes"
|
||||
|
||||
if test -f ~/.has_ppa_keys; then
|
||||
debsign -k7D14AA7B -S
|
||||
fi
|
||||
|
||||
cd ..
|
||||
done
|
||||
cd ..
|
||||
ls -al
|
||||
|
||||
if test "${pull_request}" = "master"; then
|
||||
if test "$kind" = "alpha"; then
|
||||
PPA=$PPA_ALPHA
|
||||
OBS_PROJECT=$OBS_PROJECT_ALPHA
|
||||
elif test "$kind" = "beta"; then
|
||||
kind=`cat kind`
|
||||
|
||||
if test "$kind" = "beta"; then
|
||||
PPA=$PPA_BETA
|
||||
OBS_PROJECT=$OBS_PROJECT_BETA
|
||||
fi
|
||||
|
||||
if test -f ~/.has_ppa_keys; then
|
||||
for distribution in ${UBUNTU_DISTRIBUTIONS}; do
|
||||
changes=$(ls -1 nextcloud-desktop_*~${distribution}1_source.changes)
|
||||
if test -f "${changes}"; then
|
||||
dput $PPA "${changes}" > /dev/null
|
||||
fi
|
||||
for changes in nextcloud-client_*~+([a-z])1_source.changes; do
|
||||
case "${changes}" in
|
||||
*oldstable1*)
|
||||
;;
|
||||
*)
|
||||
dput $PPA $changes > /dev/null
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
for distribution in ${DEBIAN_DISTRIBUTIONS}; do
|
||||
pkgsuffix=".${distribution}"
|
||||
pkgvertag="~${distribution}1"
|
||||
for distribution in stable oldstable; do
|
||||
if test "${distribution}" = "oldstable"; then
|
||||
pkgsuffix=".${distribution}"
|
||||
pkgvertag="~${distribution}1"
|
||||
else
|
||||
pkgsuffix=""
|
||||
pkgvertag=""
|
||||
fi
|
||||
|
||||
package="${OBS_PACKAGE}${pkgsuffix}"
|
||||
OBS_SUBDIR="${OBS_PROJECT}/${package}"
|
||||
@@ -125,10 +129,10 @@ if test "${pull_request}" = "master"; then
|
||||
osc delete ${OBS_SUBDIR}/*
|
||||
fi
|
||||
|
||||
cp ../nextcloud-desktop*.orig.tar.* ${OBS_SUBDIR}/
|
||||
cp ../nextcloud-desktop_*[0-9.][0-9]${pkgvertag}.dsc ${OBS_SUBDIR}/
|
||||
cp ../nextcloud-desktop_*[0-9.][0-9]${pkgvertag}.debian.tar* ${OBS_SUBDIR}/
|
||||
cp ../nextcloud-desktop_*[0-9.][0-9]${pkgvertag}_source.changes ${OBS_SUBDIR}/
|
||||
cp ../nextcloud-client*.orig.tar.* ${OBS_SUBDIR}/
|
||||
cp ../nextcloud-client_*[0-9.][0-9]${pkgvertag}.dsc ${OBS_SUBDIR}/
|
||||
cp ../nextcloud-client_*[0-9.][0-9]${pkgvertag}.debian.tar* ${OBS_SUBDIR}/
|
||||
cp ../nextcloud-client_*[0-9.][0-9]${pkgvertag}_source.changes ${OBS_SUBDIR}/
|
||||
osc add ${OBS_SUBDIR}/*
|
||||
|
||||
cd ${OBS_SUBDIR}
|
||||
|
||||
50
admin/linux/debian/scripts/addchange.sh
Executable file
@@ -0,0 +1,50 @@
|
||||
#!/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}"
|
||||
26
admin/linux/debian/scripts/config.sh
Normal file
@@ -0,0 +1,26 @@
|
||||
# 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
|
||||
89
admin/linux/debian/scripts/create_debdir.sh
Executable file
@@ -0,0 +1,89 @@
|
||||
#!/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,7 +6,3 @@
|
||||
[versionhack]
|
||||
commit = bc7e65b39552ac458b2adacf76cbf98735ec29a0
|
||||
tag = v2.4.0-beta
|
||||
|
||||
[base]
|
||||
commit = 56222de768e3def4d504b3f9832d8598b1ec2043
|
||||
version = 2.7.0
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
#!//usr/bin/env python2.7
|
||||
|
||||
from __future__ import print_function
|
||||
import subprocess
|
||||
import re
|
||||
import sys
|
||||
@@ -8,11 +7,6 @@ import datetime
|
||||
import os
|
||||
import ConfigParser
|
||||
|
||||
try:
|
||||
long
|
||||
except NameError:
|
||||
long = int
|
||||
|
||||
distribution="yakkety"
|
||||
|
||||
versionTagRE = re.compile("^v([0-9]+((\.[0-9]+)+))(-(.+))?$")
|
||||
@@ -28,37 +22,39 @@ def getCommitVersion(commit):
|
||||
major=None
|
||||
minor=None
|
||||
patch=None
|
||||
try:
|
||||
for line in subprocess.check_output(["git", "show",
|
||||
commit + ":VERSION.cmake"]).splitlines():
|
||||
m = re.match("set\( MIRALL_VERSION_([A-Z]+) +([0-9])+ *\)", line)
|
||||
if m is not None:
|
||||
kind=m.group(1)
|
||||
version=m.group(2)
|
||||
if kind=="MAJOR":
|
||||
major=version
|
||||
elif kind=="MINOR":
|
||||
minor=version
|
||||
elif kind=="PATCH":
|
||||
patch=version
|
||||
if major and minor and patch:
|
||||
return major + "." + minor + "." + patch
|
||||
else:
|
||||
return None
|
||||
except:
|
||||
for line in subprocess.check_output(["git", "show",
|
||||
commit + ":VERSION.cmake"]).splitlines():
|
||||
m = re.match("set\( MIRALL_VERSION_([A-Z]+) +([0-9])+ *\)", line)
|
||||
if m is not None:
|
||||
kind=m.group(1)
|
||||
version=m.group(2)
|
||||
if kind=="MAJOR":
|
||||
major=version
|
||||
elif kind=="MINOR":
|
||||
minor=version
|
||||
elif kind=="PATCH":
|
||||
patch=version
|
||||
if major and minor and patch:
|
||||
return major + "." + minor + "." + patch
|
||||
else:
|
||||
return None
|
||||
|
||||
def collectEntries(baseCommit, baseVersion, kind, finalRevDate, config):
|
||||
def collectEntries(baseCommit, baseVersion, kind):
|
||||
scriptdir = os.path.dirname(__file__)
|
||||
configPath = os.path.join(scriptdir, "git2changelog.cfg")
|
||||
|
||||
newVersionCommit = None
|
||||
newVersionTag = None
|
||||
newVersionOrigTag = None
|
||||
|
||||
if config is not None and config.has_section("versionhack"):
|
||||
if config.has_option("versionhack", "commit") and \
|
||||
config.has_option("versionhack", "tag"):
|
||||
newVersionCommit = config.get("versionhack", "commit")
|
||||
newVersionTag = config.get("versionhack", "tag")
|
||||
if os.path.exists(configPath):
|
||||
config = ConfigParser.SafeConfigParser()
|
||||
config.read(configPath)
|
||||
if config.has_section("versionhack"):
|
||||
if config.has_option("versionhack", "commit") and \
|
||||
config.has_option("versionhack", "tag"):
|
||||
newVersionCommit = config.get("versionhack", "commit")
|
||||
newVersionTag = config.get("versionhack", "tag")
|
||||
|
||||
entries = []
|
||||
|
||||
@@ -77,11 +73,9 @@ def collectEntries(baseCommit, baseVersion, kind, finalRevDate, config):
|
||||
words = line.split("\t")
|
||||
(commit, name, email, date, revdate) = words[0:5]
|
||||
subject = "\t".join(words[5:])
|
||||
|
||||
revdate = datetime.datetime.utcfromtimestamp(long(revdate)).strftime("%Y%m%d.%H%M%S")
|
||||
revdate += "." + commit
|
||||
|
||||
kind = "alpha"
|
||||
kind = "beta"
|
||||
|
||||
if commit==newVersionCommit:
|
||||
result = processVersionTag(newVersionTag)
|
||||
@@ -113,63 +107,38 @@ def collectEntries(baseCommit, baseVersion, kind, finalRevDate, config):
|
||||
entries.append((commit, name, email, date, revdate, subject,
|
||||
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()
|
||||
|
||||
return entries
|
||||
|
||||
def genChangeLogEntries(f, entries, distribution):
|
||||
latestBaseVersion = None
|
||||
latestRevDate = None
|
||||
latestKind = None
|
||||
for (commit, name, email, date, revdate, subject, baseVersion, kind) in entries:
|
||||
if latestBaseVersion is None:
|
||||
latestBaseVersion = baseVersion
|
||||
latestRevDate = revdate
|
||||
latestKind = kind
|
||||
upstreamVersion = baseVersion + "-" + revdate
|
||||
if distribution=="stable":
|
||||
version = upstreamVersion
|
||||
else:
|
||||
version = upstreamVersion + "-1.0~" + distribution + "1"
|
||||
print("nextcloud-desktop (%s) %s; urgency=medium" % (version, distribution), file=f)
|
||||
print(file=f)
|
||||
print(" * " + subject, file=f)
|
||||
print(file=f)
|
||||
print(" -- %s <%s> %s" % (name, email, date), file=f)
|
||||
print(file=f)
|
||||
return (latestBaseVersion, latestRevDate, latestKind)
|
||||
version = upstreamVersion + "~" + distribution + "1"
|
||||
print >> f, "nextcloud-client (%s) %s; urgency=medium" % (version, distribution)
|
||||
print >> f
|
||||
print >> f, " * " + subject
|
||||
print >> f
|
||||
print >> f, " -- %s <%s> %s" % (name, email, date)
|
||||
print >> f
|
||||
return (latestBaseVersion, latestKind)
|
||||
|
||||
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]
|
||||
finalRevDate = sys.argv[3] if len(sys.argv)>3 else None
|
||||
|
||||
entries = collectEntries(baseCommit, baseVersion, "alpha", finalRevDate, config)
|
||||
#entries = collectEntries("8aade24147b5313f8241a8b42331442b7f40eef9", "2.2.4", "release")
|
||||
entries = collectEntries("f9b1c724d6ab5431e0cd56b7cd834f2dd48cebb1", "2.4.0", "beta")
|
||||
|
||||
|
||||
with open(sys.argv[1], "wt") as f:
|
||||
(baseVersion, revdate, kind) = genChangeLogEntries(f, entries, distribution)
|
||||
print(baseVersion, revdate, kind)
|
||||
(baseVersion, kind) = genChangeLogEntries(f, entries, distribution)
|
||||
print baseVersion, kind
|
||||
|
||||
17
admin/linux/debian/scripts/pbuild.sh
Executable file
@@ -0,0 +1,17 @@
|
||||
#!/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
|
||||
21
admin/linux/debian/scripts/pbuilder.sh
Executable file
@@ -0,0 +1,21 @@
|
||||
#!/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"
|
||||
@@ -1,135 +1,21 @@
|
||||
#! /bin/bash
|
||||
|
||||
# Env
|
||||
export BUILD=${DRONE_BUILD_NUMBER}
|
||||
export PR=${DRONE_PULL_REQUEST}
|
||||
export GIT_USERNAME=${CI_UPLOAD_GIT_USERNAME}
|
||||
export GIT_TOKEN=${CI_UPLOAD_GIT_TOKEN}
|
||||
|
||||
# Defaults
|
||||
export GIT_REPO=ci-builds
|
||||
export API_BASE_URL=https://api.github.com/repos/$GIT_USERNAME/$GIT_REPO
|
||||
export DESKTOP_API_BASE_URL=https://api.github.com/repos/nextcloud/desktop
|
||||
|
||||
# PR / master
|
||||
export TAG_NAME=${PR:=master}
|
||||
export RELEASE_BODY=https://github.com/nextcloud/desktop
|
||||
|
||||
if [ $TAG_NAME != "master" ]; then
|
||||
TAG_NAME="PR-$TAG_NAME"
|
||||
RELEASE_BODY="nextcloud/desktop#$PR"
|
||||
fi
|
||||
set -xe
|
||||
|
||||
cd /build
|
||||
|
||||
# AppImage
|
||||
export APPIMAGE=$(readlink -f ./Nextcloud*.AppImage)
|
||||
export BASENAME=$(basename ${APPIMAGE})
|
||||
# Upload AppImage
|
||||
APPIMAGE=$(readlink -f ./Nextcloud*.AppImage)
|
||||
BASENAME=$(basename ${APPIMAGE})
|
||||
|
||||
if ! test -e $APPIMAGE ; then
|
||||
exit 1
|
||||
if curl --max-time 900 --upload-file ${APPIMAGE} https://transfer.sh/${BASENAME}
|
||||
then
|
||||
echo
|
||||
echo "Get the AppImage at the link above!"
|
||||
else
|
||||
echo
|
||||
echo "Upload failed, however this is an optional step."
|
||||
fi
|
||||
|
||||
echo "Found AppImage: $BASENAME"
|
||||
|
||||
if [ $TAG_NAME != "master" ]; then
|
||||
# Delete all old comments in desktop PR, starting with "AppImage file:"
|
||||
oldComments=$(curl 2>/dev/null -u $GIT_USERNAME:$GIT_TOKEN -X GET $DESKTOP_API_BASE_URL/issues/$PR/comments | jq '.[] | (.id |tostring) + "|" + (.user.login | test("'${GIT_USERNAME}'") | tostring) + "|" + (.body | test("AppImage file:.*") | tostring)' | grep "true|true" | tr -d "\"" | cut -f1 -d"|")
|
||||
|
||||
if [[ "$oldComments" != "" ]]; then
|
||||
echo $oldComments | while read comment ; do
|
||||
curl 2>/dev/null -u $GIT_USERNAME:$GIT_TOKEN -X DELETE $DESKTOP_API_BASE_URL/issues/comments/$comment
|
||||
done
|
||||
fi
|
||||
fi
|
||||
|
||||
# Helper functions
|
||||
urldecode() { : "${*//+/ }"; echo -e "${_//%/\\x}"; }
|
||||
|
||||
create_release()
|
||||
{
|
||||
name=$TAG_NAME
|
||||
body=$RELEASE_BODY
|
||||
tagName=$TAG_NAME
|
||||
echo $(curl 2>/dev/null -u $GIT_USERNAME:$GIT_TOKEN -X POST $API_BASE_URL/releases -d "{ \"tag_name\": \"$tagName\", \"target_commitish\": \"master\", \"name\": \"$name\", \"body\": \"$body\", \"draft\": false, \"prerelease\": true }")
|
||||
}
|
||||
|
||||
get_release()
|
||||
{
|
||||
tagName=$TAG_NAME
|
||||
echo $(curl 2>/dev/null -u $GIT_USERNAME:$GIT_TOKEN -X GET $API_BASE_URL/releases/tags/$tagName)
|
||||
}
|
||||
|
||||
get_release_assets()
|
||||
{
|
||||
releaseId=$1
|
||||
echo $(curl 2>/dev/null -u $GIT_USERNAME:$GIT_TOKEN -X GET $API_BASE_URL/releases/$releaseId/assets)
|
||||
}
|
||||
|
||||
upload_release_asset()
|
||||
{
|
||||
uploadUrl=$1
|
||||
echo $(curl --max-time 900 -u $GIT_USERNAME:$GIT_TOKEN -X POST $uploadUrl --header "Content-Type: application/octet-stream" --upload-file $APPIMAGE)
|
||||
}
|
||||
|
||||
delete_release_asset()
|
||||
{
|
||||
assetId=$1
|
||||
curl 2>/dev/null -u $GIT_USERNAME:$GIT_TOKEN -X DELETE $API_BASE_URL/releases/assets/$assetId
|
||||
}
|
||||
|
||||
# Try to get an already existing release
|
||||
json=$(get_release)
|
||||
|
||||
releaseId=$(echo $json | jq -r '.id')
|
||||
uploadUrl=$(echo $json | jq -r '.upload_url')
|
||||
|
||||
if [[ "$uploadUrl" == "null" ]]; then
|
||||
# Try to create a release
|
||||
json=$(create_release)
|
||||
|
||||
releaseId=$(echo $json | jq -r '.id')
|
||||
uploadUrl=$(echo $json | jq -r '.upload_url')
|
||||
|
||||
if [[ "$uploadUrl" == "null" ]]; then
|
||||
echo "create_release failed: $json"
|
||||
exit 2
|
||||
fi
|
||||
fi
|
||||
|
||||
# Prepare upload url
|
||||
uploadUrl=$(echo "${uploadUrl/'{?name,label}'/?name=$BASENAME}")
|
||||
|
||||
# Try to delete existing AppImage assets for this PR
|
||||
assets=$(get_release_assets $releaseId)
|
||||
|
||||
for data in $(echo $assets | jq -r '.[] | @uri'); do
|
||||
json=$(urldecode "$data")
|
||||
|
||||
assetId=$(echo $json | jq -r '.id')
|
||||
name=$(echo $json | jq -r '.name')
|
||||
|
||||
if [[ "$name" == *.AppImage ]]; then
|
||||
echo "Deleting old asset: $name"
|
||||
$(delete_release_asset $assetId)
|
||||
fi
|
||||
done
|
||||
|
||||
# Upload release asset
|
||||
echo "Uploading new asset: $BASENAME"
|
||||
|
||||
json=$(upload_release_asset "$uploadUrl")
|
||||
browserDownloadUrl=$(echo $json | jq -r '.browser_download_url')
|
||||
|
||||
if [[ "$browserDownloadUrl" == "null" ]]; then
|
||||
echo "upload_release_asset failed: $json"
|
||||
exit 3
|
||||
fi
|
||||
|
||||
if [ $TAG_NAME != "master" ]; then
|
||||
# Create comment in desktop PR
|
||||
curl 2>/dev/null -u $GIT_USERNAME:$GIT_TOKEN -X POST $DESKTOP_API_BASE_URL/issues/$PR/comments -d "{ \"body\" : \"AppImage file: [$BASENAME]($browserDownloadUrl) <br/><br/>To test this change/fix you can simply download above AppImage file and test it. <br/><br/>Please make sure to quit your existing Nextcloud app and backup your data. \" }"
|
||||
fi
|
||||
|
||||
echo
|
||||
echo "AppImage link: $browserDownloadUrl"
|
||||
# Don't let the Drone build fail
|
||||
exit 0
|
||||
@@ -11,7 +11,7 @@ else()
|
||||
set(MAC_INSTALLER_DO_CUSTOM_BACKGROUND "0")
|
||||
endif()
|
||||
|
||||
find_package(Qt5 5.12 COMPONENTS Core REQUIRED)
|
||||
find_package(Qt5 5.6 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)
|
||||
|
||||
365
admin/osx/macdeployqt.py
Executable file
@@ -0,0 +1,365 @@
|
||||
#!/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()
|
||||
20
admin/qt/patches/README.md
Normal file
@@ -0,0 +1,20 @@
|
||||
## 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>
|
||||
```
|
||||
@@ -0,0 +1,27 @@
|
||||
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
|
||||
@@ -0,0 +1,148 @@
|
||||
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;
|
||||
@@ -0,0 +1,276 @@
|
||||
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:
|
||||
|
Before Width: | Height: | Size: 270 KiB After Width: | Height: | Size: 254 KiB |
@@ -9,11 +9,6 @@ import os
|
||||
import polib
|
||||
from optparse import OptionParser
|
||||
|
||||
try:
|
||||
unicode
|
||||
except NameError:
|
||||
unicode = str
|
||||
|
||||
parser = OptionParser()
|
||||
parser.add_option("-o", "--output", dest="output",
|
||||
help="Directory for localized output", default="../Shared/installer/nightly_localized.nsi")
|
||||
@@ -131,7 +126,7 @@ for root,dirs,files in os.walk(options.podir):
|
||||
if filename in localeToName:
|
||||
language = localeToName[filename]
|
||||
translationCache[language] = collections.OrderedDict()
|
||||
|
||||
|
||||
po = polib.pofile(os.path.join(root,file))
|
||||
for entry in po.translated_entries():
|
||||
# Loop through all our labels and add translation (each translation may have multiple labels)
|
||||
@@ -170,14 +165,14 @@ for language,translations in translationCache.iteritems():
|
||||
for label,value in translations.iteritems():
|
||||
NSINewLines.append( tostr('StrCpy $%s "%s"\n' % (label,value)) )
|
||||
if language.upper() == options.lang.upper():
|
||||
NSIDeclarations.append( tostr('Var %s\n' % label) )
|
||||
NSIDeclarations.append( tostr('Var %s\n' % label) )
|
||||
|
||||
count += 1
|
||||
NSIWorkingFile = open('%s/%s.nsh' % (options.output, language),"w")
|
||||
NSIWorkingFile.writelines(NSINewLines)
|
||||
NSIWorkingFile.close()
|
||||
print ( "%i translations merged for language '%s'"%(count,language) )
|
||||
|
||||
|
||||
# Finally, let's write languages.nsh and declarations.nsh
|
||||
NSIWorkingFile = open('%s/languages.nsh' % options.output,"w")
|
||||
NSIWorkingFile.writelines(NSILanguages)
|
||||
@@ -186,5 +181,5 @@ NSIWorkingFile.close()
|
||||
NSIWorkingFile = open('%s/declarations.nsh' % options.output,"w")
|
||||
NSIWorkingFile.writelines(NSIDeclarations)
|
||||
NSIWorkingFile.close()
|
||||
|
||||
|
||||
print ( "NSI Localization Operation Complete" )
|
||||
|
||||
|
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 25 KiB |
|
Before Width: | Height: | Size: 151 KiB After Width: | Height: | Size: 151 KiB |
1
binary
Submodule
44
client.qrc
Normal file
@@ -0,0 +1,44 @@
|
||||
<RCC>
|
||||
<qresource prefix="/client">
|
||||
<file>resources/dialog-close.png</file>
|
||||
<file>resources/dialog-ok.png</file>
|
||||
<file>resources/dialog-cancel.png</file>
|
||||
<file>resources/folder-sync.png</file>
|
||||
<file>resources/folder-sync@2x.png</file>
|
||||
<file>resources/task-ongoing.png</file>
|
||||
<file>resources/view-refresh.png</file>
|
||||
<file>resources/warning.png</file>
|
||||
<file>resources/warning@2x.png</file>
|
||||
<file>resources/settings.png</file>
|
||||
<file>resources/settings@2x.png</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/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/folder-grey.png</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/state-info.svg</file>
|
||||
</qresource>
|
||||
<qresource prefix="/"/>
|
||||
</RCC>
|
||||
@@ -10,7 +10,7 @@ set(CMAKE_INCLUDE_CURRENT_DIR ON)
|
||||
|
||||
# Put the include dirs which are in the source or build tree
|
||||
# before all other include dirs, so the headers in the sources
|
||||
# are preferred over the already installed ones
|
||||
# are prefered over the already installed ones
|
||||
# since cmake 2.4.1
|
||||
set(CMAKE_INCLUDE_DIRECTORIES_PROJECT_BEFORE ON)
|
||||
|
||||
|
||||
@@ -27,11 +27,9 @@
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>@MIRALL_VERSION_STRING@</string>
|
||||
<key>NSHumanReadableCopyright</key>
|
||||
<string>(C) 2014-2020 @APPLICATION_VENDOR@</string>
|
||||
<string>(C) 2014-2019 @APPLICATION_VENDOR@</string>
|
||||
<key>NSSupportsAutomaticGraphicsSwitching</key>
|
||||
<true/>
|
||||
<key>NSRequiresAquaSystemAppearance</key>
|
||||
<false/>
|
||||
<key>SUShowReleaseNotes</key>
|
||||
<false/>
|
||||
<key>SUPublicDSAKeyFile</key>
|
||||
|
||||
@@ -1,37 +0,0 @@
|
||||
# Enable address sanitizer (gcc/clang only)
|
||||
if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang")
|
||||
set(SANITIZERS)
|
||||
set(SANITIZER_EXTRA_FLAGS " -g")
|
||||
|
||||
macro(add_sanitizer_option variable flag help)
|
||||
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()
|
||||
mark_as_advanced(${variable})
|
||||
endmacro()
|
||||
|
||||
add_sanitizer_option(SANITIZE_ADDRESS "address"
|
||||
"AddressSanitizer (detects memory violations, buffer overflows, memory leaks)")
|
||||
add_sanitizer_option(SANITIZE_LEAK "leak"
|
||||
"standalone LeakSanitizer (detects memory leaks only)")
|
||||
add_sanitizer_option(SANITIZE_MEMORY "memory"
|
||||
"MemorySanitizer (detects reads in uninitialized memory)")
|
||||
add_sanitizer_option(SANITIZE_UNDEFINED "undefined"
|
||||
"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()
|
||||
@@ -8,12 +8,12 @@
|
||||
#cmakedefine CRASHREPORTER_EXECUTABLE "@CRASHREPORTER_EXECUTABLE@"
|
||||
#define SOCKETAPI_TEAM_IDENTIFIER_PREFIX "@SOCKETAPI_TEAM_IDENTIFIER_PREFIX@"
|
||||
|
||||
#cmakedefine APPLICATION_DOMAIN @APPLICATION_DOMAIN@
|
||||
#cmakedefine THEME_CLASS @THEME_CLASS@
|
||||
#cmakedefine THEME_INCLUDE @THEME_INCLUDE@
|
||||
|
||||
#cmakedefine APPLICATION_NAME "@APPLICATION_NAME@"
|
||||
#cmakedefine APPLICATION_VENDOR "@APPLICATION_VENDOR@"
|
||||
#cmakedefine APPLICATION_DOMAIN "@APPLICATION_DOMAIN@"
|
||||
#cmakedefine APPLICATION_REV_DOMAIN "@APPLICATION_REV_DOMAIN@"
|
||||
#cmakedefine APPLICATION_SHORTNAME "@APPLICATION_SHORTNAME@"
|
||||
#cmakedefine APPLICATION_EXECUTABLE "@APPLICATION_EXECUTABLE@"
|
||||
@@ -21,7 +21,6 @@
|
||||
#cmakedefine APPLICATION_HELP_URL "@APPLICATION_HELP_URL@"
|
||||
#cmakedefine APPLICATION_ICON_NAME "@APPLICATION_ICON_NAME@"
|
||||
#cmakedefine APPLICATION_SERVER_URL "@APPLICATION_SERVER_URL@"
|
||||
#cmakedefine LINUX_APPLICATION_ID "@LINUX_APPLICATION_ID@"
|
||||
#cmakedefine APPLICATION_WIZARD_HEADER_BACKGROUND_COLOR "@APPLICATION_WIZARD_HEADER_BACKGROUND_COLOR@"
|
||||
#cmakedefine APPLICATION_WIZARD_HEADER_TITLE_COLOR "@APPLICATION_WIZARD_HEADER_TITLE_COLOR@"
|
||||
#cmakedefine APPLICATION_WIZARD_USE_CUSTOM_LOGO "@APPLICATION_WIZARD_USE_CUSTOM_LOGO@"
|
||||
|
||||
@@ -87,7 +87,7 @@ To prevent automatic updates and disallow manual overrides:
|
||||
|
||||
1. Edit this Registry key:
|
||||
|
||||
``HKEY_LOCAL_MACHINE\Software\Policies\Nextcloud GmbH\Nextcloud``
|
||||
``HKEY_LOCAL_MACHINE\Software\Policies\Nextcloud\Nextcloud``
|
||||
|
||||
2. Add the key ``skipUpdateCheck`` (of type DWORD).
|
||||
|
||||
|
||||
@@ -13,19 +13,11 @@ desktop client.
|
||||
|
||||
These instructions are updated to work with version |version| of the Nextcloud Client.
|
||||
|
||||
You have two possibilities to clone the repo.
|
||||
Getting Source Code
|
||||
-------------------
|
||||
|
||||
First option is As [remote URL](https://help.github.com/en/articles/which-remote-url-should-i-use) you can choose between cloning with HTTPS URL's, which is recommended or cloning with SSH URL's.
|
||||
|
||||
[https://github.com/nextcloud/desktop.git](https://github.com/nextcloud/desktop.git)
|
||||
|
||||
When you don't have SSH key added to your GitHub account, than use HTTPS.
|
||||
|
||||
When you no part of the nextcloud organisation, clone with HTTPS:
|
||||
|
||||
```
|
||||
$ git clone git@github.com:nextcloud/desktop.git
|
||||
```
|
||||
The :ref:`generic-build-instructions` pull the latest code directly from
|
||||
GitHub, and work on Linux, macOS, and Windows.
|
||||
|
||||
macOS
|
||||
-----
|
||||
@@ -55,7 +47,7 @@ To set up your build environment for development using HomeBrew_:
|
||||
|
||||
5. Install a Qt5 version with qtwebkit support::
|
||||
|
||||
brew install qt5
|
||||
brew install qt5 --with-qtwebkit
|
||||
|
||||
6. Install any missing dependencies::
|
||||
|
||||
@@ -75,23 +67,10 @@ To set up your build environment for development using HomeBrew_:
|
||||
|
||||
10. Install the Packages_ package creation tool.
|
||||
|
||||
11. Enable git submodules:
|
||||
```
|
||||
$ cd desktop
|
||||
$ git submodule init
|
||||
$ git submodule update
|
||||
```
|
||||
|
||||
12. Generate the build files:
|
||||
```
|
||||
$ cd build
|
||||
$ cmake .. -DCMAKE_INSTALL_PREFIX=~/nextcloud-desktop-client -DCMAKE_BUILD_TYPE=Debug -DNO_SHIBBOLETH=1
|
||||
```
|
||||
|
||||
13. Compile and install:
|
||||
```
|
||||
$ make install
|
||||
```
|
||||
11. In the build directory, run ``admin/osx/create_mac.sh <build_dir> <install_dir>``.
|
||||
If you have a developer signing certificate, you can specify
|
||||
its Common Name as a third parameter (use quotes) to have the package
|
||||
signed automatically.
|
||||
|
||||
.. note:: Contrary to earlier versions, Nextcloud 1.7 and later are packaged
|
||||
as a ``pkg`` installer. Do not call "make package" at any time when
|
||||
|
||||
@@ -7,7 +7,7 @@ Conflicts
|
||||
Overview
|
||||
--------
|
||||
|
||||
The Nextcloud desktop client uploads local changes and downloads remote changes.
|
||||
The ownCloud desktop client uploads local changes and downloads remote changes.
|
||||
When a file has changed on the local side and on the remote between synchronization
|
||||
runs the client will be unable to resolve the situation on its own. It will
|
||||
create a conflict file with the local version, download the remote version and
|
||||
|
||||
@@ -27,7 +27,7 @@ download page.
|
||||
System Requirements
|
||||
----------------------------------
|
||||
|
||||
- Windows 8.1+
|
||||
- Windows 7+
|
||||
- macOS 10.7+ (**64-bit only**)
|
||||
- CentOS 6 & 7 (64-bit only)
|
||||
- Debian 8.0 & 9.0
|
||||
@@ -36,7 +36,8 @@ System Requirements
|
||||
- openSUSE Leap 42.2 & 42.3
|
||||
|
||||
.. 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
|
||||
-------------------
|
||||
|
||||
@@ -8,34 +8,6 @@ repositories to the same state. Contrary to the GUI-based client,
|
||||
``nextcloudcmd`` does not repeat synchronizations on its own. It also does not
|
||||
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
|
||||
URL using the following command::
|
||||
|
||||
@@ -112,13 +84,3 @@ Exclude List
|
||||
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
|
||||
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>
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
<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>
|
||||
BIN
resources/account.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 1.9 KiB |
BIN
resources/account@2x.png
Normal file
|
After Width: | Height: | Size: 2.7 KiB |
BIN
resources/activity.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
10
resources/activity.svg
Normal file
@@ -0,0 +1,10 @@
|
||||
<?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>
|
||||
|
After Width: | Height: | Size: 597 B |
BIN
resources/activity@2x.png
Normal file
|
After Width: | Height: | Size: 1.9 KiB |
BIN
resources/add.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
@@ -1,3 +1,4 @@
|
||||
<?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>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 400 B After Width: | Height: | Size: 456 B |
4
resources/close.svg
Normal file
@@ -0,0 +1,4 @@
|
||||
<?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>
|
||||
|
After Width: | Height: | Size: 301 B |
|
Before Width: | Height: | Size: 393 B After Width: | Height: | Size: 393 B |
|
Before Width: | Height: | Size: 777 B After Width: | Height: | Size: 777 B |