LINUX.ORG.RU

Firefox и компиляция «руками»: три вопроса в одном топике

 , , , ,


0

1

При установке SLE 11 SP4, там «из коробки» Firefox 38. Работает нормально. Из репозитория SLE_11_SP4:Updates можно установить Firefox 45. Он тоже работает нормально. Потом поддержка SLED кончилась, осталась только поддержка SLES, и в SLES не обновляют Firefox. Версия Firefox так и осталась 45. Поэтому я решил компилировать новые версии сам. Я скомпилировал версию 52. Установил, работает. Но есть три вопроса.

Первый вопрос: скомпилированный мной браузер хорошо работает на системах с 4+ Gb RAM и выше. На системах с 2 Гб памяти он работает нестабильно: при загрузке большой страницы (такой как maps.google.ru) он может «упасть»

Сначала я подумал, что проблема в патче, который я наложил, чтобы Firefox скомпилировался с Glibc 2.11. Была заменена одна строчка - неужели глюки из-за этого? Чтобы понять, так ли это, я обновил системный Glibc до 2.12 и попробовал скомпилировать Firefox без патча. Всё равно падает на 2 гигах ОЗУ...

И что интересно - помимо Firefox 52, я также скомпилировал Tor Browser 52, и он-то как раз не падает! Как так?

В поисках решения проблемы, я попробовал компилировать предыдущие версии браузера. Firefox 45 падает (хотя тот же Firefox 45 из репозитория дистрибутива не падает). Мне бы получить SRPM-ку Firefox 45 из SLED_11_SP4:Updates - наверное, там есть некий патч, который исправлет эти падения. Может быть, у кого-нибудь есть эта SRPM-ка? А Tor Browser либо тоже имеет это исправление, либо там просто что-то отключено в about:config

И наконец, самое интересное. Если компилировать браузер вручную, а потом выполнить ./mach package, то будет создал *.tar.gz архив, подобный тому, который выкладывают в http://ftp.mozilla.org/pub. А если зайти в dist/bin и запустить браузер оттуда, то ничего не падает! Это как?! В итоге я скопировал dist/bin в ~/firefox, и это работает. Но немного напрягает, что там внутри 4000 файлов, а через mach их всего 60.

Второй вопрос касается повышения системных требований. Все уже знают, что в Firefox 52 официальные сборки теперь компилируют с PulseAudio без ALSA. Нам сказали примерно следующее: «наконец-то мы прекратили поддержку Windows XP и RHEL5. Теперь нам не надо поддерживать старые звуковые системы, и поэтому мы можем реализовать звук 5.1 в браузере»

У меня возникла проблема не с этим. В Firefox 52 подняли системные требования до Xorg 7.5, который был в RHEL/CentOS 6, потому что прекратили поддержку RHEL5. В SLE 11 версия Xorg чуть меньше - 7.4. Пришлось обновить libxcb с версии 1.1 до 1.4 (вообще в Xorg 7.5 - libxcb 1.5, но опытным путём выяснилось, что 1.4 достаточно), а также libX11 с 1.1 до 1.3. Firefox скомпилировался и заработал.

Возможно ли скомпилировать libxcb 1.13, libX11 1.6.7, и, во время компиляции Firefox, слинковаться с ними статически? Я так понимаю, если я тупо уберу libxcb.so и libX11.so, оставив только libxcb.a и libxcb.a, то Firefox будет использовать именно их. Вот только все остальные зависимости (например GTK) работать без *.so версий этих либ не захотят. Так как тогда?

Лично мне не сложно обновить системные libxcb и libX11. Но мне написал юзер SLE 11 из Колумбии и сказал «Ты прописал зависимости от пакетов таких-то версий, а где их взять?». Похоже что он просто скачал мои RPM-ки вместо того, чтобы подключить репозиторий, потому что в этом случае всё само бы поставилось. И поэтому я задумался над тем, чтобы подцепить эти либы статически, а системные не обновлять. Возможно ли это?

Третий вопрос это обновление до следующих LTS-версий браузера. Там Rust, я вот пердолюсь с тем, чтобы его скомпилировать. Бинарная сборка Rust уже есть, но в OBS-репозитории mozilla бинарную сборку используют только для того, чтобы скомпилировать из исходников. Блин, а чё так сложно?

Вообще, интересные открытия можно сделать, если посмотреть SRPM-пакеты с Firefox-ом из CentOS 5 и 6. Например в пакете с CentOS 5 нашлись чудесные патчи, понижающие минимально необходимую версию GTK с 2.18 до 2.10. Также я оттуда узнал, что хотя в CentOS 5 нет Python 2.7, питон просто компилируется рядом и используется при компиляции. А потом он не нужен. Ну и наконец я оттуда взял патчи для понижения минимально необходимой версии fontconfig. SRPM-ку из CentOS 6 я пока не смотрел, и наверное решение проблемы с зависимостью от Rust и LLVM там есть.

