OVH Cloud OVH Cloud

[gentoo-user-fr] Creer son propre paquet

15 réponses
Avatar
Xavier Maillard
Bonsoir,

Il semblerait que mon WM favori (stumpwm) ne soit pas disponible dans
gentoo. Quel paquet d'exemple dois-je prendre sachant que:

1. c'est du Common Lisp
2. je veux une version CVS

?

Merci

--
gentoo-user-fr@gentoo.org mailing list

5 réponses

1 2
Avatar
Yoann Pannier
Olivier Dzwoniarkiewicz wrote, On 03/24/2006 10:37 AM:
Je dirai plutôt qu'il faut rajouter PORTDIR_OVERLAY="/usr/local/portage" ET
créer le répertoire :

/usr/portage/x11-vm/stumpwm



plutôt créer ${PORTDIR_OVERLAY}/x11-vm/stumpwm (donc
/usr/local/portage/machin/truc)

--
Yoann Pannier
--
mailing list
Avatar
Thomas de Grenier de Latour
On Fri, 24 Mar 2006 11:18:00 +0100,
Xavier Maillard wrote:

DEPEND="dev-lisp/common-lisp-controller
virtual/commonlisp
dev-lisp/cl-clx
doc? ( media-gfx/transfig
media-libs/netpbm
virtual/tetex )
emacs? ( virtual/emacs )
slime? ( virtual/emacs )"

S=${WORKDIR}/${ECVS_MODULE}

src_install() {
common-lisp-install *.cl *.lisp *.asd
common-lisp-system-symlink
dodoc COPYING README
}



Un truc bizarre, c'est que tes USE flags ne servent qu'à ajouter des
dépendances, mais n'influencent apparement pas le comportement de
l'ebuild (où alors c'est planqué dans une eclass ?). Par exemple,
"doc" semble installer ce qu'il faut pour compiler du LaTeX, mais ça
n'est pas utilisé ensuite. On s'attendrait plutôt à un truc du genre :

src_compile() {
if use doc ; then
<compilation de la doc>
fi
}

src_install() {
...
if use doc ; then
<installation de cette doc compilée>
fi
}

Pareil pour "emacs" et "slime" : soit leur présence change ce que le
paquet installera, soit ils n'ont pas vraiment de raison d'être dans
les dépendances. Bon, c'est pas une règle absolue non plus, mais quand
même, de manière générale, il n'y a à peu près que les meta-ebuilds
(style gnome-base/gnome) qui ont des USE flags servant seulement à
ajouter des dépendances de confort.

Une autre chose, c'est que tu ne distingues pas les DEPEND des RDEPEND,
c'est à dire les dépendances de compilation (enfin, pour autant qu'on
puisse parler de compilation dans ce cas... disons d'installation
plutôt) et celles de fonctionnement. Avec ton ebuild, RDEPEND n'étant
pas défini, il vaudra $DEPEND, donc il y a probablement tout ce que tu
voulais dedans. Mais par contre, je doute que tout soit nécéssaire dans
les deux. Bon, encore une fois, je connais pour ainsi dire pas Common
Lisp et ses ebuilds, donc je vais pas trop m'avancer, mais revenons sur
l'exemple de la compilation d'une doc LaTeX : typiquement, ça introduit
des DEPEND du style tetex, mais par contre, si c'est juste pour
installer au final un fichier PDF, bah dans les RDEPEND ça ajoute juste
"virtual/pdfviewer" (et encore, il est souvent omis). On se retrouve
donc plutôt dans un schema de ce style (avec des deps bidons hein, mais
tu vois l'idée quoi) :

COMMON_DEPEND="common-lisp et compagnie"
DEPEND="${COMMON_DEPEND}
doc? ( tetex )"
RDEPEND="${COMMON_DEPEND}
doc? ( virtual/pdfviewer )"

Enfin bon, de tout ça, rien n'empêchera ton paquet de fonctionner hein,
c'est plus des questions de fignolages.

Ah oui, et puis si, aussi, je vois que tu installes des fichiers .asd
-> il ne te faudrait pas une dépendance sur dev-lisp/cl-asdf pour les
utiliser, ou un truc du genre ? Bon, encore une fois, je peux me
gourrer.

--
TGL.
--
mailing list
Avatar
Olivier Dzwoniarkiewicz
Le Vendredi 24 Mars 2006 12:04, Yoann Pannier a écrit :
Olivier Dzwoniarkiewicz wrote, On 03/24/2006 10:37 AM:
> Je dirai plutôt qu'il faut rajouter PORTDIR_OVERLAY="/usr/local/portage"
> ET créer le répertoire :
>
> /usr/portage/x11-vm/stumpwm

plutôt créer ${PORTDIR_OVERLAY}/x11-vm/stumpwm (donc
/usr/local/portage/machin/truc)



oups, oui, j'ai été trop vite sur ce coup...
distraction quand tu nous tiens :)

--
Olivier Dzwoniarkiewicz

--
mailing list
Avatar
Xavier Maillard
Le vendredi 24 mars 2006 à 12:35 +0100, Thomas de Grenier de Latour a
écrit :
On Fri, 24 Mar 2006 11:18:00 +0100,
Xavier Maillard wrote:

> DEPEND="dev-lisp/common-lisp-controller
> virtual/commonlisp
> dev-lisp/cl-clx
> doc? ( media-gfx/transfig
> media-libs/netpbm
> virtual/tetex )
> emacs? ( virtual/emacs )
> slime? ( virtual/emacs )"
>
> S=${WORKDIR}/${ECVS_MODULE}
>
> src_install() {
> common-lisp-install *.cl *.lisp *.asd
> common-lisp-system-symlink
> dodoc COPYING README
> }

Un truc bizarre, c'est que tes USE flags ne servent qu'à ajouter des
dépendances, mais n'influencent apparement pas le comportement de
l'ebuild (où alors c'est planqué dans une eclass ?). Par exemple,
"doc" semble installer ce qu'il faut pour compiler du LaTeX, mais ça
n'est pas utilisé ensuite. On s'attendrait plutôt à un truc du genre :



Exact. Je ne suis pas encore tout a fait au fait de toutes ces choses.

Enfin bon, de tout ça, rien n'empêchera ton paquet de fonctionner hein,
c'est plus des questions de fignolages.

Ah oui, et puis si, aussi, je vois que tu installes des fichiers .asd
-> il ne te faudrait pas une dépendance sur dev-lisp/cl-asdf pour les
utiliser, ou un truc du genre ? Bon, encore une fois, je peux me
gourrer.



Tu as peut-etre raison. Je continue a apprendre :)

Voila le nouvel ebuild:

ECVS_SERVER="cvs.savannah.nongnu.org:/sources/stumpwm"
#cvs -z3 -d:pserver::/sources/project co
module_name
if [ -z "${ECVS_BRANCH}" ]; then
ECVS_BRANCH="HEAD"
fi
ECVS_MODULE="stumpwm"
ECVS_USER="anonymous"
ECVS_PASS=""
ECVS_CVS_OPTIONS="-dP -z3"
#ECVS_AUTH="ext"
#CVS_RSH="ssh"

inherit common-lisp cvs eutils

DESCRIPTION="Stumpwm is a tiling, keyboard driven X11 Window Manager
written entirely in Common Lisp."
HOMEPAGE="http://www.nongnu.org/stumpwm/index.html"
SRC_URI=""
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~x86 ~amd64"
IUSE="debug emacs doc"

CLPACKAGE=stumpwm

DEPEND="dev-lisp/common-lisp-controller
virtual/commonlisp
dev-lisp/cl-clx
doc? ( virtual/tetex )
emacs? ( virtual/emacs || ( app-emacs/slime
app-emacs/slime-cvs ))
|| (
x11-libs/libX11
virtual/x11
)"

S=${WORKDIR}/${ECVS_MODULE}

src_compile() {
if use doc; then
einfo "Won't build documentation for the time being."
# make -C docs
fi
}

src_install() {
dodir /usr/share/common-lisp/source/stumpwm
dodir /usr/share/common-lisp/systems
insinto /usr/share/common-lisp/source/stumpwm/
doins -r src examples
common-lisp-install *.lisp stumpwm.asd
common-lisp-system-symlink
dosym /usr/share/common-lisp/source/stumpwm/stumpwm.asd
/usr/share/common-lisp/systems/
dodoc COPYING README CHANGES
}

pkg_postinst() {
while read line; do einfo "${line}"; done <${FILESDIR}/README.Gentoo
einfo "Paquet pret a l'emploi"
if use emacs; then
einfo "You can interact with the REPL by typing this: "
einfo "(require 'swank)"
einfo "(swank:create-swank-server 4005 :spawn)"
fi

}


Ce qui change c'est la dependance sur X11 (apres tout c'est un WM), je
conserve le use pour Emacs (qui installera emacs si besoin et un slime
ou slime-cvs).

Je ne comprends pas trop la difference entre DEPEND et RDEPEND mais je
vais me lire la doc.

Xavier


--
mailing list
Avatar
Xavier Maillard
Le vendredi 24 mars 2006 à 17:39 +0100, Xavier Maillard a écrit :

Voila le nouvel ebuild:



J'ai ouvert un bug et propose une version de mon ebuild.
https://bugs.gentoo.org/show_bug.cgi?id7463

Xavier


--
mailing list
1 2