Уважаемое сообщество. Есть идея, которая может быть полезна системным администраторам, использующим свободное ПО. Так как уследить за всеми новинками обычно бывает сложно даже при наличии подписок на 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

вот немножко накатанной документации

Выделить код

Код:

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

Тема перенесена из форума «О проекте» в форум «Разработка».