After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 519610 - gegl binary crashes without arguments
gegl binary crashes without arguments
Status: RESOLVED INVALID
Product: GEGL
Classification: Other
Component: gegl binary
git master
Other Mac OS
: Normal normal
: ---
Assigned To: Default Gegl Component Owner
Default Gegl Component Owner
Depends on:
Blocks:
 
 
Reported: 2008-02-29 20:03 UTC by paul
Modified: 2008-03-10 04:44 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
libtoolized extensions/Makefile.am (1.09 KB, application/octet-stream)
2008-03-03 17:37 UTC, paul
  Details
crudely patched babl-extension.c (1.98 KB, patch)
2008-03-03 17:37 UTC, paul
none Details | Review
Fix search-pattern for plugins (1.68 KB, patch)
2008-03-10 04:44 UTC, Daniel Macks
none Details | Review

Description paul 2008-02-29 20:03:38 UTC
# gegl

** (process:25873): WARNING **: Failed to set operation type over, using a passthrough op instead

** (process:25873): WARNING **: Failed to set operation type over, using a passthrough op instead

** (process:25873): WARNING **: Failed to set operation type src-in, using a passthrough op instead

** (process:25873): WARNING **: gegl_node_connect_from: Didn't find pad 'aux' of 'nop'

** (process:25873): WARNING **: pads_exist: Can't find sink property aux of nop

** (process:25873): WARNING **: gegl_node_connect_from: Didn't find pad 'aux' of 'nop'

** (process:25873): WARNING **: pads_exist: Can't find sink property aux of nop

** (process:25873): WARNING **: gegl_node_connect_from: Didn't find pad 'aux' of 'nop'

** (process:25873): WARNING **: pads_exist: Can't find sink property aux of nop
babl-format.c:425 babl_format()
        babl_format("B'aG'aR'aA u8"): not found
Attaching to process 25873.
Reading symbols for shared libraries . done
Reading symbols for shared libraries ............................................................................................................................................... done
0x90005864 in wait4 ()
  • #0 wait4
  • #1 system
  • #2 babl_backtrack
    at babl-internal.c line 67
  • #3 babl_die
    at babl-internal.c line 73
  • #4 babl_format
    at babl-format.c line 425
  • #5 prepare
    at /Source/gegl/gegl/operations/external/text.c line 270
  • #6 gegl_operation_prepare
    at /Source/gegl/gegl/gegl/operation/gegl-operation.c line 242
  • #7 visit_node
    at /Source/gegl/gegl/gegl/process/gegl-prepare-visitor.c line 86
  • #8 gegl_visitor_visit_node
    at /Source/gegl/gegl/gegl/graph/gegl-visitor.c line 504
  • #9 visitable_accept
    at /Source/gegl/gegl/gegl/graph/gegl-node.c line 887
  • #10 gegl_visitable_accept
    at /Source/gegl/gegl/gegl/graph/gegl-visitable.c line 71
  • #11 dfs_traverse
    at /Source/gegl/gegl/gegl/graph/gegl-visitor.c line 364
  • #12 gegl_visitor_dfs_traverse
    at /Source/gegl/gegl/gegl/graph/gegl-visitor.c line 306
  • #13 gegl_node_get_bounding_box
    at /Source/gegl/gegl/gegl/graph/gegl-node.c line 1493
  • #14 property_changed
    at /Source/gegl/gegl/gegl/graph/gegl-node.c line 998
  • #15 g_cclosure_marshal_VOID__PARAM
    at gmarshal.c line 531
  • #16 g_closure_invoke
    at /Source/glib/glib/gobject/gclosure.c line 490
  • #17 signal_emit_unlocked_R
    at /Source/glib/glib/gobject/gsignal.c line 2440
  • #18 g_signal_emit_valist
    at /Source/glib/glib/gobject/gsignal.c line 2199
  • #19 g_signal_emit
    at /Source/glib/glib/gobject/gsignal.c line 2243
  • #20 g_object_dispatch_properties_changed
    at /Source/glib/glib/gobject/gobject.c line 563
  • #21 g_object_notify_dispatcher
    at /Source/glib/glib/gobject/gobject.c line 245
  • #22 g_object_notify_queue_thaw
    at /Source/glib/glib/gobject/gobjectnotifyqueue.c line 123
  • #23 g_object_set_property
    at /Source/glib/glib/gobject/gobject.c line 1266
  • #24 gegl_node_set_valist
    at /Source/gegl/gegl/gegl/graph/gegl-node.c line 1191
  • #25 gegl_node_set
    at /Source/gegl/gegl/gegl/graph/gegl-node.c line 1090
  • #26 param_set
    at /Source/gegl/gegl/gegl/gegl-xml.c line 156
  • #27 text
    at /Source/gegl/gegl/gegl/gegl-xml.c line 339
  • #28 g_markup_parse_context_parse
    at /Source/glib/glib/glib/gmarkup.c line 1497
  • #29 gegl_node_new_from_xml
    at /Source/gegl/gegl/gegl/gegl-xml.c line 459
  • #30 main
  • #31 _start
    at /SourceCache/Csu/Csu-45/crt.c line 267
  • #32 start

Comment 1 Øyvind Kolås (pippin) 2008-03-01 02:19:59 UTC
** (process:25873): WARNING **: Failed to set operation type over, using a
passthrough op instead

** (process:25873): WARNING **: Failed to set operation type over, using a
passthrough op instead

