gstreamer: update and compile dynamically

This commit is contained in:
Jeremy Soller 2025-04-10 17:32:28 -06:00
parent 8621c086ab
commit 549c1fd8e2
No known key found for this signature in database
GPG Key ID: 670FDFB5428E05CA
2 changed files with 44 additions and 70 deletions

View File

@ -1,24 +1,37 @@
[source]
tar = "https://gstreamer.freedesktop.org/src/gstreamer/gstreamer-1.20.6.tar.xz"
blake3 = "d96a7fd8bb9bec309bc40ccafdbac3bd4d11d06a9be41c38337cea02deaea95d"
patches = [
"redox.patch"
]
tar = "https://gitlab.freedesktop.org/gstreamer/gstreamer/-/archive/1.24.12/gstreamer-1.24.12.tar.gz"
blake3 = "181daf73050f7472ec656e7461b7f67028d6002c1133870576033a32e43a364f"
patches = ["redox.patch"]
[build]
template = "custom"
dependencies = [
"cairo",
"expat",
"ffmpeg6",
"freetype2",
"fontconfig",
"gettext",
"glib",
"libffi",
"glib",
"harfbuzz",
"libffi",
"libiconv",
"pcre",
"libjpeg",
"libogg",
"libpng",
"libvorbis",
"libxml2",
#TODO "pango",
"pcre",
"pixman",
"zlib"
]
script = """
DYNAMIC_INIT
export GLIB_GENMARSHAL="$(which glib-genmarshal)"
export GLIB_MKENUMS="$(which glib-mkenums)"
export LDFLAGS="-static"
export LDFLAGS="-L${COOKBOOK_SYSROOT}/lib"
# TODO: Fix this annoying shite
echo "[binaries]" > cross_file.txt
@ -26,7 +39,7 @@ echo "c = '${CC}'" >> cross_file.txt
echo "cpp = '${CXX}'" >> cross_file.txt
echo "ar = '${AR}'" >> cross_file.txt
echo "strip = '${STRIP}'" >> cross_file.txt
echo "pkgconfig = '${TARGET}-pkg-config'" >> cross_file.txt
echo "pkg-config = '${TARGET}-pkg-config'" >> cross_file.txt
echo "[host_machine]" >> cross_file.txt
echo "system = 'redox'" >> cross_file.txt
@ -52,17 +65,16 @@ unset RANLIB
unset READELF
unset STRIP
meson setup "${COOKBOOK_SOURCE}" _build \
meson \
setup \
"${COOKBOOK_SOURCE}" \
_build \
--cross-file cross_file.txt \
--buildtype release \
--strip \
-Ddefault_library=static \
-Dprefix=/ \
-Dlibdir=lib \
-Dbenchmarks=disabled \
-Dcoretracers=disabled \
-Dexamples=disabled \
-Dtests=disabled
-Dauto_features=disabled
ninja -C _build -v
DESTDIR="${COOKBOOK_STAGE}" ninja -C _build -v install
"""

View File

@ -1,57 +1,19 @@
diff -ruwN source/gst/gstpoll.c source-new/gst/gstpoll.c
--- source/gst/gstpoll.c 2023-02-23 11:23:11.000000000 -0700
+++ source-new/gst/gstpoll.c 2023-05-19 13:22:32.365660597 -0600
@@ -85,6 +85,10 @@
#include <sys/socket.h>
#endif
+#if defined(__redox__)
+#include <sys/select.h>
+#endif
+
#ifdef G_OS_WIN32
# ifndef EWOULDBLOCK
# define EWOULDBLOCK EAGAIN /* This is just to placate gcc */
@@ -689,7 +693,9 @@
{
gint control_sock[2];
+#if !defined(__redox__)
if (socketpair (PF_UNIX, SOCK_STREAM, 0, control_sock) < 0)
+#endif
goto no_socket_pair;
nset->control_read_fd.fd = control_sock[0];
diff -ruwN source/libs/gst/check/libcheck/meson.build source-new/libs/gst/check/libcheck/meson.build
--- source/libs/gst/check/libcheck/meson.build 2023-02-23 11:23:11.000000000 -0700
+++ source-new/libs/gst/check/libcheck/meson.build 2023-05-19 13:26:51.285620215 -0600
@@ -40,13 +40,13 @@
diff -ruwN gstreamer-1.20.7/subprojects/gst-plugins-base/gst-libs/gst/tag/meson.build source/subprojects/gst-plugins-base/gst-libs/gst/tag/meson.build
--- gstreamer-1.20.7/subprojects/gst-plugins-base/gst-libs/gst/tag/meson.build 2023-07-26 09:18:38.000000000 -0600
+++ source/subprojects/gst-plugins-base/gst-libs/gst/tag/meson.build 2025-04-10 17:19:26.509676357 -0600
@@ -135,10 +135,10 @@
install: false)
endif
# FIXME: check that timer_create, timer_settime, timer_delete are in rt_lib
-if not rt_lib.found()
+#if not rt_lib.found()
libcheck_files += files(
'libcompat/timer_create.c',
'libcompat/timer_settime.c',
'libcompat/timer_delete.c'
)
-endif
+#endif
configure_file(input : 'check.h.in',
output : 'check.h',
diff -ruwN source/plugins/elements/gstfilesink.c source-new/plugins/elements/gstfilesink.c
--- source/plugins/elements/gstfilesink.c 2023-02-23 11:23:11.000000000 -0700
+++ source-new/plugins/elements/gstfilesink.c 2023-05-19 13:23:26.885652108 -0600
@@ -148,8 +148,10 @@
else
g_assert_not_reached ();
+#if !defined(__redox__)
if (o_sync)
flags |= O_SYNC;
+#endif
fd = open (filename, flags, 0666);
-executable('mklicensestables', 'mklicensestables.c',
- c_args : gst_plugins_base_args,
- include_directories: [configinc],
- dependencies : [tag_dep, gst_base_dep],
- install : false)
+#executable('mklicensestables', 'mklicensestables.c',
+# c_args : gst_plugins_base_args,
+# include_directories: [configinc],
+# dependencies : [tag_dep, gst_base_dep],
+# install : false)
gst_tag_dir = meson.current_source_dir()