CentOS 64bits 6.4 sur le site de vault c'est bien ça ?

Pour firefox, j'ai trouvé les sources rpm de la version 31.2.0-3el6 🙂 (le paquet est dans les dépôts de centos 6.6 et non 6.4)
Pas de version 33.1 ! Je ne sais pas où tu as vu ça dans le dépôts ? Il te faut vraiment la version 33.1 (dispo en tar sur le site de firefox mais alors on ne pourra pas utiliser le source rpm, sans les patchs donc, mais le fichier spec doit pouvoir être réutilisable) ?

Niveau fichier mozconfig, tu as mis le paramètre "--without-system-libvpx", mais webm est activé donc normalement il doit être pris en compte, c'est volontaire ?
Au final, le fichier .mozconfig doit avoir le contenu que tu mets dans ton post ? Je suis en train de recompiler en me basant sur le source rpm là, fichier spec d'origine, non modifié, le fichier mozconfig est le suivant :
. $topsrcdir/browser/config/mozconfig

# --with-system-png is disabled because Mozilla requires APNG support in libpng
#ac_add_options --with-system-png

ac_add_options --prefix="$PREFIX"
ac_add_options --libdir="$LIBDIR"
ac_add_options --with-system-jpeg
ac_add_options --with-system-zlib
ac_add_options --with-pthreads
ac_add_options --disable-installer
ac_add_options --enable-xinerama
ac_add_options --enable-default-toolkit=cairo-gtk2
ac_add_options --disable-xprint
ac_add_options --disable-strip
ac_add_options --disable-system-cairo
ac_add_options --enable-pango
ac_add_options --enable-svg
ac_add_options --enable-canvas
ac_add_options --enable-startup-notification
ac_add_options --disable-crashreporter
ac_add_options --enable-safe-browsing
ac_add_options --enable-libnotify
ac_add_options --disable-necko-wifi
ac_add_options --disable-updater
ac_add_options --disable-libjpeg-turbo
ac_add_options --disable-javaxpcom
ac_add_options --enable-extensions=default
ac_add_options --disable-cpp-exceptions
ac_add_options --disable-gstreamer
ac_add_options --enable-cpp-rtti

export BUILD_OFFICIAL=1
export MOZILLA_OFFICIAL=1
mk_add_options BUILD_OFFICIAL=1
mk_add_options MOZILLA_OFFICIAL=1
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/objdir
ac_add_options --enable-official-branding
ac_add_options --disable-system-sqlite
ac_add_options --with-system-libvpx
ac_add_options --enable-webm
ac_add_options --enable-webrtc
ac_add_options --enable-ogg
ac_add_options --disable-system-cairo
ac_add_options --with-system-nspr
ac_add_options --with-system-nss
ac_add_options --enable-system-hunspell
ac_add_options --enable-libnotify
ac_add_options --enable-startup-notification
ac_add_options --enable-jemalloc
ac_add_options --disable-debug
ac_add_options --enable-optimize
Donc si je comprends bien, je dois remplacer tout ça par les lignes que tu donnes en haut, right ? Bon, j'ai une erreur, forcément gcc est obsolète lol Je viens de récupérer une version 4.8 🙂 (parfois j'obtiens une erreur sur pthread, mais si je redémarre avec la commande make -f ... ca marche lol sinon, je comprends pas j'ai dû modifier des fichiers .py car il ne trouvait pas ordereddict ni une fois Counter donc j'ai mis from collections tout le temps ! alors que sous python ca marche, je ne vois pas^^ idem pour simplejson, j'ai mis import json à un moment plutôt que simplejson, puis là j'ai des soucis avec c++ et le paramètre -Wconersion-null qui n'est pas reconnu par l'ancienne version ...)

EDIT2 : apparemment, le "nightly" qui apparait est normal, ca ne veut pas dire que c'est une version de dev mais tu ne peux pas utiliser le nom firefox car c'est protégé et donc, en recompilant, tu ne peux plus utiliser le nom firefox pour le paquet 🙂
CentOS 64bits 6.4 sur le site de vault c'est bien ça ?
Euh bonne question, en fait le master a été fait en aout dernier et il me semble « qu’à cette époque » c’était la dernière version en cours

