Age | Commit message (Collapse) | Author | Files | Lines |
|
Bump version to 1.1.1h that includes support for Apple silicon
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/661>
|
|
These errors were reported by the Windows App Certification Kit.
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/544>
|
|
Otherwise openssl always links to the release CRT.
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/542>
|
|
Supports both regular Win32 and WinRT/UWP.
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/505>
|
|
Someone reported on IRC that openssl was failing to build because it
was complaining about Perl using backward slashes instead of forward
slashes. Turned out to be because someone had overriden TERM to be
`dumb` instead of the default `cygwin`.
Set those vars ourselves to prevent this from happening.
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/510>
|
|
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/503>
|
|
cmake and nasm needs minimum version.
Add a test to build it if needed.
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/483>
|
|
This is the correct way to signal that a recipe cannot be used.
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/480>
|
|
|
|
We only use openssl now, which by default picks up a ca cert bundle
file called `cert.pem` inside `OPENSSLDIR`. Without this all
certificate checks fail with the error `Unacceptable TLS certificate`.
Howeve, we can't just use `OPENSSLDIR` since it's hard-coded and will
break portable prefixes, and also the ca-cert file we install is named
differently.
So now by default we load the default system store from
`PREFIX/etc/ssl/certs/ca-certificates.crt` where `PREFIX` is deduced
from the location of `crypto.dll`, which is in bindir.
Fixes https://gitlab.freedesktop.org/gstreamer/cerbero/issues/256
|
|
|
|
Finally figured out the actual issue that I was trying to solve in
f38df32d8 and 78f06dd405. Paths like `c:/foobar` (lowercase drive
letter) are considered to be a POSIX path list, so `c:/foobar/`
becomes `c;C:\foobar`:
http://mingw.org/wiki/Posix_path_conversion
This will happen anytime we try to pass a path as a command-line
argument. We used to work-around this by using `to_unixpath()`,
but that's just sinking deeper into dependence on broken shell
behaviour. This happens now because we're passing includes in CFLAGS,
CXXFLAGS, CPPFLAGS, etc.
So let's just bypass the shell entirely by constructing a list. As
a side-effect, this is another step towards being able to run Cerbero
from a directory with spaces in it.
For now, we'll convert `config_sh` to a list when not using an
Autotools configure. Luckily, we don't need to pass any paths as
arguments to it anyway. When running other stages, we now always use
a list instead of a string. Hopefully the fallout is small and obvious
for people using forks of Cerbero.
|
|
Removed the same in recipes because it's not needed there.
|
|
Had to disable asm on x86_64 because of:
```
Undefined symbols for architecture x86_64:
"_aesni_cbc_encrypt", referenced from:
_aesni_init_key in libcrypto.a(e_aes.o)
_aesni_cbc_cipher in libcrypto.a(e_aes.o)
"_aesni_ccm64_decrypt_blocks", referenced from:
...
```
|
|
Several CVEs were fixed since
|
|
After https://gitlab.freedesktop.org/gstreamer/cerbero/merge_requests/195
we changed the way we run commands in general, which broke shell
expansion assumptions in these recipes.
Closes https://gitlab.freedesktop.org/gstreamer/cerbero/issues/168
|
|
|
|
Env must be set *before* we modify it (so in prepare()), and we need
to pass the env to check_perl_version() since we no longer set
os.environ.
Also, use async_call for calling configure to enable parallelization
on Universal builds.
|
|
This way we can run multiple of them at the same time.
Initial patch by Nirbheek Chauhan
|
|
Instead of using the global os.environ for everything. Allows
parellalising steps with different environments.
|
|
Licensing was incorrect, incomplete, and at best, ambiguous. Some
recipes were picking one license when there were many, others were
listing all the licenses and you had to pick one.
On the other hand, many projects are licensed under multiple BSD-like
licenses, and you must adhere to the terms of all of them, and there
was no way to know how from the binary packages.
Now we have an extended syntax for declaring the licensing properties
of a recipe. The licenses array can now also contain dictionaries with
License enums as keys and relative paths to files in the source tree
as values. All files specified in this way will be copied into
`share/licenses/$recipe_name`.
Common license texts which are copied verbatim by projects without
adding any specific author/copyright information have been copied into
`data/licenses/` and will be copied into `share/licenses/$recipe_name`
when a license is specified without a corresponding source tree file.
`share/licenses/$recipe_name/README-LICENSE-INFO.txt` contains
a disclaimer that this is not legal advice, and uses (AND) and (OR)
operators to declare the combinations of licenses you can pick when
adhering to the license requirements of a project.
`share/licenses/$recipe_name` is, of course, now also copied into the
devel binary packages.
I have made a best-effort to check and update the licenses in each
recipe, but I have probably missed things. Reviews and updates are
welcome. I also did not bother updating the toolchain recipe licenses
too carefully since we do not ship them with our binary packages;
except mingw-runtime.recipe (which does have an updated license).
|
|
We already do some things in post_install, but we currently only do
this for gstreamer recipes, but that's overall a bit flaky. This will
allow us to do more things in post_install and make things consistent.
|
|
freetype: You have to pick between FTL and GPLv2
frei0r-plugins: It's GPLv2+, not LGPL
openssl: Obviously, OpenSSL not BSD
harfbuzz: Actually BSD, not LGPLv2+
lame: transitioned to LGPL2, no longer GPL
nettle/gmp: licensed under all three licenses
osx-framework: No license, just copying of files from other recipes
gst-shell, vsintegration, etc: Match with gstreamer's license
toolchain: All LGPLv2+, GPLv2+, or GPLv3+
other recipes: verified by `diff -uw` on license
Remove most unused license enums, except Proprietary
|
|
Enabling async APIs imply using OS features are are not allowed by
Apple. This should not affect GStreamer as we don't use these new APIs.
https://github.com/openssl/openssl/issues/2545
|
|
Passing a -D to config_sh was somehow overriding all cflags and
causing the build to target Android API 21 instead of 14.
This fixes a CI failure on cross-android-universal with -bad
|
|
Lots of changes in the build system.
|
|
This should cover all recipes; even those that aren't built by default
https://bugzilla.gnome.org/show_bug.cgi?id=797177
|
|
Added Platform.Linux in or to Platform.android, before the check for Architecture.ARMv7.
https://bugzilla.gnome.org/show_bug.cgi?id=796684
|
|
check_call doesn't always inherit the current environment, so it would
run the wrong Perl because our PATH changes were ignored. However, this
only happened in a `package` run where some other recipe was built
beforehand.
Instead, use `which()` now so that we read PATH directly. Also don't use
environment variables to communicate the perl path, we already have that
information in self.config.
|
|
Fix the THUMB-2 linkage and reenable the asm section.
https://bugzilla.gnome.org/show_bug.cgi?id=795244
|
|
https://bugzilla.gnome.org/show_bug.cgi?id=794824
|
|
Linking an android application for armv7 would result in undefined references
with the 1.1.0h update because it seems configure can't seem to detect
the max available arm architecture anymore. Fix by specifying on the
configure command
crypto/evp/e_aes.c:1084: error: undefined reference to 'aes_v8_set_encrypt_key'
crypto/evp/e_aes.c:1044: error: undefined reference to 'aes_v8_set_decrypt_key'
crypto/evp/e_aes.c:1060: error: undefined reference to 'aes_v8_encrypt'
crypto/evp/e_aes.c:1060: error: undefined reference to 'aes_v8_ctr32_encrypt_blocks'
crypto/evp/e_aes.c:1060: error: undefined reference to 'aes_v8_cbc_encrypt'
crypto/evp/e_aes.c:1060: error: undefined reference to 'bsaes_ctr32_encrypt_blocks'
crypto/evp/e_aes.c:1060: error: undefined reference to 'aes_v8_decrypt'
crypto/evp/e_aes.c:1060: error: undefined reference to 'bsaes_cbc_encrypt'
crypto/evp/e_aes.c:1831: error: undefined reference to 'aes_v8_set_decrypt_key'
crypto/evp/e_aes.c:1840: error: undefined reference to 'aes_v8_set_encrypt_key'
crypto/evp/e_aes.c:1823: error: undefined reference to 'aes_v8_set_encrypt_key'
crypto/evp/e_aes.c:1851: error: undefined reference to 'aes_v8_decrypt'
crypto/evp/e_aes.c:1851: error: undefined reference to 'aes_v8_encrypt'
crypto/evp/e_aes.c:1851: error: undefined reference to 'bsaes_xts_encrypt'
crypto/evp/e_aes.c:1851: error: undefined reference to 'bsaes_xts_decrypt'
crypto/evp/e_aes.c:1446: error: undefined reference to 'aes_v8_set_encrypt_key'
crypto/evp/e_aes.c:1504: error: undefined reference to 'bsaes_ctr32_encrypt_blocks'
crypto/evp/e_aes.c:1504: error: undefined reference to 'aes_v8_encrypt'
crypto/evp/e_aes.c:1504: error: undefined reference to 'aes_v8_ctr32_encrypt_blocks'
crypto/evp/e_aes.c:2068: error: undefined reference to 'aes_v8_encrypt'
crypto/evp/e_aes.c:2480: error: undefined reference to 'aes_v8_set_decrypt_key'
crypto/evp/e_aes.c:2525: error: undefined reference to 'aes_v8_decrypt'
crypto/modes/gcm128.c:790: error: undefined reference to 'gcm_init_neon'
crypto/modes/gcm128.c:785: error: undefined reference to 'gcm_gmult_neon'
crypto/modes/gcm128.c:785: error: undefined reference to 'gcm_ghash_neon'
crypto/armcap.c:53: error: undefined reference to '_armv7_tick'
crypto/armcap.c:167: error: undefined reference to '_armv7_neon_probe'
crypto/armcap.c:181: error: undefined reference to '_armv8_sha256_probe'
crypto/armcap.c:186: error: undefined reference to '_armv7_tick'
crypto/armcap.c:177: error: undefined reference to '_armv8_sha1_probe'
crypto/armcap.c:170: error: undefined reference to '_armv8_pmull_probe'
crypto/armcap.c:173: error: undefined reference to '_armv8_aes_probe'
|
|
This reverts commit 98f9447fda18433b96f4bdec9fa5f8c6a187df1d.
|
|
Fails to link with Android NDK's r16 binutils
NDK bug report: https://github.com/android-ndk/ndk/issues/337
|
|
Version 1.1.0g seems to result in linking failures on Android:
crypto/evp/e_aes.c:1084: error: undefined reference to 'aes_v8_set_encrypt_key'
crypto/evp/e_aes.c:1060: error: undefined reference to 'bsaes_cbc_encrypt'
crypto/modes/gcm128.c:790: error: undefined reference to 'gcm_init_neon'
crypto/modes/gcm128.c:785: error: undefined reference to 'gcm_gmult_neon'
crypto/modes/gcm128.c:785: error: undefined reference to 'gcm_ghash_neon'
crypto/armcap.c:53: error: undefined reference to '_armv7_tick'
crypto/armcap.c:167: error: undefined reference to '_armv7_neon_probe'
crypto/armcap.c:181: error: undefined reference to '_armv8_sha256_probe'
crypto/armcap.c:186: error: undefined reference to '_armv7_tick'
crypto/armcap.c:177: error: undefined reference to '_armv8_sha1_probe'
crypto/armcap.c:170: error: undefined reference to '_armv8_pmull_probe'
crypto/armcap.c:173: error: undefined reference to '_armv8_aes_probe'
(and more in the same vein).
Revert until someone can investigate.
And remove comment about tarballs, redirects have been set up.
|
|
And move uri from ftp to https.
|
|
This should fix build failures like this:
https://ci.gstreamer.net/job/cerbero-ios-universal-7.1/7131/console
|
|
CFLAGS cannot be passed to Configure because it detects -arch x86_64
as a target directive and errors out. We also can't rely on CFLAG
passing it everywhere, so we have to set it with CC.
This also means we don't need the patch that adds support for
detecting -isysroot, etc, since those should always be passed
correctly now.
|
|
These are not used by us, but the system version of Sphinx used by
gst-validate ends up trying to use libssl built by this recipe, and
fails due to undefined symbols:
Could not import extension sphinx.builders.linkcheck (exception:
/usr/lib64/python3.6/lib-dynload/_ssl.cpython-36m-x86_64-linux-gnu.so:
symbol SSLv3_method, version OPENSSL_1_1_0 not defined in file
libssl.so.1.1 with link time reference)
Similar problem with librpmio.so.8, which is used during package
generation on Fedora:
rpmbuild: relocation error: /lib64/librpmio.so.8: symbol EVP_md2,
version OPENSSL_1_1_0 not defined in file libcrypto.so.1.1 with link
time reference
It's harmless to enable these and we're effectively matching distro
build settings for openssl, so should not be an issue.
|
|
This commit also installs a new Perl in its own prefix in bootstrap.
OpenSSL needs Perl 5.10.0, and removing that dependency is too much
work. Unfortunately, we cannot use Strawberry Perl because that
operates on back-slashes instead of unix-style forward-slashes so
OpenSSL's Configure rejects it.
We also can't use this MinGW-Perl as a replacement for MSYS's Perl
because it can't find any MSYS tools (like m4), which causes perl
scripts like autom4te which call `system m4` to fail.
As a result, this Perl is *only* used by openssl.recipe and only when
building natively on Windows.
|
|
|
|
|
|
Yes, it really has pkg-config files.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|