Документация
ОС Аврора 5.0.1

Валидатор RPM-пакетов

Валидатор проверяет установочные пакеты для ОС Аврора на соответствие требованиям. Он вызывается автоматически при установке RPM-пакетов на устройства с ОС Аврора. Пакеты, не прошедшие валидацию, не могут быть установлены.

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

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

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

Содержание:

Внимание! Всегда следует обращать внимание на предупреждения RPM-валидатора. При наличии предупреждений установка пакета в одном из следующих выпусков ОС Аврора может стать невозможной.

Как убедиться, что установка пакета будет возможной в ОС Аврора

  • Для проверяемого пакета необходимо запустить rpm-validator.
  • При наличии ошибок или предупреждений, перечисленных в таблицах ниже, пакет не сможет быть установлен на ОС Аврора. В противном случае пакет сможет быть установленным на ОС Аврора.

Описание изменений в требованиях к установочным пакетам

Некоторые предупреждения RPM-валидатора, появившиеся в предыдущих релизах, в новых версиях ОС Аврора станут ошибками, что приведёт к невозможности установки пакетов. Также в новых версиях добавляются новые предупреждения, которые допускают установку пакетов, содержащих их, в текущей версии ОС Аврора, но приведут к невозможности установки пакетов в будущих релизах.

Изменения в требованиях RPM-валидатора Рекомендация по исправлению
Критичные
Нарушение этих требований приведёт к невозможности установки пакета, начиная с релиза ОС Аврора 5.1
OrganizationName and ApplicationName pair should form a package name
(e.g. for package "com.example.app" ApplicationName must be "app"
and OrganizationName must be "com.example")
обратная доменная нотация именования пакетов обязательна
Использовать обратную доменную нотацию для значения поля Name в .spec файле. Например, ru.omp.example
[/usr/bin] Direct package ownership of /usr/bin is disallowed.
прямое владение директорией /usr/bin в пакете запрещено
Убедиться, что /usr/bin не используется в списке файлов/путей rpm пакета
OrganizationName should follow reverse domain notation (at least up to second-level domain), e.g.: "org.example"
уровень OrganizationName не может быть меньше двух
Убедиться, что OrganizationName содержит не меньше двух доменов.
Например, (ru.omp)
X-Application секция в desktop файле обязательна
Отсутствие секции может привести к разным предупреждениям на версиях ОС до 5.1
Добавить секцию X-Application в desktop-файл согласно описанию
Installation not allowed in this location
Использование следующих установочных путей запрещено:
/usr/share/dbus-1/services/.*
```/usr/lib(
64)/systemd/system/..service <br>/etc/dbus-1/system.d/. <br>/etc/userdata-wiper/override.json```.
Предупреждения
нарушение этих требований может привести к невозможности установки пакета в будущих релизах Авроры
[libsailfishaapp] Library is unstable or deprecated
Библиотека libsailfishapp устарела и будет удалена в будущих релизах
Вместо libsailfishaapp следует использовать libauroraapp

Информация о версиях RPM-валидатора доступна в разделе История изменений.

Конфигурационные файлы

Все файлы конфигурации имеют формат JSON.

  • Основной файл конфигурации configuration.json.
  • Список запрещённых компонентов disallowed_components.json.

Эти файлы расположены в корне каталога /usr/share/rpm-validator.

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

  • libraries.json — список разрешённых библиотек;
  • paths.json — список разрешённых путей для установки;
  • qmlimports.json — список разрешённых импортов QML;
  • requires.json — список разрешённых записей для секции Requires;
  • permissions.json — список разрешений sailjail.

Можно создавать новые конфигурационные пакеты. Конфигурационный пакет строится как обычное приложение со следующими обязательными полями:

  • OrganizationName=<org_name>;
  • ApplicationName=<app_name>;
  • NoDisplay=true.

Для установки конфигурационных файлов, которые должны быть доступны другим приложениям этого же вендора используется общий каталог /usr/share/common/org_name. Данная директория автоматически монтируется в контейнер к приложениям с общим вендором, что позволяет любым пользователям, находящимся в одном GID, иметь права для чтения и записи. Рекомендуется распаковывать файлы с правами RW для всех. Данные будут в любом случае в безопасности, и будет отсутствовать возможное влияние других приложений на эти файлы за счёт исключительности монтирования в контейнере.

Также имеется возможность распаковки файлов в каталог /usr/share/common/org_name/app_name/. Конфигурационный пакет должен быть подписан профилем Extended или Antivirus. Для профиля Extended наличие иконок не обязательно, для профиля Antivirus — обязательно.

Название организации и приложения

При разработке проекта и сборке пакета требуется корректно сформировать пару OrganizationName.ApplicationName. Они должны соответствовать следующим правилам:

Правило Неправильно Правильно
OrganizationName не должен начинаться с точки .ru.auroraos ru.auroraos
OrganizationName не должен начинаться с цифры 123org.ru ru.org123
OrganizationName должен состоять как минимум из двух уровней myorg ru.myorg
OrganizationName и ApplicationName должны следовать обратной доменной нотации auroraos.ru.MyApp ru.auroraos.MyApp
OrganizationName и ApplicationName должны минимально содержать три уровня auroraos.MyApp ru.auroraos.MyApp
Запрещены все спецсимволы кроме "." и "-" ru.aurora_os.MyApp ru.auroraos.MyApp
Запрещено использование кириллицы рф.организация.Приложение ru.myorg.MyApp

Запуск валидатора в среде сборки

Утилиту командной строки rpm-validator можно запустить в среде сборки:

rpm-validator -p {профиль_безопасности} [параметры запуска] {путь_к_RPM-пакету}

Указанный профиль безопасности должен соответствовать сертификату разработчика приложения. Используемый профиль ограничивает список разрешенных зависимостей (библиотек, модулей Qt и QML), допустимых путей для размещения файлов.

Предусмотрено несколько профилей безопасности:

Regular
Базовый профиль для разработки стандартных приложений.
Extended
Профиль, наследуемый от Regular, с дополнительными компонентами для разработки vpn-клиентов.
MDM
Профиль, наследуемый от Extended, с дополнительными компонентами для работы с mdm.
Antivirus
Профиль, наследуемый от Regular, с дополнительными компонентами для разработки антивирусного программного обеспечения.

Полный список разрешённых зависимостей для каждого профиля можно найти в разделе Допустимые зависимости приложений ОС Аврора.

Результат валидации

Значение errorlevel Описание
0 Проверка пройдёна успешно
1 Пакет не прошел проверку
2 Проверка пройдена, но имеются замечания

О значении ошибок и замечаний валидации см. Сообщения вывода.

Параметры запуска

-v | --version
Показать версию валидатора.
-h | --help
Показать подсказку (команда запуска валидатора и параметры запуска).
-p | --profile
Указать профиль для проверки пакета. По умолчанию профиль regular.
-s | --suites
Вывести строку со списком профилей.
--critical-only
Показать только критические ошибки (опция используется для конвейерной интеграции).
--color
Выбрать вариант вывода цвета (always, never, auto).

Пример успешной валидации

rpm-validator -p regular regular-good-0.1.0-1.armv7hl.rpm

Утилита не выводит каких-либо специальных сообщений в случае успешного завершения, однако устанавливает errorlevel в нулевое значение:

149 blocks

Processing regular-good-0.1.0-1.armv7hl.rpm...
# echo $?
0

Пример ошибки валидации

$ rpm-validator -p regular regular-bad-0.0.1-1.armv7hl.rpm
95 blocks

