воскресенье, 23 января 2011 г.

Agilia wants YOU! Как стать маинтейнером, или Ленинский призыв. (репост)

Оригинал был на МыЛинупсе, это обновлённый вариант :)

Вы молоды, веселы и вам нечем заняться?… Ой, блин, не то… А, вот!

Краткая и подробная инструкция о том, как стать маинтейнером и членом команды самого свободолюбивого дистрибутива Этой Страны.

Грязнейший ПЕАР included, читать на свой страх и риск!

Чтобы стать рабом навекимаинтейнером AgiliaLinux, нужно проследовать по данному гайду от начала до конца, собственно :) Маинтейнерство — это очень тайное ремесло, которое передаётся из поколения в поколение: не забудьте показать этот пост своему сыну, когда он станет совершенноLinuxным!

Шаг 0: А можно ли?

 Может ли стать маинтейнером Вася Пупкин? Да, если Вася:

  1. холостой и бездетный белый мужчина…ой, не тот список, ща достану нужный…вот!
Так вот, чтобы Вася мог подумать о карьере маинтейнера, он должен:

  1. использовать Linux, и не быть новичком. Новичков мы ждём в пользователях :)
  2. уметь работать с bash-скриптами
  3. иметь представление о том, как собирается софт из исходников
  4. знать, что такое patch и diff (желательно, но нифига не обязательно)
  5. иметь достаточное количество свободного времени, не только своего, но и процессорного
Если вы соответствуете этим требованиям, смело читайте дальше, если же нет — все равно читайте дальше: маинтейнерство и работа в команде очень здорово повышают знания, проверено собственным (подчас горьким) опытом.

Лирика: вообще, неким самоэкзаменом можно считать установку генты без заглядывания в хендбук. Если вы её прошли — вам уже ничего не страшно. Ах да, "без хендбука" = "чисто по мозгам", а не с гуглем и матами ;)

Шаг 0,5: А надо ли?

Быть маинтейнером это почётно, круто, повышает ЧСВ и всё такое, но! Быть маинтейнером — весьма ответственно. И это ответственность перед людьми, в самую первую очередь. Ты будешь тем, кто приносит обновления Супер-Пупер-Программы людям, именно на тебя они надеются. И если ты забьёшь на это, то много-много людей будет испугано и разочаровано. Ты готов нести ответственность за пользователей?

Став маинтейнером, ты принимаешь на себя ответственность за программу. Лучше всего, когда ты маинтейнишь то, чем пользуешься ежедневно (иначе получается как в Debian — "скорее в холодильнике вскипит чайник, чем обновятся редко используемые пакеты"). Ты готов отслеживать обновления программы, которую маинтейнишь, и оперативно обновлять её?

У дистрибутива есть две архитектуры: i686 и x86_64. Собрав пакет под одну архитектуру, ты обязан собрать его под другую. Ты готов плясать с виртуалкой для другой архитектуры?

Лирика: Этот принцип соблюдался ранее очень не всегда, вследствие чего мы до сих пор разруливаем проблемы и рекомендуем новичкам x86_64–образы. К сожалению, даже ко второй бете в userland-е (репозиторий с пакетами, не входящими в основную систему) достаточно расхождений. Но благодаря гранту данная ситуация продлится недолго.

Баги программы — твои баги, и ты должен разруливать их. Ты обязан понимать, какой баг является багом самой программы, а какой — багом именно твоей сборки. Ты обязан следить за багтрекером и фиксить баги. Если ты программист — пробуй решать баги, связываться с апстримом, слать туда патчи, которые чинят баги. Если ты не программист — следи за сборкой, делай её максимально работоспособной. Не брезгуй патчами из других дистрибутивов, но проверяй их: не все
йогурты патчи одинаково полезны. Ты готов гоняться за жуками с мухобойкой?

Ты обязан забыть про дистросрачи. AgiliaLinux должна стать твоим единственным и неповторимым Linux-домом. Ты можешь использовать любые ОС и дистрибутивы в любых целях, но твоей ОСНОВНОЙ системой, в которой ты проводишь больше всего времени, должна стать Агилия. Ты готов сделать окончательный выбор дистрибутива и остаться верным ему до конца маинтейнерских дней своих?

