Building gstreamer as a tarball without runtime dependencies

Nicolas Dufresne nicolas at ndufresne.ca
Mon Dec 7 23:35:16 UTC 2020


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
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20201207/10524744/attachment.htm>


More information about the gstreamer-devel mailing list