пятница, 13 июня 2008 г.

Суета сует... Всё - суета...

/*

Наконец-то разобрался с layout-ом текста для E17-го. Забавно. Поправил две темы:

Simplicity Unified
Simplicity DR17

Сделал более компактным менюшки и конфигурационную панель.

Ещё раз познакомился с общеизвестным фактом существования двойных стандартов. Дошли руки наконец посмотреть на тему Thoma - Edjy. Неплохо, есть у человека фантазия, окна Enlightenment -> About и Enlightenment -> Theme выше всяческих похвал. На этом правда поток свежих идей в теме иссяк. И очень было обидно видеть, что тему зарелизили на get-e.org с таким убогим набором функционала. А меня заставили переделать/доработать первоначальный вариант, мотивируя, что Simplicity-де не укладывается в стандарты... Речь в основном про компоненты, которым Пользователь присвоил значения, отличные от дефолта (шрифты, элементы темы, и т.п.). Эти компоненты в моих темах сразу же выделяются среди прочих (как и в дефолтной теме). В 'Edjy' подобного выделения нет. Равно как и отсутствует понятие "фокус" элемента, что впрочем характерно для всех тем этого Господина (видимо жизни себе без мышки чел не представляет).

С одной стороны - свою задачу выполнил, остальное - не моё дело (на обиженных воду возят). С другой - когда тебе говорят, что якобы сделанный тобой Продукт есть не что иное как халтура (забыть, выбросить, доработать нах) и тут же публикуют ещё худшую Халтуру с абсолютно левымы заявами : e17 theme 'Edjy' 1.0 by Tom (Toma-) Haste, which is completly written in plain edje! (насчёт plain edje ребята ой как погорячились. Если сделать edje_decc то действительно, чистый edje, но тема эта не полна/закончена. Часть блоков она заимствует из темы, установленной по умолчанию. Это - особенность 17-го. Например, можно сделать тему, которая просто поменяет один какой-то элемент дефолтного оформления. Отсутствующие блоки будут позаимствованы из дефолта, дабы не расстраивать Пользователя артефактами и откровенной лажей на экране.) - в общем как-то неприятно слегонца. Plain edje... Угу...

Но это всё - фигня и цветочки. Воспылал желанием на выходных этих собрать себе и людям игрушку: ECOMORPH. Это не что иное, как урезанный compiz, хакнутый E17-ый и пара утилит для рулёжки компизом в гуях. Собрал всё метапакетом в отдельный prefix (установочную директорию), чтобы ни с чем не конфликтовало и работало спокойно. Закачал исходники (140Мб) в OpenSUSE Build Service, собрал там (размер метапакета - мегов 13 в установленном виде). По умолчанию ессно, что нибуя не собиралось... Потом (практически этим вечером) часа три пытался запустить это чудо в полёт... Пользуясь случаем ещё раз передаю "Превед!" и "Наилучшие пожелания!" всем, кто писал драйвера для видеокарт ATI под Linux... Уже Xgl стартовал без вопросов по тычку в .desktop xsession файл, но... В общем перед тем как лечь спать грохнул готовый собранный метапакет из OpenSUSE Build Service. Сперва правда подумал ограничиться чем-то вроде:


NOTE FROM PACKAGER:

This is a PURE hack and addon software as it is. It could not only burn your
house and kill your pet, but also rape you, your pet and all your neighbours, then
burn all stuff around, rape the ashes and start another World War if for some reasons
you are not satisfied yet...

On my ATI 9600 agp card I was not able even to start this baby from failsafe mode
(and this is the recommended way). Start Xorg + xterm and try it by yourself.
The example of startup file is included here:

/opt/ecomorph/share/xsessions/example/ecomorph_start.desktop

And you are HIGHLY ADVISED to read all at:
http://code.google.com/p/itask-module/wiki/Stuff

After package removal please delete unnecessary entries in
/etc/profile.local
manually.

END OF NOTE FROM PACKAGER.


Показалось мало. Грохнул. Дабы и следов позора не осталось. Опять же история с моими репо для OpenSUSE. Всё как в вакууме. Статистики нет уже более года, никто не знает, кто что и сколько скачал, что интересно, что не очень, откликов от Пользователей нет и т.п. Получается что "тихо сам с собою я веду беседу". Что-то пора менять.

Ещё один глобальный вопрос - поднять ли бучу в OpenSUSE по поводу установки софта из "домашних" репо пользователей. Преамбула:

1) есть ДокументЪ, называется Filesystem Hierarchy Standard, которому в принципе нужно соответствовать при условии заявления поддержки LSB (Linux Standard Base) и тому подобных общепринятых "правил хорошего тона". Тем не менее всё это носит рекомендательный характер. То есть: любой дистрибутив может иметь собственную политику и подход к организации файловой системы.

2) есть на сегодня 371 (триста семьдесят один) "домашний" репозиторий Пользователя , где во-первых хрен знает что собирается (дублирующих друг друга позиций - море), во-вторых не пойми для чего и в-третьих с вероятностью близкой к 100% при установке этих пакетов Вы потеряете контроль над системой.

Надо расшифровать столь грозную фразу, как "контроль над системой". Всё элементарно. Есть базовый дистрибутив и официально рекомендованные репозитории, существующие не первый год (Packman например). Регулярно выпускаются обновления софта, латаются дыры, идёт работа одним словом. И у Вас при пользовании этими репо есть близкая к 100% гарантия, что с системой будет всё в порядке. При этом как правило софт ставится в /usr (локально собранный софт - идёт в /usr/local, всё в соответствии с FHS). Но софт-то из этих 371-го-хрен-разберёт-о-чём репозиториев также при установке влетит Вам в /usr (утверждаю с гарантией, близкой к 100%). Что приводит к потере (полной) контроля над системой при условии установки софта, дублирующего соответствующие пакеты в официальных репо.

Выходов из этой неприятной ситуации несколько. Первый - использовать по прямому назначению /opt (как каталог для установки add-on софта, рассматривая весь "домашний" зоопарк как набор этих самых аддонов). Именно так и реализован один из моих репо - SOAD. Второй путь решения - ставить софт из "домашних" репо в отдельные каталоги вида:

/usr/OpenSUSEBuildService/UserID/

Тем самым мы чётко знаем, "где что лежит" и спокойно в любой момент времени можем привести нашу систему к "девственно чистому" официальному виду. Оба этих метода имеют лишь один существенный недостаток - они предполагают некий уровень грамотности у мейнтейнеров. Ибо уже недостаточно тупо выучить макросы spec файлов для сборки своего софта. Надо знать систему, понимать работу линкера, особенности внутренней архитектуры, особенности xdg, особенности сборки собсно rpm-а и т.д. и т.п. В общем на шаблонах (текущих) не прокатишься при таком подходе. Поэтому что-то подсказывает мне, что и заикаться на паблике об этом не стоит. Приведу в качестве примера отрывок беседы в IRC с типа "папой-инженером OpenSUSE":

darix> sda00: FFS if i claim binaries conflict you are saying i am wrong
darix> if they are not conflicting
darix> rename the package
sda00> can you prove it by some kind of... written instruction?
darix> make it ecompiz instead of compiz
darix> sda00: FHS
darix> filesystem hierarchy standard
lejo> http://www.pathname.com/fhs/pub/fhs-2.3.html
sda00> /opt is reserved for the installation of add-on application software packages.
sda00> ???
sda00> what's wrong guys?
darix> sda00: and you have to follow
darix> /opt//
darix> so
darix> /opt/ibm/db2
darix> e.g.
sda00> EXACTLY!
darix> suse had exceptions for /opt/kde3 and /opt/gnome in the past
darix> with the goal to get rid of those
darix> sda00: but in the end you are so much smarter than me
sda00> I'm on suse since 8.2
darix> that i will stop talking now
darix> and will just listen to you master
darix> oh and go and watch football
* darix so much appreciates that those rpmlint checks are finally in the buildservice;)
sda00> no doubt that your experience is quite huge, but all coins have two sides. IMHO. we're have a kind of an "officially approved" repos which are installing their soft into /usr. just look at all 'home' OBS projects. if the component is a "stupid copy" of an "official" package - guy need to think about 'Conflicts' etc. let's consider my own repos for example. they contain soft which (imho) a bit differs than analogues in 'officials'. but I do
sda00> respect work of all people and I do respect the End User, who need an option to run a stable system despite on all addons installed. and /opt here is quite good to handle a separate $prefixes. otherwise it could be /usr/OBS_home_ID_prefix . yes, I can have an issues with a similar libraries versions etc (we're living in a real world)... but I can handle'em. and /opt is just good to take a look at. I know that I can safely rm -rf /opt and have a
sda00> default system (almost).

И всё. Тишина. Мы, darix, типа обиделись. А возразить-то нечего. Ведь по сути весть софт, не рекомендованный мейнтейнерами дистрибутива, и есть add-on. И в любой момент времени нужно видеть эти add-on-ы и понимать "откуда хренок вырос". И проблема эта (imho) из пальца не высосана. Дай Бог впрочем, чтобы я ошибался. Но, как человек с маленьким опытом пользования Linux (всего-то лет 10-12), имею мнение (или мнение имеет меня, что не столь важно): устраивать помойку и проходной двор из /usr нельзя. Но затевать махонький скандалюжник как-то глупо. Как говаривал великий Паниковский: "-Ты КТО ТАКОЙ?! Нет! Кто ты такой?! Ась?!"


Здесь ночами нет света
Годами не бывает лета
И кажется мне все будто во сне
Здесь время так улетает,
Что снега уже давно не тают,
Неделя пройдет и опять новый год

Не плачь обо мне
Я не стану прощаться
Как просто соврать,
Cказать что вернусь
Но что-то во мне
Не велит возвращаться
И я не вернусь,
Прости и забудь.

Здесь привычно ждут горя,
Ни одна река не вышла в море,
Ну что ж не беда,
Им не нужно туда.
Одинокая птица,
Как могла ты среди них родиться,
Но корни сильней,
Держись хотя бы корней.

Не плачь обо мне,
Я не стану прощаться,
Так просто соврать,
Сказать, что вернусь,
Но что-то во мне
Не велит возвращаться,
И я не вернусь,
Прости и забудь.
Не плачь обо мне,
Ветер все сильнее,
Пора улетать,
Скоро край.
В далекой весне,
Если я сумею,
Я вспомню тебя,
Прости и прощай.

(Машина Времени - Не плачь обо мне - Маргулис)

*/

