summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2024-05-29osxrelocator: Fix dyld being unable to load all our libraries1.24.4L. E. Segovia3-26/+54
When researching the construction of the monolithic GStreamer library/framework (see !1466), I found that Qt applications were totally unable to load GStreamer once deployed through macdeployqt. In my case, I was consuming the libraries in raw form, through a tarball I packaged myself, but @thewildtree also ran into the same issue when testing an app that consumes the official release. Upon looking at the libraries, I quickly realised that all libraries had what looked like wrongly nested load commands, of the form `@rpath/lib/libyadda.dylib`. Although the RPATH entries looked reasonable at first glance, this is quickly not the case once the libraries are deployed, because the @rpath of such an app will point to the root of the Frameworks folder, and macdeployqt deploys the libraries in raw form there. However, that's not all the story. @thewildtree's case revealed a much subtler and deadlier problem: the load commands themselves do not respect Apple's convention, leading dyld(1) to kill the application on sight. This is because, although OSXUniversalGenerator tries making the fat libraries relocatable (correctly) by changing their ID, there's no equivalent change made to any consumer. All load commands must equal the ID of the dylib being loaded [1]. This is easily fixed at a given recipe's post-install time by adjusting the library ID there, and fixing the rpaths so that they always point to the root of the library path. [1]: https://developer.apple.com/forums/thread/736728 Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1481>
2024-05-29glib-tools: Fix build tools recipe not declaring what binaries must be relocatedL. E. Segovia1-0/+23
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1481>
2024-05-29glib: Work around Meson not setting a RPATH entry to let dyld find dependenciesL. E. Segovia1-0/+5
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1481>
2024-05-29glib-networking: Work around Meson not setting a RPATH entry to let dyld ↵L. E. Segovia1-0/+5
find dependencies Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1481>
2024-05-29glib-tools: Work around Meson not setting a RPATH entry to let dyld find ↵L. E. Segovia1-0/+5
dependencies Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1481>
2024-05-29gobject-introspection: Fix g-ir-scanner failing to run with rpath-relative ↵L. E. Segovia2-1/+45
libraries Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1481>
2024-05-29gobject-introspection: Remove unused patchesL. E. Segovia4-261/+0
See https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1087 Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1481>
2024-05-29gobject-introspection: Allow using g-ir-scanner with MSVCL. E. Segovia2-0/+66
See https://gitlab.gnome.org/GNOME/gobject-introspection/-/merge_requests/448 Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1481>
2024-05-29Build 1.24.4 releaseTim-Philipp Müller14-15/+15
2024-05-21WiX: fix empty modules causing build failuresL. E. Segovia1-9/+13
These modules were previously affected by base-crypto overriding the Package superclass: - gstreamer-1.0-qt5 (both runtime and devel) - gstreamer-1.0-qt6 (both runtime and devel) - vsintegration-1.0 (runtime only) - gstreamer-1.0-vs-templates (runtime only) Fixes #480 Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1474>
2024-05-21package: Ensure instance is cleanly initialized by the constructorL. E. Segovia1-5/+11
Fixes base-crypto overriding the Package class's internal state, since it doesn't have deps of its own. See #480 Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1474>
2024-05-21WiX: Fix encoding of the license RTFL. E. Segovia1-94/+43
Currently, Windows Installer renders mojibake for special Unicode characters. These appear to have been inserted with a very old version of LibreOffice. By passing the RTF through Wordpad and MS Word, these characters are converted to the official escape codes. Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1474>
2024-05-21WiX: enable sharding for parallel compressionL. E. Segovia1-1/+1
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1474>
2024-05-21srt.recipe: Bump to 1.5.3Nirbheek Chauhan1-2/+2
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1473>
2024-05-21cerbero: Add Fedora 40 supportNirbheek Chauhan1-0/+5
Fedora has moved to wget2 which doesn't support --progress=dot https://github.com/rockdaboot/wget2/issues/317 Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1473>
2024-05-21ci: mark docker image jobs as placeholder jobsTim-Philipp Müller1-0/+3
They finish fairly quickly in most cases and even if they need to rebuild the image they won't use a lot of cpu resources. This way these jobs don't have to compete with the normal job queue and things get started a bit quicker. Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1455>
2024-05-21ci: mark pre-commit checks job as placeholder jobTim-Philipp Müller1-0/+1
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1455>
2024-05-21pango: Fix leaks on WindowsSeungha Yang2-0/+30
Apply upstream MR https://gitlab.gnome.org/GNOME/pango/-/merge_requests/740 Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1469>
2024-05-20ci: Truncate cerbero builddir to "cb" to address long path issuesNirbheek Chauhan2-2/+2
There really is no fix, apparently, other than keeping the path short. Too many things break if your paths become longer than 260 characters. Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1464>
2024-05-20cerbero: shorten builddir pathTim-Philipp Müller2-21/+21
Attempt to shorten overall path length for webrtc-audio-processing's abseil subproject. Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1464>
2024-05-01ci: fix gitlab warning when creating artifacts archiveTim-Philipp Müller1-0/+18
"Part of .git directory is on the list of files to archive" Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1464>
2024-04-30Build 1.24 branch againTim-Philipp Müller3-4/+4
2024-04-30Build 1.24.3 release1.24.3Tim-Philipp Müller14-15/+15
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1461>
2024-04-13Build 1.24 branch againTim-Philipp Müller3-4/+4
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1452>
2024-04-10Build 1.24.2 release1.24.2Tim-Philipp Müller14-15/+15
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1449>
2024-04-09libvpx: Fix errors with instruction set detection for x86* builds and MSVCL. E. Segovia1-0/+59
See https://gitlab.freedesktop.org/gstreamer/meson-ports/libvpx/-/merge_requests/20 Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1448>
2024-04-09gst-plugins-bad: package new gstreamer analytics and mse librariesTim-Philipp Müller1-0/+6
Fixes #476 Co-authored-by: Piotr Brzeziński <piotr@centricular.com> Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1446>
2024-04-04libvpx: Fix build with Python 3.8L. E. Segovia1-28/+93
See https://gitlab.freedesktop.org/gstreamer/meson-ports/libvpx/-/issues/3 Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1443>
2024-04-03glib: Block futex_time64 usage on Android API level < 30L. E. Segovia5-0/+278
This syscall is seccomp blocked on all lower API levels: https://github.com/aosp-mirror/platform_bionic/commit/ee7bc3002dc3127faac110167d28912eb0e86a20 Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1441>
2024-04-03openjpeg: Update to 2.5.2L. E. Segovia1-10/+7
Fixes #474 Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1440>
2024-04-02directxmath: Update to 3.1.9Seungha Yang3-52/+7
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1438>
2024-04-02gst-plugins-rs: Fix superstripping for ELF breaking all pluginsL. E. Segovia1-12/+102
As it turns out, superstripping was doing a complete(ly wrong) job out of the static libraries generated by rust. Using `strip` with `--keep-symbol` looked sensible, but the utility did not truly parse all the symbols and constructed a dependency chain. Instead, placeholders to the next address were generated in place of all the rodata symbols referenced in the functions to be kept. The result of this nightmare was crashes that looked completely senseless, until one checked the disassembly of the functions -- the `gst_plugin_xxx_register` function was there, but neither the call nor the parameters referenced anywhere valid in the data sections. The fix here is to perform a Clang-style "Single-Object Prelinking", which is in fact called relocatable partial linking -- meld all the objects into one, stripping the unreferenced cruft, then marking only the functions we desire as global with `objcopy`. I tried doing this with a version script, like FFmpeg, but it did not have any effect on the symbol visibility -- the `--export-dynamic-symbol-list` flag does not allow localising symbols' visibility. See: https://maskray.me/blog/2022-11-21-relocatable-linking Fixes gstreamer/gstreamer#3358 Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1437>
2024-03-23Build 1.24 branch againTim-Philipp Müller3-4/+4
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1426>
2024-03-22glib: disable error for int-conversion introduced by default with clang 151.24.1Matthew Waters1-0/+3
macos/ios now ship clang 15 which flipped some default errors for some warnings around int->pointer conversion that currently fail in glib to the version we ship here. Unflip those errors. https://reviews.llvm.org/D129881 Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1422>
2024-03-21Build 1.24.1 releaseTim-Philipp Müller14-15/+15
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1421>
2024-03-21orc: Add a temporary patch to disable Orc on iOSPiotr Brzeziński2-1/+40
Causes crashes with any element that uses Orc. Might have a better solution, but let's hotfix by disabling completely for now. Related MR: https://gitlab.freedesktop.org/gstreamer/orc/-/merge_requests/175 Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1419>
2024-03-21gstreamer-1.0.recipe: Enable ptp helper explicitlyNirbheek Chauhan1-0/+1
Otherwise it will be quietly disabled if bootstrap was not done correctly, and post_install will fail in a confusing way. Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1416>
2024-03-20gst-plugins-bad: Package new insertbin pluginNirbheek Chauhan1-0/+2
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1412>
2024-03-16gst-plugins-rs: Adjust parallel architecture build blocksL. E. Segovia1-1/+8
It's possible to build gst-plugins-rs with a 32GB box at full parallelism, but for universal builds each architecture must be built one at a time. Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1405>
2024-03-16rust: Fix Python error when taking the architectural lockL. E. Segovia1-1/+1
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1405>
2024-03-08libnice: update to 0.1.22Tim-Philipp Müller1-2/+2
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1399>
2024-03-05ci: update for 1.24 branchTim-Philipp Müller1-3/+3
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1397>
2024-03-05Build 1.24 branch againTim-Philipp Müller3-4/+4
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1397>
2024-03-05cerbero: Fix shutil.rmtree hack to passthrough unknown kwargs1.24.0Nirbheek Chauhan1-3/+3
Android tarball creation was broken for a while on Fedora because a new kwarg was added in Python 3.12 ``` Traceback (most recent call last): File "<string>", line 24, in <module> File "/home/nirbheek/projects/repos/cerbero.git/cerbero/main.py", line 224, in main Main(sys.argv[1:]) File "/home/nirbheek/projects/repos/cerbero.git/cerbero/main.py", line 52, in __init__ self.run_command() File "/home/nirbheek/projects/repos/cerbero.git/cerbero/main.py", line 192, in run_command res = commands.run(command, self.config, self.args) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/nirbheek/projects/repos/cerbero.git/cerbero/commands/__init__.py", line 79, in run return _commands[command].run(config, args) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/nirbheek/projects/repos/cerbero.git/cerbero/commands/package.py", line 156, in run paths = pkg.pack( ^^^^^^^^^ File "/home/nirbheek/projects/repos/cerbero.git/cerbero/packages/disttarball.py", line 73, in pack runtime = self._create_tarball(output_dir, PackageType.RUNTIME, dist_files, force, package_prefix) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/nirbheek/projects/repos/cerbero.git/cerbero/packages/android.py", line 32, in _create_tarball return super()._create_tarball(output_dir, package_type, files, force, package_prefix) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/nirbheek/projects/repos/cerbero.git/cerbero/packages/disttarball.py", line 152, in _create_tarball self._write_tar(filename, package_prefix, files) File "/home/nirbheek/projects/repos/cerbero.git/cerbero/packages/disttarball.py", line 213, in _write_tar with tempfile.TemporaryDirectory() as d: File "/usr/lib64/python3.12/tempfile.py", line 946, in __exit__ self.cleanup() File "/usr/lib64/python3.12/tempfile.py", line 950, in cleanup self._rmtree(self.name, ignore_errors=self._ignore_cleanup_errors) File "/usr/lib64/python3.12/tempfile.py", line 930, in _rmtree _shutil.rmtree(name, onexc=onexc) TypeError: rmtree() got an unexpected keyword argument 'onexc' ``` Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1384>
2024-03-05Build 1.24.0 releaseTim-Philipp Müller14-15/+15
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1394>
2024-02-27orc: update to 0.4.38Tim-Philipp Müller1-3/+3
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1388>
2024-02-26Build main branch againTim-Philipp Müller3-4/+4
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1385>
2024-02-24Add directxmath to packages, same as directx-headers1.23.90Nirbheek Chauhan2-0/+3
Same reason as ab209c2a9ea51335549d9459492ab544f999ecb8 Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1383>
2024-02-24ci: use --clocktime to print absolute timestamps as wellTim-Philipp Müller1-0/+1
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1381>
2024-02-24cerbero: add --clocktime argument to print absolute time as wellTim-Philipp Müller2-0/+16
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1381>