Pour les src RPM j’ai pas fait gaffe, mais j’ai utilisé ceux de FEDORA 21 donc c’est pour ça que j’ai eu la version 33.1 mais de toute façon j’ai toujours une version nightly. J’ai terminé la compilation à partir de la branche stable du dépôt mercurial et j’ai toujours une version nightly, donc pour moi peu importe où tu prends les sources la solution viens forcement du fichier mozconfig.
Il te faut vraiment la version 33.1 (dispo en tar sur le site de firefox mais alors on ne pourra pas utiliser le source rpm, sans les patchs donc, mais le fichier spec doit pouvoir être réutilisable) ?
La version 33.1 est la dernière dispo et elle est compatible avec centos 6.4 donc elle est très bien comme sa et de toute façon je pense rester sur cette version sa devrait aller pour l’instant. Les patchs ne sont pas une réel obligation la version devrait bien fonctionnée comme sa et je me pencherais dessus si j’ai des remontés d’utilisateur et de toute facon la mise à jour n’est pas prévu pour un déploiement de masse mais uniquement suite à un appel hotline. Le fichier spec doit pouvoir etre réutilisatble pour les future versions 33.x oui.
Niveau fichier mozconfig, tu as mis le paramètre "--without-system-libvpx", mais webm est activé donc normalement il doit être pris en compte, c'est volontaire ?
Oui c’est volontaire car la compilation demande une version >= 1.3.0 et la version installé sur le master est la 0.9.0, j’aimerais éviter de faire des mises à jour inutile qui risquerais de cassé quelque chose dans le master ou ailleurs, c’est aussi pour cela que je n’utilise pas le paramètre --enable-startup-notification.
Donc si je comprends bien, je dois remplacer tout ça par les lignes que tu donnes en haut, right ? Bon, j'ai une erreur, forcément gcc est obsolète lol Je viens de récupérer une version 4.8 🙂 (parfois j'obtiens une erreur sur pthread, mais si je redémarre avec la commande make -f ... ca marche lol sinon, je comprends pas j'ai dû modifier des fichiers .py car il ne trouvait pas ordereddict ni une fois Counter donc j'ai mis from collections tout le temps ! alors que sous python ca marche, je ne vois pas^^ idem pour simplejson, j'ai mis import json à un moment plutôt que simplejson)
Disons que c’est avec ce fichier la que je compile mais si tu veux y apporter des modifs tu peux, les seul lignes obligatoire sont :
ac_add_options --disable-updater
ac_add_options --disable-crashreporter
ac_add_options --prefix=/opt/mozilla/firefox
Pour gcc, mes nombreuses recherches m’ont permis de trouver que mozilla conseillais au minimum la version 4.9 à cause d’un bug dans gcc si mes souvenirs sont bon. Comme j’utilise la version 4.9.2 je n’ai pas ce genre de soucis (Si tu as besoin d’infos je peux t’aider pour la compilation de gcc) et pour lancer la compilation il te faut juste faire un make -f client.mk build, il n’y a aucun fichier à modifier. Pour infos les tar.gz que tu trouves sur le site sont générer à partir de la commande make -f client.mk package.
EDIT2 : apparemment, le "nightly" qui apparait est normal, ça ne veut pas dire que c'est une version de dev mais tu ne peux pas utiliser le nom firefox car c'est protégé et donc, en recompilant, tu ne peux plus utiliser le nom firefox pour le paquet 🙂
Si c’est ça alors mon plus gros problème est résolu et en regardant le spec du src RPM j’ai vu que Red Hat utilise un fichier clé fournit par mozilla, c’est peut être grâce à ça qu’on obtient une version finale. En ce qui concerne les paquets que je créer, je n’utilise jamais le nom d’origine pour éviter que le système le voit comme une mise à jour (le but étant de faire des installations parallèles). Tous mes paquets s’appellent infogérant-toto.XXX.el6.rpm
Tu dois avoir la liste complète des versions pour lesquelles mock peux compiler. Ça marche vraiment bien et évite d'avoir à se prendre la tête à installer 36 versions du système.

Après à voir si c'est pas normal l'histoire du nightly. Voir si ce n'est pas juste un fichier spec de compilation qui le marque comme ça.

