Hello =)

Tu peux je pense récupérer les sources par yum pour la version disponible dans les dépôts (en activant au préalable le dépôt "source" dans lequel firefox se trouve). Tu utilises ensuite
yumdownloader --source firefox
Tu auras le rpm source, qu'il faudra "installer", dans un environnement de développement (tu sais faire je pense, sinon c'est dans la dock, avec un compte spécial pour ça, et rpmdev-setuptree)

De là, tu pourras modifier le script de compilation et ajouter des paramètres de compilation à firefox 😉
Bonjour,

merci pour l'info, j'ai suivis ton conseil mais ça n'a rien donnée. J'ai compiler les sources du RPM mais j’obtiens toujours une version nightly, la solution doit être dans le fichier mozconfig ou dans le fichier spec malheureusement je piétine toujours. Si quelqu'un a une autre suggestion pertinente je suis preneur.
Tu récupère bien le .tar stable?

Après il y a peut être la possibilité de dl sur le git de mozilla la branche stable.

Dans ton cas le top est la version à support long ESR à mon avis.

Si tu récupère à chaque fois la nightly... C'est que tu télécharge au mauvais endroit, perso j'arrive à avoir le .tar.bz2 sur le site officiel...

https://www.mozilla.org/en-US/firefox/organizations/all/
Pour les ESR...

Pour compiler tu récupère le src.rpm stable de firefox pour F20, tu le "décompresse" comme il faut (voir la doc), tu modifie le fichier spec et tu construit tes paquets avec mock pour les adapter à la bonne architecture ou autres versions de fedora, il ira chercher tout ce dont il a besoin quand il en aura besoin...

Si ta besoin d'aide n'hésite pas.

Sinon le dépôt de remi en proposent pour firefox...
En effet la version esr serais pas mal, le tar que je récupère et celui donné sur le site mdn ou alors j'ai aussi cette adresse : https://ftp.mozilla.org/pub/mozilla.org/firefox/releases/. Le tar est fournit parmi des binaires en version stable. Je viens de voir ton lien et il fourni uniquement des binaires et pour ce qui est du dépôt git je vais aller y faire un tour histoire de voir ce que ça donne. Enfin pour le src rpm, je vais devoir réinstaller ma machine de test en f20 car à l'heure actuelle elle est en f21.
Euh? t'écoute ce que je te dis????

Utilise mock, il te construira un environnement pour la version de fedora que tu souhaite faire les paquets! Donc ta nullement besoin de toucher à ton système.

Tu dois même pouvoir en faire pour CentOS/RHEL...

Et en plus tu n'a pas besoin de te limiter à l'architecture de ton ordi...
Oui l'environnement de construction est sous un utilisateur spécifique 😉

http://doc.fedora-fr.org/wiki/RPM_:_environnement_de_construction

Les parties qui t'intéressent sont les suivantes :
2- Création de l'utilisateur (builder, ou mock, ou autre, peu importe)
3- Installation des outils (je pense que pour toi, il suffit de faire un
yum install rpmdevtools yum-utils
)
4- Création de l'arborescence (en fait, il s'agit juste de lancer la commande
rpmdev-setuptree
)
7- Construction à partir du fichier SPEC

En fait, après avoir crée l'arborescence (étape 4), il faut que tu récupères le .src.rpm de firefox que tu auras récupéré des dépôts par yumdownloader (qui ne peut pas être une nightly sauf si tu es en rawhide lol) et que tu "l'installes". Il va s'installer dans les répertoires de l'utilisateur dans les dossiers appropriés.

Puis après à toi de modifier le .spec, et après hop reconstruction à partir du spec et tu obtiens le rpm =)
Rien ne t'empêche après de modifier l'archive utilisée par le .spec par une autre archive, récupérée du site de mozilla par exemple d'un des liens donnés par VINDICATORs 🙂
VINDICATORs wrote:Euh? t'écoute ce que je te dis????

Utilise mock, il te construira un environnement pour la version de fedora que tu souhaite faire les paquets! Donc ta nullement besoin de toucher à ton système.

Tu dois même pouvoir en faire pour CentOS/RHEL...

Et en plus tu n'a pas besoin de te limiter à l'architecture de ton ordi...
Oui j'ai bien "écouter" ce que tu m'as dit et le lien que tu donnes dans ton précédent post est celui des binaires. J'utilise mon PC perso en fedora pour tester et créer le spec, Au boulot j'ai une machine dédié en centos 6.4 64 bits avec tous ce qui faut pour créer des RPM.
Pour ce qui est de ne pas toucher au système c'est uniquement lors de l'installation du paquet, c'est pour ça que j'installe tous dans /opt.

Mon principal soucis pour l'instant et juste de compiler une version finale fonctionnelle. Pour l'instant tous ce que je fais c'est créer un fichier mozconfig dans la racine du répertoire et ensuite je fais juste un make -f client.mk build; make -f client.mk package, ensuite je récupère le tar et je test. Sur mon PC perso j'ai aussi un compte utilisateur pour packager et pour ce qui est de l'architecture, mon PC possède un I5 donc en 64 bits et les postes sur lequel sera installé mon paquet sont toute des stations de calcul en xeon (voir en bi-xeon) 64 bits
La création du RPM se fera quand j'aurai une version stable et nom pas nightly et en plus comme j'ai téléchargé les src rpm, j'ai un exemple à partir duquel démarrer.




