Page 1 sur 1

[pkgbuild] Aide pour création KFolderSync (Résolu)

Publié : mer. 26 mars 2014, 09:28
par Pafrapé
Bonjour à tous.

Je suis ent rain de créer un PKGBUIL pour le logiciel KFolerSync.
mais n'étant pas un spécialiste dans le domaine, j'aurais besoin de votre aide pour le compléter et le corriger.

Voici donc la méthode d'installation:

Code : Tout sélectionner

How To Build
-=-=-=-=-=-=-=-=-=-=-=-=-=

--- On Unix:

cd <project_name_path>
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=$(kde4-config --prefix) -DCMAKE_BUILD_TYPE=Release ..      <- do not forget the '..'
make
make install or su -c 'make install'

to uninstall the project:
make uninstall or su -c 'make uninstall'

Note: you can use another build path. Then cd in your build dir and:
export KDE_SRC=path_to_your_src
cmake $KDE_SRC -DCMAKE_INSTALL_PREFIX=$KDEDIRS -DCMAKE_BUILD_TYPE=Debug

where $KDEDIRS points to your KDE installation prefix.
Et voici mon PKGBUILD:

Code : Tout sélectionner

# Maintainer: Pafrapé <pafrape@±ree.fr
# Contributor: Pafrapé <pafrape@±ree.fr>

pkgname=KFolderSync
pkgver=1.1.2
pkgrel=1
pkgdesc="Folder synchronization tool"
arch=(any)
url="http://kde-apps.org/content/show.php/KFolderSync?content=164092"
depends=('kdebase-workspace')
license=('GPL')
source=(http://downloads.sourceforge.net/project/kfoldersync/kfoldersync-$pkgname-$pkgver.tar.xz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fkfoldersync%2Ffiles%2F&ts=1395820410&use_mirror=freefr)
makedepends=('cmake')
md5sums=('03c33de2b1f69e2f1301fa0efb4a2940 ')

build() {
  cd ${srcdir}/${pkgname}-${pkgver}
  ./configure --prefix=$KDEDIRS -DCMAKE_BUILD_TYPE=Debug
  make || return 1
  make prefix=$pkgdir/usr install
Merci d'avance de me dire ce qu'il convient de rectifier, ajouiter, supprimer,... afin que mon PKGBUILD corresponde bien à la méthode d'installation préconisée.

Re: [pkgbuild] Aide pour création KFolderSync

Publié : mer. 26 mars 2014, 11:07
par FoolEcho
Salut,

Ben... déjà pourquoi tu rajoutes un configure alors qu'il ne figure pas dans le howto ? :mrgreen: (ça passe par cmake qui va produire le(s) makefile(s) approprié(s))

Ceci étant dit:
  • Contributor vaudra pour ceux qui viendront après toi, ce sera à eux de te passer Contributor et pour eux de rajouter une ligne Maintainer
  • pkgname ne doit pas contenir de capitales (au besoin, mais ce n'est a priori pas le cas ici, tu peux rajouter/utiliser une variable _pkgname=KFolderSync
  • il s'agit d'un programme en c++ donc dépendante de l'architecture qu'il faut donc spécifier
  • rendre l'url d'accès au source moins barbare
  • à vérifier, mais d'après la description et l'exécutable obtenu, je pense que la dépendance est kdelibs et non kde-workspace
  • le make install devrait aller dans prepare() et non dans build()
Ce qui donne plutôt:

Code : Tout sélectionner

# Maintainer: Pafrapé <pafrape@±ree.fr

pkgname=kfoldersync
pkgver=1.1.2
pkgrel=1
pkgdesc="Folder synchronization tool"
arch=('i686' 'x86_64')
url="http://kde-apps.org/content/show.php/KFolderSync?content=164092"
depends=('kdelibs')
license=('GPL')
source=(http://downloads.sourceforge.net/project/kfoldersync/$pkgname-$pkgver.tar.xz)
md5sums=('03c33de2b1f69e2f1301fa0efb4a2940')
makedepends=('cmake')

prepare() {
   mkdir -p build
}

build() {
   cd build
   cmake -DCMAKE_INSTALL_PREFIX=$(kde4-config --prefix) -DCMAKE_BUILD_TYPE=Release ../${pkgname}-${pkgver}
   make || return 1
}

package() {
   cd build
   make DESTDIR="$pkgdir/" install
}
Pour le pourquoi du répertoire build (plus propre) et du DCMAKE_INSTALL_PREFIX (variante selon sur AUR, [community] ou [extra]), cf. KDE_Package_Guidelines.
(note aussi les simplifications d'écriture des différents cd, apport de pacman 4 si je ne m'abuse)

Voilà, a priori, tu n'as plus qu'à vérifier que la construction et l'installation sont fonctionnelles (je n'ai testé que la construction). :chinois:

Re: [pkgbuild] Aide pour création KFolderSync

Publié : mer. 26 mars 2014, 12:05
par Pafrapé
Je te remercie pour ta réponse et les modifications apportées.

Je vais faire les démarches nécessaires et le mettre sur Aur.

Merci encore :chinois: