I've made a preliminary patch that does run-time dynamic linking to the
GStreamer libraries, only linking to $(GTK_LIBS) at build time. This should
ultimately allow you to build on CentOS 6.

The patch is attached. It's pretty ugly: lots of GStreamer macros expand to
functions and thus had to be inlined and hacked to use our function
pointers. GStreamer clearly wasn't designed for run-time dynamic linking.
It builds but I haven't tested it and won't be able to for a while.

Currently, even though GStreamer libraries are not used during the build,
you still need GStreamer installed, so pkg-config can detect
$(GSTREAMER_CFLAGS) for the header files we need. Our configure.ac thus
needs some patching too. That can be an exercise for the reader ;).

Damjan


On Thu, Mar 15, 2018 at 9:09 AM, Peter kovacs <pe...@apache.org> wrote:

> +1
>
> Am 15. März 2018 03:22:20 MEZ schrieb Damjan Jovanovic <dam...@apache.org
> >:
> >If GStreamer is that problematic to obtain, we could import these 30
> >symbols that we use from it via run-time dynamic linking. That way we
> >don't
> >need the GStreamer libraries to link against at compile time, only the
> >header files:
> >
> >0000000000000000      DF *UND*    0000000000000060
> >gst_video_overlay_get_type
> >0000000000000000      DF *UND*    0000000000000196
> >gst_bus_set_sync_handler
> >0000000000000000      DF *UND*    000000000000003b
> >gst_message_get_structure
> >0000000000000000      DF *UND*    00000000000000b1
> >gst_element_query_duration
> >0000000000000000      DF *UND*    0000000000000136
> >gst_pad_get_current_caps
> >0000000000000000      DF *UND*    000000000000000a
> >gst_pipeline_get_bus
> >0000000000000000      DF *UND*    000000000000007f
> >gst_bus_get_type
> >0000000000000000      DF *UND*    0000000000000174
> >gst_object_unref
> >0000000000000000      DF *UND*    00000000000000fc
> >gst_element_get_state
> >0000000000000000      DF *UND*    00000000000000af
> >gst_pipeline_get_type
> >0000000000000000      DF *UND*    00000000000000dc
> >gst_element_set_state
> >0000000000000000      DF *UND*    00000000000000b4
> >gst_structure_has_field
> >0000000000000000      DF *UND*    00000000000000da
> >gst_bus_have_pending
> >0000000000000000      DF *UND*    00000000000000b1
> >gst_element_query_position
> >0000000000000000      DF *UND*    000000000000002f
> >gst_structure_get_name
> >0000000000000000      DF *UND*    0000000000000090
> >gst_structure_get_value
> >0000000000000000      DF *UND*    00000000000000c2
> >gst_structure_get_int
> >0000000000000000      DF *UND*    000000000000003e
> >gst_caps_get_size
> >0000000000000000      DF *UND*    0000000000000059
> >gst_structure_nth_field_name
> >0000000000000000      DF *UND*    000000000000003a
> >gst_is_video_overlay_prepare_window_handle_message
> >0000000000000000      DF *UND*    00000000000000ca
> >gst_bin_get_type
> >0000000000000000      DF *UND*    0000000000000365
> >gst_mini_object_unref
> >0000000000000000      DF *UND*    00000000000000b4
> >gst_message_parse_error
> >0000000000000000      DF *UND*    000000000000005f
> >gst_init
> >0000000000000000      DF *UND*    00000000000000da
> >gst_bus_pop
> >0000000000000000      DF *UND*    0000000000000065
> >gst_caps_get_structure
> >0000000000000000      DF *UND*    00000000000000b4
> >gst_element_seek_simple
> >0000000000000000      DF *UND*    00000000000001ea
> >gst_element_factory_make
> >0000000000000000      DF *UND*    0000000000000148
> >gst_video_overlay_set_window_handle
> >0000000000000000      DF *UND*    000000000000002f
> >gst_structure_n_fields
> >
> >We already do with ODBC for example, where we will link against either
> >iODBC or unixODBC depending on which is installed at run-time.
> >
> >
> >On Thu, Mar 15, 2018 at 12:17 AM, Andrea Pescetti <pesce...@apache.org>
> >wrote:
> >
> >> Damjan Jovanovic wrote:
> >>
> >>> GStreamer 1.0.0 requires glib 2.32.0.
> >>>
> >>
> >> CentOS 6 ships with glib (package name: glib2) 2.28 as per
> >> http://mirror.centos.org/centos/6/os/x86_64/Packages/
> >>
> >> So this is indeed an issue: we would need a distribution that ships
> >with
> >> glib >= 2.32 (without considering other possible dependencies at the
> >> moment) to build.
> >>
> >> On the other hand, we want something as old as possible since builds
> >done
> >> with too recent versions of glibc (not to confuse with the above, and
> >set
> >> at 2.12 in CentOS 6) won't work for users of old Linux-based systems.
> >>
> >>
> >> Regards,
> >>   Andrea.
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: dev-unsubscr...@openoffice.apache.org
> >> For additional commands, e-mail: dev-h...@openoffice.apache.org
> >>
> >>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@openoffice.apache.org
> For additional commands, e-mail: dev-h...@openoffice.apache.org
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@openoffice.apache.org
For additional commands, e-mail: dev-h...@openoffice.apache.org

Reply via email to