Bug 45707

Summary: pkg-config: упрощение начальной (bootstrap) сборки
Product: Sisyphus Reporter: Alexey Sheplyakov <asheplyakov>
Component: pkg-configAssignee: placeholder <placeholder>
Status: NEW --- QA Contact: qa-sisyphus
Severity: enhancement    
Priority: P5 CC: at, glebfm, iv, ldv, nir, placeholder, sin
Version: unstable   
Hardware: all   
OS: Linux   
Bug Depends on: 45727    
Bug Blocks: 45802    
Attachments:
Description Flags
Архив с патчами none

Description Alexey Sheplyakov 2023-03-30 12:08:21 MSK
Created attachment 12851 [details]
Архив с патчами

Для сборки pkg-config требуется glib2, а для glib2 - pkg-config (даже для того, чтобы просто rpm-build смог разобрать spec), meson, python3 (и далее по списку OpenSSL, libffi, pcre2, libmpdec, и прочие). Это сильно усложняет изначальную (bootstrap) сборку.
Для упрощения предлагается использовать копию glib, поставляемую вместе с pkg-config, и добавить опцию bootstrap (по умолчанию отключена) в spec.
Comment 1 Alexey Sheplyakov 2023-03-30 12:18:12 MSK
С приложенными патчами собрано задание 317766.
По непонятным причинам оно сломалось на arm: https://git.altlinux.org/tasks/317766/logs/events.2.1.log
Очень странно, поскольку сборка по умолчанию не включает --enable=bootstrap
Comment 2 Dmitry V. Levin 2023-03-30 14:07:40 MSK
$ compare_packages -- Sisyphus/files/armh/RPMS/pkg-config-0.29.2-alt3.armh.rpm -- tasks/317766/build/200/armh/rpms/pkg-config-0.29.2-alt4.armh.rpm
[...]
@@ -1,5 +1,5 @@
 -rw-r--r--  root root ,    /etc/buildreqs/files/ignore.d/pkg-config
--rwxr-xr-x  root root ,    /usr/bin/armh-alt-linux-gnueabi-pkg-config
+-rwxr-xr-x  root root ,    /usr/bin/armv7l-alt-linux-gnueabi-pkg-config
 -rwxr-xr-x  root root ,    /usr/bin/pkg-config
 drwxr-xr-x  root root ,    /usr/lib/pkgconfig
 -rw-r--r--  root root ,    /usr/lib/rpm/pkg-config-files.req.list
Comment 3 Dmitry V. Levin 2023-03-30 14:19:06 MSK
(In reply to Dmitry V. Levin from comment #2)
> $ compare_packages --
> Sisyphus/files/armh/RPMS/pkg-config-0.29.2-alt3.armh.rpm --
> tasks/317766/build/200/armh/rpms/pkg-config-0.29.2-alt4.armh.rpm
> [...]
> @@ -1,5 +1,5 @@
>  -rw-r--r--  root root ,    /etc/buildreqs/files/ignore.d/pkg-config
> --rwxr-xr-x  root root ,    /usr/bin/armh-alt-linux-gnueabi-pkg-config
> +-rwxr-xr-x  root root ,    /usr/bin/armv7l-alt-linux-gnueabi-pkg-config
>  -rwxr-xr-x  root root ,    /usr/bin/pkg-config
>  drwxr-xr-x  root root ,    /usr/lib/pkgconfig
>  -rw-r--r--  root root ,    /usr/lib/rpm/pkg-config-files.req.list

Интересно, конечно, что изменилось в Sisyphus/armh с предыдущей сборки,
что привело к такому эффекту:

$ grep gnueabi tasks/317766/build/200/armh/log |head -3
[00:00:14] + ./configure --build=armh-alt-linux-gnueabi --host=armh-alt-linux-gnueabi --prefix=/usr --exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc --datadir=/usr/share --includedir=/usr/include --libdir=/usr/lib --libexecdir=/usr/lib --localstatedir=/var/lib --sharedstatedir=/var/lib --mandir=/usr/share/man --infodir=/usr/share/info --disable-dependency-tracking --disable-silent-rules --without-included-gettext --docdir=/usr/share/doc/pkg-config-0.29.2 --without-internal-glib --disable-silent-rules
[00:00:14] checking build system type... armv7l-alt-linux-gnueabi
[00:00:14] checking host system type... armv7l-alt-linux-gnueabi
Comment 4 Dmitry V. Levin 2023-03-30 14:25:32 MSK
По коммитами у меня есть только косметические замечания:

1. commit message:
-which which requires python, which requires OpenSSL, readline,
+which requires python, which in turn requires OpenSSL, readline,

2. commit message:
-Simplified the bootstrap sequence
+spec: simplify the bootstrap sequence

3. commit message: 
-Added ...
+Add ...

4. %changelog, commit message:
-- Simplified the bootstrap sequence
+- Simplified the bootstrap sequence.
Comment 5 Alexey Sheplyakov 2023-03-30 14:53:49 MSK
(Ответ для Dmitry V. Levin на комментарий #4)
> По коммитами у меня есть только косметические замечания:
> 
> 1. commit message:
> -which which requires python, which requires OpenSSL, readline,
> +which requires python, which in turn requires OpenSSL, readline,

Принято.

> 2. commit message:
> -Simplified the bootstrap sequence
> +spec: simplify the bootstrap sequence

Это не вполне верно, изменения затрагивают не только spec, но и glib (поставляемую с pkg-config): добавлена функция g_hash_table_get_keys_as_array

> 3. commit message: 
> -Added ...
> +Add ...

Принято.

> 4. %changelog, commit message:
> -- Simplified the bootstrap sequence
> +- Simplified the bootstrap sequence.

Принято.
Comment 6 Dmitry V. Levin 2023-03-30 20:20:44 MSK
Я думаю, что если добавить rebuild тех пакетов, у которых образуются unmet'ы на armh, то задание соберётся.
Comment 7 Dmitry V. Levin 2023-03-30 20:21:45 MSK
Можно ещё автозакрывание ALT#45707 добавить в %changelog.
Comment 8 Alexey Sheplyakov 2023-03-31 18:56:28 MSK
(Ответ для Dmitry V. Levin на комментарий #3)
> (In reply to Dmitry V. Levin from comment #2)
> > $ compare_packages --
> > Sisyphus/files/armh/RPMS/pkg-config-0.29.2-alt3.armh.rpm --
> > tasks/317766/build/200/armh/rpms/pkg-config-0.29.2-alt4.armh.rpm
> > [...]
> > @@ -1,5 +1,5 @@
> >  -rw-r--r--  root root ,    /etc/buildreqs/files/ignore.d/pkg-config
> > --rwxr-xr-x  root root ,    /usr/bin/armh-alt-linux-gnueabi-pkg-config
> > +-rwxr-xr-x  root root ,    /usr/bin/armv7l-alt-linux-gnueabi-pkg-config
> >  -rwxr-xr-x  root root ,    /usr/bin/pkg-config
> >  drwxr-xr-x  root root ,    /usr/lib/pkgconfig
> >  -rw-r--r--  root root ,    /usr/lib/rpm/pkg-config-files.req.list
> 
> Интересно, конечно, что изменилось в Sisyphus/armh с предыдущей сборки,
> что привело к такому эффекту:
> 
> $ grep gnueabi tasks/317766/build/200/armh/log |head -3
> [00:00:14] + ./configure --build=armh-alt-linux-gnueabi
> --host=armh-alt-linux-gnueabi --prefix=/usr --exec-prefix=/usr
> --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc --datadir=/usr/share
> --includedir=/usr/include --libdir=/usr/lib --libexecdir=/usr/lib
> --localstatedir=/var/lib --sharedstatedir=/var/lib --mandir=/usr/share/man
> --infodir=/usr/share/info --disable-dependency-tracking
> --disable-silent-rules --without-included-gettext
> --docdir=/usr/share/doc/pkg-config-0.29.2 --without-internal-glib
> --disable-silent-rules
> [00:00:14] checking build system type... armv7l-alt-linux-gnueabi
> [00:00:14] checking host system type... armv7l-alt-linux-gnueabi

Завёл на эту тему https://bugzilla.altlinux.org/45727, предлагаю обсуждать этот (без сомнения важный) вопрос там.
Comment 9 Dmitry V. Levin 2023-03-31 19:04:49 MSK
(In reply to Dmitry V. Levin from comment #6)
> Я думаю, что если добавить rebuild тех пакетов, у которых образуются unmet'ы
> на armh, то задание соберётся.

Я предлагаю так и сделать, просто пересобрать эти 2 пакета.