После решения https://bugzilla.altlinux.org/show_bug.cgi?id=22985 i586-wine конфликтует с wine, в то время как по задумке эти пакеты должны останавливаться вместе.
*** Bug 34280 has been marked as a duplicate of this bug. ***
+1 Очень надо. Уже полгода не получается нормально проверить собранные для https://en.wikipedia.org/wiki/WoW64 пакеты. Приложений в стиле wow64 становиться всё больше.
Проблема до сих пор актуальна. Она не позволяет устанавливать 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"Y:\\vcrun2015\\vc_redist.x86.exe" not supported on this system ------------------------------------------------------ Важно: команда wine64 vc_redist.x86.exe вернула статус 123. Прерывание.
> Чтобы сделать выводы, нужно прочитать > https://wiki.winehq.org/Packaging > посмотреть, как упакован 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 -> /usr/bin/wine32. При вызове wine вызывается в таком случае бинарь wine32, но в argv[0] у него "wine". Соответственно к "wine" добавляется префикс "64", получается "wine64" и пытается вызвать правильный бинарь для wine64. Если же использовать скрипт, как сейчас в тестовом задании, то в argv[0] попадает уже "wine32", к этой строке добавляется суффикс "64" и получается уже описываемое в devel "wine3264". В 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 -> /usr/lib/wine/bin/wine64. Работоспособность такого решения потребуется протестировать, возможно помимо wine и wine64 потребуется какие-то ещё бинари перенести.
Сделал задание #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@, прошу посмотреть упомянутое выше задание и предоставить отзыв ("ок" или "не ок" и что не так).
(Ответ для Aleksei Nikiforov на комментарий #4) ... > Если же использовать скрипт, как сейчас в тестовом задании, то в argv[0] > попадает уже "wine32", к этой строке добавляется суффикс "64" и получается > уже описываемое в devel "wine3264". Ну это странно, надо будет с этим разобраться. Хотя достаточно вызывать wine32 не через exec в скрипте, и проблемы не будет. ... > Я считаю, что в связи с описанной выше логикой переименовывать wine в wine32 > - не нужно и даже скорее вредно. Рекомендуемые апстримом скрипты-обёртки и Поскольку иметь скрипт wine полезно для ряда случаев, я бы придерживался подхода с wine32 и wine64. Не вижу смысла при наличии wine64 что-то называть просто wine. > Если необходимо иметь /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 > -> /usr/lib/wine/bin/wine64. Работоспособность такого решения потребуется > протестировать, возможно помимо wine и wine64 потребуется какие-то ещё > бинари перенести. Да не нужно нам bin/wine в обоих пакетах, в одном достаточно. Переносить куда-то имеет смысл только полностью, ради сомнительной возможности устаналивать сразу много разных wine.
(Ответ для Aleksei Nikiforov на комментарий #5) ... > Начнём с пункта 1. lav@, прошу посмотреть упомянутое выше задание и > предоставить отзыв ("ок" или "не ок" и что не так). Я не знаю, зачем вы сделали задание, если ещё не обсуждено, какие изменения предлагаются, а вы не описали, что вы предлагаете к изменению. Мне проще сделать изменения самому, чем смотреть, в задание и ещё отзыв предоставлять.
Прежде чем предлагать изменения, мне нужно было убедиться что после них 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 планируются или будут собраны, я без проблем могу свои изменения из этого задания переделать поверх Ваших изменений.
(Ответ для Vitaly Lipatov на комментарий #7) > Мне проще сделать изменения самому, чем смотреть, в задание и ещё отзыв > предоставлять. Есть прогресс по данному багу?
(Ответ для Aleksei Nikiforov на комментарий #9) > (Ответ для Vitaly Lipatov на комментарий #7) > > Мне проще сделать изменения самому, чем смотреть, в задание и ещё отзыв > > предоставлять. > > Есть прогресс по данному багу?
Коллеги, очень хочется что бы p10 вышел без этой ошибки.
(Ответ для Anton Farygin на комментарий #11) > Коллеги, очень хочется что бы p10 вышел без этой ошибки. Стремимся к этому.
Просьба произвести действие, обратное совершённому в 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/
wine-staging-1:6.17.1-alt3 -> sisyphus: * Fri Sep 17 2021 Vitaly Lipatov <lav@altlinux> 1:6.17.1-alt3 - improve package conflicts, make spec wine-vanilla compatible * Tue Sep 14 2021 Vitaly Lipatov <lav@altlinux> 1:6.17.1-alt2 - disable strip PE modules * Sat Sep 11 2021 Vitaly Lipatov <lav@altlinux> 1:6.17.1-alt1 - new version 6.17.1 (with rpmrb script) * Fri Sep 10 2021 Vitaly Lipatov <lav@altlinux> 1:6.16.2-alt1 - update patchset: eterbugs #15185, 15271, 15286 - strip debug info from PE modules * Mon Aug 30 2021 Vitaly Lipatov <lav@altlinux> 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 <lav@altlinux> 1:6.16.1-alt1 - new version 6.16.1 (with rpmrb script) * Sun Aug 29 2021 Vitaly Lipatov <lav@altlinux> 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 <lav@altlinux> 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 <lav@altlinux> 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't pack libname - small cleanup * Mon Aug 23 2021 Vitaly Lipatov <lav@altlinux> 1:6.15.2-alt1 - update patches to staging wine-6.15 * Sat Aug 21 2021 Vitaly Lipatov <lav@altlinux> 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 <lav@altlinux> 1:6.15.1-alt1 - new version 6.15.1 (with rpmrb script) * Sat Jul 31 2021 Vitaly Lipatov <lav@altlinux> 1:6.14.1-alt1 - new version 6.14.1 (with rpmrb script) - set strict require wine-mono 6.3.0