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 :-D
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.
je sais que je parle de centos sur un forum FEDORA
Il sert à quoi alors le forum Centos ?
VINDICATORs wrote: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/firefox/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 wrote:
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.
Alors pourquoi ne pas prendre le binaire sur le site Mozilla ?
nouvo09 wrote: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).
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.
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.
je ne pense pas que yum prenne en charge les fichiers tar.
non mais tu peux packager toi-même.
nouvo09 wrote:
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 ?
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 🙂