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

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

    <bug>
          <bug_id>53250</bug_id>
          
          <creation_ts>2025-02-28 00:07:24 +0300</creation_ts>
          <short_desc>У brp-debuginfo проблемы с пробелами</short_desc>
          <delta_ts>2025-06-14 21:15:28 +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>rpm-build</component>
          <version>unstable</version>
          <rep_platform>x86_64</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>FIXED</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ivan A. Melnikov">iv</reporter>
          <assigned_to name="placeholder@altlinux.org">placeholder</assigned_to>
          <cc>arseny</cc>
    
    <cc>glebfm</cc>
    
    <cc>imz</cc>
    
    <cc>ldv</cc>
    
    <cc>placeholder</cc>
    
    <cc>vt</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>260066</commentid>
    <comment_count>0</comment_count>
      <attachid>17840</attachid>
    <who name="Ivan A. Melnikov">iv</who>
    <bug_when>2025-02-28 00:07:24 +0300</bug_when>
    <thetext>Created attachment 17840
соберите этот спек чтобы воспроизвести проблему

Так получилось, что мне очень понадобилось собрать библиотеку с пробелом в имени. Так я узнал, что у нас brp-debuginfo вообще не способен справиться с бинарниками с пробельными символами в именах.

Для воспроизведения ошибки проще всего попробовать запаковать тривиальную программу (самодостаточный спек в приложении). Содержательная чать buildroot получается такой:

$ find /tmp/.private/iv/spaces-buildroot/usr/
/tmp/.private/iv/spaces-buildroot/usr/
/tmp/.private/iv/spaces-buildroot/usr/bin
/tmp/.private/iv/spaces-buildroot/usr/bin/space test

То есть, пакуется исполняемый файл &quot;/usr/bin/space test&quot;.

Ошибка выглядит так:

date: ./usr/bin/space: No such file or directory
date: test: No such file or directory
error: Bad exit status from /tmp/.private/iv/rpm-tmp.35317 (%install)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>260067</commentid>
    <comment_count>1</comment_count>
    <who name="Ivan A. Melnikov">iv</who>
    <bug_when>2025-02-28 00:10:29 +0300</bug_when>
    <thetext>Пока писал репорт заметил, что у одного xargs там есть `--delimeter=&apos;\n&apos;`, а у другого нет. Пойду попробую сделать патч.

Конечно, тогда останутся проблемы с переносом строки в имени, но это уже не так актуально.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>260068</commentid>
    <comment_count>2</comment_count>
    <who name="Ivan A. Melnikov">iv</who>
    <bug_when>2025-02-28 00:34:51 +0300</bug_when>
    <thetext>Тривиальный фикс достаточно тривиален

https://git.altlinux.org/people/iv/packages/rpm.git?a=commitdiff;h=f983dc085c41f3790dee026286a873b5855e7994

но явно не достаточен:

[...]
Finding debuginfo files (using /usr/lib/rpm/find-debuginfo-files)
Executing: /bin/sh -e /tmp/.private/iv/rpm-tmp.lC8hA9
Creating spaces-debuginfo package
Processing files: spaces-debuginfo-0.1-alt1
error: Two files on one line: /usr/lib/debug/usr/bin/space
error: File must begin with &quot;/&quot;: test.debug


RPM build errors:
    Two files on one line: /usr/lib/debug/usr/bin/space
    File must begin with &quot;/&quot;: test.debug</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>260069</commentid>
    <comment_count>3</comment_count>
    <who name="Ivan A. Melnikov">iv</who>
    <bug_when>2025-02-28 00:39:37 +0300</bug_when>
    <thetext>В качестве workaround&apos;а можно воспользоваться %add_debuginfo_skiplist.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>260073</commentid>
    <comment_count>4</comment_count>
    <who name="Vitaly Chikunov">vt</who>
    <bug_when>2025-02-28 08:49:57 +0300</bug_when>
    <thetext>А разве в rpm можно запаковать файлы с пробелами.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>260075</commentid>
    <comment_count>5</comment_count>
    <who name="Ivan A. Melnikov">iv</who>
    <bug_when>2025-02-28 08:57:09 +0300</bug_when>
    <thetext>(In reply to Vitaly Chikunov from comment #4)
&gt; А разве в rpm можно запаковать файлы с пробелами.

А почему нет?

[iv@team ~]$ grep -c  &apos; &apos;  /ALT/sisyphus/{x86_64,noarch}/base/contents_index
/ALT/sisyphus/x86_64/base/contents_index:13097
/ALT/sisyphus/noarch/base/contents_index:67962

Если добавить в начало тестового спека `%add_debuginfo_skiplist %_bindir`, он соберётся; с установкой и удалением тоже вроде проблем никаких.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>260077</commentid>
    <comment_count>6</comment_count>
    <who name="Vitaly Chikunov">vt</who>
    <bug_when>2025-02-28 09:18:36 +0300</bug_when>
    <thetext>Возможно, я тестировал как раз на бинарниках и принял эту ошибку за то, что &quot;вообще не работает&quot;. Так же, Арсений упоминал https://bugzilla.altlinux.org/show_bug.cgi?id=51874#c6 что есть какая-то проблема с пробелами, но пояснения не дал, я решил тогда, что она относится к предложенному там патчу.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>260087</commentid>
    <comment_count>7</comment_count>
    <who name="Vitaly Chikunov">vt</who>
    <bug_when>2025-02-28 10:01:44 +0300</bug_when>
    <thetext>Ну да, если указать в спеке имя файла с пробелом

  %files
  %_bindir/test generated

то ошибка rpm-build: &quot;Two files on one line&quot;. То что запаковывается - это по glob или по вложенным в диры файлам.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>260091</commentid>
    <comment_count>8</comment_count>
    <who name="Vitaly Chikunov">vt</who>
    <bug_when>2025-02-28 10:09:42 +0300</bug_when>
    <thetext>Может кто знает как это решается в апстримах? В смысле разрешено ли там указывать файлы с пробелами в %files, может для этого требуется \ или &quot; &quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>260092</commentid>
    <comment_count>9</comment_count>
    <who name="Ivan A. Melnikov">iv</who>
    <bug_when>2025-02-28 10:17:37 +0300</bug_when>
    <thetext>(In reply to Vitaly Chikunov from comment #7)
&gt; То что запаковывается - это по
&gt; glob или по вложенным в диры файлам.

Внезапно, ещё вот так работает:

%files
&quot;%_bindir/space test&quot;

А экранирование `\` или `[ ]` нет.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>260094</commentid>
    <comment_count>10</comment_count>
    <who name="Ivan A. Melnikov">iv</who>
    <bug_when>2025-02-28 10:22:54 +0300</bug_when>
    <thetext>Разбор проблем:

https://github.com/rpm-software-management/rpm/issues/1749#issuecomment-1020420616

До конца по ссылке пока не дочитал читал.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>260101</commentid>
    <comment_count>11</comment_count>
    <who name="Vitaly Chikunov">vt</who>
    <bug_when>2025-02-28 11:07:26 +0300</bug_when>
    <thetext>(In reply to Ivan A. Melnikov from comment #10)
&gt; Разбор проблем:
&gt; 
&gt; https://github.com/rpm-software-management/rpm/issues/1749#issuecomment-
&gt; 1020420616
&gt; 
&gt; До конца по ссылке пока не дочитал читал.

Спасибо. Апстрим захотели как можно больше приблизить формат строки к shell и сделали большие изменения для этого. Мы можем пока просто заключать эти генеренные имена файлов в кавычки.

Тестовое задание https://git.altlinux.org/tasks/376351/ (пока еще собирается)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>260129</commentid>
    <comment_count>12</comment_count>
    <who name="Ivan A. Melnikov">iv</who>
    <bug_when>2025-02-28 16:50:02 +0300</bug_when>
    <thetext>&gt; Тестовое задание https://git.altlinux.org/tasks/376351/

С rpm-build их этого задания пакеты -- и тестовый спек, и тот, на котором я вчера наткнулся на эту проблему -- успешно собрались. Debuginfo для spaces из тестового спека ставится и работает в gdb.

При этом, насколько я понимаю работу и применение strtokWithQuotes, сломать эти изменения ничего не должны.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>260131</commentid>
    <comment_count>13</comment_count>
    <who name="Vitaly Chikunov">vt</who>
    <bug_when>2025-02-28 17:26:26 +0300</bug_when>
    <thetext>Надо подумать может не так сложно отключить поддержку glob внутри кавычек, это решит и баг #51874.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>267178</commentid>
    <comment_count>14</comment_count>
    <who name="Vitaly Chikunov">vt</who>
    <bug_when>2025-06-14 01:40:57 +0300</bug_when>
    <thetext>(In reply to Vitaly Chikunov from comment #11)
&gt; Тестовое задание https://git.altlinux.org/tasks/376351/ (пока еще собирается)

Раз все ок, то я коммичу эти изменения вместе с еще одним фиксом для debuginfo.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>267188</commentid>
    <comment_count>15</comment_count>
    <who name="Repository Robot">repository-robot</who>
    <bug_when>2025-06-14 21:15:28 +0300</bug_when>
    <thetext>rpm-build-4.0.4.205-alt1 -&gt; sisyphus:

 Sat Jun 14 2025 Vitaly Chikunov &lt;vt@altlinux&gt; 4.0.4.205-alt1
 - debuginfo: Quote filenames to allow spaces in them (ALT#53250).
 - debuginfo: Restore .build-id symlink for vmlinux binary.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>17840</attachid>
            <date>2025-02-28 00:07:24 +0300</date>
            <delta_ts>2025-02-28 00:07:24 +0300</delta_ts>
            <desc>соберите этот спек чтобы воспроизвести проблему</desc>
            <filename>spaces.spec</filename>
            <type>text/x-rpm-spec</type>
            <size>396</size>
            <attacher name="Ivan A. Melnikov">iv</attacher>
            
              <data encoding="base64">Ck5hbWU6IHNwYWNlcwpWZXJzaW9uOiAwLjEKUmVsZWFzZTogYWx0MQoKU3VtbWFyeTogU3BhY2Vz
IFRlc3QKTGljZW5zZTogTUlUCkdyb3VwOiBPdGhlcgoKJWRlc2NyaXB0aW9uCiVzdW1tYXJ5Cgol
cHJlcApjYXQgPiAndGVzdC5jJyA8PCAnRU9GJwppbnQgbWFpbigpIHsKICByZXR1cm4gMDsKfQpF
T0YKCiVidWlsZApnY2MgLWcyIC1PMiB0ZXN0LmMgLW8gdGVzdAoKJWluc3RhbGwKbWtkaXIgLXAg
JWJ1aWxkcm9vdCVfYmluZGlyCmNwIC4vdGVzdCAgIiVidWlsZHJvb3QlX2JpbmRpci9zcGFjZSB0
ZXN0IgoKJWZpbGVzCiVfYmluZGlyLyoKCiVjaGFuZ2Vsb2cKKiBGcmkgRmViIDI4IDIwMjUgSXZh
biBBLiBNZWxuaWtvdiA8aXZAYWx0bGludXgub3JnPiAxLjAtYWx0MQotIHRlc3Qgc3R1ZmYK
</data>

          </attachment>
      

    </bug>

</bugzilla>