[package] Herqq

Mise à jour / Création /debug de paquetages
Répondre
Avatar de l’utilisateur
Feng
yeomen
Messages : 273
Inscription : mer. 07 avr. 2010, 20:19

[package] Herqq

Message par Feng » jeu. 20 oct. 2011, 18:34

Bonjour,

Je souhaite créer un paquet pour herqq, mais dans une version bien précise : la révision SVN 55 . Cette version précise est nécessaire pour un autre paquet.

J'ai créé ce simple PKGBUILD :

Code : Tout sélectionner

pkgname=herqq-svn-r55
pkgver=1
pkgrel=1
pkgdesc="Herqq project, SVN Revision 55 "
arch=('i686' 'x86_64')
url="http://www.herqq.org"
license=('GPL3')
makedepends=('automoc4' 'cmake')

build() {

	svn co -r 55  https://hupnp.svn.sourceforge.net/svnroot/hupnp hupnp
	cd hupnp/trunk/herqq/

	qmake -recursive
	make -j4 || return 1

}

package() {
	
	msg "Importing library..."
	
	mkdir -p "$pkgdir/usr/lib"

	install -m 644 "$srcdir/hupnp/trunk/herqq/hupnp/bin/libHUpnp.so.1.0.0" "$pkgdir/usr/lib/libHUpnp.so"
	ln -s "$pkgdir/usr/lib/libHUpnp.so" "$pkgdir/usr/lib/libHUpnp.so.1"
	
	install -m 644 "$srcdir/hupnp/trunk/herqq/hupnp/bin/libQtSolutions_SOAP-2.7.so.1.0.0" "$pkgdir/usr/lib/libQtSolutions_SOAP-2.7.so"
	ln -s "$pkgdir/usr/lib/libQtSolutions_SOAP-2.7.so" "$pkgdir/usr/lib/libQtSolutions_SOAP-2.7.so.1"

	
	msg "Preparing include..."
	
	mkdir -p "$pkgdir/usr/include/HUpnpCore/public"
	mkdir "$pkgdir/usr/include/HUpnpCore/private"
	
	msg "Installing include..."
	
	install -m 644 "$srcdir/hupnp/trunk/herqq/hupnp/include/HUpnpCore/*" "$pkgdir/usr/include/HUpnpCore"
	install -m 644 "$srcdir/hupnp/trunk/herqq/hupnp/include/HUpnpCore/public/*" "$pkgdir/usr/include/HUpnpCore/public"
	install -m 644 "$srcdir/hupnp/trunk/herqq/hupnp/include/HUpnpCore/private/*" "$pkgdir/usr/include/HUpnpCore/private"
	
}

Mais install me répond :
install: impossible d'évaluer « /home/feng/projets/herqq-svn-r55/src/hupnp/trunk/herqq/hupnp/include/HUpnpCore/* »: Aucun fichier ou dossier de ce type
Je sais pas comment installer tout un répertoire directement avec install. Je compte pas me taper les 50 fichiers à la main voyez :D

Je bloque la-dessus donc si quelqu'un pouvez m'expliquer comment fonctionne exactement install parce que son manuel est vraiment pas clair du tout.

PS : si je passe par install c'est parce que les autres méthodes de spécification du répertoire (avec qmake ou make install) ne fonctionnent pas malheureusement ...

benjarobin
Maître du Kyudo
Messages : 15565
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [package] Herqq

Message par benjarobin » jeu. 20 oct. 2011, 19:58

Pourquoi ne pas faire tout simplement

Code : Tout sélectionner