Processing regular-bad-0.0.1-1.armv7hl.rpm...
(ERROR)		[regular-client-bad] Provides: regular-client-bad is not allowed in RPM
(ERROR)		[regular-client-bad] Conflicts: regular-client-bad is not allowed in RPM
(ERROR)		[obsoletes-bad] Obsoletes: obsoletes-bad is not allowed in RPM
(ERROR)		[scripts] Script sections are not allowed in RPM
(ERROR)		[vendor] Vendor is set to omp. Setting a vendor in RPM is not allowed
(ERROR)		[desktop] Missing valid Icon declaration inside, must be Icon=regular-bad
(ERROR)		[desktop] Missing valid Exec declaration inside
(ERROR)		[desktop] Missing valid Type declaration inside
(ERROR)		[desktop] X-Nemo-Application-Type not declared (use silica-qt5 for QML apps)
(ERROR)		[binary] Main binary must exists, but it is not found
(ERROR)		[/usr/bin/regular-bad-binary] Installation not allowed in this location
(ERROR)		[/usr/share/mapplauncherd/privileges.d/regular-bad.privileges] Installation not allowed in this location
(ERROR)		[/usr/share/applications/regular-bad.desktop] Executable is in wrong location
(ERROR)		[/usr/share/icons/hicolor/108x108/apps/regular-bad.png] Executable is in wrong location
(ERROR)		[/usr/share/icons/hicolor/128x128/apps/regular-bad-wrong.png] Executable is in wrong location
(ERROR)		[/usr/share/icons/hicolor/86x86/apps/regular-bad.png] Executable is in wrong location
(ERROR)		[/usr/share/mapplauncherd/privileges.d/regular-bad.privileges] Executable is in wrong location
(ERROR)		[/usr/share/regular-bad/regular-bad.conf] Executable is in wrong location
(ERROR)		[/usr/share/icons/hicolor/128x128/apps/regular-bad.png] Icon not found
(ERROR)		[/usr/share/icons/hicolor/172x172/apps/regular-bad.png] Icon not found
(ERROR)		[/usr/bin/regular-bad-binary] File must not be executable
(ERROR)		[/usr/share/applications/regular-bad.desktop] File must not be executable
(ERROR)		[/usr/share/icons/hicolor/108x108/apps/regular-bad.png] File must not be executable
(ERROR)		[/usr/share/icons/hicolor/128x128/apps/regular-bad-wrong.png] File must not be executable
(ERROR)		[/usr/share/icons/hicolor/86x86/apps/regular-bad.png] File must not be executable
(ERROR)		[/usr/share/mapplauncherd/privileges.d/regular-bad.privileges] File must not be executable
(ERROR)		[/usr/share/regular-bad/regular-bad.conf] File must not be executable
(ERROR)		[/usr/share/regular-bad/regular-bad.conf] User owner should be root
(ERROR)		[/usr/share/regular-bad/regular-bad.conf] Group owner should be root
(ERROR)		[/usr/bin/regular-bad-binary] Hardcoded path found
(ERROR)		[kv] Only allowed privileges might be used here
(ERROR)		[/usr/bin/regular-bad-binary] Only privileges for main binary are allowed
(WARNING)	[rpath] The rpath in binary is empty
# echo $?
1

О значении ошибок и замечаний валидации см. Сообщения вывода.

Валидатор в Аврора IDE

Валидатор RPM-пакетов также можно запускать в Аврора IDE:

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

  2. Выбрать конфигурацию запуска.

  3. Удостовериться, что в этапах запуска есть RPM Validation. В противном случае:

    1. Добавить этап RPM Validation в выпадающем меню Развёртывание, добавить этап.

      Добавление этапа RPM Validation

    2. Разместить этап RPM Validation перед этапом RPM Deploy.

  4. Выбрать нужный профиль валидации в выпадающем списке Profiles.

    Выбор профиля RPM Validation

  5. В случае необходимости добавить параметры запуска в поле Аргументы.

  6. Запустить сборку и установку приложения. В консоли сборки будут отображены сообщения вывода валидатора и результат.

Сообщения вывода

В выводе команды валидатора отображаются проверяемые блоки согласно требованиям к RPM-пакетам. Для блоков проверки предусмотрены следующие типы сообщений.

