Building gstreamer as a tarball without runtime dependencies

David Ing ding at panopto.com
Tue Dec 8 00:05:58 UTC 2020


Ah the term "static linking" helped me to find some information in the
gst-build
documentation <https://github.com/GStreamer/gst-build#static-build>.  Thank
you.

On Mon, Dec 7, 2020 at 3:35 PM Nicolas Dufresne <nicolas at ndufresne.ca>
wrote:

>
>
> Le lun. 7 déc. 2020 17 h 15, David Ing <ding at panopto.com> a écrit :
>
>> Hi Nicolas, I think you may have answered this question:
>>
>>    - Is it possible to build gstreamer as a single tarball for
>>    linux x86_64 with zero *buildtime* dependencies (except for a linux
>>    kernel)?
>>
>> But I asked this question:
>>
>>    - Is it possible to build gstreamer as a single tarball for
>>    linux x86_64 with zero *runtime* dependencies (except for a linux
>>    kernel)?
>>
>> I know the build system needs to consume external 3rd party libraries,
>> but I am thinking of something that produces a single self-contained
>> tarball which can be dropped onto any linux system and run without the need
>> for additional packages to be installed.  The tar-ball would only require a
>> Linux kernel and nothing else.
>>
>
> That is called static linking, which we do for Android and iOS, but only
> partially, since we don't build the libc. But in theory its do-able. Other
> approach exist, there is few options around.
>
>
>> On Mon, Dec 7, 2020 at 1:01 PM Nicolas Dufresne <nicolas at ndufresne.ca>
>> wrote:
>>
>>> Le lundi 07 décembre 2020 à 10:58 -0800, David Ing a écrit :
>>> > Is it possible to build gstreamer as a single tarball for linux x86_64
>>> with
>>> > zero runtime dependencies (except for a linux kernel)?
>>> > If so, has anyone scripted that?
>>>
>>> It depends on your definition to zero-dependencies (GStreamer always
>>> depends on
>>> glib, libffi and libc, there is no way around it). If instead of you
>>> mean a way
>>> to bundle all deps together, please read the following:
>>>
>>> W have a cross-platform build system called cerbero [0] that we used to
>>> manage
>>> the build of needed third parties. We don't currently have any platform
>>> without
>>> any of the deps already there. They all at least have libc for sure and
>>> we try
>>> and use system libraries whenever possible. You may want to look at our
>>> Windows,
>>> Android, OXS and iOS builds as examples.
>>>
>>> When the build is complete, one can use the "bundle-source" command to
>>> genereate
>>> a self-contained, network less build package. This is what vendors using
>>> cerbero
>>> are expected to provide to who they distribute GStreamer.
>>>
>>> An alternative would be to use gst-build [1], probably with a
>>> --wrap-mode=no-
>>> fallback to avoid any dependencies being pulled from the network, but
>>> that may
>>> yield into less features being enabled.
>>>
>>> regards,
>>> Nicolas
>>>
>>> [0] https://gitlab.freedesktop.org/gstreamer/cerbero
>>> [1] https://gitlab.freedesktop.org/gstreamer/gst-build
>>> > _______________________________________________
>>> > gstreamer-devel mailing list
>>> > gstreamer-devel at lists.freedesktop.org
>>> > https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>>>
>>>
>>> _______________________________________________
>>> gstreamer-devel mailing list
>>> gstreamer-devel at lists.freedesktop.org
>>> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>>>
>> _______________________________________________
>> gstreamer-devel mailing list
>> gstreamer-devel at lists.freedesktop.org
>> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>>
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20201207/8123c117/attachment-0001.htm>


More information about the gstreamer-devel mailing list