mirror of
https://github.com/chylex/Nextcloud-Desktop.git
synced 2026-04-10 18:57:40 +02:00
Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
477614b8c9 | ||
|
|
9d060e5e55 |
22
.clang-tidy
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
|
|
||||||
301
.drone.yml
301
.drone.yml
@@ -1,19 +1,126 @@
|
|||||||
kind: pipeline
|
kind: pipeline
|
||||||
name: qt-5.12
|
name: qt-5.7
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: build and test
|
- 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:
|
commands:
|
||||||
# Install QtKeyChain
|
# Install QtKeyChain
|
||||||
- /bin/bash -c "
|
- /bin/bash -c "
|
||||||
export CC=gcc-7 &&
|
export CC=gcc-7 &&
|
||||||
export CXX=g++-7 &&
|
export CXX=g++-7 &&
|
||||||
export QT_BASE_DIR=/opt/qt5.12.9 &&
|
source /opt/qt510/bin/qt510-env.sh &&
|
||||||
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 &&
|
|
||||||
cd /tmp &&
|
cd /tmp &&
|
||||||
git clone https://github.com/frankosterfeld/qtkeychain.git &&
|
git clone https://github.com/frankosterfeld/qtkeychain.git &&
|
||||||
cd qtkeychain &&
|
cd qtkeychain &&
|
||||||
@@ -27,18 +134,137 @@ steps:
|
|||||||
- /bin/bash -c "
|
- /bin/bash -c "
|
||||||
export CC=gcc-7 &&
|
export CC=gcc-7 &&
|
||||||
export CXX=g++-7 &&
|
export CXX=g++-7 &&
|
||||||
export QT_BASE_DIR=/opt/qt5.12.9 &&
|
source /opt/qt510/bin/qt510-env.sh &&
|
||||||
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 &&
|
mkdir build &&
|
||||||
cd 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 &&
|
make &&
|
||||||
useradd -m -s /bin/bash test &&
|
useradd -m -s /bin/bash test &&
|
||||||
chown -R test:test . &&
|
chown -R test:test . &&
|
||||||
su -c 'ASAN_OPTIONS=detect_leaks=0 ctest --output-on-failure' test"
|
su -c '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-2
|
||||||
|
commands:
|
||||||
|
# Install QtKeyChain
|
||||||
|
- /bin/bash -c "
|
||||||
|
export CC=gcc-7 &&
|
||||||
|
export CXX=g++-7 &&
|
||||||
|
source /opt/qt512/bin/qt512-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/qt512/bin/qt512-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:
|
trigger:
|
||||||
branch:
|
branch:
|
||||||
- master
|
- master
|
||||||
@@ -52,17 +278,13 @@ name: qt-5.12-clang
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: build and test
|
- name: build and test
|
||||||
image: nextcloudci/client-5.12:client-5.12-9
|
image: nextcloudci/client-5.12:client-5.12-2
|
||||||
commands:
|
commands:
|
||||||
# Install QtKeyChain
|
# Install QtKeyChain
|
||||||
- /bin/bash -c "
|
- /bin/bash -c "
|
||||||
export CC=clang-6.0 &&
|
export CC=clang-6.0 &&
|
||||||
export CXX=clang++-6.0 &&
|
export CXX=clang++-6.0 &&
|
||||||
export QT_BASE_DIR=/opt/qt5.12.9 &&
|
source /opt/qt512/bin/qt512-env.sh &&
|
||||||
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 &&
|
|
||||||
cd /tmp &&
|
cd /tmp &&
|
||||||
git clone https://github.com/frankosterfeld/qtkeychain.git &&
|
git clone https://github.com/frankosterfeld/qtkeychain.git &&
|
||||||
cd qtkeychain &&
|
cd qtkeychain &&
|
||||||
@@ -76,20 +298,14 @@ steps:
|
|||||||
- /bin/bash -c "
|
- /bin/bash -c "
|
||||||
export CC=clang-6.0 &&
|
export CC=clang-6.0 &&
|
||||||
export CXX=clang++-6.0 &&
|
export CXX=clang++-6.0 &&
|
||||||
export QT_BASE_DIR=/opt/qt5.12.9 &&
|
source /opt/qt512/bin/qt512-env.sh &&
|
||||||
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 &&
|
mkdir build &&
|
||||||
cd 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 &&
|
make &&
|
||||||
useradd -m -s /bin/bash test &&
|
useradd -m -s /bin/bash test &&
|
||||||
chown -R test:test . &&
|
chown -R test:test . &&
|
||||||
su -c 'ASAN_OPTIONS=detect_leaks=0 ctest --output-on-failure' test"
|
su -c 'ctest --output-on-failure' test"
|
||||||
# Static analysis with clang-tidy
|
|
||||||
- "! run-clang-tidy-6.0 -p build -quiet | grep -A 5 ': error:'"
|
|
||||||
trigger:
|
trigger:
|
||||||
branch:
|
branch:
|
||||||
- master
|
- master
|
||||||
@@ -103,41 +319,16 @@ name: AppImage
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: build
|
- name: build
|
||||||
image: nextcloudci/client-5.12:client-5.12-9
|
image: nextcloudci/client-5.12:client-5.12-2
|
||||||
environment:
|
|
||||||
CI_UPLOAD_GIT_TOKEN:
|
|
||||||
from_secret: CI_UPLOAD_GIT_TOKEN
|
|
||||||
CI_UPLOAD_GIT_USERNAME:
|
|
||||||
from_secret: CI_UPLOAD_GIT_USERNAME
|
|
||||||
commands:
|
commands:
|
||||||
- /bin/bash -c "./admin/linux/build-appimage.sh"
|
- /bin/bash -c "./admin/linux/build-appimage.sh"
|
||||||
- /bin/bash -c "./admin/linux/upload-appimage.sh" || echo "Upload failed, however this is an optional step."
|
|
||||||
trigger:
|
trigger:
|
||||||
branch:
|
branch:
|
||||||
- master
|
- master
|
||||||
event:
|
event:
|
||||||
- pull_request
|
- pull_request
|
||||||
- push
|
- push
|
||||||
---
|
|
||||||
kind: pipeline
|
|
||||||
name: Debian
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: build
|
|
||||||
image: nextcloudci/client-debian-ci:client-debian-ci-2
|
|
||||||
commands:
|
|
||||||
- /bin/bash -c "./admin/linux/debian/drone-build.sh"
|
|
||||||
environment:
|
|
||||||
DEBIAN_SECRET_KEY:
|
|
||||||
from_secret: DEBIAN_SECRET_KEY
|
|
||||||
DEBIAN_SECRET_IV:
|
|
||||||
from_secret: DEBIAN_SECRET_IV
|
|
||||||
trigger:
|
|
||||||
branch:
|
|
||||||
- master
|
|
||||||
event:
|
|
||||||
- pull_request
|
|
||||||
- push
|
|
||||||
---
|
---
|
||||||
kind: pipeline
|
kind: pipeline
|
||||||
name: Documentation
|
name: Documentation
|
||||||
|
|||||||
3
.github/FUNDING.yml
vendored
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
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
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 }}
|
|
||||||
9
.gitignore
vendored
9
.gitignore
vendored
@@ -15,18 +15,9 @@ cscope.*
|
|||||||
tags
|
tags
|
||||||
t1.cfg
|
t1.cfg
|
||||||
|
|
||||||
## Ignore Visual Studio Code config & environment files
|
|
||||||
|
|
||||||
.vs/
|
|
||||||
.vscode/
|
|
||||||
|
|
||||||
## Ignore Visual Studio temporary files, build results, and
|
## Ignore Visual Studio temporary files, build results, and
|
||||||
## files generated by popular Visual Studio add-ons.
|
## files generated by popular Visual Studio add-ons.
|
||||||
|
|
||||||
# CMake integration on VS2019+
|
|
||||||
|
|
||||||
CMakeSettings.json
|
|
||||||
|
|
||||||
# User-specific files
|
# User-specific files
|
||||||
*.suo
|
*.suo
|
||||||
*.user
|
*.user
|
||||||
|
|||||||
6
.gitmodules
vendored
6
.gitmodules
vendored
@@ -1,3 +1,9 @@
|
|||||||
|
[submodule "src/3rdparty/qtmacgoodies"]
|
||||||
|
path = src/3rdparty/qtmacgoodies
|
||||||
|
url = https://github.com/camilasan/qtmacgoodies.git
|
||||||
|
[submodule "binary"]
|
||||||
|
path = binary
|
||||||
|
url = git://github.com/owncloud/owncloud-client-binary.git
|
||||||
[submodule "src/3rdparty/libcrashreporter-qt"]
|
[submodule "src/3rdparty/libcrashreporter-qt"]
|
||||||
path = src/3rdparty/libcrashreporter-qt
|
path = src/3rdparty/libcrashreporter-qt
|
||||||
url = git://github.com/dschmidt/libcrashreporter-qt.git
|
url = git://github.com/dschmidt/libcrashreporter-qt.git
|
||||||
|
|||||||
@@ -199,6 +199,6 @@ X-GNOME-Autostart-Delay=3
|
|||||||
|
|
||||||
# Translations
|
# Translations
|
||||||
Icon[bg_BG]=@APPLICATION_ICON_NAME@
|
Icon[bg_BG]=@APPLICATION_ICON_NAME@
|
||||||
Name[bg_BG]=@APPLICATION_NAME@ десктоп клиент за синхронизиране
|
Name[bg_BG]=@APPLICATION_NAME@ клиент за синхронизиране на десктоп
|
||||||
Comment[bg_BG]=@APPLICATION_NAME@ десктоп клиент за синхронизиране
|
Comment[bg_BG]=@APPLICATION_NAME@ клиент за синхронизиране на десктоп
|
||||||
GenericName[bg_BG]=Синхронизиране на папка
|
GenericName[bg_BG]=Синхронизиране на папка
|
||||||
|
|||||||
@@ -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
|
# Translations
|
||||||
Icon[ca]=@APPLICATION_ICON_NAME@
|
Icon[ca]=@APPLICATION_ICON_NAME@
|
||||||
Name[ca]=Client de sincronització d'escriptori del @APPLICATION_NAME@
|
Name[ca]=@APPLICATION_NAME@ client de sincronització d'escriptori
|
||||||
Comment[ca]=Client de sincronització d'escriptori del @APPLICATION_NAME@
|
Comment[ca]=@APPLICATION_NAME@ client de sincronització d'escriptori
|
||||||
GenericName[ca]=Directori de sincronització
|
GenericName[ca]=Directori de sincronització
|
||||||
|
|||||||
@@ -198,7 +198,7 @@ X-GNOME-Autostart-Delay=3
|
|||||||
|
|
||||||
|
|
||||||
# Translations
|
# Translations
|
||||||
Icon[cs_CZ]=@APPLICATION_ICON_NAME@
|
Icon[cs_CZ]=@NAZEV_IKONY_APLIKACE@
|
||||||
Name[cs_CZ]=@APPLICATION_NAME@ synchronizační klient pro desktop
|
Name[cs_CZ]=@APPLICATION_NAME@ synchronizační klient pro desktop
|
||||||
Comment[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
|
GenericName[cs_CZ]=Synchronizace složek
|
||||||
|
|||||||
@@ -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[cy_GB]=@APPLICATION_ICON_NAME@
|
|
||||||
Name[cy_GB]=@APPLICATION_NAME@ cleient cydweddu bwrdd gwaith
|
|
||||||
Comment[cy_GB]=@APPLICATION_NAME@ cleient cydweddu bwrdd gwaith
|
|
||||||
GenericName[cy_GB]=Cydweddu Ffolder
|
|
||||||
@@ -198,7 +198,7 @@ X-GNOME-Autostart-Delay=3
|
|||||||
|
|
||||||
|
|
||||||
# Translations
|
# Translations
|
||||||
Icon[de_DE]=@APPLICATION_ICON_NAME@
|
Icon[de]=@APPLICATION_ICON_NAME@
|
||||||
Name[de_DE]=@APPLICATION_NAME@ Client zur Desktop-Synchronisierung
|
Name[de]=@APPLICATION_NAME@ Client zur Desktop-Synchronisation
|
||||||
Comment[de_DE]=@APPLICATION_NAME@ Client zur Desktop-Synchronisierung
|
Comment[de]=@APPLICATION_NAME@ Client zur Desktop-Synchronisation
|
||||||
GenericName[de_DE]=Synchronisierungsordner
|
GenericName[de]=Synchronisationsordner
|
||||||
|
|||||||
@@ -198,7 +198,4 @@ X-GNOME-Autostart-Delay=3
|
|||||||
|
|
||||||
|
|
||||||
# Translations
|
# Translations
|
||||||
Icon[el]=@APPLICATION_ICON_NAME@
|
|
||||||
Name[el]=@APPLICATION_NAME@ πρόγραμμα συγχρονισμού
|
|
||||||
Comment[el]=@APPLICATION_NAME@ πρόγραμμα συγχρονισμού
|
|
||||||
GenericName[el]=Συγχρονισμός φακέλου
|
GenericName[el]=Συγχρονισμός φακέλου
|
||||||
|
|||||||
@@ -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
|
|
||||||
@@ -198,7 +198,6 @@ X-GNOME-Autostart-Delay=3
|
|||||||
|
|
||||||
|
|
||||||
# Translations
|
# Translations
|
||||||
Icon[hr]=@APPLICATION_ICON_NAME@
|
Name[hr]=sinkronizacija računala
|
||||||
Name[hr]=@APPLICATION_NAME@ klijent za sink. računala
|
Comment[hr]=klijent za sinkronizaciju računala
|
||||||
Comment[hr]=@APPLICATION_NAME@ klijent za sinkronizaciju računala
|
|
||||||
GenericName[hr]=Sinkronizacija mapa
|
GenericName[hr]=Sinkronizacija mapa
|
||||||
|
|||||||
@@ -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[mk]=@APPLICATION_ICON_NAME@
|
|
||||||
Name[mk]=@APPLICATION_NAME@ клиент за синхронизација на компјутер
|
|
||||||
Comment[mk]=@APPLICATION_NAME@ клиент за синхронизација на компјутер
|
|
||||||
GenericName[mk]=Папка за синхронизација
|
|
||||||
@@ -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
|
|
||||||
@@ -201,4 +201,4 @@ X-GNOME-Autostart-Delay=3
|
|||||||
Icon[ro]=@APPLICATION_ICON_NAME@
|
Icon[ro]=@APPLICATION_ICON_NAME@
|
||||||
Name[ro]=@APPLICATION_NAME@ client de sincronizare pentru desktop
|
Name[ro]=@APPLICATION_NAME@ client de sincronizare pentru desktop
|
||||||
Comment[ro]=@APPLICATION_NAME@ client de sincronizare pentru desktop
|
Comment[ro]=@APPLICATION_NAME@ client de sincronizare pentru desktop
|
||||||
GenericName[ro]=Sincronizare director
|
GenericName[ro]=Sincronizare dosare
|
||||||
|
|||||||
@@ -201,4 +201,4 @@ X-GNOME-Autostart-Delay=3
|
|||||||
Icon[sk_SK]=@APPLICATION_ICON_NAME@
|
Icon[sk_SK]=@APPLICATION_ICON_NAME@
|
||||||
Name[sk_SK]=@APPLICATION_NAME@ synchronizačný klient pre PC
|
Name[sk_SK]=@APPLICATION_NAME@ synchronizačný klient pre PC
|
||||||
Comment[sk_SK]=@APPLICATION_NAME@ synchronizačný klient pre PC
|
Comment[sk_SK]=@APPLICATION_NAME@ synchronizačný klient pre PC
|
||||||
GenericName[sk_SK]=Synchronizácia priečinkov
|
GenericName[sk_SK]=Synchnonizácia priečinkov
|
||||||
|
|||||||
@@ -199,6 +199,6 @@ X-GNOME-Autostart-Delay=3
|
|||||||
|
|
||||||
# Translations
|
# Translations
|
||||||
Icon[sl]=@APPLICATION_ICON_NAME@
|
Icon[sl]=@APPLICATION_ICON_NAME@
|
||||||
Name[sl]=@APPLICATION_NAME@ program za usklajevanje
|
Name[sl]=@APPLICATION_NAME@ odjemalec za usklajevanje
|
||||||
Comment[sl]=@APPLICATION_NAME@ program za usklajevanje
|
Comment[sl]=@APPLICATION_NAME@ odjemalec za usklajevanje
|
||||||
GenericName[sl]=Usklajevanje map
|
GenericName[sl]=Usklajevanje map
|
||||||
|
|||||||
@@ -199,6 +199,4 @@ X-GNOME-Autostart-Delay=3
|
|||||||
|
|
||||||
# Translations
|
# Translations
|
||||||
Icon[sv]=@APPLICATION_ICON_NAME@
|
Icon[sv]=@APPLICATION_ICON_NAME@
|
||||||
Name[sv]=@APPLICATION_NAME@ desktopssynkklient
|
|
||||||
Comment[sv]=@APPLICATION_NAME@ desktopssynkroniseringsklient
|
|
||||||
GenericName[sv]=Mappsynkronisering
|
GenericName[sv]=Mappsynkronisering
|
||||||
|
|||||||
@@ -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[sw]=@APPLICATION_ICON_NAME@
|
|
||||||
Name[sw]=Teja ya @APPLICATION_NAME@ ya kufanana faili kwa seva na faili ziko hapa
|
|
||||||
Comment[sw]=Teja ya @APPLICATION_NAME@ ya kufanana faili kwa seva na faili ziko hapa
|
|
||||||
GenericName[sw]=Fanana Kabrasha
|
|
||||||
@@ -201,4 +201,4 @@ X-GNOME-Autostart-Delay=3
|
|||||||
Icon[uk]=@APPLICATION_ICON_NAME@
|
Icon[uk]=@APPLICATION_ICON_NAME@
|
||||||
Name[uk]=@APPLICATION_NAME@ клієнт для ПК
|
Name[uk]=@APPLICATION_NAME@ клієнт для ПК
|
||||||
Comment[uk]=Клієнт синхронізації @APPLICATION_NAME@ для ПК
|
Comment[uk]=Клієнт синхронізації @APPLICATION_NAME@ для ПК
|
||||||
GenericName[uk]=Синхронізація тек
|
GenericName[uk]=Синхронізація каталогів
|
||||||
|
|||||||
@@ -198,7 +198,6 @@ X-GNOME-Autostart-Delay=3
|
|||||||
|
|
||||||
|
|
||||||
# Translations
|
# Translations
|
||||||
Icon[zh_TW]=@APPLICATION_ICON_NAME@
|
|
||||||
Name[zh_TW]=@APPLICATION_NAME@ 桌面同步客戶端
|
Name[zh_TW]=@APPLICATION_NAME@ 桌面同步客戶端
|
||||||
Comment[zh_TW]=@APPLICATION_NAME@ 桌面同步客戶端
|
Comment[zh_TW]=@APPLICATION_NAME@ 桌面同步客戶端
|
||||||
GenericName[zh_TW]=資料夾同步
|
GenericName[zh_TW]=資料夾同步
|
||||||
|
|||||||
@@ -123,15 +123,6 @@ if(NO_MSG_HANDLER)
|
|||||||
add_definitions(-DNO_MSG_HANDLER=1)
|
add_definitions(-DNO_MSG_HANDLER=1)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# this option builds the updater
|
|
||||||
option(BUILD_UPDATER "BUILD_UPDATER" OFF)
|
|
||||||
if(BUILD_UPDATER)
|
|
||||||
message("Compiling with updater")
|
|
||||||
add_definitions(-DBUILD_UPDATER=1)
|
|
||||||
else()
|
|
||||||
message("Compiling without updater")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# this option builds the shell integration
|
# this option builds the shell integration
|
||||||
option(BUILD_SHELL_INTEGRATION "BUILD_SHELL_INTEGRATION" ON)
|
option(BUILD_SHELL_INTEGRATION "BUILD_SHELL_INTEGRATION" ON)
|
||||||
|
|
||||||
@@ -181,9 +172,9 @@ if(APPLE)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(BUILD_CLIENT)
|
if(BUILD_CLIENT)
|
||||||
if(APPLE AND BUILD_UPDATER)
|
if(APPLE)
|
||||||
find_package(Sparkle)
|
find_package(Sparkle)
|
||||||
endif()
|
endif(APPLE)
|
||||||
|
|
||||||
if(UNIX)
|
if(UNIX)
|
||||||
find_package(INotify REQUIRED)
|
find_package(INotify REQUIRED)
|
||||||
@@ -212,24 +203,14 @@ if( WIN32 )
|
|||||||
add_definitions( -D__USE_MINGW_ANSI_STDIO=1 )
|
add_definitions( -D__USE_MINGW_ANSI_STDIO=1 )
|
||||||
add_definitions( -DNOMINMAX )
|
add_definitions( -DNOMINMAX )
|
||||||
# Get APIs from from Vista onwards.
|
# Get APIs from from Vista onwards.
|
||||||
add_definitions( -D_WIN32_WINNT=0x0601 )
|
add_definitions( -D_WIN32_WINNT=0x0600)
|
||||||
add_definitions( -DWINVER=0x0601 )
|
add_definitions( -DWINVER=0x0600)
|
||||||
if( MSVC )
|
|
||||||
# Use automatic overload for suitable CRT safe-functions
|
|
||||||
# See https://docs.microsoft.com/de-de/cpp/c-runtime-library/security-features-in-the-crt?view=vs-2019
|
|
||||||
add_definitions( -D_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES=1 )
|
|
||||||
# Also: Disable compiler warnings because we don't use Windows CRT safe-functions explicitly and don't intend to
|
|
||||||
# as this is a pure cross-platform source the only alternative would be a ton of ifdefs with calls to the _s version
|
|
||||||
add_definitions( -D_CRT_SECURE_NO_WARNINGS )
|
|
||||||
endif( MSVC )
|
|
||||||
endif( WIN32 )
|
endif( WIN32 )
|
||||||
|
|
||||||
if (APPLE)
|
if (APPLE)
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
include(SanitizerFlags)
|
|
||||||
|
|
||||||
# Handle Translations, pick all client_* files from trans directory.
|
# Handle Translations, pick all client_* files from trans directory.
|
||||||
file( GLOB TRANS_FILES ${CMAKE_SOURCE_DIR}/translations/client_*.ts)
|
file( GLOB TRANS_FILES ${CMAKE_SOURCE_DIR}/translations/client_*.ts)
|
||||||
set(TRANSLATIONS ${TRANS_FILES})
|
set(TRANSLATIONS ${TRANS_FILES})
|
||||||
|
|||||||
472
ChangeLog
472
ChangeLog
@@ -1,262 +1,5 @@
|
|||||||
ChangeLog
|
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
|
|
||||||
====================
|
|
||||||
|
|
||||||
version 2.5.3 (release 2019-07-22)
|
|
||||||
* Fix empty file wording in error log (small)
|
|
||||||
* Add Qt-5.12 to CI
|
|
||||||
* Fix a minor typo
|
|
||||||
* Libcloudproviders: Add missing check for Qt5DBus
|
|
||||||
* Fix several memory leaks in cloudproviders and add translation support
|
|
||||||
* Share link fixing
|
|
||||||
* New drone config
|
|
||||||
* Uses configuraion to determine if it should show empty folder popup.
|
|
||||||
* Simplify cmake command to make copy-pastable
|
|
||||||
* Updated default remote poll to 5 seconds #1115
|
|
||||||
* Fix memory leak with device pointer
|
|
||||||
* Added a nice UI for the E2E-enabled account first connect
|
|
||||||
* This should fix issue #1000
|
|
||||||
* Adds parameter to retrieve shares with its reshares.
|
|
||||||
* Fixed typo
|
|
||||||
* Fixed typo in "certificate"
|
|
||||||
* WebView: Properly handle usernames with spaces and plus signs in it
|
|
||||||
* Add error category for http file lock error status 423.
|
|
||||||
* Displays the uid_owner of a shared file.
|
|
||||||
* Minor text change in the link to help in the tab 'General'.
|
|
||||||
|
|
||||||
version 2.5.2 (release 2019-04-11)
|
|
||||||
* Handle spaces in username properly in login flow
|
|
||||||
* Wizard: show an error message if there is no enough free space in the local folder
|
|
||||||
* Removed whitespace from string
|
|
||||||
* Do not add double slash to login flow url
|
|
||||||
* Fix login flow with system proxy
|
|
||||||
* Start with easier theming
|
|
||||||
* Do not display dismissed notifications
|
|
||||||
* Fixed l18n issue. Added space for separating string
|
|
||||||
* Add invalid certiticate messagebox
|
|
||||||
* Correct app passwords link
|
|
||||||
* Be less verbose with logging
|
|
||||||
* Fix typo in translation string
|
|
||||||
* Add a command line option to launch the client in the background
|
|
||||||
* Support Ubuntu Disco Dingo
|
|
||||||
* Added missing Include
|
|
||||||
* Make sure _profile and _page are deleted in the correct order
|
|
||||||
* Fix KDEInstallDirs deprecation warnings
|
|
||||||
* Removed Stylesheet
|
|
||||||
|
|
||||||
version 2.5.1 (release 2019-01-06)
|
|
||||||
* Fixup the port in server notification URLs
|
|
||||||
* GUI: let Clang-Tidy modernize nullptr & override usage
|
|
||||||
* Improve the slide show
|
|
||||||
* Libsync: let Clang-Tidy modernize nullptr & override usage
|
|
||||||
* SettingsDialog: fix a little glitch in the account tool button size
|
|
||||||
* SettingsDialog: tweak color aware icons
|
|
||||||
* More verbose error and proper app name on configuration read error
|
|
||||||
* Fix cmake build using WITH_PROVIDERS=OFF
|
|
||||||
* Debian/Ubuntu target repository update
|
|
||||||
* Change man page names and contents for nextcloud
|
|
||||||
* Share dialog alignment
|
|
||||||
* Fixed typo
|
|
||||||
* Change link to docs for NC 15
|
|
||||||
* Do not fetch activities if they are not enabled
|
|
||||||
* Do not read system exclude list if user exclude is present
|
|
||||||
* Fix the activity loop
|
|
||||||
* Write the actual folder to the log
|
|
||||||
* Fix appname for Nautilus integration script
|
|
||||||
|
|
||||||
version 2.5.0 (release 2018-11-14)
|
|
||||||
* End to end encryption
|
|
||||||
* New Web login flow
|
|
||||||
* UI improvements: Notifications
|
|
||||||
* UI improvements: refactoring of Activities
|
|
||||||
* SyncJournal: Clear etag filter before sync
|
|
||||||
* Partial local discovery: Fix scheduling logic
|
|
||||||
* Sync hidden files by default
|
|
||||||
* Larger Windows App Icon
|
|
||||||
* Show a tray message when a folder watcher becomes unreliable #6119
|
|
||||||
* Create symlinks for the small-letter application icon file names
|
|
||||||
* In setup wizard put link to nextcloud installation
|
|
||||||
* Web view scales vertically
|
|
||||||
* Add a WebFlowCredentialsAccessManager
|
|
||||||
* Mac Application Icon
|
|
||||||
* Ensure GETFileJob notices finishing #6581
|
|
||||||
* OAuth2: Try to refresh the token even if the credentials weren't ready.
|
|
||||||
* Tray workarounds #6545
|
|
||||||
* UpdateInfo: Remove unused code
|
|
||||||
* OAuth: Remove the timeout
|
|
||||||
* TestOAuth: Don't have global static QObject
|
|
||||||
* Log: Adjust update/reconcile log verbosity
|
|
||||||
* Reconcile: When detecting a local move, keep the local mtime
|
|
||||||
* Wizard enhancement
|
|
||||||
* FolderMan::checkPathValidityForNewFolder: make sure to work when fold…
|
|
||||||
* Update: Report on readdir() errors #6610
|
|
||||||
* Use encode()/decode() with Python 3 only
|
|
||||||
* Sqlite: Update bundled version to 3.24.0
|
|
||||||
* Do not require server replies to contain an mtime
|
|
||||||
* Settings: Attempt to fix rename issue on old macOS
|
|
||||||
* Support higher resolution theme icons
|
|
||||||
* OAuth: Fix infinite loop when the refresh token is expired
|
|
||||||
* Windows: Don't ignore files with FILE_ATTRIBUTE_TEMPORARY
|
|
||||||
* Data-Fingerprint: Fix backup detection when fingerprint is empty
|
|
||||||
* Nautilus: Fix GET_MENU_ITEMS with utf8 filenames #6643
|
|
||||||
* Windows: Release handle/fd when file open fails #6699
|
|
||||||
* SettingsDialog: Show the page for the newly created account
|
|
||||||
* Updates submodule qtmacgoodies.
|
|
||||||
* Fixes #665 Adds slot for confirmShare button.
|
|
||||||
* Rename INSTALL to INSTALL.md for Preview :)
|
|
||||||
* Add cmake temporary stuff
|
|
||||||
* Inform user that configuration is not writable
|
|
||||||
* Uses QByteArray to store private key.
|
|
||||||
* Fix cmake command for linux in README too
|
|
||||||
* Build fix: remove an unused QtSvg/QSvgRenderer include
|
|
||||||
* Qtkeychain: 0.8.0 -> 0.9.1
|
|
||||||
* Setup wizard: implement an animated and interactive slide show
|
|
||||||
* Theming for general settings ui
|
|
||||||
* Make the "Add Folder Sync Connection" button act like a button
|
|
||||||
* Allow to use the login flow with a self signed certificate
|
|
||||||
* Fix warning in ShareUserGroupWidget
|
|
||||||
* Copy over config file to new location on windows
|
|
||||||
* Update to translate strings
|
|
||||||
* Migrate http auth to webflow
|
|
||||||
* Margins
|
|
||||||
* Qt 5.5 compatibility patch for Xenial
|
|
||||||
* Fix cmake build of documentation
|
|
||||||
* Use Nextcloud
|
|
||||||
* Update isntaller background for OSX
|
|
||||||
* Fix ActivityWidget palette
|
|
||||||
* SettingsDialog: disable unnecessary wrapping for the about label
|
|
||||||
* Added default scheme when server returns just a host
|
|
||||||
* Removed explicit initialization; Fixed RAND_bytes not found
|
|
||||||
* Actually open the activity view on a click for more info
|
|
||||||
* Use a format that supports alpha channels for avatars
|
|
||||||
* L10n. Added space for correct grammar.
|
|
||||||
|
|
||||||
|
|
||||||
2.4 Series ChangeLog
|
|
||||||
====================
|
|
||||||
|
|
||||||
version 2.4.1 (2017-02-xx)
|
version 2.4.1 (2017-02-xx)
|
||||||
* Ignore files with file names that can't be encoded for the filesystem (#6287, #5676, #5719)
|
* Ignore files with file names that can't be encoded for the filesystem (#6287, #5676, #5719)
|
||||||
@@ -371,10 +114,6 @@ version 2.4.0 (2017-12-21)
|
|||||||
* Compile with stack-smashing protection
|
* Compile with stack-smashing protection
|
||||||
* Updater: Rudimentary support for beta channel (#6048)
|
* Updater: Rudimentary support for beta channel (#6048)
|
||||||
|
|
||||||
|
|
||||||
2.3 Series ChangeLog
|
|
||||||
====================
|
|
||||||
|
|
||||||
version 2.3.4 (2017-11-02)
|
version 2.3.4 (2017-11-02)
|
||||||
* Checksums: Use addData function to avoid endless loop CPU load issues with Office files
|
* Checksums: Use addData function to avoid endless loop CPU load issues with Office files
|
||||||
* Packaging: Require ZLIB
|
* Packaging: Require ZLIB
|
||||||
@@ -445,10 +184,6 @@ version 2.3.0 (2017-03-03)
|
|||||||
* Improved documentation
|
* Improved documentation
|
||||||
* Crash fixes
|
* Crash fixes
|
||||||
|
|
||||||
|
|
||||||
2.2 Series ChangeLog
|
|
||||||
====================
|
|
||||||
|
|
||||||
version 2.2.4 (release 2016-09-27)
|
version 2.2.4 (release 2016-09-27)
|
||||||
* Dolphin Plugin: Use the Application name for the socket path (#5172)
|
* Dolphin Plugin: Use the Application name for the socket path (#5172)
|
||||||
* SyncEngine: Fix renaming of folder when file are changed (#5195)
|
* SyncEngine: Fix renaming of folder when file are changed (#5195)
|
||||||
@@ -513,10 +248,6 @@ version 2.2.0 (release 2016-05-12)
|
|||||||
* Update of QtKeyChain to support Windows credential store
|
* Update of QtKeyChain to support Windows credential store
|
||||||
* Packaging of dolphin overlay icon module for bleeding edge distros
|
* Packaging of dolphin overlay icon module for bleeding edge distros
|
||||||
|
|
||||||
|
|
||||||
2.1 Series ChangeLog
|
|
||||||
====================
|
|
||||||
|
|
||||||
version 2.1.1 (release 2016-02-10)
|
version 2.1.1 (release 2016-02-10)
|
||||||
* UI improvements for HiDPI screens, error messages, RTL languages
|
* UI improvements for HiDPI screens, error messages, RTL languages
|
||||||
* Fix occurences of "Connection Closed" when a new unauthenticated TCP socket is used
|
* Fix occurences of "Connection Closed" when a new unauthenticated TCP socket is used
|
||||||
@@ -550,8 +281,8 @@ version 2.1 (release 2015-12-03)
|
|||||||
* Improved reconnecting after network change/disconnect (#4167 #3969 ...)
|
* Improved reconnecting after network change/disconnect (#4167 #3969 ...)
|
||||||
* Improved performance in Windows file system discovery
|
* Improved performance in Windows file system discovery
|
||||||
* Removed libneon-based propagator. As a consequence, The client can no
|
* Removed libneon-based propagator. As a consequence, The client can no
|
||||||
* longer provide bandwith limiting on Linux-distributions where it is
|
longer provide bandwith limiting on Linux-distributions where it is
|
||||||
* using Qt < 5.4
|
using Qt < 5.4
|
||||||
* Performance improvements in the logging functions
|
* Performance improvements in the logging functions
|
||||||
* Ensured that local disk space problems are handled gracefully (#2939)
|
* Ensured that local disk space problems are handled gracefully (#2939)
|
||||||
* Improved handling of checksums: transport validation, db (#3735)
|
* Improved handling of checksums: transport validation, db (#3735)
|
||||||
@@ -587,10 +318,6 @@ version 2.1 (release 2015-12-03)
|
|||||||
* Organized patches to our base Qt version into admin/qt/patches
|
* Organized patches to our base Qt version into admin/qt/patches
|
||||||
* Plus: A lot of unmentioned improvements and fixes
|
* Plus: A lot of unmentioned improvements and fixes
|
||||||
|
|
||||||
|
|
||||||
2.0 Series ChangeLog
|
|
||||||
====================
|
|
||||||
|
|
||||||
version 2.0.2 (release 2015-10-21)
|
version 2.0.2 (release 2015-10-21)
|
||||||
* csync_file_stat_s: Save a bit of memory
|
* csync_file_stat_s: Save a bit of memory
|
||||||
* Shibboleth: Add our base user agent to WebKit
|
* Shibboleth: Add our base user agent to WebKit
|
||||||
@@ -666,10 +393,6 @@ version 2.0.0 (release 2015-08-25)
|
|||||||
* Bandwidth Throttling: Provide automatic limit setting for downloads (#3084)
|
* Bandwidth Throttling: Provide automatic limit setting for downloads (#3084)
|
||||||
* Systray: Workaround for issue with Qt 5.5.0 #3656
|
* Systray: Workaround for issue with Qt 5.5.0 #3656
|
||||||
|
|
||||||
|
|
||||||
1.8 Series ChangeLog
|
|
||||||
====================
|
|
||||||
|
|
||||||
version 1.8.4 (release 2015-07-13)
|
version 1.8.4 (release 2015-07-13)
|
||||||
* Release to ship a security release of openSSL. No source changes of the ownCloud Client code.
|
* Release to ship a security release of openSSL. No source changes of the ownCloud Client code.
|
||||||
|
|
||||||
@@ -679,7 +402,7 @@ version 1.8.3 (release 2015-06-23)
|
|||||||
* Ignores: Force a remote discovery after ignore list change (#3172)
|
* Ignores: Force a remote discovery after ignore list change (#3172)
|
||||||
* Shibboleth: Avoid crash by letting the webview use its own QNAM (#3359)
|
* Shibboleth: Avoid crash by letting the webview use its own QNAM (#3359)
|
||||||
* System Ignores: Removed *.tmp from system ignore again. If a user
|
* System Ignores: Removed *.tmp from system ignore again. If a user
|
||||||
* wants to ignore *.tmp, it needs to be added to the user ignore list.
|
wants to ignore *.tmp, it needs to be added to the user ignore list.
|
||||||
|
|
||||||
version 1.8.2 (release 2015-06-08)
|
version 1.8.2 (release 2015-06-08)
|
||||||
* Improve reporting of server error messages (#3220)
|
* Improve reporting of server error messages (#3220)
|
||||||
@@ -692,16 +415,16 @@ version 1.8.2 (release 2015-06-08)
|
|||||||
* HTTP: Add the branding name to the UserAgent string
|
* HTTP: Add the branding name to the UserAgent string
|
||||||
* ConnectonValidator: Always run with new credentials (#3266)
|
* ConnectonValidator: Always run with new credentials (#3266)
|
||||||
* Recall Feature: Admins can trigger an upload of a file from
|
* Recall Feature: Admins can trigger an upload of a file from
|
||||||
* client to server again (#3246)
|
client to server again (#3246)
|
||||||
* Propagator: Add 'Content-Length: 0' header to MKCOL request (#3256)
|
* Propagator: Add 'Content-Length: 0' header to MKCOL request (#3256)
|
||||||
* Switch on checksum verification through branding or config
|
* Switch on checksum verification through branding or config
|
||||||
* Add ability for checksum verification of up and download
|
* Add ability for checksum verification of up and download
|
||||||
* Fix opening external links for some labels (#3135)
|
* Fix opening external links for some labels (#3135)
|
||||||
* AccountState: Run only a single validator, allow error message
|
* AccountState: Run only a single validator, allow error message
|
||||||
* overriding (#3236, #3153)
|
overriding (#3236, #3153)
|
||||||
* SyncJournalDB: Minor fixes and simplificatons
|
* SyncJournalDB: Minor fixes and simplificatons
|
||||||
* SyncEngine: Force re-read of folder Etags for upgrades from
|
* SyncEngine: Force re-read of folder Etags for upgrades from
|
||||||
* 1.8.0 and 1.8.1
|
1.8.0 and 1.8.1
|
||||||
* Propagator: Limit length of temporary file name (#2789)
|
* Propagator: Limit length of temporary file name (#2789)
|
||||||
* ShareDialog: Password ui fixes (#3189)
|
* ShareDialog: Password ui fixes (#3189)
|
||||||
* Fix startup hang by removing QSettings lock file (#3175)
|
* Fix startup hang by removing QSettings lock file (#3175)
|
||||||
@@ -722,12 +445,12 @@ version 1.8.2 (release 2015-06-08)
|
|||||||
version 1.8.1 (release 2015-05-07)
|
version 1.8.1 (release 2015-05-07)
|
||||||
* Make "operation canceled" error a soft error
|
* Make "operation canceled" error a soft error
|
||||||
* Do not throw an error for files that are scheduled to be removed,
|
* Do not throw an error for files that are scheduled to be removed,
|
||||||
* but can not be found on the server. #2919
|
but can not be found on the server. #2919
|
||||||
* Windows: Reset QNAM to proper function after hibernation. #2899 #2895 #2973
|
* Windows: Reset QNAM to proper function after hibernation. #2899 #2895 #2973
|
||||||
* Fix argument verification of --confdir #2453
|
* Fix argument verification of --confdir #2453
|
||||||
* Fix a crash when accessing a dangling UploadDevice pointer #2984
|
* Fix a crash when accessing a dangling UploadDevice pointer #2984
|
||||||
* Add-folder wizard: Make sure there is a scrollbar if folder names
|
* Add-folder wizard: Make sure there is a scrollbar if folder names
|
||||||
* are too long #2962
|
are too long #2962
|
||||||
* Add-folder Wizard: Select the newly created folder
|
* Add-folder Wizard: Select the newly created folder
|
||||||
* Activity: Correctly restore column sizes #3005
|
* Activity: Correctly restore column sizes #3005
|
||||||
* SSL Button: do not crash on empty certificate chain
|
* SSL Button: do not crash on empty certificate chain
|
||||||
@@ -735,8 +458,8 @@ version 1.8.1 (release 2015-05-07)
|
|||||||
* Lookup system proxy async to avoid hangs #2993 #2802
|
* Lookup system proxy async to avoid hangs #2993 #2802
|
||||||
* ShareDialog: Some GUI refinements
|
* ShareDialog: Some GUI refinements
|
||||||
* ShareDialog: On creation of a share always retrieve the share
|
* ShareDialog: On creation of a share always retrieve the share
|
||||||
* This makes sure that if a default expiration date is set this is reflected
|
This makes sure that if a default expiration date is set this is reflected
|
||||||
* in the dialog. #2889
|
in the dialog. #2889
|
||||||
* ShareDialog: Only show share dialog if we are connected.
|
* ShareDialog: Only show share dialog if we are connected.
|
||||||
* HttpCreds: Fill pw dialog with previous password. #2848 #2879
|
* HttpCreds: Fill pw dialog with previous password. #2848 #2879
|
||||||
* HttpCreds: Delete password from old location. #2186
|
* HttpCreds: Delete password from old location. #2186
|
||||||
@@ -745,7 +468,7 @@ version 1.8.1 (release 2015-05-07)
|
|||||||
* ProtocolWidget: Always add seconds to the DateTime locale. #2535
|
* ProtocolWidget: Always add seconds to the DateTime locale. #2535
|
||||||
* Updater: Give context as to which app is about to be updated #3040
|
* Updater: Give context as to which app is about to be updated #3040
|
||||||
* Windows: Add version information for owncloud.exe. This should help us know
|
* Windows: Add version information for owncloud.exe. This should help us know
|
||||||
* what version or build number a crash report was generated with.
|
what version or build number a crash report was generated with.
|
||||||
* Fix a crash on shutdown in ~SocketApi #3057
|
* Fix a crash on shutdown in ~SocketApi #3057
|
||||||
* SyncEngine: Show more timing measurements #3064
|
* SyncEngine: Show more timing measurements #3064
|
||||||
* Discovery: Add warning if returned etag is 0
|
* Discovery: Add warning if returned etag is 0
|
||||||
@@ -768,8 +491,8 @@ version 1.8.1 (release 2015-05-07)
|
|||||||
version 1.8.0 (release 2015-03-17)
|
version 1.8.0 (release 2015-03-17)
|
||||||
* Mac OS: HIDPI support
|
* Mac OS: HIDPI support
|
||||||
* Support Sharing from desktop: Added a share dialog that can be
|
* Support Sharing from desktop: Added a share dialog that can be
|
||||||
* opened by context menu in the file managers (Win, Mac, Nautilus)
|
opened by context menu in the file managers (Win, Mac, Nautilus)
|
||||||
* Supports public links with password enforcement
|
Supports public links with password enforcement
|
||||||
* Enhanced usage of parallel HTTP requests for ownCloud 8 servers
|
* Enhanced usage of parallel HTTP requests for ownCloud 8 servers
|
||||||
* Renamed github repository from mirall to client.
|
* Renamed github repository from mirall to client.
|
||||||
* Mac OS: Use native notification support
|
* Mac OS: Use native notification support
|
||||||
@@ -782,7 +505,7 @@ version 1.8.0 (release 2015-03-17)
|
|||||||
* Build with Qt 5.4
|
* Build with Qt 5.4
|
||||||
* Dropped libneon dependency if Qt 5.4 is available
|
* Dropped libneon dependency if Qt 5.4 is available
|
||||||
* Keep files open very short, that avoid lock problems on Windows
|
* Keep files open very short, that avoid lock problems on Windows
|
||||||
* especially with office software but also others.
|
especially with office software but also others.
|
||||||
* Merged some NetBSD patches
|
* Merged some NetBSD patches
|
||||||
* Selective sync support for owncloudcmd
|
* Selective sync support for owncloudcmd
|
||||||
* Reorganize the source repository
|
* Reorganize the source repository
|
||||||
@@ -791,17 +514,13 @@ version 1.8.0 (release 2015-03-17)
|
|||||||
* A huge amount of bug fixes in all areas of the client.
|
* A huge amount of bug fixes in all areas of the client.
|
||||||
* almost 700 commits since 1.7.1
|
* almost 700 commits since 1.7.1
|
||||||
|
|
||||||
|
|
||||||
1.7 Series ChangeLog
|
|
||||||
====================
|
|
||||||
|
|
||||||
version 1.7.1 (release 2014-12-18)
|
version 1.7.1 (release 2014-12-18)
|
||||||
* Documentation fixes and updates
|
* Documentation fixes and updates
|
||||||
* Nautilus Python plugin fixed for Python 3
|
* Nautilus Python plugin fixed for Python 3
|
||||||
* GUI wording fixes plus improved log messages
|
* GUI wording fixes plus improved log messages
|
||||||
* Fix hidning of the database files in the sync directories
|
* Fix hidning of the database files in the sync directories
|
||||||
* Compare http download size with the header value to avoid broken
|
* Compare http download size with the header value to avoid broken
|
||||||
* downloads, bug #2528
|
downloads, bug #2528
|
||||||
* Avoid initial ETag fetch job at startup, which is not needed.
|
* Avoid initial ETag fetch job at startup, which is not needed.
|
||||||
* Add chunk size http header to PUT requests
|
* Add chunk size http header to PUT requests
|
||||||
* Fixed deteteCookie method of our CookieJar, fix for Shibboleth
|
* Fixed deteteCookie method of our CookieJar, fix for Shibboleth
|
||||||
@@ -824,20 +543,21 @@ version 1.7.1 (release 2014-12-18)
|
|||||||
* Win32: Improve reliability of Installer, fix removal of Shell Extensions
|
* Win32: Improve reliability of Installer, fix removal of Shell Extensions
|
||||||
|
|
||||||
version 1.7.0 (release 2014-11-07)
|
version 1.7.0 (release 2014-11-07)
|
||||||
|
|
||||||
* oC7 Sharing: Handle new sharing options of ownCloud 7 correctly.
|
* oC7 Sharing: Handle new sharing options of ownCloud 7 correctly.
|
||||||
* Added Selective sync: Ability to unselect server folders which are
|
* Added Selective sync: Ability to unselect server folders which are
|
||||||
* excluded from syncing, plus GUI and setup GUI
|
excluded from syncing, plus GUI and setup GUI
|
||||||
* Added overlay icons for Windows Explorer, Mac OS Finder and GNOME Nautilus.
|
* Added overlay icons for Windows Explorer, Mac OS Finder and GNOME Nautilus.
|
||||||
* Information is provided by the client via a local socket / named pipe API
|
Information is provided by the client via a local socket / named pipe API
|
||||||
* which provides information about the sync status of files.
|
which provides information about the sync status of files.
|
||||||
* Improved local change detection: consider file size, detect files
|
* Improved local change detection: consider file size, detect files
|
||||||
* with ongoing changes and do not upload immediately
|
with ongoing changes and do not upload immediately
|
||||||
* Improved HTTP request timeout handler: all successful requests reset
|
* Improved HTTP request timeout handler: all successful requests reset
|
||||||
* the timeout counter
|
the timeout counter
|
||||||
* Improvements for syncing command line tool: netrc support, improved
|
* Improvements for syncing command line tool: netrc support, improved
|
||||||
* SSL support, non interactive mode
|
SSL support, non interactive mode
|
||||||
* Permission system: ownCloud 7 delivers file and folder permissions,
|
* Permission system: ownCloud 7 delivers file and folder permissions,
|
||||||
* added ability to deal with it for shared folders and more.
|
added ability to deal with it for shared folders and more.
|
||||||
* Ignore handling: Do not recurse into ignored or excluded directories
|
* Ignore handling: Do not recurse into ignored or excluded directories
|
||||||
* Major sync journal database improvements for more stability and performance
|
* Major sync journal database improvements for more stability and performance
|
||||||
* New library interface to sqlite3
|
* New library interface to sqlite3
|
||||||
@@ -846,40 +566,35 @@ version 1.7.0 (release 2014-11-07)
|
|||||||
* Improved logging: more useful meta info, removed noise
|
* Improved logging: more useful meta info, removed noise
|
||||||
* Updated to latest Qt5 versions on Windows and OS X
|
* Updated to latest Qt5 versions on Windows and OS X
|
||||||
* Fixed data loss when renaming a download temporary fails and there was
|
* Fixed data loss when renaming a download temporary fails and there was
|
||||||
* a conflict at the same time.
|
a conflict at the same time.
|
||||||
* Fixed missing warnings about reusing a sync folder when the back button
|
* Fixed missing warnings about reusing a sync folder when the back button
|
||||||
* was used in the advanced folder setup wizard.
|
was used in the advanced folder setup wizard.
|
||||||
* The 'Retry Sync' button now also restarts all downloads.
|
* The 'Retry Sync' button now also restarts all downloads.
|
||||||
* Clean up temporary downloads and some extra database files when wiping a
|
* Clean up temporary downloads and some extra database files when wiping a
|
||||||
* folder.
|
folder.
|
||||||
* OS X: Sparkle update to provide pkg format properly
|
* OS X: Sparkle update to provide pkg format properly
|
||||||
* OS X: Change distribution format from dmg to pkg with new installer.
|
* OS X: Change distribution format from dmg to pkg with new installer.
|
||||||
* Windows: Fix handling of filenames with trailing dot or space
|
* Windows: Fix handling of filenames with trailing dot or space
|
||||||
* Windows: Don't use the wrong way to get file mtimes in the legacy propagator.
|
* Windows: Don't use the wrong way to get file mtimes in the legacy propagator.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
1.6 Series ChangeLog
|
|
||||||
====================
|
|
||||||
|
|
||||||
version 1.6.4 (release 2014-10-22)
|
version 1.6.4 (release 2014-10-22)
|
||||||
* Fix startup logic, fixes bug #1989
|
* Fix startup logic, fixes bug #1989
|
||||||
* Fix raise dialog on X11
|
* Fix raise dialog on X11
|
||||||
* Win32: fix overflow when computing the size of file > 4GiB
|
* Win32: fix overflow when computing the size of file > 4GiB
|
||||||
* Use a fixed function to get files modification time, the
|
* Use a fixed function to get files modification time, the
|
||||||
* original one was broken for certain timezone issues, see
|
original one was broken for certain timezone issues, see
|
||||||
* core bug #9781 for details
|
core bug #9781 for details
|
||||||
* Added some missing copyright headers
|
* Added some missing copyright headers
|
||||||
* Avoid data corruption due to wrong error handling, bug #2280
|
* Avoid data corruption due to wrong error handling, bug #2280
|
||||||
* Do improved request timeout handling to reduce the number of
|
* Do improved request timeout handling to reduce the number of
|
||||||
* timed out jobs, bug #2155
|
timed out jobs, bug #2155
|
||||||
* version 1.6.3 (release 2014-09-03)
|
version 1.6.3 (release 2014-09-03)
|
||||||
* Fixed updater on OS X
|
* Fixed updater on OS X
|
||||||
* Fixed memory leak in SSL button that could lead to quick memory draining
|
* Fixed memory leak in SSL button that could lead to quick memory draining
|
||||||
* Fixed upload problem with files >4 GB
|
* Fixed upload problem with files >4 GB
|
||||||
* MacOSX, Linux: Bring Settings window to front properly
|
* MacOSX, Linux: Bring Settings window to front properly
|
||||||
* Branded clients: If no configuration is detected, try to import the data
|
* Branded clients: If no configuration is detected, try to import the data
|
||||||
* from a previously configured community edition.
|
from a previously configured community edition.
|
||||||
|
|
||||||
version 1.6.2 (release 2014-07-28 )
|
version 1.6.2 (release 2014-07-28 )
|
||||||
* Limit the HTTP buffer size when downloading to limit memory consumption.
|
* Limit the HTTP buffer size when downloading to limit memory consumption.
|
||||||
@@ -887,7 +602,7 @@ version 1.6.2 (release 2014-07-28 )
|
|||||||
* Fix local file name clash detection for MacOSX.
|
* Fix local file name clash detection for MacOSX.
|
||||||
* Limit maximum wait time to ten seconds in network limiting.
|
* Limit maximum wait time to ten seconds in network limiting.
|
||||||
* Fix data corruption while trying to resume and the server does
|
* Fix data corruption while trying to resume and the server does
|
||||||
* not support it.
|
not support it.
|
||||||
* HTTP Credentials: Read password from legacy place if not found.
|
* HTTP Credentials: Read password from legacy place if not found.
|
||||||
* Shibboleth: Fix the waiting curser that would not disapear (#1915)
|
* Shibboleth: Fix the waiting curser that would not disapear (#1915)
|
||||||
* Limit memory usage to avoid mem wasting and crashes
|
* Limit memory usage to avoid mem wasting and crashes
|
||||||
@@ -901,18 +616,18 @@ version 1.6.1 (release 2014-06-26 )
|
|||||||
* Fix openSSL problems for windows deployment
|
* Fix openSSL problems for windows deployment
|
||||||
* Fix syncing a folder with '#' in the name
|
* Fix syncing a folder with '#' in the name
|
||||||
* Fix #1845: do not update parent directory etag before sub
|
* Fix #1845: do not update parent directory etag before sub
|
||||||
* directories are removed
|
directories are removed
|
||||||
* Fix reappearing directories if dirs are removed during its
|
* Fix reappearing directories if dirs are removed during its
|
||||||
* upload
|
upload
|
||||||
* Fix app version in settings dialog, General tab
|
* Fix app version in settings dialog, General tab
|
||||||
* Fix crash in FolderWizard when going offline
|
* Fix crash in FolderWizard when going offline
|
||||||
* Shibboleth fixes
|
* Shibboleth fixes
|
||||||
* More specific error messages (file remove during upload, open
|
* More specific error messages (file remove during upload, open
|
||||||
* local sync file)
|
local sync file)
|
||||||
* Use QSet rather than QHash in SyncEngine (save memory)
|
* Use QSet rather than QHash in SyncEngine (save memory)
|
||||||
* Fix some memory leaks
|
* Fix some memory leaks
|
||||||
* Fix some thread race problems, ie. wait for neon thread to finish
|
* Fix some thread race problems, ie. wait for neon thread to finish
|
||||||
* before the propagator is shut down
|
before the propagator is shut down
|
||||||
* Fix a lot of issues and warnings found by Coverity
|
* Fix a lot of issues and warnings found by Coverity
|
||||||
* Fix Mac some settings dialog problems
|
* Fix Mac some settings dialog problems
|
||||||
|
|
||||||
@@ -935,16 +650,16 @@ version 1.6.0 (release 2014-05-30 )
|
|||||||
* Introduce a general timeout of 300s for network operations
|
* Introduce a general timeout of 300s for network operations
|
||||||
* Improve error handling, blacklisting
|
* Improve error handling, blacklisting
|
||||||
* Job-based change propagation, enables faster parallel up/downloads
|
* Job-based change propagation, enables faster parallel up/downloads
|
||||||
* (right now only if no bandwidth limit is set and no proxy is used)
|
(right now only if no bandwidth limit is set and no proxy is used)
|
||||||
* Significantly reduced CPU load when checking for local and remote changes
|
* Significantly reduced CPU load when checking for local and remote changes
|
||||||
* Speed up file stat code on Windows
|
* Speed up file stat code on Windows
|
||||||
* Enforce Qt5 for Windows and Mac OS X builds
|
* Enforce Qt5 for Windows and Mac OS X builds
|
||||||
* Improved owncloudcmd: SSL support, documentation
|
* Improved owncloudcmd: SSL support, documentation
|
||||||
* Added advanced logging of operations (file .???.log in sync
|
* Added advanced logging of operations (file .???.log in sync
|
||||||
* directory)
|
directory)
|
||||||
* Avoid creating a temporary copy of the sync database (.ctmp)
|
* Avoid creating a temporary copy of the sync database (.ctmp)
|
||||||
* Enable support for TLS 1.2 negotiation on platforms that use
|
* Enable support for TLS 1.2 negotiation on platforms that use
|
||||||
* Qt 5.2 or later
|
Qt 5.2 or later
|
||||||
* Forward server exception messages to client error messages
|
* Forward server exception messages to client error messages
|
||||||
* Mac OS X: Support Notification Center in OS X 10.8+
|
* Mac OS X: Support Notification Center in OS X 10.8+
|
||||||
* Mac OS X: Use native settings dialog
|
* Mac OS X: Use native settings dialog
|
||||||
@@ -953,15 +668,11 @@ version 1.6.0 (release 2014-05-30 )
|
|||||||
* Remove vio abstraction in csync
|
* Remove vio abstraction in csync
|
||||||
* Avoid data loss when a client file system is not case sensitive
|
* Avoid data loss when a client file system is not case sensitive
|
||||||
|
|
||||||
|
|
||||||
1.5 Series ChangeLog
|
|
||||||
====================
|
|
||||||
|
|
||||||
version 1.5.3 (release 2014-03-10 )
|
version 1.5.3 (release 2014-03-10 )
|
||||||
* Fix usage of proxies after first sync run (#1502, #1524, #1459, #1521)
|
* Fix usage of proxies after first sync run (#1502, #1524, #1459, #1521)
|
||||||
* Do not wipe the credentials from config for reconnect (#1499, #1503)
|
* Do not wipe the credentials from config for reconnect (#1499, #1503)
|
||||||
* Do not erase the full account config if an old version of the client stored
|
* Do not erase the full account config if an old version of the client stored
|
||||||
* the password (related to above)
|
the password (related to above)
|
||||||
* Fix layout of the network tab (fixes #1491)
|
* Fix layout of the network tab (fixes #1491)
|
||||||
* Handle authentication requests by a Shibboleth IdP
|
* Handle authentication requests by a Shibboleth IdP
|
||||||
* Shibboleth: If no connection is available, don't open the login window
|
* Shibboleth: If no connection is available, don't open the login window
|
||||||
@@ -990,34 +701,34 @@ version 1.5.2 (release 2014-02-26 )
|
|||||||
|
|
||||||
version 1.5.1 (release 2014-02-13 )
|
version 1.5.1 (release 2014-02-13 )
|
||||||
* Added an auto updater that updates the client if a
|
* Added an auto updater that updates the client if a
|
||||||
* more recent version was found automatically (Windows, Mac OS X)
|
more recent version was found automatically (Windows, Mac OS X)
|
||||||
* Added a button to the account dialog that gives information
|
* Added a button to the account dialog that gives information
|
||||||
* about the encryption layer used for communication, plus a
|
about the encryption layer used for communication, plus a
|
||||||
* certificate information widget
|
certificate information widget
|
||||||
* Preserve the permission settings of local files rather than
|
* Preserve the permission settings of local files rather than
|
||||||
* setting them to a default (Bug #820)
|
setting them to a default (Bug #820)
|
||||||
* Handle windows lnk files correctly (Bug #1307)
|
* Handle windows lnk files correctly (Bug #1307)
|
||||||
* Detect removes and renames in read only shares and
|
* Detect removes and renames in read only shares and
|
||||||
* restore the gone away files. (Bug #1386)
|
restore the gone away files. (Bug #1386)
|
||||||
* Fixes sign in/sign out and password dialog. (Bug #1353)
|
* Fixes sign in/sign out and password dialog. (Bug #1353)
|
||||||
* Fixed error messages (Bug #1394)
|
* Fixed error messages (Bug #1394)
|
||||||
* Lots of fixes for building with Qt5
|
* Lots of fixes for building with Qt5
|
||||||
* Changes to network limits are now also applied during a
|
* Changes to network limits are now also applied during a
|
||||||
* sync run
|
sync run
|
||||||
* Fixed mem leak after via valgrind on Mac
|
* Fixed mem leak after via valgrind on Mac
|
||||||
* Imported the ocsync library into miralls repository.
|
* Imported the ocsync library into miralls repository.
|
||||||
* Adopted all build systems and packaging to that.
|
Adopted all build systems and packaging to that.
|
||||||
* Introduce a new linux packaging scheme following the
|
* Introduce a new linux packaging scheme following the
|
||||||
* debian upstream scheme
|
debian upstream scheme
|
||||||
* Use a refactored Linux file system watcher based on
|
* Use a refactored Linux file system watcher based on
|
||||||
* inotify, incl. unit tests
|
inotify, incl. unit tests
|
||||||
* Wizard: Gracefully fall back to HTTP if HTTPS connection
|
* Wizard: Gracefully fall back to HTTP if HTTPS connection
|
||||||
* fails, issuing a warning
|
fails, issuing a warning
|
||||||
* Fixed translation misses in the propagator
|
* Fixed translation misses in the propagator
|
||||||
* Fixes in proxy configuration
|
* Fixes in proxy configuration
|
||||||
* Fixes in sync journal handling
|
* Fixes in sync journal handling
|
||||||
* Fix the upload progress if the local source is still
|
* Fix the upload progress if the local source is still
|
||||||
* changing when the upload begins.
|
changing when the upload begins.
|
||||||
* Add proxy support to owncloud commandline client
|
* Add proxy support to owncloud commandline client
|
||||||
* NSIS fixes
|
* NSIS fixes
|
||||||
* A lot of other fixes and minor improvements
|
* A lot of other fixes and minor improvements
|
||||||
@@ -1054,10 +765,6 @@ version 1.5.0 (release 2013-12-12 ), csync 0.91.4 required
|
|||||||
* Windows: Fix rename of temporary files
|
* Windows: Fix rename of temporary files
|
||||||
* Windows: Fix move file operation
|
* Windows: Fix move file operation
|
||||||
|
|
||||||
|
|
||||||
1.4 Series ChangeLog
|
|
||||||
====================
|
|
||||||
|
|
||||||
version 1.4.2 (release 2013-10-18 ), csync 0.90.4 required
|
version 1.4.2 (release 2013-10-18 ), csync 0.90.4 required
|
||||||
* Do not show the warning icon in the tray (#944)
|
* Do not show the warning icon in the tray (#944)
|
||||||
* Fix manual proxy support when switching (#1016)
|
* Fix manual proxy support when switching (#1016)
|
||||||
@@ -1073,11 +780,12 @@ version 1.4.2 (release 2013-10-18 ), csync 0.90.4 required
|
|||||||
* Progress: Show number of deletes.
|
* Progress: Show number of deletes.
|
||||||
|
|
||||||
version 1.4.1 (release 2013-09-24 ), csync 0.90.1 required
|
version 1.4.1 (release 2013-09-24 ), csync 0.90.1 required
|
||||||
|
|
||||||
* Translation and documentation fixes.
|
* Translation and documentation fixes.
|
||||||
* Fixed error display in settings/status dialog, displays multi
|
* Fixed error display in settings/status dialog, displays multi
|
||||||
* line error messages now correctly.
|
line error messages now correctly.
|
||||||
* Wait up to 30 secs before complaining about missing systray
|
* Wait up to 30 secs before complaining about missing systray
|
||||||
* Fixes bug #949
|
Fixes bug #949
|
||||||
* Fixed utf8 issues with basic auth authentication, fixes bug #941
|
* Fixed utf8 issues with basic auth authentication, fixes bug #941
|
||||||
* Fixed remote folder selector, avoid recursive syncing, fixes bug #962
|
* Fixed remote folder selector, avoid recursive syncing, fixes bug #962
|
||||||
* Handle and display network problems at startup correctly.
|
* Handle and display network problems at startup correctly.
|
||||||
@@ -1094,6 +802,7 @@ version 1.4.1 (release 2013-09-24 ), csync 0.90.1 required
|
|||||||
* Various minor code fixes
|
* Various minor code fixes
|
||||||
|
|
||||||
version 1.4.0 (release 2013-09-04 ), csync 0.90.0 required
|
version 1.4.0 (release 2013-09-04 ), csync 0.90.0 required
|
||||||
|
|
||||||
* New Scheduler: Only sync when there are actual changes in the server
|
* New Scheduler: Only sync when there are actual changes in the server
|
||||||
* Add a Settings Dialog, move Proxy Settings there
|
* Add a Settings Dialog, move Proxy Settings there
|
||||||
* Transform folder Status Dialog into Account Settings, provide feedback via context menu
|
* Transform folder Status Dialog into Account Settings, provide feedback via context menu
|
||||||
@@ -1104,7 +813,7 @@ version 1.4.0 (release 2013-09-04 ), csync 0.90.0 required
|
|||||||
* Move ability to switch to mono icons from a switch to a Settings option
|
* Move ability to switch to mono icons from a switch to a Settings option
|
||||||
* Add "Launch on System Startup" GUI option
|
* Add "Launch on System Startup" GUI option
|
||||||
* Add "Show Desktop Nofications"GUI option (enabled by default)
|
* Add "Show Desktop Nofications"GUI option (enabled by default)
|
||||||
* top optionally disable sync notifications
|
top optionally disable sync notifications
|
||||||
* Add Help item, pointing to online reference
|
* Add Help item, pointing to online reference
|
||||||
* Implement graphical selection of remote folders in FolderWizard
|
* Implement graphical selection of remote folders in FolderWizard
|
||||||
* Allow custom ignore patterns
|
* Allow custom ignore patterns
|
||||||
@@ -1123,14 +832,11 @@ version 1.4.0 (release 2013-09-04 ), csync 0.90.0 required
|
|||||||
* Require Qt 4.7
|
* Require Qt 4.7
|
||||||
* Known issue: Under certain conditions, a file will only get uploaded after up to five minutes
|
* Known issue: Under certain conditions, a file will only get uploaded after up to five minutes
|
||||||
|
|
||||||
|
|
||||||
1.3 Series ChangeLog
|
|
||||||
====================
|
|
||||||
|
|
||||||
version 1.3.0 (release 2013-06-25 ), csync 0.80.0 required
|
version 1.3.0 (release 2013-06-25 ), csync 0.80.0 required
|
||||||
|
|
||||||
* Default proxy port to 8080
|
* Default proxy port to 8080
|
||||||
* Don't lose proxy settings when changing passwords
|
* Don't lose proxy settings when changing passwords
|
||||||
* Support SOCKS5 proxy (useful in combination with ssh* *D)
|
* Support SOCKS5 proxy (useful in combination with ssh *D)
|
||||||
* Propagate proxy changes to csync at runtime
|
* Propagate proxy changes to csync at runtime
|
||||||
* Improve proxy wizard
|
* Improve proxy wizard
|
||||||
* Display proxy errors
|
* Display proxy errors
|
||||||
@@ -1146,7 +852,7 @@ version 1.3.0 (release 2013-06-25 ), csync 0.80.0 required
|
|||||||
* Remove journal when reusing a directory that used to have a journal before
|
* Remove journal when reusing a directory that used to have a journal before
|
||||||
* Visual clean up of status dialog items
|
* Visual clean up of status dialog items
|
||||||
* Wizard: When changing the URL or user name, allow the user to push his data
|
* Wizard: When changing the URL or user name, allow the user to push his data
|
||||||
* to the new location or wipe the folder and start from scratch
|
to the new location or wipe the folder and start from scratch
|
||||||
* Wizard: Make setting a custom folder as a sync target work again
|
* Wizard: Make setting a custom folder as a sync target work again
|
||||||
* Fix application icon
|
* Fix application icon
|
||||||
* User-Agent now contains "Mozilla/5.0" and the Platform name (for firewall/proxy compat)
|
* User-Agent now contains "Mozilla/5.0" and the Platform name (for firewall/proxy compat)
|
||||||
@@ -1154,10 +860,6 @@ version 1.3.0 (release 2013-06-25 ), csync 0.80.0 required
|
|||||||
* New setup wizard, defaulting to root syncing (only for new setups)
|
* New setup wizard, defaulting to root syncing (only for new setups)
|
||||||
* Improved thread stop/termination
|
* Improved thread stop/termination
|
||||||
|
|
||||||
|
|
||||||
1.2 Series ChangeLog
|
|
||||||
====================
|
|
||||||
|
|
||||||
version 1.2.5 (release 2013-04-23 ), csync 0.70.7 required
|
version 1.2.5 (release 2013-04-23 ), csync 0.70.7 required
|
||||||
* [Fixes] NSIS installer fixes
|
* [Fixes] NSIS installer fixes
|
||||||
* [Fixes] Fix crash race by making certificateChain() thread safe
|
* [Fixes] Fix crash race by making certificateChain() thread safe
|
||||||
@@ -1223,10 +925,6 @@ version 1.2.0 (release 2013-01-24 ), csync 0.70.2 required
|
|||||||
* [Platform] cmake fixes.
|
* [Platform] cmake fixes.
|
||||||
* [Platform] Improved, more detailed error reporting.
|
* [Platform] Improved, more detailed error reporting.
|
||||||
|
|
||||||
|
|
||||||
1.1 Series ChangeLog
|
|
||||||
====================
|
|
||||||
|
|
||||||
version 1.1.4 (release 2012-12-19 ), csync 0.60.4 required
|
version 1.1.4 (release 2012-12-19 ), csync 0.60.4 required
|
||||||
* No changes to mirall, only csync fixes.
|
* No changes to mirall, only csync fixes.
|
||||||
|
|
||||||
@@ -1236,7 +934,7 @@ version 1.1.3 (release 2012-11-30 ), csync 0.60.3 required
|
|||||||
version 1.1.2 (release 2012-11-26 ), csync 0.60.2 required
|
version 1.1.2 (release 2012-11-26 ), csync 0.60.2 required
|
||||||
* [Fixes] Allow to properly cancel the password dialog.
|
* [Fixes] Allow to properly cancel the password dialog.
|
||||||
* [Fixes] Share folder name correctly percent encoded with old Qt
|
* [Fixes] Share folder name correctly percent encoded with old Qt
|
||||||
* * * * 4.6 builds ie. Debian.
|
4.6 builds ie. Debian.
|
||||||
* [Fixes] If local sync dir is not existing, create it.
|
* [Fixes] If local sync dir is not existing, create it.
|
||||||
* [Fixes] lots of other minor fixes.
|
* [Fixes] lots of other minor fixes.
|
||||||
* [GUI] Display error messages in status dialog.
|
* [GUI] Display error messages in status dialog.
|
||||||
@@ -1244,30 +942,30 @@ version 1.1.2 (release 2012-11-26 ), csync 0.60.2 required
|
|||||||
* [GUI] Show username for connection in statusdialog.
|
* [GUI] Show username for connection in statusdialog.
|
||||||
* [GUI] Show intro wizard on new connection setup.
|
* [GUI] Show intro wizard on new connection setup.
|
||||||
* [APP] Use CredentialStore to better support various credential
|
* [APP] Use CredentialStore to better support various credential
|
||||||
* * * backends.
|
backends.
|
||||||
* [APP] Handle missing local folder more robust: Create it if
|
* [APP] Handle missing local folder more robust: Create it if
|
||||||
* * * missing instead of ignoring.
|
missing instead of ignoring.
|
||||||
* [APP] Simplify treewalk code.
|
* [APP] Simplify treewalk code.
|
||||||
* [Platform] Fix Mac building
|
* [Platform] Fix Mac building
|
||||||
|
|
||||||
version 1.1.1 (release 2012-10-18), csync 0.60.1 required
|
version 1.1.1 (release 2012-10-18), csync 0.60.1 required
|
||||||
* [GUI]* Allow changing folder name in single folder mode
|
* [GUI] Allow changing folder name in single folder mode
|
||||||
* [GUI]* Windows: Add license to installer
|
* [GUI] Windows: Add license to installer
|
||||||
* [GUI]* owncloud --logwindow will bring up the log window
|
* [GUI] owncloud --logwindow will bring up the log window
|
||||||
* * * * in an already running instance
|
in an already running instance
|
||||||
* [Fixes] Make sure SSL errors are always handled
|
* [Fixes] Make sure SSL errors are always handled
|
||||||
* [Fixes] Allow special characters in folder alias
|
* [Fixes] Allow special characters in folder alias
|
||||||
* [Fixes] Proper workaround for Menu bug in Ubuntu
|
* [Fixes] Proper workaround for Menu bug in Ubuntu
|
||||||
* [Fixes] csync: Fix improper memory cleanup which could
|
* [Fixes] csync: Fix improper memory cleanup which could
|
||||||
* * * * cause memory leaks and crashes
|
cause memory leaks and crashes
|
||||||
* [Fixes] csync: Fix memory leak
|
* [Fixes] csync: Fix memory leak
|
||||||
* [Fixes] csync: Allow single quote (') in file names
|
* [Fixes] csync: Allow single quote (') in file names
|
||||||
* [Fixes] csync: Remove stray temporary files
|
* [Fixes] csync: Remove stray temporary files
|
||||||
|
|
||||||
* [GUI]* Reworked tray context menu.
|
* [GUI] Reworked tray context menu.
|
||||||
* [GUI]* Users can now sync the server root folder.
|
* [GUI] Users can now sync the server root folder.
|
||||||
* [Fixes] Proxy support: now supports Proxy Auto-Configuration (PAC)
|
* [Fixes] Proxy support: now supports Proxy Auto-Configuration (PAC)
|
||||||
* * * * on Windows, reliability fixes across all OSes.
|
on Windows, reliability fixes across all OSes.
|
||||||
* [Fixes] Url entry field in setup assistant handles http/https correctly.
|
* [Fixes] Url entry field in setup assistant handles http/https correctly.
|
||||||
* [Fixes] Button enable state in status dialog.
|
* [Fixes] Button enable state in status dialog.
|
||||||
* [Fixes] Crash fixed on ending the client, tray icon related.
|
* [Fixes] Crash fixed on ending the client, tray icon related.
|
||||||
@@ -1280,15 +978,11 @@ version 1.1.1 (release 2012-10-18), csync 0.60.1 required
|
|||||||
* [Platform] Windows: ownCloud gets added to autorun by default.
|
* [Platform] Windows: ownCloud gets added to autorun by default.
|
||||||
* [Platform] insert correct version info from cmake.
|
* [Platform] insert correct version info from cmake.
|
||||||
* [Platform] csync conf file and database were moved to the users app data
|
* [Platform] csync conf file and database were moved to the users app data
|
||||||
* * * * * directory, away from the .csync dir.
|
directory, away from the .csync dir.
|
||||||
** * * Renamed exclude.lst to sync-exclude.lst and moved it to
|
* Renamed exclude.lst to sync-exclude.lst and moved it to
|
||||||
* * * * /etc/appName()/ for more clean packaging. From the user path,
|
/etc/appName()/ for more clean packaging. From the user path,
|
||||||
* * * * still exclude.lst is read if sync-exclude.lst is not existing.
|
still exclude.lst is read if sync-exclude.lst is not existing.
|
||||||
** * * Placed custom.ini with customization options to /etc/appName()
|
* Placed custom.ini with customization options to /etc/appName()
|
||||||
|
|
||||||
|
|
||||||
1.0 Series ChangeLog
|
|
||||||
====================
|
|
||||||
|
|
||||||
version 1.0.5 (release 2012-08-14), csync 0.50.8 required
|
version 1.0.5 (release 2012-08-14), csync 0.50.8 required
|
||||||
* [Fixes] Fixed setup dialog: Really use https if checkbox is activated.
|
* [Fixes] Fixed setup dialog: Really use https if checkbox is activated.
|
||||||
@@ -1306,23 +1000,23 @@ version 1.0.4 (release 2012-08-10), csync 0.50.8 required
|
|||||||
* [GUI] Removed Log Window Button, log available through command line.
|
* [GUI] Removed Log Window Button, log available through command line.
|
||||||
* [GUI] Proxy configuration dialog added.
|
* [GUI] Proxy configuration dialog added.
|
||||||
* [GUI] Added Translations to languages Slovenian, Polish, Catalan,
|
* [GUI] Added Translations to languages Slovenian, Polish, Catalan,
|
||||||
* * * Portuguese (Brazil), German, Greek, Spanish, Czech, Italian, Slovak,
|
Portuguese (Brazil), German, Greek, Spanish, Czech, Italian, Slovak,
|
||||||
* * * French, Russian, Japanese, Swedish, Portuguese (Portugal)
|
French, Russian, Japanese, Swedish, Portuguese (Portugal)
|
||||||
* * * all with translation rate >90%.
|
all with translation rate >90%.
|
||||||
* [Fixes] Loading of self signed certs into Networkmanager (#oc-843)
|
* [Fixes] Loading of self signed certs into Networkmanager (#oc-843)
|
||||||
* [Fixes] Win32: Handle SSL dll loading correctly.
|
* [Fixes] Win32: Handle SSL dll loading correctly.
|
||||||
* [Fixes] Many other small fixes and improvements.
|
* [Fixes] Many other small fixes and improvements.
|
||||||
|
|
||||||
version 1.0.3 (release 2012-06-19), csync 0.50.7 required
|
version 1.0.3 (release 2012-06-19), csync 0.50.7 required
|
||||||
* [GUI] Added a log window which catches the logging if required and
|
* [GUI] Added a log window which catches the logging if required and
|
||||||
* * * allows to save for information.
|
allows to save for information.
|
||||||
* [CMI] Added options --help, --logfile and --logflush
|
* [CMI] Added options --help, --logfile and --logflush
|
||||||
* [APP] Allow to specify sync frequency in the config file.
|
* [APP] Allow to specify sync frequency in the config file.
|
||||||
* [Fixes] Do not use csync database files from a sync before.
|
* [Fixes] Do not use csync database files from a sync before.
|
||||||
* [Fixes] In Connection wizard, write the final config onyl if
|
* [Fixes] In Connection wizard, write the final config onyl if
|
||||||
* * * * the user really accepted. Also remove the former database.
|
the user really accepted. Also remove the former database.
|
||||||
* [Fixes] More user expected behaviour deletion of sync folder local
|
* [Fixes] More user expected behaviour deletion of sync folder local
|
||||||
* * * * and remote.
|
and remote.
|
||||||
* [Fixes] Allow special characters in the sync directory names
|
* [Fixes] Allow special characters in the sync directory names
|
||||||
* [Fixes] Win32: Fixed directory removal with special character dirs.
|
* [Fixes] Win32: Fixed directory removal with special character dirs.
|
||||||
* [Fixes] MacOS: Do not flood the system log any more
|
* [Fixes] MacOS: Do not flood the system log any more
|
||||||
@@ -1341,7 +1035,7 @@ version 1.0.2 (release 2012-05-18), csync 0.50.6 required
|
|||||||
* [Fixes] Dialogs comes to front on click
|
* [Fixes] Dialogs comes to front on click
|
||||||
* [Fixes] Open local sync folder from tray and status for win32
|
* [Fixes] Open local sync folder from tray and status for win32
|
||||||
* [Fixes] Load exclude.lst correctly on MacOSX
|
* [Fixes] Load exclude.lst correctly on MacOSX
|
||||||
* + csync fixes.
|
+ csync fixes.
|
||||||
|
|
||||||
version 1.0.1 (release 2012-04-18), csync 0.50.5 required
|
version 1.0.1 (release 2012-04-18), csync 0.50.5 required
|
||||||
* [Security] Support SSL Connections
|
* [Security] Support SSL Connections
|
||||||
|
|||||||
@@ -3,16 +3,15 @@ set( APPLICATION_SHORTNAME "Nextcloud" )
|
|||||||
set( APPLICATION_EXECUTABLE "nextcloud" )
|
set( APPLICATION_EXECUTABLE "nextcloud" )
|
||||||
set( APPLICATION_DOMAIN "nextcloud.com" )
|
set( APPLICATION_DOMAIN "nextcloud.com" )
|
||||||
set( APPLICATION_VENDOR "Nextcloud GmbH" )
|
set( APPLICATION_VENDOR "Nextcloud GmbH" )
|
||||||
set( APPLICATION_UPDATE_URL "https://updates.nextcloud.org/client/" CACHE STRING "URL for updater" )
|
set( APPLICATION_UPDATE_URL "https://updates.nextcloud.org/client/" CACHE string "URL for updater" )
|
||||||
set( APPLICATION_HELP_URL "" CACHE STRING "URL for the help menu" )
|
set( APPLICATION_HELP_URL "" CACHE string "URL for the help menu" )
|
||||||
set( APPLICATION_ICON_NAME "Nextcloud" )
|
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_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_PACKAGE_SHORTNAME "nextcloud" )
|
||||||
set( LINUX_APPLICATION_ID "${APPLICATION_REV_DOMAIN}.${LINUX_PACKAGE_SHORTNAME}")
|
|
||||||
|
|
||||||
set( THEME_CLASS "NextcloudTheme" )
|
set( THEME_CLASS "NextcloudTheme" )
|
||||||
|
set( APPLICATION_REV_DOMAIN "com.nextcloud.desktopclient" )
|
||||||
set( WIN_SETUP_BITMAP_PATH "${CMAKE_SOURCE_DIR}/admin/win/nsi" )
|
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")
|
set( MAC_INSTALLER_BACKGROUND_FILE "${CMAKE_SOURCE_DIR}/admin/osx/installer-background.png" CACHE STRING "The MacOSX installer background image")
|
||||||
@@ -21,17 +20,14 @@ set( MAC_INSTALLER_BACKGROUND_FILE "${CMAKE_SOURCE_DIR}/admin/osx/installer-back
|
|||||||
# set( APPLICATION_LICENSE "${OEM_THEME_DIR}/license.txt )
|
# set( APPLICATION_LICENSE "${OEM_THEME_DIR}/license.txt )
|
||||||
|
|
||||||
option( WITH_CRASHREPORTER "Build crashreporter" OFF )
|
option( WITH_CRASHREPORTER "Build crashreporter" OFF )
|
||||||
#set( CRASHREPORTER_SUBMIT_URL "https://crash-reports.owncloud.com/submit" CACHE STRING "URL for crash reporter" )
|
#set( CRASHREPORTER_SUBMIT_URL "https://crash-reports.owncloud.com/submit" CACHE string "URL for crash reporter" )
|
||||||
#set( CRASHREPORTER_ICON ":/owncloud-icon.png" )
|
#set( CRASHREPORTER_ICON ":/owncloud-icon.png" )
|
||||||
|
|
||||||
## Updater options
|
|
||||||
option( BUILD_UPDATER "Build updater" OFF )
|
|
||||||
|
|
||||||
option( WITH_PROVIDERS "Build with providers list" ON )
|
option( WITH_PROVIDERS "Build with providers list" ON )
|
||||||
|
|
||||||
|
|
||||||
## Theming options
|
## Theming options
|
||||||
set( APPLICATION_WIZARD_HEADER_BACKGROUND_COLOR "#0082c9" CACHE STRING "Hex color of the wizard header background")
|
set( APPLICATION_WIZARD_HEADER_BACKGROUND_COLOR "#0082c9" CACHE string "Hex color of the wizard header background")
|
||||||
set( APPLICATION_WIZARD_HEADER_TITLE_COLOR "#ffffff" CACHE STRING "Hex color of the text in the wizard header")
|
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 )
|
option( APPLICATION_WIZARD_USE_CUSTOM_LOGO "Use the logo from ':/client/theme/colored/wizard_logo.png' else the default application icon is used" ON )
|
||||||
|
|
||||||
|
|||||||
@@ -61,14 +61,14 @@ For more info: [Wiki/Daily Builds](https://github.com/nextcloud/desktop/wiki/Dai
|
|||||||
### :bomb: Reporting issues
|
### :bomb: Reporting issues
|
||||||
|
|
||||||
- If you find any bugs or have any suggestion for improvement, please
|
- If you find any bugs or have any suggestion for improvement, please
|
||||||
file an issue at https://github.com/nextcloud/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
|
contact the authors directly by mail, as this increases the chance
|
||||||
of your report being lost. :boom:
|
of your report being lost. :boom:
|
||||||
|
|
||||||
### :smiley: :trophy: Pull requests
|
### :smiley: :trophy: Pull requests
|
||||||
|
|
||||||
- If you created a patch :heart_eyes:, please submit a [Pull
|
- If you created a patch :heart_eyes:, please submit a [Pull
|
||||||
Request](https://github.com/nextcloud/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:
|
- 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_MAJOR 2 )
|
||||||
set( MIRALL_VERSION_MINOR 0 )
|
set( MIRALL_VERSION_MINOR 5 )
|
||||||
set( MIRALL_VERSION_PATCH 0 )
|
set( MIRALL_VERSION_PATCH 3 )
|
||||||
set( MIRALL_VERSION_YEAR 2020 )
|
set( MIRALL_VERSION_YEAR 2019 )
|
||||||
set( MIRALL_SOVERSION 0 )
|
set( MIRALL_SOVERSION 0 )
|
||||||
|
|
||||||
if ( NOT DEFINED MIRALL_VERSION_SUFFIX )
|
if ( NOT DEFINED MIRALL_VERSION_SUFFIX )
|
||||||
|
|||||||
22
admin/linux/Dockerfile
Normal file
22
admin/linux/Dockerfile
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
# 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 \
|
||||||
|
qt5-default \
|
||||||
|
qttools5-dev-tools \
|
||||||
|
libqt5webkit5-dev \
|
||||||
|
qt5keychain-dev \
|
||||||
|
kio-dev \
|
||||||
|
&& apt-get clean
|
||||||
@@ -6,26 +6,23 @@ mkdir /app
|
|||||||
mkdir /build
|
mkdir /build
|
||||||
|
|
||||||
#Set Qt-5.12
|
#Set Qt-5.12
|
||||||
export QT_BASE_DIR=/opt/qt5.12.9
|
export QT_BASE_DIR=/opt/qt512
|
||||||
export QTDIR=$QT_BASE_DIR
|
export QTDIR=$QT_BASE_DIR
|
||||||
export PATH=$QT_BASE_DIR/bin:$PATH
|
export PATH=$QT_BASE_DIR/bin:$PATH
|
||||||
export LD_LIBRARY_PATH=$QT_BASE_DIR/lib/x86_64-linux-gnu:$QT_BASE_DIR/lib:$LD_LIBRARY_PATH
|
export LD_LIBRARY_PATH=$QT_BASE_DIR/lib/x86_64-linux-gnu:$QT_BASE_DIR/lib:$LD_LIBRARY_PATH
|
||||||
export PKG_CONFIG_PATH=$QT_BASE_DIR/lib/pkgconfig:$PKG_CONFIG_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
|
#set defaults
|
||||||
export SUFFIX=${DRONE_PULL_REQUEST:=master}
|
export SUFFIX=${DRONE_PULL_REQUEST:=master}
|
||||||
if [ $SUFFIX != "master" ]; then
|
if [ $SUFFIX != "master" ]; then
|
||||||
SUFFIX="PR-$SUFFIX"
|
SUFFIX="PR-$SUFFIX"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
#QtKeyChain master
|
#QtKeyChain 0.9.1
|
||||||
cd /build
|
cd /build
|
||||||
git clone https://github.com/frankosterfeld/qtkeychain.git
|
git clone https://github.com/frankosterfeld/qtkeychain.git
|
||||||
cd qtkeychain
|
cd qtkeychain
|
||||||
git checkout master
|
git checkout v0.9.1
|
||||||
mkdir build
|
mkdir build
|
||||||
cd build
|
cd build
|
||||||
cmake -D CMAKE_INSTALL_PREFIX=/usr ../
|
cmake -D CMAKE_INSTALL_PREFIX=/usr ../
|
||||||
@@ -38,7 +35,6 @@ mkdir build-client
|
|||||||
cd build-client
|
cd build-client
|
||||||
cmake -D CMAKE_INSTALL_PREFIX=/usr \
|
cmake -D CMAKE_INSTALL_PREFIX=/usr \
|
||||||
-D NO_SHIBBOLETH=1 \
|
-D NO_SHIBBOLETH=1 \
|
||||||
-D BUILD_UPDATER=ON \
|
|
||||||
-D QTKEYCHAIN_LIBRARY=/app/usr/lib/x86_64-linux-gnu/libqt5keychain.so \
|
-D QTKEYCHAIN_LIBRARY=/app/usr/lib/x86_64-linux-gnu/libqt5keychain.so \
|
||||||
-D QTKEYCHAIN_INCLUDE_DIR=/app/usr/include/qt5keychain/ \
|
-D QTKEYCHAIN_INCLUDE_DIR=/app/usr/include/qt5keychain/ \
|
||||||
-DMIRALL_VERSION_SUFFIX=PR-$DRONE_PULL_REQUEST \
|
-DMIRALL_VERSION_SUFFIX=PR-$DRONE_PULL_REQUEST \
|
||||||
@@ -66,12 +62,11 @@ rm -rf ./usr/share/caja-python/
|
|||||||
rm -rf ./usr/share/nautilus-python/
|
rm -rf ./usr/share/nautilus-python/
|
||||||
rm -rf ./usr/share/nemo-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/
|
mv ./etc/Nextcloud/sync-exclude.lst ./usr/bin/
|
||||||
rm -rf ./etc
|
rm -rf ./etc
|
||||||
|
|
||||||
DESKTOP_FILE=/app/usr/share/applications/${LINUX_APPLICATION_ID}.desktop
|
sed -i -e 's|Icon=nextcloud|Icon=Nextcloud|g' usr/share/applications/nextcloud.desktop # Bug in desktop file?
|
||||||
sed -i -e 's|Icon=nextcloud|Icon=Nextcloud|g' ${DESKTOP_FILE} # Bug in desktop file?
|
|
||||||
cp ./usr/share/icons/hicolor/512x512/apps/Nextcloud.png . # Workaround for linuxeployqt bug, FIXME
|
cp ./usr/share/icons/hicolor/512x512/apps/Nextcloud.png . # Workaround for linuxeployqt bug, FIXME
|
||||||
|
|
||||||
|
|
||||||
@@ -92,12 +87,17 @@ chmod a+x linuxdeployqt*.AppImage
|
|||||||
rm ./linuxdeployqt-continuous-x86_64.AppImage
|
rm ./linuxdeployqt-continuous-x86_64.AppImage
|
||||||
unset QTDIR; unset QT_PLUGIN_PATH ; unset LD_LIBRARY_PATH
|
unset QTDIR; unset QT_PLUGIN_PATH ; unset LD_LIBRARY_PATH
|
||||||
export LD_LIBRARY_PATH=/app/usr/lib/
|
export LD_LIBRARY_PATH=/app/usr/lib/
|
||||||
./squashfs-root/AppRun ${DESKTOP_FILE} -bundle-non-qt-libs -qmldir=$DRONE_WORKSPACE/src/gui
|
./squashfs-root/AppRun /app/usr/share/applications/nextcloud.desktop -bundle-non-qt-libs
|
||||||
|
|
||||||
# Set origin
|
# Set origin
|
||||||
./squashfs-root/usr/bin/patchelf --set-rpath '$ORIGIN/' /app/usr/lib/libnextcloudsync.so.0
|
./squashfs-root/usr/bin/patchelf --set-rpath '$ORIGIN/' /app/usr/lib/libnextcloudsync.so.0
|
||||||
|
|
||||||
# Build AppImage
|
# Build AppImage
|
||||||
./squashfs-root/AppRun ${DESKTOP_FILE} -appimage
|
./squashfs-root/AppRun /app/usr/share/applications/nextcloud.desktop -appimage
|
||||||
|
|
||||||
mv Nextcloud*.AppImage Nextcloud-${SUFFIX}-${DRONE_COMMIT}-x86_64.AppImage
|
mv Nextcloud*.AppImage Nextcloud-${SUFFIX}-${DRONE_COMMIT}-x86_64.AppImage
|
||||||
|
|
||||||
|
curl --upload-file $(readlink -f ./Nextcloud*.AppImage) https://transfer.sh/Nextcloud-${SUFFIX}-${DRONE_COMMIT}-x86_64.AppImage
|
||||||
|
|
||||||
|
echo
|
||||||
|
echo "Get the AppImage at the link above!"
|
||||||
|
|||||||
31
admin/linux/debian/README
Normal file
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
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.cosmic/changelog
Normal file
23
admin/linux/debian/debian.cosmic/changelog
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
nextcloud-client (2.3.3-1.0~cosmic1) cosmic; 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~cosmic1) cosmic; 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~cosmic1) cosmic; 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~cosmic1) cosmic; 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
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
|
||||||
48
admin/linux/debian/debian.stable/changelog
Normal file
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
|
||||||
83
admin/linux/debian/debian.stable/control
Normal file
83
admin/linux/debian/debian.stable/control
Normal file
@@ -0,0 +1,83 @@
|
|||||||
|
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.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
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
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,40 @@
|
|||||||
|
--- nextcloud-client-2.4.0.orig/src/gui/wizard/owncloudoauthcredspage.cpp
|
||||||
|
+++ nextcloud-client-2.4.0/src/gui/wizard/owncloudoauthcredspage.cpp
|
||||||
|
@@ -53,10 +53,8 @@ OwncloudOAuthCredsPage::OwncloudOAuthCredsPage()
|
||||||
|
_ui.openLinkButton->setContextMenuPolicy(Qt::CustomContextMenu);
|
||||||
|
QObject::connect(_ui.openLinkButton, &QWidget::customContextMenuRequested, [this](const QPoint &pos) {
|
||||||
|
auto menu = new QMenu(_ui.openLinkButton);
|
||||||
|
- menu->addAction(tr("Copy link to clipboard"), this, [this] {
|
||||||
|
- if (_asyncAuth)
|
||||||
|
- QApplication::clipboard()->setText(_asyncAuth->authorisationLink().toString(QUrl::FullyEncoded));
|
||||||
|
- });
|
||||||
|
+ auto action = menu->addAction(tr("Copy link to clipboard"));
|
||||||
|
+ connect(action, &QAction::triggered, this, &OwncloudOAuthCredsPage::copyLinkToClipboard);
|
||||||
|
menu->setAttribute(Qt::WA_DeleteOnClose);
|
||||||
|
menu->popup(_ui.openLinkButton->mapToGlobal(pos));
|
||||||
|
});
|
||||||
|
@@ -131,4 +129,11 @@ bool OwncloudOAuthCredsPage::isComplete() const
|
||||||
|
return false; /* We can never go forward manually */
|
||||||
|
}
|
||||||
|
|
||||||
|
+void OwncloudOAuthCredsPage::copyLinkToClipboard()
|
||||||
|
+{
|
||||||
|
+ if (_asyncAuth)
|
||||||
|
+ QApplication::clipboard()->setText(_asyncAuth->authorisationLink().toString(QUrl::FullyEncoded));
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+
|
||||||
|
} // namespace OCC
|
||||||
|
--- nextcloud-client-2.4.0.orig/src/gui/wizard/owncloudoauthcredspage.h
|
||||||
|
+++ nextcloud-client-2.4.0/src/gui/wizard/owncloudoauthcredspage.h
|
||||||
|
@@ -57,6 +57,10 @@ public:
|
||||||
|
QString _refreshToken;
|
||||||
|
QScopedPointer<OAuth> _asyncAuth;
|
||||||
|
Ui_OwncloudOAuthCredsPage _ui;
|
||||||
|
+
|
||||||
|
+protected slots:
|
||||||
|
+ void copyLinkToClipboard();
|
||||||
|
+
|
||||||
|
};
|
||||||
|
|
||||||
|
} // namespace OCC
|
||||||
24
admin/linux/debian/debian.xenial/post-patches/qt5.5.patch
Normal file
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
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
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
1
admin/linux/debian/debian/compat
Normal file
@@ -0,0 +1 @@
|
|||||||
|
9
|
||||||
89
admin/linux/debian/debian/control
Normal file
89
admin/linux/debian/debian/control
Normal file
@@ -0,0 +1,89 @@
|
|||||||
|
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,
|
||||||
|
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
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
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
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
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
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
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
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
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
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
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
|
set -xe
|
||||||
shopt -s extglob
|
shopt -s extglob
|
||||||
|
|
||||||
env
|
|
||||||
|
|
||||||
PPA=ppa:nextcloud-devs/client
|
PPA=ppa:nextcloud-devs/client
|
||||||
PPA_ALPHA=ppa:nextcloud-devs/client-alpha
|
|
||||||
PPA_BETA=ppa:nextcloud-devs/client-beta
|
PPA_BETA=ppa:nextcloud-devs/client-beta
|
||||||
|
|
||||||
OBS_PROJECT=home:ivaradi
|
OBS_PROJECT=home:ivaradi
|
||||||
OBS_PROJECT_ALPHA=home:ivaradi:alpha
|
|
||||||
OBS_PROJECT_BETA=home:ivaradi:beta
|
OBS_PROJECT_BETA=home:ivaradi:beta
|
||||||
OBS_PACKAGE=nextcloud-desktop
|
OBS_PACKAGE=nextcloud-client
|
||||||
|
|
||||||
if test "${DRONE_TARGET_BRANCH}" = "stable-2.6"; then
|
|
||||||
UBUNTU_DISTRIBUTIONS="bionic eoan focal groovy"
|
|
||||||
DEBIAN_DISTRIBUTIONS="buster stretch testing"
|
|
||||||
else
|
|
||||||
UBUNTU_DISTRIBUTIONS="eoan focal groovy"
|
|
||||||
DEBIAN_DISTRIBUTIONS="testing"
|
|
||||||
fi
|
|
||||||
|
|
||||||
pull_request=${DRONE_PULL_REQUEST:=master}
|
pull_request=${DRONE_PULL_REQUEST:=master}
|
||||||
|
|
||||||
@@ -43,16 +31,13 @@ fi
|
|||||||
set -x
|
set -x
|
||||||
|
|
||||||
cd "${DRONE_WORKSPACE}"
|
cd "${DRONE_WORKSPACE}"
|
||||||
git fetch --tags
|
read basever kind <<<$(admin/linux/debian/scripts/git2changelog.py /tmp/tmpchangelog stable)
|
||||||
read basever revdate kind <<<$(admin/linux/debian/scripts/git2changelog.py /tmp/tmpchangelog stable)
|
|
||||||
|
|
||||||
cd "${DRONE_DIR}"
|
cd "${DRONE_DIR}"
|
||||||
|
|
||||||
echo "$kind" > kind
|
echo "$kind" > kind
|
||||||
|
|
||||||
if test "$kind" = "alpha"; then
|
if test "$kind" = "beta"; then
|
||||||
repo=nextcloud-devs/client-alpha
|
|
||||||
elif test "$kind" = "beta"; then
|
|
||||||
repo=nextcloud-devs/client-beta
|
repo=nextcloud-devs/client-beta
|
||||||
else
|
else
|
||||||
repo=nextcloud-devs/client
|
repo=nextcloud-devs/client
|
||||||
@@ -60,80 +45,79 @@ fi
|
|||||||
|
|
||||||
origsourceopt=""
|
origsourceopt=""
|
||||||
|
|
||||||
cp -a ${DRONE_WORKSPACE} nextcloud-desktop_${basever}-${revdate}
|
if ! wget http://ppa.launchpad.net/${repo}/ubuntu/pool/main/n/nextcloud-client/nextcloud-client_${basever}.orig.tar.bz2; then
|
||||||
tar cjf nextcloud-desktop_${basever}-${revdate}.orig.tar.bz2 --exclude .git --exclude binary nextcloud-desktop_${basever}-${revdate}
|
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}"
|
for distribution in xenial bionic cosmic disco stable; do
|
||||||
git config --global user.email "drone@noemail.invalid"
|
rm -rf nextcloud-client_${basever}
|
||||||
git config --global user.name "Drone User"
|
cp -a ${DRONE_WORKSPACE} nextcloud-client_${basever}
|
||||||
|
|
||||||
for distribution in ${UBUNTU_DISTRIBUTIONS} ${DEBIAN_DISTRIBUTIONS}; do
|
cd nextcloud-client_${basever}
|
||||||
git checkout -- .
|
|
||||||
git clean -xdf
|
|
||||||
|
|
||||||
git fetch origin debian/dist/${distribution}/${DRONE_TARGET_BRANCH}
|
cp -a admin/linux/debian/debian .
|
||||||
git checkout origin/debian/dist/${distribution}/${DRONE_TARGET_BRANCH}
|
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}
|
for p in debian/post-patches/*.patch; do
|
||||||
cat /tmp/tmpchangelog debian/changelog > debian/changelog.new
|
if test -f "${p}"; then
|
||||||
mv debian/changelog.new debian/changelog
|
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
|
EDITOR=true dpkg-source --commit . local-changes
|
||||||
|
|
||||||
dpkg-source --build .
|
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
|
if test -f ~/.has_ppa_keys; then
|
||||||
debsign -k7D14AA7B -S
|
debsign -k7D14AA7B -S
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
cd ..
|
||||||
done
|
done
|
||||||
cd ..
|
|
||||||
ls -al
|
|
||||||
|
|
||||||
if test "${pull_request}" = "master"; then
|
if test "${pull_request}" = "master"; then
|
||||||
if test "$kind" = "alpha"; then
|
kind=`cat kind`
|
||||||
PPA=$PPA_ALPHA
|
|
||||||
OBS_PROJECT=$OBS_PROJECT_ALPHA
|
if test "$kind" = "beta"; then
|
||||||
elif test "$kind" = "beta"; then
|
|
||||||
PPA=$PPA_BETA
|
PPA=$PPA_BETA
|
||||||
OBS_PROJECT=$OBS_PROJECT_BETA
|
OBS_PROJECT=$OBS_PROJECT_BETA
|
||||||
fi
|
fi
|
||||||
|
OBS_SUBDIR="${OBS_PROJECT}/${OBS_PACKAGE}"
|
||||||
|
|
||||||
if test -f ~/.has_ppa_keys; then
|
if test -f ~/.has_ppa_keys; then
|
||||||
for distribution in ${UBUNTU_DISTRIBUTIONS}; do
|
for changes in nextcloud-client_*~+([a-z])1_source.changes; do
|
||||||
changes=$(ls -1 nextcloud-desktop_*~${distribution}1_source.changes)
|
dput $PPA $changes > /dev/null
|
||||||
if test -f "${changes}"; then
|
|
||||||
dput $PPA "${changes}" > /dev/null
|
|
||||||
fi
|
|
||||||
done
|
done
|
||||||
|
|
||||||
for distribution in ${DEBIAN_DISTRIBUTIONS}; do
|
mkdir osc
|
||||||
pkgsuffix=".${distribution}"
|
cd osc
|
||||||
pkgvertag="~${distribution}1"
|
osc co ${OBS_PROJECT} ${OBS_PACKAGE}
|
||||||
|
if test "$(ls ${OBS_SUBDIR})"; then
|
||||||
|
osc delete ${OBS_SUBDIR}/*
|
||||||
|
fi
|
||||||
|
cp ../nextcloud-client*.orig.tar.* ${OBS_SUBDIR}/
|
||||||
|
cp ../nextcloud-client_*[0-9.][0-9].dsc ${OBS_SUBDIR}/
|
||||||
|
cp ../nextcloud-client_*[0-9.][0-9].debian.tar* ${OBS_SUBDIR}/
|
||||||
|
cp ../nextcloud-client_*[0-9.][0-9]_source.changes ${OBS_SUBDIR}/
|
||||||
|
osc add ${OBS_SUBDIR}/*
|
||||||
|
|
||||||
package="${OBS_PACKAGE}${pkgsuffix}"
|
cd ${OBS_SUBDIR}
|
||||||
OBS_SUBDIR="${OBS_PROJECT}/${package}"
|
osc commit -m "Travis update"
|
||||||
|
|
||||||
mkdir -p osc
|
|
||||||
pushd osc
|
|
||||||
osc co ${OBS_PROJECT} ${package}
|
|
||||||
if test "$(ls ${OBS_SUBDIR})"; 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}/
|
|
||||||
osc add ${OBS_SUBDIR}/*
|
|
||||||
|
|
||||||
cd ${OBS_SUBDIR}
|
|
||||||
osc commit -m "Travis update"
|
|
||||||
popd
|
|
||||||
done
|
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|||||||
50
admin/linux/debian/scripts/addchange.sh
Executable file
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
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
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]
|
[versionhack]
|
||||||
commit = bc7e65b39552ac458b2adacf76cbf98735ec29a0
|
commit = bc7e65b39552ac458b2adacf76cbf98735ec29a0
|
||||||
tag = v2.4.0-beta
|
tag = v2.4.0-beta
|
||||||
|
|
||||||
[base]
|
|
||||||
commit = 56222de768e3def4d504b3f9832d8598b1ec2043
|
|
||||||
version = 2.7.0
|
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
#!//usr/bin/env python2.7
|
#!//usr/bin/env python2.7
|
||||||
|
|
||||||
from __future__ import print_function
|
|
||||||
import subprocess
|
import subprocess
|
||||||
import re
|
import re
|
||||||
import sys
|
import sys
|
||||||
@@ -8,11 +7,6 @@ import datetime
|
|||||||
import os
|
import os
|
||||||
import ConfigParser
|
import ConfigParser
|
||||||
|
|
||||||
try:
|
|
||||||
long
|
|
||||||
except NameError:
|
|
||||||
long = int
|
|
||||||
|
|
||||||
distribution="yakkety"
|
distribution="yakkety"
|
||||||
|
|
||||||
versionTagRE = re.compile("^v([0-9]+((\.[0-9]+)+))(-(.+))?$")
|
versionTagRE = re.compile("^v([0-9]+((\.[0-9]+)+))(-(.+))?$")
|
||||||
@@ -28,37 +22,39 @@ def getCommitVersion(commit):
|
|||||||
major=None
|
major=None
|
||||||
minor=None
|
minor=None
|
||||||
patch=None
|
patch=None
|
||||||
try:
|
for line in subprocess.check_output(["git", "show",
|
||||||
for line in subprocess.check_output(["git", "show",
|
commit + ":VERSION.cmake"]).splitlines():
|
||||||
commit + ":VERSION.cmake"]).splitlines():
|
m = re.match("set\( MIRALL_VERSION_([A-Z]+) +([0-9])+ *\)", line)
|
||||||
m = re.match("set\( MIRALL_VERSION_([A-Z]+) +([0-9])+ *\)", line)
|
if m is not None:
|
||||||
if m is not None:
|
kind=m.group(1)
|
||||||
kind=m.group(1)
|
version=m.group(2)
|
||||||
version=m.group(2)
|
if kind=="MAJOR":
|
||||||
if kind=="MAJOR":
|
major=version
|
||||||
major=version
|
elif kind=="MINOR":
|
||||||
elif kind=="MINOR":
|
minor=version
|
||||||
minor=version
|
elif kind=="PATCH":
|
||||||
elif kind=="PATCH":
|
patch=version
|
||||||
patch=version
|
if major and minor and patch:
|
||||||
if major and minor and patch:
|
return major + "." + minor + "." + patch
|
||||||
return major + "." + minor + "." + patch
|
else:
|
||||||
else:
|
|
||||||
return None
|
|
||||||
except:
|
|
||||||
return None
|
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
|
newVersionCommit = None
|
||||||
newVersionTag = None
|
newVersionTag = None
|
||||||
newVersionOrigTag = None
|
newVersionOrigTag = None
|
||||||
|
|
||||||
if config is not None and config.has_section("versionhack"):
|
if os.path.exists(configPath):
|
||||||
if config.has_option("versionhack", "commit") and \
|
config = ConfigParser.SafeConfigParser()
|
||||||
config.has_option("versionhack", "tag"):
|
config.read(configPath)
|
||||||
newVersionCommit = config.get("versionhack", "commit")
|
if config.has_section("versionhack"):
|
||||||
newVersionTag = config.get("versionhack", "tag")
|
if config.has_option("versionhack", "commit") and \
|
||||||
|
config.has_option("versionhack", "tag"):
|
||||||
|
newVersionCommit = config.get("versionhack", "commit")
|
||||||
|
newVersionTag = config.get("versionhack", "tag")
|
||||||
|
|
||||||
entries = []
|
entries = []
|
||||||
|
|
||||||
@@ -74,14 +70,10 @@ def collectEntries(baseCommit, baseVersion, kind, finalRevDate, config):
|
|||||||
lastVersionTag = None
|
lastVersionTag = None
|
||||||
lastCMAKEVersion = None
|
lastCMAKEVersion = None
|
||||||
for line in output.splitlines():
|
for line in output.splitlines():
|
||||||
words = line.split("\t")
|
(commit, name, email, date, revdate, subject) = 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 = datetime.datetime.utcfromtimestamp(long(revdate)).strftime("%Y%m%d.%H%M%S")
|
||||||
revdate += "." + commit
|
|
||||||
|
|
||||||
kind = "alpha"
|
kind = "beta"
|
||||||
|
|
||||||
if commit==newVersionCommit:
|
if commit==newVersionCommit:
|
||||||
result = processVersionTag(newVersionTag)
|
result = processVersionTag(newVersionTag)
|
||||||
@@ -113,63 +105,38 @@ def collectEntries(baseCommit, baseVersion, kind, finalRevDate, config):
|
|||||||
entries.append((commit, name, email, date, revdate, subject,
|
entries.append((commit, name, email, date, revdate, subject,
|
||||||
baseVersion, kind))
|
baseVersion, kind))
|
||||||
|
|
||||||
if entries:
|
|
||||||
(commit, name, email, date, revdate, subject, baseVersion, kind) = entries[-1]
|
|
||||||
if finalRevDate is None:
|
|
||||||
revdate = datetime.datetime.now().strftime("%Y%m%d.%H%M%S")+ "." + commit
|
|
||||||
else:
|
|
||||||
revdate = finalRevDate
|
|
||||||
entries[-1] = (commit, name, email, date, revdate, subject, baseVersion, kind)
|
|
||||||
|
|
||||||
entries.reverse()
|
entries.reverse()
|
||||||
|
|
||||||
return entries
|
return entries
|
||||||
|
|
||||||
def genChangeLogEntries(f, entries, distribution):
|
def genChangeLogEntries(f, entries, distribution):
|
||||||
latestBaseVersion = None
|
latestBaseVersion = None
|
||||||
latestRevDate = None
|
|
||||||
latestKind = None
|
latestKind = None
|
||||||
for (commit, name, email, date, revdate, subject, baseVersion, kind) in entries:
|
for (commit, name, email, date, revdate, subject, baseVersion, kind) in entries:
|
||||||
if latestBaseVersion is None:
|
if latestBaseVersion is None:
|
||||||
latestBaseVersion = baseVersion
|
latestBaseVersion = baseVersion
|
||||||
latestRevDate = revdate
|
|
||||||
latestKind = kind
|
latestKind = kind
|
||||||
upstreamVersion = baseVersion + "-" + revdate
|
upstreamVersion = baseVersion + "-" + revdate
|
||||||
if distribution=="stable":
|
if distribution=="stable":
|
||||||
version = upstreamVersion
|
version = upstreamVersion
|
||||||
else:
|
else:
|
||||||
version = upstreamVersion + "-1.0~" + distribution + "1"
|
version = upstreamVersion + "~" + distribution + "1"
|
||||||
print("nextcloud-desktop (%s) %s; urgency=medium" % (version, distribution), file=f)
|
print >> f, "nextcloud-client (%s) %s; urgency=medium" % (version, distribution)
|
||||||
print(file=f)
|
print >> f
|
||||||
print(" * " + subject, file=f)
|
print >> f, " * " + subject
|
||||||
print(file=f)
|
print >> f
|
||||||
print(" -- %s <%s> %s" % (name, email, date), file=f)
|
print >> f, " -- %s <%s> %s" % (name, email, date)
|
||||||
print(file=f)
|
print >> f
|
||||||
return (latestBaseVersion, latestRevDate, latestKind)
|
return (latestBaseVersion, latestKind)
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
scriptdir = os.path.dirname(__file__)
|
|
||||||
configPath = os.path.join(scriptdir, "git2changelog.cfg")
|
|
||||||
|
|
||||||
baseCommit = "f9b1c724d6ab5431e0cd56b7cd834f2dd48cebb1"
|
|
||||||
baseVersion = "2.4.0"
|
|
||||||
|
|
||||||
config = None
|
|
||||||
if os.path.exists(configPath):
|
|
||||||
config = ConfigParser.SafeConfigParser()
|
|
||||||
config.read(configPath)
|
|
||||||
|
|
||||||
if config.has_section("base"):
|
|
||||||
if config.has_option("base", "commit") and \
|
|
||||||
config.has_option("base", "version"):
|
|
||||||
baseCommit = config.get("base", "commit")
|
|
||||||
baseVersion = config.get("base", "version")
|
|
||||||
|
|
||||||
distribution = sys.argv[2]
|
distribution = sys.argv[2]
|
||||||
finalRevDate = sys.argv[3] if len(sys.argv)>3 else None
|
|
||||||
|
|
||||||
entries = collectEntries(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:
|
with open(sys.argv[1], "wt") as f:
|
||||||
(baseVersion, revdate, kind) = genChangeLogEntries(f, entries, distribution)
|
(baseVersion, kind) = genChangeLogEntries(f, entries, distribution)
|
||||||
print(baseVersion, revdate, kind)
|
print baseVersion, kind
|
||||||
|
|||||||
17
admin/linux/debian/scripts/pbuild.sh
Executable file
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
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 +0,0 @@
|
|||||||
#! /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
|
|
||||||
|
|
||||||
cd /build
|
|
||||||
|
|
||||||
# AppImage
|
|
||||||
export APPIMAGE=$(readlink -f ./Nextcloud*.AppImage)
|
|
||||||
export BASENAME=$(basename ${APPIMAGE})
|
|
||||||
|
|
||||||
if ! test -e $APPIMAGE ; then
|
|
||||||
exit 1
|
|
||||||
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"
|
|
||||||
@@ -11,7 +11,7 @@ else()
|
|||||||
set(MAC_INSTALLER_DO_CUSTOM_BACKGROUND "0")
|
set(MAC_INSTALLER_DO_CUSTOM_BACKGROUND "0")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
find_package(Qt5 5.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(create_mac.sh.cmake ${CMAKE_CURRENT_BINARY_DIR}/create_mac.sh)
|
||||||
configure_file(macosx.pkgproj.cmake ${CMAKE_CURRENT_BINARY_DIR}/macosx.pkgproj)
|
configure_file(macosx.pkgproj.cmake ${CMAKE_CURRENT_BINARY_DIR}/macosx.pkgproj)
|
||||||
configure_file(pre_install.sh.cmake ${CMAKE_CURRENT_BINARY_DIR}/pre_install.sh)
|
configure_file(pre_install.sh.cmake ${CMAKE_CURRENT_BINARY_DIR}/pre_install.sh)
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ fi
|
|||||||
if [ ! -z "$identity" ]; then
|
if [ ! -z "$identity" ]; then
|
||||||
echo "Will try to sign the installer"
|
echo "Will try to sign the installer"
|
||||||
pushd $install_path
|
pushd $install_path
|
||||||
productsign --timestamp --sign "$identity" "$installer_file" "$installer_file.new"
|
productsign --sign "$identity" "$installer_file" "$installer_file.new"
|
||||||
mv "$installer_file".new "$installer_file"
|
mv "$installer_file".new "$installer_file"
|
||||||
popd
|
popd
|
||||||
else
|
else
|
||||||
|
|||||||
364
admin/osx/macdeployqt.py
Executable file
364
admin/osx/macdeployqt.py
Executable file
@@ -0,0 +1,364 @@
|
|||||||
|
#!/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.6.2/lib', '.']
|
||||||
|
|
||||||
|
QT_PLUGINS = [
|
||||||
|
'sqldrivers/libqsqlite.dylib',
|
||||||
|
'platforms/libqcocoa.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.6.2/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
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:
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 270 KiB After Width: | Height: | Size: 4.2 KiB |
@@ -9,11 +9,6 @@ import os
|
|||||||
import polib
|
import polib
|
||||||
from optparse import OptionParser
|
from optparse import OptionParser
|
||||||
|
|
||||||
try:
|
|
||||||
unicode
|
|
||||||
except NameError:
|
|
||||||
unicode = str
|
|
||||||
|
|
||||||
parser = OptionParser()
|
parser = OptionParser()
|
||||||
parser.add_option("-o", "--output", dest="output",
|
parser.add_option("-o", "--output", dest="output",
|
||||||
help="Directory for localized output", default="../Shared/installer/nightly_localized.nsi")
|
help="Directory for localized output", default="../Shared/installer/nightly_localized.nsi")
|
||||||
@@ -131,7 +126,7 @@ for root,dirs,files in os.walk(options.podir):
|
|||||||
if filename in localeToName:
|
if filename in localeToName:
|
||||||
language = localeToName[filename]
|
language = localeToName[filename]
|
||||||
translationCache[language] = collections.OrderedDict()
|
translationCache[language] = collections.OrderedDict()
|
||||||
|
|
||||||
po = polib.pofile(os.path.join(root,file))
|
po = polib.pofile(os.path.join(root,file))
|
||||||
for entry in po.translated_entries():
|
for entry in po.translated_entries():
|
||||||
# Loop through all our labels and add translation (each translation may have multiple labels)
|
# 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():
|
for label,value in translations.iteritems():
|
||||||
NSINewLines.append( tostr('StrCpy $%s "%s"\n' % (label,value)) )
|
NSINewLines.append( tostr('StrCpy $%s "%s"\n' % (label,value)) )
|
||||||
if language.upper() == options.lang.upper():
|
if language.upper() == options.lang.upper():
|
||||||
NSIDeclarations.append( tostr('Var %s\n' % label) )
|
NSIDeclarations.append( tostr('Var %s\n' % label) )
|
||||||
|
|
||||||
count += 1
|
count += 1
|
||||||
NSIWorkingFile = open('%s/%s.nsh' % (options.output, language),"w")
|
NSIWorkingFile = open('%s/%s.nsh' % (options.output, language),"w")
|
||||||
NSIWorkingFile.writelines(NSINewLines)
|
NSIWorkingFile.writelines(NSINewLines)
|
||||||
NSIWorkingFile.close()
|
NSIWorkingFile.close()
|
||||||
print ( "%i translations merged for language '%s'"%(count,language) )
|
print ( "%i translations merged for language '%s'"%(count,language) )
|
||||||
|
|
||||||
# Finally, let's write languages.nsh and declarations.nsh
|
# Finally, let's write languages.nsh and declarations.nsh
|
||||||
NSIWorkingFile = open('%s/languages.nsh' % options.output,"w")
|
NSIWorkingFile = open('%s/languages.nsh' % options.output,"w")
|
||||||
NSIWorkingFile.writelines(NSILanguages)
|
NSIWorkingFile.writelines(NSILanguages)
|
||||||
@@ -186,5 +181,5 @@ NSIWorkingFile.close()
|
|||||||
NSIWorkingFile = open('%s/declarations.nsh' % options.output,"w")
|
NSIWorkingFile = open('%s/declarations.nsh' % options.output,"w")
|
||||||
NSIWorkingFile.writelines(NSIDeclarations)
|
NSIWorkingFile.writelines(NSIDeclarations)
|
||||||
NSIWorkingFile.close()
|
NSIWorkingFile.close()
|
||||||
|
|
||||||
print ( "NSI Localization Operation Complete" )
|
print ( "NSI Localization Operation Complete" )
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 9.2 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 151 KiB After Width: | Height: | Size: 151 KiB |
1
binary
Submodule
1
binary
Submodule
Submodule binary added at 3425fab2c6
43
client.qrc
Normal file
43
client.qrc
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
<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>
|
||||||
|
</qresource>
|
||||||
|
<qresource prefix="/"/>
|
||||||
|
</RCC>
|
||||||
@@ -47,13 +47,7 @@ macro (KDE4_ADD_APP_ICON appsources pattern)
|
|||||||
endif (fn MATCHES ".*128.*")
|
endif (fn MATCHES ".*128.*")
|
||||||
if (fn MATCHES ".*256.*" )
|
if (fn MATCHES ".*256.*" )
|
||||||
list (APPEND _icons ${it})
|
list (APPEND _icons ${it})
|
||||||
endif (fn MATCHES ".*256.*")
|
endif (fn MATCHES ".*256.*")
|
||||||
if (fn MATCHES ".*512.*" )
|
|
||||||
list (APPEND _icons ${it})
|
|
||||||
endif (fn MATCHES ".*512.*")
|
|
||||||
if (fn MATCHES ".*1024.*" )
|
|
||||||
list (APPEND _icons ${it})
|
|
||||||
endif (fn MATCHES ".*1024.*")
|
|
||||||
endforeach (it)
|
endforeach (it)
|
||||||
if (_icons)
|
if (_icons)
|
||||||
add_custom_command(OUTPUT ${_outfilename}.ico ${_outfilename}.rc
|
add_custom_command(OUTPUT ${_outfilename}.ico ${_outfilename}.rc
|
||||||
@@ -110,14 +104,14 @@ macro (KDE4_ADD_APP_ICON appsources pattern)
|
|||||||
foreach (it ${files})
|
foreach (it ${files})
|
||||||
if (it MATCHES ".*sidebar-16.*")
|
if (it MATCHES ".*sidebar-16.*")
|
||||||
configure_file(${it} ${appsources}.iconset/sidebar_16x16.png COPYONLY)
|
configure_file(${it} ${appsources}.iconset/sidebar_16x16.png COPYONLY)
|
||||||
elseif (it MATCHES ".*sidebar-32.*")
|
elseif (it MATCHES ".*sidebar-18.*")
|
||||||
configure_file(${it} ${appsources}.iconset/sidebar_18x18.png COPYONLY)
|
configure_file(${it} ${appsources}.iconset/sidebar_18x18.png COPYONLY)
|
||||||
|
elseif (it MATCHES ".*sidebar-32.*")
|
||||||
configure_file(${it} ${appsources}.iconset/sidebar_16x16@2x.png COPYONLY)
|
configure_file(${it} ${appsources}.iconset/sidebar_16x16@2x.png COPYONLY)
|
||||||
elseif (it MATCHES ".*sidebar-64.*")
|
|
||||||
configure_file(${it} ${appsources}.iconset/sidebar_18x18@2x.png COPYONLY)
|
|
||||||
elseif (it MATCHES ".*sidebar-128.*")
|
|
||||||
configure_file(${it} ${appsources}.iconset/sidebar_32x32.png COPYONLY)
|
configure_file(${it} ${appsources}.iconset/sidebar_32x32.png COPYONLY)
|
||||||
elseif (it MATCHES ".*sidebar-256.*")
|
elseif (it MATCHES ".*sidebar-36.*")
|
||||||
|
configure_file(${it} ${appsources}.iconset/sidebar_18x18@2x.png COPYONLY)
|
||||||
|
elseif (it MATCHES ".*sidebar-64.*")
|
||||||
configure_file(${it} ${appsources}.iconset/sidebar_32x32@2x.png COPYONLY)
|
configure_file(${it} ${appsources}.iconset/sidebar_32x32@2x.png COPYONLY)
|
||||||
endif()
|
endif()
|
||||||
endforeach (it)
|
endforeach (it)
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ set(CMAKE_INCLUDE_CURRENT_DIR ON)
|
|||||||
|
|
||||||
# Put the include dirs which are in the source or build tree
|
# Put the include dirs which are in the source or build tree
|
||||||
# before all other include dirs, so the headers in the sources
|
# before all other include dirs, so the headers in the sources
|
||||||
# are preferred over the already installed ones
|
# are prefered over the already installed ones
|
||||||
# since cmake 2.4.1
|
# since cmake 2.4.1
|
||||||
set(CMAKE_INCLUDE_DIRECTORIES_PROJECT_BEFORE ON)
|
set(CMAKE_INCLUDE_DIRECTORIES_PROJECT_BEFORE ON)
|
||||||
|
|
||||||
|
|||||||
@@ -8,8 +8,8 @@
|
|||||||
#
|
#
|
||||||
# ecm_add_app_icon(<sources_var>
|
# ecm_add_app_icon(<sources_var>
|
||||||
# ICONS <icon> [<icon> [...]]
|
# ICONS <icon> [<icon> [...]]
|
||||||
# [SIDEBAR_ICONS <icon> [<icon> [...]] # Since 5.49
|
# [SIDEBAR_ICONS <icon> [<icon> [...]] # Since 5.4x
|
||||||
# [OUTFILE_BASENAME <name>]) # Since 5.49
|
# [OUTFILE_BASE <name>]) # Since 5.4x
|
||||||
# )
|
# )
|
||||||
#
|
#
|
||||||
# The given icons, whose names must match the pattern::
|
# The given icons, whose names must match the pattern::
|
||||||
@@ -27,21 +27,20 @@
|
|||||||
#
|
#
|
||||||
# ``SIDEBAR_ICONS`` can be used to add Mac OS X sidebar
|
# ``SIDEBAR_ICONS`` can be used to add Mac OS X sidebar
|
||||||
# icons to the generated iconset. They are used when a folder monitored by the
|
# icons to the generated iconset. They are used when a folder monitored by the
|
||||||
# application is dragged into Finder's sidebar. Since 5.49.
|
# application is dragged into Finder's sidebar. Since 5.4x.
|
||||||
#
|
#
|
||||||
# ``OUTFILE_BASENAME`` will be used as the basename for the icon file. If
|
# ``OUTFILE_BASE`` will be used as the basename for the icon file. If
|
||||||
# you specify it, the icon file will be called ``<OUTFILE_BASENAME>.icns`` on Mac OS X
|
# you specify it, the icon file will be called ``<OUTFILE_BASE>.icns`` on Mac OS X
|
||||||
# and ``<OUTFILE_BASENAME>.ico`` on Windows. If you don't specify it, it defaults
|
# and ``<OUTFILE_BASE>.ico`` on Windows. If you don't specify it, it defaults
|
||||||
# to ``<sources_var>.<ext>``. Since 5.49.
|
# to ``<sources_var>.<ext>``. Since 5.4x.
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
# Windows notes
|
# Windows notes
|
||||||
# * Icons are compiled into the executable using a resource file.
|
# * Icons are compiled into the executable using a resource file.
|
||||||
# * Icons may not show up in Windows Explorer if the executable
|
# * Icons may not show up in Windows Explorer if the executable
|
||||||
# target does not have the ``WIN32_EXECUTABLE`` property set.
|
# target does not have the ``WIN32_EXECUTABLE`` property set.
|
||||||
# * One of the tools png2ico (See :find-module:`FindPng2Ico`) or
|
# * The tool png2ico is required. See :find-module:`FindPng2Ico`.
|
||||||
# icotool (see :find-module:`FindIcoTool`) is required.
|
# * Supported sizes: 16, 32, 48, 64, 128.
|
||||||
# * Supported sizes: 16, 24, 32, 48, 64, 128, 256, 512 and 1024.
|
|
||||||
#
|
#
|
||||||
# Mac OS X notes
|
# Mac OS X notes
|
||||||
# * The executable target must have the ``MACOSX_BUNDLE`` property set.
|
# * The executable target must have the ``MACOSX_BUNDLE`` property set.
|
||||||
@@ -102,7 +101,7 @@ include(CMakeParseArguments)
|
|||||||
|
|
||||||
function(ecm_add_app_icon appsources)
|
function(ecm_add_app_icon appsources)
|
||||||
set(options)
|
set(options)
|
||||||
set(oneValueArgs OUTFILE_BASENAME)
|
set(oneValueArgs OUTFILE_BASE)
|
||||||
set(multiValueArgs ICONS SIDEBAR_ICONS)
|
set(multiValueArgs ICONS SIDEBAR_ICONS)
|
||||||
cmake_parse_arguments(ARG "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
|
cmake_parse_arguments(ARG "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
|
||||||
|
|
||||||
@@ -139,9 +138,9 @@ function(ecm_add_app_icon appsources)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|
||||||
_ecm_add_app_icon_categorize_icons("${ARG_ICONS}" "icons" "16;24;32;48;64;128;256;512;1024")
|
_ecm_add_app_icon_categorize_icons("${ARG_ICONS}" "icons" "16;32;48;64;128;256;512;1024")
|
||||||
if(ARG_SIDEBAR_ICONS)
|
if(ARG_SIDEBAR_ICONS)
|
||||||
_ecm_add_app_icon_categorize_icons("${ARG_SIDEBAR_ICONS}" "sidebar_icons" "16;32;64;128;256")
|
_ecm_add_app_icon_categorize_icons("${ARG_SIDEBAR_ICONS}" "sidebar_icons" "16;18;32;36;64")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(mac_icons
|
set(mac_icons
|
||||||
@@ -152,37 +151,31 @@ function(ecm_add_app_icon appsources)
|
|||||||
${icons_at_128px}
|
${icons_at_128px}
|
||||||
${icons_at_256px}
|
${icons_at_256px}
|
||||||
${icons_at_512px}
|
${icons_at_512px}
|
||||||
${icons_at_1024px})
|
${icons_at_1024px}
|
||||||
|
|
||||||
set(mac_sidebar_icons
|
|
||||||
# Sidebar Icons: https://developer.apple.com/library/content/documentation/General/Conceptual/ExtensibilityPG/Finder.html#//apple_ref/doc/uid/TP40014214-CH15-SW15
|
# Sidebar Icons: https://developer.apple.com/library/content/documentation/General/Conceptual/ExtensibilityPG/Finder.html#//apple_ref/doc/uid/TP40014214-CH15-SW15
|
||||||
${sidebar_icons_at_16px}
|
${sidebar_icons_at_16px}
|
||||||
|
${sidebar_icons_at_18px}
|
||||||
${sidebar_icons_at_32px}
|
${sidebar_icons_at_32px}
|
||||||
${sidebar_icons_at_64px}
|
${sidebar_icons_at_36px}
|
||||||
${sidebar_icons_at_128px}
|
${sidebar_icons_at_64px})
|
||||||
${sidebar_icons_at_256px})
|
if (NOT icons_at_128px)
|
||||||
|
message(AUTHOR_WARNING "No 128px icon provided; this will not work on Mac OS X")
|
||||||
if (NOT (mac_icons OR mac_sidebar_icons))
|
|
||||||
message(AUTHOR_WARNING "No icons suitable for use on macOS provided")
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|
||||||
set(windows_icons ${icons_at_16px}
|
set(windows_icons ${icons_at_16px}
|
||||||
${icons_at_24px}
|
${icons_at_32px}
|
||||||
${icons_at_32px}
|
${icons_at_48px}
|
||||||
${icons_at_48px}
|
${icons_at_64px}
|
||||||
${icons_at_64px}
|
${icons_at_128px}
|
||||||
${icons_at_128px}
|
${icons_at_256px})
|
||||||
${icons_at_256px}
|
if (NOT windows_icons)
|
||||||
${icons_at_512px}
|
|
||||||
${icons_at_1024px})
|
|
||||||
|
|
||||||
if (NOT (windows_icons))
|
|
||||||
message(AUTHOR_WARNING "No icons suitable for use on Windows provided")
|
message(AUTHOR_WARNING "No icons suitable for use on Windows provided")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (ARG_OUTFILE_BASENAME)
|
if (ARG_OUTFILE_BASE)
|
||||||
set (_outfilebasename "${ARG_OUTFILE_BASENAME}")
|
set (_outfilebasename "${ARG_OUTFILE_BASE}")
|
||||||
else()
|
else()
|
||||||
set (_outfilebasename "${appsources}")
|
set (_outfilebasename "${appsources}")
|
||||||
endif()
|
endif()
|
||||||
@@ -192,15 +185,26 @@ function(ecm_add_app_icon appsources)
|
|||||||
set(saved_CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH}")
|
set(saved_CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH}")
|
||||||
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${ECM_FIND_MODULE_DIR})
|
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${ECM_FIND_MODULE_DIR})
|
||||||
find_package(Png2Ico)
|
find_package(Png2Ico)
|
||||||
find_package(IcoTool)
|
|
||||||
set(CMAKE_MODULE_PATH "${saved_CMAKE_MODULE_PATH}")
|
set(CMAKE_MODULE_PATH "${saved_CMAKE_MODULE_PATH}")
|
||||||
|
|
||||||
function(create_windows_icon_and_rc command args deps)
|
if (Png2Ico_FOUND)
|
||||||
|
if (Png2Ico_HAS_RCFILE_ARGUMENT)
|
||||||
|
add_custom_command(
|
||||||
|
OUTPUT "${_outfilename}.rc" "${_outfilename}.ico"
|
||||||
|
COMMAND Png2Ico::Png2Ico
|
||||||
|
ARGS
|
||||||
|
--rcfile "${_outfilename}.rc"
|
||||||
|
"${_outfilename}.ico"
|
||||||
|
${windows_icons}
|
||||||
|
DEPENDS ${windows_icons}
|
||||||
|
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
|
||||||
|
)
|
||||||
|
else()
|
||||||
add_custom_command(
|
add_custom_command(
|
||||||
OUTPUT "${_outfilename}.ico"
|
OUTPUT "${_outfilename}.ico"
|
||||||
COMMAND ${command}
|
COMMAND Png2Ico::Png2Ico
|
||||||
ARGS ${args}
|
ARGS "${_outfilename}.ico" ${windows_icons}
|
||||||
DEPENDS ${deps}
|
DEPENDS ${windows_icons}
|
||||||
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
|
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
|
||||||
)
|
)
|
||||||
# this bit's a little hacky to make the dependency stuff work
|
# this bit's a little hacky to make the dependency stuff work
|
||||||
@@ -212,72 +216,12 @@ function(ecm_add_app_icon appsources)
|
|||||||
DEPENDS "${_outfilename}.ico"
|
DEPENDS "${_outfilename}.ico"
|
||||||
WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}"
|
WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}"
|
||||||
)
|
)
|
||||||
endfunction()
|
endif()
|
||||||
|
|
||||||
if (IcoTool_FOUND)
|
|
||||||
list(APPEND icotool_args "-c" "-o" "${_outfilename}.ico")
|
|
||||||
|
|
||||||
# According to https://stackoverflow.com/a/40851713/2886832
|
|
||||||
# Windows always chooses the first icon above 255px, all other ones will be ignored
|
|
||||||
set(maxSize 0)
|
|
||||||
foreach(size 256 512 1024)
|
|
||||||
if(icons_at_${size}px)
|
|
||||||
set(maxSize "${size}")
|
|
||||||
endif()
|
|
||||||
endforeach()
|
|
||||||
|
|
||||||
foreach(size 16 24 32 48 64 128 ${maxSize})
|
|
||||||
if(NOT icons_at_${size}px)
|
|
||||||
continue()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
set(icotool_icon_arg "")
|
|
||||||
if(size STREQUAL "${maxSize}")
|
|
||||||
# maxSize icon needs to be included as raw png
|
|
||||||
list(APPEND icotool_args "-r")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
foreach(icon ${icons_at_${size}px})
|
|
||||||
list(APPEND icotool_args "${icons_at_${size}px}")
|
|
||||||
endforeach()
|
|
||||||
endforeach()
|
|
||||||
|
|
||||||
create_windows_icon_and_rc(IcoTool::IcoTool "${icotool_args}" "${windows_icons_modern}")
|
|
||||||
set(${appsources} "${${appsources}};${_outfilename}.rc" PARENT_SCOPE)
|
set(${appsources} "${${appsources}};${_outfilename}.rc" PARENT_SCOPE)
|
||||||
|
|
||||||
# standard png2ico has no rcfile argument
|
|
||||||
# NOTE: We generally use https://github.com/hiiamok/png2ImageMagickICO
|
|
||||||
# or similar on windows, which is why we provide resolutions >= 256px here.
|
|
||||||
# Standard png2ico will fail with this.
|
|
||||||
elseif(Png2Ico_FOUND AND NOT Png2Ico_HAS_RCFILE_ARGUMENT AND windows_icons)
|
|
||||||
set(png2ico_args)
|
|
||||||
list(APPEND png2ico_args "${_outfilename}.ico")
|
|
||||||
list(APPEND png2ico_args "${windows_icons}")
|
|
||||||
create_windows_icon_and_rc(Png2Ico::Png2Ico "${png2ico_args}" "${windows_icons}")
|
|
||||||
|
|
||||||
set(${appsources} "${${appsources}};${_outfilename}.rc" PARENT_SCOPE)
|
|
||||||
|
|
||||||
# png2ico from kdewin provides rcfile argument
|
|
||||||
elseif(Png2Ico_FOUND AND windows_icons)
|
|
||||||
add_custom_command(
|
|
||||||
OUTPUT "${_outfilename}.rc" "${_outfilename}.ico"
|
|
||||||
COMMAND Png2Ico::Png2Ico
|
|
||||||
ARGS
|
|
||||||
--rcfile "${_outfilename}.rc"
|
|
||||||
"${_outfilename}.ico"
|
|
||||||
${windows_icons}
|
|
||||||
DEPENDS ${windows_icons}
|
|
||||||
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
|
|
||||||
)
|
|
||||||
|
|
||||||
set(${appsources} "${${appsources}};${_outfilename}.rc" PARENT_SCOPE)
|
|
||||||
|
|
||||||
# else none of the supported tools was found
|
|
||||||
else()
|
else()
|
||||||
message(WARNING "Unable to find the png2ico or icotool utilities or icons in matching sizes - application will not have an application icon!")
|
message(WARNING "Unable to find the png2ico utility - application will not have an application icon!")
|
||||||
endif()
|
endif()
|
||||||
|
elseif (APPLE AND mac_icons)
|
||||||
elseif (APPLE AND (mac_icons OR mac_sidebar_icons))
|
|
||||||
# first generate .iconset directory structure, then convert to .icns format using the Mac OS X "iconutil" utility,
|
# first generate .iconset directory structure, then convert to .icns format using the Mac OS X "iconutil" utility,
|
||||||
# to create retina compatible icon, you need png source files in pixel resolution 16x16, 32x32, 64x64, 128x128,
|
# to create retina compatible icon, you need png source files in pixel resolution 16x16, 32x32, 64x64, 128x128,
|
||||||
# 256x256, 512x512, 1024x1024
|
# 256x256, 512x512, 1024x1024
|
||||||
@@ -302,11 +246,8 @@ function(ecm_add_app_icon appsources)
|
|||||||
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
|
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
|
||||||
)
|
)
|
||||||
list(APPEND iconset_icons
|
list(APPEND iconset_icons
|
||||||
"${_outfilename}.iconset/${type}_${sizename}.png")
|
"${_outfilename}.iconset/${type}_${sizename}.png")
|
||||||
endmacro()
|
endmacro()
|
||||||
|
|
||||||
# List of supported sizes and filenames taken from:
|
|
||||||
# https://developer.apple.com/library/content/documentation/GraphicsAnimation/Conceptual/HighResolutionOSX/Optimizing/Optimizing.html#//apple_ref/doc/uid/TP40012302-CH7-SW4
|
|
||||||
foreach(size 16 32 128 256 512)
|
foreach(size 16 32 128 256 512)
|
||||||
math(EXPR double_size "2 * ${size}")
|
math(EXPR double_size "2 * ${size}")
|
||||||
foreach(file ${icons_at_${size}px})
|
foreach(file ${icons_at_${size}px})
|
||||||
@@ -317,25 +258,14 @@ function(ecm_add_app_icon appsources)
|
|||||||
endforeach()
|
endforeach()
|
||||||
endforeach()
|
endforeach()
|
||||||
|
|
||||||
# List of supported sizes and filenames taken from:
|
foreach(size 16 18 32)
|
||||||
# https://developer.apple.com/library/content/documentation/General/Conceptual/ExtensibilityPG/Finder.html#//apple_ref/doc/uid/TP40014214-CH15-SW15
|
math(EXPR double_size "2 * ${size}")
|
||||||
foreach(file ${sidebar_icons_at_16px})
|
foreach(file ${sidebar_icons_at_${size}px})
|
||||||
copy_icon("${file}" "16x16" "sidebar")
|
copy_icon("${file}" "${size}x${size}" "sidebar")
|
||||||
endforeach()
|
endforeach()
|
||||||
foreach(file ${sidebar_icons_at_32px})
|
foreach(file ${sidebar_icons_at_${double_size}px})
|
||||||
copy_icon("${file}" "16x16@2x" "sidebar")
|
copy_icon("${file}" "${size}x${size}@2x" "sidebar")
|
||||||
endforeach()
|
endforeach()
|
||||||
foreach(file ${sidebar_icons_at_32px})
|
|
||||||
copy_icon("${file}" "18x18" "sidebar")
|
|
||||||
endforeach()
|
|
||||||
foreach(file ${sidebar_icons_at_64px})
|
|
||||||
copy_icon("${file}" "18x18@2x" "sidebar")
|
|
||||||
endforeach()
|
|
||||||
foreach(file ${sidebar_icons_at_128px})
|
|
||||||
copy_icon("${file}" "32x32" "sidebar")
|
|
||||||
endforeach()
|
|
||||||
foreach(file ${sidebar_icons_at_256px})
|
|
||||||
copy_icon("${file}" "32x32@2x" "sidebar")
|
|
||||||
endforeach()
|
endforeach()
|
||||||
|
|
||||||
# generate .icns icon file
|
# generate .icns icon file
|
||||||
|
|||||||
@@ -27,11 +27,9 @@
|
|||||||
<key>CFBundleShortVersionString</key>
|
<key>CFBundleShortVersionString</key>
|
||||||
<string>@MIRALL_VERSION_STRING@</string>
|
<string>@MIRALL_VERSION_STRING@</string>
|
||||||
<key>NSHumanReadableCopyright</key>
|
<key>NSHumanReadableCopyright</key>
|
||||||
<string>(C) 2014-2020 @APPLICATION_VENDOR@</string>
|
<string>(C) 2014-2018 @APPLICATION_VENDOR@</string>
|
||||||
<key>NSSupportsAutomaticGraphicsSwitching</key>
|
<key>NSSupportsAutomaticGraphicsSwitching</key>
|
||||||
<true/>
|
<true/>
|
||||||
<key>NSRequiresAquaSystemAppearance</key>
|
|
||||||
<false/>
|
|
||||||
<key>SUShowReleaseNotes</key>
|
<key>SUShowReleaseNotes</key>
|
||||||
<false/>
|
<false/>
|
||||||
<key>SUPublicDSAKeyFile</key>
|
<key>SUPublicDSAKeyFile</key>
|
||||||
|
|||||||
@@ -1,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()
|
|
||||||
@@ -3,11 +3,7 @@
|
|||||||
# For details see the accompanying COPYING* file.
|
# For details see the accompanying COPYING* file.
|
||||||
|
|
||||||
if (CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang")
|
if (CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang")
|
||||||
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -pedantic -Wno-long-long -Wno-gnu-zero-variadic-macro-arguments")
|
||||||
# Use this only for Clang
|
|
||||||
if (CMAKE_CXX_COMPILER MATCHES "Clang")
|
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -pedantic -Wno-long-long -Wno-gnu-zero-variadic-macro-arguments")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# Fix sqlite compilation on macOS
|
# Fix sqlite compilation on macOS
|
||||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-incompatible-pointer-types-discards-qualifiers")
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-incompatible-pointer-types-discards-qualifiers")
|
||||||
|
|||||||
@@ -8,12 +8,12 @@
|
|||||||
#cmakedefine CRASHREPORTER_EXECUTABLE "@CRASHREPORTER_EXECUTABLE@"
|
#cmakedefine CRASHREPORTER_EXECUTABLE "@CRASHREPORTER_EXECUTABLE@"
|
||||||
#define SOCKETAPI_TEAM_IDENTIFIER_PREFIX "@SOCKETAPI_TEAM_IDENTIFIER_PREFIX@"
|
#define SOCKETAPI_TEAM_IDENTIFIER_PREFIX "@SOCKETAPI_TEAM_IDENTIFIER_PREFIX@"
|
||||||
|
|
||||||
|
#cmakedefine APPLICATION_DOMAIN @APPLICATION_DOMAIN@
|
||||||
#cmakedefine THEME_CLASS @THEME_CLASS@
|
#cmakedefine THEME_CLASS @THEME_CLASS@
|
||||||
#cmakedefine THEME_INCLUDE @THEME_INCLUDE@
|
#cmakedefine THEME_INCLUDE @THEME_INCLUDE@
|
||||||
|
|
||||||
#cmakedefine APPLICATION_NAME "@APPLICATION_NAME@"
|
#cmakedefine APPLICATION_NAME "@APPLICATION_NAME@"
|
||||||
#cmakedefine APPLICATION_VENDOR "@APPLICATION_VENDOR@"
|
#cmakedefine APPLICATION_VENDOR "@APPLICATION_VENDOR@"
|
||||||
#cmakedefine APPLICATION_DOMAIN "@APPLICATION_DOMAIN@"
|
|
||||||
#cmakedefine APPLICATION_REV_DOMAIN "@APPLICATION_REV_DOMAIN@"
|
#cmakedefine APPLICATION_REV_DOMAIN "@APPLICATION_REV_DOMAIN@"
|
||||||
#cmakedefine APPLICATION_SHORTNAME "@APPLICATION_SHORTNAME@"
|
#cmakedefine APPLICATION_SHORTNAME "@APPLICATION_SHORTNAME@"
|
||||||
#cmakedefine APPLICATION_EXECUTABLE "@APPLICATION_EXECUTABLE@"
|
#cmakedefine APPLICATION_EXECUTABLE "@APPLICATION_EXECUTABLE@"
|
||||||
@@ -21,7 +21,6 @@
|
|||||||
#cmakedefine APPLICATION_HELP_URL "@APPLICATION_HELP_URL@"
|
#cmakedefine APPLICATION_HELP_URL "@APPLICATION_HELP_URL@"
|
||||||
#cmakedefine APPLICATION_ICON_NAME "@APPLICATION_ICON_NAME@"
|
#cmakedefine APPLICATION_ICON_NAME "@APPLICATION_ICON_NAME@"
|
||||||
#cmakedefine APPLICATION_SERVER_URL "@APPLICATION_SERVER_URL@"
|
#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_BACKGROUND_COLOR "@APPLICATION_WIZARD_HEADER_BACKGROUND_COLOR@"
|
||||||
#cmakedefine APPLICATION_WIZARD_HEADER_TITLE_COLOR "@APPLICATION_WIZARD_HEADER_TITLE_COLOR@"
|
#cmakedefine APPLICATION_WIZARD_HEADER_TITLE_COLOR "@APPLICATION_WIZARD_HEADER_TITLE_COLOR@"
|
||||||
#cmakedefine APPLICATION_WIZARD_USE_CUSTOM_LOGO "@APPLICATION_WIZARD_USE_CUSTOM_LOGO@"
|
#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:
|
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).
|
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.
|
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.
|
The :ref:`generic-build-instructions` pull the latest code directly from
|
||||||
|
GitHub, and work on Linux, macOS, and Windows.
|
||||||
[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
|
|
||||||
```
|
|
||||||
|
|
||||||
macOS
|
macOS
|
||||||
-----
|
-----
|
||||||
@@ -55,7 +47,7 @@ To set up your build environment for development using HomeBrew_:
|
|||||||
|
|
||||||
5. Install a Qt5 version with qtwebkit support::
|
5. Install a Qt5 version with qtwebkit support::
|
||||||
|
|
||||||
brew install qt5
|
brew install qt5 --with-qtwebkit
|
||||||
|
|
||||||
6. Install any missing dependencies::
|
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.
|
10. Install the Packages_ package creation tool.
|
||||||
|
|
||||||
11. Enable git submodules:
|
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
|
||||||
$ cd desktop
|
its Common Name as a third parameter (use quotes) to have the package
|
||||||
$ git submodule init
|
signed automatically.
|
||||||
$ 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
|
|
||||||
```
|
|
||||||
|
|
||||||
.. note:: Contrary to earlier versions, Nextcloud 1.7 and later are packaged
|
.. 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
|
as a ``pkg`` installer. Do not call "make package" at any time when
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ Conflicts
|
|||||||
Overview
|
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
|
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
|
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
|
create a conflict file with the local version, download the remote version and
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ download page.
|
|||||||
System Requirements
|
System Requirements
|
||||||
----------------------------------
|
----------------------------------
|
||||||
|
|
||||||
- Windows 8.1+
|
- Windows 7+
|
||||||
- macOS 10.7+ (**64-bit only**)
|
- macOS 10.7+ (**64-bit only**)
|
||||||
- CentOS 6 & 7 (64-bit only)
|
- CentOS 6 & 7 (64-bit only)
|
||||||
- Debian 8.0 & 9.0
|
- Debian 8.0 & 9.0
|
||||||
@@ -36,7 +36,8 @@ System Requirements
|
|||||||
- openSUSE Leap 42.2 & 42.3
|
- openSUSE Leap 42.2 & 42.3
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
For Linux distributions, we support, if technically feasible, the latest 2 versions per platform and the previous LTS.
|
For Linux distributions, we support, if technically feasible, the latest 2 versions per platform and the previous `LTS`_.
|
||||||
|
>>>>>>> b2da03441... update supported linux platforms
|
||||||
|
|
||||||
Installation Wizard
|
Installation Wizard
|
||||||
-------------------
|
-------------------
|
||||||
|
|||||||
@@ -8,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
|
``nextcloudcmd`` does not repeat synchronizations on its own. It also does not
|
||||||
monitor for file system changes.
|
monitor for file system changes.
|
||||||
|
|
||||||
|
|
||||||
Install ``nextcloudcmd``
|
|
||||||
~~~~~~~~~~~~
|
|
||||||
|
|
||||||
CentOS
|
|
||||||
|
|
||||||
::
|
|
||||||
|
|
||||||
$ sudo yum -y install epel-release
|
|
||||||
$ sudo yum -y install nextcloud-client
|
|
||||||
|
|
||||||
Ubuntu/Debian
|
|
||||||
|
|
||||||
::
|
|
||||||
|
|
||||||
$ sudo add-apt-repository ppa:nextcloud-devs/client
|
|
||||||
$ sudo apt update
|
|
||||||
$ sudo apt install nextcloud-client
|
|
||||||
|
|
||||||
|
|
||||||
Refer to the link
|
|
||||||
|
|
||||||
- https://nextcloud.com/install/#install-clients
|
|
||||||
- https://launchpad.net/~nextcloud-devs/+archive/ubuntu/client
|
|
||||||
- https://pkgs.alpinelinux.org/packages?name=nextcloud-client
|
|
||||||
- https://help.nextcloud.com/t/linux-packages-status/10216
|
|
||||||
|
|
||||||
|
|
||||||
To invoke ``nextcloudcmd``, you must provide the local and the remote repository
|
To invoke ``nextcloudcmd``, you must provide the local and the remote repository
|
||||||
URL using the following command::
|
URL using the following command::
|
||||||
|
|
||||||
@@ -112,13 +84,3 @@ Exclude List
|
|||||||
installed along with ``nextcloudcmd`` and thus be available in a system location,
|
installed along with ``nextcloudcmd`` and thus be available in a system location,
|
||||||
be placed next to the binary as ``sync-exclude.lst`` or be explicitly specified
|
be placed next to the binary as ``sync-exclude.lst`` or be explicitly specified
|
||||||
with the ``--exclude`` switch.
|
with the ``--exclude`` switch.
|
||||||
|
|
||||||
Example
|
|
||||||
~~~~~~~~~~~~
|
|
||||||
|
|
||||||
- Synchronize a local directory to the specified directory of the nextcloud server
|
|
||||||
|
|
||||||
::
|
|
||||||
|
|
||||||
$ nextcloudcmd /home/user/<my_sync_folder> \
|
|
||||||
https://<username>:<secret>@<server_address>/remote.php/webdav/<Directory_that_has_been_created>
|
|
||||||
|
|||||||
@@ -99,7 +99,7 @@ Activity
|
|||||||
.. index:: activity, recent changes, sync activity
|
.. index:: activity, recent changes, sync activity
|
||||||
|
|
||||||
The Activity window, which can be invoked either from the main menu (``Recent
|
The Activity window, which can be invoked either from the main menu (``Recent
|
||||||
Changes -> View more activity…``) or the Activity tab on the left side of the settings
|
Changes -> Details…``) or the Activity tab on the left side of the settings
|
||||||
window, provides an in-depth account of the recent sync activity. It will show
|
window, provides an in-depth account of the recent sync activity. It will show
|
||||||
files that have not been synced because they are on the ignored files list, or
|
files that have not been synced because they are on the ignored files list, or
|
||||||
because they cannot be synced in a cross-platform manner due to containing
|
because they cannot be synced in a cross-platform manner due to containing
|
||||||
|
|||||||
@@ -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>
|
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user