9 комментариев:

HighwayStar комментирует...

странные ты вещи говоришь. Пложить каталоги в /usr и в /opt не стоит.

Все проблемы что ты описал решаются при помощи репов Community:. Достаточно написать мейнтейнеру Community: и если пакет подходит по тематике и нормально собран то он будет залинкован в репозитарий. и ты будешь добавлен в список мейнтейнеров.

Кроме Community в Gnome и KDE есть тематические репозитарии с играми. образовательными программами, и т. п.

Советую написать письмо мейнтейнеру репозитария http://download.opensuse.org/repositories/X11:/Enlightenment/

а так же сходить по ссылке http://forums.opensuse.org/applications/385551-anyone-knows-how-install-latest-enlightment-suse.html

HighwayStar комментирует...

Что вообще означает "дублирующего соответствующие пакеты" ?

Если пакет заменяет какой-то из oss то, оригинальный пакет должен удаляться. Разумно внести в название пакета како-нибудь суффикс вроде pm у пакмана, и в зависимостях прописать что пакет требует оригинального пакета, как это происходит при установке пакета libxine1 который заменяет xine-lib

проблема надуманна. Мне непонятно как предполагается запускать пакеты их /usr/BuildService/user, все эти каталоги вносить в PATH и LD_PATH? тогда получится настоящая помойка.

Кроме того сейчас вышел BuildService 1.0 RC1, в котором поддерживается много версий одного дерева. Пользователь форкает проект в билдсервисе, изменяет его как хочет в своем home репозитарии и потом отправляет коммит в основной репозитарий.

sda комментирует...

Если пакет заменяет какой-то из oss то, оригинальный пакет должен удаляться.

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

проблема надуманна. Мне непонятно как предполагается запускать пакеты их /usr/BuildService/user, все эти каталоги вносить в PATH и LD_PATH? тогда получится настоящая помойка.

вот это и есть результат безграмотности и отсутствия элементарных понятиий о том, как система работает. простое упражнение: дайте ответ на вопрос: "Сколько пакетов у Вас установленно из домашних репо OpenSUSE, сколько они занимают места и какие оригинальные пакеты дублируют?" и расскажите как вы пришли к подобному ответу.

верхом глупости является слепая вера, что кто-то из мейнтейнеров 'home:' отслеживает security holes и тому подобные прелести. Вам нравится устраивать помойку из /usr -> Ваше право. делайте что хотите. считаете, что херню упорол? не вы один так полагаете.

По поводу качества софта в так называемых "репозиториях, приближенных к официальным". Рассмотрим один из них:

1. Официальный типа:
http://download.opensuse.org/pub/opensuse/repositories/X11:/Enlightenment

2. Мой:
http://download.opensuse.org/repositories/home:/dmitry_serpokryl:/Enlightenment-cvs-core-metapackage/

