Posts Tagged ‘gentoo’

i ♥ gentoo

Thursday, July 16th, 2009

gentoo

ebuild для Дженту за 15 минут

Friday, March 7th, 2008

  Для нового мега проекта Danaki для inbox.lv (уже в стадии подготовки к запуску) необходимо было установить последний lighttpd версии 1.5 которого ещё нет в официальном Gentoo.
  Ставить из tarball’а не кошерно, решил сделать свой ebuild из существующего для 1.4.18. Делал подобное первый раз без каких-либо познаний в этом деле. За 20 минут я:

  1. исправил URL для 1.5
  2. добавил нашу заплатку для кода
  3. добавил новую зависимость (aio)
  4. добавил новый USE флаг
  5. изменил конфигурационные файлы для lighttpd по умолчанию

  Ничего сложного :)

Поиски причин segfault под Gentoo

Saturday, January 26th, 2008

  Пришлось на днях поразвлекаться с gdb и падающим в segmentation failure PHP. Вот несколько советов по получению удовлетворительного результата под hardened Gentoo:

  1. ставим размер coredump’a бесконечным:
    ulimit -c unlimited
  2. прописываем путь для коры:
    echo "/tmp/core.%p-%t" > /proc/sys/kernel/core_pattern
  3. переключить компилятор gcc на vanilla (ВАЖНО!):
    gcc-config i686-pc-linux-gnu-3.4.6-vanilla
  4. запускаем сборку с дополнительными опциями:
    EXTRA_ECONF=" --enable-debug" FEATURES="nostrip" emerge -a php

  После падения по segfault смотрим результат:
gdb /usr/bin/php-cgi /tmp/core.bla-bla-bla

Подводные камни патча Grsecurity

Sunday, January 20th, 2008

  На днях столкнулся с проблемами при использовании ядра, собранного из sys-kernel/hardened-sources в Gentoo с включенными опциями grsecurity. Долго не мог понять в чем дело – gcc постоянно падал в segfault при сборке большинства пакетов, в то время как tar паковал пару гигов через bzip2 на ура. Поменяли проц и мамку – без результата.
  Дело оказалось в опции CONFIG_PAX_NOEXEC из раздела Security options->PaX->Non-executable page. После полного отключения фичи Non-executable pages компилятор всё таки заработал.
  Данная проблема явилась для меня сюрпризом, так как я уже долгое время работаю с ядрами линукс с включенным PAX’ом под amd64 без каких-либо нареканий. В этом же случае, система оказалась i686 на базе процессора Pentium4 без поддержки NX бита.