Сообщение о проверке блока Описание
INFO Информационное сообщение
PASSED Проверка пройдена успешно
FAILED Есть ошибки валидации, установочный пакет не соответствует требованиям
ERROR Сообщение об ошибке, которая является причиной того, что пакет не соответствует требованиям
WARNING Сообщение о статусе, который не препятствует валидации, но может привести к проблемам
CRITICAL Критическая ошибка, установочный пакет не соответствует требованиям. Пакет не будет установлен даже при отключенном валидаторе

Пример блока проверки QML-файлов в установочном пакете:

QML files
=========
INFO [/usr/share/app/qml/pages/MainPage.qml] Uses Sailfish Silica Components (only reported once)
ERROR [/usr/share/app/qml/pages/MainPage.qml] Import 'QtPositioning 5.0' is not allowed
INFO [app] Please see our FAQ here: https://community.omprussia.ru/doc/software_development/guidelines/rpm_requirements
FAILED

Пакет не прошёл валидацию, так как импортируемый QML-модуль не разрешён для использования в ОС Аврора.

Ниже представлена расшифровка сообщений для следующих блоков:

Domains

Тип сообщения Сообщение Причина Рекомендации по устранению
WARNING Package name should follow reverse domain notation (e.g. "org.example.app"). It will be mandatory in future versions. Имя пакета должно быть указано обратной доменной нотации (то есть "org.example.app") Изменить имя пакета

QML files

Тип сообщения Сообщение Причина Рекомендации по устранению
WARNING [{Название и версия QML модуля}] Import is unstable or deprecated Поддержка указанного QML-модуля прекращена и модуль будет запрещён для будущего использования либо модуль имеет нестабильный API Исключить из зависимостей данный модуль
ERROR [{Название и версия QML модуля}] Import is not allowed Импортируется запрещённый QML-модуль Исключить указанный модуль из зависимостей

Desktop file