Сравниваем именно базовые компоненты. Официальный мягко говоря "отстаёт". Нет One Click Install, устаревшие и неактуальные версии (более чем на 3 месяца). Нет возможности для пользователя пересобрать spec-файл (src.rpm) и получить текущий cvs проекта. На предложение взять компоненты из моего репо и включить их в "типа официальный" могу продемонстрировать ответ, что найух это не надо никому. "Официальный" репо и так хорош якобы. Нет так нет. Именно поэтому мой второй репо:

http://download.opensuse.org/repositories/home:/dmitry_serpokryl:/SOAD/

сделан именно так, как я считаю правильным и без оглядки на чьё бы то ни было мнение. Каждый может установить пакеты из обеих и сравнить. И до тех пор, пока мой второй репо не получит статус "officially approved" -> все компоненты из него (дублирующие уже существующие и официально рекомендованные) будут уходить в /opt. И не будет деления пакета на -devel, -debuginfo, так как предполагается, что Пользователь в любой момент может сам пересобрать исходник и получить текущий cvs. Могу показать как ноне я у себя Enlightenment обновляю:

http://pastebin.com/m5081a65f

это примерно. в оригинале скрипт запрашивает пароль на sudo в начале своего выполнения.

VeGeek комментирует...

Насчёт гарантий того, что ничего не сломается - это ты зря. Даже с официальным софтом могут получиться не очень приятные вещи. Пример - ставишь fam, sudo rcfam start (без него не работает pcmanfm). Через некоторое время его работы перестают запускаться KDE-приложения и нормально отмонтироваться диски. Поломать всё можно и из официальных репок.
Далее, имхо зачем вам это /usr/OBS/username/? Есть ведь менеджер пакетов, через который, коль у юзера возникнут проблемы, можно всё это поудалять. Пакеты фильтруются по репозиторию, из которого произошли, и версии откатываются да официальных.

sda комментирует...

Через некоторое время его работы перестают запускаться KDE-приложения и нормально отмонтироваться диски.

И есть уверенность что дело не в кривом софте KDE? Простите, у меня нет ни одного компонента qt/kde, не могу ничего сказать путного насчёт связки fam+pcmanfm+KDE.

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

Это крайне неудачный, неоптимальный и некрасивый вариант, imho.

VeGeek комментирует...

Собственно, я и не утверждаю, что KDE-софт идеален. И тем более, pcmanfm с fam под KDE не нужны - но ведь утверждается¸ что если всё ставить из официальных репозиториев, то поломок не будет.
В том, что виноват fam - я не сомневаюсь. Ситуация такая - поставил себе OpenBOX + pcmanfm + gtk-шный софт на поиграцо, для pcmanfm пришлось включить fam. Выключать не стал. При попытке отмонтировать флешку, когда она посидела в usb-порту достаточно, выскакивает ошибка, что она занята. lsof -> виноват fam. Или ещё - перестают запускаться kde-шные аппы. Запускаю xterm, rcfam stop - и в этот момент все они передо мной выскакивают.
Далее, насчёт некрасивости варианта - просто не надо ставить всё, что не попадётся. И коль уж поставил, то уметь всё это дело откатить обратно - через менеджер пакетов, естественно. А как же ещё? Не стоит приучать пользователя удалять проги по rm -rf /usr/OBS/appname при наличии менеджера пакетов и базы, где это дело учитывается. Тогда получится вторая винда.
А вообще... Вынести все проги, собираемые в OBS в отдельную директорию - в общем правильно, но лучше тогда сделать аналог /usr/local - /usr/OBS/ какой-нибудь. А если все проги ложить отдельно - это на что будет похож PATH и /etc/ld.so.conf?

sda комментирует...

Вынести все проги, собираемые в OBS в отдельную директорию - в общем правильно, но лучше тогда сделать аналог /usr/local - /usr/OBS/ какой-нибудь. А если все проги ложить отдельно - это на что будет похож PATH и /etc/ld.so.conf?

то да, чтобы не заморачиваться с симлинками можно кидать в /usr/OBS. соответственно плюс одна запись в ld.so.conf, $PATH, $MANPATH, $PKG_CONFIG_PATH. так проще. а то сейчас мухи идут вперемешку с котлетами и никто не чешется.

sda комментирует...

хочу подчеркнуть, что речь идёт по сути о дублирующем софте, который есть в базе, постоянно обновляется, проходит мониторинг security. грешно от этого отказываться.

123 комментирует...

It is rather interesting for me to read the post. Thank author for it. I like such topics and anything connected to them. I would like to read a bit more soon.
Alex
Cell blocker