Annexe A : compilation du client

Cette section explique comment compiler le client ownCloud à partir des sources pour toutes les plateformes majeures. Vous devriez lire cette section si vous voulez faire des développements pour le client ownCloud.

Note

Les instructions de compilations sont sujettes à évolution car le développement se poursuit. Veuillez vérifier la version que vous voulez compiler.

Ces instructions ont été mises à jour pour fonctionner avec la version 2.2 du client ownCloud.

Obtention du code source

Les Instructions de compilation génériques permettent d’obtenir le code à jour directement à partir de GitHub, et fonctionnent pour Linux, Mac OS X et Windows.

Voir la section suivante pour les instructions pour obtenir le code source à partir des paquets Linux.

Linux

Vous pourriez souhaiter utiliser les paquets sources pour votre distribution Linux, car ils donnent les sources exactes à partir desquelles ils ont été compilés. Ils sont hébergés sur le dépôt ownCloud d’OBS. Rendez-vous sur l’index des dépôts pour voir tous les dépôts pour le client Linux.

  1. Au bas de la page pour chaque distribution se trouve une section « Grab binary packages directly ». Elle contient les sources RPM pour CentOS, RHEL, Fedora, SLES et openSUSE.

    Pour obtenir le paquet source .deb, ajoutez le dépôt source pour votre version de Debian ou Ubuntu, comme dans cet exemple pour Debian 8 (en tant que root) :

    echo 'deb-src
    http://download.opensuse.org/repositories/isv:/ownCloud:/desktop/Debian_8.0/ /' >> /etc/apt/sources.list.d/owncloud-client.list
    
  2. Installez les dépendances en utilisant les commandes suivantes pour votre distribution Linux :

    • Debian/Ubuntu : apt-get update; apt-get build-dep owncloud-client
    • openSUSE/SLES : zypper ref; zypper si -d owncloud-client
    • Fedora/CentOS/RHEL : yum install yum-utils; yum-builddep owncloud-client
  3. Suivez les Instructions de compilation génériques, en commençant à l’étape 2.

Mac OS X

En plus de XCode (avec les outils en ligne de commande), développer sous Mac OS X nécessite des dépendances supplémentaires. Vous pouvez installer ces dépendances avec MacPorts ou Homebrew. Ces dépendances ne sont nécessaires que sur la machine servant à compiler, car les bibliothèques non standard seront intégrées dans le paquet de l’application.

La méthode testée et préférée pour développer dans cet environnement est d’utiliser HomeBrew. L’équipe d’ownCloud a son propre dépôt contenant les recettes non standard.

Pour monter votre environnment de compilation avec HomeBrew :

  1. Ajoutez le dépôt ownCloud en utilisant la commande :

    brew tap owncloud/owncloud
    
  2. Installez les dépendances manquantes :

    brew install $(brew deps owncloud-client)
    
  3. Ajoutez le Qt de Brew dans le chemin :

    export PATH=/usr/local/Cellar/qt5/5.x.y/bin/qmake
    

    x.z est la version courante de Qt 5 que Brew a installé sur votre machine.

  1. Pour la compilation du client, suivez les Instructions de compilation génériques.

  2. Installez l’outil de création de paquets Packages.

  3. Dans le répertoire de compilation, exécutez admin/osx/create_mac.sh <build_dir> <install_dir>. Si vous avez un certificat de signature de développeur, vous pouvez indiquer son Nom Commun en troisième paramètre (en utilisant des guillemets) pour que le paquet soit signé automatiquement.

    Note

    Contrairement aux versions précédentes, ownCloud 1.7 et versions suivantes sont sous forme d’installeur pkg. N’invoquez pas « make package » pendant la compilation car cela fabriquerait une image disque et ne fonctionnerait pas correctement.

Compilation sous Windows

Si vous voulez tester quelques changements et les déployer localement, vous pouvez compiler nativement sous Windows en utilisant MinGW. Si vous voulez générer un installeur pour le déploiement, veuillez plutôt suivre Compilation de l’installeur Windows (Cross-Compile).

  1. Obtenez les dépendances nécessaires :

    • assurez-vous d’avoir CMake et Git ;
    • téléchargez le paquet Qt MinGW package (vous utiliserez la version MinGW qu’il intègre) ;
    • téléchargez une compilation OpenSSL pour Windows (la version non « Light »).
  2. Obtenez les sources de QtKeychain et de la dernière version du client d’ownCloud à partir de Git comme suit :

    git clone https://github.com/frankosterfeld/qtkeychain.git
    git clone git://github.com/owncloud/client.git
    
  3. Ouvrez le raccourci console de Qt MinGW à partir du « Menu démrarrer »

  4. Assurez-vous que le répertoire bin d’OpenSSL et que le répertoire des sources de QtKeychain soit dans votre PATH. Ceci permettra à CMake de trouver les bibliothèques et les en-têtes, et au client ownCloud de trouver les DLL :

    set PATH=C:\<OpenSSL Install Dir>\bin;%PATH%
    set PATH=C:\<qtkeychain Clone Dir>;%PATH%
    
  5. Compilez QtKeychain directement dans le répertoire source pour que la DLL soit créée dans le même répertoire que celui des en-têtes pour permettre à CMake de les trouver grâce au PATH :

    cd <qtkeychain Clone Dir>
    cmake -G "MinGW Makefiles" .
    mingw32-make
    cd ..
    
  6. Créez le répertoire de compilation :

    mkdir client-build
    cd client-build
    
  7. Compilez le client :

    cmake -G "MinGW Makefiles" ../client
    mingw32-make
    

    Note

    Vous pouvez essayer d’utiliser ninja pour compiler en parallèle en utilisant cmake -G Ninja ../client et ninja.

    Note

    Consulter la section Instructions de compilation génériques pour des options supplémentaires.

    Le binaire ownCloud se trouvera dans le répertoire bin.

