OpenBSD - зборка E17-cvs (ці яшчэ адна маленькая перамога розуму)
23 студзеня 2008 г
Памятаецца лёт 15 назад камерцыйныя Unix можна было параўнаць з трактарамі Caterpillar - вылізаны, зіхатлівы, новенькі трактар: моцы - нямерана, рык грозны і аўтарытэт подавляющ. Linux - ну што там Лінукс, студентіком Танненбаума напісаны? Хто пра яго ведаў - заікаліся, што, маўляў, гэта таксама трактар, ржавенькій, але трактар (тыпу, бясплатна і для народа). Шчасліўчыкі, якія дапалі да "фірмового" абсталяванні з камерцыйнымі Unix, пры гэтых словах падлы пад крэсла ад рогату, тыя, хто разбіраўся з HP-UX, не марнавалі сіл нават на тое, каб пакруціць пальцам у скроні. Дзякуючы бліскучаму маркетынгу і абсалютна наплявальніцкай пазіцыі да пытанняў капірайтаў, MS упэўнена "глынала" дэсктопы расейцаў і розумы распрацоўнікаў, выпальваючы напалмам астраўкі NetWare, OS/2 і іншых цікавейшых "насельнікаў" кампутарных "шруб". Народ ужо мацюкаўся пры поглядзе на патрабаванні MS да жалеза, але... "Рабіць няма чаго... Баяры, патужыўшы пра Васпана і царэўне маладой, у спальню да яе ўвайшлі натоўпам..." (і нават не заікайцеся пра нонешнем "падзенні нораваў").
Навошта гэта я тут так руйнуюся? А вы ўявіце сабе трошкі якая праржавела мешанку танка з трактарам (жаночага паў), у якога замест седушкі кіроўцы тырчыць абгрызак трубы. Вертыкальна. Каб адразу і па самыя гланды ўсім, хто захоча прітопіть "газулю" ў падлогу адразу пасля ўсталёўкі generic сістэмы. Прадставілі? Вось гэта і ёсць OpenBSD. Калі няўмелай дзіцячай рукой на "пысе" гэтай пачвары намаляваць вочкі і ўхмылку "рыбкі" з малюначка "No Blow - No Go!" - то менавіта так і будзе выглядаць праўдзівы знак гэтай Восі.
FAQ: 2 "Выбар любой аперацыйнай сістэмы залежыць ад адказу на пытанне: "Ці можна зрабіць нейкую працу менавіта так, як Вам жадаецца?" І адказаць на гэта пытанне Вы павінны самастойна."
Як гэта ні парадаксальна - чымсьці гэта сістэма прыцягвае. Можа, тым, што патрабуе спачатку "каханні, ласкі і ўвагі", а вось потым "на ўсё гатовы я...". Па вялікім рахунку адзінае, што рэальна раз'юшвае - гэта адсутнасць звычайных драйвераў на відэа, з-за чаго праца ў іксах ператвараецца ў кашмар (угу, ваша Галя - пешчаная!). Не ганяў пакуль тэстаў для параўнання з Linux-2.6.23 (SLUB), але штосьці падказвае, што наша "пачвара" нават з уключаным softupdate апынецца аўтсайдарам. Бо мэты ў праекта некалькі іншыя. У частку кута пастаўлена бяспека сістэмы, што накладвае парой даволі адчувальныя абмежаванні на працэс аптымізацыі софту пад гэту платформу. У прыватнасці, я ставіў як i386 на Athlon64 і для паспяховай кампіляцыі 'ecore' прыйшлося выразаць выкарыстанне mmx інструкцый. Зараз па парадку (усё, што апісана ніжэй - асабліва маё IMHO і ні ў якім разе не прэтэндуе на "праўду ў апошняй інстанцыі"):
- Таварыш, памятай, OpenBSD - не Unix і POSIX 2 несумяшчальная! Ткі пазабываў? Не бяда! Адсутнасць функцыі strfmon() і хэдера monetary.h хутка адновяць гэты прабел.
- "Люстэркі" афіцыйнага рэпазітара жахлівыя. Перш грашыў на свае налады. Потым паставіў [dc]Master Fanout Site (Canada)[/dc] - зарабіла. Такое адчуванне, што шматлікія файлы на люстэрках "абрэзаны", недапампаваны. Цешыўся рана. Дзе "затычка" - пакуль не разабраўся, але "рэцэпт" наступны: цягнем wget-ом і потым ставім са "шрубы". Інакш стоміцеся выразаць partial усталёўкі (даволі забаўная дарэчы фішка, потым падумаю, як яе выкарыстоўваць).
- Не шукайце iocharset у опцыях mount-а. Яго там няма. Запіс у openbsd-misc mailinglist (ад студзеня 2006-го гады) 2:
- Няма падтрымкі ніводнай журналіруемой файлавай сістэмы 2.
- А зараз дазвольце выкаціць спісочек. Гэта - поўны top. У фоксе адкрыта 15 укладак, на адной з якіх пішацца гэта нота. У Enlightenment-е загружана 55 модуляў. mpd + emphasis. Чаму emphasis жарэ 68.07% ад рэштак проца - гутарка асобны і будзе ён зразумелы і цікавы, мабыць, толькі распрацоўнікам. dbus запушчаны асабліва дзеля спартовай цікавасці. wget цягне пакет openoffice з офсайта. Лепота...
- Базавую сістэму ставіў усю, акрамя SMP ядры (не карыстаю SMP на дэсктопе з прынцыпу). Доўга секся ў Tetris (на 9-ом узроўні мяне падкасілі - непарадак). Настальгаваў. Угледзеў у пакетах quake і quake2. Змахнуў скупую слязу і доўга думаў пра ўсіх, хто не жадае з'яўленні nVidia драйвераў для OpenBSD. У выніку спіс усталяваных пакетаў выглядае на сёння вось так:
- Вялікай неспадзеўкай апынулася адсутнасць mime.types файла ў /etc. Яно ёсць у /var/www/conf/mime.types, ёсць у /etc/mutt/mime.types (калі вы кахаеце mutt таксама, як кахаю яго я). З абодвух файлаў можна скампанаваць годны ўвагі вынік пасля апрацоўкі напільнікам. Паколькі скрыпт ставіць усе кампаненты ў /opt/e17 (ды і выдаляць потым прасцей. грукнуў каталог і спі спакойна), то кінуў сімлінк на mime.types і ў /opt/e17/etc.
- Скрыпт ноне гарантавана здольны на i386/x86-64 архітэктуры сабраць вам наступныя "смачнасці" (і ўпэўнены, што гэта не мяжа, паколькі не тэставаў для ўсяго, што ляжыць у E-cvs):
- Пасля даводкі секцый скрыпту па зборцы да розуму атрымалася звесці колькасць патчаў зыходнікаў да мінімуму (для ўсталёўваных кампанентаў натуральна). Паколькі ў html перакладаць гультаявата - гледзіце лепш у скрыпце:
Let It Be! Just Let It Be!
"At the moment, there is no way to specify a particular charset when
mounting filesystems. This is being worked on, however (at least for
cd9660, udf and ntfs filesystems).
Miod"
Моцна. Выклікае. Цікава, колькі малп неабходна, каб укруціць у патрон лямпачку? Не. Не так. Колькі часу неабходна адной малпе, каб прарабіць гэта практыкаванне, не расхерачів пры гэтым згаданую лямпачку да свінняў сабачым? "Дак бо Пост, Матухна, чакаем-з, да першай зоркі..."
load averages: 1.45, 1.46, 1.56 18:37:50 43 processes: 3 running, 38 idle, 1 zombie, 1 on processor CPU states: 38.4% user, 0.0% nice, 60.8% system, 0.2% interrupt, 0.6% idle Memory: Real: 216M/360M act/tot Free: 641M Swap: 0K/1537M used/tot PID USERNAME PRI NICE SIZE RES STATE WAIT TIME CPU COMMAND 27809 sda 63 0 10M 17M run - 162:13 68.07% emphasis 13285 sda 2 0 34M 44M sleep poll 24:01 13.13% enlightenment 22761 sda 45 0 18M 76M run - 13:51 7.23% Xorg 11287 sda 32 0 77M 110M run - 11:03 3.32% firefox-bin 10391 sda 2 0 1216K 4176K sleep poll 2:54 0.93% mpd 13510 root 2 0 492K 768K sleep select 5:24 0.00% pptp 26634 sda 2 0 936K 3784K sleep poll 1:07 0.00% mpd 24992 sda 2 0 7204K 27M sleep poll 0:34 0.00% SciTE 15922 root 2 0 1024K 1552K sleep select 0:23 0.00% ppp 6781 root 2 0 368K 932K sleep select 0:16 0.00% pptp 24611 root 2 0 892K 1868K sleep select 0:08 0.00% ppp 23415 sda 2 0 2684K 2784K sleep poll 0:06 0.00% mpd 26339 sda 2 0 2096K 5096K sleep poll 0:03 0.00% enlightenment_fm 28451 sda 2 0 480K 1556K sleep select 0:03 0.00% wget 10225 sda 2 0 1568K 4176K sleep select 0:02 0.00% xterm 9292 sda 2 0 1628K 4156K sleep select 0:01 0.00% xterm 15626 _syslogd 2 0 404K 872K sleep poll 0:00 0.00% syslogd 30207 sda 2 0 1164K 3040K sleep poll 0:00 0.00% gconfd-2 20833 sda 10 0 996K 1952K idle wait 0:00 0.00% bash 25807 root 2 0 332K 740K idle netio 0:00 0.00% syslogd 14280 sda 10 0 1060K 1892K idle wait 0:00 0.00% bash 17142 sda 28 0 752K 1628K onproc - 0:00 0.00% top 6089 root 2 0 516K 732K sleep select 0:00 0.00% pptp 13630 sda 10 0 908K 1804K idle wait 0:00 0.00% bash 1266 root 2 0 480K 828K idle select 0:00 0.00% cron 23036 _dbus 2 0 612K 1228K idle poll 0:00 0.00% dbus-daemon 23716 sda 10 0 688K 1340K idle wait 0:00 0.00% bash 24928 sda 18 0 540K 504K idle pause 0:00 0.00% sh 3816 sda 18 0 480K 476K idle pause 0:00 0.00% sh 13991 sda 18 0 504K 592K idle pause 0:00 0.00% sh 18563 sda 2 0 636K 1332K idle poll 0:00 0.00% dbus-daemon 15497 sda 2 0 556K 1136K idle poll 0:00 0.00% dbus-launch 1 root 10 0 388K 340K idle wait 0:00 0.00% init 9994 sda 10 0 456K 1124K idle wait 0:00 0.00% xinit 26534 root 2 0 360K 692K idle select 0:00 0.00% inetd 3810 root 3 0 336K 768K idle ttyin 0:00 0.00% getty 24959 root 3 0 420K 768K idle ttyin 0:00 0.00% getty 18100 root 3 0 296K 760K idle ttyin 0:00 0.00% getty 15889 root 3 0 224K 756K idle ttyin 0:00 0.00% getty 19607 sda 18 0 408K 440K idle pause 0:00 0.00% sh 26715 sda 2 0 1708K 1008K idle netio 0:00 0.00% Xorg 13956 root 2 0 568K 1156K idle select 0:00 0.00% sshd
~ pkg_info | awk -F\ '{print $1}'
ORBit2-2.14.7
aalib-1.2p2
apr-1.2.9
apr-util-1.2.8
aspell-0.50.5p4
atk-1.18.0p0
autoconf-2.59p1
autoconf-2.61p1
automake-1.9.6p2
bash-3.2.17
bison-2.1p0
boehm-gc-7.0
bzip2-1.0.4
cairo-1.4.10
cdparanoia-3.a9.8p0
cdrtools-2.01p0
chmlib-0.39
curl-7.16.2
db-4.2.52p11
dbus-1.0.2p1
dbus-glib-0.73p0
dbus-python-0.80.1
desktop-file-utils-0.12p0
docbook-4.4
docbook-dsssl-1.72
dvd+rw-tools-5.21.4.10.8p0
e16keyedit-0.2
enlightenment-0.16.7.2p2
esound-0.2.34p0v0
evince-0.8.1
faac-1.24
faad-2.0p6
fam-2.7.0p2
fetchmail-6.3.8
ffmpeg-20070501p0
findutils-4.1p0
flac-1.1.2p1
gconf2-2.18.0.1
gettext-0.14.6p0
ghostscript-8.54p1
ghostscript-fonts-8.11p0
giblib-1.2.4p3
gimp-2.2.17
glib-1.2.10p1
glib2-2.12.12p1
glitz-0.5.6
gmake-3.80p1
gmpc-0.15.1
gmpc-lyrics-0.15.0
gnome-icon-theme-2.18.0p0
gnome-keyring-0.8.1
gnome-mime-data-2.18.0
gnome-vfs2-2.18.1p0
gtk+-1.2.10p6
gtk+2-2.10.13
gtkspell-2.0.5p4
hicolor-icon-theme-0.10p0
imlib-1.9.14p5
imlib2-1.3.0p0
iodbc-3.52.4p0
iso8879-1986
jasper-1.900.1
javaPathHelper-0.3
jbigkit-1.6p1
jpeg-6bp3
ladspa-1.12p0
lame-3.96.1p2
lcms-1.15
libIDL-0.8.8
liba52-0.7.4p2
libao-0.8.8
libart-2.3.19p1
libaudiofile-0.2.6p0
libbonobo-2.18.0
libbonoboui-2.18.0
libcroco-0.6.1
libdnet-1.10p2
libdv-0.104p1
libdvdnav-20051102p2
libexif-0.6.16
libgadu-20060411
libgcrypt-1.2.0p1
libglade2-2.6.1
libgnome-2.18.0
libgnomecanvas-2.14.0p0
libgnomeprint-2.18.0
libgnomeprintui-2.18.0
libgnomeui-2.18.1p0
libgpg-error-1.1p0
libgsf-1.14.3p2
libiconv-1.9.2p3
libid3tag-0.15.1bp0
libidn-0.6.1
libltdl-1.5.22p2
libmad-0.15.1bp1
libmikmod-3.1.10p4
libmng-1.0.9p1
libmpcdec-1.2.4
libmpd-0.14.0
libmspack-20040308a
libogg-1.1.3
librsvg-2.16.1p0
libsamplerate-0.1.2p0
libshout-2.2.2p0
libslang-1.4.9p3
libsndfile-1.0.11p0
libtheora-1.0alpha7
libtool-1.5.22p13
libungif-4.1.4p1
libunicode-0.4p1
libutf-2.0
libutf8-0.8p0
libvorbis-1.2.0
libwmf-0.2.8.3p3
libwpd-0.8.9p0
libxml-2.6.29
libxslt-1.1.21
lzo-1.08p1
mc-4.6.1p1
meanwhile-1.0.2p0
metaauto-0.7
mozilla-firefox-2.0.0.6
mpc-0.12.1
mpd-0.13.0p1
mplayer-1.0pre8p14-sdl
msmtp-1.4.12p0
mutt-1.5.16p0
nasm-0.98.38p0
neon-0.26.2
nmap-4.20
nspr-4.6.7
nss-3.11.7
openoffice-2.2.1p0
p5-Text-Iconv-1.4
p7zip-4.47
p7zip-rar-4.47
pango-1.16.4
pcre-7.1
pidgin-2.0.1p0-gtkspell
png-1.2.18
poppler-0.5.4p1
popt-1.7p0
pptp-1.7.1
procmail-3.22p2
pstree-2.27
py-Numeric-23.1p1
py-cairo-1.4.0
py-gobject-2.13.1
py-gtk2-2.10.4
py-iconvcodec-1.1.2p0
python-2.4.4p4
python-expat-2.4.4p4
qdbm-1.8.75
quake-20000101p3-sdl
quake2-0.3p3
rxvt-2.7.10p2
scintilla-1.74
scite-1.74
screen-4.0.3p0
scrollkeeper-0.3.14p3
sdl-1.2.9p7-sun
shared-mime-info-0.21p0
silc-toolkit-1.0.2p1
speex-1.2beta2
sqlite3-3.4.1
startup-notification-0.9
subversion-1.4.4
t1lib-5.1.0p0
taglib-1.4p1
teTeX_base-3.0p9
teTeX_base-fmt-3.0p0
teTeX_texmf-3.0p1
texi2html-1.64
tiff-3.8.2p0
toolame-0.2lp1
unzip-5.52
vim-7.1.33-no_x11
w3m-0.5.2-image
wget-1.10.2p0
wxWidgets-gtk2-2.6.3p0
x264-20070325p1
xchm-1.13
xcompmgr-1.1.1p2
xcyrillic-2.0p0
xine-lib-1.1.7p0
xine-ui-0.99.5
xvidcore-1.0.3p0
yasm-0.6.1
zip-2.32
Жыць можна. З зыходнікаў быў пастаўлены толькі апошні gettext (0.17). Плюс дабіў бібліятэкі amr* і хутка вазьмуся за пересборку xine-lib, ffmpeg і mplayer, бо што мы маем у пакетах - у кошерных хатах нават свінням не падаюць. Прычым ffmpeg і mplayer яшчэ можна неяк карыстаць, а вось xine... Xine прыйшлося паставіць для зборкі Enlightenment-а прыхапкам. Вынікі:
~ > df -h Filesystem Size Used Avail Capacity Mounted on /dev/wd2a 9.8G 2.1G 7.3G 22% / /dev/wd2d 19.2G 10.2G 8.0G 56% /home /dev/wd2j 31.0G 28.1G 2.8G 91% /mnt/sdb3
/dev/wd2j - ёсць не што іншае, як Fat-опомойка cо сціплай аудіоколлекціей. Паглядзім на порна, што заняло 56% ад /home?
~ > find /home/sda/source -maxdepth 1 -type d -exec du -sh {} \; | sort -rn
367M /home/sda/source/e17themes
9.0G /home/sda/source
6.5G /home/sda/source/books
2.2G /home/sda/source/compile
і заадно на нашы сціплыя вынікі:
~ > du -sh /opt/e17 67.9M /opt/e17
EFL (Enlightenment Foundation Libraries):
eet edb evas ecore embryo imlib2 efreet edje epeg epsilon esmart emotion engrave ewl etk exml enhance imlib2_loaders etk_extra e_dbus
EFL 'applications':
e edje_viewer entrance exhibit estickies examine e_utils express elicit iconbar imlib2_tools emphasis expedite extrackt scrot rage
EFL 'e_modules' (апроч стандартных):
alarm bling cpu calendar deskshow efm_nav efm_path emu flame forecasts mail net news photo rain screenshot slideshow snow taskbar tclock uptime weather winselector wlan
У сувязі з нейкай спецыфікай OpenBSD архітэктуры наступныя модулі патрабуюць лёгкай рыхтоўкі:
cpu, mem, battery, net, wlan, temperature (грубіянска кажучы - усё, што маюць справу непасрэдна з жалезам)
# OpenBSD patchset case $(uname) in OpenBSD) echo "Starting OpenBSD patchset..." cd $e17_cvs_local_location if [ "`grep \#include\ \./e17/libs/imlib2/src/modules/loaders/loader_png.c`" != "" ] ; then cat ./e17/libs/imlib2/src/modules/loaders/loader_png.c | sed 's/\#include\ \ /\#include\ \<\/usr\/local\/include\/libpng\/png\.h\>/' > ./loader_png.c.patched cp ./loader_png.c.patched ./e17/libs/imlib2/src/modules/loaders/loader_png.c fi if [ "`grep _POSIX_HOST_NAME_MAX ./e17/apps/e/src/bin/e.h`" = "" ] ; then echo '#ifndef _POSIX_HOST_NAME_MAX' > ./e.h.patched echo '#define _POSIX_HOST_NAME_MAX 255' >> ./e.h.patched echo '#endif' >> ./e.h.patched cat ./e17/apps/e/src/bin/e.h >> ./e.h.patched cp ./e.h.patched ./e17/apps/e/src/bin/e.h fi if [ "`grep inttypes.h ./e17/libs/evas/src/lib/engines/common/evas_convert_main.c`" = "" ] ; then echo '#include ' > ./evas_convert_main.c.patched cat ./e17/libs/evas/src/lib/engines/common/evas_convert_main.c >> ./evas_convert_main.c.patched cp ./evas_convert_main.c.patched ./e17/libs/evas/src/lib/engines/common/evas_convert_main.c fi echo "OpenBSD patchset is DONE. Press Enter." read a1 ;; esac
Як бачны з прыведзенага вышэй - гэта ёсць не што іншае як выдаткі autotools у чыстым выглядзе. Увогуле, усё апынулася не так ужо і страшна. Як толькі rootshell.be будзе даступны (сайтык дарэчы з нядаўніх пор пераехаў на OpenBSD платформу) - выкладу скрыпт version="0.7.0.1". Каму "ў Парыж па справе тэрмінова" - мыльце, закіну.
Hint: калі досведу замала, а паспрабаваць ткі хоцца - пампуйце заадно і дыск Frenzy - ён выратуе бацькоў дэмакратыі ў крытычныя дні. Звычайна хапае boot -s на промпте :).



І малюсенькая рада на развітанне, калі дазволіце: адключыце Java і Java-Script у наладах браўзара...
Оставьте комментарий!