Не собирается firefox 51. (решен)

Собственно все именно в этом - firefox не собирается. Из-за этого обновление не проходило. Хорошо - Emerge C firefox все нормально собирается. Ок. Стал собирать отдеельо. Убрал ключи до “O2 -pipe”, тот же результат:

Traceback (most recent call last):
  File "/var/calculate/tmp/portage/www-client/firefox-51.0.1/work/firefox-51.0.1/build/pgo/profileserver.py", line 31, in <module>
    httpd.start(block=False)
  File "/var/calculate/tmp/portage/www-client/firefox-51.0.1/work/firefox-51.0.1/testing/mozbase/mozhttpd/mozhttpd/mozhttpd.py", line 259, in start
    self.httpd = EasyServer((self.host, self.port), self.handler_class)
  File "/usr/lib64/python2.7/SocketServer.py", line 417, in __init__
    self.server_bind()
  File "/usr/lib64/python2.7/BaseHTTPServer.py", line 108, in server_bind
    SocketServer.TCPServer.server_bind(self)
  File "/usr/lib64/python2.7/SocketServer.py", line 431, in server_bind
    self.socket.bind(self.server_address)
  File "/usr/lib64/python2.7/socket.py", line 228, in meth
    return getattr(self._sock,name)(*args)
socket.error: [Errno 98] Address already in use
make[1]: *** [Makefile:67: pgo-profile-run] Error 1
make[1]: Leaving directory '/var/calculate/tmp/portage/www-client/firefox-51.0.1/work/firefox-51.0.1/ff'
make: *** [client.mk:237: profiledbuild] Error 2
emake failed
 * ERROR: www-client/firefox-51.0.1::gentoo failed (compile phase):
 *   Failed to run 'emake -f client.mk profiledbuild'

Ругается на python 2.7, а он в системе вроде бы запасной (fallback), основной - 3.4

Куда посмотреть и что почитать?

Ошибка в том, что cl-core использует порт по умолчанию 8888.
FF для сбора pgo запускает ряд тестов используя тот же порт.
Т.к. он занят, то вылазит такая ошибка.
Тут несколько путей решения:
Мой вариант:
Перед сборкой один раз выполнить, он сохранится в системе:

cl-core-variables --set core.cl_core_port=8887
sudo service calculate-core restart

Ещё вариант:
Зайти в Меню -> Система -> Консоль Calculate -> нажать отсоединиться -> потом соединиться -> выбрать другой порт (8887) -> Соединиться. Profit.

Ещё можно на время сборки остановить cl-core:

sudo /usr/bin/pkill -f "cl-core.*--start"

Ещё вариант отключить pgo при сборке FF

sudo mkdir -p /etc/portage/package.use/www-client
echo www-client/firefox -pgo | sudo tee /etc/portage/package.use/www-client/firefox

FireFox, pgo-profile-run Error

Спасибо за помощь!

Советы помогли, но кое-чего пришлось додумывать еще и самому.

Первый вариант, который попробовал в силу своей лени - отсоединиться в консоли, потом присоединиться под другим портом вышел ровно наполовину - отсоединиться легко, присоединиться по другому порту - “Errno 111”. Угу. Подумал, что порт назначен строго и юзеру его не переопределить, пошел по второму пути, точнее по советам - по первому. Переопределил порт, как написано. Перестартовал сервис, попробовал переподсоединиться в консоли по новому порту - без проблем. Ага. Уже неплохо. На всякий пожарный перезагрузился (наверное зря)

Запустил emerge -uDN firefox

Облом - не собрался. Присмотрелся - ошибки другие. Подумал - применил вырожденный вариант сборки, а именно

EMERGE_DEFAULT_OPTS="${EMERGE_DEFAULT_OPTS} --jobs=1"

ну и до гарантии

MAKEOPTS="-j1"

ccache и distcc (собираю модули для нетбука на десктопе дома) отключил также.

После долгого ожидания - все собралось.

Подключил ccache. Удалил firefox, затем пересобрал (предварительно дав ccache C) прошло.

Удалил firefox, выставил MAKEOPTS="-j9 -l4" (было MAKEOPTS="-j17 l8"). Пересобрал. Все собралось достаточно быстро (потому как одну задачу все равно оставил).

На этом пока остановился - ибо задача выполнена. Может верну distcc (нетбук-то лучше собирать). Но вопрос - решен.

Еще раз спасибо !

Я себе скрипт создал в файле /etc/portage/env/www-client/firefox чтоб меньше тормозило при сборке, т.к. 4 Гб оперативы + 4 Гб swap всего:

CFLAGS="$(echo $CFLAGS | sed -e 's/-pipe//g')"
CXXFLAGS="${CFLAGS}"
LDFLAGS="$(echo $LDFLAGS | sed -e 's/-pipe//g')"
MAKEOPTS="-j3 --load-average=4"

if [ "${EBUILD_PHASE}" = "prepare" ]; then
    elog "for build ${PN} using:"
    elog "  CFLAGS=\"${CFLAGS}\""
    elog "  CXXFLAGS=\"${CXXFLAGS}\""
    elog "  LDFLAGS=\"${LDFLAGS}\""
    elog "  MAKEOPTS=\"${MAKEOPTS}\""
fi

Заказал на днях у китайцев на али 2x4Гб, а пока такой скрипт использую :slight_smile: