Bug 53408

Summary: Создаёт "non-identical noarch packages"
Product: Infrastructure Reporter: Sergey V Turchin <zerg>
Component: girarAssignee: placeholder <placeholder>
Status: NEW --- QA Contact: Andrey Cherepanov <cas>
Severity: major    
Priority: P5 CC: glebfm, iv, ldv, protvin, rider, vt
Version: unspecified   
Hardware: x86_64   
OS: Linux   

Description Sergey V Turchin 2025-03-12 11:14:00 MSK
Сам создаёт "non-identical noarch packages", сам себя ругает и обламывает сборку.
Comment 2 Gleb F-Malinovskiy 2025-03-12 13:08:25 MSK
(In reply to Sergey V Turchin from comment #0)
> Сам создаёт "non-identical noarch packages", сам себя ругает и обламывает
> сборку.
Он что по вашему, и spec-и пишет и апстримные исходники?


 — Вы, чего, и конфеты за меня есть будете?
 — Ага!
(в данном случае, не ага)
Comment 3 Ivan A. Melnikov 2025-03-12 14:38:18 MSK
Глеб, а почему notabug? 

Возьмём 377597. Первые две итерации было всё хорошо, а на третьей  на одной из архитектур girar решил не пресобирать пакет, а на других пересобрал:

$ curl -s 'https://git.altlinux.org/tasks/377597/logs/events.1.3.log' | grep 'kldap.*OK'
2025-Mar-12 03:21:45 :: [aarch64] #1100 kldap.git 24.12.3-alt1: build OK (cached)
2025-Mar-12 03:29:19 :: [x86_64] #1100 kldap.git 24.12.3-alt1: build OK
2025-Mar-12 03:29:34 :: [i586] #1100 kldap.git 24.12.3-alt1: build OK
2025-Mar-12 05:58:53 :: #1100: kldap.git 24.12.3-alt1: build check OK

В результате в провайдах разные disttag'и:

--- kldap-common-24.12.3-alt1.noarch.rpm.x86_64 2025-03-12 06:13:55.815907652 +0000
+++ kldap-common-24.12.3-alt1.noarch.rpm.aarch64        2025-03-12 06:13:56.014909747 +0000
 Provides: kde5-kldap-common = 24.12.3-alt1
-Provides: kldap-common = 24.12.3-alt1:sisyphus+377597.1100.1.3
+Provides: kldap-common = 24.12.3-alt1:sisyphus+377597.1100.1.2
 Obsoletes: kde5-kldap-common < 24.12.3-alt1


По моему, это как раз баг girar'а.
Comment 4 Sergey V Turchin 2025-03-12 15:11:52 MSK
(Ответ для Gleb F-Malinovskiy на комментарий #2)
> Он что по вашему, и spec-и пишет и апстримные исходники?
Нет.

На моих жирных тасках нередко воспроизводится.
Особенно достаёт, когда это на 3-й итерации происходит.
Это давно уже.
Comment 5 Anton Farygin 2025-03-12 15:26:37 MSK
Я тоже иногда сталкивался, решалось удалением и добавлением сабтаска, что бы заэнфорсить пересборку.
На самом деле надо просто task run --force-rebuild сделать что бы оно всё пересобралось с самого начала безусловно.
Comment 6 Dmitry V. Levin 2025-03-12 15:30:09 MSK
(In reply to Ivan A. Melnikov from comment #3)
> Глеб, а почему notabug?

Я думаю, потому что reporter не справился с описанием проблемы.
Comment 7 Sergey V Turchin 2025-03-12 15:43:06 MSK
(Ответ для Dmitry V. Levin на комментарий #6)
> Я думаю, потому что reporter не справился с описанием проблемы.
Тебе проблема давно известна.
Не видел смысла разжевывать, поэтому написал предельно чётко.
Comment 8 Sergey V Turchin 2025-03-12 17:41:53 MSK
(In reply to Anton Farygin from comment #5)
> task run --force-rebuild сделать что бы оно всё
> пересобралось с самого начала безусловно.
На худой конец в качестве костыля хотя бы.
Comment 9 Sergey V Turchin 2025-03-17 09:08:38 MSK
https://git.altlinux.org/tasks/377917/
Comment 10 Sergey V Turchin 2025-03-20 12:26:12 MSK
https://packages.altlinux.org/tasks/378634
Comment 11 Sergey V Turchin 2025-03-21 13:28:39 MSK
https://git.altlinux.org/tasks/378634/
Comment 12 Sergey V Turchin 2025-04-12 07:02:41 MSK
https://git.altlinux.org/tasks/380673
Comment 13 Sergey V Turchin 2025-04-16 15:31:55 MSK
https://packages.altlinux.org/ru/tasks/376290/
Comment 14 Ivan A. Melnikov 2025-04-17 11:19:39 MSK
(In reply to Anton Farygin from comment #5)
> На самом деле надо просто task run --force-rebuild сделать что бы оно всё
> пересобралось с самого начала безусловно.

Мне кажется, более эргономичным решением было бы заметить несоответствие disttag'ов пакетов, собраных на разных архитектурах, где-нибудь перед build check'ом, отчистить кеш соответствющих подзадач и уйти на следующую итерацию.
Comment 15 Anton Farygin 2025-04-17 12:31:27 MSK
(In reply to Ivan A. Melnikov from comment #14)
> (In reply to Anton Farygin from comment #5)
> > На самом деле надо просто task run --force-rebuild сделать что бы оно всё
> > пересобралось с самого начала безусловно.
> 
> Мне кажется, более эргономичным решением было бы заметить несоответствие
> disttag'ов пакетов, собраных на разных архитектурах, где-нибудь перед build
> check'ом, отчистить кеш соответствющих подзадач и уйти на следующую итерацию.

Да, согласен. Выглядит перспективнее.
Comment 16 Sergey V Turchin 2025-04-27 06:24:03 MSK
Что-то изменилось. Появился какой-то "non-verifiable noarch packages".
https://packages.altlinux.org/ru/tasks/382564/
Comment 17 Sergey V Turchin 2025-04-27 06:30:12 MSK
> Появился какой-то "non-verifiable noarch packages"
Ааа, не. Просто не замечал раньше этого.
Comment 18 Vitaly Chikunov 2025-05-13 21:17:32 MSK
1. Такая сборка:

2025-Apr-28 20:50:52 :: [i586] #10340 kernel-source-LiME.git 1.9.1-alt6: build start
2025-Apr-28 20:51:06 :: [i586] #10340 kernel-source-LiME.git 1.9.1-alt6: build OK (cached)
2025-Apr-28 20:58:09 :: [x86_64] #10340 kernel-source-LiME.git 1.9.1-alt6: build start
2025-Apr-28 20:59:22 :: [x86_64] #10340 kernel-source-LiME.git 1.9.1-alt6: build OK
2025-Apr-28 21:10:16 :: [aarch64] #10340 kernel-source-LiME.git 1.9.1-alt6: build start
2025-Apr-28 21:10:50 :: [aarch64] #10340 kernel-source-LiME.git 1.9.1-alt6: build OK (cached)

Такая сборка приводит к ошибке, так как получается разница в `Provides:` из-за того что пакеты были собраны на разных итерациях:

--- kernel-source-LiME-1.9.1-alt6.noarch.rpm.x86_64	2025-04-28 21:45:34.463362018 +0000
+++ kernel-source-LiME-1.9.1-alt6.noarch.rpm.i586	2025-04-28 21:45:34.597363205 +0000
@@ -4,3 +4,3 @@
 Requires: rpmlib(PayloadIsLzma)  
-Provides: kernel-source-LiME = 1.9.1-alt6:c10f2+377694.10340.29.1
+Provides: kernel-source-LiME = 1.9.1-alt6:c10f2+377694.10340.28.1
 FILETRIGGERSCRIPTPROG:1 (none)
error (#10340): non-identical noarch packages
--- kernel-source-LiME-1.9.1-alt6.noarch.rpm.x86_64	2025-04-28 21:45:34.604363267 +0000
+++ kernel-source-LiME-1.9.1-alt6.noarch.rpm.aarch64	2025-04-28 21:45:34.744364507 +0000
@@ -4,3 +4,3 @@
 Requires: rpmlib(PayloadIsLzma)  
-Provides: kernel-source-LiME = 1.9.1-alt6:c10f2+377694.10340.29.1
+Provides: kernel-source-LiME = 1.9.1-alt6:c10f2+377694.10340.28.1
 FILETRIGGERSCRIPTPROG:1 (none)
error (#10340): non-identical noarch packages

2. Может быть для пакетов содержащих noarch - если кэш есть не на всех архитектурах, то считать, что его нет.

3. Или хотя бы дать инструмент для облегчения объезда такой ситуации:

Например, команду `task invlidate-subtask-cache <taskid> disable <subtaskid>`, чтоб отменить кэш для конкретного подзадания (и не пришлось бы его удалять+добавлять (что особенно неприятно если таких подзаданий много (у меня выпадало по 5 штук за раз, а потом в N-ой пересборке снова) и/или они получали апрувы) и не делать rebuild всего большого задания).