<?xml version="1.0" encoding="UTF-8" ?>

<bugzilla version="5.2"
          urlbase="https://bugzilla.altlinux.org/"
          
          maintainer="jenya@basealt.ru"
>

    <bug>
          <bug_id>45727</bug_id>
          
          <creation_ts>2023-03-31 18:52:47 +0300</creation_ts>
          <short_desc>pkg-config: ошибка пересборки на архитектуре armh</short_desc>
          <delta_ts>2023-04-03 13:05:20 +0300</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>4</classification_id>
          <classification>Development</classification>
          <product>Sisyphus</product>
          <component>pkg-config</component>
          <version>unstable</version>
          <rep_platform>arm</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P5</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>45707</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexey Sheplyakov">asheplyakov</reporter>
          <assigned_to name="placeholder@altlinux.org">placeholder</assigned_to>
          <cc>at</cc>
    
    <cc>glebfm</cc>
    
    <cc>iv</cc>
    
    <cc>ldv</cc>
    
    <cc>nir</cc>
    
    <cc>placeholder</cc>
    
    <cc>rider</cc>
    
    <cc>shrek</cc>
    
    <cc>sin</cc>
    
    <cc>vt</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>223764</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Sheplyakov">asheplyakov</who>
    <bug_when>2023-03-31 18:52:47 +0300</bug_when>
    <thetext>#317778 FAILED #1 [test-only] sisyphus pkg-config.git=0.29.2-alt3

2023-Mar-30 12:10:04 :: plan: src +1 -1 =18294, aarch64 +2 -2 =31236, armh +2 -2 =29271, i586 +2 -2 =31279, ppc64le +2 -2 =30690, x86_64 +2 -2 =32190
2023-Mar-30 12:10:50 :: patched apt indices
2023-Mar-30 12:11:04 :: created next repo
2023-Mar-30 12:11:15 :: duplicate provides check OK
	armh: NEW unmet dependencies detected:
 libImageMagick-devel#6.9.12.73-alt1:sisyphus+314149.100.1.1@1674664040  /usr/bin/armh-alt-linux-gnueabi-pkg-config
 libfreetype-devel#2.13.0-alt1:sisyphus+315092.100.1.1@1676198701        /usr/bin/armh-alt-linux-gnueabi-pkg-config
	ACLs of affected packages (2):
 ImageMagick  rider @cpan
 libfreetype  shrek
2023-Mar-30 12:11:53 :: unmets: armh +2 -0 =14
2023-Mar-30 12:11:53 :: dependencies check FAILED
2023-Mar-30 12:11:53 :: task #317778 for sisyphus FAILED

При пересборке бинарник pkg-config каким-то образом получает триплет armv7l-alt-linux-gnueabi.
Что вообще говоря более правильно, чем непонятное armh-alt-linux-gnueabi.
Но самопроизвольные изменения такого вида крайне нежелательны (хотя бы потому, что ломают зависимости).

измен</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>223768</commentid>
    <comment_count>1</comment_count>
    <who name="Alexey Sheplyakov">asheplyakov</who>
    <bug_when>2023-03-31 19:01:05 +0300</bug_when>
    <thetext>Можно, конечно, тупо пересобрать сломавшиеся пакеты (благо их немного).
Но лучше бы понять:
1) Причину такого изменения,
2) Насколько оно желательно (или нет)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>223769</commentid>
    <comment_count>2</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2023-03-31 19:03:25 +0300</bug_when>
    <thetext>Мы выяснили, что это стало следствием https://git.savannah.gnu.org/cgit/config.git/commit/?id=ee9898641088ae9169de0453ce475d371f9d5016

Как видно, в репозитории с этим нет консистентности:
$ grep -F armh-alt-linux-gnueabi Sisyphus/armh/base/contents_index |cut -f2 |sort -u |wc -l
128
$ grep -F armv7l-alt-linux-gnueabi Sisyphus/armh/base/contents_index |cut -f2 |sort -u |wc -l
41</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>223771</commentid>
    <comment_count>3</comment_count>
    <who name="Alexey Sheplyakov">asheplyakov</who>
    <bug_when>2023-03-31 19:18:57 +0300</bug_when>
    <thetext>(Ответ для Dmitry V. Levin на комментарий #2)
&gt; Мы выяснили, что это стало следствием
&gt; https://git.savannah.gnu.org/cgit/config.git/commit/
&gt; ?id=ee9898641088ae9169de0453ce475d371f9d5016
&gt; 
&gt; Как видно, в репозитории с этим нет консистентности:
&gt; $ grep -F armh-alt-linux-gnueabi Sisyphus/armh/base/contents_index |cut -f2
&gt; |sort -u |wc -l
&gt; 128

Это то, что собиралось с gnu-config до коммита ee9898641088ae9169de0453ce475d371f9d5016.

&gt; $ grep -F armv7l-alt-linux-gnueabi Sisyphus/armh/base/contents_index |cut
&gt; -f2 |sort -u |wc -l
&gt; 41

А это - то, что успело собраться с gnu-config, в котором уже есть коммит ee9898641088ae9169de0453ce475d371f9d5016.

Даже не знаю, что делать.

1. Если оставить gnu-config как есть, то при следующей пересборке gcc, binutils, у них ВНЕЗАПНО изменится триплет.
2. С другой стороны, условно низкоуровневый код (gmp, например) хорошо знает, что такое armv7l-*-linux-gnueabi, а вот что такое armh-*-linux-gnueabi - как-то не очень.
   Из-за этого configure может решить не использовать ассемблерные реализации, или вообще сказать - а я не знаю, что это за платформа такая.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>223773</commentid>
    <comment_count>4</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2023-03-31 19:35:11 +0300</bug_when>
    <thetext>(In reply to Alexey Sheplyakov from comment #3)
&gt; (Ответ для Dmitry V. Levin на комментарий #2)
&gt; &gt; Мы выяснили, что это стало следствием
&gt; &gt; https://git.savannah.gnu.org/cgit/config.git/commit/
&gt; &gt; ?id=ee9898641088ae9169de0453ce475d371f9d5016
&gt; &gt; 
&gt; &gt; Как видно, в репозитории с этим нет консистентности:
&gt; &gt; $ grep -F armh-alt-linux-gnueabi Sisyphus/armh/base/contents_index |cut -f2
&gt; &gt; |sort -u |wc -l
&gt; &gt; 128
&gt; 
&gt; Это то, что собиралось с gnu-config до коммита
&gt; ee9898641088ae9169de0453ce475d371f9d5016.
&gt; 
&gt; &gt; $ grep -F armv7l-alt-linux-gnueabi Sisyphus/armh/base/contents_index |cut
&gt; &gt; -f2 |sort -u |wc -l
&gt; &gt; 41
&gt; 
&gt; А это - то, что успело собраться с gnu-config, в котором уже есть коммит
&gt; ee9898641088ae9169de0453ce475d371f9d5016.
&gt; 
&gt; Даже не знаю, что делать.
&gt; 
&gt; 1. Если оставить gnu-config как есть, то при следующей пересборке gcc,
&gt; binutils, у них ВНЕЗАПНО изменится триплет.

Этот коммит в Сизифе с конца позапрошлого года, за это время весь тулчейн уже пересобирался.

&gt; 2. С другой стороны, условно низкоуровневый код (gmp, например) хорошо
&gt; знает, что такое armv7l-*-linux-gnueabi, а вот что такое
&gt; armh-*-linux-gnueabi - как-то не очень.
&gt;    Из-за этого configure может решить не использовать ассемблерные
&gt; реализации, или вообще сказать - а я не знаю, что это за платформа такая.

Жалобы на это и послужили причиной того коммита в gnu config.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>223774</commentid>
    <comment_count>5</comment_count>
    <who name="Alexey Sheplyakov">asheplyakov</who>
    <bug_when>2023-03-31 19:41:03 +0300</bug_when>
    <thetext>(Ответ для Dmitry V. Levin на комментарий #4)
&gt; (In reply to Alexey Sheplyakov from comment #3)
&gt; &gt; (Ответ для Dmitry V. Levin на комментарий #2)
&gt; &gt; &gt; Мы выяснили, что это стало следствием
&gt; &gt; &gt; https://git.savannah.gnu.org/cgit/config.git/commit/
&gt; &gt; &gt; ?id=ee9898641088ae9169de0453ce475d371f9d5016
&gt; &gt; &gt; 
&gt; &gt; &gt; Как видно, в репозитории с этим нет консистентности:
&gt; &gt; &gt; $ grep -F armh-alt-linux-gnueabi Sisyphus/armh/base/contents_index |cut -f2
&gt; &gt; &gt; |sort -u |wc -l
&gt; &gt; &gt; 128
&gt; &gt; 
&gt; &gt; Это то, что собиралось с gnu-config до коммита
&gt; &gt; ee9898641088ae9169de0453ce475d371f9d5016.
&gt; &gt; 
&gt; &gt; &gt; $ grep -F armv7l-alt-linux-gnueabi Sisyphus/armh/base/contents_index |cut
&gt; &gt; &gt; -f2 |sort -u |wc -l
&gt; &gt; &gt; 41
&gt; &gt; 
&gt; &gt; А это - то, что успело собраться с gnu-config, в котором уже есть коммит
&gt; &gt; ee9898641088ae9169de0453ce475d371f9d5016.
&gt; &gt; 
&gt; &gt; Даже не знаю, что делать.
&gt; &gt; 
&gt; &gt; 1. Если оставить gnu-config как есть, то при следующей пересборке gcc,
&gt; &gt; binutils, у них ВНЕЗАПНО изменится триплет.
&gt; 
&gt; Этот коммит в Сизифе с конца позапрошлого года, за это время весь тулчейн
&gt; уже пересобирался.

Отлично. Значит последствия не столь страшны, как я себе их представлял.


&gt; &gt; 2. С другой стороны, условно низкоуровневый код (gmp, например) хорошо
&gt; &gt; знает, что такое armv7l-*-linux-gnueabi, а вот что такое
&gt; &gt; armh-*-linux-gnueabi - как-то не очень.
&gt; &gt;    Из-за этого configure может решить не использовать ассемблерные
&gt; &gt; реализации, или вообще сказать - а я не знаю, что это за платформа такая.
&gt; 
&gt; Жалобы на это и послужили причиной того коммита в gnu config.

Значит, просто пересобираю в задании 317766 пострадавшие пакеты (ImageMagick, libfreetype)?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>223776</commentid>
    <comment_count>6</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2023-03-31 21:44:15 +0300</bug_when>
    <thetext>(In reply to Alexey Sheplyakov from comment #5)
&gt; Значит, просто пересобираю в задании 317766 пострадавшие пакеты
&gt; (ImageMagick, libfreetype)?

Да.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>223777</commentid>
    <comment_count>7</comment_count>
    <who name="Alexey Sheplyakov">asheplyakov</who>
    <bug_when>2023-04-01 04:21:33 +0300</bug_when>
    <thetext>(Ответ для Dmitry V. Levin на комментарий #6)
&gt; (In reply to Alexey Sheplyakov from comment #5)
&gt; &gt; Значит, просто пересобираю в задании 317766 пострадавшие пакеты
&gt; &gt; (ImageMagick, libfreetype)?
&gt; 
&gt; Да.

Попробовал. Стало ещё хуже:

https://git.altlinux.org/tasks/317766/logs/events.6.1.log

2023-Apr-01 00:50:58 :: unmets: armh +492 -0 =504
2023-Apr-01 00:50:59 :: dependencies check FAILED
2023-Apr-01 00:50:59 :: task #317766 for sisyphus FAILED

Для сборки libfreetype требуется libharbuzz-devel, см. (https://git.altlinux.org/srpms/l/libfreetype.git?p=libfreetype.git;a=blob;f=libfreetype.spec;h=aede1044d42071043915d690676109114bdf9676;hb=7b26e395ccd157a5cd52721554d3be538cba2d94#l26

А libharfbuzz-devel среди прочего зависит от libfreetype-devel:
$ apt-cache show libharfbuzz-devel | grep -e &apos;^Depends&apos; | tr &apos;,&apos; &apos;\n&apos;
Depends: /usr/lib64/pkgconfig
 glib2-devel
 libfreetype-devel
 libgraphite2-devel
 libicu-devel
 pkgconfig(glib-2.0)
 pkgconfig(gobject-2.0)
 libharfbuzz-icu (= 3.2.0-alt1:p10+310099.70.8.1)
 libharfbuzz-gobject (= 3.2.0-alt1:p10+310099.70.8.1)

Чтобы пересобрать libfreetype-devel, нужно установить libfreetype-devel, а у libfreetype-devel сломана зависимость (от /usr/bin/armh-alt-linux-gnueabi-pkg-config)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>223784</commentid>
    <comment_count>8</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2023-04-01 10:00:12 +0300</bug_when>
    <thetext>Значит, придётся фиксить сборку пакета libfreetype, например, путём добавления
export PKG_CONFIG=pkg-config
перед %configure.

Вообще devel-пакеты совершенно напрасно зашивают путь к pkg-config, да ещё и архитектурно-зависимый.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>223796</commentid>
    <comment_count>9</comment_count>
    <who name="Alexey Sheplyakov">asheplyakov</who>
    <bug_when>2023-04-02 10:50:29 +0300</bug_when>
    <thetext>(Ответ для Dmitry V. Levin на комментарий #8)
&gt; Значит, придётся фиксить сборку пакета libfreetype, например, путём
&gt; добавления
&gt; export PKG_CONFIG=pkg-config
&gt; перед %configure.

Помогло.

&gt; Вообще devel-пакеты совершенно напрасно зашивают путь к pkg-config, да ещё и
&gt; архитектурно-зависимый.

Нет, не напрасно, а для поддержки кросс-компиляции (ПО, использующего данную библиотеку). Другое дело, что скрипт freetype-config сам по себе плохо сочетается с кросс-компиляцией -- кто ж добавляет в PATH $SYSROOT/bin? Но наши devel пакеты для кросс-компиляции (а точнее установки в SYSROOT) всё равно непригодны - в .pc файлах добрые люди удалили ${libdir} из Libs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>223797</commentid>
    <comment_count>10</comment_count>
    <who name="Alexey Sheplyakov">asheplyakov</who>
    <bug_when>2023-04-02 10:51:47 +0300</bug_when>
    <thetext>(Ответ для Alexey Sheplyakov на комментарий #9)
&gt; (Ответ для Dmitry V. Levin на комментарий #8)
&gt; &gt; Значит, придётся фиксить сборку пакета libfreetype, например, путём
&gt; &gt; добавления
&gt; &gt; export PKG_CONFIG=pkg-config
&gt; &gt; перед %configure.
&gt; 
&gt; Помогло.
&gt; 
&gt; &gt; Вообще devel-пакеты совершенно напрасно зашивают путь к pkg-config, да ещё и
&gt; &gt; архитектурно-зависимый.
&gt; 
&gt; Нет, не напрасно, а для поддержки кросс-компиляции (ПО, использующего данную
&gt; библиотеку). 

Интересно - а почему это происходит только на armh?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>223816</commentid>
    <comment_count>11</comment_count>
    <who name="Anton Farygin">rider</who>
    <bug_when>2023-04-03 09:24:02 +0300</bug_when>
    <thetext>Что-то я листал листал вашу переписку и так и не понял - вот этот изменение в ImageMagick оно чем обусловлено?

+export PKG_CONFIG=pkg-config
 %configure \

Я правильно понимаю, что в devel пакет влетает прямой путь к pkg-config ?
Может быть чинить это надо не таким способом, а где-то в autotools ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>223817</commentid>
    <comment_count>12</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2023-04-03 10:16:49 +0300</bug_when>
    <thetext>(In reply to Anton Farygin from comment #11)
&gt; Что-то я листал листал вашу переписку и так и не понял - вот этот изменение
&gt; в ImageMagick оно чем обусловлено?
&gt; 
&gt; +export PKG_CONFIG=pkg-config
&gt;  %configure \
&gt; 
&gt; Я правильно понимаю, что в devel пакет влетает прямой путь к pkg-config ?

Да, пакет во время сборки сперва спрашивает полный путь к pkg-config (имеет на это право),
а потом зачем-то зашивает этот полный путь в devel-пакет (а это уже лишнее).

&gt; Может быть чинить это надо не таким способом, а где-то в autotools ?

См. комментари45727#c4
Непонятно, что тут чинить в autotools.
Это проявляется только на armh, инвестировать в кото</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>223818</commentid>
    <comment_count>13</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2023-04-03 10:24:30 +0300</bug_when>
    <thetext>(In reply to Anton Farygin from comment #11)
&gt; Что-то я листал листал вашу переписку и так и не понял - вот этот изменение
&gt; в ImageMagick оно чем обусловлено?
&gt; 
&gt; +export PKG_CONFIG=pkg-config
&gt;  %configure \
&gt; 
&gt; Я правильно понимаю, что в devel пакет влетает прямой путь к pkg-config ?

Да, пакет во время сборки сперва спрашивает полный путь к pkg-config (имеет на это право),
а потом зачем-то зашивает этот полный путь в devel-пакет (а это уже лишнее).
В Сизифе, видимо, всего 2 пакета, которые так сделали.

&gt; Может быть чинить это надо не таким способом, а где-то в autotools ?

См. комментарий #c4.

Вроде бы autotools всё делает правильно, просто у libfreetype-devel циклические сборочные зависимости, его нельзя просто так взять и пересобрать после пересборки pkg-config.

Поскольку это проявляется только на armh (спасибо за инновационное название архитектуры), инвестировать в которую никто не собирается, скорее наоборот, проще сделать export PKG_CONFIG=pkg-config.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>223819</commentid>
    <comment_count>14</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2023-04-03 10:26:32 +0300</bug_when>
    <thetext>(оказывается, багзилла иногда коммитит комментарии, когда делаешь Preview, зря она это делает)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>223834</commentid>
    <comment_count>15</comment_count>
    <who name="Anton Farygin">rider</who>
    <bug_when>2023-04-03 12:39:28 +0300</bug_when>
    <thetext>

https://packages.altlinux.org/ru/tasks/317766/

остался один аппрув на freetype</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>