Forum Linux.mandriva RPMS pour E17, le récit de mon calvaire

Posté par  .
Étiquettes : aucune
0
24
mar.
2005
Je me suis lancé il y a quelques temps dans la fabrication de rpms pour E17 afin de faire mon cake sur les plages d'ibiza cet été. Pour cela en tant que novice j'ai du apprendre ce qu'est la compilation, comment faire un spec potable avec les dépendances qui vont bien, les options qui roulent et le remplissage de %files.

Vous pouvez trouver ici [1] l'ensemble des fichiers spec utilisés pour le massacre ainsi que quelques src.rpms.

Erreur 1 :
Cette erreur se rencontre dès la 3ème app (Evas) puis à plusieurs reprises dans la suite de la chaîne. Evas réclame /usr/X11R6/lib/libGL.la qui se trouve chez Mandrake dans /usr/lib/, ça se résout facilement en faisant un lien sauf si on veut laisser la possibilité aux autres de reconstruire les src.rpms. J'ai introduit dans le spec export LDFLAGS="-L/usr/lib/libGL.la" avant %configure ce qui ne donne aucun résultat.

Du même tonneau mais à un stade plus tardif, lors de l'installation du rpm de devel d'Evas il m'insulte à propos de devel(libGLcore) et devel(libnvidia-tls) qui seraient manquants. J'ai bien dans usr/lib/ libGLcore.so.* et libnvidia-tls.so.* mais même problème que pour libGL.la.

Erreur 2 :
Dans mes efforts pour mieux intégrer le tout avec Mandrake j'ai tenté de faire ça pour qu'E17 apparaisse dans la liste de tout les logins managers (kdm, gdm,...). D'après ce que j'ai compris en suivant cet article [2] j'ai rajouté après %makeinstall ceci

# wmsession support
mkdir -p $RPM_BUILD_ROOT/etc/X11/wmsession.d/
cat << EOF > $RPM_BUILD_ROOT/etc/X11/wmsession.d/21E17
NAME=E17
ICON=e17-wmsession.xpm
DESC=Enlightenment 0.17
EXEC=/usr/bin/enlightenment
SCRIPT:
exec /usr/bin/starte17
EOF


ainsi que %make_session à %post et %postun, un fichier 21E17 est crée à l'installation du rpm dans /etc/X11/wmsession.d/ mais rien de visible dans kdm, j'ai essayé de voir dans les spec de windowmaker, kde et icewm mais rien de concluant car tous très différent sur ce point. Ah et j'ai aussi rien aussi calqué à starte17 : c'est généré tout seul ou je dois le faire à la main ? Parce que là encore chaque WM semble faire sa popote que ce soit dans son emplacement ou dans son contenu.

Et je vous épargne les erreur de rpmlint dont je ne saisis goutte.

Ah ça soulage de crier son incompétence ^^

