Category: it

Category was added automatically. Read all entries about "it".

Speaker Rabbit

FreeIPA/Ubuntu

Картина маслом в здоровом апстриме: два сотрудника Red Hat добавляют поддержку Ubuntu поверх только что сделанной платформизации FreeIPA (делалась для добавления поддержки systemd, над которой я работаю уже третью неделю), а бывший сисадмин университета Аалто, перейдя в Canonical, берется за добавление отсутствующих и исправление присутствующих пакетов.

Ради развлечения почитайте увлекательную инструкцию "как заставить все это взлететь на Ubuntu Oneiric"
Speaker Rabbit

Бесконечная автоматизация

Конечные автоматы бывают разные. Есть генераторы исходного кода по схемам-описаниям, есть табличные исполнители, а есть неявные конечные автоматы. Они сложнее, но читаются как детективный роман -- со множеством веток предположений и откатов на исходные позиции, а так же с необходимостью найти на них время. Неявные конечные автоматы в разных проектах -- это то, что одновременно удерживает от прихода новых участников (нужно уметь раскручивать детективный сценарий) и позволяет глубже понять, что и как задумывалось. Разгадав очередной автомат, получаешь вполне осязаемое удовлетворение.
Collapse )
Speaker Rabbit

FreeIPA 2.1

Выпустили FreeIPA 2.1. Это первый релиз с начала моей работы над проектом. В релиз вошел уже описанный ранее hbactest -- команда для тестирования работоспособности правил доступа к различным службам.

Параллельно коллеги выпустили бету RHEV 3, в описании которой The Register отметил и нас:
You can still use Microsoft's Active Directory for authentication of users and access to resources on the network, but Red Hat is also allowing customers to go all-red and use its own Enterprise IPA (which is not a hoppy beer*, but rather an identity manager based on LDAP and Kerberos).
* (IPA у британских и американских любителей пива однозначно ассоциируется с Indian Pale Ale).

Впереди работа над FreeIPA 3.0 -- помимо общих усовершенствований основу составит поддержка доверенности между доменами (cross-domain trusts). Надеюсь, что в обновление стабильной ветки (2.1) успею дописать поддержку других дистрибутивов, начатую вот здесь. В первую очередь для клиентской стороны, потому что серверная требует серьезного участия со стороны дистрибутиво-делателей.

Примером может служить недавний выпуск обновления по безопасности curl. В curl в рамках этого обновления оторвали возможность делегирования билетов Kerberos от клиента к серверу. И это правильно -- но только в том случае, когда неизвестно, можно ли этому серверу доверять. Клиент FreeIPA использует XML-RPC для доступа к серверу FreeIPA. Реализовано это средствами библиотеки xmlrpc-c, которая внутри использует libcurl для предоставления транспорта. Библиотека xmlrpc-c позволяет, если libcurl собран с поддержкой GSSAPI, делегировать имеющиеся билеты на сервер. Когда в libcurl эту поддержку "вырвали", то клиент FreeIPA (а их два -- консольный и административный интерфейс в браузере) не смог общаться с сервером.

Поскольку первоначальное исправление было связано с потенциальной проблемой с безопасностью, потребовалось доказать апстриму libcurl, что поддержку GSSAPI нужно вернуть хотя бы опицонально (дать возможность пользователю API решать, можно ли делегировать билеты или нет). Ушло несколько недель и на то, чтобы патч, возвращающий поддержку GSSAPI (уже в опциональном виде) был принят в апстрим -- libcurl очень серьезно относится к совместимости своего API с предыдущими версиями. В конце концов, все это было сделано и добавлено.

Как результат, необходимо было:
  1. собрать новую версию libcurl
  2. добавить патч к xmlrpc-c для поддержки опционально GSSAPI в libcurl
  3. исправить код, использующий xmlrpc-c, чтобы использовать опциональную поддержку GSSAPI
  4. собрать все это для Fedora 14 (обновления), 15 (обновления), 16, RHEL5 (обновления), RHEL6 (обновления)
  5. Вспомнить, что некоторые утилиты использовали утилиту curl для общения и подразумевали делегирование билетов -- значит, надо добавить поддержку этой опции в curl, собранный с новым libcurl
  6. собрать новый curl в Fedora 14 (обновления), 15 (обновления), 16, RHEL5 (обновления), RHEL6 (обновления)