★★★★★

Последнее исправление: ZenitharChampion (всего исправлений: 1)

Мог бы уже перейти на плазма5 и не страдать с этим древним тормозным говном2.

anonymous
()
Ответ на: комментарий от ZenitharChampion

Не такой уж нормальный - в смысле, с ним не покрасноглазишь?

Deleted
()

Ребята, давайте не будем флудить в тех. разделе.

ZenitharChampion ★★★★★
() автор топика
Ответ на: комментарий от ZenitharChampion

Ту так и systemd попробуй не боятся. Ставь свежий дистрибутив и сэкономишь кучу времени и нервов, и компилять не придется.

mbivanyuk ★★★★★
()
Ответ на: комментарий от ZenitharChampion

кроме криков всяких ламеров на лоре

речь, как я понимаю, про GNOME 3? Ты его пробовал запускать хоть раз? А планшет хоть раз в глаза видел? Что между ними общего?

Но ладно, допустим, не всем может нравиться его концепция интерфейса. Но вообще то в твоём же посте

Зато GNOME2, а не MATE на GTK3, и нет Systemd.

речи про GNOME 3 и не идёт. В чём твоя проблема с мейт, GTK3 и Systemd?

eternal_sorrow ★★★★★
()
Ответ на: комментарий от mbivanyuk

> Свежий всегда лучше, ты просто боишься попробовать новое.

Не всегда. Например Morrowind лучше Skyrim (в чём-то хуже, но в большинстве случаев лучше).

> ты просто боишься попробовать новое

Я всегда пробую что-то новое, когда оно действительно что-то даёт. Например Компиз в 2006 позволил избавиться от тиринга, NTFS-3G в 2007 позволил записывать на NTFS (раньше было только чтение), exfat-nofuse в 2013 позволил записывать на флешки с файловой системой exfat, Steam в том же году позволил играть в AAA-игры. TeamViewer позволил пробиться через все NAT-ы (но я всё равное ему не доверяю), Discord просто удобнее и фичастее, чем TeamSpeak. А что даёт GNOME3 и Systemd? Ничего, только минусы

> Ставь свежий дистрибутив и сэкономишь кучу времени и нервов, и компилять не придется.

Я лучше поставлю CentOS 6. GNOME2, нет Systemd, Firefox 61, и обновляться будет ещё кучу лет

ZenitharChampion ★★★★★
() автор топика
Последнее исправление: ZenitharChampion (всего исправлений: 1)
Ответ на: комментарий от eternal_sorrow

>> Зато GNOME2, а не MATE на GTK3, и нет Systemd.

> речи про GNOME 3 и не идёт. В чём твоя проблема с мейт, GTK3 и Systemd?

Тема не об этом. Тема о падения Firefox на < 4 Гб ОЗУ. Разработчики SLED об этом, судя по всему знают, потому что официальная бинарная сборка Firefox 45 этому не подвержена. А когда я компилирую Firefox 45 сам, то у меня падает. Если бы в SLED и дальше ыла доступна свежая версия Firefox, то я бы не задавался этим вопросом - а так я компилирую Firefox 52 и 61, и мне надо исправить эту ошибку

ZenitharChampion ★★★★★
() автор топика
Ответ на: комментарий от ZenitharChampion

А что даёт GNOME3 и Systemd?

Возможность поставить актуальную версию нормального дистрибутива и не заморачиваться компиляцией FF? Я тебя не уговариваю, ты спросил я ответил. Конечно третий гном можно и заменить на другое современное DE, сути это не меняет.

mbivanyuk ★★★★★
()
Ответ на: комментарий от ZenitharChampion

использую, ибо приходится. но teamspeak намного удобнее

eternal_sorrow ★★★★★
()
Ответ на: комментарий от ZenitharChampion

GIMP уже перешёл на GTK3?

не совсем еще

Deleted
()

Лично мне не сложно обновить системные libxcb и libX11. Но мне написал юзер SLE 11 из Колумбии и сказал «Ты прописал зависимости от пакетов таких-то версий, а где их взять?». Похоже что он просто скачал мои RPM-ки вместо того, чтобы подключить репозиторий, потому что в этом случае всё само бы поставилось.

В таком случае единственно верный ответ — взять там же, где взял Firefox, т. е. подключить репозиторий.

dexpl ★★★★★
()
Ответ на: комментарий от ZenitharChampion

А что даёт GNOME3 и Systemd?
Gnome3

Новый революционный дизигн от сверхразработчиков, удобную систему рабочих столов, управлением окон... Да там список из 100500+ пунктов лол.

Systemd

Простоту и скорость загрузки пеки.

vladimir_vist
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.