Blog de dada

DevOps, bidouilleur et routard plein de logiciels libres

Attention, ce billet se traine depuis plus de 3 mois. Les informations qu'il contient ne sont peut-être plus à jour.


Compiler le client de synchronisation de Nextcloud

Rédigé par dada / 19 février 2017 / 2 commentaires




Voici un billet qui pourra être chouette pour les amateurs de compilation pas trop longue ni très compliquée. Comme contexte, il faut savoir que les développeurs de Nextcloud ne fournissent pas de paquet tout fait pour leur client de synchronisation. La raison ? Le trop grand nombre de distributions, le temps de travail et, sans doute, la compatibilité du client d'ownCloud.
M'enfin, si vous avez envie de profiter de votre instance avec le bon nom et le bon logo, voici les quelques étapes à suivre :

On installe les outils de base :
apt-get install git cmake
 On récupère les sources du client depuis le dépôt officiel :
git clone https://github.com/nextcloud/client_theming.git
On se place dans le répertoire de travail :
cd client_theming
 On met à jour les modules présents dans les sources :
git submodule update --init --recursive
 On récupère les dépendances facilement en s'appuyant sur ce qui est déjà fait avec le client ownCloud. Pourquoi ? Tout simplement parce que les bases sont les mêmes !
apt-get build-dep owncloud-client 
C'est à partir de là qu'on prépare la compilation :
mkdir build-linux
cd build-linux
cmake -D OEM_THEME_DIR=`pwd`/../nextcloudtheme ../client
Voici le retour que vous devriez avoir si la préparation de la compilation se passe bien :
dada@dada-desktop:~/work/nextcloud/client_theming/build-linux$ cmake -D OEM_THEME_DIR=`pwd`/../nextcloudtheme ../client
-- Build of crashreporter disabled.
-- GIT_SHA1 eaeed08544d1d7f4031d28a8e1bd9dd5e08a60fd
-- Could NOT find INOTIFY (missing:  INOTIFY_LIBRARY_DIR)
-- Could NOT find Sphinx (missing:  SPHINX_EXECUTABLE)
-- Could NOT find PdfLatex (missing:  PDFLATEX_EXECUTABLE)
-- Found SQLite3: /usr/lib/x86_64-linux-gnu/libsqlite3.so (Required is at least version "3.8.0")
CMake Warning (dev) at cmake/modules/CheckPrototypeDefinition.cmake:43 (if):
  Policy CMP0054 is not set: Only interpret if() arguments as variables or
  keywords when unquoted.  Run "cmake --help-policy CMP0054" for policy
  details.  Use the cmake_policy command to set the policy and suppress this
  warning.

  Quoted variables like "HAVE_ICONV_CONST" will no longer be dereferenced
  when the policy is set to NEW.  Since the policy is not set the OLD
  behavior will be used.
Call Stack (most recent call first):
  cmake/modules/FindIconv.cmake:55 (check_prototype_definition)
  csync/CMakeLists.txt:22 (find_package)
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Found SQLite3: /usr/lib/x86_64-linux-gnu/libsqlite3.so;/usr/lib/x86_64-linux-gnu/libsqlite3.so (Required is at least version "3.8.0")
-- Found Qt5 core, checking for further dependencies...
-- Using Qt 5!
-- Found Qt5Keychain: /usr/lib/x86_64-linux-gnu/libqt5keychain.so  
-- Performing Test COMPILER_HAS_HIDDEN_VISIBILITY
-- Performing Test COMPILER_HAS_HIDDEN_VISIBILITY - Success
-- Performing Test COMPILER_HAS_HIDDEN_INLINE_VISIBILITY
-- Performing Test COMPILER_HAS_HIDDEN_INLINE_VISIBILITY - Success
-- Performing Test COMPILER_HAS_DEPRECATED_ATTR
-- Performing Test COMPILER_HAS_DEPRECATED_ATTR - Success
CMake Warning at shell_integration/CMakeLists.txt:11 (find_package):
  By not providing "FindKF5.cmake" in CMAKE_MODULE_PATH this project has
  asked CMake to find a package configuration file provided by "KF5", but
  CMake did not find one.

  Could not find a package configuration file provided by "KF5" (requested
  version 5.16) with any of the following names:

    KF5Config.cmake
    kf5-config.cmake

  Add the installation prefix of "KF5" to CMAKE_PREFIX_PATH or set "KF5_DIR"
  to a directory containing one of the above files.  If "KF5" provides a
  separate development package or SDK, be sure it has been installed.

Dolphin plugin disabled: KDE Frameworks 5.16 not found
-- Could NOT find Doxygen (missing:  DOXYGEN_EXECUTABLE)
-- Configuring done
-- Generating done
-- Build files have been written to: /home/dada/work/nextcloud/client_theming/build-linu

A partir de là, vous avez deux choix : installer le client directement après la compilation ou créer un paquet puis l'installer. Personnellement, je préfère la deuxième.

Installation directe :
make && sudo make install 
Création du paquet :
make && checkinstall 
Une fois avoir répondu aux quelques questions que l'outil vous demande, vous aurez un paquet .deb à installer en un clique !

Je vous laisse parcourir la doc de checkinstall, ce super outil !

Vous pouvez maintenant profiter d'un client de synchronisation avec les bonnes couleurs et le bon logo. Hey oui, il n'y a pas encore beaucoup de nouveautés...

2 commentaires

#1  - Not A Robot a dit :

J'ai moi aussi pas mal galéré pour compiler le client sous Mint et puis récemment un PPA à fait son apparition pour les possesseurs de Debian et dérivées: https://launchpad.net/~nextcloud-devs/+archive/ubuntu/client

Répondre
#2  - propositionjoe a dit :

Je m'étais penché là-dessus aussi, mais utilisant fedora j'ai eu le plaisir de découvrir que nextcloud était déjà dans les dépôts dnf: nicely pour les amateurs du chapeau.

Répondre

Fil RSS des commentaires de cet article

Écrire un commentaire

Quelle est la dernière lettre du mot mpushp ?