marc2006 wrote:Oui l'environnement de construction est sous un utilisateur spécifique 😉

http://doc.fedora-fr.org/wiki/RPM_:_environnement_de_construction

Les parties qui t'intéressent sont les suivantes :
2- Création de l'utilisateur (builder, ou mock, ou autre, peu importe)
3- Installation des outils (je pense que pour toi, il suffit de faire un
yum install rpmdevtools yum-utils
)
4- Création de l'arborescence (en fait, il s'agit juste de lancer la commande
rpmdev-setuptree
)
7- Construction à partir du fichier SPEC

En fait, après avoir crée l'arborescence (étape 4), il faut que tu récupères le .src.rpm de firefox que tu auras récupéré des dépôts par yumdownloader (qui ne peut pas être une nightly sauf si tu es en rawhide lol) et que tu "l'installes". Il va s'installer dans les répertoires de l'utilisateur dans les dossiers appropriés.

Puis après à toi de modifier le .spec, et après hop reconstruction à partir du spec et tu obtiens le rpm =)
Rien ne t'empêche après de modifier l'archive utilisée par le .spec par une autre archive, récupérée du site de mozilla par exemple d'un des liens donnés par VINDICATORs 🙂

Merci pour les infos mais comme je l'ai dit plus haut je n'en suis pas encore a cette étape la et j'ai une machine dédié avec un compte utilisateur pour la packaging, j'y ai installé tous les outils nécessaire de la même façon que sur FEDORA (il existe aussi un méta paquet "fedora packageur") j'ai simplement eu a mettre à jour python car la version sur centos est bloqué à la 2.6.6 alors que Firefox demande la version 2.7. pour la compilation. je me suis installé un dokuwiki sur un hébergeur gratuit et je me suis fais un tuto en utilisant entre autre le lien que tu donne dans ton post et je me suis fais mon propre squelette de fichier spec. Avant Firefox j'ai réussi à packagé gcc, make, cmake et keepass 2, bien évidemment les paquets ne sont pas de la même qualité que ceux fournit par la distrib car je n'incorpore pas de patch et divers autre modif, mais ils sont quand même fonctionnel et cela me permet d'avoir la dernière version de gcc sur ma machine centos et aussi sur FEDORA avant mon passage à la 21.
Pour ce qui est d'utiliser le fichier spec des src RPM de FEDORA ce ne sera pas possible tel quel car après en avoir lu un, ils sont fait pour fonctionner uniquement pour FEDORA. Ils y a des patchs pour FEDORA et Red Hat, qui est le packageur, incorpore des patchs spéciaux pour FEDORA. Je vais m'en servir de model et probablement récupérer 2 ou 3 infos utiles. Enfin comme le disait VINDICATORs, je me suis tourné vers le dépôt git de mozilla et en creusant un peux j'ai trouver un dépôt..... mercurial a cette adresse et la tu as les branches aurora, beta et release et en plus il y a aussi le dépôt l10n pour les fichiers de langues. J'ai lancé une compilation avant de partir du boulot et j'aurais le résultat demain matin, j’espère donc que cette fois si ce sera la bonne. A voir maintenant l'ajout de la traduction et la création du spec.

Autre chose : tu n'est pas obligé d'installer les fichiers srcrpm, tu peu très bien les télécharger et ensuite les "décompresser" en utilisant rpm2cpio FichierRpm.rpm | cpio --extract.
Tu veux créer un package firefox personnalisé pour CentOS, right ?

Bon, sur ta centOS, je ne vois pas ce qui pose problème de récupérer le src rpm par yum, et de l'utiliser dans l’environnement de construction =) Normalement, si le package vient des dépôts stables yum, le fichier spec ne devrait pas demander des versions plus élevées de certaines dépendances.

Si tu veux, je m'installerai une centOS (6.4 donc, 32 ou 64bits ?) sous une VM, et je testerai 😉 Je pourrai t'aider plus facilement.
Autre chose : tu n'est pas obligé d'installer les fichiers srcrpm, tu peu très bien les télécharger et ensuite les "décompresser" en utilisant rpm2cpio FichierRpm.rpm | cpio --extract.
En fait, tu ne l'installes pas vraiment, rpm ne fait que décompresser le fichier dans l'environnement ^^ Mais il n'est pas inscrit dans le système 😉
Si tu souhaites m'aider, je veux bien merci tout ce fera en 64 bits. Pour ce qui est de la version des dépendances, c'est Firefox qui demande d'avoir python 2.7 et j'ai d’ailleurs trouver 3 paquets à installer sur le site rpm search. Voici une liste des paquet à installer pour compiler Firefox :
yum groupinstall 'Development Tools' 'Development Libraries' 'GNOME Software Development'
yum install autoconf213 glib-static yasm alsa-lib-devel pulseaudio-libs-devel libXt-devel hunspell-de


Je te donne aussi le contenu du fichier mozconfig à mettre à la racine du répertoire de compilation
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"
Ensuite pour compiler, il te suffit (toujours en étant à la racine du répertoire) de lancer la commande :
make -f client.mk build
En ce qui concerne les sources, je suis passer par le dépôt mercurial car les dépots srcrpm n'ont pas été synchroniser sur le serveur du client mais je peux éventuellement les récupérer sur rpm search ou rpm find et éventuellement faire un tour sur epel.
Pour infos le dépôt mercurial se synchronise comme ceci :
hg clone https://hg.mozilla.org/releases/mozilla-release release
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.