Если ты ответил "да" на все вопросы — читай дальше, если у тебя есть затруднения — читай дальше, если ты хотя бы на один из вопросов ответил "нет" — маинтейнерство не для тебя, но мы будем рады увидеть тебя в пользователях (и поверьте, очень много пользователей после определённого времени ответили для себя на все пять вопросов "да", и присоединились к нам).

 Шаг 1: Подготовка инструментария

Что нужно, чтобы стать маинтейнером?

  1. Установить AgiliaLinux (здесь вы можете её скачать без смс, капчи и регистрации)
  2. Прочитать документацию
  3. Попробовать собрать нужный пакет
  4. Связаться с нашей командой
Начнём с установки: её осилит каждый. Устанавливать можно любой вариант, который вам подходит. Помните, что KDE и GNOME могут привносить в собираемые программы лишние зависимости, и если вы собираете в них программу, которая не зависит от DE, следите, чтобы зависимости KDE/GNOME (особенно этим грешит GNOME!) не попали в универсальный пакет. Если они представляют некоторый важный функционал, но несут ОЧЕНЬ много зависимостей, попробуйте собрать два пакета: для DE и для не-DE систем: (пример: file-roller и file-roller-gnome содержат разные зависимости под разные случаи).

После установки вы уже снабжены всем, что может понадобиться для сборки пакетов, посему переходим к Шагу 2.

Шаг 2: Документация

Главным справочным средством у нас является наша местная Вики-система. PDF-ок нету! Вот то, что должно быть прочитано:

После прочтения всего этого можно начинать работать с mkpkg — нашим средством сборки пакетов. Перед самой первой сборкой выполните mpkg-maintainer --set ИМЯ E_MAIL — тем самым в ваших собранных пакетах будут находиться ваш ник и e-mail.

Шаг 3: Вступление в команду

Вы можете в любой момент зайти в нашу Jabber-конференцию agilialinux@conferences.jabber.ru, она предназначена как для пользователей, так и для разработчиков. Заодно почувствуете наш дружный коллектив троллей. Там можно просто общаться, задавать вопросы и знакомиться с пользователями/пользовательницами :) Ну а самое интересное именно в том, что приём в команду идёт именно так. Порядок такой: у вас есть на руках пакет A, которого нету в репозитарии, и вы хотите его залить туда и маинтейнить. Вы отдаёте пакет нашему главе aix27249, он его проверяет, и если он хороший, заливает в репозитарий, при этом принимая решение — делать ли вас маинтейнером или пока что нужно подождать (это зависит от многих причин, весьма субьективных подчас). Обычно после этого вам выдаётся инвайт — право регистрации как маинтейнера в нашем репозитарии. После регистрации у вас есть право заливать пакеты в тестовый репозитарий. Если вы показали свою состоятельность как маинтейнер, вам выдаётся обычный доступ в репозитарии. Особо везучие и те, кто связаны с DE/WM, в конце концов, попадают в CORE — подмножество маинтейнеров, которые могут работать с пакетами, выходящими на релизных дисках (те самые DVD, которые качают пользователи, полностью состоят из пакетов работы CORE-маинтейнеров). Это высшая ступень иерархии :)

Если вы не боитесь трудностей и хотите вступить в самую весёлую, умную, сообразительную, свободную и просто крутую команду, которую я встречал…

WELCOME!

четверг, 20 января 2011 г.

Добавление кнопок публицации сообщения в блоге на blogspot

Для этого надо: зайти в админку блога, переходим на вкладку "Дизайн" → "Элементы страницы". Далее, смотрим на картинку, и нажимаем на ссылку 1, в появившемся окне устанавливаем галку на чекбоксе 2. Всё, нажимаем "сохранить", окно закрывается, нажимаем "сохранить" еще раз и радуемся новым кнопкам публицации сообщения.

Два самых распространненых мифа об GPL лицензии

Очень часто я вижу серьёзные заблуждения людей в том, что разрешает и не разрешает лицензия GPL. Два самых часто встречающихся мифов выглядят так:

  • Весь свободный софт обязательно должен быть бесплатным
  • Нельзя продавать чужой свободный софт

