Fedora-Fr - Communauté francophone Fedora - Linux

Communauté francophone des utilisateurs de la distribution Linux Fedora.

  

Dernière news : Fedora 37 Beta est disponible

#1 16/11/2014 11:54:21

Maxime Tierre
Membre
Lieu : Devant mon PC à mon bureau
Inscription : 13/07/2009
Messages : 141
Site Web

[Résolu] Compilation de Firefox

Bonjour,

dans le but de faire un package de Firefox, de Thunderbird et de Xulrunner sur un master centos 6.4 figé, je me suis donc renseigné sur le net à gauche et à droite et j'ai finalement réussi à compiler une version de Firefox qui fonctionne. mon problème c'est que lorsqu’on lance Firefox on obtient une version nightly. Sur mon PC perso sa ne me gênerais pas plus que sa mais les packages sont pour un cadre professionnel et destiné à des chercheurs qui sont pour la plus part développeur sous Linux. Je souhaiterais donc savoir si quelqu'un connaît le moyen de compiler une version finale. Pour ce qui est du packaging je pense m'en sortir seul. Pour information sous centos 6.4 la version de Firefox est en 17.0.8 et je souhaiterais installer la 33.1, je sais qu'il serais plus facile de migrer en 6.5 mais cela est hors de question car c'est une exigence du client. Il doit probablement aussi existé des packages déjà tous fais mais contrairement à la création de package, je maîtrise parfaitement l'utilisation de yum et de plus le but du jeux est aussi de faire une installation en parallèle afin de pouvoir revenir en arrière sans problème en cas de soucis

D'avance merci

PS : je sais que je parle de centos sur un forum FEDORA, mais c'est la même famille et pour ma défense je m’entraîne sur mon PC perso qui vient  de passer de FEDORA 20 à FEDORA 21 big_smile


Maxime Tierre

L'intelligence c'est comme les parachutes, quand on en a pas on s'écrase (Desproges)

Hors ligne

#2 16/11/2014 12:37:54

VINDICATORs
RédactWikix and the graphicatorix!
Modérateur
Lieu : Toulouse(31) France
Inscription : 23/11/2004
Messages : 18 882
Site Web

Re : [Résolu] Compilation de Firefox

Tu récupère une version stable pour tes paquets, voir mieux la version à support long. Là tu dois sans doute récupéré la version de développement.


AMD R7 5800x X470 64Go DDR4 3.6Ghz, RX5700XT+AMD R7 2700x A320 + 32Go DDR4 3.2Ghz, rx6500xt 4Go
AMD R5 2600 A320, 32Go DDR4 1.8Ghz,1030GT 2Go + AMD A6 9500 A320, 16Go DDR4 2.1Ghz
ARM Rpi4 4Go, à venir Pine64 2xQuartzB 2Go

Hors ligne

#3 16/11/2014 13:49:16

nouvo09
Accro à Fedo !
Lieu : Paris
Inscription : 22/09/2005
Messages : 23 739

Re : [Résolu] Compilation de Firefox

je sais que je parle de centos sur un forum FEDORA

Il sert à quoi alors le forum Centos ?


C'est pas parce que c'est difficile qu'on n'ose pas,
c'est parce qu'on ose pas que c'est difficile !

Hors ligne

#4 16/11/2014 18:17:03

Maxime Tierre
Membre
Lieu : Devant mon PC à mon bureau
Inscription : 13/07/2009
Messages : 141
Site Web

Re : [Résolu] Compilation de Firefox

VINDICATORs a écrit :

Tu récupère une version stable pour tes paquets, voir mieux la version à support long. Là tu dois sans doute récupéré la version de développement.

J'utilise le lien qui est donné par Mozilla sur leur site mdn a savoir https://ftp.mozilla.org/pub/mozilla.org … /releases/. Lorsque tu télécharges les binaires proposé par le site, ils sont bien en version finale donc je me dit qu'il doit y avoir une astuce afin d'avoir aussi une version finale. J'ai aussi essayer d'utiliser le dépôt git mais j’obtiens le même résultat. La dernière version "LTS" est la version 27 il me semble et j'ai le même résultat.



nouvo09 a écrit :

je sais que je parle de centos sur un forum FEDORA

Il sert à quoi alors le forum Centos ?

Comme je l'écris dans mon post je fais mes test sur mon PC perso en FEDORA et de toute façon mon problème est indépendant du système donc peu importe le forum sur lequel je vais, tout ce que je cherche c'est compiler Firefox en version finale.


Maxime Tierre

L'intelligence c'est comme les parachutes, quand on en a pas on s'écrase (Desproges)

Hors ligne

#5 16/11/2014 18:46:33

nouvo09
Accro à Fedo !
Lieu : Paris
Inscription : 22/09/2005
Messages : 23 739

Re : [Résolu] Compilation de Firefox

Alors pourquoi ne pas prendre le binaire sur le site Mozilla ?


C'est pas parce que c'est difficile qu'on n'ose pas,
c'est parce qu'on ose pas que c'est difficile !

Hors ligne

