aboutsummaryrefslogtreecommitdiffstats
path: root/classes/mono.bbclass
AgeCommit message (Collapse)Author
2024-01-09mono: add BBCLASSEXTEND=native to mono-6.xx.inc (#149)Marc Ferland
* mono-base: append dependencies instead of using the hard assignment op * Remove extra space Not needed when using the += operator. Signed-off-by: Marc Ferland <ferlandm@amotus.ca> * Fix build on aarch64 builds When building for aarch64 targets, I get build failures like: ERROR: msbuild-native-16.6-r0 do_prepare_recipe_sysroot: Manifest /workdir/build/tmp/sstate-control/manifest-x86_64_x86_64-nativesdk-mono.populate_sysroot not found in imx8mn_ddr4_evk cortexa53 armv8a-crc armv8a aarch64 allarch x86_64_x86_64-nativesdk (variant '')? The problem comes from the fact that some include files (i.e.: mono-6.xx.inc) are used in both the mono and mono-native variants. This seems to confuse the native class in some way. Ideally we would have a single mono recipe declaring BBCLASSEXTEND = "native" and we'd let bitbake generate the recipe variant. See: https://docs.yoctoproject.org/ref-manual/variables.html?highlight=bbclassextend#term-BBCLASSEXTEND Signed-off-by: Marc Ferland <ferlandm@amotus.ca> * Fix build error of CI-Build: Error: Problem 1: conflicting requests - nothing provides mono-gac needed by mono-6.12.0.161-r0.core2_64 - nothing provides mono-libs-4.5 needed by mono-6.12.0.161-r0.core2_64 Problem 2: package msbuild-16.6-r0.core2_64 requires mono, but none of the providers can be installed - conflicting requests - nothing provides mono-gac needed by mono-6.12.0.161-r0.core2_64 - nothing provides mono-libs-4.5 needed by mono-6.12.0.161-r0.core2_64 Problem 3: package mono-helloworld-1.2-r0.core2_64 requires mono, but none of the providers can be installed - conflicting requests - nothing provides mono-gac needed by mono-6.12.0.161-r0.core2_64 - nothing provides mono-libs-4.5 needed by mono-6.12.0.161-r0.core2_64 (try to add '--skip-broken' to skip uninstallable packages) Signed-off-by: Marc Ferland <ferlandm@amotus.ca> Co-authored-by: Georg Gebauer <georg.gebauer@zeiss.com>
2021-09-07classes/mono.bbclass: Fix ignored RDEPENDS:${PN} += "..." (#92)Zoltán Böszörményi
If a recipe uses "inherit mono" and later writes RDEPENDS:${PN} = "..." then RDEPENDS:${PN} += "..." in mono.bbclass will not take effect. It's documented somewhere in the Yocto manual. Use the override :append syntax for other variables, too, not just RDEPENDS. Signed-off-by: Zoltán Böszörményi <zboszor@gmail.com>
2021-08-24Add honister compatibility (#90)Zoltán Böszörményi
* Remove compatibility for sumo, thud, warrior and zeus The next change (introduced by honister and backported back only to dunfell) requires it. Signed-off-by: Zoltán Böszörményi <zboszor@gmail.com> * Use ":" override syntax instead of "_" Scripted change with oe-core/scripts/contrib/convert-overrides.py The proposal for this was at https://www.mail-archive.com/openembedded-architecture@lists.openembedded.org/msg00500.html The necessary changes to bitbake to accept ":" along with "_" were backported to bitbake 1.46 (Yocto 3.1 Dunfell), 1.48 (3.2 Gatesgarth) and 1.50 (3.3 Hardknott). Yocto 3.4 Honister will only accept ":" Signed-off-by: Zoltán Böszörményi <zboszor@gmail.com> * Add honister compatibility Signed-off-by: Zoltán Böszörményi <zboszor@gmail.com>
2021-01-22Run cert-sync before configure task in mono.bbclassNicolas Jeker
To let NuGet restore (or msbuild restore) successfully run through, the mono certificate store needs to be initialized. Currently, this is only possible by contaminating the build host. To be more precise, the directory '~/.config/.mono/certs' will be initialized on the build host. Currently, there is no way to override the certificate store location except for patching the mono source code, see issue mono/mono#6388.
2019-12-02classes/mono.bbclass: Don't override HOMEBöszörményi Zoltán
Set NUGET_PACKAGES and NUGET_HTTP_CACHE_PATH instead of HOME. Overriding the HOME environment variable clashes with RPM signing. Signed-off-by: Böszörményi Zoltán <zboszor@pr.hu>
2018-01-24mono.bbclass: Contain extra packages downloaded by NuGetZoltán Böszörményi
Packages using NuGet to download further pre-built dependencies pollute the user's $HOME. Some build environments use designated partitions outside /home and /home or / has limited amount of disk space. NuGet may cause disk full errors. It is also generally discouraged for cross-compiled packages to reach outside the package $WORKDIR in Yocto. Signed-off-by: Zoltán Böszörményi <zboszor@pr.hu>
2015-07-17mono.bbclass: set MONO_CFG_DIRRichard Tollerton
Several mono package builds were observed to fail while cross-compiling to arm in ways that, upon stracing, boiled down to not being able to load the mono config file because mono was looking for it in ${STAGING_DIR_NATIVE}/usr/etc instead of ${STAGING_DIR_NATIVE}/etc (which is where it was being installed). mono/mono/metadata/assembly.c:set_dirs() appears to be responsible for guessing /usr/etc, by essentially computing $(dirname $0)/../etc. There's a separate codepath that instead chooses $sysconfdir (cf assembly.c:fallback(), mono-config-dirs.c:mono_config_get_cfg_dir(), and the Makefile). Presumably that's what's usually used for native mono builds, but for presently unknown reasons, it's not getting used here. The workaround implemented here is to force setting MONO_CFG_DIR for all builds to the correct location of /etc in the native sysroot. (I had earlier worked around this by changing the mono-native build to install to /usr/etc instead of /etc, but that's more complicated to manage in the recipes, and violates the configuration symmetry between architectures.) Signed-off-by: Richard Tollerton <rich.tollerton@ni.com> Signed-off-by: Alex J Lennon <ajlennon@dynamicdevices.co.uk>
2015-07-17mono.bbclass: addRichard Tollerton
The DEPENDS_*, RDEPENDS_*, and FILES_* settings between C# packages share a lot in common. We can refactor these bits into their own bbclass: - DEPEND on mono-native because we need it to compile stuff - DEPEND on mono to have the native sysroot available - RDEPEND on mono to make sure we can run the package - ${PN} contains dlls, exes, and config bits thereof - ${PN}-dbg contains mono debug (mdb) files - ${PN}-dev contains: - build response (rsp) files - machine-readable assembly documentation (xml) - xbuild-related files - ${PN}-doc contains monodoc output Some C# packages build native code, though, so don't set PACKAGE_ARCH="all". Signed-off-by: Richard Tollerton <rich.tollerton@ni.com> Signed-off-by: Alex J Lennon <ajlennon@dynamicdevices.co.uk>