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

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

    <bug>
          <bug_id>37035</bug_id>
          
          <creation_ts>2019-07-16 10:54:44 +0300</creation_ts>
          <short_desc>i586-wine конфликтует с wine</short_desc>
          <delta_ts>2021-10-30 03:29:12 +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>rpmrebuild-arepo</component>
          <version>unstable</version>
          <rep_platform>all</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>https://wiki.winehq.org/Packaging#Multilib_.2F_Multiarch</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P1</priority>
          <bug_severity>critical</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>22985</dependson>
          <blocked>40797</blocked>
    
    <blocked>33363</blocked>
    
    <blocked>40210</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Vitaly Lipatov">lav</reporter>
          <assigned_to name="placeholder@altlinux.org">placeholder</assigned_to>
          <cc>aen</cc>
    
    <cc>alexei.mezin</cc>
    
    <cc>darktemplaralt</cc>
    
    <cc>gbophuk_alt</cc>
    
    <cc>glebfm</cc>
    
    <cc>grizlik78</cc>
    
    <cc>ldv</cc>
    
    <cc>nickel</cc>
    
    <cc>placeholder</cc>
    
    <cc>rider</cc>
    
    <cc>vitty</cc>
    
    <cc>vt</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>183091</commentid>
    <comment_count>0</comment_count>
    <who name="Vitaly Lipatov">lav</who>
    <bug_when>2019-07-16 10:54:44 +0300</bug_when>
    <thetext>После решения
https://bugzilla.altlinux.org/show_bug.cgi?id=22985
i586-wine конфликтует с wine, в то время как по задумке эти
пакеты должны останавливаться вместе.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>183186</commentid>
    <comment_count>1</comment_count>
    <who name="Aleksey Borisenkov">grizlik78</who>
    <bug_when>2019-07-21 09:48:12 +0300</bug_when>
    <thetext>*** Bug 34280 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>188767</commentid>
    <comment_count>2</comment_count>
    <who name="gBopHuk">gbophuk_alt</who>
    <bug_when>2020-03-24 17:11:17 +0300</bug_when>
    <thetext>+1

Очень надо. Уже полгода не получается нормально проверить собранные для https://en.wikipedia.org/wiki/WoW64 пакеты. Приложений в стиле wow64 становиться всё больше.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>191744</commentid>
    <comment_count>3</comment_count>
    <who name="Николай Костригин">nickel</who>
    <bug_when>2020-08-07 18:22:46 +0300</bug_when>
    <thetext>Проблема до сих пор актуальна. Она не позволяет устанавливать 32-bit библиотеки через winetricks и/или использовать 32-bit инсталляторы на x86_64

Как воспроизвести: 

1. apt-get install wine winetricks
2. winetricks vcrun2015

Ожидание: winecfg на вкладке библиотеки показывает список вида:
api-ms-win-crt-*
[...]
vcruntime140

Реальность: ошибка в консоли:

Executing cd /home/nickel/.cache/winetricks/vcrun2015
Executing wine64 vc_redist.x86.exe
000b:fixme:winediag:__wine_start_process Wine Staging 5.0 is a testing version containing experimental patches.
000b:fixme:winediag:__wine_start_process Please mention your exact version when filing bug reports on winehq.org.
0009:err:module:__wine_process_init L&quot;Y:\\vcrun2015\\vc_redist.x86.exe&quot; not supported on this system
------------------------------------------------------
Важно: команда wine64 vc_redist.x86.exe вернула статус 123. Прерывание.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>192459</commentid>
    <comment_count>4</comment_count>
    <who name="Aleksei Nikiforov">darktemplaralt</who>
    <bug_when>2020-09-14 11:31:40 +0300</bug_when>
    <thetext>&gt; Чтобы сделать выводы, нужно прочитать
&gt; https://wiki.winehq.org/Packaging
&gt; посмотреть, как упакован wine в Debian и Fedora. 

Посмотрел сборку в Fedora. Там упаковываются действительно /usr/bin/wine32 и /usr/bin/wine64. Но там используется не скрипт, а механизм альтернатив.

https://src.fedoraproject.org/rpms/wine/blob/master/f/wine.spec#_1053

Причём, у %{_bindir}/wine64 приоритет 10, у %{_bindir}/wine32 приоритет 20, т.е. выберется из 2 вариантов wine32 если оба доступны.

Т.е. например создаётся симлинк /usr/bin/wine -&gt; /usr/bin/wine32. При вызове wine вызывается в таком случае бинарь wine32, но в argv[0] у него &quot;wine&quot;. Соответственно к &quot;wine&quot; добавляется префикс &quot;64&quot;, получается &quot;wine64&quot; и пытается вызвать правильный бинарь для wine64.

Если же использовать скрипт, как сейчас в тестовом задании, то в argv[0] попадает уже &quot;wine32&quot;, к этой строке добавляется суффикс &quot;64&quot; и получается уже описываемое в devel &quot;wine3264&quot;.

В Debian, насколько я вижу, wine не переименовывают в wine32:

https://packages.debian.org/sid/i386/wine32/filelist

Я считаю, что в связи с описанной выше логикой переименовывать wine в wine32 - не нужно и даже скорее вредно. Рекомендуемые апстримом скрипты-обёртки и переименование бинарей стоит использовать только если эти бинари по-дефолту конфликтуют в разных архитектурах по именам, как например происходит у wineserver.

Если необходимо иметь /usr/bin/wine в обоих пакетах, и i586-wine, и wine, то можно опять-таки попробовать поступить как в Debian: перенести /usr/bin/wine и /usr/bin/wine64 в /usr/lib/$something/, например, /usr/lib/wine/bin/, а в /usr/bin/wine сделать скрипт-обёртку, и возможно ещё симлинк /usr/bin/wine64 -&gt; /usr/lib/wine/bin/wine64. Работоспособность такого решения потребуется протестировать, возможно помимо wine и wine64 потребуется какие-то ещё бинари перенести.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>192560</commentid>
    <comment_count>5</comment_count>
    <who name="Aleksei Nikiforov">darktemplaralt</who>
    <bug_when>2020-09-16 18:04:10 +0300</bug_when>
    <thetext>Сделал задание #258083 с wine и wine-vanilla без файловых конфликтов с соответствующими arepo-пакетами:

http://git.altlinux.org/tasks/258083

К сожалению, пока что можно в задании оценить лишь изменения в исходниках. arepo не генерирует i586-wine и i586-wine-vanilla без дополнительных изменений, которые были собраны в rpmrebuild-arepo в задании #258093:

http://git.altlinux.org/tasks/258093

В частности, необходимо вот это изменение:

http://git.altlinux.org/people/darktemplar/packages/?p=rpmrebuild-arepo.git;a=commitdiff;h=77f25bba5fee451922dfeebcfee40c1d314d64c9

Заодно обновил rpmrebuild-arepo-scripts чтобы оно работало с python3 и текущим python3(rpm) из Сизифа.

Пока что я только локально генерировал i586-wine через arepoize и тестировал чтобы всё работало. Проблем не обнаружил. Пробовал ставить i586-wine и wine как по отдельности, так и вместе. wine-vanilla не проверял, но там практически всё сделано аналогично.

План следующий:
1) Получение обратной связи от мейнтейнера wine и wine-vanilla (lav@). Если всё ок и дополнительных изменений не нужно, то к следующему пункту.
2) Обновление rpmrebuild-arepo как в задании #258093 или аналогично. Также возможно похожие изменения надо будет проделать в girar и на сборочнице.

http://git.altlinux.org/people/ldv/packages/girar.git?p=girar.git;a=blob;f=gb/gb-task-arepo-plan-identify;h=61971bb9ab652f059d8ea5ac3e58e1810e4d749f;hb=HEAD#l21

3) Пересобрать wine и wine-vanilla из задания, чтобы там появились пакеты i586-wine и i586-wine-vanilla. Также можно после этого их при необходимости дополнительно протестировать.
4) Отправить новые wine и wine-vanilla в репозиторий. Файловые конфликты должны уйти. Должны работать отдельно установленные i586-wine и wine (и i586-wine-vanilla и wine-vanilla тоже).
5) Попросить админов сборочницы наконец убрать выставление конфликтов в prog режиме arepo.
6) Пересобрать wine и wine-vanilla в репозитории. Межпакетные конфликты должны пропасть. В дополнение к пункту 4 должны работать вместе установленные соответствующие пакеты, т.е. wine и i586-wine или wine-vanilla и i586-wine-vanilla.

Начнём с пункта 1. lav@, прошу посмотреть упомянутое выше задание и предоставить отзыв (&quot;ок&quot; или &quot;не ок&quot; и что не так).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>192563</commentid>
    <comment_count>6</comment_count>
    <who name="Vitaly Lipatov">lav</who>
    <bug_when>2020-09-16 19:42:05 +0300</bug_when>
    <thetext>(Ответ для Aleksei Nikiforov на комментарий #4)
...
&gt; Если же использовать скрипт, как сейчас в тестовом задании, то в argv[0]
&gt; попадает уже &quot;wine32&quot;, к этой строке добавляется суффикс &quot;64&quot; и получается
&gt; уже описываемое в devel &quot;wine3264&quot;.
Ну это странно, надо будет с этим разобраться. Хотя достаточно вызывать wine32 не через exec в скрипте, и проблемы не будет.

...
&gt; Я считаю, что в связи с описанной выше логикой переименовывать wine в wine32
&gt; - не нужно и даже скорее вредно. Рекомендуемые апстримом скрипты-обёртки и
Поскольку иметь скрипт wine полезно для ряда случаев, я бы придерживался подхода с wine32 и wine64. Не вижу смысла при наличии wine64 что-то называть просто wine.

&gt; Если необходимо иметь /usr/bin/wine в обоих пакетах, и i586-wine, и wine, то
&gt; можно опять-таки попробовать поступить как в Debian: перенести /usr/bin/wine
&gt; и /usr/bin/wine64 в /usr/lib/$something/, например, /usr/lib/wine/bin/, а в
&gt; /usr/bin/wine сделать скрипт-обёртку, и возможно ещё симлинк /usr/bin/wine64
&gt; -&gt; /usr/lib/wine/bin/wine64. Работоспособность такого решения потребуется
&gt; протестировать, возможно помимо wine и wine64 потребуется какие-то ещё
&gt; бинари перенести.
Да не нужно нам bin/wine в обоих пакетах, в одном достаточно. Переносить куда-то имеет смысл только полностью, ради сомнительной возможности устаналивать сразу много разных wine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>192566</commentid>
    <comment_count>7</comment_count>
    <who name="Vitaly Lipatov">lav</who>
    <bug_when>2020-09-16 21:32:57 +0300</bug_when>
    <thetext>(Ответ для Aleksei Nikiforov на комментарий #5)
...
&gt; Начнём с пункта 1. lav@, прошу посмотреть упомянутое выше задание и
&gt; предоставить отзыв (&quot;ок&quot; или &quot;не ок&quot; и что не так).
Я не знаю, зачем вы сделали задание, если ещё не обсуждено, какие изменения предлагаются, а вы не описали, что вы предлагаете к изменению.
Мне проще сделать изменения самому, чем смотреть, в задание и ещё отзыв предоставлять.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>192582</commentid>
    <comment_count>8</comment_count>
    <who name="Aleksei Nikiforov">darktemplaralt</who>
    <bug_when>2020-09-17 10:37:50 +0300</bug_when>
    <thetext>Прежде чем предлагать изменения, мне нужно было убедиться что после них wine будет работоспособен. Проделав такие изменения, оформить их в test-only задание - практически не требует никаких дополнительных усилий. Поэтому я его и сделал. Таким образом можно не только рассказать какие изменения планируется делать, но и показать их.

По поводу содержимого изменений: поменял bindir для wine с /usr/bin на /usr/lib/%name-%version/bin. В /usr/bin поместил 4 адаптированных скрипта из Debian - wine, winegcc и симлинки на него, wineserver и wine-preloader. Остальные файлы, которые были перенесены из /usr/bin, засимлинкал обратно.

Отдельная директория потребовалась чтобы не переименовывать бинарь wine в wine32, а также обеспечить наличие /usr/bin/wine в wine*-common, т.е. чтобы /usr/bin/wine был даже если i586-wine не установлен. Если от наличия /usr/bin/wine всегда - отказаться, то можно отдельную директорию не создавать, достаточно будет переименовать wineserver соответственно в wineserver32 и wineserver64 и использовать скрипт wineserver.

Если хотите сами сделать другое задание с аналогичными изменениями, с моей стороны возражений нет. В случае если какие-то другие изменения для wine/wine-vanilla планируются или будут собраны, я без проблем могу свои изменения из этого задания переделать поверх Ваших изменений.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>192925</commentid>
    <comment_count>9</comment_count>
    <who name="Aleksei Nikiforov">darktemplaralt</who>
    <bug_when>2020-09-30 16:54:20 +0300</bug_when>
    <thetext>(Ответ для Vitaly Lipatov на комментарий #7)
&gt; Мне проще сделать изменения самому, чем смотреть, в задание и ещё отзыв
&gt; предоставлять.

Есть прогресс по данному багу?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>196141</commentid>
    <comment_count>10</comment_count>
    <who name="Aleksei Nikiforov">darktemplaralt</who>
    <bug_when>2021-02-10 13:07:18 +0300</bug_when>
    <thetext>(Ответ для Aleksei Nikiforov на комментарий #9)
&gt; (Ответ для Vitaly Lipatov на комментарий #7)
&gt; &gt; Мне проще сделать изменения самому, чем смотреть, в задание и ещё отзыв
&gt; &gt; предоставлять.
&gt; 
&gt; Есть прогресс по данному багу?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>198229</commentid>
    <comment_count>11</comment_count>
    <who name="Anton Farygin">rider</who>
    <bug_when>2021-04-28 10:42:12 +0300</bug_when>
    <thetext>Коллеги, очень хочется что бы p10 вышел без этой ошибки.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>198235</commentid>
    <comment_count>12</comment_count>
    <who name="Vitaly Lipatov">lav</who>
    <bug_when>2021-04-28 12:12:51 +0300</bug_when>
    <thetext>(Ответ для Anton Farygin на комментарий #11)
&gt; Коллеги, очень хочется что бы p10 вышел без этой ошибки.
Стремимся к этому.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>201959</commentid>
    <comment_count>13</comment_count>
    <who name="Vitaly Lipatov">lav</who>
    <bug_when>2021-08-23 11:19:48 +0300</bug_when>
    <thetext>Просьба произвести действие, обратное совершённому в
https://bugzilla.altlinux.org/22985
То есть убрать пакет wine из списка исключений (prog mode) для сборки в Сизиф.

Задание, которое сейчас некорректно собралось:
http://git.altlinux.org/tasks/283594/

В нём почему-то вообще часть пакетов не собралась:
http://git.altlinux.org/tasks/283594/build/repo/x86_64-i586/RPMS.task/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>204267</commentid>
    <comment_count>14</comment_count>
    <who name="Repository Robot">repository-robot</who>
    <bug_when>2021-10-30 03:29:12 +0300</bug_when>
    <thetext>wine-staging-1:6.17.1-alt3 -&gt; sisyphus:

 * Fri Sep 17 2021 Vitaly Lipatov &lt;lav@altlinux&gt; 1:6.17.1-alt3
 - improve package conflicts, make spec wine-vanilla compatible
 * Tue Sep 14 2021 Vitaly Lipatov &lt;lav@altlinux&gt; 1:6.17.1-alt2
 - disable strip PE modules
 * Sat Sep 11 2021 Vitaly Lipatov &lt;lav@altlinux&gt; 1:6.17.1-alt1
 - new version 6.17.1 (with rpmrb script)
 * Fri Sep 10 2021 Vitaly Lipatov &lt;lav@altlinux&gt; 1:6.16.2-alt1
 - update patchset: eterbugs #15185, 15271, 15286
 - strip debug info from PE modules
 * Mon Aug 30 2021 Vitaly Lipatov &lt;lav@altlinux&gt; 1:6.16.1-alt2
 - skip strip all PE files from winepedir (we need debug info)
 - add script wine-cap_net_raw in wine-ping package (eterbug #15254)
 - rewrite clang build requires to p9 compatibility
 * Sun Aug 29 2021 Vitaly Lipatov &lt;lav@altlinux&gt; 1:6.16.1-alt1
 - new version 6.16.1 (with rpmrb script)
 * Sun Aug 29 2021 Vitaly Lipatov &lt;lav@altlinux&gt; 1:6.15.2-alt3
 - enable PE dlls build (via clang)
 - add workaround for altbug #38130 (avoid nested if)
 * Sun Aug 29 2021 Vitaly Lipatov &lt;lav@altlinux&gt; 1:6.15.2-alt2.2
 - enable build with libunwind
 - rearrange BR: add libattr, libxjr, add libSDL2, libgcrypt, libsasl2, valgrind
 - disable build with opencl if build PE
 - allow enable PE dlls build (via clang)
 - add subpackage wine-ping to allow ping via setcap cap_net_raw=ep in post script
 * Sun Aug 29 2021 Vitaly Lipatov &lt;lav@altlinux&gt; 1:6.15.2-alt2.1
 - disable LTO (test it later)
 - move secondary definitions below, drop alt only section
 - wine-devel now requires base wine package
 - fix clang requires (basically, for p9)
 - provide and obsolete libname if we don&apos;t pack libname
 - small cleanup
 * Mon Aug 23 2021 Vitaly Lipatov &lt;lav@altlinux&gt; 1:6.15.2-alt1
 - update patches to staging wine-6.15
 * Sat Aug 21 2021 Vitaly Lipatov &lt;lav@altlinux&gt; 1:6.15.1-alt2
 - enable wine biarch based on changes by @lav@ and @darktemplar (ALT bug #37035)
 - add wine-common noarch package
 - add wine-devel-tools package (with toolchain)
 - rename libwine-devel to wine-devel and make it noarch
 - rename libwine-gl to wine-gl
 - rename libwine-twain to wine-twain
 - move all files exclude libwine.so.1 from libwine to main package wine
 * Sat Aug 14 2021 Vitaly Lipatov &lt;lav@altlinux&gt; 1:6.15.1-alt1
 - new version 6.15.1 (with rpmrb script)
 * Sat Jul 31 2021 Vitaly Lipatov &lt;lav@altlinux&gt; 1:6.14.1-alt1
 - new version 6.14.1 (with rpmrb script)
 - set strict require wine-mono 6.3.0</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>