summaryrefslogtreecommitdiff
path: root/recipes/build-tools
AgeCommit message (Collapse)AuthorFilesLines
2019-03-21ninja.recipe: Use shell.new_call() to output to logfileNirbheek Chauhan1-1/+2
subprocess.call() outputs to stdout, and that doesn't get redirected to the log file, which is unnecessarily verbose.
2019-03-21meson.recipe: Use shell.new_call() to output to logfileNirbheek Chauhan1-4/+2
subprocess.check_call() outputs to stdout, and that doesn't get redirected to the log file, which is unnecessarily verbose.
2019-03-18build: Convert configure to async functionsMatthew Waters3-6/+6
This way we can run multiple of them at the same time. Initial patch by Nirbheek Chauhan
2019-03-18cerbero: store the envirnoment on the recipeMatthew Waters3-3/+3
Instead of using the global os.environ for everything. Allows parellalising steps with different environments.
2019-03-16glib-tools.recipe: Fix build on Windows with MinGWNirbheek Chauhan2-0/+33
2019-03-14orc: Add .git to URI, otherwise we get 404Olivier Crête1-1/+1
2019-02-08Bump meson to 0.49.2 and ninja to 1.9.0Nirbheek Chauhan5-98/+4
2019-02-07meson.recipe: Fix Qt5 detection for iOSNirbheek Chauhan5-1/+249
2019-02-04Extend licensing scheme, install & package licensesNirbheek Chauhan3-3/+3
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).
2019-02-04recipes: Ensure that post_install is always chained upNirbheek Chauhan2-0/+2
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.
2019-02-04licenses: Fix a couple of licenses and remove unused enumsNirbheek Chauhan13-13/+13
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
2019-01-24meson: fix deleting non-empty directoryunknown1-1/+2
On Windows builds meson recipe fails trying to delete /scripts folder, because it is not empty.
2019-01-21meson.recipe: Move meson.exe from Scripts to binNirbheek Chauhan1-1/+6
`Scripts/` is not in PATH inside the cerbero shell, and it's also an unexpected place for it, so just move it to `bin/` after install.
2019-01-19ninja.recipe: Don't assume python 3 is always `python3`Nirbheek Chauhan1-1/+1
Instead, use `self.config.python_exe` which will always be a usable Python 3 for running build commands.
2019-01-14Auto-detect and disable gtk-doc and example optionsNirbheek Chauhan2-3/+2
Instead of doing it per-recipe, auto-detect `gtk_doc` and `examples` options for Meson recipes and always pass `--disable-gtk-doc` for Autotools recipes.
2019-01-14Remove gettext.recipe, nothing uses it nowNirbheek Chauhan6-6/+223
2018-12-14meson.recipe: Fix regression that caused iOS failureNirbheek Chauhan2-0/+34
Log from Jenkins CI: Cross dependency corefoundation found: NO (tried pkgconfig and framework) sys/applemedia/meson.build:27:0: ERROR: Dependency "CoreFoundation" not found, tried pkgconfig and framework
2018-12-13meson.recipe: Bump to 0.49.0Nirbheek Chauhan3-171/+2
This is needed for bzip2.recipe
2018-12-08ninja: Don't rely on the shebangNicolas Dufresne1-1/+1
The configure script supports python3, but the shebang points to python. This increase the amount of system setup required, so simply inforce using python3.
2018-12-06meson.recipe: Backport patch that fixes windres detectionNirbheek Chauhan3-0/+169
The old code was looking for 'rc' in the full path to the `windres` cross-info binary path, which is obviously wrong because it will match for instance, /path/to/sources/foo/bar/*-windres since `sources` has `rc` in it. Closes #93
2018-11-14orc.recipe: Port to mesonNirbheek Chauhan1-3/+5
Do the same for the build-tools recipe too. Starting with the next release, we can start using the tarball. Need master for the latest meson build file fixes.
2018-11-12build-tools: remove xz from bootstrap on darwinMatthew Waters1-22/+0
It's uneeded now that cerbero/python unpacks tarballs for us. It also conveniently solves a chicken and egg problem with an updated libtool.
2018-11-12libtool: add support for the -gcc-toolchain argument for android r18Matthew Waters2-1/+27
2018-11-10recipes: anongit.freedesktop.org -> gitlab.freedesktop.orgTim-Philipp Müller1-1/+1
2018-10-29cerbero: Move m4 files and gtk-doc-lite to build-toolsNirbheek Chauhan2-1/+44
These were getting pulled by recipes directly, which is incorrect and unnecessary. Just add them to build tools instead.
2018-10-28meson.recipe: Update to 0.48.1Nirbheek Chauhan4-464/+2
2018-10-24Implement source url templating for recipesNirbheek Chauhan13-34/+19
GNOME, GNU, Savannah, Xiph, and SourceForge source URLs now use templates. More templates can be added in the future. Currently, they can be one of the following forms: scheme:// This will download a file called %(name)s-%(version)s.tar.xz from the canonical place on the specified server. `scheme` can be: gnome, sf, gnu, savannah. scheme://.tar.gz For using the template but with the specified file extension instead of .tar.xz scheme://some/path/to/name-version.tar.xz For using the template only for the mirror domain and common sources path. https://bugzilla.gnome.org/show_bug.cgi?id=797330
2018-10-16bootstrap: always build glib-tools when targetting non-linuxMatthew Waters1-1/+1
Fixes out of date glib tools throwing errors. /usr/bin/glib-genmarshal --prefix _gdk_pixbuf_marshal --output gdk-pixbuf/gdk-pixbuf-marshal.h --pragma-once --header ../gdk-pixbuf/gdk-pixbuf-marshal.list FAILED: gdk-pixbuf/gdk-pixbuf-marshal.h /usr/bin/glib-genmarshal --prefix _gdk_pixbuf_marshal --output gdk-pixbuf/gdk-pixbuf-marshal.h --pragma-once --header ../gdk-pixbuf/gdk-pixbuf-marshal.list (process:12337): GLib-Genmarshal-WARNING **: failed to open "--output": No such file or directory (process:12337): GLib-Genmarshal-WARNING **: failed to open "gdk-pixbuf/gdk-pixbuf-marshal.h": No such file or directory (process:12337): GLib-Genmarshal-WARNING **: failed to open "--pragma-once": No such file or directory ...
2018-10-02recipes: Use download.gnome.org instead of ftp.gnome.orgNirbheek Chauhan2-2/+2
For consistency with other recipes. Also, apparently some overparanoid firewalls block domains with 'ftp' in them thinking they're ftp URLs.
2018-09-20meson.recipe: Fix checksum stored in recipeNirbheek Chauhan1-1/+1
I accidentally put the same checksum for meson and ninja recipes.
2018-09-19recipes: Add tarball checksums for all recipesNirbheek Chauhan21-5/+26
This should cover all recipes; even those that aren't built by default https://bugzilla.gnome.org/show_bug.cgi?id=797177
2018-08-30build-tools/m4: fix compilation with glibc 2.28Matthew Waters2-1/+146
https://bugzilla.redhat.com/show_bug.cgi?id=1573342
2018-08-30meson.recipe: Fix typo in patch that broke buildsNirbheek Chauhan1-3/+3
2018-08-30meson.recipe: Support for setting macOS dylib versionsNirbheek Chauhan2-0/+235
2018-08-29meson.recipe: Update to 0.47.2Nirbheek Chauhan4-41/+23
2018-08-17meson.recipe: Fix accidental push of old patchNirbheek Chauhan1-2/+2
Bad cherry-pick after an incorrect rebase.
2018-08-17meson.recipe: Fix gnome.generate_gir on macOSNirbheek Chauhan2-0/+153
Upstream PR: https://github.com/mesonbuild/meson/pull/4024
2018-08-17glib: Some macOS build fixesMatthew Waters1-8/+1
Fixes macOS detection and building, and allow glimagesink to create an output window with gst-launch-1.0 Also remove unneeded patches from glib-tools, since that recipe is only used for glib-mkenums, gdbus-codegen, etc. Signed-off-by: Nirbheek Chauhan <nirbheek@centricular.com>
2018-08-10build-tools/glib-tools: use binary mode for gengiotypefuncs.pyMatthew Waters1-0/+1
Allows cerbero bootstrap over ssh
2018-08-07meson.recipe: Fix glib static libs and pkg-config filesNirbheek Chauhan2-1/+183
The glib static libraries now have the correct contents, and the pkg-config files have the correct Libs.private lines.
2018-08-07gettext-tools.recipe: Needs automake-1.15 on WindowsNirbheek Chauhan2-2/+2
Also move gettext-tools earlier in the list of build tools so it's available ASAP.
2018-08-07meson: Update to 0.47.1 and fix import library installationNirbheek Chauhan2-1/+74
Fixes glib-networking build on Windows with MSVC.
2018-07-22gettext-tools.recipe: fix linker error during compilationMarcos Kintschner1-1/+2
This upstream patch fixes the linker error: 'Cannot export rpl_printf: symbol not found' while targeting 32-bit on Windows 10. https://bugzilla.gnome.org/show_bug.cgi?id=796825
2018-07-22recipes: Move all recipes to HTTPSNirbheek Chauhan16-17/+17
Also add a check in Cerbero to ensure that no insecure URLs are used.
2018-07-21cerbero: Rework environment modification in recipesNirbheek Chauhan8-10/+10
Environment variable modification in a recipe used to be done with: self.append_env, self.prepend_env, or self.new_env All of these were dictionaries of {string:string} mappings, which means that if a recipe wanted to, say, append to `CFLAGS` from multiple places within the recipe (f.ex., `glib.recipe`), you had to carefully juggle `=` and `+=` in recipes, which was error-prone (f.ex., `gstreamer-1.0.recipe` `variants.nodebug` was broken). Now that we also conditionally use `self.append_env['CFLAGS']` in `cerbero/build/build.py` for bitcode support with make-based build systems, it's impossible to get this right in recipes. This was causing the cross-ios-universal builds to fail on recipes that directly set `self.append_env['CFLAGS'] = 'foo'` such as pixman. The dictionaries have now been replaced with the following functions: self.append_env(varname, value1, value2, ..., sep=separator) self.prepend_env(varname, value1, value2, ..., sep=separator) self.set_env(varname, value1, value2, ..., sep=separator) The separator is used to join value1, value2, etc and also while appending/prepending to the value in the env. It is optional, and defaults to ` ` (space). Most often the usage is very simple to translate: self.append_env['CFLAGS'] = ' -funroll-loops ' => self.append_env('CFLAGS', '-funroll-loops') If values are omitted with `self.set_env()`, the variable is unset: self.new_env['MAKEFLAGS'] = None => self.set_env('MAKEFLAGS') An important intended feature is that multiple calls to these functions all take effect sequentially at build time for each build step. So, you can call append and prepend multiple times on the same variable, and the values will be appended and prepended in that order to the value at build time. Note that if you call `self.set_env()` on a variable, the variable will, of course, be set to that value and previous append/prepend declarations will be overriden. Reviewed-by: Jan Schmidt <jan@centricular.com>
2018-07-05meson.recipe: Bump to 0.47.0Nirbheek Chauhan8-1538/+1
Fixes several bugs, including a traceback with Python 3.7
2018-06-30meson.recipe: Fix command arrays in cross file binariesNirbheek Chauhan3-149/+290
Already upstream at https://github.com/mesonbuild/meson/pull/3808 Also remove an unused patch that was accidentally committed.
2018-06-28gettext-tools.recipe: Don't use built msgmerge on WindowsNirbheek Chauhan1-0/+17
It hangs randomly during configure, and makes unattended builds annoying. This is the workaround that people have been doing manually for years on Windows. Eventually, we will get rid of this entirely once we move to Meson.
2018-06-20gst recipes: Don't set -Wno-error in the recipeNirbheek Chauhan1-6/+1
Use --disable-fatal-warnings instead. Also, always disable gtk-doc. No one cares about it in Cerbero.
2018-06-08meson.recipe: Add patches to fix build on macOSNirbheek Chauhan7-4/+1153
Upstream PR: https://github.com/mesonbuild/meson/pull/3691 With this, darwin_x86_64 builds successfully for me.