Pour me prendre la tête avec les .msi chez MS (et c'est vraiment prise de tête...), je comprend que c'est casse bonbon de ne pas arriver à faire ce que l'on cherche à faire...

Tiens au passage, voilà la liste complète pour mock :
default                 epel-6-x86_64           fedora-19-s390x         fedora-20-s390x         fedora-21-s390          fedora-rawhide-ppc64le
default.cfg.rpmnew      epel-7-x86_64           fedora-19-x86_64        fedora-20-x86_64        fedora-21-s390x         fedora-rawhide-s390
epel-5-i386             fedora-19-armhfp        fedora-20-armhfp        fedora-21-aarch64       fedora-21-x86_64        fedora-rawhide-s390x
epel-5-ppc              fedora-19-i386          fedora-20-i386          fedora-21-armhfp        fedora-rawhide-aarch64  fedora-rawhide-sparc
epel-5-x86_64           fedora-19-ppc           fedora-20-ppc           fedora-21-i386          fedora-rawhide-armhfp   fedora-rawhide-x86_64
epel-6-i386             fedora-19-ppc64         fedora-20-ppc64         fedora-21-ppc64         fedora-rawhide-i386     logging.ini
epel-6-ppc64            fedora-19-s390          fedora-20-s390          fedora-21-ppc64le       fedora-rawhide-ppc64    site-defaults
Je n'utilise pas mock car les paquets sont pour moi et quelques pote qui ont la même version de fedora que moi et pour ce qui est de centos j'ai une machine a disposition au boulot. Hier soir avant de partir, j'ai relancer une compilation avec les paramètres suivant en +
export BUILD_OFFICIAL=1
export MOZILLA_OFFICIAL=1
mk_add_options BUILD_OFFICIAL=1
mk_add_options MOZILLA_OFFICIAL=1
ac_add_options --enable-official-branding
Après à voir si c'est pas normal l'histoire du nightly. Voir si ce n'est pas juste un fichier spec de compilation qui le marque comme ça.
C'est ce que je vais essayer de faire dans la matinée, si ma compilation d'hier soir n'a rien donné je vais utilisé la clé de Red Hat pour relancer une compilation et voir ce que sa donne. Si sa marche, je laisserais tombé et je packagerais des versions nightly.
Bon j'ai essayé de compiler avec le fichier spec, en virant bien sûr les patchs (sauf quelques-uns), mais il vient de bloquer (après je ne sais pas combien d'heures lol !!) :
===
===
=== If you get failures below, please file a bug describing the error
=== If you get failures below, please file a bug describing the error
=== and your environment (compiler and linker versions), and use
=== and your environment (compiler and linker versions), and use
=== --disable-elf-hack until this is fixed.
=== --disable-elf-hack until this is fixed.
===
# Fail if the library doesn't have INIT_ARRAY .dynamic info
===
# Fail if the library doesn't have INIT .dynamic info
readelf -d test-array.so | grep '(INIT_ARRAY)'
readelf -d test-ctors.so | grep '(INIT)'
 0x000000000000000c (INIT)               0x4010
 0x0000000000000019 (INIT_ARRAY)         0x2073d0
