The OpenNET Project / Index page

[ новости/++ | форум | wiki | теги ]

Компиляция Mozilla FireFox для получения 64-битной версии
Недавно я обнаружил то, что на сайте firefox.com нет 64-битной версии браузера
Mozilla FireFox для Linux. Не обнаружил я и 64-битной версии браузера для
других систем. Если посмотреть сайт лучше, можно обнаружить 64-битные сборки
альфа-версий - а стабильных версий нет.

Тогда я решил собрать 64-битную версию самостоятельно. Разумеется, и 32-битная
версия будет работать с 64-битной системой, если установить 32-битные
библиотеки. В Ubuntu они занимают около 100 (ста) мегабайт. Если вы пользуетесь
DooM III или Wine, 32-битные библиотеки, скорее всего, уже установлены - и
проблемы нет... А что если они не установлены и устанавливать их у вас нет
никакого желания?

Кстати, даже если у вас установлен 64-битный браузер, то для того чтобы
воспользоваться 32-битным Flash-проигрывателем надо установить 32-битные
библиотеки. Надоели... Но выход есть! Можно или воспользоваться альфа-версией
64-битной библиотеки Adobe Flash, или Gnash - свободным эквивалентом
Flash-плееру. Последний работает в том числе и с Konqueror.

Я разобрался со сборкой FireFox из исходного кода и описал этот процесс вам -
собственные бинарные сборки я размещаю на файлообменнике, найти ссылки можно
найти в одной из тем на сайте linsovet.com. Архивы приведены к виду архивов на
сайте firefox.com с тем отличием, что не удалён английский словарь, а также
многие поисковые сайты из выпадающего списка. Кроме того, 64-битный
Flash-проигрыватель уже вложен и сразу работает - размер архива увеличился лишь
на 3 мегабайта, а распакованная директория на 9 мегабайт.

Сразу предупреждаю: никаких проверок работоспособности я не проводил. Флаги
сборки и оптимизации не трогал и не экспериментировал. В официальном 32-битном
FireFox есть CrashReporter, а у меня нет, а может быть, его можно включить. В
моей сборке есть xslt-qa.jar, а в официальной нет - может быть, это только для
моей машины, в которой есть libxslt. Про то, что логотип FireFox защищён
несвободной лицензией тоже знаю, и всё же целенаправленно поменял в своей
сборке логотип Shiretoko на логотип FireFox - знайте, так делать нехорошо.
Кроме получения недоступной лёгкими путями 64-битного FireFox, компиляция также
даёт увеличение скорости работы благодаря оптимизации именно под ваше
оборудование - но я уверен, что для такой программы, как интернет-браузер, этот
прирост скорости не окажется существенным.

Итак, для начала надо разобраться с зависимостями. Это легче всего сделать в
таких дистрибутивах, как Debian и Gentoo. В Debian-подобных дистрибутивах надо
лишь выполнить команду от имени суперпользователя:

   apt-get build-dep firefox xulrunner

Чтобы сразу и без проблем установить зависимости в Ubuntu 9.04, я вместо
firefox написал firefox-3.5 - в репозитории была и остаётся только четвёртая
бета-версия. Кроме того, я находил сторонний репозиторий с FireFox 3.5,
http://ppa.launchpad.net/ubuntu-mozilla-daily/, (который, к сожалению, на тот
момент был неработоспособен и не устанавливал новейшего FireFox. Как там
обстоят дела сейчас я не знаю, так как я уже достиг своей цели), и устанавливал
зависимости также для пакетов оттуда.

Если у вас другой дистрибутив, предлагаю устанавливать зависимости
руководствуясь файлом README или просьбам компилятора.
Чтобы скачать исходный код Mozilla FireFox, можно зайти на
ftp://ftp.mozilla.org/pub/mozilla.org/firefox/releases/, перейти в директорию с
самой последней версией, затем в src и загрузить архив tar.bz2. Затем архив
надо распаковать и, убедившись в том, что на разделе есть свободные 900
мегабайт, выполнить команду

   make -f client.mk build

Так написано в руководстве по адресу
https://developer.mozilla.org/en/Build_and_Install . Но команда не работает.
Поискав ошибку в Google, я обнаружил решение. После того, как команда выдаст
ошибку, надо выполнить ./configure --enable-application=browser и повторить
первую команду.

Компиляция занимает 40 минут на моём AMD Athlon 64 X2 7850+, 2 гигабайтами
памяти DDR2 1066 на разделе ReiserFS.

После завершения компиляции можно запустить браузер. Он находится в директории
dist/bin/, запускать надо файл firefox. Однако остаётся несколько нерешённых
задач. Вместо FireFox почему-то запускается Shiretoko (кодовое название версии
3.5, как я понимаю...), хотя функциональность та же. Надо вернуть идентификатор
браузера, логотип и название, а также удалить лишние 850 мегабайт отработанного
исходного кода.