Compilation de l’installeur Windows (Cross-Compile)

En raison du grand nombre de dépendances, la compilation de l’installeur du client pour Windows est actuellement seulement supporté sous openSUSE, en utilisant le compilateur trans-plateforme MinGW. Vous pouvez installer toute version d’openSUSE supportée dans une machine virtuelle si ce n’est pas déjà fait.

Afin de faciliter la configuration, vous pouvez utiliser le fichier Docker pour créer votre propre image.

  1. En supposant que vous êtes dans la racine des sources du client ownCloud, vous pouvez créer une image à partir de ce fichier Docker comme ceci :

    cd admin/win/docker
    docker build . -t owncloud-client-win32:<version>
    

    Remplacez <version> par la version du client que vous compilez, par exemple 2.2 pour la version du client que ce document décrit. Si vous ne souhaitez pas utiliser docker, vous pouvez exécuter les commandes dans RUN manuellement dans un shell, par exemple pour créer votre propre environnement de compilation dans une machine virtuelle.

    Note

    Les images Docker sont spécifiques à chaque version. Celle-ci se rapporte à la version 2.2. Les nouvelles versions pourraient nécessiter des dépendances différentes et par conséquent nécessiter une version plus récente de l’image docker. Choisissez toujours l’image docker correspondant à votre version de client ownCloud.

  2. À partir de l’arbre des sources, lancez l’instance docker :

    docker run -v "$PWD:/home/user/client" owncloud-client-win32:<version> \
       /home/user/client/admin/win/docker/build.sh client/  $(id -u)
    

    Cela lancera la compilation, créera l’installeur NSIS et lancera les tests. Le binaire résulant sera créé dans le sous-dossier build-win32.

    Si vous ne souhaitez pas utiliser docker, et que vous avez lancé les commandes RUN ci-dessus dans une machine virtuelle, vous pouvez lancer les commandes dans la dernière section du fichier build.sh manuellement dans votre arborescence des sources.

  1. Enfin, vous pouvez signer l’installeur pour éviter d’avoir des avertissements pendant l’installation. Ceci nécessite un certificat Microsoft Authenticode osslsigncode pour signer l’installeur:

    osslsigncode -pkcs12 $HOME/.codesign/packages.pfx -h sha256 \
              -pass votre_mot_de_passe \
              -n "Mon client à moi" \
              -i "http://monsite.com" \
              -ts "http://serveur.horodatage/" \
              -in ${unsigned_file} \
              -out ${installer_file}
    

    pour -i, utilisez l’URL du serveur d’horodatage fournie par votre autorité de certification en même temps que votre certificat Authenticode. Vous pouvez aussi utiliser l’utilitaire officiel de Microsoft signtool sous Microsoft Windows.

    Si vous êtes familier avec docker, vous pouvez utiliser la version d’osslsigncode intégrée à l’image docker

Instructions de compilation génériques

Comparée aux versions précédentes, la compilation du client de synchronisation pour ordinateur est devenu plus facile. Contrairement aux versions précédentes, CSync, qui est la bibliothèque du moteru de synchronisation du client, fait maintenant partie du dépôt des sources client et n’est plus un module séparé.

Pour compiler la toute dernière version du client :

  1. Clonez la dernière version du client à partir de Git comme suit :

    git clone git://github.com/owncloud/client.git
    cd client
    git submodule init
    git submodule update
    
  2. Créez le répertoire de compilation :

    mkdir client-build
    cd client-build
    
  3. Configurez la compilation du client :

    cmake -DCMAKE_BUILD_TYPE="Debug" ..
    

    Note

    Vous devez utiliser les chemins absolus pour les répertoires include et library.

    Note

    Pour Mac OS X, vous devez spécifier -DCMAKE_INSTALL_PREFIX=target, où target est un emplacement privé, c’est-à-dire parallèle à votre répertoire de compilation, en indiquant ../install.

  4. Invoquez make.

    Le binaire ownCloud apparaîtra dans le répertoire bin.

  5. (Facultatif) Invoquez make install pour installer le client dans le répertoire /usr/local/bin.

Les paramètres suivants sont les paramètres cmake connus :

  • QTKEYCHAIN_LIBRARY=/chemin/vers/qtkeychain.dylib -DQTKEYCHAIN_INCLUDE_DIR=/chemin/vers/qtkeychain/ : Utilisé pour stocker les identifiants. Lors de la compilation avec Qt5, la bibliothèque est appelée qt5keychain.dylib. Vous devez compiler QtKeychain avec la même version Qt.
  • WITH_DOC=TRUE : Crée la documentation et les pages man à l’aide de make. Ajoute également des instructions d’installation, donnant la possibilité d’utiliser make install.
  • CMAKE_PREFIX_PATH=/path/to/Qt5.2.0/5.2.0/yourarch/lib/cmake/ : Compile en utilisant Qt5.
  • BUILD_WITH_QT4=ON : Compile en utilisant Qt4 (même si Qt5 est trouvé).
  • CMAKE_INSTALL_PREFIX=path : Définit un préfixe d’installation. Ceci est obligatoire pour Mac OS.
Toute la documentation est sous licence Creative Commons Attribution 3.0 Unported license — Traduction : Cédric Corazza.