This seems to indicate that the generated operations are not found (probably not even built) are you building from SVN trunk or from the 0.0.16 tarball, building from the 0.0.16 tarball will remove the need for a working ruby installation (but make it harder to track development).

--------

** (process:25873): WARNING **: pads_exist: Can't find sink property aux of nop
babl-format.c:425 babl_format()
        babl_format("B'aG'aR'aA u8"): not found
Attaching to process 25873.

This indicates that babl is unable to find it's extensions, I do not know enough
about how GEGL and babl are built and installed on mac to really make a guess about what is going wrong here you might want to make the environment variable BABL_PATH point to where the extensions for babl have gotten installed.
Comment 2 paul 2008-03-01 21:59:22 UTC
thank you for that information
i had modified some of the sources in order for my older system to build them as bundles using gnu libtool and load them natively as opposed to using dlcompat for dlfcn
i typo'd
works now
Comment 3 Daniel Macks 2008-03-02 22:14:02 UTC
Probably worth noting that "loadable modules" and "linkable libraries" are two different things on OS X, something that the Makefiles do not understand. A lib that is intended to be dlopen()ed and not linked against by other binaries should be compiled with -bundle instead of-dynamiclib and the normal extension is .so or sometimes .bundle instead of .dylib. In particular IIRC, linker libraries (-dynamiclib) cannot be dlclose()ed on any OS X until the most recent version. Hand-coding all these flags and extensions is getting to be painful!
Comment 4 Øyvind Kolås (pippin) 2008-03-02 22:53:03 UTC
I ultimately accepted compilation using libtool for GEGL even though
build+install of the operations now has doubled in time. Build time for 
the plug-ins is less of an issue for babl though.

Does this means the following would make things be more correct on mac is the following modification to configure.ac? It could perhaps be even more useful to get the patch that was used to make it build using libtool and loading natively,
darwin not quite being like other unices is painful, it almost seems like the
decision of DOS to use backslashes instead of slashes to build paths.

Index: configure.ac
===================================================================
--- configure.ac        (revision 289)
+++ configure.ac        (working copy)
@@ -162,8 +162,8 @@
 AC_MSG_CHECKING([for some Win32 platform])
 case "$target_or_host" in 
   *-*-darwin*)                 # darwin
-    shrext=.dylib
-    dynamiclib=-dynamiclib
+    shrext=.so
+    dynamiclib=-bundle
     ;;
   *-*-mingw* | *-*-cygwin*)    # windows
     shrext=.dll
Comment 5 Daniel Macks 2008-03-03 02:03:16 UTC
If you're libtoolized, then *everything* is done for you, you don't have to special-case or "if $some_os then $some_odd_thing" anywhere. Will look at SVN version and see how to generalize it later tonite.
Comment 6 Daniel Macks 2008-03-03 03:17:05 UTC
extensions/ doesn't look libtoolized in trunk on svn.gnome...is there somewhere else that this is being developed? Assuming libtool, dlopen()able things are declared as "-module", and libtool knows the correct linker flag and extension for the target platform. Likewise, linking against a library is just using the .la extension, and libtool knows the correct extension and path into the .libs/ subdir for passing to the linker. So the only place anything platform-specific is needed is the loadable-module extension, for in the strcmp() when reads the extensions directory. There's a way to ask libtool what it is, can't remember off-hand.
Comment 7 Øyvind Kolås (pippin) 2008-03-03 07:39:48 UTC
GEGL has been libtoolized, babl has not I was referring to the comment #2 in this thread.
Comment 8 paul 2008-03-03 17:36:14 UTC
(In reply to comment #4)
that's what i did with configure.ac, then i completely gutted out extensions/Makefile.am and replaced it
as for the native loading, my system is older and what i've read says that the method i'm using is depreciated on newer systems, so you'd want to take it with a grain of salt (i'm not good at this)
Comment 9 paul 2008-03-03 17:37:13 UTC
Created attachment 106495 [details]
libtoolized extensions/Makefile.am
Comment 10 paul 2008-03-03 17:37:55 UTC
Created attachment 106496 [details] [review]
crudely patched babl-extension.c
Comment 11 Daniel Macks 2008-03-07 06:59:29 UTC
That extensions/Makefile.am looks pretty close to the one I'm testing for Fink. Only functional difference is that I have:

libbabl=$(top_builddir)/babl/libbabl-$(BABL_API_VERSION).la

for *all* platforms, not just win32 (which is a weakness in the existing Makefile.am as well), because the plugins all use symbols from that lib. By either linking the lib directly or via -bundle-loader, all symbols are defined at link-time, which makes runtime loading smoother.

For simplicity, one can have a unified AM_LDFLAGS (akin to AM_CFLAGS, which should actually be AM_CPPFLAGS or INCLUDES not AM_CFLAGS) instead of specific *_la_LDFLAGS for each plugin.
Comment 12 paul 2008-03-07 17:36:54 UTC
(In reply to comment #11)
to be honest, after configure, i do uncomment the lines to add -no-undefined and whatever project's library that's just been built, with babl et al
Comment 13 Daniel Macks 2008-03-10 04:44:29 UTC
Created attachment 106952 [details] [review]
Fix search-pattern for plugins

If the extensions are built by libtool, don't need to know the specific extension for shared libraries. If the extensions are built by libtool as -module, just ask libtool what extension will be used instead of guessing based on platform