#6 16/11/2014 19:51:39

Maxime Tierre
Membre
Lieu : Devant mon PC à mon bureau
Inscription : 13/07/2009
Messages : 141
Site Web

Re : [Résolu] Compilation de Firefox

nouvo09 a écrit :

Alors pourquoi ne pas prendre le binaire sur le site Mozilla ?

Tous simplement parce que je souhaiterais supprimer des fonctionnalités comme la mise à jour (les utilisateurs ont généralement le compte root)  et aussi le crash report (demande du client pour cause de site sensible).


Maxime Tierre

L'intelligence c'est comme les parachutes, quand on en a pas on s'écrase (Desproges)

Hors ligne

#7 16/11/2014 20:20:39

nouvo09
Accro à Fedo !
Lieu : Paris
Inscription : 22/09/2005
Messages : 23 739

Re : [Résolu] Compilation de Firefox

dans ces conditions avant d'installer un binaire pris chez Mofo, tu peux virer les fichiers update* et crashreport*

mais si les gens ont le compte root, il faudra compter sur leur bon sens de toutes façons.


C'est pas parce que c'est difficile qu'on n'ose pas,
c'est parce qu'on ose pas que c'est difficile !

Hors ligne

#8 16/11/2014 21:03:28

Maxime Tierre
Membre
Lieu : Devant mon PC à mon bureau
Inscription : 13/07/2009
Messages : 141
Site Web

Re : [Résolu] Compilation de Firefox

Malheureusement, si tu savais ce que certaine personne sont capable de faire avec un compte root. Le premier exemple qui me viens à l'esprit est dans l'un des services de la boite ou je bosse, les PC sont masterisé en ubuntu 12.04, une personne a appelé la hotline pour signaler que sont poste ne démarrais plus. Après avoir discuté avec lui, j'ai appris que grâce à ces droits sudo il avait migré son PC en ubuntu 14.04 tous ça parce qu'il avait vu un message en ouvrant un terminal. C'est pour sa que je souhaiterais verrouillé la chose au maximum et comme on peux retirer la fonction en compilant le soft je voulais passer par la. Enfin on a notre propre dépôt pour pouvoir rajouter des soft dans le master et je ne pense pas que yum prenne en charge les fichiers tar.


Maxime Tierre

L'intelligence c'est comme les parachutes, quand on en a pas on s'écrase (Desproges)

Hors ligne

#9 17/11/2014 00:24:46

nouvo09
Accro à Fedo !
Lieu : Paris
Inscription : 22/09/2005
Messages : 23 739

Re : [Résolu] Compilation de Firefox

je ne pense pas que yum prenne en charge les fichiers tar.

non mais tu peux packager toi-même.


C'est pas parce que c'est difficile qu'on n'ose pas,
c'est parce qu'on ose pas que c'est difficile !

Hors ligne

#10 17/11/2014 07:48:45

Maxime Tierre
Membre
Lieu : Devant mon PC à mon bureau
Inscription : 13/07/2009
Messages : 141
Site Web

Re : [Résolu] Compilation de Firefox

nouvo09 a écrit :

je ne pense pas que yum prenne en charge les fichiers tar.

non mais tu peux packager toi-même.

Le but est justement de faire un RPM mais avant il faut que je puisse compiler une version finale or pour l'instant j'ai une version nightly. On en revient donc a mon premier post et à ma question d'origine : comment faire ?


Maxime Tierre

L'intelligence c'est comme les parachutes, quand on en a pas on s'écrase (Desproges)

Hors ligne

#11 17/11/2014 08:37:32

marc2006
Membre
Inscription : 31/05/2007
Messages : 1 425

Re : [Résolu] Compilation de Firefox

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 ;)

Hors ligne

#12 18/11/2014 22:10:09

Maxime Tierre
Membre
Lieu : Devant mon PC à mon bureau
Inscription : 13/07/2009
Messages : 141
Site Web

Re : [Résolu] Compilation de 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.


Maxime Tierre

L'intelligence c'est comme les parachutes, quand on en a pas on s'écrase (Desproges)

Hors ligne

#13 18/11/2014 22:30:09

VINDICATORs
RédactWikix and the graphicatorix!
Modérateur
Lieu : Toulouse(31) France
Inscription : 23/11/2004
Messages : 18 882
Site Web

Re : [Résolu] Compilation de Firefox

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/o … tions/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...

Dernière modification par VINDICATORs (18/11/2014 22:38:07)


AMD R7 5800x X470 64Go DDR4 3.6Ghz, RX5700XT+AMD R7 2700x A320 + 32Go DDR4 3.2Ghz, rx6500xt 4Go
AMD R5 2600 A320, 32Go DDR4 1.8Ghz,1030GT 2Go + AMD A6 9500 A320, 16Go DDR4 2.1Ghz
ARM Rpi4 4Go, à venir Pine64 2xQuartzB 2Go

Hors ligne

#14 18/11/2014 23:29:37

Maxime Tierre
Membre
Lieu : Devant mon PC à mon bureau
Inscription : 13/07/2009
Messages : 141
Site Web