cp $srcdir/hupnp/trunk/herqq/hupnp/include/HUpnpCore/* $pkgdir/usr/include/HUpnpCore
Et si tu veux être sûre pour les droits du rajoute ensuite un

Code : Tout sélectionner

chmod 644 $pkgdir/usr/include/HUpnpCore/*
Sinon tu as toujours la méthode du find:

Code : Tout sélectionner

find $srcdir/hupnp/trunk/herqq/hupnp/include/HUpnpCore/ -type f -maxdepth 0 -exec install -m 644 {} $pkgdir/usr/include/HUpnpCore/ \;
Mais celle-ci devient compliqué
Dernière modification par benjarobin le jeu. 20 oct. 2011, 20:28, modifié 2 fois.
Zsh | KDE | PC fixe : core i7, carte nvidia | Portable : Asus ul80vt
Titre d'un sujet : [Thème] Sujet (état)

Avatar de l’utilisateur
Feng
yeomen
Messages : 273
Inscription : mer. 07 avr. 2010, 20:19

Re: [package] Herqq

Message par Feng » jeu. 20 oct. 2011, 20:00

Ben ouais mais j'me suis dis que install était "plus mieux propre"

Avatar de l’utilisateur
Feng
yeomen
Messages : 273
Inscription : mer. 07 avr. 2010, 20:19

Re: [package] Herqq

Message par Feng » jeu. 20 oct. 2011, 20:01

Dois-je répéter la méthode du find pour les sous-répertoire ou c'est récursif ? (je suis pas du tout à l'aise avec find, ça aide pas :/)

benjarobin
Maître du Kyudo
Messages : 15565
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [package] Herqq

Message par benjarobin » jeu. 20 oct. 2011, 20:06

Find est assez compliqué, voir edit du dessus car tu as du svn...
La méthode find n'est pas récursive tel quel est écrite
cp est très propre, tant que tu fait le chmod après.
Dernière modification par benjarobin le jeu. 20 oct. 2011, 20:28, modifié 1 fois.
Zsh | KDE | PC fixe : core i7, carte nvidia | Portable : Asus ul80vt
Titre d'un sujet : [Thème] Sujet (état)

Avatar de l’utilisateur
FoolEcho
Maître du Kyudo
Messages : 10542
Inscription : dim. 15 août 2010, 11:48
Localisation : Basse-Normandie

Re: [package] Herqq

Message par FoolEcho » jeu. 20 oct. 2011, 20:09

Feng a écrit :PS : si je passe par install c'est parce que les autres méthodes de spécification du répertoire (avec qmake ou make install) ne fonctionnent pas malheureusement ...
Ça ne fonctionne pas avec INSTALL_ROOT :

Code : Tout sélectionner

qmake
make
make INSTALL_ROOT="$pkgdir/" install
?
«The following statement is not true. The previous statement is true.» :nage:

benjarobin
Maître du Kyudo
Messages : 15565
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [package] Herqq

Message par benjarobin » jeu. 20 oct. 2011, 20:18

En effet ceci :

Code : Tout sélectionner

pkgname=herqq-svn-r55
pkgver=1
pkgrel=1
pkgdesc="Herqq project, SVN Revision 55 "
arch=('i686' 'x86_64')
url="http://www.herqq.org"
license=('GPL3')
makedepends=('automoc4' 'cmake')

build() {

   svn co -r 55  https://hupnp.svn.sourceforge.net/svnroot/hupnp/trunk/herqq herqq
   cd herqq/

   qmake -recursive
   make  || return 1
}

package() {
        cd $srcdir/herqq/
        make INSTALL_ROOT="$pkgdir/" install
}
Edit, hum, il manque quelques fichiers...
Il faudrait patcher le ou les .pro pour ajouter la section INSTALLS
Zsh | KDE | PC fixe : core i7, carte nvidia | Portable : Asus ul80vt
Titre d'un sujet : [Thème] Sujet (état)

Avatar de l’utilisateur
Feng
yeomen
Messages : 273
Inscription : mer. 07 avr. 2010, 20:19

Re: [package] Herqq

Message par Feng » ven. 21 oct. 2011, 14:49

Ouais enfin ça commence à devenir compliqué.

Voilà mon PKGBUILD final (il fonctionne)

Code : Tout sélectionner

pkgname=herqq-svn-r55
pkgver=1
pkgrel=1
pkgdesc="Herqq project (HUpnp library), SVN Revision 55"
arch=('i686' 'x86_64')
url="http://www.herqq.org"
license=('GPL3')
makedepends=('automoc4' 'cmake')

build() {

	msg "Downloading SVN Revision 55"

	svn co -r 55  https://hupnp.svn.sourceforge.net/svnroot/hupnp hupnp
	cd "$srcdir/hupnp/trunk/herqq"

	msg "Compile"

	qmake -recursive
	make || return 1

}

package() {
	
	cd "$srcdir/hupnp/trunk/herqq"
	make install
	
	msg "Copying files"
	
	mkdir -p "$pkgdir/usr/lib"

	install -m 644 "$srcdir/hupnp/trunk/herqq/hupnp/bin/libHUpnp.so.1.0.0" "$pkgdir/usr/lib/libHUpnp.so"
	ln -s "$pkgdir/usr/lib/libHUpnp.so" "$pkgdir/usr/lib/libHUpnp.so.1"
	
	install -m 644 "$srcdir/hupnp/trunk/herqq/hupnp/bin/libQtSolutions_SOAP-2.7.so.1.0.0" "$pkgdir/usr/lib/libQtSolutions_SOAP-2.7.so"
	ln -s "$pkgdir/usr/lib/libQtSolutions_SOAP-2.7.so" "$pkgdir/usr/lib/libQtSolutions_SOAP-2.7.so.1"

	mkdir -p "$pkgdir/usr/include"
	cp -r "$srcdir/hupnp/trunk/herqq/hupnp/deploy/include/HUpnpCore" "$pkgdir/usr/include"
	rm -r "$srcdir/hupnp/trunk/herqq/hupnp/include/HUpnpCore/public"
	rm -r "$srcdir/hupnp/trunk/herqq/hupnp/include/HUpnpCore/private"
	cp $srcdir/hupnp/trunk/herqq/hupnp/include/HUpnpCore/* "$pkgdir/usr/include/HUpnpCore"
	chmod -R 644 "$pkgdir/usr/include/HUpnpCore"
	chmod 755 "$pkgdir/usr/include/HUpnpCore"
	chmod 755 "$pkgdir/usr/include/HUpnpCore/public"
	chmod 755 "$pkgdir/usr/include/HUpnpCore/private"

}
Par contre pour le numéro de version c'est bon ?

Avatar de l’utilisateur
FoolEcho
Maître du Kyudo
Messages : 10542
Inscription : dim. 15 août 2010, 11:48
Localisation : Basse-Normandie

Re: [package] Herqq

Message par FoolEcho » ven. 21 oct. 2011, 19:07

benjarobin a écrit :Edit, hum, il manque quelques fichiers...
Il faudrait patcher le ou les .pro pour ajouter la section INSTALLS
Feng a écrit :Ouais enfin ça commence à devenir compliqué.
Ben non, justement. Il faudrait effectivement faire un tour dans les .pro pour profiter au maximum du make install, toi qui veut plus propre (maintenant, je n'ai pas regardé :mrgreen: ).
Feng a écrit :Par contre pour le numéro de version c'est bon ?
Puisque tu fixes une révision précise, 55 serait mieux (maintenant, vu qu'il est rare de construire une révision précise, c'est une colle :) ).
Si tu comptes le mettre sur Aur, suit bien les standards:
https://wiki.archlinux.org/index.php/Ar ... guidelines (tu as un exemple de svn avec ces variables si tu installes le paquet abs).
«The following statement is not true. The previous statement is true.» :nage:

Avatar de l’utilisateur
Feng
yeomen
Messages : 273
Inscription : mer. 07 avr. 2010, 20:19

Re: [package] Herqq

Message par Feng » ven. 21 oct. 2011, 19:48

Ben j'le veux assez propre dans la mesure où c'est un paquet vital pour l'UPnP avec KDE (et avec Amarok notamment). Donc possible qu'il devienne très utilisé.

Avatar de l’utilisateur
Feng
yeomen
Messages : 273
Inscription : mer. 07 avr. 2010, 20:19

Re: [package] Herqq

Message par Feng » ven. 21 oct. 2011, 20:05

Voici le herqq.pro :

Code : Tout sélectionner

TEMPLATE = subdirs
CONFIG  += ordered
SUBDIRS  = \
    hupnp/lib/qtsoap-2.7-opensource/buildlib \
    hupnp \
    apps/simple_test-app
Voici l'architecture (une fois compilé) :

Code : Tout sélectionner

.
├── herqq.pro
├── apps
│   └── simple_test-app
│       └── obj
└── hupnp
    ├── bin
    │   └── descriptions
    ├── deploy
    │   └── include
    │       └── HUpnpCore
    │           ├── private
    │           └── public
    ├── include
    │   └── HUpnpCore
    ├── lib
    │   └── qtsoap-2.7-opensource
    │       ├── buildlib
    │       │   ├── debug
    │       │   └── release
    │       ├── lib
    │       └── src
    └── src
        ├── hupnp_core
        │   ├── dataelements
        │   ├── datatypes
        │   ├── devicehosting
        │   │   ├── controlpoint
        │   │   ├── devicehost
        │   │   └── messages
        │   ├── devicemodel
        │   ├── general
        │   ├── http
        │   ├── obj
        │   ├── socket
        │   └── ssdp
        └── utils
Sachant que :

Il faut le dossier ./hupnp/deploy/HUpnpCore et tout ce qu'il contient dans /usr/include
Il faut le contenu de ./hupnp/include/HUpnpCore/ et les fichiers qu'il contient (et non les dossiers) dans /usr/include/HUpnpCore
Il faut ./hupnp/bin/libHUpnp.so.1.0.0 dans /usr/lib/libHUpnp.so , qui link libHUpnp.so.1.0
Il faut ./hupnp/bin/libQtSolutions_SOAP-2.7.so.1.0.0 dans /usr/lib/libQtSolutions_SOAP-2.7.so qui link libQtSolutions_SOAP-2.7.so.1

Enfin ce que fait la methode package() du PKGBUILD quoi ^^ J'y connais rien en .pro donc si vous voulez bien me filer un coup de pouce ce serait cool.

Sinon j'ai téléchargé ABS et récupéré le prototype PKGBUILD-svn, donc ouais ils disent version 55, c'est ce que je vais mettre, étant donné qu'il n'y a pas de version SVN dans AUR, ça ne posera pas de soucis.

Avatar de l’utilisateur
FoolEcho
Maître du Kyudo
Messages : 10542
Inscription : dim. 15 août 2010, 11:48
Localisation : Basse-Normandie

Re: [package] Herqq

Message par FoolEcho » ven. 21 oct. 2011, 20:36

Il y a du récursif, donc il n'y a pas qu'un .pro: :) :non:

Code : Tout sélectionner

$ find src/herqq/ -name "*pro"
src/herqq/herqq.pro
src/herqq/apps/simple_test-app/simple_test-app.pro
src/herqq/hupnp/lib/qtsoap-2.7-opensource/buildlib/buildlib.pro
src/herqq/hupnp/lib/qtsoap-2.7-opensource/qtsoap.pro
src/herqq/hupnp/hupnp.pro
src/herqq/hupnp/src/hupnp_core/hupnp_core.pro
Bon, maintenant si ton PKGBUILD fonctionne comme ça, c'est pas très génant au final: j'ai rapidemment regardé leur site et ça a l'air plutôt souple sur le déploiement (je verrai peut-être ce week-end si y a moyen via les .pro de faire un truc plus propre -- sauf si benjarobin ou un autre s'y colle entretemps bien sûr :chinois: - : j'ai juste testé le build avec INSTALL_ROOT et ça n'est clairement pas ça: on se retrouve seulement avec les .h dans pkg/ avec en plus des chemins tordus incluant ~ ... ce que disait benjarobin sûrement :| ).
Feng a écrit :Sinon j'ai téléchargé ABS et récupéré le prototype PKGBUILD-svn, donc ouais ils disent version 55, c'est ce que je vais mettre, étant donné qu'il n'y a pas de version SVN dans AUR, ça ne posera pas de soucis.
Y a peut-être que moi que ça dérange, mais ça me choquerait moins si c'était basé sur une version précise (stable donc) plutôt que sur du svn (développement). :|
«The following statement is not true. The previous statement is true.» :nage:

Avatar de l’utilisateur
Feng
yeomen
Messages : 273
Inscription : mer. 07 avr. 2010, 20:19

Re: [package] Herqq

Message par Feng » ven. 21 oct. 2011, 20:53

Ben moi aussi mais kio-upnp-ms dépend de herqq en révision SVN 55 . J'ai testé toutes les versions stables depuis la 0.5 et aucune ne fonctionnent. En plus AUR contient déjà un paquet herqq en version 1.0 qui ne fonctionnent évidemment pas avec kio-upnp-ms . Donc je pense que faire un paquet herqq-svn bloqué en révision 55 est une bonne alternative. Moi aussi ça me perturbe un peu mais si je regarde le paquet mysql51 (AUR) par exemple, le paquet s'appel mysql51 (donc il défini une version précise), et le numéro de version est 5.1.29, donc il redéfini le même numéro de version. Donc peut-être l'appeler herqq-svn-r55 ; version 55 ?

Avatar de l’utilisateur
Feng
yeomen
Messages : 273
Inscription : mer. 07 avr. 2010, 20:19

Re: [package] Herqq

Message par Feng » ven. 21 oct. 2011, 20:54

FoolEcho :
j'ai juste testé le build avec INSTALL_ROOT et ça n'est clairement pas ça: on se retrouve seulement avec les .h dans pkg/ avec en plus des chemins tordus incluant ~
Feng :
PS : si je passe par install c'est parce que les autres méthodes de spécification du répertoire (avec qmake ou make install) ne fonctionnent pas malheureusement ...

Avatar de l’utilisateur
FoolEcho
Maître du Kyudo
Messages : 10542
Inscription : dim. 15 août 2010, 11:48
Localisation : Basse-Normandie

Re: [package] Herqq

Message par FoolEcho » sam. 22 oct. 2011, 10:08

Feng a écrit :mais si je regarde le paquet mysql51 (AUR) par exemple, le paquet s'appel mysql51 (donc il défini une version précise), et le numéro de version est 5.1.29, donc il redéfini le même numéro de version. Donc peut-être l'appeler herqq-svn-r55 ; version 55 ?
L'exemple n'est pas bon. Le paquet mysql part d'une version stable, la 5.1, justement (et là, il faut bien faire un distinguo entre le mysql officiel en 5.5 et des versions plus anciennes).
Vu que le README de kio-upnp-ms indique se baser sur la svn 55 (en attendant mieux ?), tu n'as effectivement pas trop le choix. Ce qui est pourri c'est que ton paquet va inclure le dernier numéro de révision, je ne sais pas s'il y a moyen de fixer ça (je ne crois pas, le pkgver étant mis à jour selon la dernière révision de svn :( ).

Sinon, je ne vais (lâchement :roll: ) pas trop m'enquiquiner sur les .pro ce week-end, je n'ai pas trop le temps (ni envie, vu que tu as un PKGBUILD et si tes bibliothèques sont bien linkés :wink:). Sur ce que j'ai vu de http://www.herqq.org/html/hupnp_v1/inde ... deployment et des .pro, je dirai qu'il manque quelques règles de construction pour un make install plus propre: la doc indique hupnp/deploy/include et hupnp/deploy/lib, sauf que ce dernier n'est pas créé (et du coup, on ne peut le retrouver si on utilise INSTALL_ROOT).
Du coup, peut-être jeter un oeil sur les .pro des dernières révisions ? (même si, comme benjarobin je pense, je ne peux le construire à cause de fichiers manquants :| ... mais bon, seuls les .pro sont intéressants à la rigueur) :sifflote2:

Au passage, il ne me semble pas que tu aies besoin de cmake et d'automoc4 pour herqq (mais 'qt' oui).
«The following statement is not true. The previous statement is true.» :nage:

Répondre