Понятно, что почти все эти действия подразумевают также привязывание сборочных зависимостей и зависимостей в пакетах к правильным версиям пакетов libcurl и xmlrpc-c, поскольку иначе вся машинерия не будет работать и количество отчетов о странных ошибках в стиле "оно просто не работает" будет огромным. Эта типичная работа создателей дистрибутивов совместно с апстримными проектами -- особенно для тех случаев, когда эти проекты имеют развесистые зависимости на другие проекты. Времени на такую координацию уходит много, особенно когда ответственные мейнтейнеры в отпусках или слабо доступны.

Такие дела.
Speaker Rabbit

HBAC в SSSD/FreeIPA (часть 2)

Написал модуль для тестирования HBAC:
https://www.redhat.com/archives/freeipa-devel/2011-July/msg00375.html

1. Симулируем доступ к службе, используя все включенные правила в IPA:
[root host0 ~]# ipa  hbactest --user=a1a --srchost=foo --host=bar --service=ssh
--------------------
Access granted: True
--------------------

2. Симулируем доступ к службе, используя все включенные правила + указанные в --rules (возможно отключенные):
[root host0 ~]# ipa  hbactest --user=a1a --srchost=foo --host=bar --service=ssh --rules=my-second-rule
--------------------
Access granted: True
--------------------

3. Симулируем доступ, используя только правила, указанные в --rules (--validate ограничивает список правил только теми, что в --rules):
[root host0 ~]# ipa  hbactest --user=a1a --srchost=foo --host=bar --service=ssh --rules=my-second-rule,new-rule --validate
--------------------
Access granted: True
--------------------
  Passed rules: new-rule
  Denied rules: my-second-rule

4. Симулируем доступ и получаем подробный отчет, какие из включенных в IPA правил сработали:
[root host0 ~]# ipa  hbactest --user=a1a --srchost=foo --host=bar --service=ssh  --validate
--------------------
Access granted: True
--------------------
  Passed rules: allow_all
  Denied rules: my-second-rule, my-third-rule, myrule

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

По всей видимости, --validate нужно переименовать во что-то иное (--detail?) и перекрыть --all для указания того, что к --rules надо добавить все включенные правила в IPA, иначе логика не очень ясна, по крайней мере, коллега уже успел ошибиться при тестировании.
Speaker Rabbit

HBAC в SSSD/FreeIPA

Немного о том, чем я сейчас занят. Записи с тегом "заметки-на-полях" -- моя внутренняя кухня, не предназначенная для активного обсуждения и цитирования вне этого ЖЖ. Мой мозг пока с трудом привыкает к большому объему нового (и вспоминанию старого) кода, поэтому заметки скорее для себя, чем разъяснения для других. Если объем превысит выделяемое самим собой время, я просто отключу комментарии, чтобы не отвлекаться, не обессудьте.

Collapse )
Speaker Rabbit

Последняя попытка

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

Вчера объявили дополнительный набор докладов, так что я сделал последнюю попытку хоть как-то рассказать о части наших проблем с Qt:

http://sf2011.meego.com/program/sessions/imaging-road-ahead
Speaker Rabbit

Продолжение начала конца