/home/mock/rpmbuild/BUILD/firefox-33.1.1/mozilla-release/objdir/build/unix/elfhack/elfhack -b -f test-ctors.so
/home/mock/rpmbuild/BUILD/firefox-33.1.1/mozilla-release/objdir/build/unix/elfhack/elfhack -b -f test-array.so
/home/mock/rpmbuild/BUILD/firefox-33.1.1/mozilla-release/objdir/build/unix/elfhack/elfhack: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by /home/mock/rpmbuild/BUILD/firefox-33.1.1/mozilla-release/objdir/build/unix/elfhack/elfhack)
/home/mock/rpmbuild/BUILD/firefox-33.1.1/mozilla-release/objdir/build/unix/elfhack/elfhack: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by /home/mock/rpmbuild/BUILD/firefox-33.1.1/mozilla-release/objdir/build/unix/elfhack/elfhack)
make[5]: *** [test-ctors.so] Error 1
make[5]: *** Waiting for unfinished jobs....
make[5]: *** [test-array.so] Error 1
make[5]: Leaving directory `/home/mock/rpmbuild/BUILD/firefox-33.1.1/mozilla-release/objdir/build/unix/elfhack'
make[4]: *** [build/unix/elfhack/libs] Error 2
make[4]: Leaving directory `/home/mock/rpmbuild/BUILD/firefox-33.1.1/mozilla-release/objdir'
make[3]: *** [libs] Error 2
make[3]: Leaving directory `/home/mock/rpmbuild/BUILD/firefox-33.1.1/mozilla-release/objdir'
make[2]: *** [default] Error 2
make[2]: Leaving directory `/home/mock/rpmbuild/BUILD/firefox-33.1.1/mozilla-release/objdir'
make[1]: *** [realbuild] Error 2
make[1]: Leaving directory `/home/mock/rpmbuild/BUILD/firefox-33.1.1/mozilla-release'
make: *** [build] Error 2
erreur: Mauvais status de sortie pour /var/tmp/rpm-tmp.A1jdII (%build)
Je n'ai pas trop compris pourquoi ... J'ai la dernière version de gcc (4.9.2), installée à partir des sources, sur /usr/local, mais je ne sais pas pourquoi il cherche dans /usr/lib64 alors qu'il devrait chercher dans /usr/local/lib64 !! J'ai bien mis ce répertoire dans la variable LDFLAGS dans le fichier spec, mais il n'en tient pas compte apparemment ...
? =/

Je ne sais pas si tu as eu ce problème.
Bon là j'ai relancé le rpmbuild sur le fichier spec, mais en passant 2 paramètres à la macro setup dans le fichier spec pour éviter la suppression du répertoire, et donc éviter de tout refaire lol, c'est en cours ^^

Le fichier .mozconfig utilisé :
. $topsrcdir/browser/config/mozconfig

# --with-system-png is disabled because Mozilla requires APNG support in libpng
#ac_add_options --with-system-png

ac_add_options --enable-optimize
ac_add_options --enable-extensions=default
ac_add_options --enable-application=browser
ac_add_options --enable-default-toolkit=cairo-gtk2
ac_add_options --enable-webm
ac_add_options --enable-webrtc
ac_add_options --enable-ogg
ac_add_options --enable-system-hunspell
ac_add_options --enable-libnotify
ac_add_options --with-system-zlib
ac_add_options --with-system-bz2
ac_add_options --with-pthreads
ac_add_options --with-distribution-id=org.mozilla
ac_add_options --disable-updater
ac_add_options --disable-crashreporter
ac_add_options --disable-debug
ac_add_options --disable-necko-wifi
ac_add_options --disable-libjpeg-turbo
ac_add_options --disable-cpp-exceptions
ac_add_options --disable-system-sqlite
ac_add_options --without-system-libvpx
ac_add_options --prefix=/opt/mozilla/firefox
mk_add_options MOZ_MAKE_FLAGS="-j4"

export BUILD_OFFICIAL=1
export MOZILLA_OFFICIAL=1
mk_add_options BUILD_OFFICIAL=1
mk_add_options MOZILLA_OFFICIAL=1
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/objdir
ac_add_options --enable-official-branding
Sinon, tu cherches à faire le rpm ? Moi les sources de firefox je les ai prises sur le ftp (ftp://ftp.mozilla.org/pub/mozilla.org/firefox/releases/33.1.1/source/firefox-33.1.1.source.tar.bz2).
En arrivant au boulot vendredi matin, ma compilation était terminée et le résultat était encor et toujours une version nightly. J'ai don retester avec les lignes suivantes
export BUILD_OFFICIAL=1
export MOZILLA_OFFICIAL=1
mk_add_options BUILD_OFFICIAL=1
mk_add_options MOZILLA_OFFICIAL=1
ac_add_options --enable-official-branding
et sa marche, tu arrives bien à avoir une version finale. En regardant dans l'aide, il est dit que l'on a pas le droit d'utilisé --enable-official-branding sans l'accord de mozilla, j'ai donc retester sans et la compilation fonctionne mais la fonction de packaging plante tous comme le make install. Donc maintenant mon fichier mozconfig ressemble à sa :
c_add_options --enable-optimize
ac_add_options --enable-extensions=default
ac_add_options --enable-application=browser
ac_add_options --enable-default-toolkit=cairo-gtk2
ac_add_options --enable-webm
ac_add_options --enable-webrtc
ac_add_options --enable-ogg
ac_add_options --enable-system-hunspell
ac_add_options --enable-libnotify
ac_add_options --with-system-zlib
ac_add_options --with-system-bz2
ac_add_options --with-pthreads
ac_add_options --enable-address-sanitizer

ac_add_options --without-system-libvpx
ac_add_options --disable-updater
ac_add_options --disable-crashreporter
ac_add_options --disable-debug
ac_add_options --disable-necko-wifi
ac_add_options --disable-libjpeg-turbo
ac_add_options --disable-cpp-exceptions
ac_add_options --disable-system-sqlite
ac_add_options --disable-gamepad
ac_add_options --disable-parental-controls
ac_add_options --disable-logging

ac_add_options --prefix=/opt/mozilla/firefox
mk_add_options MOZ_MAKE_FLAGS="-j4"
export BUILD_OFFICIAL=1
export MOZILLA_OFFICIAL=1
mk_add_options BUILD_OFFICIAL=1
mk_add_options MOZILLA_OFFICIAL=1

Pour ce qui est de la création du spec, je n'ai pas encor commencer et en plus du ducduc go je pensais aussi utilisé le patch Red Hat sur la config du navigateur.
En ce qui concerne ton erreur, j'ai l'impression que le problème ne viens pas du chemin de la librairie mais plutôt de la version si tu regarde biens l'erreur suivante :
/usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.15' not found
Ensuite la version de gcc est installé dans /opt et pour les librairies j'utilise la variable LD_LIBRARY_PATH et je n'ai aucun soucis

Enfin oui le rpm est le but finale de ma démarche et une fois fini et comme j'aime avoir mal je voudrait embrayé sur Thunderbird et xulrunner.
J'ai longtemps maintenu les rétro-portages des applications Mozilla dans mon dépôt
Les anciens spec doivent donc trainer sur mon github [1] il reste peut-être des trucs intéressant dedans.

Ça devient juste une torture de l'esprit pour faire les choses proprement..
De mémoire, je devais utiliser les SCL de python27 et de devtoolset (pour gcc 4.8)
Sans parler que c'est un petite heure de compilation par paquet (sur une machine un peu optimisée et prévue pour)

perso, j'ai abandonné, trop d'effort pour le peu d'intérêt que cela représente.
- la version en standard (version ESR) est correctement maintenue
- la version officielle de chez Mozilla doit fonctionner
- utilisee C6 en desktop, c'est juste du vice


[1] https://github.com/remicollet/remirepo
Ben fait, tu n'as pas le choix pour les patchs, bon je viens d'enlever le duckduckgo, mais les autres ne fonctionnent pas, enfin il me demande lors de la compilation quel fichier il faut patcher. J'en conclus que les patchs ne sont plus bons pour la dernière version ? (j'ai pris le source rpm de centos, mais je travaille sur le source tar de firefox 33.1.1).

Ou peut-être tu as une solution ?

Pour l'erreur de GLIBC, gcc en dernière version est installé sur /usr/local, mais le chemin de la compilation est celui du gcc du système. J'ai mis dans le fichier spec export LIBDIR=/usr/local/lib64 pour voir au lieu de export LIBDIR='%{_libdir}'.

J'ai utilisé ton .mozconfig là, il est en train de compiler ... Dans le fichier spec, j'ai supprimé toute la partie if ... ac_add_options ... car je voulais être sûr qu'il utilisait le fichier .mozconfig renseigné.

Après, j'ai laissé le langpack de la version 31.2.0 ... Je sais pas trop ce que ca va donner lol
PS : on dirait qu'à un moment, j'ai l'impression de voir un message WARNING de configure qui ne reconnait pas beaucoup des paramètres du mozconfig oO J'avais vu ça hier, mais en lançant la commande make manuellement (pas du spec). J'ai aussi l'impression qu'il ne prend pas en compte la ligne mk_add_options MOZ_MAKE_FLAGS="-j4" car c'est lent lol dans le fichier SPEC, il y a bien un if pour donner une valeur à ce paramètre mais n'a pas l'air de prendre en compte la valeur du SPEC.
remi wrote:J'ai longtemps maintenu les rétro-portages des applications Mozilla dans mon dépôt
Les anciens spec doivent donc trainer sur mon github [1] il reste peut-être des trucs intéressant dedans.

Ça devient juste une torture de l'esprit pour faire les choses proprement..
De mémoire, je devais utiliser les SCL de python27 et de devtoolset (pour gcc 4.8)
Sans parler que c'est un petite heure de compilation par paquet (sur une machine un peu optimisée et prévue pour)

perso, j'ai abandonné, trop d'effort pour le peu d'intérêt que cela représente.
- la version en standard (version ESR) est correctement maintenue
- la version officielle de chez Mozilla doit fonctionner
- utilisee C6 en desktop, c'est juste du vice


[1] https://github.com/remicollet/remirepo
Merci pour l'info, mais je ne compte pas suivre l'évolution des version je m’arrêterais à la version 33.x. Comme je compte aussi y intégrer le plugin flash, je referais probablement un paquet avec la mise à jour et c'est tous. Par contre ta machine est sacrément optimisé ou éventuellement dopé car j'ai un quad core 3.3 Ghz et 16 Go de ram et je met 3 heures pour compiler. Enfin connaissant ta valeur pour ce qui est de la création de RPM, ton site est le premier auquel j'ai rendu visite lorsque j'ai commencer à faire des RPM et aussi lorsque j'ai décider de m’attaquai à Firefox et il me semble avoir vu une référence à ton dépôt git et j'ai récupérer certain fichier qui apparement date de l’université ausssi :hammer:
marc2006 wrote:Ben fait, tu n'as pas le choix pour les patchs, bon je viens d'enlever le duckduckgo, mais les autres ne fonctionnent pas, enfin il me demande lors de la compilation quel fichier il faut patcher. J'en conclus que les patchs ne sont plus bons pour la dernière version ? (j'ai pris le source rpm de centos, mais je travaille sur le source tar de firefox 33.1.1).

Ou peut-être tu as une solution ?

Pour l'erreur de GLIBC, gcc en dernière version est installé sur /usr/local, mais le chemin de la compilation est celui du gcc du système. J'ai mis dans le fichier spec export LIBDIR=/usr/local/lib64 pour voir au lieu de export LIBDIR='%{_libdir}'.

J'ai utilisé ton .mozconfig là, il est en train de compiler ... Dans le fichier spec, j'ai supprimé toute la partie if ... ac_add_options ... car je voulais être sûr qu'il utilisait le fichier .mozconfig renseigné.

Après, j'ai laissé le langpack de la version 31.2.0 ... Je sais pas trop ce que ca va donner lol
PS : on dirait qu'à un moment, j'ai l'impression de voir un message WARNING de configure qui ne reconnait pas beaucoup des paramètres du mozconfig oO J'avais vu ça hier, mais en lançant la commande make manuellement (pas du spec). J'ai aussi l'impression qu'il ne prend pas en compte la ligne mk_add_options MOZ_MAKE_FLAGS="-j4" car c'est lent lol dans le fichier SPEC, il y a bien un if pour donner une valeur à ce paramètre mais n'a pas l'air de prendre en compte la valeur du SPEC.
Si tu veux juste tester le mozconfig histoire de voir s'il y a une erreur, un bon vieux ./configure fonctionne très bien. Pour les question de variables d'environnement, un script dans /etc/profil.d fonctionne très bien et sa te permet de modifier la variable PATH et la variable LD_LIBRARY_PATH. Au fait petite question, quand tu as compilé GCC, dans les options du configure, est ce que tu as utilisés l'option --disable-multilib et comment as tu fais pour les dépendances ?

Enfin pour Firefox et les patch ne t’embête pas avec sa, il marchera très bien sans et tous ce que je vais rajouter c'est le language pack fr et le plugin flash.
Moi chez moi il compile encore xD Depuis ce matin ... Même une compilation de kernel ne prendrait pas tant de temps lol
Au fait petite question, quand tu as compilé GCC, dans les options du configure, est ce que tu as utilisés l'option --disable-multilib et comment as tu fais pour les dépendances ?
Oui j'ai passé --disable-multilib, d'ailleurs c'est le seul argument que j'ai passé (il faut installer les librairies 32bits de gcc, pas le temps lol). Pour les dépendances tu as quelles erreurs ? :o
Enfin pour Firefox et les patch ne t’embête pas avec sa, il marchera très bien sans et tous ce que je vais rajouter c'est le language pack fr et le plugin flash.
Directement dans le rpm ? Flash je pense c'est possible, en copiant les fichiers directement aux bons emplacements, mais le langpack je ne sais pas où récupérer le dernier en date ! Peut-être en récupérant le source rpm de fedora...
--disable-multilib c'est aussi ce que j'ai utilisé et je n'ai aucune erreur particulière pour la compilation de gcc c’était juste pour savoir comment tu avais fait c'est tous
Directement dans le rpm ? Flash je pense c'est possible, en copiant les fichiers directement aux bons emplacements, mais le langpack je ne sais pas où récupérer le dernier en date ! Peut-être en récupérant le source rpm de fedora...
Oui il suffi juste de copier le fichier .so dans firefox/browser/plugins, donc rien de bien compliqué. Pour le language pack tu peux partir du fichier xpi qui se trouve ici c'est la méthode qui est utilisé par Red Hat dans le src RPM que j'ai vu sauf que eux le font avec 5 ou 6 langues différente.
Ah ok. Ben en fait j'ai récupéré les sources des 3 dépendances nécessaires et j'ai placé un lien symbolique dans le répertoire des sources de gcc ^^ J'aurais pu me contenter des anciennes versions sinon, en lançant le script dans le dossier contrib qui va chercher les dépendances et les décompresser pour toi ^^

Pour le fichier de flash, ca peut se faire dans le fichier SPEC, par contre le xpi je comprends maintenant que le fichier tar du langpacks contient des xpi xD Bon je suppose que le langpack est incompatible donc, mais ca ne devrait rien changer lol

Par contre il est toujours en compilation, je ne sais pas quoi faire pour l'arrêter lol (en fait je crois qu'elle prend trop de temps car j'ai mis 4 CPU sous vmware alors qu'initialement j'en avais mis 2, j'ai un i7 ... ca doit pas tourner rapidement avec 4 lol)
par contre le xpi je comprends maintenant que le fichier tar du langpacks contient des xpi xD Bon je suppose que le langpack est incompatible donc, mais ca ne devrait rien changer lol
J'ai regarder comment sa se passe et il suffit juste de le décompresser avec la commande unzip.
> Par contre ta machine est sacrément optimisé ou éventuellement dopé car
> j'ai un quad core 3.3 Ghz et 16 Go de ram et je met 3 heures pour compiler.

Bah... je compile habituellement directement dans un tmpfs de 12G. Oui, ça aide beaucoup.
Ca s'arrête ici, je ne sais pas pourquoi ! :
...

Executing: c++ -o js -Wall -Wpointer-arith -Woverloaded-virtual -Werror=return-type -Werror=int-to-pointer-cast -Wtype-limits -Wempty-body -Werror=conversion-null -Wsign-compare -Wno-invalid-offsetof -Wcast-align -O2 -g -pipe -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -fpermissive -I/usr/local/include -fno-rtti -ffunction-sections -fdata-sections -fno-exceptions -fno-math-errno -std=gnu++0x -pthread -pipe -DNDEBUG -DTRIMMED -g -O3 -freorder-blocks -fno-omit-frame-pointer /home/mock/rpmbuild/BUILD/infogerant-toto-33.1.1/mozilla-release/objdir/js/src/shell/tmpBUJhGa.list -lpthread -Wl,--no-keep-memory -Wl,--reduce-memory-overheads -L/usr/local/lib64 -Wl,-z,noexecstack -Wl,-z,text -Wl,--build-id -Wl,-rpath-link,../../../dist/bin -Wl,-rpath-link,/home/mock/rpmbuild/BUILD/infogerant-toto-33.1.1/mozilla-release/objdir/dist/lib -L/home/mock/rpmbuild/BUILD/infogerant-toto-33.1.1/mozilla-release/objdir/dist/lib -lnspr4 -lplc4 -lplds4 ../libjs_static.a -lz -Wl,--whole-archive ../../../dist/lib/libmozglue.a ../../../dist/lib/libmemory.a -Wl,--no-whole-archive -rdynamic -lm -ldl
/home/mock/rpmbuild/BUILD/infogerant-toto-33.1.1/mozilla-release/objdir/js/src/shell/tmpBUJhGa.list:
    INPUT("js.o")
    INPUT("jsheaptools.o")
    INPUT("jsoptparse.o")
    INPUT("../editline/editline.o")
    INPUT("../editline/sysunix.o")

../libjs_static.a(Parser.o): In function `_ZN2js6detail9BumpChunk7setBumpEPv.isra.19':
/home/mock/rpmbuild/BUILD/infogerant-toto-33.1.1/mozilla-release/js/src/ds/LifoAlloc.h:83: undefined reference to `__asan_unpoison_memory_region'
/home/mock/rpmbuild/BUILD/infogerant-toto-33.1.1/mozilla-release/js/src/ds/LifoAlloc.h:81: undefined reference to `__asan_poison_memory_region'