[1] http://perso.wanadoo.fr/jrmmdkrep/(...)
[2] http://qa.mandrakesoft.com/twiki/bin/view/Main/WmsessionConfig(...)
  • # Moi aussi je veux crier mon incompetence !

    Posté par  (site web personnel) . Évalué à 1.

    J'essaye de construire des RPMs potables pour une appli libre que je fais, et j'ai un probleme tout bete: je construit le RPM sur une Mandrake 10.1 au bureau, je rentre chez moi tout guilleret pour me depecher d'installer ce beau RPM tout neuf sur ma Mandrake 9.2 a la maison... et la, rpm m'insulte a propos de dependances qui ne vont pas (en gros, libs pas assez recentes) -> comment faire pour eviter ce genre de problems et garantir que nos RPMs fait main soient "le plus compatible" possible ??

    Sans parler de mes tentatives de faire apparaitre une icone dans les menus K et consorts d'une facon qui marche aussi bien chez Mandrake que chez RedHat...

    Mathias
  • # URLs à corriger

    Posté par  . Évalué à 2.

    Sur ta page, 2 des 3 liens vers les src.rpm sont faux : manque le "/SRPMS/".
  • # Gni ?

    Posté par  (site web personnel) . Évalué à 2.

    Evas réclame /usr/X11R6/lib/libGL.la qui se trouve chez Mandrake dans /usr/lib/, ça se résout facilement en faisant un lien sauf si on veut laisser la possibilité aux autres de reconstruire les src.rpms. J'ai introduit dans le spec export LDFLAGS="-L/usr/lib/libGL.la" avant %configure ce qui ne donne aucun résultat.

    Sur une 10.0 :
    [pterjan@cmoi pterjan]$ ll /usr/X11R6/lib/libGL.la
    -rwxr-xr-x 1 root root 751 déc 8 2003 /usr/X11R6/lib/libGL.la

    Sur une cooker :
    [pterjan@localhost ~]$ ll /usr/X11R6/lib/libGL.la
    -rwxr-xr-x 1 root root 835 fév 10 21:45 /usr/X11R6/lib/libGL.la*
    • [^] # Re: Gni ?

      Posté par  (site web personnel) . Évalué à 2.

      J'avais déjà fais des rpms d'e17 il y a un petit moment.
      J'avais exactement le même problème alors que les fichiers sont bien dans /usr/X11R6/lib

      Il faudrait que je retrouve mes specs pour en dire plus, mais en fouillant un peu on arrive a le faire passer (à le compiler) sans trop d'erreur avec rpmlint
    • [^] # Re: Gni ?

      Posté par  . Évalué à 2.

      Sur ma cooker :
      ll /usr/X11R6/lib/libGL.la
      ls: /usr/X11R6/lib/libGL.la: No such file or directory

      Pareil pour les deux autres libs, mis à part l'installation des pilotes nvidia tout est passé par les rpms mdk. Enfin bon si ces libs sont normalement dans /usr/X11R6/lib/ je peux faire un lien à partir de /usr/lib/ en sachant que chez les autres (où les libs devraient théoriquement être dans /X11R6/lib) ça passera correctement.
      • [^] # Re: Gni ?

        Posté par  . Évalué à 2.

        $ urpmf /usr/X11R6/lib/libGL.la
        libMesaGLU1-devel:/usr/X11R6/lib/libGL.la

        ton BuildRequires suffit normalement.
        • [^] # Re: Gni ?

          Posté par  . Évalué à 2.

          le problème c'est quand on installe libevas-devel on a une erreur bloquante

          Certains paquetages demandés ne peuvent pas être installés :
          libevas-devel-0.9.9.003-20050322.1mdk.i586 (car devel(libnvidia-tls) est non satisfait)

          alors même que j'ai fait des liens dans /usr/X11R6/lib/

          • [^] # Re: Gni ?

            Posté par  . Évalué à 2.

            Une recherche "/usr/X11R6/lib/libGL.la nvidia /usr/lib/libGL.la" sur google montre que visiblement avoir installé les drivers nvidia pose certains problemes pour compiler. Je sais pas si c'est possible de faire un truc qui compile avec et sans les drivers nvidia.
            • [^] # Re: Gni ?

              Posté par  . Évalué à 2.

              le problème vient bien des pilotes de nvidia, je viens de les désintaller (ainsi que les liens) et de recompiler evas : aucune erreur...

              Les 3 fichiers sont toujours uniquement présent dans /usr/lib mais ça ne semble plus poser de problème.
  • # Le solution est la:

    Posté par  (site web personnel) . Évalué à 4.

    • [^] # Re: Le solution est la:

      Posté par  . Évalué à 2.

      Merci !

      J'ai donc rajouté ça dans ~/.rpmmacros
      %__find_requires /home/jrm/bin/find-requires-nonvidia
      %{?buildroot:%{buildroot}}

      Ainsi que ça dans ~/bin/find-requires-nonvidia
      #!/bin/bash
      /usr/lib/rpm/find-requires $@|sed -e 's/libGLcore.so.1//g'
      /usr/lib/rpm/find-requires $@|sed -e 's/libnvidia-tls.so.1//g'
      /usr/lib/rpm/find-requires $@|sed -e 's/libGL.la//g'


      Mais ça ne marche pas (j'ai du faire une gaffe basique mais eh...) :

      grep: /usr/X11R6/lib/libGL.la: No such file or directory
      /bin/sed: impossible de lire /usr/X11R6/lib/libGL.la: No such file or directory
      [...]
      Erreur de construction de RPM:
      La macro % a un nom illégal (%define)
      Mauvais status de sortie pour /home/jrm/rpm/tmp/rpm-tmp.35251 (%build)
      erreur: La macro % a un nom illégal (%define)

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.