>Форум Mozilla Россия http://forum.mozilla-russia.org/index.php >Разработка http://forum.mozilla-russia.org/viewforum.php?id=18 >Протокол получения последней версии ПО. http://forum.mozilla-russia.org/viewtopic.php?id=33238 |
guilder > 31-03-2009 01:48:47 |
Уважаемое сообщество. Есть идея, которая может быть полезна системным администраторам, использующим свободное ПО. Так как уследить за всеми новинками обычно бывает сложно даже при наличии подписок на rss-каналы, придумать и внедрить на сайтах протокол(интерфейс), а на файл-серверах демоны, или просто утилиты , который бы получал последнюю версию того или иного продукта и ссылку на скачивание. В принципе это тот же rss, только его желательно было бы заточить для использования в баш-скриптах и т.п. Пример. Обычно на свой файл сервер я заливаю последние версии такого ПО как Mozilla(fx,tb,sb),календарные обои, мелкие свободные игрушки, для того чтобы, для того чтобы если что можно было бы быстро поставить последнее. Но вот уследить, где что последнее вышло не всегда получается. Причем было бы хорошо чтобы всё то, о чём я говорю,было кросс-платформено. Да и предвидя то, что появятся комментарии насчёт того что большинство проектом имеют встроенные апдейтеры, иногда вся папка с последним уходит на флешку, флешка в карман, и на баррикады в которых никогда не было интернета... Вот пример общения программы и сервера Выделить код Код:GET /some.check.version.page HTTP/1.1 Host: mozilla.ru ...... HTTP/1.1 200 Ok .... #prod platf arch version downloadlink firefox winnt i386 3.0.0.8 http://some.mirror.net/somefile.msi firefox linux i686 2.0.0.21 http://some1.mirror1.org/somefile.tar.gz а у самой бы программы был бы конфигурационный файл вида Выделить код Код:[global] directory=/var/ftp/pub/soft someoptions = zxvf #product platform arch din # din - download if new [usefull] firefox winnt i386 yes thunderbird winnt i386 notify openttd linux i686 yes |
guilder > 31-03-2009 12:22:12 |
вот немножко накатанной документации Выделить код Код:Simple Version Protocol Version 0.1 Краткое описание. Протокол предоставления информации о последних версиях продуктов компаний. Цель изобретения. Быстрый и малоёмкий способ предоставления информации о последних версиях продуктов для загрузки или информирования потребителя. Данный протокол не ставит перед собой цель использования его для разработки Пакетных Менеджеров или Менеджеров Обновлений.Пакеты протокола должны быть максимально краткими и информативными, легко понимаемыми алгоритмами парсинга и в тоже время понятным человеку. Протокол может работать поверх существующих популярных протоколов, таких как HTTP. Описание протокола. Протокол текстовый. Не желательно применять в теле сообщения протокола нечитаемые символы. В случае использования поля ПРИМИЧАНИЕ перед основными данными указывать кодировку. По умолчанию предлагаю использовать кодировку UTF-8. Также желательно ПРИМЕЧАНИЕ кодировать в BASE64,хотя и необязательно если указывать кодировку. Далее под клиентом понимается программа(демон или просто утилита) запускающаяся по расписанию. Тело сообщение имеет следующий формат. Каждая строка - продукт. Каждый продукт имеет 6 полей разделённых пробелом или знаком горизонтальной табуляции. Описание полей. ПРОДУКТ ПЛАТФОРМА АРХИТЕКТУРА ВЕРСИЯ ССЫЛКА ЗАМЕТКИРЕЛИЗА ПРОДУКТ - например, firefox ПЛАТФОРМА - [winnt,linux,solaris,macosx,.., cross] АРХИТЕКТУРА - [i386,i686,i*86,ppc,x86_64,noarch] ВЕРСИЯ - версия продукта, например 3.0.0.8 ССЫЛКА - прямая ссылка на скачивание.(рабочая причем) ЗАМЕТКИРЕЛИЗА - ССЫЛКА на на статью,информацию о данном релизе или же закодированное(base64) текстовое примичание. Ссылку на заметку я думаю кодировать не нужно будет.Также это поле является необязательным. Заметку можно не кодировать если она заключена в кавычки. (данное утверждение спорно) Примерные длины полей. Продукт - не более 32 символов. заметка релиза - не более 128 символов(именно закодированного сообщения). Здесь я накладываю ограничение для того, чтобы было всё таки удобнее читать глазами, и не было переносов строк. ПРИМЕРЫ HOST:mozilla.ru ---------начало тела----------- firefox linux i*86 3.0.0.8 http://mozilla.org/.../file.ext "The greastes browser in the world" thunderbird winnt i*86 2.0.0.21 http://mozilla.org/.../file.ext http://mozilla.org/thunderbird/release/ sunbird macosx ppc 7.8.9.10 http://mozilla.org/.../file.ext chatzilla cross noarch http://mozilla.org/.../file.ext --------конец тела------------- Host:joomla.org ---------начало тела----------- cms noarch cross 1.2.3.4 http://joomla.org/.../file.ext "Joomla!" --------конец тела------------- ДОПОЛНИТЕЛЬНО Также скрипты сервера должны понимать аргументы. допустим по запросу http://example.net/svp.php?platform=winnt должны выдаваться только версии продуктов для форточек !!!Аргументом не может служить версия, ссылка и примичание Список аргументов product platform arch КРАТКО [product:64][platform:enum][arch:enum][version][downloadlink]([releasenotes:128])[newline] ПРЕДПОЛАГАЕТСЯ что клиент информирован о предыдущих версиях продукта. Если он запускается впервые, то должен сформаровать эти данные. Заключение. Скачивания того или иного продукта, а также информирование и средства информирования оставляются на суд разработчиков клиентов. Также подразумевается, что скачивание и/или информирование должно быть определено в конфигурационном файле клиента. Пример секции продуктов конфигурационного файла. firefox winnt i*86 http://mozilla.ru/svp.php openttd linux i*86 http://openttd.org/svp/ Также считаю чтобы не было разногласий определить(обсудить) точное определение архитектура и платформ. С уважением, Гилдер. в нагрузку обсуждение на ЛОРе зачем и кому это нужно http://www.linux.org.ru/view-message.jsp?msgid=3597717 |
Sergeys > 31-03-2009 14:01:27 |
Тема перенесена из форума «О проекте» в форум «Разработка». |