Created attachment 14086 [details] Ключ SSH Имя пользователя: Lenka Почта: lenadea199900@gmail.com Ментор: Евгений Синельников Хочу заниматься usability программ. Уже немного знакома с ADMC есть четкие представления по оптимизации формирования иконок программы.
Created attachment 14087 [details] Ключ GPG
Мейнтернество подтверждаю.
(In reply to Lenka from comment #1) > Created attachment 14087 [details] > Ключ GPG Ok. (In reply to Lenka from comment #0) > Created attachment 14086 [details] > Ключ SSH Ok. Ментор есть, ключи в порядке. T/J/S -> 1.3.
Подготовила пакет с темой для ADMC: https://github.com/LenkaDEA/admc_icons
Предлагаю двигаться дальше. Минимальный пакет с темой иконок ожидаю я.
Актуальная версия пакета с темами: https://github.com/LenkaDEA/admc_icons/tree/themes
ssh ключ на gitery.alt зарегистрирован. Адрес для пересылки создан. T/J/S -> 2.3.
Минимально сборка пакетов освоена, ждем исправления в .gear/rules упаковки исходников по тегу и формирование патча. После этого можно переходить к следующему этапу.
Поскольку пакет был переделан, предлагаю обновить photoflare для следующего шага: https://repology.org/project/photoflare/versions
Обновила пакет до последней версии 1.6.13-alt1: http://git.altlinux.org/people/lenka/packages/photoflare.git Есть ли замечания? Нет доступа к сборочнице, поэтому не могу создать таску.
Пакеты собираются, давайте переходить к освоению сборочницы и тестированию пакетов из тестовых сборочных задач.
ssh ключ на gyle.alt зарегистрирован. Пакет alt-gpgkeys обновлён. Адрес подписан на devel@. T/J/S -> 3.6.
Создала задание на сборочнице для пакета photoflare: https://packages.altlinux.org/ru/tasks/339458/ Сейчас в состоянии EPERM.
Опакетила новую программу: https://packages.altlinux.org/ru/tasks/340169/
(Ответ для Lenka на комментарий #13) > Создала задание на сборочнице для пакета photoflare: > https://packages.altlinux.org/ru/tasks/339458/ > Сейчас в состоянии EPERM. Предлагаю для общего развития добавить в сборку следующие исправления: 1) отдельным коммитом апстримный источник для упрощения сопровождения: https://www.altlinux.org/Gear/remotes Пример: $ gear-remotes-set-from-url https://github.com/PhotoFlare/photoflare now run gear-remotes-restore $ git status On branch master Your branch is up to date with 'origin/master'. Changes to be committed: (use "git restore --staged <file>..." to unstage) new file: .gear/upstream/remotes $ gear-remotes-restore $ git remote -v origin git://git.altlinux.org/tasks/339458/gears/100/git (fetch) origin git://git.altlinux.org/tasks/339458/gears/100/git (push) upstream https://github.com/PhotoFlare/photoflare (fetch) upstream https://github.com/PhotoFlare/photoflare (push) 2) добавить в .gear/rules exclude для каталога .gear при автоматической генерации патча к апстримным исходникам: https://bugzilla.altlinux.org/39804 Думаю, что такого варианта будет достаточно: [sin@base .gear]$ git diff . | cat diff --git a/.gear/rules b/.gear/rules index 55f0585..c9b435f 100644 --- a/.gear/rules +++ b/.gear/rules @@ -1,3 +1,3 @@ spec: .gear/photoflare.spec tar: v@version@:. -diff: v@version@:. . name=@name@-@version@-alt.patch +diff: v@version@:. . name=@name@-@version@-alt.patch exclude=.gear/** 3) почистить код в соответствии с логикой сопровождения. - После объединения с апстримными исходниками остались куски от предыдущих коммитов, которые я вносил для исправления работы: $ git diff v1.6.13 -- src/ | cat diff --git a/src/widgets/PaintWidget.cpp b/src/widgets/PaintWidget.cpp index 198ed7b..7f6860a 100644 --- a/src/widgets/PaintWidget.cpp +++ b/src/widgets/PaintWidget.cpp @@ -25,7 +25,6 @@ #include <QGraphicsScene> #include <QGraphicsSceneMouseEvent> #include <QGraphicsProxyWidget> -#include <QGraphicsEffect> #include <QImageReader> #include "../Settings.h" - в оригинальном виде исправление состояло в том, что я откатил один из апстримных коммитов: commit a3ac8be2857d96aed6d4d00e949ab37f2fec01d2 Author: Evgeny Sinelnikov <sin@altlinux.org> Date: Mon Feb 14 05:07:05 2022 +0400 Revert "Fixes #269 - Canvas shadow to separate from mdiarea bg" This reverts commit e664f48d616fa37ad4fab3c453aa958bee277c28. diff --git a/src/widgets/PaintWidget.cpp b/src/widgets/PaintWidget.cpp index 90e3ade..8b0236f 100644 --- a/src/widgets/PaintWidget.cpp +++ b/src/widgets/PaintWidget.cpp @@ -25,7 +25,6 @@ #include <QGraphicsScene> #include <QGraphicsSceneMouseEvent> #include <QGraphicsProxyWidget> -#include <QGraphicsEffect> #include <QImageReader> #include "../Settings.h" @@ -57,12 +56,7 @@ public: this->image = image; q->setSceneRect(image.rect()); canvas = addPixmap(QPixmap::fromImage(image)); - q->setStyleSheet("background-color: rgb(160, 160, 160);"); - - // Canvas drop shadow to separate from MdiArea colour - QGraphicsDropShadowEffect* effect = new QGraphicsDropShadowEffect(); - effect->setBlurRadius(15); - canvas->setGraphicsEffect(effect); + q->setStyleSheet("background-color: rgb(128, 128, 128);"); } void updateImageCanvas() - Насколько я понимаю, при обновлении до последней версии 1.6.13, откаченный коммит был почти восстановлен. "Почти", потому что удаление строки #include <QGraphicsEffect> не восстановили. - соответственно, нужно решить. Возвращаем этот коммит или нет? Зачем я его откатывал нужно ещё вспомнить. 4) уточнить статус работоспособности этого пакета в Сизифе и бранчах. Это чудное приложение в нашей сборке ведёт себя нестабильно - склонно падать при использовании инструментов - Яркость, Насыщенность, Гамма (и это только то, что я с ходу обнаружил): Как в текущей версии 1.6.9: [sin@base photflare]$ photoflare QDockWidgetLayout::addItem(): please use QDockWidgetLayout::setWidget() QDockWidgetLayout::addItem(): please use QDockWidgetLayout::setWidget() QDockWidgetLayout::addItem(): please use QDockWidgetLayout::setWidget() QDockWidgetLayout::addItem(): please use QDockWidgetLayout::setWidget() QDockWidgetLayout::addItem(): please use QDockWidgetLayout::setWidget() QDockWidgetLayout::addItem(): please use QDockWidgetLayout::setWidget() QDockWidgetLayout::addItem(): please use QDockWidgetLayout::setWidget() QDockWidgetLayout::addItem(): please use QDockWidgetLayout::setWidget() QDockWidgetLayout::addItem(): please use QDockWidgetLayout::setWidget() QDockWidgetLayout::addItem(): please use QDockWidgetLayout::setWidget() kf.windowsystem: Loaded plugin "/usr/lib64/qt5/plugins/kf5/kwindowsystem/KF5WindowSystemX11Plugin.so" for platform "xcb" QMetaObject::connectSlotsByName: Connecting slot on_comboBoxLanguage_currentIndexChanged() with the first of the following compatible signals: ("currentIndexChanged(int)", "currentIndexChanged(QString)") [sin@base photflare]$ QDockWidgetLayout::addItem(): please use QDockWidgetLayout::setWidget() QDockWidgetLayout::addItem(): please use QDockWidgetLayout::setWidget() QDockWidgetLayout::addItem(): please use QDockWidgetLayout::setWidget() QDockWidgetLayout::addItem(): please use QDockWidgetLayout::setWidget() QDockWidgetLayout::addItem(): please use QDockWidgetLayout::setWidget() QDockWidgetLayout::addItem(): please use QDockWidgetLayout::setWidget() QDockWidgetLayout::addItem(): please use QDockWidgetLayout::setWidget() QDockWidgetLayout::addItem(): please use QDockWidgetLayout::setWidget() QDockWidgetLayout::addItem(): please use QDockWidgetLayout::setWidget() QDockWidgetLayout::addItem(): please use QDockWidgetLayout::setWidget() kf.windowsystem: Loaded plugin "/usr/lib64/qt5/plugins/kf5/kwindowsystem/KF5WindowSystemX11Plugin.so" for platform "xcb" Magick: abort due to signal 11 (SIGSEGV) "Segmentation Fault"... [sin@base photflare]$ photoflare QDockWidgetLayout::addItem(): please use QDockWidgetLayout::setWidget() QDockWidgetLayout::addItem(): please use QDockWidgetLayout::setWidget() QDockWidgetLayout::addItem(): please use QDockWidgetLayout::setWidget() QDockWidgetLayout::addItem(): please use QDockWidgetLayout::setWidget() QDockWidgetLayout::addItem(): please use QDockWidgetLayout::setWidget() QDockWidgetLayout::addItem(): please use QDockWidgetLayout::setWidget() QDockWidgetLayout::addItem(): please use QDockWidgetLayout::setWidget() QDockWidgetLayout::addItem(): please use QDockWidgetLayout::setWidget() QDockWidgetLayout::addItem(): please use QDockWidgetLayout::setWidget() QDockWidgetLayout::addItem(): please use QDockWidgetLayout::setWidget() kf.windowsystem: Loaded plugin "/usr/lib64/qt5/plugins/kf5/kwindowsystem/KF5WindowSystemX11Plugin.so" for platform "xcb" Magick: abort due to signal 11 (SIGSEGV) "Segmentation Fault"... Аварийный останов [sin@base photflare]$ photoflare QDockWidgetLayout::addItem(): please use QDockWidgetLayout::setWidget() QDockWidgetLayout::addItem(): please use QDockWidgetLayout::setWidget() QDockWidgetLayout::addItem(): please use QDockWidgetLayout::setWidget() QDockWidgetLayout::addItem(): please use QDockWidgetLayout::setWidget() QDockWidgetLayout::addItem(): please use QDockWidgetLayout::setWidget() QDockWidgetLayout::addItem(): please use QDockWidgetLayout::setWidget() QDockWidgetLayout::addItem(): please use QDockWidgetLayout::setWidget() QDockWidgetLayout::addItem(): please use QDockWidgetLayout::setWidget() QDockWidgetLayout::addItem(): please use QDockWidgetLayout::setWidget() QDockWidgetLayout::addItem(): please use QDockWidgetLayout::setWidget() kf.windowsystem: Loaded plugin "/usr/lib64/qt5/plugins/kf5/kwindowsystem/KF5WindowSystemX11Plugin.so" for platform "xcb" kf.imageformats.plugins.xcf: XCF: read called on non-XCF file kf.imageformats.plugins.xcf: XCF: read called on non-XCF file kf.imageformats.plugins.xcf: XCF: read called on non-XCF file Magick: abort due to signal 11 (SIGSEGV) "Segmentation Fault"... Аварийный останов так и для новой 1.6.13: [sin@base photflare]$ photoflare QMetaObject::connectSlotsByName: No matching signal for on_actionStroke_Rect_triggered() QObject::connect: No such signal QSpinBox::changed() QObject::connect: (sender name: 'strokeWidth') QObject::connect: (receiver name: 'PointerSettingsWidget') QDockWidgetLayout::addItem(): please use QDockWidgetLayout::setWidget() QDockWidgetLayout::addItem(): please use QDockWidgetLayout::setWidget() QDockWidgetLayout::addItem(): please use QDockWidgetLayout::setWidget() QDockWidgetLayout::addItem(): please use QDockWidgetLayout::setWidget() QDockWidgetLayout::addItem(): please use QDockWidgetLayout::setWidget() QDockWidgetLayout::addItem(): please use QDockWidgetLayout::setWidget() QDockWidgetLayout::addItem(): please use QDockWidgetLayout::setWidget() QDockWidgetLayout::addItem(): please use QDockWidgetLayout::setWidget() QDockWidgetLayout::addItem(): please use QDockWidgetLayout::setWidget() QDockWidgetLayout::addItem(): please use QDockWidgetLayout::setWidget() kf.windowsystem: Loaded plugin "/usr/lib64/qt5/plugins/kf5/kwindowsystem/KF5WindowSystemX11Plugin.so" for platform "xcb" Magick: abort due to signal 11 (SIGSEGV) "Segmentation Fault"... Аварийный останов [sin@base photflare]$ photoflare QMetaObject::connectSlotsByName: No matching signal for on_actionStroke_Rect_triggered() QObject::connect: No such signal QSpinBox::changed() QObject::connect: (sender name: 'strokeWidth') QObject::connect: (receiver name: 'PointerSettingsWidget') QDockWidgetLayout::addItem(): please use QDockWidgetLayout::setWidget() QDockWidgetLayout::addItem(): please use QDockWidgetLayout::setWidget() QDockWidgetLayout::addItem(): please use QDockWidgetLayout::setWidget() QDockWidgetLayout::addItem(): please use QDockWidgetLayout::setWidget() QDockWidgetLayout::addItem(): please use QDockWidgetLayout::setWidget() QDockWidgetLayout::addItem(): please use QDockWidgetLayout::setWidget() QDockWidgetLayout::addItem(): please use QDockWidgetLayout::setWidget() QDockWidgetLayout::addItem(): please use QDockWidgetLayout::setWidget() QDockWidgetLayout::addItem(): please use QDockWidgetLayout::setWidget() QDockWidgetLayout::addItem(): please use QDockWidgetLayout::setWidget() kf.windowsystem: Loaded plugin "/usr/lib64/qt5/plugins/kf5/kwindowsystem/KF5WindowSystemX11Plugin.so" for platform "xcb" Magick: abort due to signal 11 (SIGSEGV) "Segmentation Fault"... Аварийный останов [sin@base photflare]$ photoflare QMetaObject::connectSlotsByName: No matching signal for on_actionStroke_Rect_triggered() QObject::connect: No such signal QSpinBox::changed() QObject::connect: (sender name: 'strokeWidth') QObject::connect: (receiver name: 'PointerSettingsWidget') QDockWidgetLayout::addItem(): please use QDockWidgetLayout::setWidget() QDockWidgetLayout::addItem(): please use QDockWidgetLayout::setWidget() QDockWidgetLayout::addItem(): please use QDockWidgetLayout::setWidget() QDockWidgetLayout::addItem(): please use QDockWidgetLayout::setWidget() QDockWidgetLayout::addItem(): please use QDockWidgetLayout::setWidget() QDockWidgetLayout::addItem(): please use QDockWidgetLayout::setWidget() QDockWidgetLayout::addItem(): please use QDockWidgetLayout::setWidget() QDockWidgetLayout::addItem(): please use QDockWidgetLayout::setWidget() QDockWidgetLayout::addItem(): please use QDockWidgetLayout::setWidget() QDockWidgetLayout::addItem(): please use QDockWidgetLayout::setWidget() Magick: abort due to signal 11 (SIGSEGV) "Segmentation Fault"... Аварийный останов Таким образом это "отличное" приложение с достаточно отзывчивым апстримом, у которого множество недоработок. То ли связанных с наших окружением, то ли с тем, как это приложение написано вообще. К его доработке можно привлекать начинающих разработчиков для повышения квалификации. В любом случае, это приложение выглядит на текущий момент достаточно проблемным для работы в окружении сизифа (в окружении p10 я его пока не проверял). Возможно, данное приложение даёт возможность обнаружить и более общие недоработки в окружении сизифа. ____________________ Итого, обновление данного пакета, безусловно, имеет смысл и будет полезно. Но завершенность работы над пакетом, наверное, заключается в том, чтобы принять участие в его доработке. Или, по крайней мере, об этом стоит где-то сообщить. Например в devel-newbies@, примерно в такой форме: - я обновила такой-то пакет - ссылка; - при обновлении обнаружены такие-то проблемы - перечисление (возможно, в виде ссылок на нашу багзиллу, а лучше на трекер апстрима); - предлагаю заинтересованным поучаствовать в их исправлении. Ну, это если пакет, действительно вам интересен. ____________________ 5) Ещё один момент, который я пытался решить и вижу, что решение не работает - это выбор русского языка по умочанию, в зависимости от текущей локали. Сейчас, при запуске приложения, русский язык не выбран. Но его можно задать в настройках явно. Одна из проблем, которая была однаружена состоит в том, что в приложении достаточно странно релизована логика поиска файлов локализации (довольно некорретно, по отношению к стандартному расположению в дистрибутивах GNU/Linux). Предположу, что эти особенности связаны с поддержкой portable-сборок, а также поддержку windows в целом, где все файлы программы вываливаются в каталог приложения в Program Files. Возможно, я на завершил данную задачу, а только подготовил некоторые исправления в домашнем кругу, надеясь что вернусь к этому потом. В результате один патч у нас был принят, но проблему полностью он не решает: commit 33deae5c825c108137f8472d6462e8828651d931 Author: Helen Sinelnikova <helen@darkmastersin.net> Date: Sun Oct 4 23:39:38 2020 +0400 Fix check of translation file diff --git a/src/main.cpp b/src/main.cpp index d5bf7de..0f56727 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -114,14 +114,14 @@ int main(int argc, char *argv[]) app.installTranslator(&translator); QStringList paths = QStandardPaths::standardLocations(QStandardPaths::DataLocation); + paths.prepend("."); //for local builds testing for(int i = 0;i < paths.length(); i++) { - //QFileInfo check_file(paths[i]+"/languages/"+SETTINGS->getUserLanguage()+".qm"); //for installers - QFileInfo check_file("languages/"+SETTINGS->getUserLanguage()+".qm"); //local builds + QFileInfo check_file(paths[i]+"/languages/"+SETTINGS->getUserLanguage()+".qm"); if(check_file.exists() && check_file.isFile()) { - //translator.load(SETTINGS->getUserLanguage()+".qm", paths[i]+"/languages/"); //for installers - translator.load(SETTINGS->getUserLanguage()+".qm", "languages/"); //local builds + translator.load(SETTINGS->getUserLanguage()+".qm", paths[i]+"/languages/"); + break; } } MainWindow w; ____________________ Предлагаю закрыть, для начала, из перечисленных выше пунктов 1, 2 и 3. По поводу пунктов 4 и 5 предлагаю сравнить текущую и новую сборки на p10 и на сизифе на предмет наличия регрессий. Далее собрать обновление до 1.6.13 и, в зависимости от анализа регрессий и обнаруженных ошибок, "развесить" сообщения об этих ошибках "и" (как минимум, "или") призвать заинтересованных заняться этими задачами в учебном формате в рассылке devel-newbies@.
(Ответ для Lenka на комментарий #14) > Опакетила новую программу: https://packages.altlinux.org/ru/tasks/340169/ В этой сборке сделаны "лишние", взаимоисключающие шаги: Вот так выглядят правила gear: tar: @version@:. spec: .gear/clipboard.spec diff: @version@:. . exclude=.gear/** copy?:.gear/*.patch Возникает вопрос. А зачем было добавлено правило diff, если патч в итоге кладётся файлом? Зачем генерировать патч, если он далее нигде не используется? Наверное, он тогда просто не нужен? И наоборот, если патч генерируется, зачем тогда его хранить файлом и прикладывать отдельно, когда можно приложить прямо в исходники? У обоих вариантов сопровождения есть свои плюсы и минусы. Но стоит определиться - какой схемы сборки придерживаться в данном случае.
(Ответ для Evgeny Sinelnikov на комментарий #15) > Предлагаю закрыть, для начала, из перечисленных выше пунктов 1, 2 и 3. Спасибо за развернутый ответ, замечания и рекомендации по сборке. Обновила пакет согласно Вашим рекомендациям: https://packages.altlinux.org/ru/tasks/339458/ Насчет третьего пункта "почистить код в соответствии с логикой сопровождения": Проверив багу, убедилась, что она также присутствует. Поэтому приняла решение оставить наш комит: https://git.altlinux.org/gears/p/photoflare.git?p=photoflare.git;a=commit;h=a3ac8be2857d96aed6d4d00e949ab37f2fec01d2
(Ответ для Evgeny Sinelnikov на комментарий #16) > (Ответ для Lenka на комментарий #14) > > Опакетила новую программу: https://packages.altlinux.org/ru/tasks/340169/ > > В этой сборке сделаны "лишние", взаимоисключающие шаги Определилась со схемой сборки и убрала взаимоисключающие шаги. Теперь gear/rules выглядит следующим образом: $ cat .gear/rules tar: @version@:. spec: .gear/clipboard.spec copy?:.gear/*.patch Таска: https://packages.altlinux.org/ru/tasks/340169/
В ходе обсуждения получила ряд замечаний/рекомендаций касательно пакета clipboard Результатом было исправление следующих вещей в spec-файле: 1. Группа была изменена на более подходящую. 2. Убраны Provides. 3. Изменены названия подпакетов. Таска: https://packages.altlinux.org/en/tasks/340169/
Посмотрел, собрал, установил, одобрил для отправки в сизиф. Нужно перезапустить сборочную задачу с --commit. Следующим шагом предлагаю погрузиться в проблему с accountsservice. Это очень важный для нас технологический стек далее связанный с возможностями развития продуктов. Текущая проблема: https://bugzilla.altlinux.org/47499 По сути, я вижу две задачи: - починить проблему автологина для локальных пользователей; - разобраться с архитектурной связкой accountsservice/lightdm/gdm с целью решения проблемы - что нам требуется для обеспечения кеширования доменных пользователей при логине? Сейчас приходится вот так
(Ответ для Evgeny Sinelnikov на комментарий #20) ... > Сейчас приходится вот так вручную решать проблему отсутствия кеширования доменных пользователей: $ busctl call org.freedesktop.Accounts /org/freedesktop/Accounts org.freedesktop.Accounts CacheUser "s" "sin" o "/org/freedesktop/Accounts/User758801104" Ещё одна примыкающая задача - задание пароля для пользователей. Для доменных пользователей она и не может работать, там и проверка на "локальность" не выполняется: $ busctl call org.freedesktop.Accounts /org/freedesktop/Accounts/User758801104 org.freedesktop.Accounts.User SetPassword "ss" "Qw12345678" "Qw" Call failed: running '/usr/sbin/chpasswd' failed: Дочерний процесс завершился с кодом 1
Добрый день! Собрала питоновский модуль: https://packages.altlinux.org/ru/tasks/349553/
Вы отключаете сборку некоторых тестов, но не комментируете, почему. Это очень нехороший подход, который концептуально ломает весь смысл проверки. С таким же успехом можно было бы просто отключить секцию чек и не вводить других людей в заблуждение. Если вы отключаете какие-то тесты, неплохо бы указывать причины. Этот допустим требует сеть, этот запущенный сервер sql а тот например временно не работает, потому что требует версию зависимости меньше текущей. Тогда человек, читая комментарии, будет понимать, что да, действительно секция чек проходит полностью, кроме того, что не может быть пройдено в принципе.
Спасибо за комментарий и советы! Переделала согласно Вашим рекомендациям: https://packages.altlinux.org/ru/tasks/349553/
Вышли новые версии пакета textual. Обновила. Можно посмотреть в задаче 351067 Также "тяжелая" часть документации была вынесена в отдельный пакет с версии 0.67.0-alt2. Собрала nushell в задаче 352543. Жду проверки и апрува. Этот пакет закрывает багу https://bugzilla.altlinux.org/50035
Вышла новая версия пакета textual Обновила. Собрано в задаче: 355757
Обновила textual. Собран в задаче: 355757 Обновила, закрыла багу (51040) и переключила на использование системных библиотек пакет nushell.Собрано в задаче: 354532
Заапрувил и отправил в сизиф последний таск с textual, поскольку он был ftbfs. Тем не менее, у меня есть ряд замечаний, которые хотелось бы, чтобы были исправлены: 1. Во-первых это питоновский модуль, поэтому группа у него должна быть Development/Python3. Я удивлён, что этот модуль вообще прошёл через сборочницу с такой ошибкой. 2. Комментарий к тестам почему-то в секции инсталл. 3. То что вы нагородили с документацией обычно делается макросом %doc README.md в секции %files. 4. Полагаю, что какой-нибудь элементарный ридми и лицензию всё же стоит паковать и в основной модуль. 5. Некритично, но для питоновских модулей бывает удобнее ставить в URL их страницу на pypi.org.
(Ответ для Grigory Ustinov на комментарий #28) > Заапрувил и отправил в сизиф последний таск с textual, поскольку он был > ftbfs. Тем не менее, у меня есть ряд замечаний, которые хотелось бы, чтобы > были исправлены: > 1. Во-первых это питоновский модуль, поэтому группа у него должна быть > Development/Python3. Я удивлён, что этот модуль вообще прошёл через > сборочницу с такой ошибкой. > 2. Комментарий к тестам почему-то в секции инсталл. > 3. То что вы нагородили с документацией обычно делается макросом %doc > README.md в секции %files. > 4. Полагаю, что какой-нибудь элементарный ридми и лицензию всё же стоит > паковать и в основной модуль. > 5. Некритично, но для питоновских модулей бывает удобнее ставить в URL их > страницу на pypi.org. Учла ваши замечания, спасибо за пояснения. Пересобрала в задаче: 361015 Также обновила версию. Что касается 3-его замечания о документации, то такая реализация необходима для возможности исключения blog из документации (%exclude %docdir/docs/blog), который очень много весит. В противном случае он не видит этого каталога, к сожалению.
(Ответ для Lenka на комментарий #29) > Что касается 3-его замечания о документации, то такая реализация необходима > для возможности исключения blog из документации (%exclude > %docdir/docs/blog), который очень много весит. В противном случае он не > видит этого каталога, к сожалению. Вы правы, красивого способа исключить каталог я не знаю. А зачем его исключать? Вы выделили документацию в отдельный подпакет и очень правильно сделали. Люди, которые не хотят получить "мусор", его не получат, а люди которые хотят получить оффлайн документацию, получат её в обрезанном виде. 27мб это не так уж много по меркам документации: [grenka@mrfrog RPMS.classic]$ ls *-doc* | xargs du -Lh | sort -rh | head 135M qt4-doc-html-4.8.7-alt51.noarch.rpm 79M gnome-getting-started-docs-3.38.1-alt1.noarch.rpm 77M libopencv-doc-4.10.0-alt2.noarch.rpm 64M boost-doc-1.86.0-alt1.noarch.rpm 56M gnucash-docs-5.9-alt1.noarch.rpm 56M cgal-devel-doc-5.6.1-alt1.noarch.rpm 52M giac-doc-1.9.0.69-alt1.noarch.rpm 48M kicad-doc-8.0.6-alt1.noarch.rpm 39M openscada-docEN-0.9.7-alt1.noarch.rpm 35M opentoonz-doc-1.6.0-alt1.noarch.rpm А ещё вы используете конструкцию: %package -n %name-doc хотя можно было бы и наверное нужно было бы просто %package doc. [grenka@mrfrog SPECS]$ grep -r "\-n %name-doc$" e/emacs-mode-auctex/auctex.spec:%files -n %name-doc p/python3-module-textual/python3-module-textual.spec:%package -n %name-doc p/python3-module-textual/python3-module-textual.spec:%description -n %name-doc p/python3-module-textual/python3-module-textual.spec:%files -n %name-doc S/SoapySDR/SoapySDR.spec:%package -n %name-doc S/SoapySDR/SoapySDR.spec:%description -n %name-doc S/SoapySDR/SoapySDR.spec:%files -n %name-doc x/xapian-core/xapian-core.spec:%package -n %name-doc x/xapian-core/xapian-core.spec:%description -n %name-doc x/xapian-core/xapian-core.spec:%files -n %name-doc t/translate-toolkit/translate-toolkit.spec:%package -n %name-doc t/translate-toolkit/translate-toolkit.spec:%description -n %name-doc t/translate-toolkit/translate-toolkit.spec:%files -n %name-doc v/verilator/verilator.spec:%package -n %name-doc v/verilator/verilator.spec:%description -n %name-doc v/verilator/verilator.spec:%files -n %name-doc o/openldap/openldap.spec:%package -n %name-doc [grenka@mrfrog SPECS]$ grep -rl "\-n %name-doc$" | wc -l 7
Спасибо за пояснение. Я еще раз посмотрела каталог blog. Уточню что туда пишут информацию о новых релизах и важных новостях. Вероятно, если человек хочет офлайн документацию, то и информация о релизах ему будет полезна. Вернула blog в документацию. Обновила версию и собрала в задаче: 361015
Обновила nushell: 362528 Обновила python3-module-pytest-textual-snapshot: 362514