Тип сообщения Сообщение Причина Рекомендации по устранению
ERROR [desktop] Desktop file is missing В пакете отсутствует .desktop-файл См. требования путей к файлам
ERROR [desktop] Missing valid Name declaration inside Не указана или неправильно указана строка Name в .desktop-файле См. требования к файлу .desktop
ERROR [desktop] Missing valid Icon declaration inside, must be Icon= Не указана или неправильно указана строка Icon в .desktop-файле, требуется указать См. требования к файлу .desktop
ERROR [desktop] Missing valid Exec declaration inside Не указана или неправильно указана строка Exec в .desktop-файле См. требования к файлу .desktop
ERROR [desktop] Missing valid Type declaration inside Не указана или неправильно указана строка Type в .desktop-файле Указать строку Type=Application
WARNING [desktop] X-Nemo-Application-Type should be silica-qt5 for apps importing Sailfish.Silica in QML Не указана строка X-Nemo-Application-Type, рекомендуется указать в строке silica-qt5, так как в QML-файлах может использоваться библиотека Sailfish.Silica Указать в .desktop-файле X-Nemo-Application-Type=silica-qt5
ERROR [desktop] X-Nemo-Application-Type must be silica-qt5 for sailfish-qml apps Требуется указать silica-qt5 в строке X-Nemo-Application-Type, в QML-файлах используется библиотека Sailfish.Silica Указать в .desktop-файле X-Nemo-Application-Type=silica-qt5
ERROR [desktop] X-Nemo-Application-Type not declared (use silica-qt5 for QML apps) Не указана строка X-Nemo-Application-Type См. требования к файлу .desktop
WARNING [desktop] X-Nemo-Application-Type should be silica-qt5 (not a Silica app?) Строка X-Nemo-Application-Type для приложений Silica должна иметь значение silica-qt5 См. требования к файлу .desktop
INFO [desktop] Application is a QML-only app Приложение реализовано только на QML См. требования к файлу .desktop
ERROR [sailjail] ApplicationName contains illegal characters Указанное имя приложения содержит недопустимые символы См. требования к файлу .desktop
ERROR [sailjail] OrganizationName contains illegal characters Указанное название организации содержит недопустимые символы См. требования к файлу .desktop
ERROR [sailjail] OrganizationName may not start with a number Указываемое название организации не может начинаться с цифры См. требования к файлу .desktop
ERROR [{Разрешение}] Permission is not allowed Указанное разрешение недопустимо См. требования к файлу .desktop
ERROR [desktop] [{Группа}] group is disallowed Группа не указана или неправильно указана в строке Item в .desktop-файле См. требования к файлу .desktop
WARNING [sailjail] OrganizationName and ApplicationName pair should form a package name (e.g. for package "com.example.app" ApplicationName must be "app" and OrganizationName must be "com.example") Ошибка в неправильном формировании пары ApplicationName и OrganizationName, они должны следовать правилу, то есть com.example См. требования к файлу .desktop
WARNING [sailjail] OrganizationName should follow reverse domain notation (at least up to second-level domain), e.g.: "org.example" OrganizationName должно соответствовать обратной доменной нотации (минимум до домена 2-го уровня, то есть "org.example" См. требования к файлу .desktop
WARNING Desktop file is missing, no validation for sailjail section См. требования к файлу .desktop
ERROR [sailjail] OrganizationName is equal to system or disallowed name Указанное имя совпадает с зарезервированным системным именем Изменить значение OrganizationName
ERROR [desktop] Name contains illegal characters Указанное имя приложения содержит недопустимые символы См. требования к файлу .desktop
ERROR [sailjail] ExecDBus is incorrect, template rules are equal to Exec section Неправильно указано значение ключа ExecDBus Указать такое же значение, как в секции Exec
ERROR [sailjail] ExecSystemService is incorrect, template rules are equal to ExecStart section Неправильно указано значение ключа ExecSystemService Указать такое же значение, как в секции ExecStart
ERROR [sailjail] If application use system service, desktop file should include ExecSystemService, ExecSystemServiceUser and ExecSystemServiceGroup keys Если приложение использует системную службу, то .desktop-файл должен содержать ключи ExecSystemService, ExecSystemServiceUser и ExecSystemServiceGroup Указать ключи в ExecSystemService, ExecSystemServiceUser and ExecSystemServiceGroup в .desktop-файле
ERROR [sailjail] System service user should be "sailfish-mdm", system service group should be "priveleged" Пользователем системной службы должен "sailfish-mdm", группа системной службы должна быть привилегированной См. требования к файлу .desktop
ERROR [sailjail] Application name contains illegal "-" symbol. It will cause ExecDBus and/or ExecSystemService failure in future Имя приложения содержит символ "-". Это может стать причиной отказа в работе ExecSystemService в будущем Исключить символ "-" из названия приложения
WARNING [sailjail] ExecDBus and/or ExecSystemService will not work, remove "-" from Application name Имя приложения содержит символ "-" Удалить из названия приложения символ "-"
ERROR [sailjail] Sailjail section is not allowed (use X-Application instead) Раздел Sailjail не разрешён к использованию, используйте X-Application См. требования к файлу .desktop
ERROR [integrityd] integrityd configuration file mismatching package content Файл конфигурации integrityd не совпадает с содержимым пакета приложения Исправить описание в файле конфигурации integrityd

Paths

Тип сообщения Сообщение Причина Рекомендации по устранению
WARNING [/usr/bin] Direct package ownership of /usr/bin is disallowed. It will cause failure in future versions При описании пакета запрещено устанавливать права на директорию /usr/bin Убрать строки /usr/bin из секции %files .spec-файла
ERROR [{Путь}] Installation not allowed in this location В установочном пакете файлы расположены по запрещённому пути Перекомпоновать пакет в соответствии с требованиями
ERROR [{Путь}] Executable is in wrong location Исполняемый файл в установочном пакете расположен по запрещённому пути Перекомпоновать пакет в соответствии с требованиями

Keys

Тип сообщения Сообщение Причина Рекомендации по устранению
ERROR [{Ключ}] X-Application key is not allowed Ключ не разрешен Убрать группу или ключ из файла .desktop

Libraries

Тип сообщения Сообщение Причина Рекомендации по устранению
WARNING [{Название библиотеки}] Library is unstable or deprecated Поддержка указанной библиотеки прекращена и библиотека будет запрещена для будущего использования или указанная библиотека имеет нестабильный API Исключить из зависимостей указанную библиотеку

Icon

Тип сообщения Сообщение Причина Рекомендации по устранению
ERROR [{Имя файла значка}] Icon not found or file resolution is incorrect Иконка не найдена или файл иконки имеет некорректное разрешение Проверить наличие файла с иконкой или установить рекомендуемое разрешение

Symbols

Тип сообщения Сообщение Причина Рекомендации по устранению
WARNING [binary] Binary does not export main() symbol — booster might fail В исполняемом файле функция main не экспортируется Экспортировать функцию main в header-файле, добавив бустер Q_DECL_EXPORT
ERROR [binary] Binary must export main() symbol for booster to work (Q_DECL_EXPORT) В исполняемом файле функция main() должна экспортироваться с помощью Q_DECL_EXPORT Добавить бустер Q_DECL_EXPORT для функции main в header-файл
ERROR [binary] Main binary must not exists. Desktop file uses sailfish-qml QML-приложение не может иметь главный исполняемый файл отличный от sailfish-qml Удалить исполняемый файл из пакета
ERROR [binary] Main binary must exists, but it is not found Главный исполняемый файл должен быть присутствовать в пакете Скомпилировать исполняемый файл, используя компоновщик
ERROR [binary] Main binary must be an executable Главный бинарный файл не является исполняемым файлом Скомпилировать исполняемый файл, используя компоновщик
ERROR [debug] Debug symbols or sources must not be included Исходники и отладочные символы не должны присутствовать в пакете Удалить исходники и отладочные символы из пакета
ERROR [binary] Binary does not link to __libc_start_main Исполняемый файл не связан с символом целевой платформы или сборка проводилась с другим glibc. Использовать Аврора IDE для сборки пакета или другую версию glibc

Permissions

Тип сообщения Сообщение Причина Рекомендации по устранению
ERROR [{Путь к директории}] Group or World writable directory Указанная директория имеет права доступа для группы пользователей или доступна всем Сменить права доступа для директории. См. требования
ERROR [{Путь к файлу}] Found setuid, setgid or sticky bit set Указанный файл снабжён флагами suid/sgid или sticky bit set Убрать флаги. См. требования
ERROR [{Путь к файлу}] File must not be executable Указанный файл не должен иметь прав доступа к исполнению указанными пользователями и группами пользователей Изменить директиву назначения прав в .spec/.yaml-файлe
ERROR [{Путь к файлу}] User owner should be root Владельцем указанного файла должен быть root, а не указанный пользователь Назначить владельца с помощью директивы %defattr(644,root,root,-) в списке %files в .spec/.yaml-файлe
ERROR [{Путь к файлу}] Group owner should be root Владельцем указанного файла должен быть root, а не указанная группа пользователей Назначить владельца с помощью директивы %defattr(644,root,root,-) в списке %files в .spec/.yaml-файлe

Scripts

Тип сообщения Сообщение Причина Рекомендации по устранению
CRITICAL [scripts] Script sections are not allowed in RPM Скрипты запрещены к использованию в RPM-файлах сторонних разработчиков Исключить скрипты из проекта. См. требования к файлам .spec/.yaml

Provides

Тип сообщения Сообщение Причина Рекомендации по устранению
ERROR Provides: {Функциональность} must be specified in RPM Указанная функциональность (provide) должна быть добавлена в RPM-пакет Добавить указанную функциональность в .spec/.yaml-файл
ERROR Provides: {Функциональность} not allowed in RPM Указанная функциональность (provide) запрещена для использования Исключить указанную функциональность из .spec/.yaml-файла

Conflicts

Тип сообщения Сообщение Причина Рекомендации по устранению
ERROR [{Конфликт}] Conflicts: {Конфликт} must be specified in RPM Указанный конфликт (conflict) должен быть добавлен в RPM-пакет Добавить указанный конфликт в .spec/.yaml-файл
ERROR [{Конфликт}] Conflicts: {Конфликт} is not allowed in RPM Указанный конфликт (conflict) запрещён для использования Исключить указанный конфликт из .spec/.yaml-файла

Obsoletes

Тип сообщения Сообщение Причина Рекомендации по устранению
ERROR [{Obsolete}] Obsoletes: {Obsolete} is not allowed in RPM Указанное значение Obsoletes в .spec/.yaml-файле запрещено для использования Исключить Obsoletes из проекта. См. требования к файлам .spec/.yaml

Requires

Тип сообщения Сообщение Причина Рекомендации по устранению
WARNING [{Зависимость}] Dependency is unstable or deprecated Указанная зависимость имеет нестабильный API либо поддержка указанной зависимости прекращена и зависимость будет запрещена для будущего использования Исключить указанную зависимость из .spec/.yaml-файла
ERROR [{Зависимость}] Dependency is not allowed Указанная зависимость запрещена к использованию. Исключить указанную зависимость из .spec/.yaml-файла
ERROR [libsailfishapp] Invalid Requires: libsailfishapp-launcher Требуется удалить указанную зависимость Исключить указанную зависимость из .spec/.yaml-файла
ERROR [libsailfishapp] Add Requires: libsailfishapp-launcher to the .spec file Требуется добавить зависимость libsailfishapp-launcher в .spec/.yaml-файл Добавить зависимость libsailfishapp-launcher в .spec/.yaml-файл

Sandboxing

Тип сообщения Сообщение Причина Рекомендации по устранению
ERROR [{Путь к файлу}] Hardcoded path found Указанный путь к файлу не должен быть встроен в исходный код Использовать API для указания путей
WARNING [sailjail] An application doesn't explicitly use sandboxing and will be running in "legacy" mode. Consider to add [X-Application] section to the desktop file. См. требования к файлу .desktop

RPATH

Тип сообщения Сообщение Причина Рекомендации по устранению
WARNING [rpath] The rpath in binary is empty Для исполняемого файла указан пустой rpath См. требования к разделяемым библиотекам
ERROR [rpath] This rpath in binary is not allowed В указанном исполняемом файле запрещённый rpath См. требования к разделяемым библиотекам

Architecture

Тип сообщения Сообщение Причина Рекомендации по устранению
WARNING [arch] QML-only RPMs should be noarch Пакет, который использует только QML, должен использовать целевую платформу noarch Добавить строку BuildArch: noarch в .spec/.yaml-файл
WARNING [arch] RPMs containing arch-specific content should not be noarch В пакете присутствуют файлы, которым для работы или исполнения требуется определенный тип хостовой архитектуры Такой пакет или пакеты должны быть собраны под конкретную архитектуру, они не должны идти как noarch

Vendor check

Тип сообщения Сообщение Причина Рекомендации по устранению
WARNING [vendor] Vendor is set to {Название поставщика}, this is not recommended. Не рекомендуется задавать строку Vendor Не использовать строку Vendor в .spec/.yaml-файле. См. требования к файлам .spec/.yaml
ERROR [vendor] Vendor is set to {Значение строки Vendor}. Setting a vendor in RPM is not allowed Запрещено задавать строку Vendor в .spec/.yaml-файле Не использовать строку Vendor в .spec/.yaml-файле. См. требования к файлам .spec/.yaml

Мы используем cookies для персонализации сайта и его более удобного использования. Вы можете запретить cookies в настройках браузера.

Пожалуйста ознакомьтесь с политикой использования cookies.