diff options
author | István Váradi <ivaradi@varadiistvan.hu> | 2017-03-21 23:09:47 +0300 |
---|---|---|
committer | István Váradi <ivaradi@varadiistvan.hu> | 2017-03-21 23:09:47 +0300 |
commit | cd376949dfb3c0528488b2dcb8423d9e259779e9 (patch) | |
tree | 57c35ce42c8dbac69ae937b6a3d33c512b474e49 | |
parent | a2883e63ee77ac04d5b670100697a1fe1cf149aa (diff) | |
parent | d65eb9e8cc91cca34dd13bf1e4ec695c390be550 (diff) |
Merge branch 'master' into ivaradi-patch-2.3.0
-rw-r--r-- | .travis.yml | 46 | ||||
-rw-r--r-- | README.md | 50 | ||||
-rw-r--r-- | issue_template.md | 3 | ||||
-rw-r--r-- | linux/.gitignore | 5 | ||||
-rwxr-xr-x[-rw-r--r--] | linux/appimage-build.sh (renamed from linux/build.sh) | 18 | ||||
-rw-r--r-- | linux/snap/snapcraft.yaml | 72 | ||||
-rwxr-xr-x | linux/travis-build.sh | 87 | ||||
-rw-r--r-- | osx/build.sh | 4 | ||||
-rwxr-xr-x | win/build.sh | 1 |
9 files changed, 268 insertions, 18 deletions
diff --git a/.travis.yml b/.travis.yml index 6985d50..84067a0 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,7 +1,47 @@ os: linux -sudo: true dist: trusty -language: cpp +sudo: required +language: generic + +services: +- docker + +env: + global: + - DOCKER_IMAGE=ubuntu:xenial + - SNAP_PRIME_ON_PULL_REQUEST=true + - SNAP_DEPLOY_CHANNEL=edge + - SNAPCRAFT_CONFIG_KEY='' + - SNAPCRAFT_CONFIG_IV='' + + matrix: + - BUILD_TYPE=appimage + - BUILD_TYPE=snap + - BUILD_TYPE=snap ARCH=i386 + +before_install: + - linux/travis-build.sh before_install + +install: + - linux/travis-build.sh install + +before_script: + - linux/travis-build.sh before_script script: - - bash -ex linux/build.sh + - linux/travis-build.sh script + +after_success: + - linux/travis-build.sh after_success + +deploy: + - provider: script + skip_cleanup: true + script: linux/travis-build.sh snap_store_deploy + on: + condition: $BUILD_TYPE = snap && -n "$SNAPCRAFT_CONFIG_KEY" && -n "$SNAPCRAFT_CONFIG_IV" + +branches: + except: + - # Do not build tags that we create when we upload to GitHub Releases + - /^(?i:continuous)$/ @@ -1,7 +1,16 @@ -# nextcloud desktop client [![Build Status](https://travis-ci.org/nextcloud/client_theming.svg?branch=master)](https://travis-ci.org/nextcloud/client_theming) -:computer: theme and build instructions for the nextcloud desktop client +# Nextcloud desktop client +[![Build Status](https://travis-ci.org/nextcloud/client_theming.svg?branch=master)](https://travis-ci.org/nextcloud/client_theming) -Based on https://github.com/owncloud/client/blob/master/doc/building.rst +**Theme and build instructions for the [Nextcloud](https://nextcloud.com) desktop client.** + +Based on https://github.com/owncloud/client/blob/master/doc/building.rst + +## Installing on Ubuntu +```bash +sudo add-apt-repository ppa:nextcloud-devs/client +sudo apt-get update +sudo apt-get install nextcloud-client +``` ## Getting repository ready @@ -15,11 +24,42 @@ git submodule update --init --recursive Run: ```bash +# If building on Ubuntu +sudo apt-get install libsqlite3-dev qt5-default libqt5webkit5-dev qt5keychain-dev libssl-dev + +# All distributions +mkdir build-linux +cd build-linux +cmake -D OEM_THEME_DIR=$(realpath ../nextcloudtheme) ../client +make +sudo make install +``` + +### Building on Debian + +Install required packages. + + sudo apt-get install git libsqlite3-dev qt5-default libqt5webkit5-dev qt5keychain-dev libssl1.0-dev cmake build-essential libowncloudsync0 + +If you are using Debian 9 install libssl1.0-dev + + sudo apt-get install libssl1.0-dev + +If you are using Debian 8 install libssl-dev + + sudo apt-get install libssl-dev + +Then: + +```bash +git clone https://github.com/nextcloud/client_theming.git +cd client_theming +git submodule update --init --recursive mkdir build-linux cd build-linux -cmake -D OEM_THEME_DIR=`pwd`/../nextcloudtheme ../client +cmake -D OEM_THEME_DIR=$(realpath ../nextcloudtheme) -DCMAKE_INSTALL_PREFIX=/usr ../client make -make install +sudo make install ``` ## Building on OSX diff --git a/issue_template.md b/issue_template.md index 61bea8a..a2f172b 100644 --- a/issue_template.md +++ b/issue_template.md @@ -1,5 +1,6 @@ <!-- Thanks for reporting issues back to Nextcloud! -Please report all not theming related issues at the moment to https://github.com/owncloud/client +Please report all *not* theming related issues at the moment to https://github.com/owncloud/client --> + diff --git a/linux/.gitignore b/linux/.gitignore new file mode 100644 index 0000000..a1fd60d --- /dev/null +++ b/linux/.gitignore @@ -0,0 +1,5 @@ +stage +snap +prime +parts +*.snap diff --git a/linux/build.sh b/linux/appimage-build.sh index fb231d9..21c2dc9 100644..100755 --- a/linux/build.sh +++ b/linux/appimage-build.sh @@ -16,7 +16,7 @@ mkdir build-linux cd build-linux cmake -D CMAKE_INSTALL_PREFIX=/app -D OEM_THEME_DIR=`pwd`/../nextcloudtheme ../client make -find . +find . sudo make install find /app @@ -63,9 +63,8 @@ cp /app/share/icons/hicolor/256x256/apps/Nextcloud.png nextcloud.png ######################################################################## # FIXME: How to find out which subset of plugins is really needed? -mkdir -p ./usr/lib/qt5/plugins/ -PLUGINS=/usr/lib/x86_64-linux-gnu/qt5/plugins/ -cp -r $PLUGINS/{bearer,generic,imageformats,platforminputcontexts,platforms,platformthemes} ./usr/lib/qt5/plugins/ +mkdir -p ./usr/lib/qt4/plugins/ +cp -r /usr/lib/x86_64-linux-gnu/qt4/plugins/* ./usr/lib/qt4/plugins/ copy_deps @@ -116,11 +115,16 @@ VERSION=git$GIT_REV-glibc$GLIBC_NEEDED cd .. # Go out of AppImage mkdir -p ../out/ -generate_appimage +generate_type2_appimage ######################################################################## # Upload the AppDir ######################################################################## -transfer ../out/* -echo "AppImage has been uploaded to the URL above; use something like GitHub Releases for permanent storage" +if [ -n "$GITHUB_TOKEN" ]; then + wget -c https://github.com/probonopd/uploadtool/raw/master/upload.sh + bash upload.sh ../out/* +else + transfer ../out/* + echo "AppImage has been uploaded to the URL above; use something like GitHub Releases for permanent storage" +fi diff --git a/linux/snap/snapcraft.yaml b/linux/snap/snapcraft.yaml new file mode 100644 index 0000000..3ddef3d --- /dev/null +++ b/linux/snap/snapcraft.yaml @@ -0,0 +1,72 @@ +name: nextcloud-client +version: 2.2.4+git +icon: ../nextcloudtheme/theme/colored/Nextcloud-icon.svg +summary: Nextcloud Desktop Client +description: | + The Nextcloud Desktop Client is a tool to synchronize files from Nextcloud + Server with your computer. + +grade: stable +confinement: strict + +parts: + client: + plugin: cmake + source: ../ + source-subdir: client + build-packages: + - g++ + - libqt5webkit5-dev + - libsqlite3-dev + - libssl-dev + - pkg-config + - qt5keychain-dev + - qttools5-dev-tools + configflags: + - -DCMAKE_BUILD_TYPE=Release + - -DOEM_THEME_DIR=$SNAPCRAFT_PART_INSTALL/../src/nextcloudtheme + + # XXX: This is an hack to have a kind of bind-mount with absolute prefix. + - -DCMAKE_INSTALL_PREFIX=/snap/$SNAPCRAFT_PROJECT_NAME/current/usr + - -DCMAKE_INSTALL_LIBDIR=/snap/$SNAPCRAFT_PROJECT_NAME/current/usr/lib + - -DSYSCONF_INSTALL_DIR=/snap/$SNAPCRAFT_PROJECT_NAME/current/etc + organize: + snap/nextcloud-client/current: . + + after: + - desktop-qt5 + + xdg-open: + source: https://github.com/ubuntu-core/snapd-xdg-open.git + source-depth: 1 + plugin: dump + organize: + data/xdg-open: bin/xdg-open + prime: + - bin + +apps: + nextcloud-client: + aliases: + - nextcloud + command: | + env LD_LIBRARY_PATH=$SNAP/usr/lib/nextcloud:$LD_LIBRARY_PATH + desktop-launch nextcloud + desktop: usr/share/applications/nextcloud.desktop + plugs: + - unity7 + - home + - network + - network-bind + - network-manager + + cmd: + aliases: + - nextcloudcmd + command: | + env LD_LIBRARY_PATH=$SNAP/usr/lib/nextcloud:$LD_LIBRARY_PATH + desktop-launch nextcloudcmd + plugs: + - unity7 + - home + - network diff --git a/linux/travis-build.sh b/linux/travis-build.sh new file mode 100755 index 0000000..22eb7ea --- /dev/null +++ b/linux/travis-build.sh @@ -0,0 +1,87 @@ +#!/bin/bash +# Copyright (C) 2017 Marco Trevisan + +set -xe + +TRAVIS_BUILD_STEP="$1" +DOCKER_BUILDER_NAME='builder' +THIS_PATH=$(dirname $0) + +if [ -z "$TRAVIS_BUILD_STEP" ]; then + echo "No travis build step defined" + exit 0 +fi + +function docker_exec() { + docker exec -i $DOCKER_BUILDER_NAME $* +} + +if [ "$BUILD_TYPE" == "appimage" ]; then + if [ "$TRAVIS_BUILD_STEP" == "script" ]; then + $THIS_PATH/appimage-build.sh + fi +elif [ "$BUILD_TYPE" == "snap" ]; then + if [ "$TRAVIS_PULL_REQUEST" != "false" ]; then + if [ "$SNAP_PRIME_ON_PULL_REQUEST" != "true" ]; then + echo '$SNAP_PRIME_ON_PULL_REQUEST is not set to true, thus we skip this now' + exit 0 + fi + fi + + if [ "$TRAVIS_BUILD_STEP" == "before_install" ]; then + if [ -n "$ARCH" ]; then DOCKER_IMAGE="$ARCH/$DOCKER_IMAGE"; fi + docker run --name $DOCKER_BUILDER_NAME -e LANG=C.UTF-8 -e TERM \ + -v $PWD:$PWD -w $PWD/$THIS_PATH -td $DOCKER_IMAGE + elif [ "$TRAVIS_BUILD_STEP" == "install" ]; then + docker_exec apt-get update -q + docker_exec apt-get install -y snapcraft + elif [ "$TRAVIS_BUILD_STEP" == "before_script" ]; then + last_tag=$(git describe --tags --abbrev=0 | sed "s/^v\([0-9]\)/\1/") + snap_version=$last_tag + + if [ -z "$TRAVIS_TAG" ]; then + rev_commit=$(git rev-parse --short HEAD) + snap_version=$last_tag+git${rev_commit} + fi + + sed "s,^\(version:\)\([ ]*[0-9.a-z_-+]*\),\1 $snap_version," \ + -i $THIS_PATH/snap/snapcraft.yaml + echo "Snap version is $snap_version" + elif [ "$TRAVIS_BUILD_STEP" == "script" ]; then + snapcraft_action='' + if [ -z "$TRAVIS_TAG" ] || [ "$TRAVIS_PULL_REQUEST" != "false" ]; then + snapcraft_action='prime' + fi + + docker_exec snapcraft $snapcraft_action + elif [ "$TRAVIS_BUILD_STEP" == "after_success" ]; then + if [ -n "$GITHUB_TOKEN" ]; then + exec $0 snap_github_release + else + exec $0 snap_transfer_deploy + fi + elif [ "$TRAVIS_BUILD_STEP" == "snap_store_deploy" ]; then + set +x + openssl aes-256-cbc -K $SNAPCRAFT_CONFIG_KEY \ + -iv $SNAPCRAFT_CONFIG_IV \ + -in $THIS_PATH/snap/.snapcraft/travis_snapcraft.cfg \ + -out $THIS_PATH/snap/.snapcraft/snapcraft.cfg -d + set -x + + ls $THIS_PATH/*.snap &> /dev/null || docker_exec snapcraft + docker_exec snapcraft push *.snap --release edge + elif [ "$TRAVIS_BUILD_STEP" == "snap_github_release" ]; then + ls $THIS_PATH/*.snap &> /dev/null || docker_exec snapcraft + snap=$(ls $THIS_PATH/*.snap -1 | head -n1) + wget -c https://github.com/probonopd/uploadtool/raw/master/upload.sh + chmod +x upload.sh + exec ./upload.sh "$snap" + elif [ "$TRAVIS_BUILD_STEP" == "snap_transfer_deploy" ]; then + ls $THIS_PATH/*.snap &> /dev/null || docker_exec snapcraft + snap=$(ls $THIS_PATH/*.snap -1 | head -n1) + curl --progress-bar --upload-file "$snap" "https://transfer.sh/$(basename $snap)" + fi +else + echo 'No $BUILD_TYPE defined' + exit 1 +fi diff --git a/osx/build.sh b/osx/build.sh index d8ec47b..e433a6c 100644 --- a/osx/build.sh +++ b/osx/build.sh @@ -12,7 +12,7 @@ sudo rm -rf install cd ~ git clone --recursive https://github.com/owncloud/client.git cd client -git checkout v2.3.0-beta1 +git checkout v2.3.0 git submodule update --recursive # Build qtkeychain @@ -26,7 +26,7 @@ cp client_theming/osx/dsa_pub.pem client/admin/osx/sparkle/ rm -rf build-mac mkdir build-mac cd build-mac -cmake -DCMAKE_OSX_SYSROOT="/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk" -DCMAKE_OSX_DEPLOYMENT_TARGET=10.8 -DCMAKE_INSTALL_PREFIX=/Users/builder/install -DCMAKE_PREFIX_PATH=/Users/builder/Qt/5.6/clang_64 -D SPARKLE_INCLUDE_DIR=/Users/builder/Library/Frameworks/Sparkle.framework/ -D SPARKLE_LIBRARY=/Users/builder/Library/Frameworks/Sparkle.framework/ -D OEM_THEME_DIR=/Users/builder/client_theming/nextcloudtheme -DWITH_CRASHREPORTER=ON -DNO_SHIBBOLETH=1 -DMIRALL_VERSION_BUILD=1 ../client +cmake -DCMAKE_OSX_SYSROOT="/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk" -DCMAKE_OSX_DEPLOYMENT_TARGET=10.8 -DCMAKE_INSTALL_PREFIX=/Users/builder/install -DCMAKE_PREFIX_PATH=/Users/builder/Qt/5.6/clang_64 -D SPARKLE_INCLUDE_DIR=/Users/builder/Library/Frameworks/Sparkle.framework/ -D SPARKLE_LIBRARY=/Users/builder/Library/Frameworks/Sparkle.framework/ -D OEM_THEME_DIR=/Users/builder/client_theming/nextcloudtheme -DWITH_CRASHREPORTER=ON -DNO_SHIBBOLETH=1 -DMIRALL_VERSION_BUILD=4 -DMIRALL_VERSION_SUFFIX=rc1 ../client make sudo make install sudo ~/client_theming/client/admin/osx/sign_app.sh ~/install/nextcloud.app 59FA8948AEBAE3F2222AE9BC020D6DA31DF821A7 diff --git a/win/build.sh b/win/build.sh index 6aadf15..cf67dad 100755 --- a/win/build.sh +++ b/win/build.sh @@ -10,6 +10,7 @@ su - user << EOF cmake -DCMAKE_TOOLCHAIN_FILE=../client/admin/win/Toolchain-mingw32-openSUSE.cmake\ -DWITH_CRASHREPORTER=ON \ -DOEM_THEME_DIR=/home/user/nextcloudtheme \ + -DMIRALL_VERSION_SUFFIX=rc1 \ ../client make -j4 make package |