Re : [Résolu] Compilation de 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 … /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.


Maxime Tierre

L'intelligence c'est comme les parachutes, quand on en a pas on s'écrase (Desproges)

Hors ligne

#15 19/11/2014 08:58:25

VINDICATORs
RédactWikix and the graphicatorix!
Modérateur
Lieu : Toulouse(31) France
Inscription : 23/11/2004
Messages : 18 882
Site Web

Re : [Résolu] Compilation de Firefox

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...

Dernière modification par VINDICATORs (19/11/2014 08:58:50)


AMD R7 5800x X470 64Go DDR4 3.6Ghz, RX5700XT+AMD R7 2700x A320 + 32Go DDR4 3.2Ghz, rx6500xt 4Go
AMD R5 2600 A320, 32Go DDR4 1.8Ghz,1030GT 2Go + AMD A6 9500 A320, 16Go DDR4 2.1Ghz
ARM Rpi4 4Go, à venir Pine64 2xQuartzB 2Go

Hors ligne

#16 19/11/2014 11:35:55

marc2006
Membre
Inscription : 31/05/2007
Messages : 1 425

Re : [Résolu] Compilation de Firefox

Oui l'environnement de construction est sous un utilisateur spécifique ;)

http://doc.fedora-fr.org/wiki/RPM_:_env … nstruction

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

Hors ligne

#17 19/11/2014 22:31:48

Maxime Tierre
Membre
Lieu : Devant mon PC à mon bureau
Inscription : 13/07/2009
Messages : 141
Site Web

Re : [Résolu] Compilation de Firefox

VINDICATORs a écrit :

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 a écrit :

Oui l'environnement de construction est sous un utilisateur spécifique ;)

http://doc.fedora-fr.org/wiki/RPM_:_env … nstruction

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.


Maxime Tierre

L'intelligence c'est comme les parachutes, quand on en a pas on s'écrase (Desproges)

Hors ligne

#18 19/11/2014 23:20:27

marc2006
Membre
Inscription : 31/05/2007
Messages : 1 425

Re : [Résolu] Compilation de Firefox

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 ;)

Dernière modification par marc2006 (19/11/2014 23:20:57)

Hors ligne

#19 20/11/2014 08:23:20

Maxime Tierre
Membre
Lieu : Devant mon PC à mon bureau
Inscription : 13/07/2009
Messages : 141
Site Web

Re : [Résolu] Compilation de Firefox

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

Maxime Tierre

L'intelligence c'est comme les parachutes, quand on en a pas on s'écrase (Desproges)

Hors ligne

#20 20/11/2014 09:17:17

marc2006
Membre
Inscription : 31/05/2007
Messages : 1 425

Re : [Résolu] Compilation de Firefox

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

Dernière modification par marc2006 (20/11/2014 17:33:07)

Hors ligne

#21 20/11/2014 22:01:05

Maxime Tierre
Membre
Lieu : Devant mon PC à mon bureau
Inscription : 13/07/2009
Messages : 141
Site Web

Re : [Résolu] Compilation de Firefox

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


Maxime Tierre

L'intelligence c'est comme les parachutes, quand on en a pas on s'écrase (Desproges)

Hors ligne

#22 21/11/2014 03:24:33

VINDICATORs
RédactWikix and the graphicatorix!
Modérateur
Lieu : Toulouse(31) France
Inscription : 23/11/2004
Messages : 18 882
Site Web

Re : [Résolu] Compilation de Firefox

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

Dernière modification par VINDICATORs (21/11/2014 03:30:18)


AMD R7 5800x X470 64Go DDR4 3.6Ghz, RX5700XT+AMD R7 2700x A320 + 32Go DDR4 3.2Ghz, rx6500xt 4Go
AMD R5 2600 A320, 32Go DDR4 1.8Ghz,1030GT 2Go + AMD A6 9500 A320, 16Go DDR4 2.1Ghz
ARM Rpi4 4Go, à venir Pine64 2xQuartzB 2Go

Hors ligne

#23 21/11/2014 08:33:08

Maxime Tierre
Membre
Lieu : Devant mon PC à mon bureau
Inscription : 13/07/2009
Messages : 141
Site Web

Re : [Résolu] Compilation de Firefox

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.


Maxime Tierre

L'intelligence c'est comme les parachutes, quand on en a pas on s'écrase (Desproges)

Hors ligne

#24 22/11/2014 16:53:56

marc2006
Membre
Inscription : 31/05/2007
Messages : 1 425

Re : [Résolu] Compilation de Firefox

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/f … ce.tar.bz2).

Dernière modification par marc2006 (22/11/2014 18:04:13)

Hors ligne

#25 23/11/2014 02:23:18

Maxime Tierre
Membre
Lieu : Devant mon PC à mon bureau
Inscription : 13/07/2009
Messages : 141
Site Web

Re : [Résolu] Compilation de Firefox

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.


Maxime Tierre

L'intelligence c'est comme les parachutes, quand on en a pas on s'écrase (Desproges)

Hors ligne

Pied de page des forums