Page 1 sur 1
[package] Herqq
Publié : jeu. 20 oct. 2011, 18:34
par Feng
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
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 ...
Re: [package] Herqq
Publié : jeu. 20 oct. 2011, 19:58
par benjarobin
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
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é
Re: [package] Herqq
Publié : jeu. 20 oct. 2011, 20:00
par Feng
Ben ouais mais j'me suis dis que install était "plus mieux propre"
Re: [package] Herqq
Publié : jeu. 20 oct. 2011, 20:01
par Feng
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 :/)
Re: [package] Herqq
Publié : jeu. 20 oct. 2011, 20:06
par benjarobin
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.
Re: [package] Herqq
Publié : jeu. 20 oct. 2011, 20:09
par FoolEcho
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 :
?
Re: [package] Herqq
Publié : jeu. 20 oct. 2011, 20:18
par benjarobin
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
Re: [package] Herqq
Publié : ven. 21 oct. 2011, 14:49
par Feng
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 ?
Re: [package] Herqq
Publié : ven. 21 oct. 2011, 19:07
par FoolEcho
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é
).
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).
Re: [package] Herqq
Publié : ven. 21 oct. 2011, 19:48
par Feng
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é.
Re: [package] Herqq
Publié : ven. 21 oct. 2011, 20:05
par Feng
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.
Re: [package] Herqq
Publié : ven. 21 oct. 2011, 20:36
par FoolEcho
Il y a du récursif, donc il n'y a pas qu'un .pro:
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
- : 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).
Re: [package] Herqq
Publié : ven. 21 oct. 2011, 20:53
par Feng
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 ?
Re: [package] Herqq
Publié : ven. 21 oct. 2011, 20:54
par Feng
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 ...
Re: [package] Herqq
Publié : sam. 22 oct. 2011, 10:08
par FoolEcho
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
) 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
). 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)
Au passage, il ne me semble pas que tu aies besoin de cmake et d'automoc4 pour herqq (mais 'qt' oui).