View previous topic :: View next topic |
Author |
Message |
Corto Apprentice
Joined: 29 Jan 2004 Posts: 222
|
Posted: Mon Apr 12, 2004 9:10 am Post subject: [ebuild] faire un ebuild |
|
|
Suite à la sortie de la nouvelle version de peercast, je suis allé voir ce que portage proposait en streamer. J'ai trouvé darkice mais pas l'interface graphique darksnow, développé par un brésilien.
L'installation est simplissime, make et make install suffisent. Mais je me suis dis que devant si peu de données à traîter (je ne suis ni programmeur ni linuxien de longue date ), je pourrais voir si je pouvais en faire un ebuild
Mais ça marche pas !
J'ai fait un tour d'horizon des différents pbs relatés dans les docs mais j'ai toujours la même réponse quand je tente un emerge -p : Code: | These are the packages that I would merge, in order:
Calculating dependencies \!!! aux_get(): ebuild for 'portage/darksnow-0.4.4' does not exist at:
!!! /usr/portage/portage/darksnow/darksnow-0.4.4.ebuild
emerge: create(): aux_get() error on portage/darksnow-0.4.4; aborting...
|
J'ai mis le ebuild dans le rep /usr/local/portage/darksnow comme nécessaire (si j'ai bien compris pour zapper l'arbre officiel). Il ressemble à ça :
Code: | # Copyright 1999-2004 Gentoo Technologies, Inc.
# Distributed under the terms of the GNU General Public License v2
# $Header:$
DESCRIPTION="Streaming GTK2 Front-End based in Darkice Ice Streamer"
HOMEPAGE="http://darksnow.radiolivre.org"
SRC_URI="http://darksnow.radiolivre.org/${P}.tar.gz"
SLOT="0"
KEYWORDS="x86"
IUSE=""
S=${WORKDIR}/${P}
LICENSE="GPL-2"
DEPEND="darkice? ( >=media-sound/darkice-0.14 )"
src_compile() {
emake || die "Compilation failed"
}
src_install{
einstall || die
}
|
Qu'est-ce que j'ai raté ? _________________ La vérité n´est pas du côté du plus grand nombre, parce qu´on ne veut pas qu´elle y soit. Le jour où le plus grand nombre sera à même, par sa culture et ses connaissances, de choisir lui-même sa vérité, il y a peu de chances pour qu´il se trompe. (B. V.) |
|
Back to top |
|
|
ghoti Advocate
Joined: 30 Dec 2002 Posts: 3623 Location: Belgium
|
Posted: Mon Apr 12, 2004 10:15 am Post subject: Re: [ebuild] faire un ebuild |
|
|
Corto wrote: | Qu'est-ce que j'ai raté ? |
As-tu bien positionné la variable PORTDIR_OVERLAY dans /etc/make.conf ?
A part ça, le programme Abeni pourrait peut-être t'aider à résoudre ce genre de choses. |
|
Back to top |
|
|
Corto Apprentice
Joined: 29 Jan 2004 Posts: 222
|
Posted: Mon Apr 12, 2004 10:23 am Post subject: Re: [ebuild] faire un ebuild |
|
|
ghoti wrote: | As-tu bien positionné la variable PORTDIR_OVERLAY dans /etc/make.conf ? | Oui j'ai bien Code: | PORTDIR_OVERLAY=/usr/local/portage | de configuré dans make.conf
ghoti wrote: | A part ça, le programme Abeni pourrait peut-être t'aider à résoudre ce genre de choses. | Trop fort ! Je vais aller y jeter un oeil _________________ La vérité n´est pas du côté du plus grand nombre, parce qu´on ne veut pas qu´elle y soit. Le jour où le plus grand nombre sera à même, par sa culture et ses connaissances, de choisir lui-même sa vérité, il y a peu de chances pour qu´il se trompe. (B. V.) |
|
Back to top |
|
|
scout Veteran
Joined: 08 Mar 2003 Posts: 1991 Location: France, Paris en Semaine / Metz le W-E
|
Posted: Mon Apr 12, 2004 10:29 am Post subject: Re: [ebuild] faire un ebuild |
|
|
Corto wrote: | J'ai mis le ebuild dans le rep /usr/local/portage/darksnow comme nécessaire (si j'ai bien compris pour zapper l'arbre officiel). |
Traditionnellement, on met d'abord un répertoire pour la catégorie, et après le répertoire pour le paquetage. typiquement il faut mettre ton ebuild dans /usr/local/portage/media-sound/darksnow/darksnow-0.4.4.ebuild , et là ton ebuild est dans la catégorie media-sound et portage est tout content ... d'ailleurs rien ne t'empèche de créér tes propres catégories, mais je crois que l'ebuild direct dans l'overlay comme tu as fait, il aime pas trop _________________ http://petition.eurolinux.org/ - Petition against ePatents
L'essence de la finesse |
|
Back to top |
|
|
cylgalad Veteran
Joined: 18 Apr 2003 Posts: 1327 Location: France
|
Posted: Mon Apr 12, 2004 10:30 am Post subject: |
|
|
Au lieu de /usr/local/portage/darksnow/ tu devrais le mettre dans /usr/local/portage/media-sound/darksnow/ ça paraitrait plus "logique" cap'taine
Et faire un "ebuild digest" sur ton ebuild. |
|
Back to top |
|
|
Corto Apprentice
Joined: 29 Jan 2004 Posts: 222
|
Posted: Mon Apr 12, 2004 10:41 am Post subject: |
|
|
Pas faux
Pour le digest ça marchait pas mais je vais le retester avec le nouveau rep
EDIT : donc ça donne Code: | # ebuild darksnow-0.4.4.ebuild digest
/usr/sbin/ebuild.sh: line 23: src_install{: command not found
!!! ERROR: media-sound/darksnow-0.4.4 failed.
!!! Function einstall, Line 390, Exitcode 1
!!! no Makefile found
aux_get(): (0) Error in media-sound/darksnow-0.4.4 ebuild. (1)
Check for syntax error or corruption in the ebuild. (--debug)
doebuild(): aux_get() error; aborting.
|
_________________ La vérité n´est pas du côté du plus grand nombre, parce qu´on ne veut pas qu´elle y soit. Le jour où le plus grand nombre sera à même, par sa culture et ses connaissances, de choisir lui-même sa vérité, il y a peu de chances pour qu´il se trompe. (B. V.) |
|
Back to top |
|
|
Corto Apprentice
Joined: 29 Jan 2004 Posts: 222
|
Posted: Mon Apr 12, 2004 10:57 am Post subject: |
|
|
que je suis blond des fois...
J'ai oublié les parenthèses dans
Code: |
>>> Generating digest file...
<<< darksnow-0.4.4.tar.gz
>>> Generating manifest file...
<<< darksnow-0.4.4.ebuild
<<< files/digest-darksnow-0.4.4
>>> Computed message digests.
|
Là c'est mieux
Par contre (paske ce serait trop facile), en tentant un emerge -B ça donne : Code: | # emerge -aB darksnow-0.4.4.ebuild
These are the packages that I would merge, in order:
Calculating dependencies ...done!
[ebuild N ] media-sound/darksnow-0.4.4
Do you want me to merge these packages? [Yes/No] y
>>> emerge (1 of 1) media-sound/darksnow-0.4.4 to /
>>> md5 src_uri ;-) darksnow-0.4.4.tar.gz
>>> Unpacking source...
>>> Unpacking darksnow-0.4.4.tar.gz to /var/tmp/portage/darksnow-0.4.4/work
>>> Source unpacked.
gcc -Wall -g `pkg-config --cflags gtk+-2.0` -I/usr/include/gtk-2.0 -DINTLPREFIX="\"/usr\"" -c darksnow.c -o darksnow.o
gcc -Wall -g `pkg-config --cflags gtk+-2.0` -I/usr/include/gtk-2.0 -DINTLPREFIX="\"/usr\"" -c interface.c -o interface.o
gcc -Wall -g `pkg-config --cflags gtk+-2.0` -I/usr/include/gtk-2.0 -DINTLPREFIX="\"/usr\"" -c config_files.c -o config_files.o
gcc -Wall -g `pkg-config --cflags gtk+-2.0` -I/usr/include/gtk-2.0 `pkg-config --libs gtk+-2.0` darksnow.o interface.o config_files.o -o darksnow
>>> Install darksnow-0.4.4 into /var/tmp/portage/darksnow-0.4.4/image/ category media-sound
install darksnow /usr/bin/darksnow
ACCESS DENIED unlink: /usr/bin/darksnow
install: ne peut enlever `/usr/bin/darksnow': Permission non accordée
make: *** [install] Erreur 1
!!! ERROR: media-sound/darksnow-0.4.4 failed.
!!! Function einstall, Line 388, Exitcode 2
!!! einstall failed
--------------------------- ACCESS VIOLATION SUMMARY ---------------------------
LOG FILE = "/tmp/sandbox-media-sound_-_darksnow-0.4.4-11918.log"
unlink: /usr/bin/darksnow
--------------------------------------------------------------------------------
|
Je suppose qu'il faut désinstaller l'original ? (y a une commande je sais mais laquelle ?) _________________ La vérité n´est pas du côté du plus grand nombre, parce qu´on ne veut pas qu´elle y soit. Le jour où le plus grand nombre sera à même, par sa culture et ses connaissances, de choisir lui-même sa vérité, il y a peu de chances pour qu´il se trompe. (B. V.) |
|
Back to top |
|
|
Corto Apprentice
Joined: 29 Jan 2004 Posts: 222
|
Posted: Mon Apr 12, 2004 11:44 am Post subject: |
|
|
Bon c'était pas ça... j'ai effacé toutes les entrées de darksnow et le bug est toujours là...
Si j'ai bien compris il y a un pb d'accès à /usr/bon pour y mettre darksnow, non ? pourquoi m'sieur root il aurait des pb d'accès ???? _________________ La vérité n´est pas du côté du plus grand nombre, parce qu´on ne veut pas qu´elle y soit. Le jour où le plus grand nombre sera à même, par sa culture et ses connaissances, de choisir lui-même sa vérité, il y a peu de chances pour qu´il se trompe. (B. V.) |
|
Back to top |
|
|
scout Veteran
Joined: 08 Mar 2003 Posts: 1991 Location: France, Paris en Semaine / Metz le W-E
|
Posted: Mon Apr 12, 2004 12:14 pm Post subject: |
|
|
Corto wrote: | pourquoi m'sieur root il aurait des pb d'accès ???? |
C'est là tout l'intéret de portage !
lors du einstall (d'ailleurs faudrait plutot que t'essaye make install DESTDIR=${D}), le programme est cencé installer tout dans /var/tmp/portage/darksnow-0.4.4/image
Si il veux accéder à quelquechose en écriture et dehors de /var/tmp/portage/darksnow-0.4.4/, la sandbox de portage l'envoie balader:
Quote: | --------------------------- ACCESS VIOLATION SUMMARY ---------------------------
LOG FILE = "/tmp/sandbox-media-sound_-_darksnow-0.4.4-11918.log"
unlink: /usr/bin/darksnow
-------------------------------------------------------------------------------- |
Alors il faut que tu te débrouilles pour qu'il mette ses fichier dans /var/tmp/portage/darksnow-0.4.4/image/usr
Après portage il fait la liste des fichiers de /var/tmp/portage/darksnow-0.4.4/image/ il les copie dans / de manière à ce que quand tu fasse un unmerge, il relis la liste et vire tous les fichiers.
Si ton programme a vraiment envie d'ecrire là ou il n'a pas le droit, tu peux lui faire croire qu'il a le droit grace à un inherit eutils au début de ton paquetage puis grace à l'utilisation de addpredict. Si cela t'intéresse, je te conseille d'emerge sandboxshell et de jouer un peu avec.
Dans la plupart des cas il suffit de faire inherit blabla, par exemple inherit kde-functions met les addpredict canoniques à la compilation des applis qt, pour pas qu'elles râlent. En gtk cela se produit nettement moins, et pour ton paquetage cela se fait juste à l'installation, alors il faut juste lui dire gentiment de mettre ses fichiers dans /var/tmp/portage/darksnow-0.4.4/image/usr/bin et pas /usr/bin
essaye make install DESTDIR=${D} au lieu de einstall, et si ça ne marche pas, bonne chance
[EDIT] pour les inherit bidule, jette un coup d'oeil dans /usr/portage/eclass _________________ http://petition.eurolinux.org/ - Petition against ePatents
L'essence de la finesse |
|
Back to top |
|
|
Corto Apprentice
Joined: 29 Jan 2004 Posts: 222
|
Posted: Mon Apr 12, 2004 12:21 pm Post subject: |
|
|
Là c'est du chinois pour moi
Mais je vais fouiller dedans (ça fera une pause entre chaque chapitre de La méthode simple pour en finir avec la cigarette ) et voir ce que je peux comprendre _________________ La vérité n´est pas du côté du plus grand nombre, parce qu´on ne veut pas qu´elle y soit. Le jour où le plus grand nombre sera à même, par sa culture et ses connaissances, de choisir lui-même sa vérité, il y a peu de chances pour qu´il se trompe. (B. V.) |
|
Back to top |
|
|
Corto Apprentice
Joined: 29 Jan 2004 Posts: 222
|
Posted: Mon Apr 12, 2004 1:30 pm Post subject: |
|
|
Marche pas et un peu confu...
Si j'utilise Code: | make install DESTDIR=$[S]/usr/bin | j'ai la même réponse. Mais je pense d'ailleurs que ce n'est pas le bon chemin à mettre... il doit y avoir une subtilité dans le concept du chemin que je n'ai pas saisi...
J'ai essayé de multiples chemins sans succès :-/ _________________ La vérité n´est pas du côté du plus grand nombre, parce qu´on ne veut pas qu´elle y soit. Le jour où le plus grand nombre sera à même, par sa culture et ses connaissances, de choisir lui-même sa vérité, il y a peu de chances pour qu´il se trompe. (B. V.) |
|
Back to top |
|
|
scout Veteran
Joined: 08 Mar 2003 Posts: 1991 Location: France, Paris en Semaine / Metz le W-E
|
Posted: Mon Apr 12, 2004 3:00 pm Post subject: |
|
|
Bon, je me suis dit qu'il fallait bien voir ce que c'était que ce darksnow ... alors jette un coup d'oeil au Makefile et tu va comprendre ce qui ne marche pas bien.
Je me suis bien amusé ! j'ai eu le droit d'aller voir comment ça marche sed
Code: | # Copyright 1999-2004 Gentoo Technologies, Inc.
# Distributed under the terms of the GNU General Public License v2
# $Header:$
DESCRIPTION="Streaming GTK2 Front-End based in Darkice Ice Streamer"
HOMEPAGE="http://darksnow.radiolivre.org"
SRC_URI="http://darksnow.radiolivre.org/${P}.tar.gz"
SLOT="0"
KEYWORDS="x86"
IUSE=""
LICENSE="GPL-2"
DEPEND=">=x11-libs/gtk+-2
>=media-sound/darkice-0.14"
src_unpack() {
unpack ${A}
einfo "Patching Makefile..."
cd ${S}
sed -i "s:^PREFIX=.*:PREFIX=${D}:" Makefile
sed -i "s:^CFLAGS=:CFLAGS=${CFLAGS} :" Makefile
}
src_compile() {
emake || die "Compilation failed"
}
src_install () {
make install
} |
Bonne chance pour comprendre _________________ http://petition.eurolinux.org/ - Petition against ePatents
L'essence de la finesse |
|
Back to top |
|
|
Corto Apprentice
Joined: 29 Jan 2004 Posts: 222
|
Posted: Mon Apr 12, 2004 3:27 pm Post subject: |
|
|
Pu**n ça marche !!!!!!!!!!!
Bon alors, je googlise à mort... _________________ La vérité n´est pas du côté du plus grand nombre, parce qu´on ne veut pas qu´elle y soit. Le jour où le plus grand nombre sera à même, par sa culture et ses connaissances, de choisir lui-même sa vérité, il y a peu de chances pour qu´il se trompe. (B. V.) |
|
Back to top |
|
|
scout Veteran
Joined: 08 Mar 2003 Posts: 1991 Location: France, Paris en Semaine / Metz le W-E
|
Posted: Mon Apr 12, 2004 4:35 pm Post subject: |
|
|
Corto wrote: | Bon alors, je googlise à mort... |
En gros les deux lignes sed, elles remplacent
PREFIX=/usr par
PREFIX=/var/tmp/portage/darksnow-0.4.4/image (si je ne me trompe pas)
et CFLAGS=blabla écris pas le programmeur qui fait que ça compile bien
par CFLAGS=tes cflags+blabla écris pas le programmeur qui fait que ça compile bien
et ça suffit à faire marcher le tout ... _________________ http://petition.eurolinux.org/ - Petition against ePatents
L'essence de la finesse |
|
Back to top |
|
|
fedeliallalinea Administrator
Joined: 08 Mar 2003 Posts: 30822 Location: here
|
Posted: Mon Apr 12, 2004 5:00 pm Post subject: |
|
|
Pour faire rapidement les ebuild il y a
Code: | * app-portage/abeni [ Masked ]
Latest version available: 0.0.9
Latest version installed: [ Not Installed ]
Size of downloaded files: 129 kB
Homepage: http://abeni.sf.net/
Description: Integrated Development Environment for Gentoo Linux ebuilds |
_________________ Questions are guaranteed in life; Answers aren't. |
|
Back to top |
|
|
Corto Apprentice
Joined: 29 Jan 2004 Posts: 222
|
Posted: Tue Apr 13, 2004 12:00 am Post subject: |
|
|
scout wrote: | Corto wrote: | Bon alors, je googlise à mort... |
En gros les deux lignes sed, elles remplacent
PREFIX=/usr par
PREFIX=/var/tmp/portage/darksnow-0.4.4/image (si je ne me trompe pas)
et CFLAGS=blabla écris pas le programmeur qui fait que ça compile bien
par CFLAGS=tes cflags+blabla écris pas le programmeur qui fait que ça compile bien
et ça suffit à faire marcher le tout ... |
Jusque là je suis mais je vois pas quel est le changement, puisque je ne connais pas la syntaxe de la commande.. Là je me suis fait détourné par un pote mais je reviendrais dessus demain _________________ La vérité n´est pas du côté du plus grand nombre, parce qu´on ne veut pas qu´elle y soit. Le jour où le plus grand nombre sera à même, par sa culture et ses connaissances, de choisir lui-même sa vérité, il y a peu de chances pour qu´il se trompe. (B. V.) |
|
Back to top |
|
|
Corto Apprentice
Joined: 29 Jan 2004 Posts: 222
|
Posted: Tue Apr 13, 2004 10:28 am Post subject: |
|
|
OK je crois que j'ai compris mais la synthaxe de sed c'est du grand art à manier !
Donc en fait, il y avait de mauvaises infos dans le makefile et il fallait changer ces path, c'est ça ? _________________ La vérité n´est pas du côté du plus grand nombre, parce qu´on ne veut pas qu´elle y soit. Le jour où le plus grand nombre sera à même, par sa culture et ses connaissances, de choisir lui-même sa vérité, il y a peu de chances pour qu´il se trompe. (B. V.) |
|
Back to top |
|
|
scout Veteran
Joined: 08 Mar 2003 Posts: 1991 Location: France, Paris en Semaine / Metz le W-E
|
Posted: Tue Apr 13, 2004 11:06 pm Post subject: |
|
|
Corto wrote: | Donc en fait, il y avait de mauvaises infos dans le makefile et il fallait changer ces path, c'est ça ? |
oui, si on peux appeller cela des "mauvaises infos" _________________ http://petition.eurolinux.org/ - Petition against ePatents
L'essence de la finesse |
|
Back to top |
|
|
|