Difference between revisions of "Devel rosa2023.1"
Mikhailnov (Talk | contribs) |
Mikhailnov (Talk | contribs) (→python-foo packages) |
||
(25 intermediate revisions by the same user not shown) | |||
Line 8: | Line 8: | ||
== rootfs & ISO of 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 (in ISOs). | + | 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 x86_64 === | ||
Line 15: | Line 17: | ||
=== rootfs aarch64 === | === rootfs aarch64 === | ||
− | * | + | * https://file-store.rosalinux.ru/api/v1/file_stores/2bcf91d6563b5ef42d05d91e243e6b5d76adf76b (rootfs-std-rosa2023.1_aarch64_2023-01-17.tar.xz) |
=== rootfs i686 === | === rootfs i686 === | ||
Line 31: | Line 33: | ||
=== ISO LXQt x86_64 === | === ISO LXQt x86_64 === | ||
* https://abf.io/platforms/rosa2023.1/products/410 | * https://abf.io/platforms/rosa2023.1/products/410 | ||
− | * https://abf.io/platforms/rosa2023.1/products/410/product_build_lists/ | + | * https://abf.io/platforms/rosa2023.1/products/410/product_build_lists/45411 |
=== ISO LXQt i686 === | === ISO LXQt i686 === | ||
Line 47: | Line 49: | ||
=== ISO KDE Plasma5 x86_64 === | === ISO KDE Plasma5 x86_64 === | ||
* https://abf.io/platforms/rosa2023.1/products/427 | * https://abf.io/platforms/rosa2023.1/products/427 | ||
− | * https://abf.io/platforms/rosa2023.1/products/427/product_build_lists/ | + | * https://abf.io/platforms/rosa2023.1/products/427/product_build_lists/45412 |
=== ISO GNOME x86_64 === | === ISO GNOME x86_64 === | ||
Line 71: | Line 73: | ||
* Update the library / Обновите библиотеку | * 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 — новая версия) | * 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 с результатами сборки | ||
+ | * с помощью <code>awk -F';;' '{print $номер_колонки}'</code> и/или импортирования в 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 python'''2'''-foo, use the following macro / при переименовании пакета из python-foo в python'''2'''-foo используйте макрос: | ||
+ | %py2_migration_meta python2-foo | ||
+ | which will add / который добавит: | ||
+ | <pre> | ||
+ | Provides: python-foo = %{EVRD} | ||
+ | Conflicts: python-foo < %{EVRD} | ||
+ | Obsoletes: python-foo < %{EVRD} | ||
+ | </pre> | ||
+ | |||
+ | When renaming a subpackage from python-foo to python'''3'''-foo, add / при переименовании пакета из python-foo в python'''3'''-foo добавьте: | ||
+ | <pre> | ||
+ | Provides: python-foo = %{EVRD} | ||
+ | Conflicts: python-foo < version-release | ||
+ | Obsoletes: python-foo < version-release | ||
+ | </pre> | ||
+ | where <code>version-release</code> is the last version-release when it was named python-foo / где <code>version-release</code> — это последняя версия-релиз, когда подпакет назывался 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 |
Latest revision as of 14:05, 28 February 2023
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