summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFiles
2016-10-11classes/externalsrc: re-run do_configure when configure files changePaul Eggleton3
If the user modifies files such as CMakeLists.txt in the case of cmake, we want do_configure to re-run so that those changes can take effect. In order to accomplish that, have a variable CONFIGURE_FILES which specifies a list of files that will be put into do_configure's checksum (either full paths, or just filenames which will be searched for in the entire source tree). CONFIGURE_FILES then just needs to be set appropriately depending on what do_configure is doing; for now I've set this for autotools and cmake which are the most common cases. Fixes [YOCTO #7617]. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-10-11sdk-installer: Fix unclear SDK installer messageTodor Minchev1
When the host and the SDK architectures are incompatible the SDK installer outputs an incomplete error message "Error: Installation machine not supported!". This commit adds a more verbose error message e.g "Error: Incompatible SDK installer! Your host is i686 and this SDK was built for x86_64 hosts." Signed-off-by: Todor Minchev <todor.minchev@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-10-11sysklogd and busybox: ignore return code from init script stopMarkus Lehtonen2
The init script will return '1' if we try to stop the service and it is not currently running. The prerm scriptlet must not fail because of this because it will cause package deinstallation of upgrade fail if opkg package manager is used. [YOCTO #10299] Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-10-11update-rc.d.bbclass: ignore init script return codeMarkus Lehtonen1
We need to ignore the return code from the init script 'stop' command in the preinst and prerm scriptlets. Otherwise package upgrade or deinstallation (at least when opkg is used) is likely to fail if the daemon is not running. That is because an init script possibly returns '1' if you try to stop a service that is not running which, in turn, causes the scriptlet to fail which, in turn, causes the package (de-)installation to fail. [YOCTO #10299] Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-10-11insane: display names instead of ELF machine numbersRoss Burton1
The 'arch' QA test currently simply outputs the ELF machine field as a number which isn't helpful. Display this as a human-readable name to make it clearer to the user what the problem is. Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-10-11lib/oe/qa: add ELF machine to string functionRoss Burton2
Add a function (and test suite) to turn the ELF machine field (e_machine) into a string, so we can tell the user "x86-64" instead of 0x3E. Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-10-11build-appliance-image: Update to master head revisionRichard Purdie1
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-10-11vte: Build without vala by defaultJussi Kukkonen2
vala.bbclass DEPENDS on vala and vala-native: Drop the inherit so that these dependencies can be added on-demand based on vte PACKAGECONFIG. Add relevant items from vala class into the recipe. Add copy of vapigen.m4 so building without vala actually succeeds. Make building without vala the default PACKAGECONFIG. Fixes [YOCTO #10386]. Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-10-11build-appliance-image: Update to master head revisionRichard Purdie1
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-10-11archiver: fix gcc-source handlingSaul Wold1
The source archiver was not handling the gcc-source target correctly, since it uses the work-shared directory, we don't want to unpack and patch it twice, just as the comments say, but the code was not there to check for the gcc-source target. [YOCTO #10265] Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-10-11net-tools: fix building with linux-4.8Jackie Huang2
Fix a build error when using the linux-4.8 headers that results in: In file included from .../sysroots/qemuarm64/usr/include/linux/if_tunnel.h:6:0, from iptunnel.c:39: .../qemuarm64/usr/include/linux/ip.h:85:8: error: redefinition of 'struct iphdr' struct iphdr { ^~~~~ In file included from iptunnel.c:29:0: .../qemuarm64/usr/include/netinet/ip.h:44:8: note: originally defined here struct iphdr ^~~~~ Signed-off-by: Randy MacLeod <Randy.MacLeod@windriver.com> Signed-off-by: Jackie Huang <jackie.huang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-10-11Revert "linux-libc-headers: if_tunnel: remove include of if/ip/in6.h"Jackie Huang2
The issue is fixed in net-tools. This reverts commit fb71f34d7379569c23cc00e18d134093147613f5. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-10-11canned-wks: use GPT partition tableEd Bartosh3
According to UEFI specification all EFI platforms must support GUID Partition Table(GPT) disk layout. Here is a list of advantages of using GPT disk layout over the legacy MBR partitioning: - Logical Block Addresses (LBAs) are 64 bits (rather than 32 bits). - Supports many partitions (rather than just four primary partitions). - Provides both a primary and backup partition table for redundancy. - Uses version number and size fields for future expansion. - Uses CRC32 fields for improved data integrity. - Defines a GUID for uniquely identifying each partition. - Uses a GUID and attributes to define partition content type. - Each partition contains a 36 character human readable name. Used GPT partitioning in all EFI kickstart files. Tested result images on NUC, MinnowBoard MAX and MinnowBoard Turbot. Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-10-11systemd-bootdisk.wks: update kernel command lineEd Bartosh1
Used ttyS0 console. Removed usage of ttyPCH0 (FRI2 leftover) Decreased bootloader timeout to 5 seconds Removed 'vmalloc=256MB snd-hda-intel.enable_msi=0' as it's not needed for any of reference BSPs. Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-10-11flex: Backport buffer overflow fixJussi Kukkonen2
Fix a heap-based buffer overflow in yy_get_next_buffer() (CVE-2016-6354). Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-10-11flex: Update upstream check uriJussi Kukkonen1
Flex has moved to github, update UPSTREAM_CHECK_URI. Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-10-11gnutls: Backport certificate check fixJussi Kukkonen2
Previously the OCSP certificate check wouldn't verify the serial length and could succeed in cases it shouldn't (CVE-2016-7444). Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-10-09testimage: disable build tests for qemumips and qemumips64Joshua Lock1
It's not uncommon for qemumips[64] builds on the Yocto Project autobuilder to fail during Sanity Tests after a very long timeout period. This is due to the MIPS emulation in QEMU being slow and some of the build tests taking a very long time on MIPS machines. This patch works around this slowness by disabling the more complex build tests for QEMU MIPS machines. [YOCTO #10340] Signed-off-by: Joshua Lock <joshua.g.lock@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-10-09mkgummidisk.wks: update kernel command lineEd Bartosh1
Used ttyS0 console. Removed usage of ttyPCH0 (FRI2 leftover) Decreased bootloader timeout to 5 seconds Removed 'vmalloc=256MB snd-hda-intel.enable_msi=0' as it's not needed for any of reference BSPs. Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-10-08mklibs-native: update broken SRC_URIArmin Kuster1
fixes checkuri AB failure. V2] change to snaphot instead of ubuntu ERROR: mklibs-native-0.1.41-r0 do_checkuri: Fetcher failure for URL: 'http://ftp.de.debian.org/debian/pool/main/m/mklibs/mklibs_0.1.41.tar.xz'. URL http://ftp.de.debian.org/debian/pool/main/m/mklibs/mklibs_0.1.41.tar.xz doesn't work ERROR: mklibs-native-0.1.41-r0 do_checkuri: Function failed: do_checkuri [ Yocto #10391] Signed-off-by: Armin Kuster <akuster@mvista.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-10-08gcc-runtime.inc: Add CPP support for x86-64-x32 tuneJuro Bystricky1
Using the following setup (as specified in yocto sample code): MACHINE = "qemux86-64" require conf/multilib.conf MULTILIBS = "multilib:libx32" DEFAULTTUNE_virtclass-multilib-libx32 = "x86-64-x32" We fail to compile simple CPP programs because CPP cannot find relevant header files, looking for them in a non-existing place. To fix this, we create a symlink of the name CPP expects and point it to the corresponding existing directory. [YOCTO#10354] [YOCTO#10380] Signed-off-by: Juro Bystricky <juro.bystricky@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-10-08libgcc-common.inc: Fix broken symlinks for multilib SDKJuro Bystricky1
This patch fixes broken "32" symlinks for multilib settings: MACHINE = "qemuarm64" require conf/multilib.conf MULTILIBS = "multilib:lib32" DEFAULTTUNE_virtclass-multilib-lib32 = "armv7a" and MACHINE = "qemux86-64" require conf/multilib.conf MULTILIBS = "multilib:libx32" DEFAULTTUNE_virtclass-multilib-libx32 = "x86-64-x32" [YOCTO#8642] [YOCTO#10380] Signed-off-by: Juro Bystricky <juro.bystricky@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-10-08linux-yocto/4.8: Enable R8169 driver since its needed by supported platformsBruce Ashfield3
The Realtek 8169 driver is needed by the Minnowboard MAX, one of the boards we currently support, since some of our images do not contain modules by default, the network isnt working on genericx86, genericx86-64 and intel-core2-32 (meta-intel) when no modules are installed. This patch fixes network on images not containing modules when using the previously mentioned MACHINES for this board. Signed-off-by: Alejandro Hernandez <alejandro.hernandez@linux.intel.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-10-07update-rc.d.bbclass: check that init script is executable before running itMarkus Lehtonen1
Check that the init script that is going to be called in the prerm() script really exists and is executable. There might be a packaging bug or the script might've been removed already earlier in prerm(). [YOCTO #10299] Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-10-07classes/populate_sdk_ext: add symlinks and unfsd to support Eclipse pluginPaul Eggleton2
The Yocto Project Eclipse plugin requires that runqemu and unfsd are accessible within the SDK, and indeed the standard SDK has these. This turns out to be fairly easy to do - we just need to add unfsd and symlink it, runqemu and a few other scripts into the SDK's bin directory. Fixes [YOCTO #10214]. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-10-07oeqa/sshcontrol: Handle interrupted system call errorRichard Purdie1
Deal with an interrupted system call gracefully: | File "/home/pokybuild/yocto-autobuilder/yocto-worker/nightly-qa-systemd/build/meta/lib/oeqa/utils/sshcontrol.py", line 55, in _run | if select.select([self.process.stdout], [], [], 5)[0] != []: | InterruptedError: [Errno 4] Interrupted system call Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-10-07u-boot: Add support to use uboot-extlinux-config classFabio Berton1
Use uboot-extlinux-config class to create extlinux.conf file and then install inside /boot/extlinux directory and also put file to deploy dir. This file will be only create if UBOOT_EXTLINUX is set to 1. You can use DEPLOYDIR/extlinux.conf file to install into final image using wic setting: IMAGE_BOOT_FILES_append = " extlinux.conf;extlinux/extlinux.conf" Signed-off-by: Fabio Berton <fabio.berton@ossystems.com.br> Signed-off-by: Otavio Salvador <otavio@ossystems.com.br> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-10-07classes/uboot-extlinux-config: Add classFabio Berton1
This class allow the extlinux.conf generation for U-Boot use. The U-Boot support for it is given to allow the Generic Distribution Configuration specification use by OpenEmbedded-based products. This class can be inherited by u-boot recipes to create extlinux.conf and boot using menu options. U-boot with extlinux support is machine dependent, so to use this class you need to set UBOOT_EXTLINUX to 1 in machine configuration file and also set root= kernel cmdline UBOOT_EXTLINUX_ROOT. This variable is used to pass root kernel cmdline, e.g: UBOOT_EXTLINUX_ROOT = "root=/dev/mmcblk2p2" Signed-off-by: Fabio Berton <fabio.berton@ossystems.com.br> Signed-off-by: Otavio Salvador <otavio@ossystems.com.br> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-10-07wic: selftest: add test for sdimage-bootpartEd Bartosh1
Test creation of sdimage-bootpart image Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-10-07wic: selftest: add test for systemd-bootdiskEd Bartosh1
Test creation of systemd-bootdisk image. Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-10-07security_flags: Diable PIE for mesa-glKhem Raj1
This creeped in along with rest of the changes in c999b3d88dfcffbe0fb66406fb0bff1fb66f34bc even after it was reported a build failure in mesa-gl This is also showing up on arm architecture now | /usr/src/debug/glibc/2.24-r0/git/csu/elf-init.c:87: undefined reference to `__init_array_end' | /usr/src/debug/glibc/2.24-r0/git/csu/elf-init.c:87: undefined reference to `__init_array_start' | /a/builder/mnt/build/tmp-glibc/sysroots/x86_64-linux/usr/libexec/arm-oe-linux-gnueabi/gcc/arm-oe-linux-gnueabi/6.2.0/ld: .libs/mesa_dri_drivers.so: hidden symbol `__init_array_end' isn't defined Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-10-07mkefidisk.wks: update kernel command lineEd Bartosh1
Used ttyS0 console. Removed usage of ttyPCH0 (FRI2 leftover) Decreased bootloader timeout to 5 seconds Removed 'vmalloc=256MB snd-hda-intel.enable_msi=0' as it's not needed for any of reference BSPs. Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-10-07mkefidisk.wks: use MSDOS partition tableEd Bartosh1
Stopped using GPT partition table in mkefidisk.wks as it's not supported by all reference hardware. Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-10-07wic: rewrite MBR disk identifierEd Bartosh2
Disk identifier created by parted doesn't match the one we generated and used in bootloader config. We need to rewrite it to make our image bootable. Modified involved API and data structures to access previously generated disk identifiers after MBR is initialized. Written disk identifiers to MBR. Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-10-07wic: generate PARTUUID for MDOS partitionsEd Bartosh2
Added generation of partition UUIDs for MSDOS partitions. UUID for MSDOS partitions is <disk identifier>-<partition number>, where disk identifier is a random 4 bytes long number. It's usually generated when MBR/partition table is initialized. As UUID is used to point to the root partition in bootloader config we need to generate it before the MBR is initialized. After MBR is created we need to rewrite system identifier to match it with what is used in bootloader config. This will be implemented in the next commit. Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-10-07wic: set PARTUUID only for gpt partition tableEd Bartosh1
sgdisk fails to set PARTUUID for msdos partitions as it's only supported for GPT partitions. Checked partition table format to run sgdisk --partition-guid only for GPT partitions. Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-10-07linuxloader.bbclass: Adjust mips to cover all mips/mips64Mark Hatle1
[YOCTO #10389] Use a glob (*) to match all mips (not previously matched). This will ensure that the linuxloader is properly returned for mips, mipsel, mips64, mips64el and their n32 variants. See: https://sourceware.org/glibc/wiki/ABIList#mips for the official list of loaders. Signed-off-by: Mark Hatle <mark.hatle@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-10-07arch-mips: Add mipsisa{32, 64}r6{el, } tunesZubair Lutfullah Kakakhel4
Add support for MIPS Release 6 ISA and the various tune configurations. This patch adds the tunes for 32r6 and 64r6 n64 and not the n32 variants at the moment. Release 6 onwards, the tuples are now - mipsisa32r6-linux-gnu - mipsisa32r6el-linux-gnu - mipsisa64r6-linux-gnuabi64 - mipsisa64r6el-linux-gnuabi64 - mipsisa64r6-linux-gnuabin32 - mipsisa64r6el-linux-gnuabin32 For more details, check https://wiki.debian.org/Multiarch/Tuples Signed-off-by: Zubair Lutfullah Kakakhel <Zubair.Kakakhel@imgtec.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-10-07gcc-configure: Add mipsisa{32, 64}r6{el, } supportZubair Lutfullah Kakakhel2
Add support for MIPS Release 6 ISA Signed-off-by: Zubair Lutfullah Kakakhel <Zubair.Kakakhel@imgtec.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-10-07glibc: Add mipsisa{32, 64}r6{el, } supportZubair Lutfullah Kakakhel1
Add support for MIPS Release 6 ISA The loader is located at a new place for multiarch. For more details, check https://wiki.debian.org/Multiarch and https://sourceware.org/glibc/wiki/ABIList#mips Signed-off-by: Zubair Lutfullah Kakakhel <Zubair.Kakakhel@imgtec.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-10-07bitbake.conf: Add mipsisa{32, 64}r6{el, } supportZubair Lutfullah Kakakhel1
Add support for MIPS Release 6 ISA Signed-off-by: Zubair Lutfullah Kakakhel <Zubair.Kakakhel@imgtec.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-10-07siteinfo.bbclass: Add mipsisa{32, 64}r6{el, } supportZubair Lutfullah Kakakhel5
Add support for MIPS Release 6 ISA Signed-off-by: Zubair Lutfullah Kakakhel <Zubair.Kakakhel@imgtec.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-10-07linuxloader.bbclass: Add mipsisa{32, 64}r6{el, } supportZubair Lutfullah Kakakhel1
Add support for MIPS Release 6 ISA. The loader is located at a new place for multiarch. For more details, check https://wiki.debian.org/Multiarch and https://sourceware.org/glibc/wiki/ABIList#mips Signed-off-by: Zubair Lutfullah Kakakhel <Zubair.Kakakhel@imgtec.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-10-07libc-package.bbclass: Add mipsisa{32, 64}r6{el, } supportZubair Lutfullah Kakakhel1
Add support for MIPS Release 6 ISA Signed-off-by: Zubair Lutfullah Kakakhel <Zubair.Kakakhel@imgtec.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-10-07kernel-arch.bbclass: Add mipsisa{32, 64}r6{el, } supportZubair Lutfullah Kakakhel1
Add support for MIPS Release 6 ISA Signed-off-by: Zubair Lutfullah Kakakhel <Zubair.Kakakhel@imgtec.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-10-07insane.bbclass: Add mipsisa{32, 64}r6{el, }Zubair Lutfullah Kakakhel1
Add support for MIPS release 6 of the ISA Signed-off-by: Zubair Lutfullah Kakakhel <Zubair.Kakakhel@imgtec.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-10-07pseudo: backport a patch to fix renameat()Joshua Lock2
renameat calls under pseudo were losing extended attributes. Backport the fix for this from pseudo upstream. [YOCTO '10349] Signed-off-by: Joshua Lock <joshua.g.lock@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-10-07xmlto: Add libxslt to native DEPENDSSaul Wold1
xmlto requires xsltproc to work correctly, it was being included for the target, but may have been finding host contamination. [YOCTO #10366] Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-10-07utils.bbclass: add function to check for git config userStephano Cetola3
If attempting to patch a git repo without a proper git config setup, an error will occur saying user.name/user.email are needed by git am/apply. After some code was removed from kernel-yocto, it was simple enough to reproduce this error by creating a kernel patch and using a container to build. This patch abstracts out functionality that existed in buildhistory for use in other classes. It also adds a call to this functionality to the kernel-yocto class. Fixes [YOCTO #10346] introduced in OE-core revision 0f698dfd1c8bbc0d53ae7977e26685a7a3df52a3 Signed-off-by: Stephano Cetola <stephano.cetola@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-10-06scripts: Rename 'native' to 'oe-run-native'Ulf Magnusson1
Makes it a bit more descriptive and potentially more discoverable. Most people seemed to prefer an oe- prefix, so let's go with that. Signed-off-by: Ulf Magnusson <ulfalizer@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>