Philip Withnall
philip@tecnocode.co.uk
Will Thompson
wjt@endlessos.org
Milan Crha
mcrha@redhat.com
Как Центр приложений использует метаданные
Ser82-png
asvmail.as@gmail.com 2024

# Метаданные программного обеспечения

# Снимки экрана

В Центре приложений на странице сведений о приложении расположены скриншоты. Обычно это снимки различных окон/диалоговых окон приложения. Они предназначены для того, чтобы пользователь мог быстро ознакомиться с функциями приложения, его внешним видом и т.д.

Если в файле metainfo приложения присутствует более одного снимка, то Центр приложений будет показывать эти изображения в виде карусели.

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

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

По мере изменения пользовательского интерфейса скриншоты приложения могут устаревать. Поэтому, даже если в Центре приложений имеются снимки приложения, важно проверить, являются ли они актуальными или уже устарели.

Вы можете улучшить информационные скриншоты приложения:

Как добавить отсутствующие скриншоты приложения

# Контекстная панель приложения

Контекстная панель в Центре приложений представляет собой набор плиток на странице сведений о приложении, которые отображают приведённые ниже сведения.

Хранилище

Безопасность

Поддержка оборудования

Возрастной рейтинг

Здесь показан пример контекстной панели для Центра приложений:

Плитки отображаются в указанном выше порядке (начиная с плитки `Хранилище`).

Подробное описание каждой плитки приведено ниже.

# Хранилище

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

Размеры рассчитываются на основе данных, предоставляемых Центру приложений бэкендем (например, flatpak или RPM), и не могут быть указаны в метаданных приложения. Вы не можете повлиять на эту плитку, отредактировав файл metainfo приложения. Она приведена здесь только для полноты картины.

# Безопасность

В Центре приложений на странице сведений о приложении отображается плитка с информацией о безопасности. Здесь содержится краткая информация о том, можно ли считать приложение безопасным для установки и запуска и следует ли проявлять осторожность, прежде чем полагаться на него.

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

В диалоговом окне, которое появляется при нажатии на плитку, приведена информация о разрешениях, запрашиваемых приложением, сведения о лицензии и среде выполнения.

Вы можете улучшить сведения, приведённые в разделе о безопасности:

Как исправить неверную информацию о безопасности и разрешениях

# Поддержка оборудования

На странице сведений о приложении Центр приложений отображает плитку с информацией о поддержке оборудования. Она объединяет информацию о требованиях к оборудованию и аппаратных возможностях компьютера с целью выявления отсутствия или наличия совместимости.

Код учитывает описанное ниже оборудование. В будущем может появиться больше информации о поддерживаемом оборудовании.

Наличие/необходимость тачпада, мыши или клавиатуры

Требуется ли игровой контролер

Минимальный и рекомендуемый размер экрана для работы приложения

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

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

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

Как добавить недостающую информацию об оборудовании

# Возрастной рейтинг

На странице сведений о приложении Центр приложений отображает плитку с информацией о возрастном рейтинге. На ней показано, для какой возрастной категории должно подходить приложение, исходя из типов контента, который заявлен в приложении. Эта информация обобщена в формате, аналогичном рейтинговым сертификатам игр или фильмов для вашей страны.

Например, эта информация позволяет определить, содержит ли игра насилие или в приложение встроена реклама.

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

Как улучшить информацию о возрастном рейтинге:

Как добавить недостающую информацию о возрастном рейтинге

# Лицензия

В Центре приложений отображается плитка с информацией о том, является ли приложение свободным программным обеспечением или его лицензия является проприетарной, специальной или информация о лицензии неизвестна. Эта плитка содержит более подробную информацию о лицензии проекта. Здесь также перечислены некоторые преимущества свободного программного обеспечения. Узнайте больше

Иногда информация о лицензии для приложения является неверной, и, следовательно, приложение, которое на самом деле является свободным программным обеспечением, будет отображаться как «проприетарное». Аналогичная ситуация возникает когда информация о лицензии неизвестна.

В Центре приложений свободные лицензии и лицензии с открытым исходным кодом выделены зелёным цветом, приприетарные и специальные - жёлтым, как показано здесь. Неизвестные лицензии выделены серым цветом.

Вы можете добавить или улучшить информацию о лицензии:

Как исправить неверную информацию о лицензировании

# Ссылки

В соответствующем разделе Центра приложений размещены ссылки на внешние ресурсы приложения. Они могут быть следующими:

| Ссылка на сайт
| Ссылка для пожертвований
| Ссылка для помощи с переводом
| Ссылка для сообщений об ошибках
| Ссылка на справку
| Ссылка на контактную информацию

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

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

Вы можете улучшить раздел ссылок:

Как добавить недостающие ссылки

# Карусель плиток

Приложения, представленные в Центре приложений, отображаются в виде карусели в верхней части главного окна, как показано здесь. У каждой плитки карусели есть фоновый цвет, который автоматически формируется на основе значка приложения. Иногда этот цвет не совсем подходит для приложения и должен быть явно указан разработчиком приложения.

Набор предлагаемых приложений определяется разработчиками дистрибутива Linux.

Вы можете улучшить плитку карусели:

Как задать фоновый цвет плитки карусели

# Откуда берутся метаданные

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

Файл metainfo представляет собой XML-файл. Его формат указан в спецификации AppStream.

Смотрите файл metainfo для приложения GNOME Files.

appdata является более старым термином для metainfo.

# Что произойдёт, если метаданные отсутствуют

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

Вы можете помочь улучшить метаданные для приложения!

# Как внести недостающую информацию

Если вы обнаружите, что на странице приложения отсутствует информация или она неверна, то можете внести изменения одним из двух способов:

Вы можете сообщить об отсутствующих / неверных метаданных в систему отслеживания ошибок соответствующего приложения, чтобы разработчик мог это исправить.

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

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

Обычно приложения размещаются на GitLab или GitHub. Например, приложения GNOME расположены на gitlab.gnome.org.

# Как добавить отсутствующие скриншоты приложения

Информация о скриншотах приложения хранится в элементе `<screenshots>` внутри раздела `<component>` файла metainfo.

Рекомендуемое количество скриншотов для приложения - от 5 до 10. В идеале скриншоты должны быть в формате PNG с соотношением сторон 16:9 и шириной не менее 620 пикселей.

В качестве примера ниже представлены записи скриншотов для приложения Центр приложений:

<screenshots> <screenshot type="default"> <image>https://gitlab.gnome.org/GNOME/gnome-software/raw/HEAD/data/metainfo/ss-overview.png</image> <caption>Overview panel</caption> </screenshot> <screenshot> <image>https://gitlab.gnome.org/GNOME/gnome-software/raw/HEAD/data/metainfo/ss-details.png</image> <caption>Details panel</caption> </screenshot> </screenshots>

# Как исправить неверную информацию о безопасности и разрешениях

Информация о безопасности и разрешениях для приложения поступает из разных источников в зависимости от того, как оно упаковано. Для традиционно упакованных приложений, например, в формате RPM или DEB, информация о безопасности или разрешениях недоступна, и ничего с этим нельзя сделать.

Для приложений flatpak информация берется из манифеста flatpak, в котором указывается, какие дыры в изолированной среде требуются приложению. Каждая из этих дыр, как правило, приводит к снижению уровня безопасности приложения, отображаемого в Центр приложений — переводя его с «безопасно» на «потенциально небезопасно» и «небезопасно».

Чтобы повысить уровень безопасности приложения, его изолированность должна быть максимально жёсткой, путем удаления разрешений изолированной среды там, где они не нужны, и использования порталов вместо разрешений, где это возможно. Использование порталов не снижает отображаемый уровень безопасности приложения в Центре приложений.

Например, если приложение запрашивает доступ для чтения/записи ко всей файловой системе (`--filesystem=host`): действительно ли оно в этом нуждается или ему требуется доступ только к файлам в определённых местах? Если это так, то можно было бы использовать файловый портал или более конкретные права доступа к файловой системе.

Если приложение работает на Wayland и, в качестве резервного варианта должно работать на X11 без использования специальных функций X11, может ли оно использовать `--socket=fallback-x11` вместо `--socket=x11`?

В будущем сюда могут быть добавлены инструкции по конкретным разрешениям или другим пакетным форматам.

Дополнительный материал для чтения:

# Как добавить недостающую информацию об оборудовании

Информация об оборудовании для приложения хранится в элементах `<requires>`, `<recommends>` и `<supports>` внутри раздела `<component>` файла metainfo.

Центр приложения понимает элементы `<control>` и `<display_length>`.

Примеры метаданных смотрите в этом блоге или этом блоге.

# Как добавить недостающую информацию о возрастном рейтинге

Информация о возрастном рейтинге для приложения хранится в элементе `<content_rating>` внутри раздела `<component>` файла metainfo.

Для заполнения этого элемента должен использоваться стандарт OARS 1.1. Если элемент `<content_rating>` не указан, то рейтинг содержимого будет неизвестным. Если этот элемент указан, но оставлен пустым, значит, в приложении нет содержимого, которое могло бы быть неподходящим для определённой аудитории.

Используйте генератор OARS для получения подходящей информации о возрастном рейтинге приложения.

# Как исправить неверную информацию о лицензировании

Лицензионная информация для приложения хранится в элементе `<project_license>` внутри раздела `<component>` файла metainfo.

Содержимое этого элемента должно быть отражено выражением SPDX, которое описывает «основную» лицензию для проекта. Обычно это должна быть лицензия на код, не включающая лицензию на документацию или дополнительный материал.

Если в выражении SPDX представлена одна лицензия или комбинация нескольких лицензий через «and», все из которых одобрены FSF или OSI, то приложение считается «свободным программным обеспечением» и об этом сказано на странице лицензии. В противном случае оно будет считаться «проприетарным».

Если приложение помечено как «проприетарное», хотя вы считаете, что это не так, скорее всего, элемент `<project_license>` содержит лицензию на документацию проекта. Удалите его.

Пример изменения метаданных лицензии с:

<project_license>GPL-2.0+ and CC-BY-SA-3.0</project_license>

на

<project_license>GPL-2.0+</project_license>

Дополнительный материал для чтения:

Не размещайте (как правило) лицензию на документацию в данные приложения

# Как добавить недостающие ссылки

Информация о ссылках для приложения хранится в элементах `<url>` внутри раздела `<component>` файла metainfo.

Добавьте столько типов ссылок, задокументированных в спецификации appstream, сколько доступно приложению. Если для определённого типа ссылок не существует подходящей страницы, то добавлять её необязательно.

Пример ссылок на ресурсы для Центра приложений:

<url type="bugtracker">https://gitlab.gnome.org/GNOME/gnome-software/-/issues</url> <url type="contact">https://discourse.gnome.org/tag/gnome-software</url> <url type="contribute">https://welcome.gnome.org/app/Software/</url> <url type="donation">https://www.gnome.org/donate/</url> <url type="homepage">https://apps.gnome.org/Software</url> <url type="translate">https://l10n.gnome.org/module/gnome-software/</url> <url type="vcs-browser">https://gitlab.gnome.org/GNOME/gnome-software/</url>

# Как задать фоновый цвет плитки карусели

Фоновый цвет плитки карусели обычно автоматически извлекается из значка приложения. Однако, если этот цвет вас не устраивает, его можно изменить, используя элемент appstream’s `<branding/>` с заявленными цветами (начиная с 47.x). Преимущество заключается в том, что другие приложения также могут использовать эти цвета.

Примеры записей брендинга:

<branding> <color type="primary" scheme_preference="light">#ff00ff</color> <color type="primary" scheme_preference="dark">#993d3d</color> </branding>

Обратите внимание, что атрибут `scheme_preference` будет проигнорирован, Центр приложений самостоятельно выберет лучший цвет темы.

Для обеспечения обратной совместимости оставлена возможность добавлять следующий элемент XML в раздел `<component>` файла metainfo:

<custom> <value key="GnomeSoftware::key-colors">[(124, 53, 77), (99, 16, 0)]</value> </custom>

но, при этом, элемент `<branding/>` имеет более высокий приоритет.

Значение `GnomeSoftware::key-colors` является параметром типа `a(yyy)` в текстовым формате GVariant и представляет собой неупорядоченный набор ключевых цветов для приложения. Каждый элемент набора представляет собой цвет в формате RGB в диапазоне от `(0, 0, 0)` до `(255, 255, 255)`.

Цвета должны быть подобраны таким образом, чтобы они:

Были легко узнаваемыми для конкретного приложения и, по возможности, соответствовали фирменному стилю приложения.

Контрастировали с краями значка приложения, чтобы на его фоне можно было легко различить значок.

Контрастировали с цветом текста переднего плана в теме Adwaita (`#2e3436`), в том числе и её тёмного варианта (`#eeeeec`). Обычно это означает выбор цвета со средним уровнем яркости.

Контрастность можно проверить с помощью приложения Контраст.

Должен быть указан хотя бы один цвет. Можно указать больше цветов, если один не удовлетворяет всем вышеперечисленным требованиям, Центр приложений сам выберет наиболее подходящий для использования в карусели. Если указан только один цвет, его яркость и насыщенность могут быть изменены для улучшения контраста с цветом переднего плана. Если указано более одного цвета, будет выбран тот, который наилучшим образом контрастирует с цветом переднего плана, и его яркость и насыщенность не изменятся.

# Как протестировать изменение фонового цвета плитки карусели

Измените метафайл своего приложения, а затем запустите Центр приложений используя:

gnome-software --show-metainfo=/path/to/app.metainfo.xml,icon=/path/to/app/icon.png

Откроется страница с подробной информацией о вашем приложении. Если вы вернетесь на страницу обзора Центра приложений, ваше приложение будет единственным в «Избранном» карусели.