/*
в эпоху модемов с поддержкой V.22 (1,200 бит/с) даже думать о потоковом контенте было страшно. времена меняются и в медвежьи берлоги вламываются результаты "электрификации всей стганы" с более-менее приемлимыми тарифными планами. при этом вполне оправдано появление устройств из категории "домашние роутеры", принимающих канал доступа в internet/локалку от провайдера и раздающих ресурсы грубо говоря "на всю квартиру". зачастую эту функцию берут на себя старенькие компы уровня Pentium-Pentium III под управлением Linux/OpenBSD. при этом зачастую Провайдер даёт выход в сеть internet при помощи vpn/dsl туннеля/подключения, а мультикаст (как например услуга iptv - потокового вещания видео) "крутится" в сегменте "локальной" сети. ниже постараюсь описать принципы настройки роутера для работы в данных условиях. материал не претендует на исчерпывающее изложение и какую-либо оригинальность. здесь не будет готовых рецептов - только общие рекомендации. если Вам понравилось или есть чем дополнить - милости прошу оставить комментарий.
***********************************************
намеренно оставил за рамками роутеры на FreeBSD, так как imho (хотел бы ошибаться, но практика, Господа...) эта система не содержит механизмов, позволяющих нормально решать вопросы динамического роутинга/форварда мультикаста одновременно с NAT-ом, о чём честно предупреждает handbook:
31.2.8 Multicast Routing
FreeBSD supports both multicast applications and multicast routing natively. Multicast applications do not require any special configuration of FreeBSD; applications will generally run out of the box. Multicast routing requires that support be compiled into the kernel:
options MROUTING
In addition, the multicast routing daemon, mrouted(8) must be configured to set up tunnels and DVMRP via /etc/mrouted.conf. More details on multicast configuration may be found in the manual page for mrouted(8).
Note: As of FreeBSD 7.0 the mrouted(8) multicast routing daemon has been removed from the base system. It implements the DVMRP multicast routing protocol, which has largely been replaced by pim(4) in many multicast installations. The related map-mbone(8) and mrinfo(8) utilities have also been removed. These programs are now available in the FreeBSD Ports Collection as net/mrouted.
также стоит помнить, что сам по себе демон "mrouted" морально устарел (Ben, it's dead! RIP...) и не рекомендован к использованию при наличии альтернатив.
***********************************************
OpenBSD
тут всё очень просто и понятно. сам механизм прекрасно документирован:
OpenBSD Multicasting
"dvmrpd" работает практически без нареканий и не вызывает трудностей при конфигурировании. также доступен и "старый" mrouted, если вдруг по каким-то причинам Вас не устроит dvmrpd. что-то добавить к замечательно изложенному материалу желания не возникает.
Linux
именно тот случай, когда обилие "оболочек"/(сиречь дистрибутивов) плодит анархию. начну с кратенького обзора специальных девайсов, разработанных в качестве роутеров для домашней сети.
вне зависимости от "железа" основную роль тут играют "прошивки". они могут быть закрытыми ("фирменными", что предустановлены на заводе-изготовителе) или открытыми (как dd-wrt, прошивки Олега для ASUS-ов и т.п.). с задачей форварда/роутинга мультикаста "из коробки" на отлично справляются лишь прошивки от Олега (вне зависимости от наличия vpn соединения). по крайней мере до сего дня dd-wrt содержали баг в ядре и в исходниках igmpproxy, препятствующий нормальному функционированию. подробности.
рассмотрим пример конфигурации роутера:
eth0 - интерфейс к локальной сети Провайдера (пусть будет сеть 10.0.0.0/8), обозначим как $IF_IN
ppp0 - vpn туннель с выходом в internet, обозначим как $IF_VPN
eth1 - интерфейс к "домашней" сети (адреса в пределах 192.168.1.0/24), обозначим как $IF_OUT
для "домашних роутеров" схема конфига осложняется тем, что в качестве eth1 (интерфейса к "домашней" подсети) выступает (как правило) бридж (br0), объединяющий Ethernet и Wireless интерфейсы (ессно при наличии этого самого wifi).
теперь немного чтива для любознательных:
общее описание мультикаста (English Wiki)
1. Multicast over TCP/IP HOWTO - старый, но добрый хау-ту.
2. Multicast Routing Code in the Linux Kernel - тоже не Откровение, но даёт понятие о (как минимум) двух стоящих внимания "хомячка" переменных:
/proc/net/ip_mr_vif - список интерфейсов, вовлечённых в обмен мультикаст пакетами
/proc/net/ip_mr_cache - текущий статус MFC (Multicast Forwarding Cache - кэш мультикаст пакетов)
3. Configuring Linux For Network Multicast - начальные сведения о конфигурации Linux ядра для роутинга мультикаста.
собсно с конфигурирования ядра и начнём. в обязательном порядке нам нужны следующие опции:
CONFIG_IP_ADVANCED_ROUTER=y (или же CONFIG_IP_ROUTER=y)
CONFIG_IP_MROUTE=y
CONFIG_IP_PIMSM_V1=y
CONFIG_IP_PIMSM_V2=y
CONFIG_IP_MULTICAST=y
CONFIG_NET_IPIP=y
кроме того может возникнуть необходимость проконтролировать (cat имя_файла) и/или изменить (echo $ЗНАЧЕНИЕ > имя_файла) некоторые дополнительные параметры:
разрешаем форвард ipv4 пакетов:
$ cat /proc/sys/net/ipv4/conf/default/forwarding
1
разрешаем форвард мультикаста:
$ cat /proc/sys/net/ipv4/conf/[ $IF_IN | $IF_OUT ]/mc_forwarding
1
отключаем reverse path filtering:
$ cat /proc/sys/net/ipv4/conf/$IF_IN/rp_filter
0
для ядер 2.6.* может потребоваться принудительное указание "типа"/версии igmp пакетов (варианты значений - 0, 1 или 2, описание есть в исходниках ядра - /usr/src/linux/net/ipv4/igmp.c):
$ cat /proc/sys/net/ipv4/conf/[ $IF_IN | $IF_OUT ]/force_igmp_version
{0,1,2}
с ядром более-менее разобрались, остался вопрос к прикладному софту. потребуется:
iptables
igmpproxy
пакеты "net-tools" (route, traceroute) и "iproute2" (ip) для управления маршрутами/(роутинг)
tcpdump/wireshark для мониторинга
в роли igmpproxy может выступить pimd или проприетарный gated (эт если из пушки да по воробьям засадить...). есть ещё smcroute, но оно умеет только "статику" (не наш метод). ещё на просторах сети где-то бродят сборки "родного" древнего многострадального mrouted-а с патчами для Linux. не будем ворошить труп. RIP.
для начала на роутере очищаем все цепочки iptables (flush) и рисуем что-то типа:
-A INPUT -d 224.0.0.0/240.0.0.0 -p 2 -j ACCEPT # некоторые опускают ключ -d 224.0.0.0/240.0.0.0 и разрешают весь входящий igmp трафик
-A INPUT -d 224.0.0.0/240.0.0.0 -p udp -m udp ! --dport 1900 -j ACCEPT
-A FORWARD -d 224.0.0.0/240.0.0.0 -p udp -j ACCEPT
также можно включить некоторую страховку от сволочной и шкурной натуры Провайдера, принудительно увеличив TTL мультикаст-потока на одну единичку при прохождении нашего роутера (а то особо умные принудительно на мультикаст ставят TTL == 1, чтобы потешить ЧСВ, не иначе):
-t mangle -A PREROUTING -d 224.0.0.0/240.0.0.0 -p udp -j TTL --ttl-inc 1
после чего делаем тупой конфигурационный файл (читаем man!) для igmpproxy (вместо значений переменных $IF_IN/$IF_OUT подставить имена соответствующих интерфейсов ессно):
$ cat /etc/igmpproxy.conf
# good things to begin with :)
quickleave
phyint $IF_IN upstream
altnet 0.0.0.0/0
phyint $IF_OUT downstream
и запускаем демона (от рута):
# igmpproxy -c /etc/igmpproxy.conf
для того, чтобы тело взлетело осталось лишь правильно настроить роутинг/(маршрутизацию). здесь надо помнить, что источники выдачи сигнала могут присутствовать помимо указанных в плейлисте того же iptv. т.е. кроме собсно мультикаста (net 224.0.0.0/240.0.0.0 ) источник может иметь "левые" ip-ы типа 88.210.40.0/24, 77.94.170.0/24 и т.п.. это легко отслеживается tcpdump-ом/wireshark-ом если непосредственно на роутере стартануть VLC или MPlayer, собранный с поддержкой live555 и получить "картинку" видео. роутинг к этим "левым" адресам должен идти через $IF_IN, не затрагивая $IF_VPN! объясняться подобный "казус" может довольно просто. Провайдер зачастую делает пиринг с теми, кто держит нехилые "фермы", раздающие сам трафик, что и приводит к появлению в локальной сети (Провайдера) подобных "левых" адресов. или же "фермам" присваивают адреса "от фонаря". другими словами адрес, что прописан в плейлисте - это адрес для JOIN/LEAVE ("подписки" и "выписки" из мультикаст-группы), а сам источник udp потока может приползти откуда угодно.
напоследок могу лишь посоветовать посматривать на статистику $IF_IN при пользовании igmpproxy. известно, что [далеко] не всегда "отписка" проходит корректно и это вполне может забить канал рано или поздно (при активной смене каналов вы быстро заметите если что-то пойдёт не так...).
удачи.
*/
Показаны сообщения с ярлыком OpenBSD. Показать все сообщения
Показаны сообщения с ярлыком OpenBSD. Показать все сообщения
среда, 10 февраля 2010 г.
четверг, 12 ноября 2009 г.
не было печали...
/*
- Вовочка, выйди из класса и зайди, как это делает твой папа!
- ... ща.
пинком выносит дверь с коробкой, рвёт пуговицы на рубашке и орёт в охуевший и притихший класс:
- Шо, с-суки, не ждали?!
история не нова. в очередной раз "тихо и незаметно" на весь OBS спустили новые проверочные пресеты из Factory. "... как это мило...". вроде бы радоваться надо, но... смотрим:
кривые зависимости в пакете
проблемы с автоконфигурацией устройств (заметим мимоходом, что alsaconf теперь "магёт" только ISA карточки и легко ломает нормальную рабочую настройку)
Top 100 - наши, мля, чемпионы...
на этом весёленьком, в цветочек, фоне новые проверки иначе как издевательскими не назовёшь. о начале этой вечеринки можно пофтыкать в одной из моих старых заметок. новый "хит сезона":
+ /usr/lib/rpm/suse_update_desktop_file.sh -r elementary_test Utility Accessibility
ERROR: //tmp/elementary-svn_20091112_r43627-build/usr/share/applications/elementary_test.desktop is not an UTF-8 file
+ exit 1
error: Bad exit status from /var/tmp/rpm-tmp.26363 (%install)
5 баллов. т.е.:
1) мы имеем АБСОЛЮТНО КОШЕРНЫЙ "elementary_test.desktop" файл
2) скармливаем его макросу "%suse_update_desktop_file ", чтобы эта тварь добавила строку "X-SuSE-translate=true" (исключительно специфика SuSE)
3) мы выучили все freedesktop-овы спеки на desktop файло для меню и всё делаем без косяков и по фэн-шую!
4) мы всё равно идём нахуй, ибо файл не UTF-8! (патамучта, бля, все символы "внутри" этого файла в пределах ASCII таблицы и ессно, что он и определяется как ASCII text! yeah baby, yeah!)
если кто-то решит ещё и "*.spec" файлы на UTF проверять - буду старательно рисовать матерные камменты. понятно, что по сути это мелочи, что было/есть благое намерение как-то поправить дела с локализацией и т.п. и т.д.. но на фоне существующих багов в ПО подобные "тонкости и политесы" явно не к месту (да и не ко времени).
возврат в Linux восле OpenBSD проходит тяжело. куда ни глянь - всюду бардак и нихера толком не работает как положено. примеры:
1) в OpenBSD-current моя wi-fi карточка (RT2500 802.11g - RaLink) - на wpa2 выдала "честные" 802.11g и держала канал как трактор накатанную колею - на полную. Linux - сперва прыгаешь с патчами, чтобы monitor mode нормально заработал (aircrack2), потом...
2) звук: в OpenBSD-current всё из коробки согласно списку поддерживаемого оборудования. Linux - ... (отсоси, потом проси...)
3) экспансия xml-конфигов в Linux без удобных средств для их редактирования (достаточно один раз поработать в Mac OS X чтобы понять, как это "для людей" делать надо)
4) Linux: бардак с hal/devkit/polkit/etc... - песнь. есть спеки - но хер поймёшь, что из этих спеков ноне работает. пример: требуется при помощи hal монтировать все "ufs" партиции с опцией "ufstype=44bsd". раньше было просто. добавляем в policy:
<merge key="storage.policy.default.mount_option.ufstype=44bsd" type="bool">true</merge>
<append key="volume.policy.mount_option.ufstype=44bsd" type="bool">true</append>
и мы в шоколаде. все строго по спекам. но нет, именно эти опции надо похерить и отдать на откуп DE (Desktop Environment), а то, что многие предпочитают не использовать DE и обходиться простыми WM-ами (Window Manager) - никого не парит.
и т.д. и т.п.. в результате получается, что c удовольствием рисуешь вот такие странички wiki, и смотришь на Linux чуток... по-другому. enterprise-то конечно из OpenBSD никакой, но...
скоро в моих репо будет всем обновление Enlightenment-DR17-svn (очень удачный и стабильный снэпшот получился) - пользуйте.
на этой мажорной ноте позвольте поздравить всех с релизом openSuSE-11.2 и откланяться.
удачи.
*/
- Вовочка, выйди из класса и зайди, как это делает твой папа!
- ... ща.
пинком выносит дверь с коробкой, рвёт пуговицы на рубашке и орёт в охуевший и притихший класс:
- Шо, с-суки, не ждали?!
история не нова. в очередной раз "тихо и незаметно" на весь OBS спустили новые проверочные пресеты из Factory. "... как это мило...". вроде бы радоваться надо, но... смотрим:
кривые зависимости в пакете
проблемы с автоконфигурацией устройств (заметим мимоходом, что alsaconf теперь "магёт" только ISA карточки и легко ломает нормальную рабочую настройку)
Top 100 - наши, мля, чемпионы...
на этом весёленьком, в цветочек, фоне новые проверки иначе как издевательскими не назовёшь. о начале этой вечеринки можно пофтыкать в одной из моих старых заметок. новый "хит сезона":
+ /usr/lib/rpm/suse_update_desktop_file.sh -r elementary_test Utility Accessibility
ERROR: //tmp/elementary-svn_20091112_r43627-build/usr/share/applications/elementary_test.desktop is not an UTF-8 file
+ exit 1
error: Bad exit status from /var/tmp/rpm-tmp.26363 (%install)
5 баллов. т.е.:
1) мы имеем АБСОЛЮТНО КОШЕРНЫЙ "elementary_test.desktop" файл
2) скармливаем его макросу "%suse_update_desktop_file ", чтобы эта тварь добавила строку "X-SuSE-translate=true" (исключительно специфика SuSE)
3) мы выучили все freedesktop-овы спеки на desktop файло для меню и всё делаем без косяков и по фэн-шую!
4) мы всё равно идём нахуй, ибо файл не UTF-8! (патамучта, бля, все символы "внутри" этого файла в пределах ASCII таблицы и ессно, что он и определяется как ASCII text! yeah baby, yeah!)
если кто-то решит ещё и "*.spec" файлы на UTF проверять - буду старательно рисовать матерные камменты. понятно, что по сути это мелочи, что было/есть благое намерение как-то поправить дела с локализацией и т.п. и т.д.. но на фоне существующих багов в ПО подобные "тонкости и политесы" явно не к месту (да и не ко времени).
возврат в Linux восле OpenBSD проходит тяжело. куда ни глянь - всюду бардак и нихера толком не работает как положено. примеры:
1) в OpenBSD-current моя wi-fi карточка (RT2500 802.11g - RaLink) - на wpa2 выдала "честные" 802.11g и держала канал как трактор накатанную колею - на полную. Linux - сперва прыгаешь с патчами, чтобы monitor mode нормально заработал (aircrack2), потом...
2) звук: в OpenBSD-current всё из коробки согласно списку поддерживаемого оборудования. Linux - ... (отсоси, потом проси...)
3) экспансия xml-конфигов в Linux без удобных средств для их редактирования (достаточно один раз поработать в Mac OS X чтобы понять, как это "для людей" делать надо)
4) Linux: бардак с hal/devkit/polkit/etc... - песнь. есть спеки - но хер поймёшь, что из этих спеков ноне работает. пример: требуется при помощи hal монтировать все "ufs" партиции с опцией "ufstype=44bsd". раньше было просто. добавляем в policy:
<merge key="storage.policy.default.mount_option.ufstype=44bsd" type="bool">true</merge>
<append key="volume.policy.mount_option.ufstype=44bsd" type="bool">true</append>
и мы в шоколаде. все строго по спекам. но нет, именно эти опции надо похерить и отдать на откуп DE (Desktop Environment), а то, что многие предпочитают не использовать DE и обходиться простыми WM-ами (Window Manager) - никого не парит.
и т.д. и т.п.. в результате получается, что c удовольствием рисуешь вот такие странички wiki, и смотришь на Linux чуток... по-другому. enterprise-то конечно из OpenBSD никакой, но...
скоро в моих репо будет всем обновление Enlightenment-DR17-svn (очень удачный и стабильный снэпшот получился) - пользуйте.
на этой мажорной ноте позвольте поздравить всех с релизом openSuSE-11.2 и откланяться.
удачи.
*/
воскресенье, 1 ноября 2009 г.
vsftpd - создание файлопомойки
/*
... есть такое слово - samba...
цели:
* выкинуть "самбу"
* анонимусов в chroot и дать им все возможности для самореализации
* локальных/виртуальных лузеров тоже в chroot по домашним каталогам
* всё файло, что зальют аноны, должно иметь mode 0666
* все новые каталоги - mode 0777 (чтобы не парить мозг с правами/чисткой и одминить удалённо тем же ftp-клиентом)
* админов сервиса - в chroot не ставить (или ставить - на выбор, лучше конечно в chroot)
платформа - OpenBSD (ибо тут есть где развернуться), но должно работать везде. подробности о том, как установить и запустить vsftpd опустим. всем пользователям прочих фтп (особенно proftpd) пожелаем удачных обновлений и не скучать :). поехали...
* создаём chroot для анонимусов:
(Прим.: лучше загнать в ~/tmp/vsftpd/anon, а одминов сервиса - в ~/tmp/vsftpd)
> mkdir -p ~/tmp/vsftpd
> chmod 555 ~/tmp/vsftpd
> sudo echo 'anon_root=!ПОЛНЫЙ_ПУТЬ!/tmp/vsftpd' > /etc/vsftpd.conf
> mkdir -p ~/tmp/vsftpd/pub
> chmod 555 ~/tmp/vsftpd/pub
> mkdir -p ~/tmp/vsftpd/upload
> chmod 777 ~/tmp/vsftpd/upload
* добиваем /etc/vsftpd.conf
# Allow anonymous FTP? (Beware - allowed by default if you comment this out).
#anonymous_enable=NO
anonymous_enable=YES
#
# Uncomment this to allow local users to log in.
local_enable=YES
#
# Uncomment this to enable any form of FTP write command.
write_enable=YES
#
# Default umask for local users is 077. You may wish to change this to 022,
# if your users expect that (022 is used by most other ftpd's)
local_umask=000
anon_umask=000
chown_upload_mode=0666
file_open_mode=0666
#
# Uncomment this to allow the anonymous FTP user to upload files. This only
# has an effect if the above global write enable is activated. Also, you will
# obviously need to create a directory writable by the FTP user.
anon_upload_enable=YES
#
# Uncomment this if you want the anonymous FTP user to be able to create
# new directories.
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
# Activate directory messages - messages given to remote users when they
# go into a certain directory.
dirmessage_enable=YES
#
# Activate logging of uploads/downloads.
xferlog_enable=YES
dual_log_enable=YES
#
# Make sure PORT transfer connections originate from port 20 (ftp-data).
connect_from_port_20=YES
# You may override where the log file goes if you like. The default is shown
# below.
xferlog_file=/var/log/xferlog.log
vsftpd_log_file=/var/log/vsftpd.log
#
# If you want, you can have your log file in standard ftpd xferlog format.
# Note that the default log file location is /var/log/xferlog in this case.
xferlog_std_format=YES
# It is recommended that you define on your system a unique user which the
# ftp server can use as a totally isolated and unprivileged user.
nopriv_user=_vsftpd
ftp_username=anonftp
# You may specify a file of disallowed anonymous e-mail addresses. Apparently
# useful for combatting certain DoS attacks.
deny_email_enable=YES
# (default follows)
banned_email_file=/etc/vsftpd.banned_emails
#
# You may specify an explicit list of local users to chroot() to their home
# directory. If chroot_local_user is YES, then this list becomes a list of
# users to NOT chroot().
chroot_local_user=YES
chroot_list_enable=YES
# (default follows)
chroot_list_file=/etc/ftpchroot
#
# You may activate the "-R" option to the builtin ls. This is disabled by
# default to avoid remote users being able to cause excessive I/O on large
# sites. However, some broken FTP clients such as "ncftp" and "mirror" assume
# the presence of the "-R" option, so there is a strong case for enabling it.
ls_recurse_enable=YES
#
#
# If enabled, vsftpd will load a list of usernames from the filename
# given by userlist_file. If a user tries to log in using a name in this
# file, they will be denied before they are asked for a password.
# This may be useful in preventing clear text passwords being transmitted.
userlist_enable=YES
#
# This option is the name of the file loaded when the userlist_enable
# option is active.
userlist_file=/etc/ftpusers
#
# This option should be the name of a directory which is empty. Also,
# the directory should not be writable by the ftp user. This directory
# is used as a secure chroot() jail at times vsftpd does not require
# filesystem access.
secure_chroot_dir=/var/empty
#
# The minimum port to allocate for PASV style data connections.
# Can be used to specify a narrow port range to assist firewalling.
pasv_min_port=49152
#
# The maximum port to allocate for PASV style data connections.
# Can be used to specify a narrow port range to assist firewalling.
pasv_max_port=65535
#
# By default, numeric IDs are shown in the user and group fields of
# directory listings. You can get textual names by enabling this parameter.
# It is off by default for performance reasons.
text_userdb_names=YES
# When "listen" directive is enabled, vsftpd runs in standalone mode and
# listens on IPv4 sockets. This directive cannot be used in conjunction
# with the listen_ipv6 directive.
listen=YES
imho для новичков есть несколько моментов, заслуживающих внимания:
> sudo touch /etc/vsftpd.banned_emails
(иначе "не пойдёт!")
> sudo useradd -d !ПОЛНЫЙ_ПУТЬ!/tmp/vsftpd -s /sbin/nologin anonftp
(иначе в OpenBSD сервис не стартанёт, ибо ftp_username по-умолчанию не объявлен)
> sudo echo 'ИМЯ_ОДМИНА_СЕРВИСА' >> /etc/ftpchroot
(а все остальные гаврики встанут в chroot в своих домашних каталогах)
в "/etc/ftpusers" у нас список тех, кому доступ на ftp заказан. также у нас УЖЕ есть пользователь "_vsftpd" с шеллом "/sbin/nologin" и несуществующим домашним каталогом (требуется по nopriv_user параметру). ACHTUNG! при подобном раскладе все симлинки, "вылетающие" за chroot, идут лесом (и это правильно. в Linux используем конструкцию "mount --bind -o ro" для наполнения "~/tmp/vsftpd/pub", в OpenBSD аналога "mount --bind" нет,сосём заполняем вручную). в "~/tmp/vsftpd/pub" закидываем контент и пишем "~/tmp/vsftpd/README!" файл с общим набором правил пользования сервисом.
всё, база готова. но решение несколько не кошерно. можно (и нужно) одминов сервиса также загнать в chroot, дав им хомяка в ~/tmp, а лучше - скинув анона в ~/tmp/vsftpd/anon (и хомяк одминам в ~/tmp/vsftpd) - тогда все будут счастливо возиться в песочнице и ваш сон никто не потревожит.
на что можно обратить внимание:
anon_max_rate
The maximum data transfer rate permitted, in bytes
per second, for anonymous clients.
Default: 0 (unlimited)
local_max_rate
The maximum data transfer rate permitted, in bytes
per second, for local authenticated users.
Default: 0 (unlimited)
max_per_ip
If vsftpd is in standalone mode, this is the maxi-
mum number of clients which may be connected from
the same source internet address. A client will get
an error message if they go over this limit.
Default: 0 (unlimited)
очень нравятся настройки ниже - можно спокойно и DSA вломить:
ssl_enable=YES
# Should include both certificate and key
rsa_cert_file=/your/cert/file
force_local_logins_ssl=YES
force_local_data_ssl=YES
force_anon_data_ssl=YES
force_anon_logins_ssl=YES
ssl_ciphers=DES-CBC3-SHA
также для хостеров порно полезен параметр (файлы доступны только если знать их имя, просмотр директории их не отобразит):
hide_file={*.mp3,.hidden,hide*,*.avi}
управление дисковыми квотами оставляем за OCью (эт элементарно).
собсно наше упражнение сукесфули комплитед, все новые каталоги получают mode 777 (непринуждённо удаляются одминами сервиса), новое файло, залитое анонами, mode 666, "самба" RIP.
удачи.
*/
... есть такое слово - samba...
цели:
* выкинуть "самбу"
* анонимусов в chroot и дать им все возможности для самореализации
* локальных/виртуальных лузеров тоже в chroot по домашним каталогам
* всё файло, что зальют аноны, должно иметь mode 0666
* все новые каталоги - mode 0777 (чтобы не парить мозг с правами/чисткой и одминить удалённо тем же ftp-клиентом)
* админов сервиса - в chroot не ставить (или ставить - на выбор, лучше конечно в chroot)
платформа - OpenBSD (ибо тут есть где развернуться), но должно работать везде. подробности о том, как установить и запустить vsftpd опустим. всем пользователям прочих фтп (особенно proftpd) пожелаем удачных обновлений и не скучать :). поехали...
* создаём chroot для анонимусов:
(Прим.: лучше загнать в ~/tmp/vsftpd/anon, а одминов сервиса - в ~/tmp/vsftpd)
> mkdir -p ~/tmp/vsftpd
> chmod 555 ~/tmp/vsftpd
> sudo echo 'anon_root=!ПОЛНЫЙ_ПУТЬ!/tmp/vsftpd' > /etc/vsftpd.conf
> mkdir -p ~/tmp/vsftpd/pub
> chmod 555 ~/tmp/vsftpd/pub
> mkdir -p ~/tmp/vsftpd/upload
> chmod 777 ~/tmp/vsftpd/upload
* добиваем /etc/vsftpd.conf
# Allow anonymous FTP? (Beware - allowed by default if you comment this out).
#anonymous_enable=NO
anonymous_enable=YES
#
# Uncomment this to allow local users to log in.
local_enable=YES
#
# Uncomment this to enable any form of FTP write command.
write_enable=YES
#
# Default umask for local users is 077. You may wish to change this to 022,
# if your users expect that (022 is used by most other ftpd's)
local_umask=000
anon_umask=000
chown_upload_mode=0666
file_open_mode=0666
#
# Uncomment this to allow the anonymous FTP user to upload files. This only
# has an effect if the above global write enable is activated. Also, you will
# obviously need to create a directory writable by the FTP user.
anon_upload_enable=YES
#
# Uncomment this if you want the anonymous FTP user to be able to create
# new directories.
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
# Activate directory messages - messages given to remote users when they
# go into a certain directory.
dirmessage_enable=YES
#
# Activate logging of uploads/downloads.
xferlog_enable=YES
dual_log_enable=YES
#
# Make sure PORT transfer connections originate from port 20 (ftp-data).
connect_from_port_20=YES
# You may override where the log file goes if you like. The default is shown
# below.
xferlog_file=/var/log/xferlog.log
vsftpd_log_file=/var/log/vsftpd.log
#
# If you want, you can have your log file in standard ftpd xferlog format.
# Note that the default log file location is /var/log/xferlog in this case.
xferlog_std_format=YES
# It is recommended that you define on your system a unique user which the
# ftp server can use as a totally isolated and unprivileged user.
nopriv_user=_vsftpd
ftp_username=anonftp
# You may specify a file of disallowed anonymous e-mail addresses. Apparently
# useful for combatting certain DoS attacks.
deny_email_enable=YES
# (default follows)
banned_email_file=/etc/vsftpd.banned_emails
#
# You may specify an explicit list of local users to chroot() to their home
# directory. If chroot_local_user is YES, then this list becomes a list of
# users to NOT chroot().
chroot_local_user=YES
chroot_list_enable=YES
# (default follows)
chroot_list_file=/etc/ftpchroot
#
# You may activate the "-R" option to the builtin ls. This is disabled by
# default to avoid remote users being able to cause excessive I/O on large
# sites. However, some broken FTP clients such as "ncftp" and "mirror" assume
# the presence of the "-R" option, so there is a strong case for enabling it.
ls_recurse_enable=YES
#
#
# If enabled, vsftpd will load a list of usernames from the filename
# given by userlist_file. If a user tries to log in using a name in this
# file, they will be denied before they are asked for a password.
# This may be useful in preventing clear text passwords being transmitted.
userlist_enable=YES
#
# This option is the name of the file loaded when the userlist_enable
# option is active.
userlist_file=/etc/ftpusers
#
# This option should be the name of a directory which is empty. Also,
# the directory should not be writable by the ftp user. This directory
# is used as a secure chroot() jail at times vsftpd does not require
# filesystem access.
secure_chroot_dir=/var/empty
#
# The minimum port to allocate for PASV style data connections.
# Can be used to specify a narrow port range to assist firewalling.
pasv_min_port=49152
#
# The maximum port to allocate for PASV style data connections.
# Can be used to specify a narrow port range to assist firewalling.
pasv_max_port=65535
#
# By default, numeric IDs are shown in the user and group fields of
# directory listings. You can get textual names by enabling this parameter.
# It is off by default for performance reasons.
text_userdb_names=YES
# When "listen" directive is enabled, vsftpd runs in standalone mode and
# listens on IPv4 sockets. This directive cannot be used in conjunction
# with the listen_ipv6 directive.
listen=YES
imho для новичков есть несколько моментов, заслуживающих внимания:
> sudo touch /etc/vsftpd.banned_emails
(иначе "не пойдёт!")
> sudo useradd -d !ПОЛНЫЙ_ПУТЬ!/tmp/vsftpd -s /sbin/nologin anonftp
(иначе в OpenBSD сервис не стартанёт, ибо ftp_username по-умолчанию не объявлен)
> sudo echo 'ИМЯ_ОДМИНА_СЕРВИСА' >> /etc/ftpchroot
(а все остальные гаврики встанут в chroot в своих домашних каталогах)
в "/etc/ftpusers" у нас список тех, кому доступ на ftp заказан. также у нас УЖЕ есть пользователь "_vsftpd" с шеллом "/sbin/nologin" и несуществующим домашним каталогом (требуется по nopriv_user параметру). ACHTUNG! при подобном раскладе все симлинки, "вылетающие" за chroot, идут лесом (и это правильно. в Linux используем конструкцию "mount --bind -o ro" для наполнения "~/tmp/vsftpd/pub", в OpenBSD аналога "mount --bind" нет,
всё, база готова. но решение несколько не кошерно. можно (и нужно) одминов сервиса также загнать в chroot, дав им хомяка в ~/tmp, а лучше - скинув анона в ~/tmp/vsftpd/anon (и хомяк одминам в ~/tmp/vsftpd) - тогда все будут счастливо возиться в песочнице и ваш сон никто не потревожит.
на что можно обратить внимание:
anon_max_rate
The maximum data transfer rate permitted, in bytes
per second, for anonymous clients.
Default: 0 (unlimited)
local_max_rate
The maximum data transfer rate permitted, in bytes
per second, for local authenticated users.
Default: 0 (unlimited)
max_per_ip
If vsftpd is in standalone mode, this is the maxi-
mum number of clients which may be connected from
the same source internet address. A client will get
an error message if they go over this limit.
Default: 0 (unlimited)
очень нравятся настройки ниже - можно спокойно и DSA вломить:
ssl_enable=YES
# Should include both certificate and key
rsa_cert_file=/your/cert/file
force_local_logins_ssl=YES
force_local_data_ssl=YES
force_anon_data_ssl=YES
force_anon_logins_ssl=YES
ssl_ciphers=DES-CBC3-SHA
также для хостеров порно полезен параметр (файлы доступны только если знать их имя, просмотр директории их не отобразит):
hide_file={*.mp3,.hidden,hide*,*.avi}
управление дисковыми квотами оставляем за OCью (эт элементарно).
собсно наше упражнение сукесфули комплитед, все новые каталоги получают mode 777 (непринуждённо удаляются одминами сервиса), новое файло, залитое анонами, mode 666, "самба" RIP.
удачи.
*/
суббота, 31 октября 2009 г.
OpenBSD - штрихи к портрету (misc.)
/*
Страна замечательная, томики законов сразу рассылают в публичные дома, чтобы любой желающий мог повертеть на ..ю за символическую сумму.
/ЛОР/
сильнее всего мешает отсутствие поддержки multibyte encoding (utf8), что уже реализовано в NetBSD и FreeBSD. ждём-с, а пока каждый "строит коммунизм в отдельно взятой стране". ничего сложного. рассмотрим на примере терминала Eterm:
1) ставим "vim" и "w3m" (это наши будущие редактор и просмотрщик файлов/каталогов по умолчанию)
2) собсно обозначаем наши благие намерения:
> echo 'export PAGER=/usr/local/bin/w3m' >> ~/.profile
> echo 'export EDITOR=/usr/local/bin/vim' >> ~/.profile
w3m нам нужен хотя бы для просмотра (в Eterm) примонтированных партиций, поскольку команда ":edit ++enc=utf-8" в vim-е прекрасно работает с файлами, но сбоит на каталогах. EFM (Enlightenment File Manager) справляется с отображением UTF-8 на ура (особенно если evas собран с fribidi). после определения переменной PAGER это значение используется и для просмотра man-ов, что гораздо удобнее, чем дефолт ("more").
3) отучаем "mc" использовать "mcview" (рихтуем "~/.mc/ini"):
use_internal_View=0
тут же можно избавиться и от "mcedit", заменив его на $EDITOR
use_internal_edit=0
4) читаем "каноны":
http://www.openbsd.ru/docs/howto-cyrillic.html
5) делаем alias для запуска Eterm в нужной нам конфигурации:
alias eterm="Eterm -F -*-fixed-medium-r-normal-*-15-*-*-*-*-*-koi8-r"
после чего вызываем терминал по только что указанному "паттерну":
> eterm
6) опционально читаем "man w3m" и учимся эффективно использовать этот замечательный консольный браузер.
к этому моменту имеем полностью русифицированную рабочую систему, осталось лишь навести лоск в соответствии с личными предпочтениями (используем Enlightenment-DR17). рихтуем "/etc/enlightenment/sysactions.conf":
action: halt /sbin/halt -p
action: reboot /sbin/reboot
action: suspend /usr/sbin/zzz
action: hibernate /usr/sbin/zzz
user: $USER allow: *
с suspend и hibernate поосторожнее, может и не заработать. ставим из пакетов всё, что относится к "xdg*" и добавляем в "~/.profile" требуемые переменные:
export XDG_CACHE_HOME=$HOME/.cache
export XDG_CONFIG_DIRS=/etc/xdg
export XDG_CONFIG_HOME=$HOME/.config
export XDG_DATA_DIRS=/usr/share:/usr/local/share:/usr/X11R6/share
export XDG_DATA_HOME=$HOME/.local/share
после чего не мудрствуя лукаво копируем из openSuSE весь каталог "/etc/xdg/menu" (кто самый смелый - может рисовать xml-ные "менюшки" руками, автор - слабак, не осилил...). теперь мы имеем нормальное XDG/FDO Applications-menu. мелочь - а приятно.
последний штрих - не стоит менять настройки окружения root-а. как показывает практика успешная миграция на OpenBSD-current (это когда тащим cvs-ом исходники и компиляем всё сами) возможна только при буквальном соблюдении "канонов". т.е. если вы не имеете желания разбираться, какого буя сборка падает при "gcc version 4.2.4", но всё путём для "gcc version 3.3.5 (propolice)" - то не трогайте рутовое окружение (а падает оно патамучта gcc4 из пакетов имеет Thread model: posix и "_atomic_lock.c" из "libpthread" да и прочие аналогичные вещи ещё никто не рихтовал. у gcc3 Thread model: single).
всем - удачи!
*/
Страна замечательная, томики законов сразу рассылают в публичные дома, чтобы любой желающий мог повертеть на ..ю за символическую сумму.
/ЛОР/
сильнее всего мешает отсутствие поддержки multibyte encoding (utf8), что уже реализовано в NetBSD и FreeBSD. ждём-с, а пока каждый "строит коммунизм в отдельно взятой стране". ничего сложного. рассмотрим на примере терминала Eterm:
1) ставим "vim" и "w3m" (это наши будущие редактор и просмотрщик файлов/каталогов по умолчанию)
2) собсно обозначаем наши благие намерения:
> echo 'export PAGER=/usr/local/bin/w3m' >> ~/.profile
> echo 'export EDITOR=/usr/local/bin/vim' >> ~/.profile
w3m нам нужен хотя бы для просмотра (в Eterm) примонтированных партиций, поскольку команда ":edit ++enc=utf-8" в vim-е прекрасно работает с файлами, но сбоит на каталогах. EFM (Enlightenment File Manager) справляется с отображением UTF-8 на ура (особенно если evas собран с fribidi). после определения переменной PAGER это значение используется и для просмотра man-ов, что гораздо удобнее, чем дефолт ("more").
3) отучаем "mc" использовать "mcview" (рихтуем "~/.mc/ini"):
use_internal_View=0
тут же можно избавиться и от "mcedit", заменив его на $EDITOR
use_internal_edit=0
4) читаем "каноны":
http://www.openbsd.ru/docs/howto-cyrillic.html
5) делаем alias для запуска Eterm в нужной нам конфигурации:
alias eterm="Eterm -F -*-fixed-medium-r-normal-*-15-*-*-*-*-*-koi8-r"
после чего вызываем терминал по только что указанному "паттерну":
> eterm
6) опционально читаем "man w3m" и учимся эффективно использовать этот замечательный консольный браузер.
к этому моменту имеем полностью русифицированную рабочую систему, осталось лишь навести лоск в соответствии с личными предпочтениями (используем Enlightenment-DR17). рихтуем "/etc/enlightenment/sysactions.conf":
action: halt /sbin/halt -p
action: reboot /sbin/reboot
action: suspend /usr/sbin/zzz
action: hibernate /usr/sbin/zzz
user: $USER allow: *
с suspend и hibernate поосторожнее, может и не заработать. ставим из пакетов всё, что относится к "xdg*" и добавляем в "~/.profile" требуемые переменные:
export XDG_CACHE_HOME=$HOME/.cache
export XDG_CONFIG_DIRS=/etc/xdg
export XDG_CONFIG_HOME=$HOME/.config
export XDG_DATA_DIRS=/usr/share:/usr/local/share:/usr/X11R6/share
export XDG_DATA_HOME=$HOME/.local/share
после чего не мудрствуя лукаво копируем из openSuSE весь каталог "/etc/xdg/menu" (кто самый смелый - может рисовать xml-ные "менюшки" руками, автор - слабак, не осилил...). теперь мы имеем нормальное XDG/FDO Applications-menu. мелочь - а приятно.
последний штрих - не стоит менять настройки окружения root-а. как показывает практика успешная миграция на OpenBSD-current (это когда тащим cvs-ом исходники и компиляем всё сами) возможна только при буквальном соблюдении "канонов". т.е. если вы не имеете желания разбираться, какого буя сборка падает при "gcc version 4.2.4", но всё путём для "gcc version 3.3.5 (propolice)" - то не трогайте рутовое окружение (а падает оно патамучта gcc4 из пакетов имеет Thread model: posix и "_atomic_lock.c" из "libpthread" да и прочие аналогичные вещи ещё никто не рихтовал. у gcc3 Thread model: single).
всем - удачи!
*/
среда, 28 октября 2009 г.
OpenBSD-4.6 - продолжение праздничного банкета
/*
- стоимость дебоша уже включена в счёт, сэр!
надеюсь, что скоро будет обновление EFL для OpenBSD в портах и пакетах. пока планируется "прыгнуть" на версию "0.16.999.061", веду переписку для "прыжка" на текущий svn или, как минимум, версию "0.16.999.062" с поддержкой "lua" для "edje". иначе смысл теряется за морем лишних слов.
с версии 4.2 никаких кардинальных улучшений с "iocharset" или файловыми системами не произошло, посему воткнуть флешку с русскими именами файлов безболезненно получится только если:
1) кодировка на флешке koi8-r или 8859-5
2) вы свершили подвиг, справшись с "русификацией" OpenBSD (консольку - отдельно, иксы - отдельно и для многих приложений тоже нужен "индивидуальный подход" - весьма полезное упражнение для многих современных пользователей Linux-а...)
посему если ваши Linux партиции отформатированы в ext2/ext3 - их можно прочесть, на ext2 можно даже что-то записать. без отключения журнала можно писать и на ext3 (вы любите играть в русскую рулетку по утрам для поднятия тонуса). одним словом - благодать! только вот с ntfs неувязочка... для монтирования надо проверить в диспетчере дисков Windows, чтобы на партиции не стояла галочка "Dynamic" (а она там практически стоит всегда), иначе лучше сразу купить альбом Сосо Павлиашвили.
не менее элегантно раздаются права на примонтированные файловые системы (что-то в этом есть и здравое). идёт наследование прав точки монтирования на всю партицию. т.е. если в "/mnt/ПАПКА" был открыт доступ на запись какому-то юзверю, то после монтирования фс в "/mnt/ПАПКА" эти права будут унаследованы всей партицией. дёшево и сердито.
нещадно туплю с pgp ключами для подписи своих писем. красивого решения пока не нашёл. дано:
* мой любимый ключ шифрования для Linux gpg с Elgamal алгоритмом
* mutt
* pgp5 в поставке OpenBSD (да-да-да! есть ещё pgp2 для совсем Ъ ребят, но оно умеет только RSA), что умеет только DSS, а об Elgamal ни сном ни духом
надо:
* импортировать в pgp5 ключ из gpg и заставить его воспринимать "как родного"
* вздрючить mutt на предмет подписи/шифрования сообщений требуемым ключом
и понеслось... экспортировал ключ из gpg (asc), пихаю его в pgp - облом, Validity - invalid, Trust - complete, а надо Validity - complete, Trust - ultimate. тупо копирую pubring и secring из gpg в pgp - pgp сыпется в корку, потом каким-то макаром заставляю родить:
Do you want to unset this key as axiomatic [y/N]? y
Keyrings updated.
ASSERTION FAILED at pgpRngRead.c line 3284:
(0) not true
ASSERTION FAILED at pgpRngRead.c line 3284:
(0) not true
и писец (Сосо Павлиашвили берёт очередной аккорд). ладно, сгенерил новую пару, забросил на сервер (pgp.mit.edu), а "mutt" загибает меня в позу и требует ласки и внимания... тут уж "сам дурак", ибо mutt умный и в своей поставке имеет шаблоны для "отношений" практически со всем, что шевелится. пример:
$ pkg_info -L mutt | grep pgp
/usr/local/bin/pgpewrap
/usr/local/bin/pgpring
/usr/local/share/examples/mutt/pgp2.rc
/usr/local/share/examples/mutt/pgp5.rc
/usr/local/share/examples/mutt/pgp6.rc
вот этот-то "pgp5.rc" шаблон я и забодался искать на просторах интернетов (сколько же хламья на этих-то просторах, зачем я это всё пишу...). привожу результат (часть для pgp):
линк на pastebin.com
оно работает. вроде именно так, как и хотелось.
пришлось компильнуть microdc2 для... гхм... коротания вечеров за просмотром мультиков (imho - идиотизм разрешать/проектировать файлообменники в локальных сетях с использованием DC[++] протокола) и прикрутил PyBookReader для чтения макулатуры (после распаковки сырцов надо gmake сделать - появится поддержка fb2 формата, если установлены все зависимости). браузер - Seamonkey (тут без вариантов), редакторы - Vim + SciTE, xchat, MPlayer, ffmpeg и "жизнь налаживается".
а то всё linux да linux....
P.S. а в вашем "линуксе" Evolution gpg-sign умеет?
- стоимость дебоша уже включена в счёт, сэр!
надеюсь, что скоро будет обновление EFL для OpenBSD в портах и пакетах. пока планируется "прыгнуть" на версию "0.16.999.061", веду переписку для "прыжка" на текущий svn или, как минимум, версию "0.16.999.062" с поддержкой "lua" для "edje". иначе смысл теряется за морем лишних слов.
с версии 4.2 никаких кардинальных улучшений с "iocharset" или файловыми системами не произошло, посему воткнуть флешку с русскими именами файлов безболезненно получится только если:
1) кодировка на флешке koi8-r или 8859-5
2) вы свершили подвиг, справшись с "русификацией" OpenBSD (консольку - отдельно, иксы - отдельно и для многих приложений тоже нужен "индивидуальный подход" - весьма полезное упражнение для многих современных пользователей Linux-а...)
посему если ваши Linux партиции отформатированы в ext2/ext3 - их можно прочесть, на ext2 можно даже что-то записать. без отключения журнала можно писать и на ext3 (вы любите играть в русскую рулетку по утрам для поднятия тонуса). одним словом - благодать! только вот с ntfs неувязочка... для монтирования надо проверить в диспетчере дисков Windows, чтобы на партиции не стояла галочка "Dynamic" (а она там практически стоит всегда), иначе лучше сразу купить альбом Сосо Павлиашвили.
не менее элегантно раздаются права на примонтированные файловые системы (что-то в этом есть и здравое). идёт наследование прав точки монтирования на всю партицию. т.е. если в "/mnt/ПАПКА" был открыт доступ на запись какому-то юзверю, то после монтирования фс в "/mnt/ПАПКА" эти права будут унаследованы всей партицией. дёшево и сердито.
нещадно туплю с pgp ключами для подписи своих писем. красивого решения пока не нашёл. дано:
* мой любимый ключ шифрования для Linux gpg с Elgamal алгоритмом
* mutt
* pgp5 в поставке OpenBSD (да-да-да! есть ещё pgp2 для совсем Ъ ребят, но оно умеет только RSA), что умеет только DSS, а об Elgamal ни сном ни духом
надо:
* импортировать в pgp5 ключ из gpg и заставить его воспринимать "как родного"
* вздрючить mutt на предмет подписи/шифрования сообщений требуемым ключом
и понеслось... экспортировал ключ из gpg (asc), пихаю его в pgp - облом, Validity - invalid, Trust - complete, а надо Validity - complete, Trust - ultimate. тупо копирую pubring и secring из gpg в pgp - pgp сыпется в корку, потом каким-то макаром заставляю родить:
Do you want to unset this key as axiomatic [y/N]? y
Keyrings updated.
ASSERTION FAILED at pgpRngRead.c line 3284:
(0) not true
ASSERTION FAILED at pgpRngRead.c line 3284:
(0) not true
и писец (Сосо Павлиашвили берёт очередной аккорд). ладно, сгенерил новую пару, забросил на сервер (pgp.mit.edu), а "mutt" загибает меня в позу и требует ласки и внимания... тут уж "сам дурак", ибо mutt умный и в своей поставке имеет шаблоны для "отношений" практически со всем, что шевелится. пример:
$ pkg_info -L mutt | grep pgp
/usr/local/bin/pgpewrap
/usr/local/bin/pgpring
/usr/local/share/examples/mutt/pgp2.rc
/usr/local/share/examples/mutt/pgp5.rc
/usr/local/share/examples/mutt/pgp6.rc
вот этот-то "pgp5.rc" шаблон я и забодался искать на просторах интернетов (сколько же хламья на этих-то просторах, зачем я это всё пишу...). привожу результат (часть для pgp):
линк на pastebin.com
оно работает. вроде именно так, как и хотелось.
пришлось компильнуть microdc2 для... гхм... коротания вечеров за просмотром мультиков (imho - идиотизм разрешать/проектировать файлообменники в локальных сетях с использованием DC[++] протокола) и прикрутил PyBookReader для чтения макулатуры (после распаковки сырцов надо gmake сделать - появится поддержка fb2 формата, если установлены все зависимости). браузер - Seamonkey (тут без вариантов), редакторы - Vim + SciTE, xchat, MPlayer, ffmpeg и "жизнь налаживается".
а то всё linux да linux....
P.S. а в вашем "линуксе" Evolution gpg-sign умеет?
вторник, 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

за рамками этой истории остались капельки слов, мыслей и картинок нецензурного, непотребного и откровенно эротического содержания с уклоном в жёсткое порно. зато теперь - тепло и сухо...
удачи!
мы победили всех зверей,
давайте грамоту скорей!
что-то стало холодать,
значит время компилять!
сподобился вот дожить до релиза версии 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 января 2008 г.
Новогодняя "ёлка"
/*
Чуток оклемавшись от сует праздничных решил сделать что-то доброе для всех. На повестке дня уже давно стояли несколько вопросов, решение которых откладывал "на потом":
1) сделать русский/кирилический шрифт для отображения в gmplayer-е (в окошке, где кнопочки, ползунки и прочая хрень);
2) заставить Ephoto! работать на OpenBSD;
3) выложить обновлённый вариант скрипта по сборке E17-го с патчами для OpenBSD и обновлённой конфигугацией компонентов, выбираемых по умолчанию.
Розовая птица "Обломинго" таки поздравила мну с Новым Годом... Полностью выполнен только пункт третий. Забирайте. Сейчас уговариваю себя сделать патчсет для канонического скрипта сборки, есть там несколько занятных моментов, думаю числу эдак к шестому управиться с Божьей помощью (а може и нет).
Пинкам Ephoto! предшествовали разборки с ewl, которые закончились оформлением следующей статейки:
OpenBSD_tricks
всем фанатам OpenBSD и E17-го советую ознакомиться с моими комментариями к ранее опубликованным багрепортам (особенно к номерам 289 и 334):
OpenBSD Specific Defect
Почему Ephoto! отказывается работать с изображениями на OpenBSD пока не понял. Хорошо бы посмотреть на поведение других приложений на ewl, да только их ещё найти надо (в рабочем состоянии).
С MPlayer-ом всё оказалось намного мрачней. Есть документъ:
Appendix C. MPlayer skin format
Приложение C. Формат скинов MPlayer
в котором по старой доброй традиции ни одна праститутка не обмолвилась о кодировке символов шрифта для корректного его отображения. ОЧЕНЬ нехорошие подозрения, что отображение символов, отличных от латиницы (ASCII или ISO-8859-1) невозможно в принципе, либо крайне затруднено. Внятных комментариев или разъяснений сего безобразия добиться не удалось. С благодарностью приму к сведению любую информацию по этому поводу.
OpenBSD
Ручками из ports-current собрал Seamonkey - ОНО! Может и субъективно, но в работе приятнее, чем ФФ. Собрал jdk и jre, толку - ноль! Всё упирается в блядский flashplayer и плагин к нему для браузеров. В OpenBSD есть flash (может что-то показать, но далеко не всё и не всегда). Для полноценной поддержки в браузере надо включать режим совместимости с Linux, ставить linux-base, Opera и opera-flashplugin. Гори оно синим пламенем вместе с flash сайтами в таком случае.
UDF диски на запись не монтируются. Думаю "накатить" на UDF ext2 и попытаться ещё раз, но уже понимаю, что делать так не стоит. FFS в Linux-е чудненько доступны на чтение и проблема обмена информацией как-то отошла на второй план.
Всем, кто пользует pptp (впн) - ACHTUNG! Будьте крайне внимательны к параметру set lqrperiod в /etc/ppp/ppp.conf. Пожалуй приведу свои настройки для краткости:
> cat /etc/ppp/ppp.conf
provider:
set authname ИМЯ_ПОЛЬЗОВАТЕЛЯ
set authkey ПАРОЛЬ
set timeout 0
set ifaddr 0 0
disable pap
disable dns
# добавить маршрут по умолчанию
add! default HISADDR
allow users
set device "!/usr/local/sbin/pptp vpn.provider.ru --nolaunchpppd"
set log Phase LCP IPCP CCP tun command
enable lqr
set lqrperiod 5
set cd 5
set redial 30
set dial
set login
# MSS туннельного интерфейса не должно превышать MTU физического
enable mssfixup
# отключаем метод сжатия адресов и некоторых полей
disable acfcomp protocomp
deny acfcomp
#EOF
вроде как стала сеть работать стабильнее.
Ещё один "пунктик" - клиенты для работы с протоколом Direct Connect. imo - заслуживают внимания на сегодня только два проекта: Linuxdcpp и microdc2 (консольный клиент). Поскольку для OpenBSD компилером по-умолчанию является gcc-3.3.5, то с Linuxdcpp мы "пролетаем". Microdc2 прекрасно собирается из исходников, неприхотлив, нареканий в работе не вызывает (с перекодировкой сообщений из формата хаба в формат локали справляется на "отлично").
В остальном пока всем доволен. LaTeX печатает, mplayer и ffmpeg собраны с поддержкой всего и вся (эх, ежели б не отсутствие дров от nVidia, а то hdtv смотреть приходится в Linux), Seamonkey и w3m "бороздят просторы", Blender и Gimp рисуют (а в Archlinux-е Blender что-то стал сегфолтиться на диалоге открытия файлов и эт не токмо у меня, всё же "SuSE рулед™"), изучаю потихоньку PF (iptables + ip вроде как мощнее по функционалу, но для OpenBSD сей PF - именно то, что Доктор прописал). В планах на ближайшее будущее - подружить OpenBSD с Entrance. Пока что-то каменный цветок "не выходит". Ублюдочный xdm пашет, а вот Entrance, равно как и Slim, явно требуют "рихтовки напильником". Ежели кто "добился взаимности" - пожалуйста, намекните что к чему.
Первые курьёзы Нового года
linuxforum.ru прислал поздравления в кодировке cp1251... ни добавить, ни отнять, Господа... Мою просьбу о ликвидации учётной записи на этом... гхм... форуме... гхм... удовлетворять почему-то не хотят. Может письмо с просьбой не дошло? :)
Антонъ перешелъ съ Linux на Windows. Риальный посанъ. Тут тоже ни добавить, ни отнять... В камментах этого "космонавта" есть следующая ссылка... "Орёл наш, дон Рэба, защитник Отечества...".
Чуток оклемавшись от сует праздничных решил сделать что-то доброе для всех. На повестке дня уже давно стояли несколько вопросов, решение которых откладывал "на потом":
1) сделать русский/кирилический шрифт для отображения в gmplayer-е (в окошке, где кнопочки, ползунки и прочая хрень);
2) заставить Ephoto! работать на OpenBSD;
3) выложить обновлённый вариант скрипта по сборке E17-го с патчами для OpenBSD и обновлённой конфигугацией компонентов, выбираемых по умолчанию.
Розовая птица "Обломинго" таки поздравила мну с Новым Годом... Полностью выполнен только пункт третий. Забирайте. Сейчас уговариваю себя сделать патчсет для канонического скрипта сборки, есть там несколько занятных моментов, думаю числу эдак к шестому управиться с Божьей помощью (а може и нет).
Пинкам Ephoto! предшествовали разборки с ewl, которые закончились оформлением следующей статейки:
OpenBSD_tricks
всем фанатам OpenBSD и E17-го советую ознакомиться с моими комментариями к ранее опубликованным багрепортам (особенно к номерам 289 и 334):
OpenBSD Specific Defect
Почему Ephoto! отказывается работать с изображениями на OpenBSD пока не понял. Хорошо бы посмотреть на поведение других приложений на ewl, да только их ещё найти надо (в рабочем состоянии).
С MPlayer-ом всё оказалось намного мрачней. Есть документъ:
Appendix C. MPlayer skin format
Приложение C. Формат скинов MPlayer
в котором по старой доброй традиции ни одна праститутка не обмолвилась о кодировке символов шрифта для корректного его отображения. ОЧЕНЬ нехорошие подозрения, что отображение символов, отличных от латиницы (ASCII или ISO-8859-1) невозможно в принципе, либо крайне затруднено. Внятных комментариев или разъяснений сего безобразия добиться не удалось. С благодарностью приму к сведению любую информацию по этому поводу.
OpenBSD
Ручками из ports-current собрал Seamonkey - ОНО! Может и субъективно, но в работе приятнее, чем ФФ. Собрал jdk и jre, толку - ноль! Всё упирается в блядский flashplayer и плагин к нему для браузеров. В OpenBSD есть flash (может что-то показать, но далеко не всё и не всегда). Для полноценной поддержки в браузере надо включать режим совместимости с Linux, ставить linux-base, Opera и opera-flashplugin. Гори оно синим пламенем вместе с flash сайтами в таком случае.
UDF диски на запись не монтируются. Думаю "накатить" на UDF ext2 и попытаться ещё раз, но уже понимаю, что делать так не стоит. FFS в Linux-е чудненько доступны на чтение и проблема обмена информацией как-то отошла на второй план.
Всем, кто пользует pptp (впн) - ACHTUNG! Будьте крайне внимательны к параметру set lqrperiod в /etc/ppp/ppp.conf. Пожалуй приведу свои настройки для краткости:
> cat /etc/ppp/ppp.conf
provider:
set authname ИМЯ_ПОЛЬЗОВАТЕЛЯ
set authkey ПАРОЛЬ
set timeout 0
set ifaddr 0 0
disable pap
disable dns
# добавить маршрут по умолчанию
add! default HISADDR
allow users
set device "!/usr/local/sbin/pptp vpn.provider.ru --nolaunchpppd"
set log Phase LCP IPCP CCP tun command
enable lqr
set lqrperiod 5
set cd 5
set redial 30
set dial
set login
# MSS туннельного интерфейса не должно превышать MTU физического
enable mssfixup
# отключаем метод сжатия адресов и некоторых полей
disable acfcomp protocomp
deny acfcomp
#EOF
вроде как стала сеть работать стабильнее.
Ещё один "пунктик" - клиенты для работы с протоколом Direct Connect. imo - заслуживают внимания на сегодня только два проекта: Linuxdcpp и microdc2 (консольный клиент). Поскольку для OpenBSD компилером по-умолчанию является gcc-3.3.5, то с Linuxdcpp мы "пролетаем". Microdc2 прекрасно собирается из исходников, неприхотлив, нареканий в работе не вызывает (с перекодировкой сообщений из формата хаба в формат локали справляется на "отлично").
В остальном пока всем доволен. LaTeX печатает, mplayer и ffmpeg собраны с поддержкой всего и вся (эх, ежели б не отсутствие дров от nVidia, а то hdtv смотреть приходится в Linux), Seamonkey и w3m "бороздят просторы", Blender и Gimp рисуют (а в Archlinux-е Blender что-то стал сегфолтиться на диалоге открытия файлов и эт не токмо у меня, всё же "SuSE рулед™"), изучаю потихоньку PF (iptables + ip вроде как мощнее по функционалу, но для OpenBSD сей PF - именно то, что Доктор прописал). В планах на ближайшее будущее - подружить OpenBSD с Entrance. Пока что-то каменный цветок "не выходит". Ублюдочный xdm пашет, а вот Entrance, равно как и Slim, явно требуют "рихтовки напильником". Ежели кто "добился взаимности" - пожалуйста, намекните что к чему.
Первые курьёзы Нового года
linuxforum.ru прислал поздравления в кодировке cp1251... ни добавить, ни отнять, Господа... Мою просьбу о ликвидации учётной записи на этом... гхм... форуме... гхм... удовлетворять почему-то не хотят. Может письмо с просьбой не дошло? :)
Антонъ перешелъ съ Linux на Windows. Риальный посанъ. Тут тоже ни добавить, ни отнять... В камментах этого "космонавта" есть следующая ссылка... "Орёл наш, дон Рэба, защитник Отечества...".
пятница, 14 декабря 2007 г.
"Десктопизация" OpenBSD
*
Как это ни прискорбно, но для свободной и непринуждённой работы эта система подойдёт далеко не всем. Cказать же, что для десктопа система непригодна, тоже нельзя. С чем столкнулся (в порядке а-ля что на память придёт первым):
1) Шрифты...
Песнь... Песнь песней. Поскольку русификация консоли возможна по умолчанию только в koi8-r (шрифтами /usr/share/misc/pcvtfonts/), то и гуи соответственно стоит приводить к koi8-r. Для общего развития можно почитать "каноны":
http://www.openbsd.ru/docs/howto-cyrillic.html
В дальнейшим вашим незаменимым помощником в этом деле станет xfontsel. В общем идея подана верно, но есть несколько нюансов. Во-первых не стоит валить в одну кучу приложения на gtk1 и gtk2, посему предлагаю следующее:
: ~ > ls -al ~ | grep .gtkrc
lrwxr-xr-x 1 sda users 23 Dec 8 08:56 .gtkrc -> /home/sda/.gtkrc.backup
-rw-r--r-- 1 sda users 134 Dec 8 10:48 .gtkrc-1.2-gnome2
-rw-r--r-- 1 sda users 1033 Dec 14 22:41 .gtkrc-2.0
lrwxr-xr-x 1 sda users 20 Dec 9 18:54 .gtkrc.mine -> /home/sda/.gtkrc-2.0
-rw-r--r-- 1 sda users 985 Dec 8 01:21 gtkrc_metal
-rw-r--r-- 1 sda users 767 Dec 15 00:15 .gtkrc.backup
: ~ > cat ~/.gtkrc
include "/home/sda/gtkrc_metal"
style "user-font"
{
fontset = "-*-fixed-*-*-*-*-17-*-*-*-*-*-koi8-r"
}
widget_class "*" style "user-font"
# EOF
: ~ > cat ~/.gtkrc-2.0
# Auto-written by sda00. Do not edit. :)
gtk-theme-name = "Clearlooks-DeepSky"
style "user-font"
{
font_name="-*-fixed-*-*-*-*-17-*-*-*-*-*-koi8-r"
}
widget_class "*" style "user-font"
gtk-font-name="-*-fixed-*-*-*-*-17-*-*-*-*-*-koi8-r"
gtk-icon-theme-name="Oxygen_gnome"
# EOF
Как и что "пилить" для qt приложений - не ведаю, бо не ставил и не пользую. И тут есть "момент". При подобном указании gtk-font-name="-*-fixed-*-*-*-*-17-*-*-*-*-*-koi8-r" в ~/.gtkrc-2.0 есть подозрение, что не все программы справятся с отображением интерфейса. Firefox по крайней мере сей "тест" проваливает. Он желает gtk-font-name="DejaVu Sans".
2) gtk броузеры и собственно OpenOffice работают как-то странно. Офис тормозит со страшной силой, firefox и seamonkey ведут себя непредсказуемо. Сейчас присматриваюсь к links, но основная "рабочая лошадь" - 'w3m-0.5.2-image' - пашет изумительно. Особенно радует наличие "табов".
3) Порядком провозился с настройкой терминала. Поскольку Xterm уже собран с поддержкой Xft, то решил его и пользовать. В приведённых ниже настройках Shift+"+" и Shift+"-" регулируют размер шрифта.
: ~ > cat ~/.Xdefaults
xterm*font: 8x16
XTerm*backarrowKeyIsErase: 1
XTerm*deleteIsDEL: false
xterm*saveLines: 60000
xterm*scrollBar: true
xterm*rightScrollBar: true
xterm*jumpScroll: true
xterm*cursorColor: red
xterm*colorBD: darkblue
xterm*colorBDMode: true
xterm*highlightColor: blue
xterm*activeIcon: false
xterm*awaitInput: true
xterm*scrollTtyOutput: false
xterm*scrollKey: true
*VT100.translations: #override\
Prior: scroll-back(1,pages) \n\
Next: scroll-forw(1,pages)\n\
Meta K: send-signal(int) clear-saved-lines() \n\
Meta P: print() \n\
Meta minus: smaller-vt-font() \n\
Meta KP_Subtract: smaller-vt-font() \n\
Meta plus: larger-vt-font() \n\
Meta KP_Add: larger-vt-font() \n\
Meta C: select-cursor-start() \
select-cursor-end(PRIMARY, CUT_BUFFER0) \n\
Meta V: insert-selection(PRIMARY, CUT_BUFFER0) \n\
Meta M: iconify() \n\
*Scrollbar.background: gray50
*Scrollbar.foreground: gray50
*Scrollbar.borderWidth: 0
*Scrollbar.shadowWidth: 0
*Scrollbar.thickness: 14
*Scrollbar.minimumThumb: 20
*Scrollbar.backgroundPixmap: gradient:horizontal?dimension=14&start=gray80&end=white
*Scrollbar.borderPixmap: gradient:horizontal?dimension=14&start=white&end=grey80
*Scrollbar.translations: #override\
: StartScroll(Forward) \n\
: StartScroll(Continuous) MoveThumb() NotifyThumb() \n\
: StartScroll(Backward) \n\
: MoveThumb() NotifyThumb() \n\
: NotifyScroll(Proportional) EndScroll()
эти же настройки можно пользовать и в Mac OS X для эмуляции поведения терминала. Вторая часть "Марлезонского балета" - прикручивание "цвета" к терминалу. Необходимо поставить пакет 'fileutils' и прописать пару-тройку alias-ов:
: ~ > cat ~/.bashrc
alias ls='gls --color'
alias l='gls -la --color'
alias c='clear'
export TERM=xterm-color
4) Нашёл аналог управления частотой процессора - apmd. Запустив sensorsd и 'apmd -C' остался весьма доволен результатом. 'sysctl hw' покажет итоги трудов праведных.
5) Если нет желания собирать E17 :), то пожалуй единственным нормальным ВМ-ом "из коробки" будет WindowMaker. Пилить всё придётся руками (от меню и до...), но результат того стоит.
Про mime.types говорил ранее, настройка ~/.mailcap тоже не относится к Rocket Science. Все multimedia пакеты стоит пересобрать из портов. Настройку mutt описывал ранее: http://www.rootshell.be/~sda00/mutt.html . Ежели чего запамятовал - допишу позже. На закуску - скриншотик с WindowMaker-ом. Практически "дефолт" от и до.
Как это ни прискорбно, но для свободной и непринуждённой работы эта система подойдёт далеко не всем. Cказать же, что для десктопа система непригодна, тоже нельзя. С чем столкнулся (в порядке а-ля что на память придёт первым):
1) Шрифты...
Песнь... Песнь песней. Поскольку русификация консоли возможна по умолчанию только в koi8-r (шрифтами /usr/share/misc/pcvtfonts/), то и гуи соответственно стоит приводить к koi8-r. Для общего развития можно почитать "каноны":
http://www.openbsd.ru/docs/howto-cyrillic.html
В дальнейшим вашим незаменимым помощником в этом деле станет xfontsel. В общем идея подана верно, но есть несколько нюансов. Во-первых не стоит валить в одну кучу приложения на gtk1 и gtk2, посему предлагаю следующее:
: ~ > ls -al ~ | grep .gtkrc
lrwxr-xr-x 1 sda users 23 Dec 8 08:56 .gtkrc -> /home/sda/.gtkrc.backup
-rw-r--r-- 1 sda users 134 Dec 8 10:48 .gtkrc-1.2-gnome2
-rw-r--r-- 1 sda users 1033 Dec 14 22:41 .gtkrc-2.0
lrwxr-xr-x 1 sda users 20 Dec 9 18:54 .gtkrc.mine -> /home/sda/.gtkrc-2.0
-rw-r--r-- 1 sda users 985 Dec 8 01:21 gtkrc_metal
-rw-r--r-- 1 sda users 767 Dec 15 00:15 .gtkrc.backup
: ~ > cat ~/.gtkrc
include "/home/sda/gtkrc_metal"
style "user-font"
{
fontset = "-*-fixed-*-*-*-*-17-*-*-*-*-*-koi8-r"
}
widget_class "*" style "user-font"
# EOF
: ~ > cat ~/.gtkrc-2.0
# Auto-written by sda00. Do not edit. :)
gtk-theme-name = "Clearlooks-DeepSky"
style "user-font"
{
font_name="-*-fixed-*-*-*-*-17-*-*-*-*-*-koi8-r"
}
widget_class "*" style "user-font"
gtk-font-name="-*-fixed-*-*-*-*-17-*-*-*-*-*-koi8-r"
gtk-icon-theme-name="Oxygen_gnome"
# EOF
Как и что "пилить" для qt приложений - не ведаю, бо не ставил и не пользую. И тут есть "момент". При подобном указании gtk-font-name="-*-fixed-*-*-*-*-17-*-*-*-*-*-koi8-r" в ~/.gtkrc-2.0 есть подозрение, что не все программы справятся с отображением интерфейса. Firefox по крайней мере сей "тест" проваливает. Он желает gtk-font-name="DejaVu Sans".
2) gtk броузеры и собственно OpenOffice работают как-то странно. Офис тормозит со страшной силой, firefox и seamonkey ведут себя непредсказуемо. Сейчас присматриваюсь к links, но основная "рабочая лошадь" - 'w3m-0.5.2-image' - пашет изумительно. Особенно радует наличие "табов".
3) Порядком провозился с настройкой терминала. Поскольку Xterm уже собран с поддержкой Xft, то решил его и пользовать. В приведённых ниже настройках Shift+"+" и Shift+"-" регулируют размер шрифта.
: ~ > cat ~/.Xdefaults
xterm*font: 8x16
XTerm*backarrowKeyIsErase: 1
XTerm*deleteIsDEL: false
xterm*saveLines: 60000
xterm*scrollBar: true
xterm*rightScrollBar: true
xterm*jumpScroll: true
xterm*cursorColor: red
xterm*colorBD: darkblue
xterm*colorBDMode: true
xterm*highlightColor: blue
xterm*activeIcon: false
xterm*awaitInput: true
xterm*scrollTtyOutput: false
xterm*scrollKey: true
*VT100.translations: #override\
Meta
Meta
Meta
Meta
Meta
Meta
Meta
select-cursor-end(PRIMARY, CUT_BUFFER0) \n\
Meta
Meta
*Scrollbar.background: gray50
*Scrollbar.foreground: gray50
*Scrollbar.borderWidth: 0
*Scrollbar.shadowWidth: 0
*Scrollbar.thickness: 14
*Scrollbar.minimumThumb: 20
*Scrollbar.backgroundPixmap: gradient:horizontal?dimension=14&start=gray80&end=white
*Scrollbar.borderPixmap: gradient:horizontal?dimension=14&start=white&end=grey80
*Scrollbar.translations: #override\
эти же настройки можно пользовать и в Mac OS X для эмуляции поведения терминала. Вторая часть "Марлезонского балета" - прикручивание "цвета" к терминалу. Необходимо поставить пакет 'fileutils' и прописать пару-тройку alias-ов:
: ~ > cat ~/.bashrc
alias ls='gls --color'
alias l='gls -la --color'
alias c='clear'
export TERM=xterm-color
4) Нашёл аналог управления частотой процессора - apmd. Запустив sensorsd и 'apmd -C' остался весьма доволен результатом. 'sysctl hw' покажет итоги трудов праведных.
5) Если нет желания собирать E17 :), то пожалуй единственным нормальным ВМ-ом "из коробки" будет WindowMaker. Пилить всё придётся руками (от меню и до...), но результат того стоит.
Про mime.types говорил ранее, настройка ~/.mailcap тоже не относится к Rocket Science. Все multimedia пакеты стоит пересобрать из портов. Настройку mutt описывал ранее: http://www.rootshell.be/~sda00/mutt.html . Ежели чего запамятовал - допишу позже. На закуску - скриншотик с WindowMaker-ом. Практически "дефолт" от и до.
среда, 12 декабря 2007 г.
OpenBSD - сборка E17-cvs (или ещё одна маленькая победа разума)
*
Помнится лет 15 назад коммерческие Unix можно было сравнить с тракторами Caterpillar - вылизанный, сияющий, новенький трактор: мощи - немеряно, рык грозен и авторитет подавляющ. Linux - ну что там Линукс, студентиком Танненбаума написан? Кто про него знал - заикались, что мол это тоже трактор, ржавенький, но трактор (типа бесплатно и для народа). Счастливчики, дорвавшиеся до "фирмового" оборудования с коммерческими Unix при этих словах падали под стул от хохота, те, кто разбирался с HP-UX, не тратили сил даже на то, чтобы покрутить пальцем у виска. Благодаря блестящему маркетингу и абсолютно наплевательской позиции к вопросам копирайтов MS уверенно "хавала" десктопы россиян и умы разработчиков, выжигая напалмом островки NetWare, OS/2 и прочих более интересных "обитателей" компьютерных "винтов". Народ уже матерился при взгляде на требования MS к железу, но... "Делать нечего... Бояре, потужив о Государе и царевне молодой, в спальню к ней вошли толпой..." (и даже не заикайтесь о нонешнем "падении нравов").
К чему это я тут так разоряюсь? А вы представьте себе чуток проржавевшую помесь танка с трактором (женского полу), у которого вместо седушки водителя торчит огрызок трубы. Вертикально. Чтобы сразу и по самые гланды всем, кто захочет притопить "газулю" в пол сразу после установки generic системы. Представили? Вот это и есть OpenBSD. Ежели неумелой детской рукой на "морде" этого чудовища намалевать глазки и ухмылку "рыбки" с картинки "No Blow - No Go!" - то именно так и будет выглядеть истинный символ этой ОСи.
FAQ: "Выбор любой операционной системы зависит от ответа на вопрос: "Можно ли сделать некую работу именно так, как Вам хочется?" И ответить на сей вопрос Вы должны самостоятельно."
Как это ни парадоксально - чем-то эта система притягивает. Может тем, что требует сначала "любви, ласки и внимания", а вот потом "на всё готовая я...". По большому счёту единственное, что реально бесит - это отсутствие нормальных драйверов на видео, из-за чего работа в иксах превращается в кошмар (угу, ваша Галя - балованная!). Не гонял пока тестов для сравнения с Linux-2.6.23 (SLUB), но что-то подсказывает, что наше "чудовище" даже с включенным softupdate окажется аутсайдером. Бо цели у проекта несколько иные. Во главу угла поставлена безопасность системы, что накладывает порой довольно ощутимые ограничения на процесс оптимизации софта под эту платформу. В частности я ставил как i386 на Athlon64 и для успешной компиляции 'ecore' пришлось вырезать использование mmx инструкций. Теперь по порядку (всё, что описано ниже - сугубо моё IMHO и ни в коем случае не претендует на "истину в последней инстанции"):
1) Товарищ, помни, OpenBSD - не Unix и POSIX несовместима! Таки позабыл? Не беда! Отсутствие функции strfmon() и хэдера monetary.h быстро восстановят сей пробел.
2) "Зеркала" официального репозитория чудовищны. Сперва грешил на свои настройки. Потом поставил Master Fanout Site (Canada) - заработало. Такое ощущение, что многие файлы на зеркалах "обрезаны", недокачаны. Радовался рано. Где "затычка" - пока не разобрался, но "рецепт" следующий: тянем wget-ом и потом ставим с "винта". Иначе устанете вырезать partial установки (довольно занятная кстати фишка, потом подумаю, как её использовать).
3) Не ищите iocharset в опциях mount-а. Его там нет. Запись в openbsd-misc mailinglist (от января 2006-го года):
"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"
Сильно. Внушает. Интересно, сколько обезьян необходимо, чтобы вкрутить в патрон лампочку? Нет. Не так. Сколько времени необходимо одной обезьяне, чтобы проделать сие упражнение, не расхерачив при сём упомянутую лампочку к свиньям собачьим? "Дак ведь Пост, Матушка, ждём-с, до первой звезды..."
4) Нет поддержки ни одной журналируемой файловой системы.
5) А теперь позвольте выкатить списочек. Это - полный top. В фоксе открыто 15 вкладок, на одной из которых пишется сия нота. В Enlightenment-е загружено 55 модулей. mpd + emphasis. Почему emphasis жрёт 68.07% от остатков проца - разговор отдельный и будет он понятен и интересен пожалуй только разработчикам. dbus запущен сугубо ради спортивного интереса. wget тащит пакет openoffice с офсайта. Лепота...
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
6) Базовую систему ставил всю, кроме SMP ядра (не пользую SMP на десктопе из принципа). Долго рубился в Tetris (на 9-ом уровне меня подкосили - непорядок). Ностальгировал. Узрел в пакетах quake и quake2. Смахнул скупую слезу и долго думал про всех, кто не желает появления nVidia драйверов для OpenBSD. В результате список установленных пакетов выглядит на сегодня вот так:
~ > 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
7) Большим сюрпризом оказалось отсутствие mime.types файла в /etc. Оно есть в /var/www/conf/mime.types, есть в /etc/mutt/mime.types (если вы любите mutt также, как люблю его я). Из обеих файлов можно скомпоновать достойный внимания результат после обработки напильником. Поскольку скрипт ставит все компоненты в /opt/e17 (да и удалять потом проще. грохнул каталог и спи спокойно), то бросил симлинк на mime.types и в /opt/e17/etc.
8) Скрипт ноне гарантированно способен на i386/x86-64 архитектуре собрать вам следующие "вкусности" (и уверен, что это не предел, поскольку не тестировал для всего, что лежит в E-cvs):
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 (грубо говоря - все, что имеют дело непосредственно с железом)
9) После доводки секций скрипта по сборке до ума удалось свести количество патчей исходников к минимуму (для устанавливаемых компонентов естественно). Поскольку в html переводить лениво - смотрите лучше в скрипте:
# OpenBSD patchset
case $(uname) in
OpenBSD)
echo "Starting OpenBSD patchset..."
cd $e17_cvs_local_location
if [ "`grep \#include\ \<png\.h\> ./e17/libs/imlib2/src/modules/loaders/loader_png.c`" != "" ] ; then
cat ./e17/libs/imlib2/src/modules/loaders/loader_png.c | sed 's/\#include\ \<png\.h\>/\#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 </png\.h\>' > ./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 на промпте :).
10)Let It Be! Just Let It Be!



и махонький совет на прощание, коли позволите: отключите Java и Java-Script в настройках браузера...
Помнится лет 15 назад коммерческие Unix можно было сравнить с тракторами Caterpillar - вылизанный, сияющий, новенький трактор: мощи - немеряно, рык грозен и авторитет подавляющ. Linux - ну что там Линукс, студентиком Танненбаума написан? Кто про него знал - заикались, что мол это тоже трактор, ржавенький, но трактор (типа бесплатно и для народа). Счастливчики, дорвавшиеся до "фирмового" оборудования с коммерческими Unix при этих словах падали под стул от хохота, те, кто разбирался с HP-UX, не тратили сил даже на то, чтобы покрутить пальцем у виска. Благодаря блестящему маркетингу и абсолютно наплевательской позиции к вопросам копирайтов MS уверенно "хавала" десктопы россиян и умы разработчиков, выжигая напалмом островки NetWare, OS/2 и прочих более интересных "обитателей" компьютерных "винтов". Народ уже матерился при взгляде на требования MS к железу, но... "Делать нечего... Бояре, потужив о Государе и царевне молодой, в спальню к ней вошли толпой..." (и даже не заикайтесь о нонешнем "падении нравов").
К чему это я тут так разоряюсь? А вы представьте себе чуток проржавевшую помесь танка с трактором (женского полу), у которого вместо седушки водителя торчит огрызок трубы. Вертикально. Чтобы сразу и по самые гланды всем, кто захочет притопить "газулю" в пол сразу после установки generic системы. Представили? Вот это и есть OpenBSD. Ежели неумелой детской рукой на "морде" этого чудовища намалевать глазки и ухмылку "рыбки" с картинки "No Blow - No Go!" - то именно так и будет выглядеть истинный символ этой ОСи.
FAQ: "Выбор любой операционной системы зависит от ответа на вопрос: "Можно ли сделать некую работу именно так, как Вам хочется?" И ответить на сей вопрос Вы должны самостоятельно."
Как это ни парадоксально - чем-то эта система притягивает. Может тем, что требует сначала "любви, ласки и внимания", а вот потом "на всё готовая я...". По большому счёту единственное, что реально бесит - это отсутствие нормальных драйверов на видео, из-за чего работа в иксах превращается в кошмар (угу, ваша Галя - балованная!). Не гонял пока тестов для сравнения с Linux-2.6.23 (SLUB), но что-то подсказывает, что наше "чудовище" даже с включенным softupdate окажется аутсайдером. Бо цели у проекта несколько иные. Во главу угла поставлена безопасность системы, что накладывает порой довольно ощутимые ограничения на процесс оптимизации софта под эту платформу. В частности я ставил как i386 на Athlon64 и для успешной компиляции 'ecore' пришлось вырезать использование mmx инструкций. Теперь по порядку (всё, что описано ниже - сугубо моё IMHO и ни в коем случае не претендует на "истину в последней инстанции"):
1) Товарищ, помни, OpenBSD - не Unix и POSIX несовместима! Таки позабыл? Не беда! Отсутствие функции strfmon() и хэдера monetary.h быстро восстановят сей пробел.
2) "Зеркала" официального репозитория чудовищны. Сперва грешил на свои настройки. Потом поставил Master Fanout Site (Canada) - заработало. Такое ощущение, что многие файлы на зеркалах "обрезаны", недокачаны. Радовался рано. Где "затычка" - пока не разобрался, но "рецепт" следующий: тянем wget-ом и потом ставим с "винта". Иначе устанете вырезать partial установки (довольно занятная кстати фишка, потом подумаю, как её использовать).
3) Не ищите iocharset в опциях mount-а. Его там нет. Запись в openbsd-misc mailinglist (от января 2006-го года):
"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"
Сильно. Внушает. Интересно, сколько обезьян необходимо, чтобы вкрутить в патрон лампочку? Нет. Не так. Сколько времени необходимо одной обезьяне, чтобы проделать сие упражнение, не расхерачив при сём упомянутую лампочку к свиньям собачьим? "Дак ведь Пост, Матушка, ждём-с, до первой звезды..."
4) Нет поддержки ни одной журналируемой файловой системы.
5) А теперь позвольте выкатить списочек. Это - полный top. В фоксе открыто 15 вкладок, на одной из которых пишется сия нота. В Enlightenment-е загружено 55 модулей. mpd + emphasis. Почему emphasis жрёт 68.07% от остатков проца - разговор отдельный и будет он понятен и интересен пожалуй только разработчикам. dbus запущен сугубо ради спортивного интереса. wget тащит пакет openoffice с офсайта. Лепота...
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
6) Базовую систему ставил всю, кроме SMP ядра (не пользую SMP на десктопе из принципа). Долго рубился в Tetris (на 9-ом уровне меня подкосили - непорядок). Ностальгировал. Узрел в пакетах quake и quake2. Смахнул скупую слезу и долго думал про всех, кто не желает появления nVidia драйверов для OpenBSD. В результате список установленных пакетов выглядит на сегодня вот так:
~ > 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
7) Большим сюрпризом оказалось отсутствие mime.types файла в /etc. Оно есть в /var/www/conf/mime.types, есть в /etc/mutt/mime.types (если вы любите mutt также, как люблю его я). Из обеих файлов можно скомпоновать достойный внимания результат после обработки напильником. Поскольку скрипт ставит все компоненты в /opt/e17 (да и удалять потом проще. грохнул каталог и спи спокойно), то бросил симлинк на mime.types и в /opt/e17/etc.
8) Скрипт ноне гарантированно способен на i386/x86-64 архитектуре собрать вам следующие "вкусности" (и уверен, что это не предел, поскольку не тестировал для всего, что лежит в E-cvs):
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 (грубо говоря - все, что имеют дело непосредственно с железом)
9) После доводки секций скрипта по сборке до ума удалось свести количество патчей исходников к минимуму (для устанавливаемых компонентов естественно). Поскольку в html переводить лениво - смотрите лучше в скрипте:
# OpenBSD patchset
case $(uname) in
OpenBSD)
echo "Starting OpenBSD patchset..."
cd $e17_cvs_local_location
if [ "`grep \#include\ \<png\.h\> ./e17/libs/imlib2/src/modules/loaders/loader_png.c`" != "" ] ; then
cat ./e17/libs/imlib2/src/modules/loaders/loader_png.c | sed 's/\#include\ \<png\.h\>/\#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 </png\.h\>' > ./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 на промпте :).
10)



и махонький совет на прощание, коли позволите: отключите Java и Java-Script в настройках браузера...
пятница, 7 декабря 2007 г.
OpenBSD - всё для Человека и ради Человека...
*
Ребята из E-community попросили взглянуть на "нюансы" компиляции и установки под OpenBSD (може памятуя о том, что для FreeBSD мой скрипт отработал без ошибок сборку одним из первых). "Гавно вапрос!" - подумал я... "Попалсо?! - раком!" - подумал установочный диск OpenBSD-4.2 (а будь я на его месте - то подумал бы ещё и не так!)...
Это надо чувствовать... Это - непередаваемая атмосфера, в которую погружаешься сразу с головой, лишь только попадая на оффсайт проекта (imo - лицам с неокрепшей психикой туда "ходить" строго противопоказано!)... Это надо читать... Вдумчиво... Смаковать за рюмкой коньяка наиболее удачные ура-патриотические "перлы" официальной документации...

Посмотрели на картинку? Вспомнили поговорку: "No Blow - No Go!"? (прим.переводчика: "не дунешь - не полетишь!") "Дунули"? Повторили? Тогда продолжим...
Я не могу пройти мимо фразы из FAQ-а: "It might be worth noting that a large amount of OpenBSD development is done on laptops." (прим.переводчика: "сие есть сущая безделица, что громадьё кода системы писано именно на ноутбуках.") Как же это здорово! - думалось мне, крепчал энтузиазм, надежда, что разработчики в кои-то веки близки к народу с его скромными чаяниями: простая, строгая, надёжная система с отличной документацией, с поддержкой пусть и не самого нового железа, но именно такого, "что в масть". Да ещё и секурная, да ещё и из Канады (не подвержена "патентным игрищам"), да...ах! Мячта!!! ОНО!!! Родимоё!!! Впрочем, любые "розовые шарики мячты" имеют свойство разлетаться вдребезги, столкнувшись с жёсткой шкурой реальности. Начало было положено документом INSTALL.linux . Первая мысль: "Вот это - КРУТЬ! Это ж про меня! У меня же окромя... хм... начать "список" с Plan9 или закончить?... не важно, но при виде сего документа (ДО прочтения) я готов был записаться в Патриоты, что дорогого стоит." Верный заветам дедушки Ленина - учиться, учиться и ещё раз учиться - штудировал документацию на сайте проекта, трепетно лелея двухсотмегабайтовую инсталляционную исошку. "Юноша бледный со взглядом горящим". И тут значит смотрю на первую строку сего "циркуляра" - v 1.12 2004/08/18 08:57:33 - ого-го! Стабильность! Каноны! Написано раз - и на века! И фраза: "Or use the commercial offering Partition Magic." Оп-па... Эт что, слова parted + ntfsprogs этим "дядям" не знакомы? Далее по тексту выясняется, что "дружеское" сосуществование Linux и FreeBSD у "дяденьки" токмо с ext2 и fat партициями... То был первый "удар колокола". Ваш-то покорный слуга имеет в пользовании Reiser-3.6 (в основном), Xfs, Jfs, Hfs+(да-да-да, и не надо пальцем тыкать), Bfs, чуток Venti и конечно Fat-опомойку, бо без неё никак... И когда в последних абзацах сего "указателя" достопочтенный "автор" выливает ушат нечистот с радостным гиканьем: "A word of caution: brain-damaged linux installations" - понимаешь сразу, что сие есть "перебор". Да простят мне, убогому, подобное утрирование, но Linux на сегодня - это (процитирую своё же более раннее высказывание) "единственная ОСь, которую можно установить хоть в /dev/ass при наличии у того бутсектора 512-ти байт. И будет работать." Естественно, что вопрос: "Какие именно файловые системы поддерживает OpenBSD и как?" требовал немедленного ответа. Попробуйте найти его самостоятельно, не имея под рукой уже установленную OpenBSD (в смысле не потроша саму систему и её документацию). "Список - в Студию!" - проорал популярный некогда телеведущий под мощный аккомпанимент фанфар... Не вопрос:
> man fstab
The system currently supports the following types of filesystems:
cd9660 An ISO 9660 CD-ROM filesystem.
ext2fs A local Linux compatible ext2fs filesystem.
ffs A local UNIX filesystem.
mfs A local memory-based UNIX filesystem.
msdos An MS-DOS FAT filesystem.
nfs A Sun Microsystems compatible Network File System.
ntfs An NTFS filesystem.
procfs A local filesystem containing process information.
swap A disk partition to be used for swapping.
udf A UDF filesystem.
vnd A VND image file.
и скромненько так, между прочим, что ntfs - только на чтение и до сих пор "экспериментально". "Щастья мало не бывает" - попёр на nvidia.com искать утешения в кошерных, TRUE, дровах на свою "старушку". Э-э... Все хорошо расслышали громкие причмокивающие звуки, что я издал, придя на оный сайт? "Надо брать!" - сказала Машенька Защекова, хоть и была ну Очень порядочной девушкой... Для повторения легендарного анектода про Золотую Рыбку и "пусть сбудется всё, что скажет наш боцман, проснувшись завтра на рассвете" осталось лишь найти несоответствие в "подручном" железе и списке поддерживаемого оборудования. Не нашёл. Ха. Ха. Ха.
К чёрту слюни и сантименты -> разгрузка одной из Fat-опомоек -> wodim -> "болванка" -> init 0 ->
> sudo fdisk wd2
Disk: wd2 geometry: 14593/255/63 [234441648 Sectors]
Offset: 0 Signature: 0xAA55
Starting Ending LBA Info:
#: id C H S - C H S [ start: size ]
------------------------------------------------------------------------
-------------------------------------------------------------------------
> sudo disklabel wd2
# Inside MBR partition 1: type A6 start 104454630 size 65015055
# /dev/rwd2c:
type: ESDI
disk: ESDI/IDE disk
label: ST3120026A
flags:
bytes/sector: 512
sectors/track: 63
tracks/cylinder: 255
sectors/cylinder: 16065
cylinders: 14593
total sectors: 234441648
rpm: 3600
interleave: 1
trackskew: 0
cylinderskew: 0
headswitch: 0 # microseconds
track-to-track seek: 0 # microseconds
drivedata: 0
и прыжок со скалы без парашюта в порядочных размеров отстойник с "фиалками" с целью "дозвониться" по "ВПН" к своему Провайдеру и "хапнуть" глоток свежих "портов" и "пакетов". Мдэ... Документация оказалась "на уровне". В "манах" кажется понаписали про всё на свете, кроме моего, совершенно рядового случая. Конструкция вырисовывалась презабавнейшая. Кама-Сутра где-то описывает похожие отношения и позы, только применимо к Homo Sapience, а не /dev/rl0 + /dev/tun (что меня интересовало зело поболе в тот момент времени). Карета "Скорой помощи" в лице (!кого бы Вы думали!) Anonymous-a! (та-дам! занавес!) подкатила с серверов Corbina, кои я Очень Уважаю за q3dm6.ru и Clan Arena в частности.

Вот она какая! Псиса молодая! Оргазм!? - Лучше!!!
Очередная партизанская засада поджидала на тропе "русификации"... Слов в принципе остаётся всё меньше, для характеристики ситуации (вернее это - уже более смахивает на диагноз, а не на "ситуацию"):
1. Припадаем к "канонам".
2. Возвращаемся ...гхм... не солоно хлебавши (при условии, что мы НЕ ХОТИМ и НЕ БУДЕМ пересобирать ядро - что есть первостатейная заявка как минимум на дикую криворукость мэйнтейнеров, не умеющих / не желающих предлагать универсальные решения. Если что-то сделать нельзя - то так и надо об этом говорить, а не городить огород).
Возвращаемся к "нашему" FAQ-у. Читаем громко и с выражением первые два абзаца (перевод вольный):
"Не взирая на то, что OpenBSD есть суть не что иное, как традиционный TRUE Юникс, знакомый и близкий всем, кто общался с подобными*, в нём есть кое-какие отличия. Ежели Вы только и имели счастья поиграться с Linux-ом - то OpenBSD Вам покажется 'странным'`. Для тех же, кто начинал с OpenBSD, 'странным' покажется Linux. Вы ОБЯЗАНЫ понять разницу между 'стандартом' и Вашим личным опытом.
Ежели Вы изучали Юникс по ХОРОШИМ книжкам, то OpenBSD - Ваш Друг, Товарищ и Брат. В противном случае всё будет с точностью до наоборот."
(прим*. - Очень Грамотно не приведены примеры таких же, как и OpenBSD, традиционных и true Юниксов)
(прим`. - угу, только вот "нюансы" - они ведь разные...)
ШЕДЕВР!!! Учить наизусть! Я не жалею ни о чём только за ту радость, что испытываю каждый раз, перечитывая эти два абзаца.
Возвращаясь к нашим "баранам". Для OpenBSD-4.2 я добился приемлимого результата в русификации сделав несколько простых "шагов":
1. Качаем 'bash-3.2.17 GNU Bourne Again Shell' и ставим его шеллом по умолчанию для всех.
2. > cat /etc/wsconsctl.conf
keyboard.encoding=ru # use different keyboard encoding
keyboard.bell.volume=0 # mute keyboard beep
keyboard.map+="keycode 157 = Mode_Lock" # switch by Right Ctl
3. > cat /etc/rc.local
if [ -x /usr/sbin/wsconscfg -a -x /usr/sbin/wsfontload ]; then
for SCREEN in 2 3 4 5 6 7 8 9 10 11; do
/usr/sbin/wsconscfg -d $SCREEN
done
/usr/sbin/wsfontload -h 16 /usr/share/misc/pcvtfonts/koi8-r-8x16
for cons in 2 3 4 5 6 7 8 9 10 11; do
wsconscfg -t 80x25bf $cons
done
fi
то бишь тупенько вырезаем дефолтные "скрины", грузим koi8-r шрифт и восстанавливаем "скрины" с нормальным koi8-r шрифтом.

где-то так... в следующей части этого "опуса" будет история собственно о сборке и тестировании E17-го в таком водъ, труЪ, Юниксе... панимаш...
Ребята из E-community попросили взглянуть на "нюансы" компиляции и установки под OpenBSD (може памятуя о том, что для FreeBSD мой скрипт отработал без ошибок сборку одним из первых). "Гавно вапрос!" - подумал я... "Попалсо?! - раком!" - подумал установочный диск OpenBSD-4.2 (а будь я на его месте - то подумал бы ещё и не так!)...
Это надо чувствовать... Это - непередаваемая атмосфера, в которую погружаешься сразу с головой, лишь только попадая на оффсайт проекта (imo - лицам с неокрепшей психикой туда "ходить" строго противопоказано!)... Это надо читать... Вдумчиво... Смаковать за рюмкой коньяка наиболее удачные ура-патриотические "перлы" официальной документации...
Посмотрели на картинку? Вспомнили поговорку: "No Blow - No Go!"? (прим.переводчика: "не дунешь - не полетишь!") "Дунули"? Повторили? Тогда продолжим...
Я не могу пройти мимо фразы из FAQ-а: "It might be worth noting that a large amount of OpenBSD development is done on laptops." (прим.переводчика: "сие есть сущая безделица, что громадьё кода системы писано именно на ноутбуках.") Как же это здорово! - думалось мне, крепчал энтузиазм, надежда, что разработчики в кои-то веки близки к народу с его скромными чаяниями: простая, строгая, надёжная система с отличной документацией, с поддержкой пусть и не самого нового железа, но именно такого, "что в масть". Да ещё и секурная, да ещё и из Канады (не подвержена "патентным игрищам"), да...ах! Мячта!!! ОНО!!! Родимоё!!! Впрочем, любые "розовые шарики мячты" имеют свойство разлетаться вдребезги, столкнувшись с жёсткой шкурой реальности. Начало было положено документом INSTALL.linux . Первая мысль: "Вот это - КРУТЬ! Это ж про меня! У меня же окромя... хм... начать "список" с Plan9 или закончить?... не важно, но при виде сего документа (ДО прочтения) я готов был записаться в Патриоты, что дорогого стоит." Верный заветам дедушки Ленина - учиться, учиться и ещё раз учиться - штудировал документацию на сайте проекта, трепетно лелея двухсотмегабайтовую инсталляционную исошку. "Юноша бледный со взглядом горящим". И тут значит смотрю на первую строку сего "циркуляра" - v 1.12 2004/08/18 08:57:33 - ого-го! Стабильность! Каноны! Написано раз - и на века! И фраза: "Or use the commercial offering Partition Magic." Оп-па... Эт что, слова parted + ntfsprogs этим "дядям" не знакомы? Далее по тексту выясняется, что "дружеское" сосуществование Linux и FreeBSD у "дяденьки" токмо с ext2 и fat партициями... То был первый "удар колокола". Ваш-то покорный слуга имеет в пользовании Reiser-3.6 (в основном), Xfs, Jfs, Hfs+(да-да-да, и не надо пальцем тыкать), Bfs, чуток Venti и конечно Fat-опомойку, бо без неё никак... И когда в последних абзацах сего "указателя" достопочтенный "автор" выливает ушат нечистот с радостным гиканьем: "A word of caution: brain-damaged linux installations" - понимаешь сразу, что сие есть "перебор". Да простят мне, убогому, подобное утрирование, но Linux на сегодня - это (процитирую своё же более раннее высказывание) "единственная ОСь, которую можно установить хоть в /dev/ass при наличии у того бутсектора 512-ти байт. И будет работать." Естественно, что вопрос: "Какие именно файловые системы поддерживает OpenBSD и как?" требовал немедленного ответа. Попробуйте найти его самостоятельно, не имея под рукой уже установленную OpenBSD (в смысле не потроша саму систему и её документацию). "Список - в Студию!" - проорал популярный некогда телеведущий под мощный аккомпанимент фанфар... Не вопрос:
> man fstab
The system currently supports the following types of filesystems:
cd9660 An ISO 9660 CD-ROM filesystem.
ext2fs A local Linux compatible ext2fs filesystem.
ffs A local UNIX filesystem.
mfs A local memory-based UNIX filesystem.
msdos An MS-DOS FAT filesystem.
nfs A Sun Microsystems compatible Network File System.
ntfs An NTFS filesystem.
procfs A local filesystem containing process information.
swap A disk partition to be used for swapping.
udf A UDF filesystem.
vnd A VND image file.
и скромненько так, между прочим, что ntfs - только на чтение и до сих пор "экспериментально". "Щастья мало не бывает" - попёр на nvidia.com искать утешения в кошерных, TRUE, дровах на свою "старушку". Э-э... Все хорошо расслышали громкие причмокивающие звуки, что я издал, придя на оный сайт? "Надо брать!" - сказала Машенька Защекова, хоть и была ну Очень порядочной девушкой... Для повторения легендарного анектода про Золотую Рыбку и "пусть сбудется всё, что скажет наш боцман, проснувшись завтра на рассвете" осталось лишь найти несоответствие в "подручном" железе и списке поддерживаемого оборудования. Не нашёл. Ха. Ха. Ха.
К чёрту слюни и сантименты -> разгрузка одной из Fat-опомоек -> wodim -> "болванка" -> init 0 ->
> sudo fdisk wd2
Disk: wd2 geometry: 14593/255/63 [234441648 Sectors]
Offset: 0 Signature: 0xAA55
Starting Ending LBA Info:
#: id C H S - C H S [ start: size ]
------------------------------------------------------------------------
0: 07 0 1 1 - 6501 254 63 [ 63: 104454567 ] HPFS/QNX/AUX
*1: A6 6502 0 1 - 10548 254 63 [ 104454630: 65015055 ] OpenBSD
2: 0B 10549 0 1 - 14592 254 63 [ 169469685: 64966860 ] Win95 FAT-32
3: 00 0 0 0 - 0 0 0 [ 0: 0 ] unused
*1: A6 6502 0 1 - 10548 254 63 [ 104454630: 65015055 ] OpenBSD
2: 0B 10549 0 1 - 14592 254 63 [ 169469685: 64966860 ] Win95 FAT-32
3: 00 0 0 0 - 0 0 0 [ 0: 0 ] unused
-------------------------------------------------------------------------
> sudo disklabel wd2
# Inside MBR partition 1: type A6 start 104454630 size 65015055
# /dev/rwd2c:
type: ESDI
disk: ESDI/IDE disk
label: ST3120026A
flags:
bytes/sector: 512
sectors/track: 63
tracks/cylinder: 255
sectors/cylinder: 16065
cylinders: 14593
total sectors: 234441648
rpm: 3600
interleave: 1
trackskew: 0
cylinderskew: 0
headswitch: 0 # microseconds
track-to-track seek: 0 # microseconds
drivedata: 0
16 partitions:
# size offset fstype [fsize bsize cpg]
a: 20980890 104454630 4.2BSD 2048 16384 1
b: 3148740 125435520 swap
c: 234441648 0 unused 0 0
d: 40885425 128584260 4.2BSD 2048 16384 1
i: 104454567 63 unknown
j: 64966860 169469685 MSDOS
# size offset fstype [fsize bsize cpg]
a: 20980890 104454630 4.2BSD 2048 16384 1
b: 3148740 125435520 swap
c: 234441648 0 unused 0 0
d: 40885425 128584260 4.2BSD 2048 16384 1
i: 104454567 63 unknown
j: 64966860 169469685 MSDOS
и прыжок со скалы без парашюта в порядочных размеров отстойник с "фиалками" с целью "дозвониться" по "ВПН" к своему Провайдеру и "хапнуть" глоток свежих "портов" и "пакетов". Мдэ... Документация оказалась "на уровне". В "манах" кажется понаписали про всё на свете, кроме моего, совершенно рядового случая. Конструкция вырисовывалась презабавнейшая. Кама-Сутра где-то описывает похожие отношения и позы, только применимо к Homo Sapience, а не /dev/rl0 + /dev/tun (что меня интересовало зело поболе в тот момент времени). Карета "Скорой помощи" в лице (!кого бы Вы думали!) Anonymous-a! (та-дам! занавес!) подкатила с серверов Corbina, кои я Очень Уважаю за q3dm6.ru и Clan Arena в частности.

Вот она какая! Псиса молодая! Оргазм!? - Лучше!!!
Очередная партизанская засада поджидала на тропе "русификации"... Слов в принципе остаётся всё меньше, для характеристики ситуации (вернее это - уже более смахивает на диагноз, а не на "ситуацию"):
1. Припадаем к "канонам".
2. Возвращаемся ...гхм... не солоно хлебавши (при условии, что мы НЕ ХОТИМ и НЕ БУДЕМ пересобирать ядро - что есть первостатейная заявка как минимум на дикую криворукость мэйнтейнеров, не умеющих / не желающих предлагать универсальные решения. Если что-то сделать нельзя - то так и надо об этом говорить, а не городить огород).
Возвращаемся к "нашему" FAQ-у. Читаем громко и с выражением первые два абзаца (перевод вольный):
"Не взирая на то, что OpenBSD есть суть не что иное, как традиционный TRUE Юникс, знакомый и близкий всем, кто общался с подобными*, в нём есть кое-какие отличия. Ежели Вы только и имели счастья поиграться с Linux-ом - то OpenBSD Вам покажется 'странным'`. Для тех же, кто начинал с OpenBSD, 'странным' покажется Linux. Вы ОБЯЗАНЫ понять разницу между 'стандартом' и Вашим личным опытом.
Ежели Вы изучали Юникс по ХОРОШИМ книжкам, то OpenBSD - Ваш Друг, Товарищ и Брат. В противном случае всё будет с точностью до наоборот."
(прим*. - Очень Грамотно не приведены примеры таких же, как и OpenBSD, традиционных и true Юниксов)
(прим`. - угу, только вот "нюансы" - они ведь разные...)
ШЕДЕВР!!! Учить наизусть! Я не жалею ни о чём только за ту радость, что испытываю каждый раз, перечитывая эти два абзаца.
Возвращаясь к нашим "баранам". Для OpenBSD-4.2 я добился приемлимого результата в русификации сделав несколько простых "шагов":
1. Качаем 'bash-3.2.17 GNU Bourne Again Shell' и ставим его шеллом по умолчанию для всех.
2. > cat /etc/wsconsctl.conf
keyboard.encoding=ru # use different keyboard encoding
keyboard.bell.volume=0 # mute keyboard beep
keyboard.map+="keycode 157 = Mode_Lock" # switch by Right Ctl
3. > cat /etc/rc.local
if [ -x /usr/sbin/wsconscfg -a -x /usr/sbin/wsfontload ]; then
for SCREEN in 2 3 4 5 6 7 8 9 10 11; do
/usr/sbin/wsconscfg -d $SCREEN
done
/usr/sbin/wsfontload -h 16 /usr/share/misc/pcvtfonts/koi8-r-8x16
for cons in 2 3 4 5 6 7 8 9 10 11; do
wsconscfg -t 80x25bf $cons
done
fi
то бишь тупенько вырезаем дефолтные "скрины", грузим koi8-r шрифт и восстанавливаем "скрины" с нормальным koi8-r шрифтом.

где-то так... в следующей части этого "опуса" будет история собственно о сборке и тестировании E17-го в таком водъ, труЪ, Юниксе... панимаш...
Подписаться на:
Сообщения (Atom)