Releases retrieved: 1.66 Upstream release that is considered latest: 1.66 Current version/release in rawhide: 1.65-3.fc37 URL: http://search.cpan.org/dist/Prima/ Please consult the package updates policy before you issue an update to a stable branch: https://docs.fedoraproject.org/en-US/fesco/Updates_Policy/ More information about the service that created this bug can be found at: https://fedoraproject.org/wiki/Upstream_release_monitoring Please keep in mind that with any upstream change, there may also be packaging changes that need to be made. Specifically, please remember that it is your responsibility to review the new version to ensure that the licensing is still correct and that no non-free or legally problematic items have been added upstream. Based on the information from Anitya: https://release-monitoring.org/project/3289/ To change the monitoring settings for the project, please visit: https://src.fedoraproject.org/rpms/perl-Prima
It moves from default Gtk2 to Gtk3. Some modules renamed. Also many changes. Suitable for Rawhide only.
exampels/menu.pl crashes when clicking on Window menu label.
The crash is a regression in 1.66. Both gtk2 and gkt3 builds crash. This does not happen in 1.65.
(gdb) bt #0 0x00007ffff7451203 in XCopyGC () at /lib64/libX11.so.6 #1 0x00007ffff736c6e2 in apc_gp_push (self=93825005492864, destructor=<optimized out>, user_data=0x0, user_data_size=<optimized out>) at unix/graphics.c:2311 #2 0x00007ffff736c8e6 in prima_prepare_drawable_for_painting (self=93825005492864, inside_on_paint=0) at unix/graphics.c:165 #3 0x00007ffff737f800 in apc_menu_item_begin_paint (self=<optimized out>, event=<optimized out>) at unix/menu.c:2439 #4 0x00007ffff72a4155 in AbstractMenu_handle_event (self=93825005133536, event=0x7fffffffd830) at class/AbstractMenu.c:1468 #5 0x00007ffff72b1d23 in Component_message (self=93825005133536, event=0x7fffffffd830) at class/Component.c:307 #6 0x00007ffff73799dd in menuitem_draw_custom (m=<optimized out>, draw=0x7fffffffd7f0, param=0x0, rgn=0x55555618e050, ix=0x5555561f1490, x=0, y=100, str_size=<synthetic pointer>, str_ptr=<synthetic pointer>, vertical=1, descent=4, clr=0, rgb=0, index=<optimized out>, selected=0, w=<optimized out>, win=50331706, self=93825005133536) at unix/menu.c:1230 #7 handle_menu_expose (ev=<optimized out>, win=50331706, self=93825005133536) at unix/menu.c:1355 #8 0x00007ffff735a0a6 in prima_handle_event (ev=0x7fffffffdca0, next_event=0x0) at unix/event.c:1169 #9 0x00007ffff735baeb in send_queued_x_events (careOfApplication=careOfApplication@entry=1) at unix/event.c:2063 #10 0x00007ffff735ca5e in handle_queued_events (careOfApplication=careOfApplication@entry=1) at unix/event.c:2225 #11 0x00007ffff735ce94 in prima_one_loop_round (wait=1, careOfApplication=1) at unix/event.c:2246 #12 0x00007ffff734d5ef in apc_application_go (self=<optimized out>) at unix/app.c:1052 #13 apc_application_go (self=<optimized out>) at unix/app.c:1045 #14 0x00007ffff728e151 in template_xs_Bool_Handle (cv=<optimized out>, subName=0x7ffff73a3e5e "Prima::Application::go", func=0x7ffff734d590 <apc_application_go>) at include/generic/thunks.tinc:3559 #15 0x00007ffff7d1eed0 in Perl_pp_entersub () at /lib64/libperl.so.5.36 #16 0x00007ffff7d10850 in Perl_runops_standard () at /lib64/libperl.so.5.36 #17 0x00007ffff7c80fa1 in perl_run () at /lib64/libperl.so.5.36 #18 0x000055555555534a in main () (gdb) frame 1 #1 0x00007ffff736c6e2 in apc_gp_push (self=93825005492864, destructor=<optimized out>, user_data=0x0, user_data_size=<optimized out>) at unix/graphics.c:2311 2311 XCopyGC( DISP, state->paint.gc, (1 << (GCLastBit + 1)) - 1, XX->gc); (gdb) p state->paint $1 = {fore = {primary = 0, secondary = 0, color = 0, balance = 0 '\000'}, back = {primary = 0, secondary = 0, color = 0, balance = 0 '\000'}, gc = 0x0, gcl = 0x0, gc_pool = 0x7ffff73ff0b8 <guts+728>, region = 0x0, tile = 0, stipple = 0, kill_tile = 0, kill_stipple = 0} This looks like a NULL pointer (state->paint.gc) dereference in XCopyGC(). But the apc_gp_push() part is fishy: state->paint.gc = XX-> gc; state->paint.gcl = XX-> gcl; XX->gcl = NULL; XX->gc = NULL; state->paint.gc_pool = prima_get_gc(XX); XCopyGC( DISP, state->paint.gc, (1 << (GCLastBit + 1)) - 1, XX->gc); What's the point of XCopyGC( DISP, NULL, ALL_GC_COMPONENTS, NULL)?
Upstream fixed the crash in a git tree.