Age | Commit message (Collapse) | Author | Files | Lines |
|
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>
|
|
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1481>
|
|
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1481>
|
|
find dependencies
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1481>
|
|
dependencies
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1481>
|
|
libraries
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1481>
|
|
See https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1087
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1481>
|
|
See https://gitlab.gnome.org/GNOME/gobject-introspection/-/merge_requests/448
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1481>
|
|
|
|
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>
|
|
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>
|
|
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>
|
|
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1474>
|
|
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1473>
|
|
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>
|
|
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>
|
|
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1455>
|
|
Apply upstream MR https://gitlab.gnome.org/GNOME/pango/-/merge_requests/740
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1469>
|
|
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>
|
|
Attempt to shorten overall path length for
webrtc-audio-processing's abseil subproject.
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1464>
|
|
"Part of .git directory is on the list of files to archive"
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1464>
|
|
|
|
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1461>
|
|
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1452>
|
|
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1449>
|
|
See https://gitlab.freedesktop.org/gstreamer/meson-ports/libvpx/-/merge_requests/20
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1448>
|
|
Fixes #476
Co-authored-by: Piotr Brzeziński <piotr@centricular.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1446>
|
|
See https://gitlab.freedesktop.org/gstreamer/meson-ports/libvpx/-/issues/3
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1443>
|
|
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>
|
|
Fixes #474
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1440>
|
|
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1438>
|
|
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>
|
|
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1426>
|
|
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>
|
|
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1421>
|
|
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>
|
|
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>
|
|
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1412>
|
|
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>
|
|
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1405>
|
|
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1399>
|
|
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1397>
|
|
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1397>
|
|
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>
|
|
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1394>
|
|
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1388>
|
|
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1385>
|
|
Same reason as ab209c2a9ea51335549d9459492ab544f999ecb8
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1383>
|
|
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1381>
|
|
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1381>
|