Проблема сборки PAPyRUS под OpenBSD 6.2

  • AkhmedSatajaAkhmedSataja 20.10.2023
    После исправления предыдущего исправления:

    Breakpoint 5, StyleManager::add_style (this=0x8280113c, n=0x84981428 "Titre1", 
        b=0x0) at kernel/StyleManager/styleManager.cc:184
    184         s->set_attr(STYLE_LEFT_MARGIN, (void *)j);
    (gdb) c
    Continuing.
    ....set_attr:  start
    
    Breakpoint 6, StyleManager::add_style (this=0x8280113c, n=0x84981428 "Titre1", 
        b=0x0) at kernel/StyleManager/styleManager.cc:185
    185         s->set_attr(STYLE_RIGHT_MARGIN, (void *)j);
    (gdb) c
    Continuing.
    ....set_attr:  start
    
    Breakpoint 7, StyleManager::add_style (this=0x8280113c, n=0x84981428 "Titre1", 
        b=0x0) at kernel/StyleManager/styleManager.cc:186
    186         printf("........add_style: 0.10\n");
    (gdb) c
    Continuing.
    ........add_style: 0.10
    
    Breakpoint 8, StyleManager::add_style (this=0x8280113c, n=0x84981428 "Titre1", 
        b=0x0) at kernel/StyleManager/styleManager.cc:187
    187         s->set_attr(STYLE_ALIGNMENT, (void *)STYLE_ALIGN_LEFT);
    (gdb) c
    Continuing.
    ....set_attr:  start
    
    Breakpoint 9, StyleManager::add_style (this=0x8280113c, n=0x84981428 "Titre1", 
        b=0x0) at kernel/StyleManager/styleManager.cc:188
    188         s->set_attr(STYLE_FLINE_MARGIN, (void *)j);
    (gdb) c
    Continuing.
    ....set_attr:  start
    
    Breakpoint 10, StyleManager::add_style (this=0x8280113c, 
        n=0x84981428 "Titre1", b=0x0) at kernel/StyleManager/styleManager.cc:189
    189         printf("........add_style: 0.11\n");
    (gdb) c
    Continuing.
    ........add_style: 0.11
    
    Breakpoint 11, StyleManager::add_style (this=0x8280113c, 
        n=0x84981428 "Titre1", b=0x0) at kernel/StyleManager/styleManager.cc:195
    195       if( _list != NULL)
    (gdb) c
    Continuing.
    ....>AddStyle..0.14
    ....>AddStyle..0.15
    ....set_attr:  start
    ....>AddStyle..0.16
    ....set_attr:  start
    ....set_attr:  start
    ....set_attr:  start
    0x4
    4
    ....set_attr:  start
    ....set_attr:  start
    ....>AddStyle..0.17
    ....>AddStyle..0.18
    ....>AddStyle..0.19
    ....>AddStyle..0.20
    TCL:Load_Default_Styles..Add_Style..0.1
    
    ....>AddStyle..started
    ....>AddStyle..variables..init..done
    ....>AddStyle..variables..load.done
    ....>AddStyle..for..cycle..starting
    ....>AddStyle..for[1]={
    ....>AddStyle..for[3]={
    ........f-font
    ....>AddStyle..for[5]={
    ....>AddStyle..for..cycle..done
    ....>AddStyle..0.0
    ....>AddStyle..0.1
    ..........query_style:  0.0
    ..........query_style:  0.1
    ..........query_style:  0.2
    ..........query_style:  0.3
    STYLE_NAME
    >Titre1
    Titre1
    >4
    ..........query_style:  0.5
    ....>AddStyle..0.2
    ....>AddStyle..0.5
    ....>AddStyle..0.6
    ....>AddStyle..0.7
    ....>AddStyle..0.7.1
    ....>AddStyle..0.8
    ....>GetFont..0.1
    ....>GetFont..0.2
    ....>GetFont..0.3
    ....>GetFont..0.6
    ....>GetFont..0.7
    ....>GetFont..0.8
    ....>GetFont..0.9
    ....>GetFont..0.13
    ....>GetFont..0.14
    ....>AddStyle..0.9
    ....>AddStyle..0.10
    ....>AddStyle..0.11
    0
    AddStyle
    ....>AddStyle..0.12.0
    ....>AddStyle=[Titre2]..0.13
    ........add_style: 0.1
    ........add_style: 0.1.0
    ..........query_style:  0.0
    ..........query_style:  0.1
    ..........query_style:  0.2
    ..........query_style:  0.3
    STYLE_NAME
    >Titre1
    Titre1
    >4
    ..........query_style:  0.4
    ..........query_style:  0.3
    STYLE_NAME
    >Normal
    Normal
    >4
    ..........query_style:  0.4
    ..........query_style:  0.5
    ........add_style: 0.1.1
    ........add_style: 0.3
    ....set_attr:  start
    ........add_style: 0.4
    
    Breakpoint 12, StyleManager::add_style (this=0x8280113c, 
        n=0x84981438 "Titre2", b=0x82a72000)
        at kernel/StyleManager/styleManager.cc:161
    161         printf("........add_style: 0.5\n");
    (gdb) c
    Continuing.
    ........add_style: 0.5
    
    Breakpoint 13, StyleManager::add_style (this=0x8280113c, 
        n=0x84981438 "Titre2", b=0x82a72000)
        at kernel/StyleManager/styleManager.cc:162
    162         s->set_attr(STYLE_TOP_MARGIN, (void *)b->get_attr(STYLE_TOP_MARGIN) );
    (gdb) c
    Continuing.
    ....set_attr:  start
    
    Breakpoint 14, StyleManager::add_style (this=0x8280113c, 
        n=0x84981438 "Titre2", b=0x82a72000)
        at kernel/StyleManager/styleManager.cc:163
    163         s->set_attr(STYLE_BOTTOM_MARGIN, (void *)b->get_attr(STYLE_BOTTOM_MARGIN) );
    (gdb) c
    Continuing.
    ....set_attr:  start
    0x4
    4
    
    Breakpoint 15, StyleManager::add_style (this=0x8280113c, 
        n=0x84981438 "Titre2", b=0x82a72000)
        at kernel/StyleManager/styleManager.cc:164
    164         s->set_attr(STYLE_LEFT_MARGIN, (void *)b->get_attr(STYLE_LEFT_MARGIN) );
    (gdb) c
    Continuing.
    ....set_attr:  start
    
    Breakpoint 16, StyleManager::add_style (this=0x8280113c, 
        n=0x84981438 "Titre2", b=0x82a72000)
        at kernel/StyleManager/styleManager.cc:165
    165         s->set_attr(STYLE_RIGHT_MARGIN, (void *)b->get_attr(STYLE_RIGHT_MARGIN) );
    (gdb) c
    Continuing.
    ....set_attr:  start
    
    Breakpoint 17, StyleManager::add_style (this=0x8280113c, 
        n=0x84981438 "Titre2", b=0x82a72000)
        at kernel/StyleManager/styleManager.cc:166
    166         printf("........add_style: 0.6\n");
    (gdb) c
    Continuing.
    ........add_style: 0.6
    
    Breakpoint 18, StyleManager::add_style (this=0x8280113c, 
        n=0x84981438 "Titre2", b=0x82a72000)
        at kernel/StyleManager/styleManager.cc:167
    167         s->set_attr(STYLE_FONT, (void *)b->get_attr(STYLE_FONT));
    (gdb) c
    Continuing.
    ....set_attr:  start
    
    Breakpoint 19, StyleManager::add_style (this=0x8280113c, 
        n=0x84981438 "Titre2", b=0x82a72000)
        at kernel/StyleManager/styleManager.cc:168
    168         s->set_attr(STYLE_ALIGNMENT, (void *)b->get_attr(STYLE_ALIGNMENT));
    (gdb) c
    Continuing.
    ....set_attr:  start
    
    Breakpoint 20, StyleManager::add_style (this=0x8280113c, 
        n=0x84981438 "Titre2", b=0x82a72000)
        at kernel/StyleManager/styleManager.cc:169
    169         s->set_attr(STYLE_FLINE_MARGIN, (void *)b->get_attr(STYLE_FLINE_MARGIN));
    (gdb) c
    Continuing.
    ....set_attr:  start
    
    Breakpoint 21, StyleManager::add_style (this=0x8280113c, 
        n=0x84981438 "Titre2", b=0x82a72000)
        at kernel/StyleManager/styleManager.cc:170
    170         s->set_attr(STYLE_TAG, (void *)b->get_attr(STYLE_TAG));
    (gdb) c
    Continuing.
    ....set_attr:  start
    ....set_attr[tag]: started
    ....set_attr[tag]: started!
    
    Program received signal SIGSEGV, Segmentation fault.
    0x15b5eca4 in StyleItem::set_attr (this=0x82a72d00, t=STYLE_TAG, value=0x0)
        at kernel/StyleManager/styleItem.cc:222
    222       _tag = *static_cast<int*>(value);
    (gdb) c
    Continuing.
    
    Program terminated with signal SIGSEGV, Segmentation fault.
    The program no longer exists.
  • AkhmedSatajaAkhmedSataja 20.10.2023
    Словом, опытным путем удалось выяснить, что стили Normal и Titre загружаются нормально, а вот дальше - вопросы. Кстати, довольно странно, ведь если один стиль загрузился, а другой - нет, значит ошибка не в коде C, а в TCL'ном конфиге, но там вроде как и ломаться то нечему. Если только он никак не может унаследовать стиль Titre2 от стиля Titre1?

    Но при замене стилей Titre2 и 1 он валиться гораздо раньше:

    Breakpoint 1, StyleManager::add_style (this=0x80c57b3c, n=0x7641fb68 "Normal", 
        b=0x0) at kernel/StyleManager/styleManager.cc:181
    181         printf("........add_style: 0.9\n");
    (gdb) c
    Continuing.
    
    Program received signal SIGSEGV, Segmentation fault.
    0x14502841 in StyleManager::add_style (this=0x80c57b3c, n=0x7641fb68 "Normal", 
        b=0x0) at kernel/StyleManager/styleManager.cc:181
    181         printf("........add_style: 0.9\n");
    (gdb) c
    Continuing.
    c

    Что было [./lib/scripts/papyrus-menus.tcl]:
    AddStyle -name "Normal"  -font $normal_font  -align "left" -margins {0  0 0 0} -fline 0.5c
        puts "TCL:Load_Default_Styles..Add_Style..0.0\n"
        
        AddStyle -name "Titre1"  -font $title1_font  -align "left" -margins {12p 3p 0 0}
        puts "TCL:Load_Default_Styles..Add_Style..0.1\n"
        AddStyle -name "Titre2"  -font $title2_font  -base "Titre1"
        puts "TCL:Load_Default_Styles..Add_Style..0.2\n"
        AddStyle -name "Titre3"  -font $title3_font  -base "Titre1"
        puts "TCL:Load_Default_Styles..Add_Style..0.3\n"
    
        AddStyle -name "Listing" -font $listing_font -base "Normal" -fline 0 -next "Listing"

    На что было заменено:

    AddStyle -name "Normal"  -font $normal_font  -align "left" -margins {0  0 0 0} -fline 0.5c
        puts "TCL:Load_Default_Styles..Add_Style..0.0\n"
        
        AddStyle -name "Titre1"  -font $title1_font  -align "left" -margins {12p 3p 0 0}
        puts "TCL:Load_Default_Styles..Add_Style..0.1\n"
        AddStyle -name "Titre2"  -font $title2_font  -align "left" -margins {12p 3p 0 0}
        puts "TCL:Load_Default_Styles..Add_Style..0.2\n"
        AddStyle -name "Titre3"  -font $title3_font  -align "left" -margins {12p 3p 0 0}
        puts "TCL:Load_Default_Styles..Add_Style..0.3\n"
  • AkhmedSatajaAkhmedSataja 20.10.2023
    Да, я чертовски криворук: у меня вылетел отладчик с Segmentation fault (core dumped) :

    Breakpoint 2, StyleItem::get_attr (this=0x85edbbc0, t=STYLE_NEXT_STYLE)
        at kernel/StyleManager/styleItem.cc:143
    143         return (void *)((_nstyle==NULL) ? "Normal" : _nstyle);
    (gdb) print _tag
    ^[[A^[[BSegmentation fault (core dumped)

    Однако.
  • olegus 21.10.2023
    TCL соответствует сис.требованиям? Может он слишком новый для PAPyRUS?

    Но вот чтобы вылетал отладчик, это что :D :D :D
  • AkhmedSatajaAkhmedSataja 21.10.2023
    В сис.требованиях в READMY написано the Tcl 7.6 library (at least 7.5).
    У меня - tcl8.6 [Я, кстати, об этом писал в самом начале, что пришлось часть функций заменять и часть функций заменять на новые, может ту и был косяк.]. Скорее всего, придется заново брать его исходники и вносить правки, на сей раз более вдумчиво.
  • AkhmedSatajaAkhmedSataja 21.10.2023
    Сделать так, чтобы отладчик вылетел с Segmention fault - это реально сильно)
  • olegus 21.10.2023
    С таким темпом жизни какой у меня, забудешь как себя зовут, а не то что версии. Если что, обращайтесь.
  • AkhmedSatajaAkhmedSataja 21.10.2023
    Спасибо за помощь.
  • AkhmedSatajaAkhmedSataja 21.10.2023
    Словом, мне не удалось запустить и те исходники, что были прежде, до версии 1.1.1, то есть вот эти: http://www.ibiblio.org/pub/Linux/apps/wp/papyrus/papyrus-src.tar.gz(скомпилить то вышло, исправив часть старых объявлений уже несуществующих функций на новые). Разница между ними в том, что они чуть-чуть проще, и там не файла env.c и env.h, и нету взятия переменной из окружения, то есть, TCL-интерпритатор берет файлы скриптов из захардкоженого пути и нету возможности объявить переменную окружения PAPYRUS_DIR, ну, он ее использовтаь не будет, вернее. А, ну и еще, PAPyRUS не вылетает при отсутствии оных, не вываливается с SegFault'ом, а пишет о том, что не смог их найти.

    И теперь у меня вылетает не там, где обычно, а в принципе то отказывается запускаться функция, создающая интерпритатор TCL [это если ставить брейки в tclMain.c]:

    Program received signal SIGSEGV, Segmentation fault.
    0x1b3ae162 in My_Tcl_Main (argc=2089239552, argv=0x85900000) at tcl/tclMain.c:77
    77          theInterp = Tcl_CreateInterp();
    (gdb) c
    Continuing.
    
    Program terminated with signal SIGSEGV, Segmentation fault.
    The program no longer exists.

    Либо вылетает XtWidgetToApplicationContext, это если просто запускать без брейков в gdb:

    Starting program: /home/Sataja/src_/Papyrus/bin/papyrus 
    Warning: Missing charsets in String to FontSet conversion
    Warning: Missing charsets in String to FontSet conversion
    
    Program received signal SIGSEGV, Segmentation fault.
    0x00e40ac6 in XtWidgetToApplicationContext () from /usr/X11R6/lib/libXt.so.11.0
    Current language:  auto; currently minimal
    (gdb) q
    The program is running.  Exit anyway? (y or n) y

    Странно. Надо проверить будет на старом Linux, или Unix. Я вот чего думаю, может, OpenBSD как-то валит эту прогу? Хотя не, это - бред. Может, просто она писалась под Linux, и тестировалась на нем же, хотя и заявлял автор:
    Platform:	Linux (or any UNIX with X11/Motif 2.0 library)

    , и поэтому ее тяжело заставить работать под опенком?
  • olegus 22.10.2023
    Надо пробовать на старых, ну не может все в ошибках быть уже изначально. У меня на Linux она не собирается из-за -m486, точнее того что её нет.