Devel rosa2023.1
Contents
- 1 Development of platform rosa2023.1
- 1.1 Description
- 1.2 rootfs & ISO of rosa2023.1
- 1.2.1 rootfs x86_64
- 1.2.2 rootfs aarch64
- 1.2.3 rootfs i686
- 1.2.4 ISO server (no DE) x86_64
- 1.2.5 ISO server (no DE) i686
- 1.2.6 ISO LXQt x86_64
- 1.2.7 ISO LXQt i686
- 1.2.8 ISO XFCE x86_64
- 1.2.9 ISO XFCE x86_64 minimal
- 1.2.10 ISO KDE Plasma5 x86_64
- 1.2.11 ISO GNOME x86_64
- 1.2.12 ISO MATE x86_64
- 1.2.13 ISO Cinnamon x86_64
- 1.3 Updating libraries
- 1.4 Work
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
- https://abf.io/platforms/rosa2023.1/products/408
- https://abf.io/platforms/rosa2023.1/products/408/product_build_lists/45396
rootfs aarch64
- https://file-store.rosalinux.ru/api/v1/file_stores/2bcf91d6563b5ef42d05d91e243e6b5d76adf76b (rootfs-std-rosa2023.1_aarch64_2023-01-17.tar.xz)
rootfs i686
- https://abf.io/platforms/rosa2023.1/products/409
- https://abf.io/platforms/rosa2023.1/products/409/product_build_lists/45397
ISO server (no DE) x86_64
- https://abf.io/platforms/rosa2023.1/products/418
- https://abf.io/platforms/rosa2023.1/products/418/product_build_lists/45398
ISO server (no DE) i686
- https://abf.io/platforms/rosa2023.1/products/422
- https://abf.io/platforms/rosa2023.1/products/422/product_build_lists/45399
ISO LXQt x86_64
- https://abf.io/platforms/rosa2023.1/products/410
- https://abf.io/platforms/rosa2023.1/products/410/product_build_lists/45411
ISO LXQt i686
- https://abf.io/platforms/rosa2023.1/products/407
- https://abf.io/platforms/rosa2023.1/products/407/product_build_lists/45401
ISO XFCE x86_64
- https://abf.io/platforms/rosa2023.1/products/428
- https://abf.io/platforms/rosa2023.1/products/428/product_build_lists/45402
ISO XFCE x86_64 minimal
- https://abf.io/platforms/rosa2023.1/products/426
- https://abf.io/platforms/rosa2023.1/products/426/product_build_lists/45403
ISO KDE Plasma5 x86_64
- https://abf.io/platforms/rosa2023.1/products/427
- https://abf.io/platforms/rosa2023.1/products/427/product_build_lists/45412
ISO GNOME x86_64
- https://abf.io/platforms/rosa2023.1/products/415
- https://abf.io/platforms/rosa2023.1/products/415/product_build_lists/45405
ISO MATE x86_64
- https://abf.io/platforms/rosa2023.1/products/417
- https://abf.io/platforms/rosa2023.1/products/417/product_build_lists/45406
ISO Cinnamon x86_64
- https://abf.io/platforms/rosa2023.1/products/413
- https://abf.io/platforms/rosa2023.1/products/413/product_build_lists/45407
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 / В этом разделе перечислено то, над чем идет работа прямо сейчас.
Python 3.11
Update python3 from 3.8 to 3.11 (ilfat@).
На python3 завязано очень многое, в т.ч. даже пакетный менеджер, поэтому обновлять его нужно очень аккуратно.
Рекомендуется приблизительно следующая методика обновления Python / The following methodology of updating Python is recommended:
- Обновить сам пакет python3, закоммитить в git, сделать сборки для всех архитектура БЕЗ публикации, но с контейнерами
- По описанной в пункте 1.3 "Updating libraries" методике выявить имена SRPM (проектов) всех зависящих от libpython3.8.so.1.0 пакетов
- Выявить все пакеты, содержащие python-модули (с файлами по путям /usr/lib64/python3.8/ и /usr/lib/python3.8/)
- Составить отсортированный по алфавиту список из всех этих пакетов (sort -u) (сортировка по алфавиту удобна тем, что по тому, какие пакеты собираются в масс-билде, примерно понятно, сколько процентов прошло и осталось)
- Обновить и/или пересобрать с Python 3.11 присутствующие в сборке большинства python-пакетов пакеты, например, python3-setuptools
- Запустить масс-билд (https://abf.io/platforms/rosa2023.1/mass_builds/new), в котором:
- сделать человекопонятное название с номером 1 или 1.0 (пример: "python3 3.11 1.0")
- вставить список пакетов
- подключить дополнительные сборки (контейнеры) с python3 3.11, python3-setuptools и др. пакетами
- автоматическая публикация в testing
- галку "Использовать кешированный chroot" поставить (не снимать)
- галку "Поднимать тег Release" поставить (иначе будет путаница)
- другие галки, в т.ч. про запуск автотестов, не ставить
- галку про подключение testing-репозитория при первом запуске, наверное, лучше тоже не ставить, т.к. иначе часто будет ошибка загрузки метаданных из-за установки сборочных зависимостей во время публикации соседней сборки)
- возникнет ситуация, что многие пакеты не соберутся из-за того, что требуемые им зависимости еще не собраны с python 3.11
- дожидаемся окончания масс-билда (как быть с медленно собирающимися архитектурами — riscv64, e2kv4 — на усмотрение собирающего; наверное, проще сначала все сделать на основных, а потом на них)
- публикуем масс-билд (но все сборки должны и так оказаться уже опубликованными в testing, если что, обращаемся к hisshadow@) (в НЕ testing, т.е. в release, ВАЖНО пока что не публиковать!)
- внизу страницы масс-билда на ABF скачиваем csv с результатами сборки
- с помощью
awk -F';;' '{print $номер_колонки}'
и/или импортирования в LibreOffice Calc (кодировка UTF-8, разделитель ";", галка "Объединять разделители") составляем отсортированный по алфавиту список не собравшихся проектов - запускаем новый масс-билд по составленному списку с человекопонятным названием:
- в названии тот же текст, но увеличена нумерация, например: "python3 3.11 1.1"
- поставить галку про подключение testing-репозитория
- повторить итерацию сколько-то раз
- собрать ISO-образ с параметром ENABLE_TESTING_REPOS=1
- проверить, что в нем:
- работает пакетный менеджер dnf (сборка образа будет производиться средствами rosa2021.1, а не rosa2023.1, поэтому сам факт собираемости образа не будет говорить о работсопособности пакетной системы)
- работает установщик Anaconda
- работает rpmbuild и может собрать какой-либо python3-пакет
- проверить еще что-нибудь
- если будут проблемы, то опубликовать исправления в testing и повторить итерацию
- дать собранный с testing образ кому-нибудь (например, mikhailnov) на изучение, как второй паре глаз
- если все будет хорошо, то попросить hisshadow@ опубликовать все пакеты из testing в release
python-foo packages
Starting from rosa2021.1, packages with python modules must be naed either python3-foo or python2-foo, not python-foo. There are some python2 packages named python-foo, we should either rename or drop them. / Начиная с платформы rosa2021.1, пакеты с python-модулями должны называться либо python2-foo, либо python3-foo, не python-foo. Есть некоторое количество пакетов с названием python-foo, их надо либо переименовать, либо удалить.
When renaming a subpackage from python-foo to python2-foo, use the following macro / при переименовании пакета из python-foo в python2-foo используйте макрос:
%py2_migration_meta python2-foo
which will add / который добавит:
Provides: python-foo = %{EVRD} Conflicts: python-foo < %{EVRD} Obsoletes: python-foo < %{EVRD}
When renaming a subpackage from python-foo to python3-foo, add / при переименовании пакета из python-foo в python3-foo добавьте:
Provides: python-foo = %{EVRD} Conflicts: python-foo < version-release Obsoletes: python-foo < version-release
where version-release
is the last version-release when it was named python-foo / где version-release
— это последняя версия-релиз, когда подпакет назывался python-foo.
icu 72
Update icu from 71 to 72 (abondrov@)
icu71 will be a separate package untill full upgrade is not finished.
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.
LLVM
Update llvm to 15 (done). Merge libcxx, lld etc. into one project — llvm.
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.
openssl 3.0
Update openssl from 1.1 to 3.0 (after python!)
KDE 5
Update KDE 5 stack (Victorr@)
/usr merge
Make /bin, /sbin, /lib, /lib64 be symlinks.
glibc is already prepared for it. Probably remove https://abf.io/import/glibc/commit/bcda4c102691515afde452b4076b038281d495fd when /usr is fully merged.
perl
Update Perl
Ruby
Update Ruby