вторник, 27 октября 2009 г.

OpenBSD-4.6 и EFL приложения

/

мы победили всех зверей,
давайте грамоту скорей!

что-то стало холодать,
значит время компилять!

сподобился вот дожить до релиза версии 4.6 самого Ъ из Ъ "юнихов" - OpenBSD - за что молитву и свечку под икону. перекрестившись на святое (In God We Trust, да и "знак червонца проступает вместо лика на доске" однако...), решился на апгрейд с ранее установленной версии 4.2. чесал репу, прикидывая как это сделать не напрягаясь. в итоге забэкапил настройки, снёс всё и "мы наш, мы новый мир построим..." с чистого так сказать листа. сразу скажу - это было правильное решение. иначе двумя вечерами на выходных не отделался бы.

в отличие от многих дистрибутивов Linux-а (и несмотря на то, что в qemu это "чудо" отказывается работать до сих пор) всё сразу завелось как должно. отсутствие конфига иксов не помешало правильному определению оборудования и установке штатных режимов. пустячок-с, а приятно (знает кто в доме хозяин и уважение сразу демонстрирует, однозначно). оформление GUI по умолчанию (fvwm) - Ъ (в OpenBSD куда ни плюнь - Ъ, за редкими исключениями типа пакетного фильтра или UKC, что лишь подтверждают мудрость - "в семье не без урода"). наверное кто-то вышел из трёхгодичного запоя и решил стать "белым и пушистым зайчиком", попутно реализовав весь накопившийся творческий потенциал вот в эдакой милой расцветочке:



видимо на ларьке было написано что "Пива НЕТ!" (али ещё чего похлеще). как человек, не отягщённый избытком серого вещества в черепушке, решил компильнуть Enlightenment-svn-current, а то пакеты в официальном репо какими были 2 года назад (опосля того, как их сваяли совместными усилиями с Laurent Fanis) - такими же и остались. нам, кабанам... процесс получился творческим, занимательным и поучительным. перипетии отмечены в дискуссии на ЛОР-е, где и приведены итоги этого безобразия в виде оформленных багрепортов. описывать все эротические сцены этой "битвы за Сталинград" ни сил ни желания нет. победа одержана, за ценой не постояли. хочется как-то отложить основные вехи и моменты, не учтённые в упомянутых хрониках. буде сие кому интересно - благо.

муторную часть подготовки необходимого окружения опустим, ибо "pkg_add blah bla мля..." наводит тоску. не помешает правда свежий gcc (version 4.2.4 на сей момент). вот с этого и начинаются приключения. каким-то макаром в систему влетел "ccache" (может и сам его "попросил" - запамятовал) - а это очень мощное подспорье, ибо печатать слово "gmake" пришлось изрядно. после чего стоит изменить порядок каталогов в $PATH, дабы натравить ccache на новую версию gcc. делаем:

> ln -s /usr/local/bin/i386-unknown-openbsd4.6-gcc-4.2.4 /usr/local/bin/gcc
> export PATH="$HOME/bin:/usr/local/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/X11R6/bin:/usr/local/sbin:/usr/games:."
> ln -s /usr/local/bin/ccache $HOME/bin/gcc

махинации должны гарантировать следующий выхлоп:

> gcc -v
Using built-in specs.
Target: i386-unknown-openbsd4.6
Configured with: /usr/obj/i386/gcc-4.2.4/gcc-4.2.4/configure --with-gmp=/usr/local --enable-libgcj --verbose --program-transform-name=s,^,e, --disable-nls --disable-checking --with-system-zlib --disable-libmudflap --disable-libgomp --disable-tls --with-as=/usr/bin/as --with-ld=/usr/bin/ld --with-gnu-ld --with-gnu-as --enable-threads=posix --enable-wchar_t --enable-languages=c,c++,fortran,objc,java,ada --enable-cpp --with-gnu-as --with-gnu-ld --enable-shared --prefix=/usr/local --sysconfdir=/etc --mandir=/usr/local/man --infodir=/usr/local/info
Thread model: posix
gcc version 4.2.4

после этого можно "фтыкать" багрепорты и неспеша заниматься сборкой:

http://trac.enlightenment.org/e/ticket/447
http://trac.enlightenment.org/e/ticket/448
http://trac.enlightenment.org/e/ticket/449
http://trac.enlightenment.org/e/ticket/450
http://trac.enlightenment.org/e/ticket/451
http://trac.enlightenment.org/e/ticket/452

неошкуренным остался лишь довольно интимный вопрос об Entrance. тут довольно забавная ситуёвина. корячился где-то так:

1) в заголовок файла "entrance/src/client/entrance_auth.h" добавлял:

#include <xorg/shadow.h>

(хотя думаю, что это лишнее...)

2) скрипту ./configure передавал параметры:

./configure --with-random=/dev/urandom --with-auth-mode=shadow

первый - потому, что /dev/random в OpenBSD Ъёвый настолько, что "ни капли в рот, ни сантиметра в ....", а второй от безысходности (как и #include он не избавляет отцов расейской демократии от посещения вендиспансера). как всё установится в систему - рихтуем параметры работы Entrance. результат ниже:

# entrance_edit
Entrance Daemon Settings
attempts = 5
xserver = "/usr/X11R6/bin/X -quiet -nolisten tcp vt5 -dpi 96 dpms"
Entrance Client Settings
xsession = "/etc/X11/xdm/Xsession"
auth = 0
engine = 0
reboot = 1
halt = 1
theme = "default.edj"
background = ""
pointer = "/usr/local/share/entrance/images/pointer.png"
greeting-before = "Welcome to"
greeting-after = ""
date-format = "%A %B %e, %Y"
time-format = "%l:%M:%S %p"
autologin-mode = 0
autologin-user = ""
presel-mode = 1
presel-prevuser = "$USER"
user-remember = 1
user-remember-count = 5
user-count = 1
session-count = 2
default-session = "default"
default-session-title = "Default"
default-session-icon = "default.png"

изменение параметров - этой же командой рутом ("entrance_edit" другому не даёт). например:

# entrance_edit -auth=0
# entrance_edit -xserver="/usr/X11R6/bin/X -quiet -nolisten tcp vt5 -dpi 96 dpms"

по умолчанию параметр "auth" равен двум (shadow mode authentication), что служит гарантией нерабочего состояния для OpenBSD. запуск Entrance элементарен:

# echo '/usr/local/sbin/entranced' >> /etc/rc.local

для успокоения души на "/usr/local/sbin/entranced" можно вколотить суид-бит (сами решайте). наши скромные достижения:

картинка на Imagebam



за рамками этой истории остались капельки слов, мыслей и картинок нецензурного, непотребного и откровенно эротического содержания с уклоном в жёсткое порно. зато теперь - тепло и сухо...

удачи!

2 комментария:

Анонимный комментирует...

Обоинка красивая, хочу.

Анонимный комментирует...

>Ъ, за редкими исключениями типа пакетного фильтра или UKC
Что бы это значило?