Прежде всего, избавляемся от символических ссылок, так как каждый второй файл
ведёт на несколько директорий назад. Как это сделать командой cp я так и не
разобрался (профессионалы, подскажите работающий способ!), поэтому я запустил
winefile, выбрал каталог bin, и скопировал его через Файл > Копировать... в
другое место.

Символические ссылки пропали, однако исполняемые файлы потеряли параметр
исполняемости! Дело в том, что в файловых системах Windows-систем такого
параметра файлов не существует. Заходим в каталог с FireFox, выделяем все
бинарные файлы и скрипты запуска, нажимаем на них правой кнопкой мыши и
выбираем "Свойства". Вкладка "Права". Ставим галочку "Позволять выполнение
файла как программы" в случае если Gnome, или "Is executable" в KDE.

Теперь можно удалить все директории, кроме нашего нового bin.
Как добавить русский язык, идентификатор и название? Загружаем 32-битную версию
FireFox. Открываем 2 каталога, с нашим FireFox, и 32-битным. Заменяем всё
содержимое каталога chrome содержимым русского FireFox. То, чему замены нет, не
удаляем. Ни в коем случае не трогаем каталог components.

Заменяем все файлы в каталоге defaults. Копируем русский словарь в dictionaries
- при желании можно стереть английский. Не трогаем extensions. Заменяем все три
файла в каталоге greprefs. Заменяем icons и modules. Ничего не заменяем в
plugins, ведь там 64-битные библиотеки. При желании туда можно скопировать
64-битный Flash-проигрыватель. Не трогаем res. Заменяем всё в searchplugins,
при желании можно всё оставить как было или наоборот, удалить всё, что было. Не
трогаем updates. Меняем файлы application.ini, browserconfig.properties,
firefox, old-homepage-default.properties, platform.ini, README.txt,
run-mozilla.sh, updater.ini, update.locale, добавляем файл Throbber-small.gif
(хотя я не знаю, нужен ли он...).

Всё готово. Осталось переименовать каталог bin в firefox и заархивировать, дав
ему имя, например, firefox-3.5.5-x86_64.tar.bz2.
 
10.11.2009 , Автор: Zenitur
Ключи: firefox, compile, 64bit / Лицензия: CC-BY
Раздел:    Корень / Пользователю / Работа с Web и Ftp

