Bug 55252 - API breakage
Summary: API breakage
Status: CLOSED NOTABUG
Alias: None
Product: Sisyphus
Classification: Development
Component: ncurses (show other bugs)
Version: unstable
Hardware: x86_64 Linux
: P5 normal
Assignee: Fr. Br. George
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2025-07-17 15:54 MSK by Sergey Bolshakov
Modified: 2025-11-04 15:52 MSK (History)
5 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Sergey Bolshakov 2025-07-17 15:54:27 MSK
последнее обновление содержало измение API и сломало (на глаз) сборку десятка пакетов, напр.
http://git.altlinux.org/beehive/logs/Sisyphus-x86_64/latest/error/dosbox-1:0.74.3-alt3
http://git.altlinux.org/beehive/logs/Sisyphus-x86_64/latest/error/evms-2.5.5-alt88

в предположении, что это не было целью -- ожидать ли возвращения API на место ?
Comment 1 Ilya Sorochan 2025-07-17 17:40:20 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
Comment 2 Sergey Bolshakov 2025-07-18 12:19:31 MSK
предлагаю добавить в ваш -alt2:
https://git.altlinux.org/people/sbolshakov/packages/ncurses.git?p=ncurses.git;a=commitdiff;h=9cabdb2d7fa823828fca879532d93e4f16121dc0
Comment 3 Ilya Sorochan 2025-07-18 14:47:12 MSK
Список пострадавших:
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

Иду смотреть апстримы
Comment 4 Fr. Br. George 2025-07-18 19:29:30 MSK
(Ответ для Sergey Bolshakov на комментарий #2)
> предлагаю добавить в ваш -alt2:
> https://git.altlinux.org/people/sbolshakov/packages/ncurses.git?p=ncurses.
> git;a=commitdiff;h=9cabdb2d7fa823828fca879532d93e4f16121dc0

Спасибо. Посмотрю, нельзя ли обойтись каким-нибудь специальным .h файлом для этом во пакетов, которые в кишочки лезут. Так-то это вроде намеренно апстрим сделал. Если ABI не ломается, лучше будет пересобрать пострадавших c legacy инклюдником.
Comment 5 Fr. Br. George 2025-07-19 15:59:53 MSK
Всё ещё проще:
https://git.altlinux.org/people/george/packages/?p=rogue.git&a=commitdiff&h=4f49814b35aaa674c9ddfb1a46c32967ffa31eae

Поменялся способ использовать внутреннее API (он и раньше был отдельный, см. ссылку на патч)

Предлагаю ncurses оставить как есть, а пострадавших пересобрать с -DNCURSES_INTERNALS

Rogue и dosbox я пересобрал.
Comment 6 Aleksandr Shamaraev 2025-10-18 09:22:10 MSK
(Ответ для Ilya Sorochan на комментарий #3)
> varmon-1.2.1-alt1.qa1 @nobody

Добрый день. 

Я немного поправил и пересобрал пакет, свои изменения отправил в апстрим varmon, PR принят
Comment 7 Антон Мидюков 2025-11-04 15:52:34 MSK
Все сломанные пакеты были пофикшены или удалены из Сизифа.