Difference between revisions of "Devel rosa2023.1"

From Rosalab Wiki
Jump to: navigation, search
(Work)
(Work)
Line 79: Line 79:
  
 
==== LLVM ====
 
==== LLVM ====
Update llvm to 15 (done). Merge libcxx, lld etc. into one project — llvm (WIP by slava86).
+
Update llvm to 15 (done). Merge libcxx, lld etc. into one project — llvm (WIP by slava86@).
 +
 
 +
==== Python 3.11 ====
 +
Update python3 from 3.8 to 3.11 (ilfat@).
 +
 
 +
Рекомендуется приблизительно следующая методика обновления Python:
 +
 
 +
* Обновить сам пакет python3, закоммитить в git, сделать сборки для всех архитектура БЕЗ публикации, но с контейнерами
 +
* По описанной в пункте 1.3 "Updating libraries" методике выявить имена SRPM (проектов) всех зависящих от libpython3.8.so.1.0 пакетов
 +
* Выявить все пакеты, содержащие python-модули (с файлами по путям /usr/lib64/python3.8/ и /usr/lib/python3.8/)
 +
* Составить отсортированный по алфавиту список из всех этих пакетов (sort -u) (сортировка по алфавиту удобна тем, что по тому, какие пакеты собираются в масс-билде, примерно понятно, сколько процентов прошло и осталось)
 +
* Запустить масс-билд (https://abf.io/platforms/rosa2023.1/mass_builds/new), в котором:
 +
** сделать человекопонятное название с номером 1 или 1.0 (пример: "python3 3.11 1.0")
 +
** вставить список пакетов
 +
** подключить дополнительные сборки (контейнеры) с python3 3.11
 +
** автоматическая публикация в testing
 +
** галку "Использовать кешированный chroot" поставить (не снимать)
 +
** галку "Поднимать тег Release" поставить (иначе будет путаница)
 +
** другие галки, в т.ч. про запуск автотестов, не ставить
 +
** галку про подключение testing-репозитория при первом запуске, наверное, лучше тоже не ставить, т.к. иначе часто будет ошибка загрузки метаданных из-за установки сборчоных зависимостей во время публикации соседней сборки)
 +
* возникнет ситуация, что многие пакеты не соберутся из-за того, что требуемые им зависимости еще не собраны с python 3.11
 +
* дожидаемся окончания масс-билда (как быть с медленно собирающимися архитектурами — riscv64, e2kv4 — на усмотрение собирающего; наверное, проще сначала все сделать на основных, а потом на них)
 +
* публикуем масс-билд (но все сборки должны и так оказаться уже опубликованными в testing, если что, обращаемся к hisshadow@)
  
 
=== Finished tasks ===
 
=== Finished tasks ===

Revision as of 11:40, 9 February 2023

Development of platform rosa2023.1

Description

English: This page describes plans, problems and solutions about development of the platform rosa2023.1. This page tries to be understandable for both Russian and non-Russian speaking contributors of ROSA Linux.

Russian: Эта страница описывает планы, проблемы и их решения по разработке новой платформы rosa2023.1. Страница пытается быть понятной и русско, и нерусскоговорящим контрибьюторам Росы.

rootfs & ISO of rosa2023.1

Built on 17.01.2023, 15:45-19:00 MSK, glibc 2.36-5.git93967a.1, Linux kernel 5.15.79 (in ISOs).

Developemnt ISOs! Образы для разработчиков!

rootfs x86_64

rootfs aarch64

rootfs i686

ISO server (no DE) x86_64

ISO server (no DE) i686

ISO LXQt x86_64

ISO LXQt i686

ISO XFCE x86_64

ISO XFCE x86_64 minimal

ISO KDE Plasma5 x86_64

ISO GNOME x86_64

ISO MATE x86_64

ISO Cinnamon x86_64

Updating libraries

How to update a library package in rosa2023.1? / Как обновить пакет с библиотекой в платформе rosa2023.1?

  • Make a list of library consumers / Составьте список потребителей библиотеки:
 sudo dnf repoquery --qf '%{sourcerpm}' --whatrequires lib64foo0 |  rev | cut -d '-' -f 3- | rev | sort -u

