-
Notifications
You must be signed in to change notification settings - Fork 278
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Warrior Release Compatibility #105
Conversation
Well, I've been monitoring the build and an unrelated error was thrown, I believe the Travis CI infrastructure does not support changes like this, and it tries to protect itself from performing too many jobs. This is what is shown (tail): The job exceeded the maximum time limit for jobs, and has been terminated. This will certainly happen for all other MACHINES/BSPs as well. I believe that its caused because usually, most of the Shared State is already available and its not necessary to perform this many jobs, in this case though, since you don't build for the warrior branch (and its two releases ahead) you don't have the required shared state already available, its basically trying to build most if not everything from scratch. Is there any way I can make a special request in which the limit of number of jobs is modified?, I have already tested all the listed MACHINES and images myself, but I'm a bit disappointed by this, because I wanted you to see it working too, if possible, I'd like this to be tested on the Travis CI. Thanks! Alejandro |
@aehs29 This is super cool!!! I agree, we probably should fix the compiler warnings. I am ok getting the temp cflags to disable said warnings and fixing them one by one and removing the exception. For fw-util, Let me work on deleting the 0.1 version of fw-util so you don't have to copy-paste the entire source! :-( Once I do that you can rebase your tree. PS: Our auto tooling is probably better at getting PRs one diff at a time. |
Awesome!, yeah absolutely, I can definitely rebase my tree on top of that, the only reason I didn't delete the fw-utils_0.1 recipe myself is because I didn't want to make a misinformed decision that would break someone else's flow (perhaps something/someone was still using it but I couldn't be sure), but yeah, it'd be a lot better if we have it in a common place. I have a similar issue with the kernel_fitimage class (coming from meta-aspeed) vs kernel-fitimage class (coming from oe-core), in most situations I would rather use the one from oe-core, but the fact that it is named differently (looks like on purpose) makes me think there is a reason why we don't use the one from oe-core, I just, at this point don't know why, and decided to keep and fix the current one for now. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I went ahead and deleted 0.1 version of fw-util from meta-yosemite, meta-fby2, meta-fbttn and meta-minilaketb. I am guessing we wont need this patch (and similar patches for the other platforms) anymore.
Great, just for sanity, should we check the priorities set for BBFILE_PRIOIRITY for the different layers?, what is the reasoning behind the BBFILE_PRIORITY on some layers, for example fby2 has 8 and fbttn has 20, is this something we have to review to make sure its doing what we want?. Thanks! |
b31fbc7
to
a6ea774
Compare
Hey guys ( @amithash ) I finally had some time this weekend to play around with this again and solve the pending issues, sorry for the delay. Changes since the last pull request: - Rebased on top of latest helium - Removed the following commits due to our previous conversations: - initscripts: Fix syslog syntax on hostname. Resolved conflicts on: - libipmi: Change PREFERRED_VERSION to 0.2 - linux-aspeed: Upgrade to kernel version 5.0.3 for 1250 - openbmc-fb: Set DISTRO_FEATURES correctly - u-boot: Fix compilation error due to incompatibility with dtc As a side note, I still believe having separate branches for stable releases might - Changed LAYERCOMPAT to warrior AND rocko for all the previous layers where it was added meta-facebook: Set warnings instead of fatal errors for missing bbappends
Default behavior causes the cooker to exit with a fatal error, but setting it to show warnings Keep rocko as DEFAULT_DISTRO
Added Testing script
Usage is very simple:
- I've tested builds for all the Travis CI default boards both on rocko and warrior, from scratch and using the sstate cache as well. |
Great I think the Travis CI passed (for the most part haha), Its getting an unrelated error when installing packages on the Ubuntu host: Build 266
Even build 265 passed, but failed on wedge with a similar error: Juts pointing out that this did not break the Travis CI as before, since the DEFAULT_DISTRO is still set to rocko, so you would still need to use the provided script to test for warrior manually, but it does show that my warrior compatibility changes don't break rocko builds which is great! Check it when you get a chance and let me know @amithash ! Thanks! |
32cbec5
to
569751b
Compare
I added additional support for the following boards: Even though these boards are not tested automatically by Travis PD: Also, it looks like Travis is still having network issues |
bb9d009
to
34f85fd
Compare
Summary: OE-Core now requires to set the layer compatibility to a certain relase. Provide LAYERSERIES_COMPAT for warrior and rocko releases. Signed-off-by: Alejandro Enedino Hernandez Samaniego <[email protected]> Closes #105 Test Plan: All builds pass. Reviewed By: vineelasmile Pulled By: amithash fbshipit-source-id: 8d3f6b4794
Summary: OE-Core now requires to set the layer compatibility to a certain relase. Provide LAYERSERIES_COMPAT for warrior and rocko releases. Signed-off-by: Alejandro Enedino Hernandez Samaniego <[email protected]> Closes #105 Test Plan: All builds pass Reviewed By: tomrepo Pulled By: amithash fbshipit-source-id: b865cee2aa
Summary: OE-Core now requires to set the layer compatibility to a certain relase. Provide LAYERSERIES_COMPAT for warrior and rocko releases. Signed-off-by: Alejandro Enedino Hernandez Samaniego <[email protected]> Closes #105 Test Plan: All builds pass Reviewed By: tomrepo Pulled By: amithash fbshipit-source-id: 4f029c80ed
Summary: The distutils3 class now calls setup.py on do_configure, but since the libkv package does not have a setup.py it causes an error. Override the distutils_do_configure() task to avoid such error and continue with the compilation/packaging. Signed-off-by: Alejandro Enedino Hernandez Samaniego <[email protected]> Closes #105 Test Plan: TBD Reviewed By: vineelasmile Pulled By: amithash fbshipit-source-id: bac9be032f
Summary: This change is a bit confusing since ast-mdio used to work with python2, but the python package has been blacklisted, and also the dependencies have changed with the OE-Core releases. The ast-mdio script relies on subprocess, time and argparse to work properly, and these are all coming from python3-core now. Change RDEPENDS_ast-mdio to python3-core for the reasons stated above, and also change the shebang of the script to use python3 instead to avoid QA errors regarding runtime dependencies while packaging. Signed-off-by: Alejandro Enedino Hernandez Samaniego <[email protected]> Closes #105 Test Plan: Build on all platforms. Reviewed By: vineelasmile Pulled By: amithash fbshipit-source-id: 723509fde5
Summary: The libipmi recipe has been upgraded to 0.2, which is the only recipe available. Change PREFERRED_VERSION on MACHINES that still preferred to use 0.1 to avoid warnings. Signed-off-by: Alejandro Enedino Hernandez Samaniego <[email protected]> Closes #105 Test Plan: Build wedge and galaxy Reviewed By: tomrepo Pulled By: amithash fbshipit-source-id: 4046cd68c9
Summary: As title. Signed-off-by: Alejandro Enedino Hernandez Samaniego <[email protected]> Closes #105 Test Plan: Build on all platforms. CIT Pass! Reviewed By: tomrepo Pulled By: amithash fbshipit-source-id: bdaf6cdd97
Summary: As title. Signed-off-by: Alejandro Enedino Hernandez Samaniego <[email protected]> Closes #105 Test Plan: Build fbtp, flash on image and check vboot-check. Reviewed By: tomrepo Pulled By: amithash fbshipit-source-id: 62fa995f4a
…#105) Summary: as title. Signed-off-by: Alejandro Enedino Hernandez Samaniego <[email protected]> Closes #105 Test Plan: TBD - Build portwell board Reviewed By: vineelasmile Pulled By: amithash fbshipit-source-id: f04cf6af93
Summary: Provide LAYERSERIES_COMPAT for warrior and rocko releases. Signed-off-by: Alejandro Enedino Hernandez Samaniego <[email protected]> Closes #105 Test Plan: Build wedge100 Reviewed By: tomrepo Pulled By: amithash fbshipit-source-id: db18afda06
Summary: Provide LAYERSERIES_COMPAT for warrior and rocko releases. Signed-off-by: Alejandro Enedino Hernandez Samaniego <[email protected]> Closes #105 Test Plan: Build galaxy100 Reviewed By: tomrepo Pulled By: amithash fbshipit-source-id: 102f665fee
Summary: Provide LAYERSERIES_COMPAT for warrior and rocko releases. Signed-off-by: Alejandro Enedino Hernandez Samaniego <[email protected]> Closes #105 Test Plan: Build lightning Reviewed By: benwei13 Pulled By: amithash fbshipit-source-id: f76672fd1c
Summary: Provide LAYERSERIES_COMPAT for warrior and rocko releases. Signed-off-by: Alejandro Enedino Hernandez Samaniego <[email protected]> Closes #105 Test Plan: Build yosemite Reviewed By: benwei13 Pulled By: amithash fbshipit-source-id: dad133f10c
Summary: Provide LAYERSERIES_COMPAT for warrior and rocko releases. Signed-off-by: Alejandro Enedino Hernandez Samaniego <[email protected]> Closes #105 Test Plan: Build tiogapass Reviewed By: benwei13 Pulled By: amithash fbshipit-source-id: 2ad5c7ced0
Summary: Provide LAYERSERIES_COMPAT for warrior and rocko releases. Signed-off-by: Alejandro Enedino Hernandez Samaniego <[email protected]> Closes #105 Test Plan: Build all platforms Reviewed By: benwei13 Pulled By: amithash fbshipit-source-id: c2f0157eef
Summary: Provide LAYERSERIES_COMPAT for warrior and rocko releases. Signed-off-by: Alejandro Enedino Hernandez Samaniego <[email protected]> Closes #105 Test Plan: Build fby2 Reviewed By: benwei13 Pulled By: amithash fbshipit-source-id: b650e13aa5
Summary: Provide LAYERSERIES_COMPAT for warrior and rocko releases. Signed-off-by: Alejandro Enedino Hernandez Samaniego <[email protected]> Closes #105 Test Plan: Build CMM Reviewed By: benwei13 Pulled By: amithash fbshipit-source-id: ca1dd1f248
Summary: The current Makefile is setting CFLAGS using "=" which resets anything set from the build system. Append to CFLAGS instead of reassigning the variable, allowing the build system to set its own CFLAGS. Signed-off-by: Alejandro Enedino Hernandez Samaniego <[email protected]> Closes #105 Test Plan: Build tiogapass. Reviewed By: tomrepo Pulled By: amithash fbshipit-source-id: 26e59b5590
Summary: The build system no longer builds a KERNEL_IMAGETYPE-DTB file, hence this now causes an error like the following: ------------ FATAL ERROR: Couldn't open "deploy/images/cmm/zImage-aspeed-bmc-facebook-cmm.dtb": No such file or directory mkimage: Can't open tmp/deploy/images/cmm/fit-cmm-20190707051202.itb.tmp: No such file or directory ERROR: Function failed: do_image_cpio ------------- Remove KERNEL_IMAGETYPE from the DTB_PATH variable so it finds the correct device tree blob and allows the cpio_image to be built correctly. Signed-off-by: Alejandro Enedino Hernandez Samaniego <[email protected]> Closes #105 Test Plan: Build fbtp on both 4.1 and 5.0 and ensure it builds and boots fine. Reviewed By: tomrepo Pulled By: amithash fbshipit-source-id: 7ee075ff15
Summary: The variable $DISTRO_FEATURES_LIBC is no longer used in OE-Core, this causes errors during boot since the system was expecting ipv4 by default (busyboxs config changes depending on features, and it affects things like ifup). Add ipv4 to OPENBMC_FB_DEFAULT_FEATURE to fix the issue, and only keep DISTRO_FEATURES_LIBC for compatibility, but don't rely on it since it is not being set on default-distrovars.inc on upstream anymore. Signed-off-by: Alejandro Enedino Hernandez Samaniego <[email protected]> Closes #105 Test Plan: build and flash fbtp and ensure it comes up fine. Reviewed By: tfangit Pulled By: amithash fbshipit-source-id: 460c142f5f
Summary: The distutils3 class now calls setup.py on do_configure, but since the vboot-utils package does not have a setup.py it causes an error. Override the distutils_do_configure() task to avoid such error and continue with the compilation/packaging. Signed-off-by: Alejandro Enedino Hernandez Samaniego <[email protected]> Closes #105 Test Plan: Build fbtp Reviewed By: benwei13 Pulled By: amithash fbshipit-source-id: 16ffe262ae
Summary: All these images inherit the kernel_fitimage class which adds cpio.lzma.u-boot to IMAGE_FSTYPES. It is unnecesary to assign this variable on the image recipes as well as it has no effect. Signed-off-by: Alejandro Enedino Hernandez Samaniego <[email protected]> Closes #105 Test Plan: Build of all platforms passes Reviewed By: tomrepo Pulled By: amithash fbshipit-source-id: 5da9897636
…ends (#105) Summary: As the project supports more and more releases from Yocto, the recipes vary more frequently, in some cases, bbappends would fail to find a respective .bb file, the default behavior for this is to cause an error, we have to set it to show a warning instead to allow the cooker to proceed Signed-off-by: Alejandro Enedino Hernandez Samaniego <[email protected]> Closes #105 Test Plan: Build all platforms Reviewed By: benwei13 Pulled By: amithash fbshipit-source-id: 349228d85e
Summary: The current version of trousers is not compatible with openssl versions > 1.1.0. This has been patched upstream in trousers on commit: 05411ea Rather than backporting the patch, upgrade the trousers recipe to 0.3.14 which contains this patch already. A few other changes required were: - Fixing the unpack function - Fixing the LICENSE - Removing the 07-read_data-not-inline patch Signed-off-by: Alejandro Enedino Hernandez Samaniego <[email protected]> Closes #105 Test Plan: Tested on wedge100 comparing old (1.3.8 vs 1.3.9) Old tpmtools/trousers: ``` root@fboss042-oob:~# tpm_version --version tpm_version version: 1.3.8 root@fboss042-oob:/dev# tpm_version TPM 1.2 Version Info: Chip Version: 1.2.133.32 Spec Level: 2 Errata Revision: 3 TPM Vendor ID: IFX Vendor Specific data: 85200050 0074706d 3530ffff ff TPM Version: 01010000 Manufacturer Info: 49465800 root@fboss042-oob:/dev# tpm_selftest TPM Test Results: 800001ff ``` New tpmtools/trousers: ``` root@fboss042-oob:~# tpm_version --version tpm_version version: 1.3.9 root@fboss042-oob:/dev# tpm_selftest TPM Test Results: 800001ff root@fboss042-oob:/dev# tpm_version TPM 1.2 Version Info: Chip Version: 1.2.133.32 Spec Level: 2 Errata Revision: 3 TPM Vendor ID: IFX Vendor Specific data: 85200050 0074706d 3530ffff ff TPM Version: 01010000 Manufacturer Info: 49465800 ``` Reviewed By: benwei13 Pulled By: amithash fbshipit-source-id: 44cff4a59e
Summary: The current implementation of ipmitool v1.8.18 contains arcaic code that is incompatible with newer C compilers, the last release was on Oct 2016 and several fixes, (around 150 commits) have been pushed since. Build ipmitool using the git repo instead, to avoid compilation errors. The FB plugin implementation for obmc using a patch was rebased to work on the latest revision Signed-off-by: Alejandro Enedino Hernandez Samaniego <[email protected]> Closes #105 Test Plan: TODO: Run ipmitool from fbtp to get info from ME. Reviewed By: benwei13 Pulled By: amithash fbshipit-source-id: aa2df4de62
Summary: - Fixed LICENSE - Fixed Unpack function - Removed unnecessary patches Signed-off-by: Alejandro Enedino Hernandez Samaniego <[email protected]> Closes #105 Test Plan: Tested on wedge100 comparing old (1.3.8 vs 1.3.9) Old tpmtools/trousers: ``` root@fboss042-oob:~# tpm_version --version tpm_version version: 1.3.8 root@fboss042-oob:/dev# tpm_version TPM 1.2 Version Info: Chip Version: 1.2.133.32 Spec Level: 2 Errata Revision: 3 TPM Vendor ID: IFX Vendor Specific data: 85200050 0074706d 3530ffff ff TPM Version: 01010000 Manufacturer Info: 49465800 root@fboss042-oob:/dev# tpm_selftest TPM Test Results: 800001ff ``` New tpmtools/trousers: ``` root@fboss042-oob:~# tpm_version --version tpm_version version: 1.3.9 root@fboss042-oob:/dev# tpm_selftest TPM Test Results: 800001ff root@fboss042-oob:/dev# tpm_version TPM 1.2 Version Info: Chip Version: 1.2.133.32 Spec Level: 2 Errata Revision: 3 TPM Vendor ID: IFX Vendor Specific data: 85200050 0074706d 3530ffff ff TPM Version: 01010000 Manufacturer Info: 49465800 ``` Reviewed By: benwei13 Pulled By: amithash fbshipit-source-id: b46aefcb63
… master and v2019.01 have a fix already. (#105) Summary: The OpenSSL API majorly changed after 1.1.x, some of which broke the RSA struct along with other methods, this patch adds compatibility with newer versions of OpenSSL Backport fix from 2019.01 which has support for OpenSSL > 1.1.0 Signed-off-by: Alejandro Hernandez <[email protected]> Signed-off-by: Amithash Prasad <[email protected]> Closes facebook/openbmc#105 Test Plan: Build FBTP on rocko and ensure we can sign and flash and verified boot is successful. Reviewed By: benwei13 Differential Revision: D17943482 Pulled By: amithash fbshipit-source-id: 4e91c8ae2a
Summary: DTC does not use an underscore for the LIBFDT_H and LIBFDT_ENV_H variables, this causes an error since u-boot does. Add a patch that removes the underscore to allow compilation to succeed. This patch is only required on the warrior release due to the version of dtc upgrade. Signed-off-by: Alejandro Enedino Hernandez Samaniego <[email protected]> Signed-off-by: Amithash Prasad <[email protected]> Closes #105 Test Plan: Build, sign and flash on tiogapass. Ensure everything is functional and verified boot succeeds. Reviewed By: benwei13 Pulled By: amithash fbshipit-source-id: 8296463365
Summary: ELBERT: Fix PIM8DDM gpio mapping The UCD pins on pim8ddm and pim16q are different, so fixing our pim_enable scripts to toggle this. Also, setting FULL_POWER to 0 currently does nothing, so removing this for now. power_off_pim will simply turn FPGA off. We are tracking investigating improvements to this separately to assess if we need to control power domain as well to reduce power. Testing: pimreset many times pim8ddm/pim16q mixed card system. Pull Request resolved: facebookexternal/openbmc.arista#105 Reviewed By: mikechoifb fbshipit-source-id: 313fbf2e1b
Hello,
The following set of patches, provide compatibility to build with the warrior branch from Yocto,
it is important to note that this upgrades the branch three releases ahead, from rocko-> sumo->thud -> warrior.
More information about what each of these upgrades bring by themselves can be found at:
Sumo Release Notes
Thud Release Notes
Warrior Release Notes
Initially (on the first pull request) this was only able to build the fb-openbmc-image along with DISTRO="openbmc-fb".
It wasn't very clear which BSPs were supported at the beginning but after I saw the first pull request I could figure out the way the Travis CI worked and what was being tested, I was able to imitate the Travis CI flow so now the Warrior branch compatibility has been extended to build on:
BSPs/Layers (and their images) now compatible with warrior:
- wedge
- wedge100
- yosemite
- lightning
- cmm
- galaxy100
- fbtp
- fbttn
- fby2
For obvious reasons this provides many improvements in the system, including many CVEs and fixes from packages such as openssl, busybox, etc.
The system now correctly builds and runs a kernel version 5.0.7 (linux-yocto)
There are a couple of necessary changes related to python3 because of the upgrade of the manifest generation / python3 packaging system itself (which I personally did on oe-core) 8d94b9 and b677787
initscripts required some changes as well since it should be getting the ip command from iproute2 and not from busybox as it was happening before, also rdepend on dig since it is being used on the hostname script.
DISTRO wise, there was some required changes to DISTRO_FEATURES due to changes in OE-Core.
9d973d3
This also contains many fixes to several packages including:
- u-boot-2016.07
- fw-util
- bios-util
- ipmitool
- vboot-utils
- tpm-tools
- trousers
- u-boot-tools
- libkv
- ast-mdio
- openbmc-gpio
- opkg_utils
- dhcp
- bind
- initscripts
I would be open to discuss each of these individually if the commit message on each of them is not clear, but discussing each of these in the cover letter is not feasible.
The only downside of these set of commits is that it contains a temporary fix, because, since the inclusion of security flags on Yocto on: 30f9a507 and the introduction of GCC 8, a lot of more security warnings are shown, and when using -Wall this causes a error while building several packages, I decided to squash all these in a single commit, to force them all not to work if this commit is not included, this way we'll be forced to analyze each of this cases individually, but the correct fix for these individual cases should come from the source code itself.
More info at:
GCC8 - Warnings
There are also a couple of bugs I found while developing these, but I believe it would be better to file them through here, since while I could fix them, I would not be able to make an informed decision on the correct/best way to do so (e.g bios-util LICENSE is most certainly wrong).
This set of commits also upgrades linux-aspeed (1250 and 2520) to work with Linux 5.0.3, along with some dtb/kernel-fitimage fixes
Since I don't have hardware available at the moment, I have tested these at runtime on qemuarmv5 (qemuarm was moved to qemuarmv5 on warrior 6acb45 ) , since it uses the same architecture/tune (arm926ejs) as several machines within the layer such as: mavericks, galaxy, lightning, wedge, wedge100 and yosemite, although it is worth mentioning that qemuarm (v7) does work correctly as well.
AFAIC there could still be some runtime issues, e.g. /mnt/data isnt mounted, like it would when using real hardware (due to the openbmc-utils dependency)
Regards,
Alejandro