Bug 667490

Summary: shotwell 0.8.1 cannot be built against vala 0.11.x
Product: [Fedora] Fedora Reporter: Siddhesh Poyarekar <spoyarek>
Component: shotwellAssignee: Matthias Clasen <mclasen>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: high Docs Contact:
Priority: medium    
Version: rawhideCC: jeff.raber, lovenemesis, mcepl, mcepl, mclasen, metherid, michel, mnewsome, pbrobinson, spoyarek
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: shotwell-0.8.90-2.r2758.fc15 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2011-03-22 03:47:21 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 667032    
Attachments:
Description Flags
Patch to shotwell to resolve build errors
none
Generated file that fails to compile
none
The vala source from which AppWindow.c is generated
none
Patch to move shotwell trunk to cairo none

Description Siddhesh Poyarekar 2011-01-05 18:46:42 UTC
Created attachment 471921 [details]
Patch to shotwell to resolve build errors

Description of problem:

vala aborts when trying to build a patched version of shotwell 0.8.0 with the following error:

** (valac:12800): CRITICAL **: vala_ccode_function_add_declaration: assertion `self != NULL' failed

** (valac:12800): CRITICAL **: vala_ccode_function_add_expression: assertion `self != NULL' failed

(this repeats a number of times)

**
ERROR:valaccodearraymodule.c:941:vala_ccode_array_module_real_get_array_length_cvalue: assertion failed: (_tmp20_)
make: *** [src/.stamp] Aborted (core dumped)


Version-Release number of selected component (if applicable):
vala-devel-0.11.2-1.fc15.x86_64

How reproducible:
Always

Steps to Reproduce:
1. Get shotwell 0.8.0 source from here:
http://yorba.org/download/shotwell/0.8/shotwell-0.8.0.tar.bz2

2. Apply the patch attached
3. ./configure; make
  
Actual results:
crash

Expected results:
no crash

Additional info:

Comment 1 Siddhesh Poyarekar 2011-01-05 18:48:01 UTC
Setting sev as high since I am unable to get shotwell to build at all as a result of this crash.

Comment 2 Peter Robinson 2011-01-05 19:30:24 UTC
vala 0.11.x is needed for gtk3 / libnotify 0.7 and other gnome 3 changes so I think we're stuck which ever way.

Its not actually a crash but rather errors due to api changes.

Comment 3 Jeff Raber 2011-01-06 05:20:23 UTC
Upstream bug report: http://trac.yorba.org/ticket/2638



-- 
Fedora Bugzappers volunteer triage team
https://fedoraproject.org/wiki/BugZappers

Comment 4 Matěj Cepl 2011-01-07 00:12:45 UTC
Not to be outdone valac crashes as well (bug 667844).

Comment 5 Siddhesh Poyarekar 2011-01-07 02:36:13 UTC
Yes, that is the crash I reported in this bug, except that I called it an abort (since it is an abort()). From description of this bug:

**
ERROR:valaccodearraymodule.c:941:vala_ccode_array_module_real_get_array_length_cvalue:
assertion failed: (_tmp20_)
make: *** [src/.stamp] Aborted (core dumped)

which is the result of:

Thread 1 (Thread 0x7fa68906e720 (LWP 10511)):
#0  0x000000308f8341b5 in raise () from /lib64/libc-2.12.90.so
No symbol table info available.
#1  0x000000308f835b66 in abort () from /lib64/libc-2.12.90.so
No symbol table info available.
#2  0x0000003092869e54 in g_assertion_message (domain=<value optimized out>, file=<value optimized out>, line=<value optimized out>, func=0x3090e47680 "vala_ccode_array_module_real_get_array_length_cvalue", message=0x19955310 "assertion failed: (_tmp20_)") at gtestutils.c:1358
        lstr = "941\000\377\177\000\000\320\372\345\031\000\000\000\000\270\035\232\031\000\000\000\000\020r\344\220\060\000\000"
        s = 0x19ea0430 ""


from the backtrace in the bug you reported. An abort being an error is wrong since it does not really tell me what to fix in the code to get this working.

Comment 6 Siddhesh Poyarekar 2011-01-10 17:38:56 UTC
The crash seems to have gone in 0.11.3, but a new error has come up. The vala files compile successfully, but the resulting c file does not build:

cc -c `pkg-config --cflags atk dbus-glib-1 gconf-2.0 gdk-2.0 gdk-x11-2.0 gee-1.0 gexiv2 gstreamer-0.10 gstreamer-base-0.10 gtk+-2.0 glib-2.0 gudev-1.0 json-glib-1.0 libexif libgphoto2 libsoup-2.4 libxml-2.0 sqlite3 unique-1.0 webkit-1.0  gthread-2.0` -I./vapi -D_PREFIX='"/usr/local"' -D_VERSION='"0.8.0+trunk"' -DGETTEXT_PACKAGE='"shotwell"' -D_LANG_SUPPORT_DIR='"/usr/local/share/locale"' `./libraw-config --cflags` -O2 -g -pipe -fPIC -DG_UDEV_API_IS_SUBJECT_TO_CHANGE -o src/AppWindow.o src/AppWindow.c
src/AppWindow.c: In function ‘fullscreen_window_class_init’:
src/AppWindow.c:1250:41: warning: assignment from incompatible pointer type
src/AppWindow.c: In function ‘app_window_decorate_undo_action’:
src/AppWindow.c:2867:66: error: ‘_tmp23_’ undeclared (first use in this function)
src/AppWindow.c:2867:66: note: each undeclared identifier is reported only once for each function it appears in
src/AppWindow.c:2867:87: error: ‘_tmp24_’ undeclared (first use in this function)
src/AppWindow.c: In function ‘app_window_decorate_redo_action’:
src/AppWindow.c:2883:66: error: ‘_tmp28_’ undeclared (first use in this function)
src/AppWindow.c:2883:87: error: ‘_tmp29_’ undeclared (first use in this function)

Comment 7 Siddhesh Poyarekar 2011-01-10 17:40:27 UTC
Created attachment 472653 [details]
Generated file that fails to compile

Comment 8 Siddhesh Poyarekar 2011-01-10 17:44:40 UTC
Created attachment 472655 [details]
The vala source from which AppWindow.c is generated

Attached files that should help determine the problem. These are from the shotwell upstream svn source with the first patch add along with a patch to move gdk to cairo. Apply the gdk to cairo patch before you add the build errors patch.

Comment 9 Siddhesh Poyarekar 2011-01-10 17:46:04 UTC
Created attachment 472656 [details]
Patch to move shotwell trunk to cairo

This patch is not functionally perfect yet, but is sufficient to remove build warnings related to gdk.

Comment 10 Peter Robinson 2011-01-23 13:36:51 UTC
Looks like shotwell builds in rawhide again, can this patch now be closed?

Comment 11 Siddhesh Poyarekar 2011-01-24 07:24:05 UTC
The rawhide builds have been done against the target dist-f15-gnome3, which seems to be selecting vala-devel-0.10.0-2.fc14 during build. The bug of building shotwell against vala 0.11.x still exists in 0.11.3 as I mentioned in comments 6-8.

Comment 12 Michel Lind 2011-03-17 12:45:50 UTC
With Rawhide's 0.11.6, the errors now seem to be due to API changes, and no longer vala compiler errors. Switching target component to shotwell

Comment 13 Michel Lind 2011-03-17 12:46:24 UTC
build log with 0.11.6: http://koji.fedoraproject.org/koji/getfile?taskID=2919863&name=build.log

Comment 14 Fedora Update System 2011-03-17 22:12:25 UTC
shotwell-0.8.90-1.r2758.fc15 has been submitted as an update for Fedora 15.
https://admin.fedoraproject.org/updates/shotwell-0.8.90-1.r2758.fc15

Comment 15 Fedora Update System 2011-03-22 03:47:10 UTC
shotwell-0.8.90-2.r2758.fc15 has been pushed to the Fedora 15 stable repository.  If problems still persist, please make note of it in this bug report.