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.
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
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
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 :
Ajoutez le dépôt ownCloud en utilisant la commande :
brew tap owncloud/owncloud
Installez les dépendances manquantes :
brew install $(brew deps owncloud-client)
Ajoutez le Qt de Brew dans le chemin :
export PATH=/usr/local/Cellar/qt5/5.x.y/bin/qmake
Où x.z est la version courante de Qt 5 que Brew a installé sur votre machine.
Pour la compilation du client, suivez les Instructions de compilation génériques.
Installez l’outil de création de paquets Packages.
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).
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 »).
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
Ouvrez le raccourci console de Qt MinGW à partir du « Menu démrarrer »
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%
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 ..
Créez le répertoire de compilation :
mkdir client-build cd client-build
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.
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.
À 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.
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 :
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
Créez le répertoire de compilation :
mkdir client-build cd client-build
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.
Invoquez make.
Le binaire ownCloud apparaîtra dans le répertoire bin.
(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.