Рекомендации по упаковке веб-ресурсов

Область применения

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

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

Обоснование

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

BuildRequires

Чтобы обеспечить наличие необходимых макросов RPM, все пакеты, предоставляющие веб-ресурсы, должны иметь:

BuildRequires:  web-assets-devel

Requires

Чтобы обеспечить доступность необходимых каталогов, все пакеты, предоставляющие веб-ресурсы, должны иметь:

Requires:  web-assets-filesystem

Пакеты веб-приложений, поставляющие файлы конфигурации для Apache HTTPd, должны также обеспечить установку конфигурации httpd:

Requires:  web-assets-httpd

RPM-макросы

Макрос Обычное определение Примечания

_webassetdir

%{_datadir}/web-assets

Каталог, в котором хранятся все веб-ресурсы

Место установки

Все пакеты, содержащие статическое содержимое, полезное для разных веб-приложений, должны устанавливаться в подкаталог %{_assetdir}. Например, пакет jquery-ui должен устанавливаться в %{_webassetdir}/jquery-ui.

Все пакеты, содержащие статическое содержимое, полезное только внутри пакета, в котором оно поставляется, должны продолжать поставлять это содержимое в структуре каталогов приложения. Однако они должны следовать остальным рекомендациям, изложенным в этом документе.

Расположение на сервере

Все HTTP-демоны в дистрибутиве должны делать %{_webassetdir} доступным по пути /.sysassets.

Следовательно, если пакет fabulous-web-icons поставляет значок как %{_webassetdir}/fabulous-web-icons/important.png, вы можете включить его в веб-приложение с помощью следующего HTML:

<img src="/.sysassets/fabulous-web-icons/important.png">

Тем не менее веб-приложения могут захотеть сделать подкаталоги %{_webassetdir} доступными по своему собственному пути через псевдонимы или символические ссылки для целей совместимости или чтобы избежать ненужных отклонений от upstream.

Рекомендации по содержимому

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

CSS

Чистые CSS-фреймворки можно включать как есть. CSS-фреймворки, использующие альтернативный язык, компилируемый в CSS, например LESS, СЛЕДУЕТ компилировать в CSS в рамках процесса сборки, так как это приводит к более поддерживаемым пакетам. Если это приведёт к значительным трудностям, можно поставлять включённый предварительно сгенерированный CSS с комментарием в spec-файле, объясняющим это решение. Это не отменяет требования проверять лицензии включённого содержимого.

Flash

Файлы Flash (обычно с расширением .swf) должны следовать общим рекомендациям и рекомендациям по лицензированию для кода, а не для содержимого, и должны собираться из исходного кода с использованием набора инструментов, доступного в Fedora.

Программное обеспечение Flash должно компилироваться свободным набором инструментов, таким как swfc. Предварительно собранные файлы .swf не должны включаться в пакеты Fedora. Эта компиляция должна выполняться в рамках процесса сборки пакета.

Если программное обеспечение flash не компилируется с использованием наборов инструментов внутри Fedora, то его нельзя поставлять. В некоторых случаях вы можете исключить использование программного обеспечения flash с помощью патча (например, если это запасной вариант на случай, если браузер не поддерживает HTML5) или вам придётся отказаться от упаковки программного обеспечения до тех пор, пока набор инструментов для flash не будет улучшен, чтобы позволить сборку.

Java-апплеты

Java-апплеты должны следовать общим рекомендациям и рекомендациям по лицензированию для кода, а не для содержимого. Кроме того, они должны следовать рекомендациям по Java, за исключением того, что сам файл .jar для Java-апплета следует устанавливать в подкаталог %{_webassetdir}.

Изображения

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

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

Шрифты

Все системные шрифты (доступные в %{_datadir}/fonts) автоматически становятся доступными в %{_webassetdir}/fonts/ через символическую ссылку. Дополнительную информацию об упаковке системных шрифтов см. в рекомендациях по шрифтам. Обратите внимание, что по умолчанию на HTTP-серверах доступны только шрифты, доступные в коллекции пакетов Fedora.

Обратите внимание, что эти рекомендации запрещают упаковку шрифтов в других местах. Нет веских причин поддерживать другие форматы шрифтов, поскольку большинство браузеров, поддерживающих веб-шрифты, поддерживают форматы TTF или OTF, используемые системными шрифтами, поэтому альтернативные форматы веб-шрифтов, такие как WOFF, запрещены.