Bug 45018 - [RFE] backport/implement generate_buildrequires feature
Summary: [RFE] backport/implement generate_buildrequires feature
Status: NEW
Alias: None
Product: Sisyphus
Classification: Development
Component: rpm-build (show other bugs)
Version: unstable
Hardware: x86_64 Linux
: P5 enhancement
Assignee: placeholder@altlinux.org
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2023-01-24 16:05 MSK by Stanislav Levin
Modified: 2023-01-25 17:41 MSK (History)
6 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Comment 1 Dmitry V. Levin 2023-01-24 20:22:28 MSK
Кто-нибудь может объяснить, какая от этого может быть практическая польза где-либо, помимо autoimports?
Comment 2 Stanislav Levin 2023-01-25 17:41:33 MSK
Конкретная задача в экосистеме Python:                                             
автоматизированное управление сборочными зависимостями проекта, которые            
вычисляются/собираются из различных источников зависимостей (например,             
pip's reqfile, запрос к сборочному бэкенду (get_requires_for_build_wheel), core metadata и тд). На данный момент изменения в таких источниках              
отслеживаются человеком вручную при каждом обновлении проекта.                  
                                                                                
Есть несколько вариантов реализации применения зависимостей определенных извне, например:                                                                          
- статический: зависимости заранее вычисляются в подготовленном окружении и        
  сохраняются в файл. Полученный список конвертируется в apt зависимости и         
  применяется к RPM specfile (либо через непосредственное изменение specfile,   
  либо генерация через RPM макрос).                                                
  pros:                                                                            
  - отсутствует зависимость на фичу generate_buildrequires                         
  - более наглядный RPM specfile или файл с зависимостями                          
  cons:                                                                            
  - сборка в несколько этапов (требуется поэтапная генерация зависимостей)         
  - необходимость управления списком зависимостей (менее удобно)                   
- динамический: зависимости вычисляются при сборке src rpm в дереве с              
  исходниками (для этого потребуется установленное средство вычисления и
  сборочный бэкенд), конвертируются в apt зависимости и добавляются к
  сборочным зависимостям.                                                                    
  pros:                                                                            
  - сборка в один этап                                                             
  - нет необходимости управлять списком зависимостей (легче сопровождать)          
  cons:                                                                            
  - зависимость от фичи generate_buildrequires                                     
  - отсутствует наглядность зависимостей в RPM specfile