Обсуждение [ Линейный режим | Показать все | RSS ]
 
  • 1.1, Agressor, 03:13, 11/11/2009 [ответить] [смотреть все]
  • +/
    Да... действительно разрабы чего-то упустили... Больше полутора лет сижу на x86_64 и FF всегда собирался из portage под систему... Никогда не задумывался о том что его не собирают в бинарных дистрах под x86_64. Никто не скажет, почему мозилловцы не поддерживают эту сборку?
    И по поводу 32-битного Flash - примерно пол года как в системе 64-битный... Странно это все... Убунта начинает отставать - не успевают тестировать пакеты?
    Эх, убунтологи, мне бы ваши проблемы:)
     
     
  • 2.7, User294, 21:01, 11/11/2009 [^] [ответить] [смотреть все] [показать ветку]
  • +/
    У убунтуйцев он сроду собран как 64-битный в 64-битной системе Минус от этого т... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.18, Аноним, 14:13, 13/11/2009 [^] [ответить] [смотреть все]  
  • +/
    Причина проста и понятна - дистрибутивные сборки отстают от официальных сборок, ... весь текст скрыт [показать]
     
  • 1.2, ffsdmad, 08:12, 11/11/2009 [ответить] [смотреть все]  
  • +/
    :~$ uname -a
    Linux ffsdmad-home 2.6.31-15-generic #49-Ubuntu SMP Fri Nov 6 09:55:13 UTC 2009 x86_64 GNU/Linux:~$ cat /etc/issue
    Ubuntu 9.10 \n \l
    :~$ file /usr/lib/firefox-3.5.4/firefox
    /usr/lib/firefox-3.5.4/firefox: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.15, stripped

    скажите у меня 32 битный фирефокс?

     
     
  • 2.4, pavlinux, 09:56, 11/11/2009 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    А накой тебе на одном ЦПУ SMP ядро Или это uname -a такая Linux suse64 2 6 32-... весь текст скрыт [показать] [показать ветку]
     
  • 2.8, User294, 21:08, 11/11/2009 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Нет, это просто лапша на уши, за дезу незачет В большинстве 64-битных систем фо... весь текст скрыт [показать] [показать ветку]
     
  • 2.11, Zenitur, 22:29, 11/11/2009 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Это Укажите мне, где я указал на то, что в Ubuntu есть только 32-битный FireF... весь текст скрыт [показать] [показать ветку]
     
  • 1.3, pavlinux, 09:44, 11/11/2009 [ответить] [смотреть все]  
  • +/
    suse64 home pavel ll which firefox lrwxrwxrwx 1 root root 27 Ноя 8 17 20 ... весь текст скрыт [показать]
     
     
  • 2.9, User294, 21:12, 11/11/2009 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Пусть автор этой кульной статьи скажет - откуда в его голове появилась мысль про... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.20, vkni, 21:44, 13/11/2009 [^] [ответить] [смотреть все]  
  • +/
    Я когда ставил Windows 7, с удивлением обнаружил, что все основные браузеры под ... весь текст скрыт [показать]
     
  • 1.5, Вова, 14:27, 11/11/2009 [ответить] [смотреть все]  
  • +/
    в тексте ощущаются обороты:
    "ах вот оно что!", "но не тут-то оно было", "Как я и предполагал" "ну наконец-то!"

    кому интересно, тут про сборку огнелиса с qtшным уи: http://www.opennet.ru/openforum/vsluhforumID3/57377.html#35

     
  • 1.6, User294, 20:59, 11/11/2009 [ответить] [смотреть все]  
  • +/
    >Недавно я обнаружил то, что на сайте firefox.com
    >нет 64-битной версии браузера Mozilla FireFox для Linux.

    Нету и хрен с ним - а заинсталить из репов не судьба?

     
     
  • 2.14, Zenitur, 23:51, 12/11/2009 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Не судьба В репозитарии до начала прошлой недели FireFox 3 5 просто не было Ск... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.15, User294, 00:43, 13/11/2009 [^] [ответить] [смотреть все]  
  • +/
    1 Да, безусловно, можно сделать всю работу майнтайнеров за них, но тогда или ва... весь текст скрыт [показать]
     
     
  • 4.19, Аноним, 14:16, 13/11/2009 [^] [ответить] [смотреть все]  
  • +/
    Лолнуб, в неправильных дистрах это делается ни чуть не сложнее, чем выполнить ... весь текст скрыт [показать]
     
  • 1.13, aNoN, 13:30, 12/11/2009 [ответить] [смотреть все]  
  • +/
    Это ж надо сколько фееричного текста надо было набить вместо tar xf *.tar.bz2 && ./configure && make && make install

    > Поискав ошибку в Google, я обнаружил решение.

    А документацию читать не пробовал, хотя бы вывод ./configure -- help?

    И этааа, автор раз сам собираешь ff из исходников, ты про mercurial-репозиторий мозилы вообще не слышал?

     
  • 1.16, Аноним, 01:15, 13/11/2009 [ответить] [смотреть все]  
  • +/
    raiden ubuntu file usr lib firefox-3 5 5 firefox usr lib firefox-3 5 5 fire... весь текст скрыт [показать]
     
  • 1.21, vkni, 21:49, 13/11/2009 [ответить] [смотреть все]  
  • +/
    >Недавно я обнаружил то, что на сайте firefox.com нет 64-битной версии браузера
    >Mozilla FireFox для Linux.

    Это не удивительно, могли и 32-х разрядной под Linux не делать. Все же из дистрибутивов берут.

    Удивительнее то, что 64-х разрядной под Windows там не скачать.

     
     
  • 2.22, Zenitur, 10:43, 15/11/2009 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Это-то как раз неудивительно. vkni, что за отношение к Миру! Как будто на сайте свободного проекта делают большое одолжение, выкладывая бинарники... В то время, как исходный код в итоге даёт программу, которая не называется FireFox. Вы так за каждый свободный проект, надеюсь, не боитесь?
    Не будет бинарников - найдутся те, кто сделает.
     
     
  • 3.25, vkni, 00:25, 16/11/2009 [^] [ответить] [смотреть все]  
  • +/
    >Как будто на сайте свободного проекта делают большое одолжение, выкладывая бинарники...

    Ну, вообще-то большое одолжение делают просто выкладывая хоть что-то :-).

    > Не будет бинарников - найдутся те, кто сделает.

    О том и речь. Т.е. подавляющему большинству линуксоидов бинарники Firefox для Linux с сайта mozilla вообще не нужны. Просто потому, что дистрибутивоваятели делают свои сборки, приспособленные к соответствующим дистрибутивам.

    Т.е. линукс бинарники на mozilla.com - это для маргиналов среди линуксоидов.

    В то же время, бинарники под Windows нужны категорически, т.к. Microsoft не поставляет хорошие сборки Firefox со своими дистрибутивами.

     
     
  • 4.26, Zenitur, 03:13, 17/11/2009 [^] [ответить] [смотреть все]  
  • +/
    Обычно в дистрибутиве одна сборка чего-либо, или две-три. Обновляться-то как?!
     
  • 1.27, botov, 15:50, 17/11/2009 [ответить] [смотреть все]  
  • +/
    http://www.mozilla-x86-64.com/
     
     
  • 2.28, Zenitur, 08:56, 19/11/2009 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Mozilla for Windows x64 platform???
    Howto build Mozilla FireFox on Vista 64 bit???
    Ну, хорошо... Почитаю... Если найдётся тот, кто проверит работоспособность способа сборки и их сборки, изменю статью!
     

    Ваш комментарий
    Имя:         
    E-Mail:      
    Заголовок:
    Текст:



      Закладки на сайте
      Проследить за страницей
    Created 1996-2017 by Maxim Chirkov  
    ДобавитьРекламаВебмастеруГИД  
    Hosting by Ihor