Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[ebuild] faire un ebuild
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index French
View previous topic :: View next topic  
Author Message
Corto
Apprentice
Apprentice


Joined: 29 Jan 2004
Posts: 222

PostPosted: Mon Apr 12, 2004 9:10 am    Post subject: [ebuild] faire un ebuild Reply with quote

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 :P

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
View user's profile Send private message
ghoti
Advocate
Advocate


Joined: 30 Dec 2002
Posts: 3559
Location: Belgium

PostPosted: Mon Apr 12, 2004 10:15 am    Post subject: Re: [ebuild] faire un ebuild Reply with quote

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
View user's profile Send private message
Corto
Apprentice
Apprentice


Joined: 29 Jan 2004
Posts: 222

PostPosted: Mon Apr 12, 2004 10:23 am    Post subject: Re: [ebuild] faire un ebuild Reply with quote

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
View user's profile Send private message
scout
Veteran
Veteran


Joined: 08 Mar 2003
Posts: 1991
Location: France, Paris en Semaine / Metz le W-E

PostPosted: Mon Apr 12, 2004 10:29 am    Post subject: Re: [ebuild] faire un ebuild Reply with quote

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
View user's profile Send private message
cylgalad
Veteran
Veteran


Joined: 18 Apr 2003
Posts: 1327
Location: France

PostPosted: Mon Apr 12, 2004 10:30 am    Post subject: Reply with quote

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
View user's profile Send private message
Corto
Apprentice
Apprentice


Joined: 29 Jan 2004
Posts: 222

PostPosted: Mon Apr 12, 2004 10:41 am    Post subject: Reply with quote

Pas faux :oops:

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
View user's profile Send private message
Corto
Apprentice
Apprentice


Joined: 29 Jan 2004
Posts: 222

PostPosted: Mon Apr 12, 2004 10:57 am    Post subject: Reply with quote

:lol: que je suis blond des fois... :D

J'ai oublié les parenthèses dans
Code:
src_install
:roll:

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
View user's profile Send private message
Corto
Apprentice
Apprentice


Joined: 29 Jan 2004
Posts: 222

PostPosted: Mon Apr 12, 2004 11:44 am    Post subject: Reply with quote

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
View user's profile Send private message
scout
Veteran
Veteran


Joined: 08 Mar 2003
Posts: 1991
Location: France, Paris en Semaine / Metz le W-E

PostPosted: Mon Apr 12, 2004 12:14 pm    Post subject: Reply with quote

Corto wrote:
pourquoi m'sieur root il aurait des pb d'accès ????

C'est là tout l'intéret de portage ! 8)
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 :wink:
[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
View user's profile Send private message
Corto
Apprentice
Apprentice


Joined: 29 Jan 2004
Posts: 222

PostPosted: Mon Apr 12, 2004 12:21 pm    Post subject: Reply with quote

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 :P) 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
View user's profile Send private message
Corto
Apprentice
Apprentice


Joined: 29 Jan 2004
Posts: 222

PostPosted: Mon Apr 12, 2004 1:30 pm    Post subject: Reply with quote

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
View user's profile Send private message
scout
Veteran
Veteran


Joined: 08 Mar 2003
Posts: 1991
Location: France, Paris en Semaine / Metz le W-E

PostPosted: Mon Apr 12, 2004 3:00 pm    Post subject: Reply with quote

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 :wink:
_________________
http://petition.eurolinux.org/ - Petition against ePatents
L'essence de la finesse
Back to top
View user's profile Send private message
Corto
Apprentice
Apprentice


Joined: 29 Jan 2004
Posts: 222

PostPosted: Mon Apr 12, 2004 3:27 pm    Post subject: Reply with quote

:lol:

Pu**n ça marche !!!!!!!!!!! 8)

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
View user's profile Send private message
scout
Veteran
Veteran


Joined: 08 Mar 2003
Posts: 1991
Location: France, Paris en Semaine / Metz le W-E

PostPosted: Mon Apr 12, 2004 4:35 pm    Post subject: Reply with quote

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
View user's profile Send private message
fedeliallalinea
Bodhisattva
Bodhisattva


Joined: 08 Mar 2003
Posts: 13200
Location: here

PostPosted: Mon Apr 12, 2004 5:00 pm    Post subject: Reply with quote

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

_________________
"aspetto un'emozione sempre più indefinibile"
- CCCP -
"la libertà un doveroso pericolo in verità"
- PGR -
Questions are guaranteed in life; Answers aren't.
Back to top
View user's profile Send private message
Corto
Apprentice
Apprentice


Joined: 29 Jan 2004
Posts: 222

PostPosted: Tue Apr 13, 2004 12:00 am    Post subject: Reply with quote

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
View user's profile Send private message
Corto
Apprentice
Apprentice


Joined: 29 Jan 2004
Posts: 222

PostPosted: Tue Apr 13, 2004 10:28 am    Post subject: Reply with quote

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
View user's profile Send private message
scout
Veteran
Veteran


Joined: 08 Mar 2003
Posts: 1991
Location: France, Paris en Semaine / Metz le W-E

PostPosted: Tue Apr 13, 2004 11:06 pm    Post subject: Reply with quote

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
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index French All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum