| Summary: | API breakage | ||
|---|---|---|---|
| Product: | Sisyphus | Reporter: | Sergey Bolshakov <sbolshakov> |
| Component: | ncurses | Assignee: | Fr. Br. George <george> |
| Status: | CLOSED NOTABUG | QA Contact: | qa-sisyphus |
| Severity: | normal | ||
| Priority: | P5 | CC: | antohami, george, ldv, shad, sorochanilyav |
| Version: | unstable | ||
| Hardware: | x86_64 | ||
| OS: | Linux | ||
|
Description
Sergey Bolshakov
2025-07-17 15:54:27 MSK
В случае dosbox он лезет в dbg.win_reg->_begy Это поле структуры, начинается с нижнего подчеркивания, не говоря уже о том что есть метод getbegy(). На мой взгляд здесь именно что идет действие в обход API Вот черновой фикс, у меня локально все собралось ``` sed -i 's/dbg.win_reg->_begy/getbegy(dbg.win_reg)/' src/debug/debug_gui.cpp sed -i 's/dbg.win_out->_begy/getbegy(dbg.win_out)/' src/debug/debug_gui.cpp sed -i 's/dbg.win_code->_begy/getbegy(dbg.win_code)/' src/debug/debug_gui.cpp sed -i 's/dbg.win_var->_begy/getbegy(dbg.win_var)/' src/debug/debug_gui.cpp sed -i 's/dbg.win_data->_begy/getbegy(dbg.win_data)/' src/debug/debug_gui.cpp ``` Мельком глянув evms предполагаю, что clist->win->_parent так же не следовало трогать и что опять идет обход API для доступа к приватным полям. Готов посмотреть все пакеты, сделать красивые sed'ы или патчи. С вас ТЗ :D предлагаю добавить в ваш -alt2: https://git.altlinux.org/people/sbolshakov/packages/ncurses.git?p=ncurses.git;a=commitdiff;h=9cabdb2d7fa823828fca879532d93e4f16121dc0 Список пострадавших: guile-ncurses-3.1-alt1 sbolshakov @everybody libgnt-2.14.0-alt1 arseny @everybody vdr-2.2.0-alt12 @nobody rogue-5.4.4-alt3 george @qa @everybody CUnit-2.1.3-alt1.svn20140424 @nobody dosbox-1:0.74.3-alt3 george grenka mvk @everybody evms-2.5.5-alt88 mcpain mike @everybody varmon-1.2.1-alt1.qa1 @nobody Иду смотреть апстримы (Ответ для Sergey Bolshakov на комментарий #2) > предлагаю добавить в ваш -alt2: > https://git.altlinux.org/people/sbolshakov/packages/ncurses.git?p=ncurses. > git;a=commitdiff;h=9cabdb2d7fa823828fca879532d93e4f16121dc0 Спасибо. Посмотрю, нельзя ли обойтись каким-нибудь специальным .h файлом для этом во пакетов, которые в кишочки лезут. Так-то это вроде намеренно апстрим сделал. Если ABI не ломается, лучше будет пересобрать пострадавших c legacy инклюдником. Всё ещё проще: https://git.altlinux.org/people/george/packages/?p=rogue.git&a=commitdiff&h=4f49814b35aaa674c9ddfb1a46c32967ffa31eae Поменялся способ использовать внутреннее API (он и раньше был отдельный, см. ссылку на патч) Предлагаю ncurses оставить как есть, а пострадавших пересобрать с -DNCURSES_INTERNALS Rogue и dosbox я пересобрал. (Ответ для Ilya Sorochan на комментарий #3) > varmon-1.2.1-alt1.qa1 @nobody Добрый день. Я немного поправил и пересобрал пакет, свои изменения отправил в апстрим varmon, PR принят Все сломанные пакеты были пофикшены или удалены из Сизифа. |