or:

 sudo dnf repoquery --qf '%{sourcerpm}' --whatrequires 'libfoo.so.0()(64bit)' |  rev | cut -d '-' -f 3- | rev | sort -u
  • Update the library / Обновите библиотеку
  • Rebuild consumers. Raising the Release tag is not obligatory (but, if you raise it, write a commit message like: "Rebuild with libfoo version N") / Пересоберите потребителей. Поднимать тег Release необязательно (но, если поднимаете его, напишите сообщение коммита вида: "Rebuild with libfoo version N", где libfoo — название библиотеки, N — новая версия)

Work

Work in progress

This section contains things that are currently being done / В этом разделе перечислено то, над чем идет работа прямо сейчас.

LLVM

Update llvm to 15 (done). Merge libcxx, lld etc. into one project — llvm (WIP by slava86@).

Python 3.11

Update python3 from 3.8 to 3.11 (ilfat@).

Рекомендуется приблизительно следующая методика обновления Python:

  • Обновить сам пакет python3, закоммитить в git, сделать сборки для всех архитектура БЕЗ публикации, но с контейнерами
  • По описанной в пункте 1.3 "Updating libraries" методике выявить имена SRPM (проектов) всех зависящих от libpython3.8.so.1.0 пакетов
  • Выявить все пакеты, содержащие python-модули (с файлами по путям /usr/lib64/python3.8/ и /usr/lib/python3.8/)
  • Составить отсортированный по алфавиту список из всех этих пакетов (sort -u) (сортировка по алфавиту удобна тем, что по тому, какие пакеты собираются в масс-билде, примерно понятно, сколько процентов прошло и осталось)
  • Запустить масс-билд (https://abf.io/platforms/rosa2023.1/mass_builds/new), в котором:
    • сделать человекопонятное название с номером 1 или 1.0 (пример: "python3 3.11 1.0")
    • вставить список пакетов
    • подключить дополнительные сборки (контейнеры) с python3 3.11
    • автоматическая публикация в testing
    • галку "Использовать кешированный chroot" поставить (не снимать)
    • галку "Поднимать тег Release" поставить (иначе будет путаница)
    • другие галки, в т.ч. про запуск автотестов, не ставить
    • галку про подключение testing-репозитория при первом запуске, наверное, лучше тоже не ставить, т.к. иначе часто будет ошибка загрузки метаданных из-за установки сборчоных зависимостей во время публикации соседней сборки)
  • возникнет ситуация, что многие пакеты не соберутся из-за того, что требуемые им зависимости еще не собраны с python 3.11
  • дожидаемся окончания масс-билда (как быть с медленно собирающимися архитектурами — riscv64, e2kv4 — на усмотрение собирающего; наверное, проще сначала все сделать на основных, а потом на них)
  • публикуем масс-билд (но все сборки должны и так оказаться уже опубликованными в testing, если что, обращаемся к hisshadow@)

Finished tasks

This section contains things that have already been done / В этом разделе перечислено то, работа над чем уже завершена.

glibc 2.36 and 2.37

glibc has been updated to v2.36. A mass rebuild of packages depending from libc.so.6 has been done, failed packages have been fixed: https://disk.yandex.ru/i/mUs0im6SNSTmFQ

Then glibc was updated from 2.36 to recently released 2.37, but it is a minor update, hope that there won't be new build fails because of this.

Working ISO and rootfs

Installable systems with new glibc and working Anaconda installer have been made / Были сделаны установочные образы с новой glibc.

rootfs are also available (for containers and chroots) / roootfs (для контейнеров и чрутов) также доступны.

Links are above / Ссылки выше.

binutils 2.40

binutils package has been updated from v2.38 to v2.40 / Пакет binutils был обновлен с 2.38 до 2.40.

Plans

This section contains plans for future work / В этом разделе перечислены планы по дальнейшей работе над платформой rosa2023.1.