aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2016-04-07devtool: Create unlocked-sigs.inc containing items in the workspacerewitt/sigsRandy Witt
When a recipe is added to the workspace, the signatures for the tasks will change. This means that bitbake must be told to allow the signatures to be different if they are in locked-sigs.inc. This is done by creating an unlocked-sigs.inc file which contains all the recipes in the workspace each time devtool reads the workspace. So not only will necessary things get added, previously added items will be removed by virtue of them no longer being in the workspace. This also makes sure that the extensible sdk picks up unlocked-sigs.inc as part of the configuration. [YOCTO #9195] Signed-off-by: Randy Witt <randy.e.witt@linux.intel.com>
2016-04-07sstatesig.py: Add a method to "unlock" recipesRandy Witt
In order to support workflows using devtool where a user might want to modify tasks that exist in locked-sigs.inc, there must be a way to unlock recipes. This patch adds that support by allowing the user to add recipes to SIGGEN_UNLOCKED_RECIPES. Recipes that exist in that variable will have all their tasks unlocked, as well as any tasks that depend on that recipe. For example if foo->bar->baz, if you unlock baz, it will also unlock bar so that foo can be rebuilt without explicitly specifying bar as being unlocked. [YOCTO #9195] Signed-off-by: Randy Witt <randy.e.witt@linux.intel.com>
2016-04-07populate_sdk_ext.bbclass: Enable locked sigs errorsRandy Witt
With the extensible sdk we want there to be an error if a task tries to run without signatures that match locked-sigs.inc. This patch enables that error. [YOCTO #9195] Signed-off-by: Randy Witt <randy.e.witt@linux.intel.com>
2016-04-07sstatesig.py: Improve the SIGGEN_LOCKEDSIGS_TASKSIG_CHECK messageRandy Witt
The previous message when signatures didn't match between the metadata and the locked signatures file, the message output was a bit confusing. Now the message should be of the form: The zlib-native:do_install sig is computed to be 53531910a2a7848432da89def942a91a, but the sig is locked to d25ba9035f7ccb308e51bbe1066e8d27 in SIGGEN_LOCKEDSIGS_t-x86-64 which will hopefully be more useful in understanding the problem. [YOCTO #9195] Signed-off-by: Randy Witt <randy.e.witt@linux.intel.com>
2016-04-07sstatesig.py: Split single locked sigs check into multiple checksRandy Witt
Add the SIGGEN_LOCKEDSIGS_TASKSIG_CHECK and SIGGEN_LOCKEDSIGS_SSTATE_EXISTS_CHECK variables to replace SIGGEN_LOCKEDSIGS_CHECK_LEVEL. SIGGEN_LOCKEDSIGS_TASKSIG_CHECK will no control whether there is a warning or error if a task's hash in the locked signature file doesn't match the computed hash from the current metadata. SIGGEN_LOCKEDSIGS_SSTATE_EXISTS_CHECK will control whther there is a warning or error if a task that supports sstate is in the locked signature file, but no sstate exists for the task. Previously you could only have warning/errors for both controlled by SIGGEN_LOCKEDSIGS_CHECK_LEVEL. This was an issue in the extensible sdk, because we know sstate won't exist for certain items in the reverse dependencies list for tasks. However, we still want to error if task signatures don't match. [YOCTO #9195] Signed-off-by: Randy Witt <randy.e.witt@linux.intel.com>
2016-04-07toasterconf.json: Add DL_DIR and SSTATE_DIR to poky toasterconfSujith H
Add the DL_DIR and SSTATE_DIR to the toasterconf with defaults set We now support per project sharing of the DL_DIR and SSTATE_DIR in toaster. [YOCTO #8422] (From meta-yocto rev: 3ef8917f03a3900585281a50168cffdff4e05d06) Signed-off-by: Sujith H <sujith.h@gmail.com> Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Michael Wood <michael.g.wood@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-04-06build-appliance-image: Update to master head revisionRichard Purdie
(From OE-Core rev: 5ebea1114d54120d5ff5d8a6cd148110d0fda23f) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-04-06poky: Convetion is 2.1, not 2.1.0Richard Purdie
(From meta-yocto rev: 35487c9e30a99c66d7a21483ae510cc0218efcd5) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-04-06build-appliance-image: Update to master head revisionRichard Purdie
(From OE-Core rev: 28e7f572041aa7b641eb83c988bd5421fa6a9b6c) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-04-06poky.conf: Bump version for 2.1.0 krogoth releaseRichard Purdie
(From meta-yocto rev: e1d41fc7971643f137c6df4391ecbbd66e434171) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-04-06bitbake: Update version to 1.30.0Richard Purdie
(Bitbake rev: 292bffc8412cd0ddc0c6d16e872c7801e1a67890) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-04-06build-appliance-image: Update to master head revisionRichard Purdie
(From OE-Core rev: db701beaf4da2c83bf6e9c687901806cf686ad18) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-04-06documentation: Fixed references using the DISTRO_NAME variableScott Rifenbark
With the introduction of a DISTRO_NAME_NO_CAP variable, the occurrences of the DISTRO_NAME variable had to be checked to see if they really should be using the "NO_CAP" variable instead. Output and actual branch names are case-sensitive. (From yocto-docs rev: 711a3255538298dd3c4bd2af8ad13bc2d159c872) Signed-off-by: Scott Rifenbark <srifenbark@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-04-06documentation: Updated release date in manual history tables.Scott Rifenbark
Updated to "April 2016" for all manuals that use this table. (From yocto-docs rev: 4d3753cc92c446668b0c383736c2071e24e53dd2) Signed-off-by: Scott Rifenbark <srifenbark@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-04-06dev-manual, ref-manual, sdk-manual: Removing oprofile references.Scott Rifenbark
Fixes [YOCTO #9264] I handled the occurrences of "oprofile" and "tools-profile" throughout as I could. They are not all done yet. These in this commit have been removed. (From yocto-docs rev: d76e264ea210846ad8080134bacd56462ba69d24) Signed-off-by: Scott Rifenbark <srifenbark@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-04-06Makefile: Removed adt-manual supportScott Rifenbark
(From yocto-docs rev: 84abe03de1cff7952b5d0428e7433f094dde2b02) Signed-off-by: Scott Rifenbark <srifenbark@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-04-06mega-manual: Removed the adt title .PNG file.Scott Rifenbark
(From yocto-docs rev: b98f02b7ded825ef6bde3df0a201f9aaac9ebdfe) Signed-off-by: Scott Rifenbark <srifenbark@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-04-06README: Updated to remove the ADT manual and add the SDK manual.Scott Rifenbark
(From yocto-docs rev: 61474479f84e2f611684db152e7682275f8f19c3) Signed-off-by: Scott Rifenbark <srifenbark@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-04-06mega-manual.sed: Removed adt-manual processingScott Rifenbark
(From yocto-docs rev: 4cbf38bf860ae0c21d87e7b761ad0d0d4b0a70ab) Signed-off-by: Scott Rifenbark <srifenbark@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-04-06yocto-project-qs: Updated the minnowboard example.Scott Rifenbark
Fixes [YOCTO #9386] Added some missing information: * Added instruction to be in the poky directory before cloning the meta-intel repository. * Removed the "source" part of the string for the bitbake-layer command. * Added text to describe that the user needs to be sure that the same branches are in play for poky and meta-intel before they launch the build. (From yocto-docs rev: 65461624691a566a5849c6d9df7b269c3de2eba7) Signed-off-by: Scott Rifenbark <srifenbark@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-04-06poky.ent: Added lower-case distro name variable.Scott Rifenbark
I added a variable named DISTRO_NAME_NO_CAP that can be used to resolve to the branch name as it is needed on command lines and as it appears in output. (From yocto-docs rev: 595d81c31b0dcb442b351b05600da9480a9573b5) Signed-off-by: Scott Rifenbark <srifenbark@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-04-06kernel-dev: Applied review comments to "Adding Recipe-Space Kernel Features"Scott Rifenbark
Fixes [YOCTO #4047] I went through and fixed a few areas where reviewers said there was "quirky" phrasing. They might have been right in a few places. (From yocto-docs rev: 66fb97838f338ed3f787ec18f62702ef726ceffc) Signed-off-by: Scott Rifenbark <srifenbark@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-04-06ref-manual: Updated the PREFERRED_VERSION variable description.Scott Rifenbark
Fixes [YOCTO #8595] Applied some wording changes as part of the review process from Richard Purdie. (From yocto-docs rev: 3c4fc3cbdecb7e3c8287a915b82bc5469288d5db) Signed-off-by: Scott Rifenbark <srifenbark@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-04-06dev-manual: Added new section describing hardware and non-hardware configScott Rifenbark
Fixes [YOCTO #5092] Added a new subsection to the "Configuring the Kernel" section to describe the part of the configuration audit phase that deals with non-hardware and hardware options. (From yocto-docs rev: 2545c3f2cf45ffcc9bf9f388d929c8242b74b011) Signed-off-by: Scott Rifenbark <srifenbark@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-04-06ref-manual: Updated verbiage on proxy handlingScott Rifenbark
Fixes [YOCTO #9313] Update the DL_DIR variable description to add a cross-reference to the wiki page that talks about working behind a firewall. Updated the 14.12 FAQ entry with new information about working behind the firewall. (From yocto-docs rev: 056e6881951023e62a7363ba60fe73cd6d2932b6) Signed-off-by: Scott Rifenbark <srifenbark@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-04-06ref-manual: Updated PREFERRED_VERSION variable descriptionScott Rifenbark
Fixes [YOCTO #8595] Added some examples on how to force the version. (From yocto-docs rev: 4a98ce1ed623cd9763731453316f2ff8d8b8b82a) Signed-off-by: Scott Rifenbark <srifenbark@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-04-06ref-manual: Updated debugging tips and tricksScott Rifenbark
Fixes [YOCTO #9336] I updated the "Debugging" section within the "Tips and Tricks" section. The list of items did not provide detail on two BitBake command-line options you could use to dump out signature data into .sigdata files. Also, the .sigdata files were incorrectly referred to as .siginfo files. (From yocto-docs rev: 7836c386f4f7c011de710b6ec9f6be13045dc559) Signed-off-by: Scott Rifenbark <srifenbark@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-04-06kernel-dev: Added new "Adding Recipe-Space Kernel Features" section.Scott Rifenbark
Fixes [YOCTO #4047] I added a new section describing how to add kernel features from within a kernel recipe through the KERNEL_FEATURES variable and the SRC_URI statement. (From yocto-docs rev: d30925c65e3f49b2ba481f1e7f9cac98fe86f6af) Signed-off-by: Scott Rifenbark <srifenbark@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-04-06kernel-dev: Updated the "Kernel Metadata Location" section.Scott Rifenbark
Fixes [YOCTO #8272] I re-wrote the section to basically consider kernel metadata coming from either inside the recipe (recipe-space) or from outside the recipe, which would be like a "kernel-cache". The re-write eliminated the term "in-tree" regarding where kernel metadata could reside. (From yocto-docs rev: d358c00fbb779328bd472494023ecb802da15d59) Signed-off-by: Scott Rifenbark <srifenbark@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-04-06sdk-manual: Removed three sections of writer notes.Scott Rifenbark
(From yocto-docs rev: f8aad4a55a38d4fe19dc8a83787e933c3fe15255) Signed-off-by: Scott Rifenbark <srifenbark@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-04-06sdk-manual: Applied review edits.Scott Rifenbark
(From yocto-docs rev: a00f0e593965063edc97672cdd70869d5d7ce179) Signed-off-by: Scott Rifenbark <srifenbark@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-04-06sdk-manual: Added sections in Appendix B.Scott Rifenbark
(From yocto-docs rev: 955f08c8d49fabd6022570e4d0a7442f06f6049b) Signed-off-by: Scott Rifenbark <srifenbark@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-04-06dev-manual, profile-manual: Removed oprofile section and linkScott Rifenbark
Fixes [YOCTO #9264] I commented out a large section that had to do with running oprofile. Also, located and removed the link to that section from the profile-manual. (From yocto-docs rev: 63d6e754f994693c9a4d4b8211c6ef5f817c31f7) Signed-off-by: Scott Rifenbark <srifenbark@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-04-06bitbake: bitbake: update LICENSE file with QUnit detailsElliot Smith
QUnit is now included in Toaster's test suite and distributed with its source code. (Bitbake rev: 540c0c8d6aeec5391aa4f76614db6905afabba2c) Signed-off-by: Elliot Smith <elliot.smith@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-04-06bitbake: tests: browser Add test to run the js unit testsMichael Wood
(Bitbake rev: 81ccbf243050a5a9245d2de4c1de342771c09a59) Signed-off-by: Michael Wood <michael.g.wood@intel.com> Signed-off-by: Elliot Smith <elliot.smith@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-04-06bitbake: toaster: views jsunittest Add MACHINE and an extra layer to test ↵Michael Wood
project Add set a MACHINE if needed and add a layer. When we're running in the context of the django unit tests we don't have these defaults setup for the project so add them. (Bitbake rev: a0c1432f32930a17e10d50c08c2aa84a0659514b) Signed-off-by: Michael Wood <michael.g.wood@intel.com> Signed-off-by: Elliot Smith <elliot.smith@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-04-06bitbake: toaster: tests Set MACHINE for the test projectsMichael Wood
(Bitbake rev: 6288a3bd6678ed1c7863cfde6eb33b7c28207777) Signed-off-by: Michael Wood <michael.g.wood@intel.com> Signed-off-by: Elliot Smith <elliot.smith@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-04-06bitbake: toaster: Add quint to project so that it can be used offlineMichael Wood
Currently we're using a hosted version of quint however this means that the testing has to be online or have a cached version of quint. Add the files to Toaster to be able to use offline. (Bitbake rev: fc5024e2ed0e4ec2ee234a42fd0403c70c3f819e) Signed-off-by: Michael Wood <michael.g.wood@intel.com> Signed-off-by: Elliot Smith <elliot.smith@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-04-06bitbake: toaster: add rev dep column to image detail pagesDave Lerner
Add a column to the custom image pages that shows the reverse dependencies in a format matching the dependencies column: - either blank or a button showing the count of reverse dependencies, - when the button is clicked, a popover appears showing the list of reverse dependencies, with each package's size, and the total size of all of the reverse dependencies. The implementation adds a packages table method to retreive the reverse dependency total size, and adds a separate 'popover' html template. Both of these changes follow the pattern for the dependencies column. [YOCTO #9163] (Bitbake rev: 2f978dccaa1ec82c7ad350bdc1cd9500000984eb) Signed-off-by: Dave Lerner <dave.lerner@windriver.com> Signed-off-by: Elliot Smith <elliot.smith@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-04-06bitbake: buildinfohelper: work around unicode exceptionsJoshua Lock
We have been seeing UnicodeDecodeErrors when handling the ImagePkgList MetadataEvent in ORMWrapper's save_target_file_information() if the event includes filenames that include non-ASCII characters. In the short term work around this by converting paths to the unicode type when passing them to Django's ORM. This is a bit of a hack but it's too late in the cycle to do anything more invasive. [YOCTO #9142] (Bitbake rev: f50fff03b3de02e73a3cc2eb9935f7c345dbddc4) Signed-off-by: Joshua Lock <joshua.g.lock@intel.com> Signed-off-by: Elliot Smith <elliot.smith@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-04-06bitbake: toasterui: update build in internal stateEd Bartosh
buildinfohelper stores current Build object in its internal state. Any changes to Build object will be lost if internal state is not updated as current buildinfohelper code saves Build object from internal state when build is completed. This bug causes incorrect build state when build is cancelled. Updating internal state should fix it. Note, that this commit updates internal state after status of the build is changed to Build.CANCELLED. There are several other places in the code where Build object is updated without updating internal state. They should be carefully analyzed and fixed. (Bitbake rev: d056cf40fc55530cb1736aedfb9a3c355884991e) Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Michael Wood <michael.g.wood@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-04-06bitbake: buildinfohelper: fix KeyErrorEd Bartosh
When bitbake doesn't need to build anything it still sends ImagePkgList event with empty 'pkgdata', 'imgdata' and 'filedata' fields. This causes crash in buildinfohelper code as it's assumed that above mentioned fields always have data keyed by build target: ERROR: u'core-image-minimal' Traceback (most recent call last): File "toasterui.py", line 423, in main buildinfohelper.store_target_package_data(event) File "buildinfohelper.py", line 1218, in store_target_package_data imgdata = BuildInfoHelper._get_data_from_event(event)['imgdata'][target.target] KeyError: u'core-image-minimal' Fixed this by using dict.get method with empty dictionary as default return value instead of trying to get value without checking if target key is in the data. (Bitbake rev: c39cc463e6d9594bf2c5ac8bb74e834f6f2cf7c8) Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Michael Wood <michael.g.wood@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-04-06bitbake: toaster: get bitbake location from BBBASEDIREd Bartosh
It was incorrectly assumed in the current code that bitbake is in ../bitbake/bin/ directory. It's not always the case. Using bitbake from $BBBASEDIR should be . (Bitbake rev: 6c9e3375d278bee712c41f07428bc82108b9aaae) Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Michael Wood <michael.g.wood@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-04-06bitbake: toaster: export BBBASEDIR variableEd Bartosh
This variable will be used in localhost controller code to determine correct bitbake location, so it has to be exported. (Bitbake rev: 429d47325aadb74d476e5b7f4738f2dfe26cde95) Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Michael Wood <michael.g.wood@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-04-06bitbake: toaster: update projectconf.html for DL_DIR and SSTATE_DIRSujith H
Modified the projectconf.html to include DL_DIR and SSTATE_DIR. Updated the script section in the html to handle the changes made by the user on DL_DIR and SSTATE_DIR. Included validation check for the folder names. [YOCTO #8422] (Bitbake rev: bd9f8973d4c9c0722874a058466b1b911112500e) Signed-off-by: Sujith H <sujith.h@gmail.com> Signed-off-by: Michael Wood <michael.g.wood@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-04-06bitbake: toaster: update view to support DL_DIR and SSTATE_DIRSujith H
Update toaster's views.py to support DL_DIR and SSTATE_DIR for page projectconf.html. Removed DL_DIR and SSTATE_DIR from blacklist. Initial value of DL_DIR and SSTATE_DIR comes from BuildEnvironment. [YOCTO #8422] (Bitbake rev: 9f672d7ba503d17175eef37ec03a5779e4c9f792) Signed-off-by: Sujith H <sujith.h@gmail.com> Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Michael Wood <michael.g.wood@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-04-06bitbake: toaster: use empty tokenEd Bartosh
If client xmlrpc token is not provided in the command line, bitbake generates random token. Server token in --server-only mode is always empty. This doesn't allow clients with non-empty tokens to connect to the server. Specifying empty token should stop generation of random token and make it possible for clients to communicate with the server. (Bitbake rev: b54ec2d7cb9f2fb4ff1e8af11b6ecf97d181272c) Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Michael Wood <michael.g.wood@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-04-06bitbake: toaster: runbuilds Clean up runbuildsMichael Wood
- Organise the imports into logical groups - Fix 80 col wrapping - Remove catch all exceptions - Log to the toaster log - Use QuerySet functions such as .first() and Q() (Bitbake rev: c382f550c62437954205c7dd9c7e1891d5d03945) Signed-off-by: Michael Wood <michael.g.wood@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-04-06bitbake: toaster: runbuilds Make runbuilds aware of the build CANCELLED stateMichael Wood
Add handlers to make sure we remove the BuildEnvironment LOCK when we have cancelled a build. (Bitbake rev: 23d0a7f9664450a09c2610631b38590a09b33744) Signed-off-by: Michael Wood <michael.g.wood@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-04-06bitbake: toaster: models Exclude the CANCELLED builds from get_number_of_buildsMichael Wood
Don't count CANCELLED builds when returning the number of builds. (Bitbake rev: c3c29fd4eb5116b771e8e16281d4e3cdf4fae165) Signed-off-by: Michael Wood <michael.g.wood@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>