....

/home/mock/rpmbuild/BUILD/infogerant-toto-33.1.1/mozilla-release/js/src/ds/LifoAlloc.h:83: undefined reference to `__asan_unpoison_memory_region'
/home/mock/rpmbuild/BUILD/infogerant-toto-33.1.1/mozilla-release/js/src/ds/LifoAlloc.h:83: undefined reference to `__asan_unpoison_memory_region'
../libjs_static.a(BitSet.o): In function `tryAlloc':
/home/mock/rpmbuild/BUILD/infogerant-toto-33.1.1/mozilla-release/js/src/ds/LifoAlloc.h:83: undefined reference to `__asan_unpoison_memory_region'
../libjs_static.a(BitSet.o): In function `setBump':
/home/mock/rpmbuild/BUILD/infogerant-toto-33.1.1/mozilla-release/js/src/ds/LifoAlloc.h:83: undefined reference to `__asan_unpoison_memory_region'
/home/mock/rpmbuild/BUILD/infogerant-toto-33.1.1/mozilla-release/js/src/ds/LifoAlloc.h:83: undefined reference to `__asan_unpoison_memory_region'
../libjs_static.a(BitSet.o):/home/mock/rpmbuild/BUILD/infogerant-toto-33.1.1/mozilla-release/js/src/ds/LifoAlloc.h:83: more undefined references to `__asan_unpoison_memory_region' follow
collect2: error: ld returned 1 exit status
make[5]: *** [js] Error 1
make[5]: Leaving directory `/home/mock/rpmbuild/BUILD/infogerant-toto-33.1.1/mozilla-release/objdir/js/src/shell'
make[4]: *** [js/src/shell/libs] Error 2
make[4]: Leaving directory `/home/mock/rpmbuild/BUILD/infogerant-toto-33.1.1/mozilla-release/objdir'
make[3]: *** [libs] Error 2
make[3]: Leaving directory `/home/mock/rpmbuild/BUILD/infogerant-toto-33.1.1/mozilla-release/objdir'
make[2]: *** [default] Error 2
make[2]: Leaving directory `/home/mock/rpmbuild/BUILD/infogerant-toto-33.1.1/mozilla-release/objdir'
make[1]: *** [realbuild] Error 2
make[1]: Leaving directory `/home/mock/rpmbuild/BUILD/infogerant-toto-33.1.1/mozilla-release'
make: *** [build] Error 2
erreur: Mauvais status de sortie pour /var/tmp/rpm-tmp.RSzcPp (%build)


Erreur de construction de RPM:
    Mauvais status de sortie pour /var/tmp/rpm-tmp.RSzcPp (%build)
C'est pas vraiment parlant comme erreur ! J'ai mis 1 Go de RAM à la VM, et 2 partitions de SWAP qui font au total 4 Go, autant dire que ca ne vient pas de manque de mémoire lol

Dans le fichier spec, j'ai changé les variables comme ceci :
CFLAGS=`echo $MOZ_OPT_FLAGS |sed -e 's/-fpermissive//'`
CFLAGS="$CFLAGS -I/usr/local/include"
export CFLAGS=$CFLAGS
export CXXFLAGS="$MOZ_OPT_FLAGS -I/usr/local/include"
export LDFLAGS="$MOZ_LINK_FLAGS -L/usr/local/lib64"
#export LD_LIBRARY_PATH=/usr/local/lib64,/usr/local/lib
export PREFIX=/usr/local
#export LIBDIR='%{_libdir}'
export LIBDIR=/usr/local/lib64
Et dans le mozconfig, j'ai rajouté
ac_add_options --includedir=/usr/local/include
ac_add_options --libdir=/usr/local/lib64
Si vous avez une idée ^^

Je bosse sur une VM, je ne sais pas comment faire sous ma F20 pour compiler pour une CentOS je n'ai jamais testé ... On peut reconstruire un source rpm mais si j'ai un fichier spec comment je fais lol
Pour ce qui est de la compilation, j'évite pour l'instant de toucher aux variables cflag et autre à partir du momment ou sa marche je n'ai pas trop envie de me prendre la tête. Pour recompiler un srpm tu peux faire sa :
rpm --rebuild toto-1.3-2.src.rpm
je ne sais pas comment faire sous ma F20 pour compiler pour une CentOS je n'ai jamais testé
Que tu compiles sous fedora ou sous centos, sa ne change rien au fichier spec. De toute façon j'ai ce que je voulais à savoir une version finale de Firefox et pour ce qui est du fichier spec, je pense avoir un fichier spec exploitable. je doit vérifier encore 2 ou trois choses mais sa devrais aller. Merci beaucoup pour ton aide.
remi wrote:Bah... je compile habituellement directement dans un tmpfs de 12G. Oui, ça aide beaucoup.
Je m'en suis fait un de 14 Go et j'ai retesté une compilation et je n'ai pas vu de différence. C'est peut être la RAM qui est trop vieille et c'est pour ca que je n'ai pas de gain par rapport au disque dur, en tous cas merci pour l'info, je réutiliserais sa pour d'autres occasions.
Attention, selon moi, compiler pour une centOS et fedora c'est différent, que ce soit les versions des librairies, les chemins etc ... C'est pour ça que je préfère toujours compiler pour une version donnée et avoir au maximum un paquet distribuable facilement 🙂

Après, faire un rpm rebuild pour le src rpm, je n'ai jamais testé, je ne sais pas si ca change vraiment par rapport au SPEC. Pour les variables CFLAGS, et autres, je donne juste un chemin supplémentaire pour les variables, car gcc 4.9.2 est dans /usr/local 🙂

Bon, si tu arrives à avoir le rpm et qu'il est distribuable et déployable sur toutes tes centOS, ca doit être ok ^^