diff options
author | Gavin Gavel <bot@opensourcefoundries.com> | 2018-01-31 02:29:37 +0000 |
---|---|---|
committer | Gavin Gavel <bot@opensourcefoundries.com> | 2018-01-31 02:29:37 +0000 |
commit | 1c84ea2030934d57c12c29b9f30c5606d1249c47 (patch) | |
tree | b4a73ea89803b12acfa00da204c10b720036354d | |
parent | 9e657fb6740a2de22458a82f8be9893d89066d4b (diff) | |
parent | 009a35035f3c36f7e66bee24727ae61f1410a077 (diff) |
osf-public release: 0.7
-rw-r--r-- | Dockerfile | 26 | ||||
-rw-r--r-- | README.md | 60 | ||||
-rw-r--r-- | conf/bblayers.conf | 10 | ||||
-rw-r--r-- | conf/local.conf | 52 | ||||
-rw-r--r-- | default.xml | 29 | ||||
-rw-r--r-- | git-mirrors.yml | 45 | ||||
-rw-r--r-- | release-notes-schema.yml | 64 | ||||
-rw-r--r-- | release-notes.yml | 196 | ||||
-rw-r--r-- | setup-environment-internal | 217 |
9 files changed, 481 insertions, 218 deletions
@@ -7,6 +7,17 @@ ENV LANGUAGE en_US:en ENV LC_ALL en_US.UTF-8 ARG DEBIAN_FRONTEND=noninteractive +ARG DEV_USER_NAME=Builder +ARG DEV_USER=builder +ARG DEV_USER_PASSWD=builder + +# OSF PPA for additional dependencies and newer packages +RUN apt-get update \ + && apt-get install -y --no-install-recommends \ + software-properties-common \ + && add-apt-repository ppa:osf-maintainers/ppa \ + && apt-get clean \ + && rm -rf /var/lib/apt/lists/* RUN apt-get update \ && apt-get install -y --no-install-recommends \ @@ -14,15 +25,22 @@ RUN apt-get update \ file gawk g++ iproute2 iputils-ping less libmagickwand-dev \ libmath-prime-util-perl libsdl1.2-dev libssl-dev locales \ openssh-client perl-modules python2.7 python-requests python3 \ - repo texinfo vim-tiny wget whiptail \ + repo sudo texinfo vim-tiny wget whiptail \ && apt-get autoremove -y \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* \ && locale-gen en_US.UTF-8 # Create the user which will run the SDK binaries. -RUN useradd -c builder \ - -d /home/builder \ +RUN useradd -c $DEV_USER_NAME \ + -d /home/$DEV_USER \ + -G sudo,dialout,floppy,plugdev,users \ -m \ -s /bin/bash \ - builder + $DEV_USER + +# Add default password for the SDK user (useful with sudo) +RUN echo $DEV_USER:$DEV_USER_PASSWD | chpasswd + +# Initialize development environment for $DEV_USER. +RUN sudo -u $DEV_USER -H git config --global credential.helper 'cache --timeout=3600' @@ -1,11 +1,11 @@ -default.xml -================= +Linux microPlatform Manifest +============================ Open Source Foundries Linux microPlatform manifest. This directory contains a Repo manifest and setup scripts for the -Linux microPlatform build system. If you want to (re)build packages or -images for the Linux microPlatform, this is the manifest repository to +Linux microPlatform build system. If you want to modify, extend or port Linux +microPlatform to a new hardware platform, this is the manifest repository to use. The build system uses various components from the Yocto @@ -22,18 +22,21 @@ curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/rep chmod a+x ~/bin/repo ``` -Run repo init to bring down the latest version of Repo with all its -most recent bug fixes. You must specify a URL for the manifest, which -specifies where the various repositories included in the Android -source will be placed within your working directory. To check out the -latest branch: +Run `repo init` to bring down the latest stable version of Repo. You must +specify a URL for the manifest, which specifies the various repositories that +will be placed within your working directory. + +To check out the latest LMP subscriber continuous release: ``` -repo init -u https://git.foundries.io/YOUR_TREE/manifests.git +repo init -u https://source.foundries.io/lmp-manifest ``` -Where YOUR_TREE in the URL points to a version of this repository you -have access to. +To check out the latest LMP public release: + +``` +repo init -u https://github.com/OpenSourceFoundries/lmp-manifest +``` When prompted, configure Repo with your real name and email address. @@ -43,7 +46,7 @@ now contain a .repo directory where files such as the manifest will be kept. To pull down the metadata sources to your working directory from the -repositories as specified in the Linux microPlatform manifest, run +repositories as specified in the Linux microPlatform manifest, run: ``` repo sync @@ -72,27 +75,38 @@ repo sync -j1 Setup Environment ----------------- -MACHINE values can be: +Supported **MACHINE** targets (officially tested by OSF): * beaglebone * cl-som-imx7 * cubox-i * dragonboard-410c * dragonboard-820c * hikey -* ls1043ardb * raspberrypi3 -DISTRO values can be: -* rpb +Supported image targets: +* lmp-gateway-image + +The default distribution (DISTRO) variable is automatically set to `lmp`, +which is provided by the `meta-osf` layer. + +Setup the work environment by using the `setup-environment` script: ``` -. setup-environment -MACHINE=<machine> DISTRO=<distro> bitbake IMAGE_NAME +[MACHINE=<MACHINE>] source setup-environment [BUILDDIR] ``` -e.g. MACHINE=hikey DISTRO=rpb bitbake rpb-ltd-gateway-image +If **MACHINE** is not provided, the script will list all possible machines and +force one to be selected. + +To build the Linux microPlatform gateway image: + +``` +bitbake lmp-gateway-image +``` -Maintainers -------------------------- +Issues and Support +------------------ -* Ricardo Salveti <mailto:ricardo@opensourcefoundries.com> +Please report any bugs, issues or suggestions at +https://opensourcefoundries.freshdesk.com. diff --git a/conf/bblayers.conf b/conf/bblayers.conf index 637ee0e..e32dcf6 100644 --- a/conf/bblayers.conf +++ b/conf/bblayers.conf @@ -10,13 +10,7 @@ BBFILES = "" # These layers hold recipe metadata not found in OE-core, but lack any machine or distro content BASELAYERS ?= " \ ${OEROOT}/layers/meta-openembedded/meta-oe \ - ${OEROOT}/layers/meta-openembedded/meta-gnome \ - ${OEROOT}/layers/meta-openembedded/meta-xfce \ - ${OEROOT}/layers/meta-openembedded/meta-initramfs \ - ${OEROOT}/layers/meta-openembedded/meta-multimedia \ ${OEROOT}/layers/meta-openembedded/meta-networking \ - ${OEROOT}/layers/meta-openembedded/meta-webserver \ - ${OEROOT}/layers/meta-openembedded/meta-ruby \ ${OEROOT}/layers/meta-openembedded/meta-filesystems \ ${OEROOT}/layers/meta-openembedded/meta-perl \ ${OEROOT}/layers/meta-openembedded/meta-python \ @@ -31,20 +25,18 @@ BSPLAYERS ?= " \ ${OEROOT}/layers/meta-freescale-3rdparty \ ${OEROOT}/layers/meta-st-cannes2 \ ${OEROOT}/layers/meta-raspberrypi \ + ${OEROOT}/layers/meta-intel \ ${OEROOT}/layers/meta-yocto/meta-yocto-bsp \ " # Add your overlay location to EXTRALAYERS # Make sure to have a conf/layers.conf in there EXTRALAYERS ?= " \ - ${OEROOT}/layers/meta-linaro/meta-linaro \ ${OEROOT}/layers/meta-linaro/meta-linaro-toolchain \ - ${OEROOT}/layers/meta-linaro/meta-aarch64 \ ${OEROOT}/layers/meta-linaro/meta-optee \ " BBLAYERS = " \ - ${OEROOT}/layers/meta-rpb \ ${OEROOT}/layers/meta-osf \ ${BASELAYERS} \ ${BSPLAYERS} \ diff --git a/conf/local.conf b/conf/local.conf index f0d602d..4511bf5 100644 --- a/conf/local.conf +++ b/conf/local.conf @@ -5,9 +5,6 @@ CONF_VERSION = "1" # Which files do we want to parse: BBMASK = "" -# What kind of images do we want? -IMAGE_FSTYPES_append = " tar.xz" - # Don't generate the mirror tarball for SCM repos, the snapshot is enough BB_GENERATE_MIRROR_TARBALLS = "0" @@ -39,9 +36,9 @@ PARALLEL_MAKE ?= "-j ${@oe.utils.cpu_count()}" # would contain the sstate-cache results from previous builds (possibly from other # machines). This variable works like fetcher MIRRORS/PREMIRRORS and points to the # cache locations to check for the shared objects. -#SSTATE_MIRRORS ?= "\ -#file://.* http://someserver.tld/share/sstate/ \n \ -#file://.* file:///some/local/dir/sstate/" +SSTATE_MIRRORS ?= "\ +file://.* https://lmp-mirror.foundries.io/sstate-cache/PATH \n \ +" # enable PR service on build machine itself # its good for a case when this is the only builder @@ -49,30 +46,41 @@ PARALLEL_MAKE ?= "-j ${@oe.utils.cpu_count()}" #PRSERV_HOST = "localhost:0" # OSF LMP specific configuration -## Base Linux microPlatform git repository and foundry namespace -OSF_LMP_GIT_URL = "git.foundries.io" -OSF_LMP_GIT_NAMESPACE = "development/microplatforms/linux/" -## Only console is supported at this point -DISTRO_FEATURES_remove = "x11" -## Beaglebone defaults to linux-osf + +# Beaglebone PREFERRED_PROVIDER_virtual/kernel_beaglebone = "linux-osf" -## DB410c defaults to linux-osf +IMAGE_FSTYPES_append_beaglebone = " wic.gz" +IMAGE_FSTYPES_remove_beaglebone = " wic" + +# Dragonboard (DB410/DB820) PREFERRED_PROVIDER_virtual/kernel_dragonboard-410c = "linux-osf" -## DB820c defaults to linux-osf PREFERRED_PROVIDER_virtual/kernel_dragonboard-820c = "linux-osf" QCOM_BOOTIMG_ROOTFS_dragonboard-820c = "sda9" -## Hikey defaults to linux-osf + +# HiKey PREFERRED_PROVIDER_virtual/kernel_hikey = "linux-osf" CMDLINE_remove_hikey = "quiet" -## Cubox-i/Hummingboard defaults to linux-osf + +# Cubox-i/Hummingboard PREFERRED_PROVIDER_virtual/kernel_cubox-i = "linux-osf" -## LS1043ardb defaults + +# LS1043ardb PREFERRED_PROVIDER_virtual/kernel_ls1043ardb = "linux-osf" -PREFERRED_PROVIDER_openssl_ls1043ardb = "openssl" -## ST B2260 defaults to linux-osf + +# ST B2260 PREFERRED_PROVIDER_virtual/kernel_stih410-b2260 = "linux-osf" + +# Raspberry Pi +PREFERRED_PROVIDER_virtual/kernel_raspberrypi = "linux-osf" +PREFERRED_PROVIDER_virtual/kernel_raspberrypi2 = "linux-osf" +PREFERRED_PROVIDER_virtual/kernel_raspberrypi3 = "linux-osf" +VC4DTBO_raspberrypi3-64 = "vc4-kms-v3d" +RPI_USE_U_BOOT = "1" +SDIMG_COMPRESSION = "xz" + +# Intel Corei7 64 +PREFERRED_PROVIDER_virtual/kernel_intel-corei7-64 = "linux-osf" + +# Cross machines / BSPs ## Drop IMX BSP that is not needed MACHINE_EXTRA_RRECOMMENDS_remove = "imx-alsa-plugins" -## Force a more recent kernel on rpi -PREFERRED_PROVIDER_virtual/kernel = "linux-raspberrypi-dev" -PREFERRED_VERSION_linux-raspberrypi = "4.11%" diff --git a/default.xml b/default.xml index a279f32..c58b01a 100644 --- a/default.xml +++ b/default.xml @@ -6,20 +6,23 @@ <default remote="github" revision="master" sync-j="4" /> - <project name="96boards/meta-96boards" path="layers/meta-96boards" revision="3bce974c381cae3b52040e06643ed6892f211896" /> - <project name="96boards/meta-rpb" path="layers/meta-rpb" revision="16a952af33c873e1995eca48a2cb80900fc18185" /> - <project name="Freescale/meta-freescale-3rdparty" path="layers/meta-freescale-3rdparty" revision="fd3962a994b2f477d3e81fa7083f6b3d4e666df5" /> + <project name="96boards/meta-96boards" path="layers/meta-96boards" revision="eee9e16eece8780ae44357f92664491174211a06" /> + <project name="Freescale/meta-freescale-3rdparty" path="layers/meta-freescale-3rdparty" revision="1a3fb4e0c726429dfa48f1ef4c01bcf5bef15c66" /> + <project name="core-containers" path="containers/core-containers" remote="OpenSourceFoundries" revision="62d1178666390e3e7e49a323dbc65468013b395f" /> <project name="cpriouzeau/meta-st-cannes2" path="layers/meta-st-cannes2" revision="8abc5197f3456590c493c59d1e6f696e25f88927" /> - <project name="git/meta-freescale" path="layers/meta-freescale" remote="yocto" revision="98d57b06d88cb22129bd417a9a3edbaf24612460" /> - <project name="git/meta-raspberrypi" path="layers/meta-raspberrypi" remote="yocto" revision="11fec461330982ee15b4ac6dca5014fabe59198f" /> - <project name="git/meta-virtualization" path="layers/meta-virtualization" remote="yocto" revision="e73608d56e498a7075e7a3e5550aafd76987d7aa" /> - <project name="git/meta-yocto" path="layers/meta-yocto" remote="yocto" revision="86ab7ab6688f250bb5777371d2cbc28c770847d4"> + <project name="extra-containers" path="containers/extra-containers" remote="OpenSourceFoundries" revision="a80304f9f9ea6ff12b34592c6e95e38994776d43" /> + <project name="gateway-containers" path="containers/gateway-containers" remote="OpenSourceFoundries" revision="4861f08499f5873dae5246df8cf344114efe44cf" /> + <project name="git/meta-freescale" path="layers/meta-freescale" remote="yocto" revision="bf7fd9cfe0788fe2f819a4ae2cc7db8327fe161a" /> + <project name="git/meta-intel" path="layers/meta-intel" remote="yocto" revision="7969d8e442bdefd8036a334ca9d9ce133272399b" /> + <project name="git/meta-raspberrypi" path="layers/meta-raspberrypi" remote="yocto" revision="c47caaca325b8cd81ee5bcd7cb30295faf0d440d" /> + <project name="git/meta-virtualization" path="layers/meta-virtualization" remote="yocto" revision="d1969606e3540d3771a5ba4626d4e5ea42bd683a" /> + <project name="git/meta-yocto" path="layers/meta-yocto" remote="yocto" revision="0d44e59bfaa95162cf2133df1d08f6419314bb8e"> <linkfile dest="setup-environment" src="../../.repo/manifests/setup-environment" /> </project> - <project name="meta-osf" path="layers/meta-osf" remote="OpenSourceFoundries" revision="bf6307fdf76a255fbca9e22d2997d08acc96c5e7" /> - <project name="ndechesne/meta-qcom" path="layers/meta-qcom" revision="a95622c51486b3c584ec276c78a3a3a58c91c912" /> - <project name="openembedded/bitbake" path="bitbake" revision="5639faa3eef55cc476a82e810e61ca228cbdf221" /> - <project name="openembedded/meta-linaro" path="layers/meta-linaro" remote="linaro" revision="51d0de5f83991c032c6e300b30eebb73367dc7d2" /> - <project name="openembedded/meta-openembedded" path="layers/meta-openembedded" revision="d3dd8bc3721f3958eb7ddeb026f7221d48daa986" /> - <project name="openembedded/openembedded-core" path="layers/openembedded-core" revision="059846662f1ea1c82804cfce5f91afcb2980ec8a" /> + <project name="meta-osf" path="layers/meta-osf" remote="OpenSourceFoundries" revision="b46d57d863a98699a801a1b417c9988efc20bc66" /> + <project name="ndechesne/meta-qcom" path="layers/meta-qcom" revision="5fbd011c7852d46399018647d09e3b581b1b637d" /> + <project name="openembedded/bitbake" path="bitbake" revision="643eacb162b8710330ef292bfda21cfeab97f95c" /> + <project name="openembedded/meta-linaro" path="layers/meta-linaro" remote="linaro" revision="259b8bfbb5dc13a4173f9e90bdf09f5aebea473e" /> + <project name="openembedded/meta-openembedded" path="layers/meta-openembedded" revision="29a4983d5a4462d8e7b9abcd55bfb3013f578fdd" /> + <project name="openembedded/openembedded-core" path="layers/openembedded-core" revision="e0a4e78b879eeacff8ef6803c1345056abf018e7" /> </manifest>
\ No newline at end of file diff --git a/git-mirrors.yml b/git-mirrors.yml new file mode 100644 index 0000000..e22d84b --- /dev/null +++ b/git-mirrors.yml @@ -0,0 +1,45 @@ +# The default.xml manifest defines all the git repositories needed to build +# the LMP. That file points at mirrored copies of each repository living on +# source.foundries.io. This file describes the origin of each of these mirrors +# so that subscribers understand where the code comes from and internal +# mirroring services know what to track. + +meta-96boards: + url: "https://github.com/96boards/meta-96boards" + +meta-freescale-3rdparty: + url: "https://github.com/Freescale/meta-freescale-3rdparty" + +meta-st-cannes2: + url: "https://github.com/cpriouzeau/meta-st-cannes2" + +meta-freescale: + url: "https://git.yoctoproject.org/git/meta-freescale" + +meta-intel: + url: "https://git.yoctoproject.org/git/meta-intel" + +meta-raspberrypi: + url: "https://git.yoctoproject.org/git/meta-raspberrypi" + +meta-virtualization: + url: "https://git.yoctoproject.org/git/meta-virtualization" + +meta-yocto: + url: "https://git.yoctoproject.org/git/meta-yocto" + +meta-qcom: + url: "https://github.com/ndechesne/meta-qcom" + +bitbake: + url: "https://github.com/openembedded/bitbake" + +meta-openembedded: + url: "https://github.com/openembedded/meta-openembedded" + +openembedded-core: + url: "https://github.com/openembedded/openembedded-core" + +meta-linaro: + url: "https://git.linaro.org/openembedded/meta-linaro" + diff --git a/release-notes-schema.yml b/release-notes-schema.yml new file mode 100644 index 0000000..ce2d4de --- /dev/null +++ b/release-notes-schema.yml @@ -0,0 +1,64 @@ +## A pykwalify schema to validate the release-notes.yml file + +type: map +mapping: + highlights: + required: true + type: seq + sequence: + - type: str + + summary: + required: true + type: str + + parts: + required: false + type: seq + sequence: + - type: map + mapping: + name: + required: true + type: str + summary: + required: true + type: str + projects: + required: true + type: seq + sequence: + - type: map + mapping: + name: + required: true + type: str + manifest_project: + type: str + features: + type: seq + sequence: + - type: map + mapping: + heading: + required: true + type: str + summary: + required: true + type: str + bug_fixes: + type: seq + sequence: + - type: map + mapping: + heading: + required: true + type: str + summary: + required: true + type: str + cves: + required: false + type: seq + sequence: + - type: str diff --git a/release-notes.yml b/release-notes.yml new file mode 100644 index 0000000..b16c022 --- /dev/null +++ b/release-notes.yml @@ -0,0 +1,196 @@ +highlights: + - OSF Unified Linux Kernel updated to 4.14.13 + - U-Boot updated to the 2017.11 release. + - Raspberry Pi firmware updated to the 20171029 snapshot. + - Initial support for Raspberry Pi 3 64-bit. +summary: | + This kernel update includes x86 support for kernel page-table isolation + (KPTI), which mitigates the recent meltdown security vulnerability. +parts: + - name: Linux microPlatform + summary: | + OSF Unified Linux Kernel updated to 4.14.13. + projects: + - name: Meta OSF Layer + manifest_project: meta-osf + features: + - heading: Layer Update + summary: | + OSF Unified Linux Kernel updated to 4.14.13. + QCA6174 firmware updated to WLAN.RM.4.4.1-00079-QCARMSWPZ-1. + Initial support for Raspberry Pi 3 64-bit. + - heading: Build Environment Speedup + summary: | + The build environment has been updated to use a mirror of the + sstate cache which drastically improves the time it takes to + build the first time. + - name: Meta Intel + manifest_project: git/meta-intel + features: + - heading: Layer Update + summary: | + Intel microcode updated to 20180108. + - name: Meta Linaro + manifest_project: openembedded/meta-linaro + features: + - heading: Layer Update + summary: | + OPTEE OS recipe updated to simplify the deply logic. + GCC Linaro 7.1 updated to include ILP32 patches for correct + triplet. + Binutils updated to include patches for correct gnu_ilp32 + triplet. + - name: Meta Qualcomm + manifest_project: ndechesne/meta-qcom + features: + - heading: Layer Update + summary: | + wic.bmap image type added for Dragonboard 410c. + - name: OpenEmbedded-Core Layer + manifest_project: openembedded/openembedded-core + features: + - heading: Layer Update + summary: | + Glibc updated to the latest on 2.26 release. + Binutils updated to 2.29.1. + Python Setuptools updated to 38.2.5. + Nss updated to 3.34.1. + Avahi updated to 0.7. + Dbus updated to 1.12.2. + Coreutils updated to 8.28. + libunistring updated to 0.9.8. + Mc updated to 4.8.20. + Psmisc updated to 23.0. + Gobject introspection updated to 1.54.1. + Pciutils updated to 3.5.6. + Alsa-utils, alsa-plugins and alsa-lib updated to 1.1.5. + Gnutls updated to 3.6.1. + Openssl10 updated to 1.0.2m. + Icu updated to 60.1. + libpciaccess updated to 0.14. + Dtc updated to 1.4.5. + Glib-2.0 updated to 2.54.2. + U-Boot updated to 2017.11. + Ethtool updated to 4.13. + Strace updated to 4.19. + Less updated to 527. + Logrotate updated to 3.13.0. + Git updated to 2.15.0. + File updated to 5.32. + e2fsprogs updated to 1.43.7. + Iproute2 updated to 4.13. + Gawk updated to 4.2.0. + Sudo updated to 1.8.21p2. + SQlite3 updated to 3.21.0. + Quota updated to 4.04. + Linux-firmware updated to the bf04291 git revision. + CMake updated to 3.9.5. + libgudev updated to 232. + Shared-mime-info updated to 1.9. + Iso-codes updated to 3.76. + Boost updated to 1.65.1. + libsolv updated to 0.6.29. + Vala updated to 0.38.2. + Qemu updated to 2.10.1. + bug_fixes: + - heading: icu + summary: | + Fix double free in i18n/zonemeta.cpp. + cves: + - 2017-14952 + - heading: openssl10 + summary: | + Multiple issues. + cves: + - 2017-3736 + - 2017-3735 + - heading: busybox + summary: | + Vulnerability in the tab-complete logic. + cves: + - 2017-16544 + - heading: binutils + summary: | + Multiple issues. + cves: + - 2017-15939 + - 2017-15938 + - 2017-15225 + - 2017-15025 + - 2017-15024 + - 2017-15023 + - 2017-15022 + - 2017-15021 + - 2017-15020 + - 2017-14974 + - 2017-14940 + - 2017-14939 + - 2017-14938 + - 2017-14934 + - 2017-14933 + - 2017-14932 + - 2017-14930 + - 2017-14745 + - 2017-14729 + - 2017-14529 + - 2017-14333 + - 2017-14130 + - 2017-14129 + - 2017-14128 + - 2017-13757 + - 2017-13716 + - 2017-13710 + - 2017-12967 + - 2017-12799 + - 2017-12459 + - 2017-12458 + - 2017-12457 + - 2017-12456 + - 2017-12455 + - 2017-12454 + - 2017-12453 + - 2017-12452 + - 2017-12451 + - 2017-12450 + - 2017-12449 + - 2017-12448 + - name: Meta Virtualization + manifest_project: git/meta-virtualization + features: + - heading: Layer Update + summary: | + Switch remaining pypi recipes to use the pypi class. + - name: Meta OpenEmbedded Layer + manifest_project: openembedded/meta-openembedded + features: + - heading: Layer Update + summary: | + Python-pyopenssl updated to 17.5.0. + Python-cryptography updated to 2.1.4. + Python-asn1crypto updated to 0.24.0. + Python3-certifi updated to 2017.11.5. + Python-pytest updated to 3.2.3. + Python-pyasn1 updated to 0.3.7. + Htop updated to v2.0.2. + bug_fixes: + - heading: vim + summary: | + Information leak when creating swp files. + cves: + - 2017-17087 + - name: Meta Raspberrypi Layer + manifest_project: git/meta-raspberrypi + features: + - heading: Layer Update + summary: | + Config RPI_EXTRA_CONFIG added to rpi-config. + Default KERNEL_IMAGETYPE changed to zImage. + Default KERNEL_IMAGETYPE for raspberrypi3-64 changed to Image. + Firmware updated to 20171029. + U-Boot support for Raspberry Pi Zero W. + - name: Meta Freescale Layer + manifest_project: git/meta-freescale + features: + - heading: Layer Update + summary: | + U-boot-fslc updated to 2017.11-based fork. diff --git a/setup-environment-internal b/setup-environment-internal index ef5e6c4..dd0560e 100644 --- a/setup-environment-internal +++ b/setup-environment-internal @@ -2,6 +2,7 @@ # -*- mode: shell-script-mode; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- # # Copyright (C) 2012-13 O.S. Systems Software LTDA. +# Copyright (C) 2017 Open Source Foundries Ltd. # Authored-by: Otavio Salvador <otavio@ossystems.com.br> # Adopted to Angstrom: Khem Raj <raj.khem@gmail.com> # @@ -18,19 +19,19 @@ # with this program; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. # -RPBcleanup() { - unset MACHINETABLE MACHLAYERS DISTROTABLE DISTROLAYERS DISTRO_DIRNAME OEROOT - unset ITEM MANIFESTS EULA EULA_MACHINE REPLY READ_EULA - unset usage oldmach +env_cleanup() { + unset MACHINETABLE MACHLAYERS DISTRO_DIRNAME OEROOT + unset ITEM MANIFESTS EULA EULA_MACHINE REPLY READ_EULA + unset usage oldmach - if [ -n "$BUILDDIR" ]; then - export BUILDDIR - fi + if [ -n "$BUILDDIR" ]; then + export BUILDDIR + fi } -trap RPBcleanup RETURN +trap env_cleanup RETURN if [ "$(whoami)" = "root" ]; then - echo "ERROR: do not use the BSP as root. Exiting..." + echo "ERROR: do not build LMP as root. Exiting..." return fi @@ -43,14 +44,16 @@ elif [ -n "$BASH_VERSION" ]; then set +o noclobber fi +# Set default distro to Linux microPlatform +DISTRO=lmp + usage () { cat <<EOF -Usage: [DISTRO=<DISTRO>] [MACHINE=<MACHINE>] source ${BASH_SOURCE[0]} [BUILDDIR] +Usage: [MACHINE=<MACHINE>] source ${BASH_SOURCE[0]} [BUILDDIR] If no MACHINE is set, list all possible machines, and ask user to choose. -If no DISTRO is set, list all possible distros, and ask user to choose. -If no BUILDIR is set, it will be set to build-DISTRO. +If no BUILDIR is set, it will be set to build-$DISTRO. EOF } @@ -59,9 +62,13 @@ if [ $# -gt 1 ]; then usage return 1 fi -# create a common list of "<machine>(<layer>)", sorted by <machine> -# Blacklist OE-core and meta-linaro, we only want 96boards + vendor layers -MACHLAYERS=$(find layers -print | grep "conf/machine/.*\.conf" | grep -v scripts | grep -v openembedded-core | grep -v meta-linaro | sed -e 's/\.conf//g' -e 's/layers\///' | awk -F'/conf/machine/' '{print $NF "(" $1 ")"}' | LANG=C sort) + +# Create a common list of "<machine>(<layer>)", sorted by <machine> +# Blacklist OE-core and meta-linaro, we only want BSP layers +MACHLAYERS=$(find layers -print | grep "conf/machine/.*\.conf" | + grep -v scripts | grep -v openembedded-core | grep -v meta-linaro | + sed -e 's/\.conf//g' -e 's/layers\///' | + awk -F'/conf/machine/' '{print $NF "(" $1 ")"}' | LANG=C sort) if [ -z "${MACHINE}" ]; then # whiptail @@ -69,11 +76,12 @@ if [ -z "${MACHINE}" ]; then if [ $? -eq 0 ]; then MACHINETABLE= for ITEM in $MACHLAYERS; do - MACHINETABLE="${MACHINETABLE} $(echo "$ITEM" | cut -d'(' -f1) $(echo "$ITEM" | cut -d'(' -f2 | cut -d')' -f1)" + MACHINETABLE="${MACHINETABLE} $(echo "$ITEM" | cut -d'(' -f1) \ + $(echo "$ITEM" | cut -d'(' -f2 | cut -d')' -f1)" done MACHINE=$(whiptail --title "Available Machines" --menu \ - "Please choose a machine" 0 0 20 \ - ${MACHINETABLE} 3>&1 1>&2 2>&3) + "Please choose a machine" 0 0 20 \ + ${MACHINETABLE} 3>&1 1>&2 2>&3) fi # dialog @@ -82,57 +90,26 @@ if [ -z "${MACHINE}" ]; then if [ $? -eq 0 ]; then MACHINETABLE= for ITEM in $MACHLAYERS; do - MACHINETABLE="$MACHINETABLE $(echo "$ITEM" | cut -d'(' -f1) $(echo "$ITEM" | cut -d'(' -f2 | cut -d')' -f1)" - done - MACHINE=$(dialog --title "Available Machines" --menu "Please choose a machine" 0 0 20 $MACHINETABLE 3>&1 1>&2 2>&3) - fi - fi -fi - -# create a common list of "<distro>(<layer>)", sorted by <distro> -# Blacklist OE-core and meta-linaro, we only want 96boards + vendor layers -DISTROLAYERS=$(find layers -print | grep "conf/distro/.*\.conf" | grep -v scripts | grep -v openembedded-core | grep -v meta-linaro | sed -e 's/\.conf//g' -e 's/layers\///' | awk -F'/conf/distro/' '{print $NF "(" $1 ")"}' | LANG=C sort) - -if [ -n "${DISTROLAYERS}" ] && [ -z "${DISTRO}" ]; then - # whiptail - which whiptail > /dev/null 2>&1 - if [ $? -eq 0 ]; then - DISTROTABLE= - for ITEM in $DISTROLAYERS; do - DISTROTABLE="${DISTROTABLE} $(echo "$ITEM" | cut -d'(' -f1) $(echo "$ITEM" | cut -d'(' -f2 | cut -d')' -f1)" - done - DISTRO=$(whiptail --title "Available Distributions" --menu \ - "Please choose a distribution" 0 0 20 \ - ${DISTROTABLE} 3>&1 1>&2 2>&3) - fi - - # dialog - if [ -z "$DISTRO" ]; then - which dialog > /dev/null 2>&1 - if [ $? -eq 0 ]; then - DISTROTABLE= - for ITEM in $DISTROLAYERS; do - DISTROTABLE="$DISTROTABLE $(echo "$ITEM" | cut -d'(' -f1) $(echo "$ITEM" | cut -d'(' -f2 | cut -d')' -f1)" + MACHINETABLE="$MACHINETABLE $(echo "$ITEM" | cut -d'(' -f1) \ + $(echo "$ITEM" | cut -d'(' -f2 | cut -d')' -f1)" done - DISTRO=$(dialog --title "Available Distributions" --menu "Please choose a distribution" 0 0 20 $DISTROTABLE 3>&1 1>&2 2>&3) + MACHINE=$(dialog --title "Available Machines" --menu \ + "Please choose a machine" 0 0 20 $MACHINETABLE \ + 3>&1 1>&2 2>&3) fi fi fi -# If nothing has been set, go for 'nodistro' -if [ -z "$DISTRO" ]; then - DISTRO="nodistro" -fi - # guard against Ctrl-D or cancel if [ -z "$MACHINE" ]; then echo "To choose a machine interactively please install whiptail or dialog." - echo "To choose a machine non-interactively please use the following syntax:" + echo "To choose a machine non-interactively please use the following:" echo " MACHINE=<your-machine> . ./setup-environment" echo "" echo "Press <ENTER> to see a list of your choices" read -r - echo "$MACHLAYERS" | sed -e 's/(/ (/g' | sed -e 's/)/)\n/g' | sed -e 's/^ */\t/g' + echo "$MACHLAYERS" | sed -e 's/(/ (/g' | sed -e 's/)/)\n/g' | + sed -e 's/^ */\t/g' return fi @@ -142,7 +119,7 @@ fi MANIFESTS="${OEROOT}"/.repo/manifests -# we can be called with only 1 parameter max, <build> folder, or default to build-$distro +# We can be called with only 1 parameter max (build folder) BUILDDIR=build-$DISTRO if [ $# -eq 1 ]; then BUILDDIR=$1 @@ -152,86 +129,32 @@ BUILDDIR=$OEROOT/$BUILDDIR # Clean up PATH, because if it includes tokens to current directories somehow, # wrong binaries can be used instead of the expected ones during task execution export PATH=$(echo "${PATH}" | sed 's/\(:.\|:\)*:/:/g;s/^.\?://;s/:.\?$//') -export PATH="${OEROOT}"/layers/openembedded-core/scripts:"${OEROOT}"/bitbake/bin:"${OEROOT}"/.repo/repo:"${PATH}" -#remove duplicate path entries -export PATH=$(echo "$PATH" | awk -F: '{for (i=1;i<=NF;i++) { if ( !x[$i]++ ) printf("%s:",$i); }}' | sed 's/:$//') -# Make sure Bitbake doesn't filter out the following variables from our -# environment. -export BB_ENV_EXTRAWHITE="MACHINE DISTRO TCLIBC TCMODE GIT_PROXY_COMMAND http_proxy ftp_proxy https_proxy all_proxy ALL_PROXY no_proxy SSH_AGENT_PID SSH_AUTH_SOCK BB_SRCREV_POLICY SDKMACHINE BB_NUMBER_THREADS" - -# Helper command for building images for mixed 32bit/64bit -# ARM builds. The command allow to specify a secondary MACHINE -# and image that will be built next to the primary target. -# If no secondary image is specified the rpb-minimal-image image -# will be built. - - -bitbake_secondary_image () { - BITBAKE_OPTIONS="" - unset EXTRA_MACHINE - unset SECONDARY_IMAGE - - SECONDARY_IMAGE='rpb-minimal-image' - while [[ $# -gt 1 ]] - do - key="$1" - case $key in - --extra-machine) - EXTRA_MACHINE="$2" - shift - ;; - --secondary-image) - SECONDARY_IMAGE="$2" - shift - ;; - *) - BITBAKE_OPTIONS=$BITBAKE_OPTIONS" "$1 - ;; - esac - shift - done - BITBAKE_OPTIONS=$BITBAKE_OPTIONS" "$1 - if [ -z "$EXTRA_MACHINE" ] - then - echo " Error: you need to run $FUNCNAME with --extra-machine agument" - echo - echo " Example:" - echo " $ $FUNCNAME --extra-machine hikey rpb-weston-image" - return - fi - - if [ "$EXTRA_MACHINE" == "$MACHINE" ] - then - echo "Error: the extra machine must be different from the machine you already set using setup-environment: "$MACHINE - return - fi - - echo "Building first image. MACHINE:" $EXTRA_MACHINE " DISTRO:" $DISTRO - - MACHINE=$EXTRA_MACHINE bitbake $SECONDARY_IMAGE - - if [ $? != 0 ]; then - printf "Error building image" - return - fi - echo "Building second image. MACHINE:" $MACHINE " DISTRO:" $DISTRO +export PATH="${OEROOT}/bitbake/bin:${OEROOT}/.repo/repo:${PATH}" +export PATH="${OEROOT}/layers/openembedded-core/scripts:${PATH}" +# Remove duplicate path entries +export PATH=$(echo "$PATH" | + awk -F: '{for (i=1;i<=NF;i++) { if ( !x[$i]++ ) printf("%s:",$i); }}' | + sed 's/:$//') +# Make sure Bitbake doesn't filter out the following variables from our env +export BB_ENV_EXTRAWHITE="MACHINE DISTRO TCLIBC TCMODE GIT_PROXY_COMMAND \ + http_proxy ftp_proxy https_proxy all_proxy ALL_PROXY no_proxy \ + SSH_AGENT_PID SSH_AUTH_SOCK BB_SRCREV_POLICY SDKMACHINE \ + BB_NUMBER_THREADS" - MACHINE=$MACHINE bitbake $BITBAKE_OPTIONS -} mkdir -p "${BUILDDIR}"/conf && cd "${BUILDDIR}" if [ -f "conf/auto.conf" ]; then - oldmach=$(egrep "^MACHINE" "conf/auto.conf" | sed -e 's%^MACHINE ?= %%' | sed -e 's/^"//' -e 's/"$//') + oldmach=$(egrep "^MACHINE" "conf/auto.conf" | + sed -e 's%^MACHINE ?= %%' | sed -e 's/^"//' -e 's/"$//') fi -if [ -e conf/checksum -a "${MACHINE}" = "$oldmach" ] -then + +if [ -e conf/checksum -a "${MACHINE}" = "$oldmach" ]; then sha512sum --quiet -c conf/checksum > /dev/null 2>&1 - if [ $? -eq 0 ] - then + if [ $? -eq 0 ]; then return fi fi -# evaluate new checksum and regenerate the conf files +# Evaluate new checksum and regenerate the conf files sha512sum "${MANIFESTS}"/setup-environment-internal 2>&1 > conf/checksum ln -sf "${MANIFESTS}"/conf/local.conf conf/local.conf @@ -250,22 +173,25 @@ SDKMACHINE ?= "${SDKMACHINE}" # Extra options that can be changed by the user INHERIT += "rm_work" EOF + if [ ! -e conf/site.conf ]; then cat > conf/site.conf <<_EOF - SCONF_VERSION = "1" # Where to store sources -DL_DIR = "${OEROOT}/downloads" +DL_DIR ?= "${OEROOT}/downloads" # Where to save shared state -SSTATE_DIR = "${OEROOT}/sstate-cache" +SSTATE_DIR ?= "${OEROOT}/sstate-cache" +# Where to save the build system work output TMPDIR = "${BUILDDIR}/tmp-${DISTRO_DIRNAME}" -# Go through the Firewall -#HTTP_PROXY = "http://${PROXYHOST}:${PROXYPORT}/" +# Where to save the packages and images +DEPLOY_DIR = "${BUILDDIR}/deploy" +# Go through the Firewall +#HTTP_PROXY = "http://${PROXYHOST}:${PROXYPORT}/" _EOF fi @@ -277,25 +203,26 @@ fi # set to 1 in auto.conf, which can later be used by the BSP. # If the env variable EULA_$MACHINE is set it is used by default, # without prompting the user. -# FIXME: there is a potential issue if the same $MACHINE is set in more than one layer.. but we should assert that earlier -EULA=$(find ../layers -path "*/conf/eula/$MACHINE" -print | grep -v scripts | grep -v openembedded-core | grep -v meta-linaro || true) +# FIXME: there is a potential issue if the same $MACHINE is set in +# more than one layer.. but we should assert that earlier +EULA=$(find ../layers -path "*/conf/eula/$MACHINE" -print | grep -v scripts | + grep -v openembedded-core | grep -v meta-linaro || true) if [ -n "$EULA" ]; then - # remove '-' since we are constructing a bash variable name here EULA_MACHINE="EULA_$(echo "$MACHINE" | sed 's/-//g')" # NOTE: indirect reference / dynamic variable if [ -n "${!EULA_MACHINE}" ]; then - # the EULA_$MACHINE variable is set in the environment, so we just configure - # ACCEPT_EULA_$MACHINE in auto.conf + # the EULA_$MACHINE variable is set in the environment, so we just + # configure # ACCEPT_EULA_$MACHINE in auto.conf echo "ACCEPT_EULA_$MACHINE = \"${!EULA_MACHINE}\"" >> conf/auto.conf else # so we need to ask user if he/she accepts the EULA: cat <<EOF -The BSP for $MACHINE depends on packages and firmware which are covered by an End -User License Agreement (EULA). To have the right to use these binaries +The BSP for $MACHINE depends on packages and firmware which are covered by an +End User License Agreement (EULA). To have the right to use these binaries in your images, you need to read and accept the following... EOF @@ -344,7 +271,7 @@ fi cat <<EOF -Welcome to OpenEmbedded Reference Platform Build (OE RPB) +Welcome to Open Source Foundries Linux microPlatform (OSF LMP) For more information about OpenEmbedded see their website: http://www.openembedded.org/ @@ -358,10 +285,6 @@ Your build environemnt has been configured with: You can now run 'bitbake <target>' Some of common targets are: - rpb-console-image - rpb-desktop-image - rpb-weston-image - core-image-base - core-image-minimal + lmp-gateway-image EOF |