Andy Updegrove анализирует Новелловскую форму 8-K: http://www.consortiuminfo.org/standardsblog/article.php?story=20101124103213556

  • Сделка имеет форму "обратного треугольного слияния" -- Attachmate создаст пустышку, которая по завершении сделки вольется в Novell, а не наоборот. Это стандартная форма защиты компании-поглотителя от неизвестных проблем поглощаемой компании.

  • За вычетом 450млн за патенты для CPTN, имеющегося Новелловского кэша в 1.09млрд, на долю продаваемого старого Новелла останется около 660млн. Attachmate вкладывает существенно меньше 660млн в сделку, поскольку Elliot Associates сохранит свой пакет в старой компании в ее новой форме.

  • Условия завершения сделки можно трактовать так, что Attachmate использует 450млн, которые выплачивает CPTN (консорциум под руководством Microsoft), чтобы расплатиться за Novell.

  • Скорее всего этот оборот -- попытка Microsoft продлить патентное соглашение, которое истекает в 2011, и в то же время не подставиться опять в антимонопольном процессе. Потому и консорциум, а не напрямую.

  • Судя по 8-К, самим Attachmate придется затратить 425млн своих денег (плюс оперативные расходы), которые они постараются также отбить через последующие продажи по частям того, что останется.

  • По всей видимости, продажа патентов в CPTN -- это не полная и безоговорочная передача прав, а какое-то их перераспределение между Новым Новеллом и CPTN, видимо, аналогично предыдущему патентному соглашению, но с большим перекосом в сторону CPTN/Microsoft.

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

  • Однако, если сделка с Attachmate совсем сорвется, то у CPTN будет право выбрать себе что-нибудь (хоть все 822) из патентного портфолио старого Новелла. При этом Новелл все равно получит 450млн и, возможно, что-то из портфолио CPTN, если таковое будет создано. То есть, Microsoft в этом случае получит вечные лицензии на патенты Новелла, а если пожелает, то даст Новеллу вечные лицензии на какие-то из своих патентов, "влитых" в CPTN.

  • Последнее также означает, что CPTN скорее всего формируется как противовес Open Invention Network -- механизм для формирования пула патентов, с правами лицензирования их всеми участниками консорциума. Скорее всего, результатом будет увеличение "акций по принуждению", направленных на лицензирование этого пула (или его части).



Более подробно о сделке мы узнаем из того пакета документов, который Новелл обязан разослать всем своим владельцам акций (сделка должна получить большинство голосов владельцев акций) и из отчета 10-К, который Новелл будет обязан предоставить в SEC по результатам своего финансового года. Уже сейчас есть как минимум два групповых иска от владельцев акций, которые считают, что сделка менее выгодна, чем предыдущее предложение от Eliott Associates и обвиняют совет директоров в пренебрежении интересами акционеров.

Update: http://www.novell.com/company/ir/message.html
Novell will continue to own Novell’s UNIX copyrights following completion of the merger as a subsidiary of Attachmate.
Speaker Rabbit

Контейнеры

Бойцы из НезлойИмперии пытаются родить новый формат изображений, WebP. За основу взят кодек VP8 и контейнер RIFF. Желание поскорее использовать VP8 для замены JPEG так велико, что бойцы совсем забыли вторую важную часть любого внятного формата изображений: хранение мета-данных. Я даже могу представить, что ими двигало: предложенные четыре блока мета-данных ICMT, ICOP, IART, INAM без какой-либо спецификации содержимого (кодировка, ожидания по структуре, ...) явно базируются на аналогичных блоках из спецификации PNG.

Если посмотреть на проблему серьезнее, то EXIF+IPTC+XMP сегодня описывают порядка нескольких сотен тегов. Если для каждого из них выделять отдельный блок в контейнере, указывать точные структуры хранения и кодирования, то загнутся реализаторы, а формат просто никто не будет внятно поддерживать.

Игнорирование мета-данных в изображениях в данном контексте отражает общий подход клиентской стороны гугловцев. Лишь относительно недавно в Picasa появилась полноценная поддержка XMP. Параллельного слияния тегов из разных контейнеров у них нет до сих пор (например, title/description могут храниться во всех трех указанных выше типах хранилищ мета-данных в одном изображении -- что делать, если пользователь хочет изменить title, какое из хранилищ будет приоритетным, как изменить данные в остальных?). Теперь Хром хочет ускориться за счет уменьшения объема перекачиваемых данных (это единственная фича, которую объявляют стоящей для себя разработчики WebP). Для браузеров мета-данные в изображениях бесполезны, API доступа к таким данным в рамках спецификаций W3C просто отсутствуют. Вот и рождается очередной контейнер-недоконтейнер. WebM, кстати, тоже поддержку мета-данных зажилил.
Speaker Rabbit

mozilla 591707

Простой вопрос: допустим, у меня есть некоторый код на javascript. Как этот код может получить текстовое представление самого себя в процессе исполнения?

Усложняем. Код представлен на самом деле в HTTP-редиректе, выполненном вот таким образом:
<html>
   <head>
      <meta HTTP-EQUIV="Refresh" 
               CONTENT="2; URL=javascript:здесь наш код">
   </head>
   <body></body>
</html>


как добиться того, чтобы код прочитал содержимое Refresh (сам себя)?