Пришло время развеять эти заблуждения.

Миф 1. Весь свободный софт обязательно должен быть бесплатным

Многие люди думают, что свободный софт (распространяющийся под лицензией GPL, в большинстве случаев), обязательно должен быть бесплатным. Но это не так. Свободный софт можно продавать за любую цену, любому покупателю, который согласится приобрести ПО (отдельно, или в составе другого продукта). В преамбуле GPL написано:

When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things.

Что можно перевести как:

Говоря о свободном программном обеспечении, мы имеем в виду свободу, а не безвозмездность. Настоящая Стандартная Общественная Лицензия разработана с целью гарантировать вам право распространять экземпляры свободного программного обеспечения (и при желании получать за это вознаграждение), право получать исходный текст программного обеспечения или иметь возможность его получить, право вносить изменения в программное обеспечение или использовать его части в новом свободном программном обеспечении, а также право знать, что вы имеете все вышеперечисленные права.

Миф 2. Нельзя продавать чужой свободный софт


Очень часто можно увидеть возгласы негодования людей, которые видят, как сторонние фирмы продают такие известные продукты, как Gimp, Firefox, Open Office.org и другие под измененным названием. К сожалению (или счастью, кому как), это никак не запрещается лицензией GPL. Главное при этом, чтобы продавцы не изменяли список авторов, а также были готовы предоставить исходный код всем, кто приобрел их продукт (подробнее об этом далее). Почему это возможно? Ответ прост — лицензия GPL подразумевает передачу прав на исходный код всем, кто получил этот исходный код. То есть, скачав исходные коды свободного ПО, например, GIMP, вы являетесь полноценным владельцем исходного кода (вы приобретаете ПО, а не право им пользоваться) под лицензией GPL. А это подразумевает то, что вы можете свободно изменять, распространять, продавать это ПО. Вот цитата из GPL (пункт 2):

You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: ...

Вот перевод этой части на русский язык:

2. Лицензиат вправе модифицировать свой экземпляр или экземпляры Программы полностью или любую ее часть. Данные действия Лицензиата влекут за собой создание произведения, производного от Программы. Лицензиат вправе изготовлять и распространять экземпляры такого произведения, производного от Программы, или собственно экземпляры изменений в соответствии с пунктом 1 настоящей Лицензии при соблюдении следующих условий: ...

Выводы

Программа под GPL лицензией — не бесплатная программа. И, получив программу под лицензией GPL, вы можете делать с ней всё, что не запрещено GPL — продавать, изменять, запускать, распространять.

пятница, 14 января 2011 г.

ISPManager session save path

Если вдруг при использовании ISPManager и PHP в режиме CGI (FastCGI) скрипты будут ругаться на невозможность записать сессию:

[Fri Jan 14 20:33:36 2011] [warn] mod_fcgid: stderr: PHP Warning: Unknown: open(/var/lib/php/session/sess_dfb2m61u4ugabc729c3pl8ioc4, O_RDWR) failed: Permission denied (13) in Unknown on line 0
[Fri Jan 14 20:33:36 2011] [warn] mod_fcgid: stderr: PHP Warning: Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/var/lib/php/session) in Unknown on line 0
[Fri Jan 14 20:33:36 2011] [warn] mod_fcgid: stderr: PHP Warning: session_start() [function.session-start]: open(/var/lib/php/session/sess_dfb2m61u4ugabc729c3pl8ioc4, O_RDWR) failed: Permission denied (13) in /var/www/xxx/yyy.php on line 2

То в файле /etc/php.ini надо закомментировать строку

session.save_path = /var/lib/php/session/

После этого надо перезапустить веб сервер, и всё заработает.

понедельник, 10 января 2011 г.

Mysql регистр таблиц

Для отключения регистрозависимых названий таблиц необходимо в файл /etc/my.cnf в секцию mysqld добавить параметр lower_case_table_names = 1

пятница, 7 января 2011 г.

SnapFly

В рамках изучения питона была форкнута софтина adeskmenu. Теперь у меня есть полезный опыт, а у сообщества мощное и легкое GTK меню SnapFly:)