Re: [meta-rockchip][PATCH v4 3/3] linux-yocto: add an initial NanoPi-M4 BSP
Yann Dirson
(sorry, previous answer _is_ empty, wrong button)
Le mar. 4 mai 2021 à 23:03, Trevor Woerner <twoerner@...> a écrit : Hm, good catch, I ended up not activating the AP6356S in this first patch, since it would be non-functional without the proper firmware, and that one needs separate work. It makes sense not to include those options at all here. I will double-check before rerolling, IIRC it is a common block useddiff --git a/recipes-kernel/linux/files/bsp/rockchip/nanopi-m4.scc b/recipes-kernel/linux/files/bsp/rockchip/nanopi-m4.sccOops, is enabling this RK3288 setting an oversight? Or is it needed for HDMI by the 3399, whose legacy naming is just confusing. + -- Yann Dirson <yann@...> Blade / Shadow -- http://shadow.tech
|
||||
|
||||
Re: [meta-rockchip][PATCH v4 3/3] linux-yocto: add an initial NanoPi-M4 BSP
Yann Dirson
Le mar. 4 mai 2021 à 23:03, Trevor Woerner <twoerner@...> a écrit :
-- Yann Dirson <yann@...> Blade / Shadow -- http://shadow.tech
|
||||
|
||||
Re: #yocto cmake configurations
#yocto
I see its using -rdynamic -static so next question is that do you have .a files in your sdk ?
On Tue, May 4, 2021 at 12:57 PM Monsees, Steven C (US) via lists.yoctoproject.org <steven.monsees=baesystems.com@...> wrote:
|
||||
|
||||
Re: [meta-zephyr][PATCH] CI: add Gitlab CI support
Jon Mason
Please disregard, sloppy scripting bit me
On Tue, May 4, 2021 at 4:53 PM Jon Mason via lists.yoctoproject.org <jdmason=kudzu.us@...> wrote:
|
||||
|
||||
[meta-zephyr][PATCH] CI: add Gitlab CI support
Jon Mason
Signed-off-by: Jon Mason <jon.mason@...>
--- .gitlab-ci.yml | 174 ++++++++++++++++++ ci/96b-avenger96.yml | 9 + ci/96b-nitrogen.yml | 6 + ci/acrn.yml | 6 + ci/base.yml | 35 ++++ ci/check-machine-coverage | 26 +++ ci/check-warnings | 18 ++ ci/jobs-to-kas | 19 ++ ci/logging.yml | 13 ++ ci/meta-oe.yml | 8 + ci/meta-python.yml | 10 + ci/qemu-cortex-m3.yml | 6 + ci/qemu-nios2.yml | 6 + ci/qemu-x86.yml | 6 + ci/testimage.yml | 5 + ci/update-repos | 40 ++++ .../zephyr-kernel/zephyr-kernel-test.inc | 3 + 17 files changed, 390 insertions(+) create mode 100644 .gitlab-ci.yml create mode 100644 ci/96b-avenger96.yml create mode 100644 ci/96b-nitrogen.yml create mode 100644 ci/acrn.yml create mode 100644 ci/base.yml create mode 100755 ci/check-machine-coverage create mode 100755 ci/check-warnings create mode 100755 ci/jobs-to-kas create mode 100644 ci/logging.yml create mode 100644 ci/meta-oe.yml create mode 100644 ci/meta-python.yml create mode 100644 ci/qemu-cortex-m3.yml create mode 100644 ci/qemu-nios2.yml create mode 100644 ci/qemu-x86.yml create mode 100644 ci/testimage.yml create mode 100755 ci/update-repos diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 000000000000..26bd1b7a5c62 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,174 @@ +image: ghcr.io/siemens/kas/kas-isar + + # First do a common bootstrap, and then build all the targets +stages: + - prep + - bootstrap + - build + - test + +# Common job fragment to get a worker ready +.setup: + stage: build + variables: + KAS_WORK_DIR: $CI_PROJECT_DIR/work + KAS_REPO_REF_DIR: $CI_BUILDS_DIR/persist/repos + SSTATE_DIR: $CI_BUILDS_DIR/persist/sstate + DL_DIR: $CI_BUILDS_DIR/persist/downloads + BB_LOGCONFIG: $CI_PROJECT_DIR/ci/logging.yml + before_script: + - echo KAS_WORK_DIR = $KAS_WORK_DIR + - echo SSTATE_DIR = $SSTATE_DIR + - echo DL_DIR = $DL_DIR + - mkdir --verbose --parents $KAS_WORK_DIR $KAS_REPO_REF_DIR $SSTATE_DIR $DL_DIR + +# Generalised fragment to do a Kas build +.build: + extends: .setup + script: + - KASFILES=$(./ci/jobs-to-kas $CI_JOB_NAME) + - kas shell --update --force-checkout $KASFILES -c 'cat conf/*.conf' + - kas build $KASFILES + - ./ci/check-warnings $KAS_WORK_DIR/build/warnings.log + +# KAS testing +.test: + extends: .setup + stage: test + script: + - sudo chown -R builder $KAS_WORK_DIR + - sudo chgrp -R builder $KAS_WORK_DIR + - KASFILES=$(./ci/jobs-to-kas $CI_JOB_NAME) + - kas build $KASFILES -c testimage + + +# +# Prep stage, update repositories once +# +update-repos: + extends: .setup + stage: prep + script: + - flock --verbose --timeout 60 $KAS_REPO_REF_DIR ./ci/update-repos + + +# +# Bootstrap stage, machine coverage +# + +# What percentage of machines in the layer do we build +machine-coverage: + stage: bootstrap + script: + - ./ci/check-machine-coverage + coverage: '/Coverage: \d+/' + + +# +# Build stage, the actual build jobs +# + +96b-avenger96: + extends: .build + +96b-nitrogen: + extends: .build + +acrn: + extends: .build + +qemu-cortex-m3: + extends: .build + artifacts: + paths: + - work/build/tmp-newlib/deploy/images/qemu-cortex-m3/* + expire_in: 1 day + +qemu-nios2: + extends: .build + artifacts: + paths: + - work/build/tmp-newlib/deploy/images/qemu-nios2/* + expire_in: 1 day + allow_failure: true + +qemu-x86: + extends: .build + artifacts: + paths: + - work/build/tmp-newlib/deploy/images/qemu-x86/* + expire_in: 1 day + + +# +# Third phase, the test jobs +# + +# QEMU based machines can use testimage, others will need something else (i.e., LAVA) + +qemu-cortex-m3/testimage: + extends: .test + needs: + - job: qemu-cortex-m3 + +qemu-nios2/testimage: + extends: .test + needs: + - job: qemu-nios2 + allow_failure: true + +qemu-x86/testimage: + extends: .test + needs: + - job: qemu-x86 + + +# +# Utility tasks, not executed automatically +# + +# Make the persistant files modifiable by all runners +chmod-presistent: + extends: .setup + stage: prep + when: manual + script: + - chmod -R 755 $CI_BUILDS_DIR/persist/* + +delete-dl-dir: + extends: .setup + stage: prep + when: manual + script: + - rm -rf $DL_DIR/* + +delete-repo-dir: + extends: .setup + stage: prep + when: manual + script: + - rm -rf $KAS_REPO_REF_DIR/* + +# Delete all sstate +delete-sstate: + extends: .setup + stage: prep + when: manual + script: + - rm -rf $SSTATE_DIR/* + +# Wipe out old sstate +prune-sstate: + extends: .setup + stage: prep + when: manual + script: + - find $SSTATE_DIR -type f -atime +30 -delete + +# Report on disk usage +usage: + extends: .setup + stage: prep + when: manual + script: + - du -h -s $DL_DIR $SSTATE_DIR $KAS_REPO_REF_DIR diff --git a/ci/96b-avenger96.yml b/ci/96b-avenger96.yml new file mode 100644 index 000000000000..9ab58aa83ffa --- /dev/null +++ b/ci/96b-avenger96.yml @@ -0,0 +1,9 @@ +header: + version: 9 + includes: + - base.yml + +machine: 96b-avenger96 + +target: + - zephyr-philosophers diff --git a/ci/96b-nitrogen.yml b/ci/96b-nitrogen.yml new file mode 100644 index 000000000000..ecd96fb67136 --- /dev/null +++ b/ci/96b-nitrogen.yml @@ -0,0 +1,6 @@ +header: + version: 9 + includes: + - base.yml + +machine: 96b-nitrogen diff --git a/ci/acrn.yml b/ci/acrn.yml new file mode 100644 index 000000000000..53748defebec --- /dev/null +++ b/ci/acrn.yml @@ -0,0 +1,6 @@ +header: + version: 9 + includes: + - base.yml + +machine: acrn diff --git a/ci/base.yml b/ci/base.yml new file mode 100644 index 000000000000..1e25e6655165 --- /dev/null +++ b/ci/base.yml @@ -0,0 +1,35 @@ +header: + version: 9 + includes: + - meta-python.yml + +distro: zephyr + +defaults: + repos: + refspec: hardknott + +repos: + meta-zephyr: + + poky: + url: https://git.yoctoproject.org/git/poky + layers: + meta: + meta-poky: + +env: + BB_LOGCONFIG: "" + +local_conf_header: + base: | + CONF_VERSION = "1" + INHERIT += "rm_work" + ERROR_QA = "${WARN_QA}" + testimage: | + IMAGE_CLASSES += "testimage" + +machine: unset + +target: + - zephyr-kernel-test-all diff --git a/ci/check-machine-coverage b/ci/check-machine-coverage new file mode 100755 index 000000000000..726714d8b0fe --- /dev/null +++ b/ci/check-machine-coverage @@ -0,0 +1,26 @@ +#! /usr/bin/env python3 + +from pathlib import Path +import sys + +metazephyr = Path.cwd() + +if metazephyr.name != "meta-zephyr": + print("Not running inside meta-zephyr") + sys.exit(1) + +# All machine configurations +machines = metazephyr.glob("conf/machine/*.conf") +machines = set(p.stem for p in machines) + +# All kas files +kas = metazephyr.glob("ci/*.yml") +kas = set(p.stem for p in kas) + +missing = machines - kas +print(f"The following machines are missing: {', '.join(sorted(missing))}.") + +covered = len(machines) - len(missing) +total = len(machines) +percent = int(covered / total * 100) +print(f"Coverage: {percent}%") diff --git a/ci/check-warnings b/ci/check-warnings new file mode 100755 index 000000000000..cc396423d8bf --- /dev/null +++ b/ci/check-warnings @@ -0,0 +1,18 @@ +#! /bin/bash + +# Expects the path to a log file as $1, and if this file has any content +# then display the contents and exit with an error code. + +set -e -u + +LOGFILE=$1 + +if test -s $LOGFILE; then + echo ============================== + echo The build had warnings/errors: + echo ============================== + cat $LOGFILE + exit 1 +fi + +exit 0 diff --git a/ci/jobs-to-kas b/ci/jobs-to-kas new file mode 100755 index 000000000000..70579703bc07 --- /dev/null +++ b/ci/jobs-to-kas @@ -0,0 +1,19 @@ +#! /bin/bash + +# Read a GitLab CI job name on $1 and transform it to a +# list of Kas yaml files + +set -e -u + +# Read Job namne from $1 and split on / +IFS=/ read -r -a PARTS<<<$1 + +# Prefix each part with ci/ +PARTS=("${PARTS[@]/#/ci/}") + +# Suffix each part with .yml +PARTS=("${PARTS[@]/%/.yml}") + +# Print colon-separated +IFS=":" +echo "${PARTS[*]}" diff --git a/ci/logging.yml b/ci/logging.yml new file mode 100644 index 000000000000..3af10295f8f3 --- /dev/null +++ b/ci/logging.yml @@ -0,0 +1,13 @@ +# Python logging configuration to write all warnings to a separate file +version: 1 + +handlers: + warnings: + class: logging.FileHandler + level: WARNING + filename: warnings.log + formatter: BitBake.logfileFormatter + +loggers: + BitBake: + handlers: [warnings] diff --git a/ci/meta-oe.yml b/ci/meta-oe.yml new file mode 100644 index 000000000000..ccd34f3a3ffa --- /dev/null +++ b/ci/meta-oe.yml @@ -0,0 +1,8 @@ +header: + version: 9 + +repos: + meta-openembedded: + url: https://git.openembedded.org/meta-openembedded + layers: + meta-oe: diff --git a/ci/meta-python.yml b/ci/meta-python.yml new file mode 100644 index 000000000000..3f76118ccd09 --- /dev/null +++ b/ci/meta-python.yml @@ -0,0 +1,10 @@ +header: + version: 9 + includes: + - meta-oe.yml + +repos: + meta-openembedded: + url: https://git.openembedded.org/meta-openembedded + layers: + meta-python: diff --git a/ci/qemu-cortex-m3.yml b/ci/qemu-cortex-m3.yml new file mode 100644 index 000000000000..73b46039abed --- /dev/null +++ b/ci/qemu-cortex-m3.yml @@ -0,0 +1,6 @@ +header: + version: 9 + includes: + - base.yml + +machine: qemu-cortex-m3 diff --git a/ci/qemu-nios2.yml b/ci/qemu-nios2.yml new file mode 100644 index 000000000000..75166054c265 --- /dev/null +++ b/ci/qemu-nios2.yml @@ -0,0 +1,6 @@ +header: + version: 9 + includes: + - base.yml + +machine: qemu-nios2 diff --git a/ci/qemu-x86.yml b/ci/qemu-x86.yml new file mode 100644 index 000000000000..c5d23f471bf8 --- /dev/null +++ b/ci/qemu-x86.yml @@ -0,0 +1,6 @@ +header: + version: 9 + includes: + - base.yml + +machine: qemu-x86 diff --git a/ci/testimage.yml b/ci/testimage.yml new file mode 100644 index 000000000000..e97e8970ec5e --- /dev/null +++ b/ci/testimage.yml @@ -0,0 +1,5 @@ +header: + version: 9 + +target: + - zephyr-kernel-test-all diff --git a/ci/update-repos b/ci/update-repos new file mode 100755 index 000000000000..fa638aad2efb --- /dev/null +++ b/ci/update-repos @@ -0,0 +1,40 @@ +#! /usr/bin/env python3 + +# Update clones of the repositories we need in KAS_REPO_REF_DIR to speed up fetches + +import sys +import os +import subprocess +import pathlib + +def repo_shortname(url): + # Taken from Kas (Repo.__getattr__) to ensure the logic is right + from urllib.parse import urlparse + url = urlparse(url) + return ('{url.netloc}{url.path}' + .format(url=url) + .replace('@', '.') + .replace(':', '.') + .replace('/', '.') + .replace('*', '.')) + +repositories = ( + "https://git.yoctoproject.org/git/poky", + "https://git.openembedded.org/meta-openembedded", +) + +if __name__ == "__main__": + if "KAS_REPO_REF_DIR" not in os.environ: + print("KAS_REPO_REF_DIR needs to be set") + sys.exit(1) + + base_repodir = pathlib.Path(os.environ["KAS_REPO_REF_DIR"]) + + for repo in repositories: + repodir = base_repodir / repo_shortname(repo) + if repodir.exists(): + print("Updating %s..." % repo) + subprocess.run(["git", "-C", repodir, "fetch"], check=True) + else: + print("Cloning %s..." % repo) + subprocess.run(["git", "clone", "--bare", repo, repodir], check=True) diff --git a/recipes-kernel/zephyr-kernel/zephyr-kernel-test.inc b/recipes-kernel/zephyr-kernel/zephyr-kernel-test.inc index b6b4766692a7..f5b1f0f035a8 100644 --- a/recipes-kernel/zephyr-kernel/zephyr-kernel-test.inc +++ b/recipes-kernel/zephyr-kernel/zephyr-kernel-test.inc @@ -5,6 +5,9 @@ ZEPHYRTESTS_remove = "fifo fpu_sharing lifo mbox mem_heap mem_pool \ # Exclude tests which does not build for various reasons ZEPHYRTESTS_remove = "gen_isr_table spinlock smp mp" +# Exclude tests that are no longer passing +ZEPHYRTESTS_remove += "common pending sleep context" + # test_context will fail because QEMU for ARM does not emulate CortexM3 BASEPRI register #ZEPHYRTESTS_remove_arm += "" -- 2.20.1
|
||||
|
||||
Re: [meta-rockchip][PATCH v4 3/3] linux-yocto: add an initial NanoPi-M4 BSP
Trevor Woerner
On Mon 2021-04-26 @ 04:58:10 PM, yann.dirson@... wrote:
From: Yann Dirson <yann@...>It looks to me as though the BRCMFMAC kernel config option needs to be enabled to support the AP6256S? I don't see that being enabled, does it end up being pulled in by default or as a result of the above two settings? diff --git a/recipes-kernel/linux/files/bsp/rockchip/nanopi-m4.scc b/recipes-kernel/linux/files/bsp/rockchip/nanopi-m4.sccOops, is enabling this RK3288 setting an oversight? Or is it needed for HDMI on the RK3399? +
|
||||
|
||||
what OE/YP layers should be considered "supported"?
Robert P. J. Day
related to something that richard purdie mentioned on the OE list,
if one wanted to do a YP-wide "cleanup" of some indeterminate form, what are the layers that would be considered mandatory to cover in such a cleanup? no-brainers would, of course, include: * oe-core * meta-openembedded beyond that, what else? i would think: * meta-virtualization * meta-java * meta-security * ... more? ... and there are the vendor layers: * meta-intel * meta-freescale * meta-qcom * meta-boundary where can one stop? rday
|
||||
|
||||
Re: [meta-rockchip][PATCH v4 2/3] NanoPi-M4: declare "usbhost" and "serial" in MACHINE_FEATURES
Trevor Woerner
On Mon 2021-04-26 @ 04:58:09 PM, yann.dirson@... wrote:
From: Yann Dirson <yann@...>applied to master, thanks!
|
||||
|
||||
Re: [meta-rockchip][PATCH v4 1/3] NanoPi-M4: let all variants use the same KMACHINE type
Trevor Woerner
On Mon 2021-04-26 @ 04:58:08 PM, yann.dirson@... wrote:
From: Yann Dirson <yann@...>applied to master, thanks!
|
||||
|
||||
[meta-zephyr][PATCH] CI: add Gitlab CI support
Jon Mason
Signed-off-by: Jon Mason <jon.mason@...>
--- .gitlab-ci.yml | 174 ++++++++++++++++++ ci/96b-avenger96.yml | 9 + ci/96b-nitrogen.yml | 6 + ci/acrn.yml | 6 + ci/base.yml | 35 ++++ ci/check-machine-coverage | 26 +++ ci/check-warnings | 18 ++ ci/jobs-to-kas | 19 ++ ci/logging.yml | 13 ++ ci/meta-oe.yml | 8 + ci/meta-python.yml | 10 + ci/qemu-cortex-m3.yml | 6 + ci/qemu-nios2.yml | 6 + ci/qemu-x86.yml | 6 + ci/testimage.yml | 5 + ci/update-repos | 40 ++++ .../zephyr-kernel/zephyr-kernel-test.inc | 3 + 17 files changed, 390 insertions(+) create mode 100644 .gitlab-ci.yml create mode 100644 ci/96b-avenger96.yml create mode 100644 ci/96b-nitrogen.yml create mode 100644 ci/acrn.yml create mode 100644 ci/base.yml create mode 100755 ci/check-machine-coverage create mode 100755 ci/check-warnings create mode 100755 ci/jobs-to-kas create mode 100644 ci/logging.yml create mode 100644 ci/meta-oe.yml create mode 100644 ci/meta-python.yml create mode 100644 ci/qemu-cortex-m3.yml create mode 100644 ci/qemu-nios2.yml create mode 100644 ci/qemu-x86.yml create mode 100644 ci/testimage.yml create mode 100755 ci/update-repos diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 000000000000..26bd1b7a5c62 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,174 @@ +image: ghcr.io/siemens/kas/kas-isar + + # First do a common bootstrap, and then build all the targets +stages: + - prep + - bootstrap + - build + - test + +# Common job fragment to get a worker ready +.setup: + stage: build + variables: + KAS_WORK_DIR: $CI_PROJECT_DIR/work + KAS_REPO_REF_DIR: $CI_BUILDS_DIR/persist/repos + SSTATE_DIR: $CI_BUILDS_DIR/persist/sstate + DL_DIR: $CI_BUILDS_DIR/persist/downloads + BB_LOGCONFIG: $CI_PROJECT_DIR/ci/logging.yml + before_script: + - echo KAS_WORK_DIR = $KAS_WORK_DIR + - echo SSTATE_DIR = $SSTATE_DIR + - echo DL_DIR = $DL_DIR + - mkdir --verbose --parents $KAS_WORK_DIR $KAS_REPO_REF_DIR $SSTATE_DIR $DL_DIR + +# Generalised fragment to do a Kas build +.build: + extends: .setup + script: + - KASFILES=$(./ci/jobs-to-kas $CI_JOB_NAME) + - kas shell --update --force-checkout $KASFILES -c 'cat conf/*.conf' + - kas build $KASFILES + - ./ci/check-warnings $KAS_WORK_DIR/build/warnings.log + +# KAS testing +.test: + extends: .setup + stage: test + script: + - sudo chown -R builder $KAS_WORK_DIR + - sudo chgrp -R builder $KAS_WORK_DIR + - KASFILES=$(./ci/jobs-to-kas $CI_JOB_NAME) + - kas build $KASFILES -c testimage + + +# +# Prep stage, update repositories once +# +update-repos: + extends: .setup + stage: prep + script: + - flock --verbose --timeout 60 $KAS_REPO_REF_DIR ./ci/update-repos + + +# +# Bootstrap stage, machine coverage +# + +# What percentage of machines in the layer do we build +machine-coverage: + stage: bootstrap + script: + - ./ci/check-machine-coverage + coverage: '/Coverage: \d+/' + + +# +# Build stage, the actual build jobs +# + +96b-avenger96: + extends: .build + +96b-nitrogen: + extends: .build + +acrn: + extends: .build + +qemu-cortex-m3: + extends: .build + artifacts: + paths: + - work/build/tmp-newlib/deploy/images/qemu-cortex-m3/* + expire_in: 1 day + +qemu-nios2: + extends: .build + artifacts: + paths: + - work/build/tmp-newlib/deploy/images/qemu-nios2/* + expire_in: 1 day + allow_failure: true + +qemu-x86: + extends: .build + artifacts: + paths: + - work/build/tmp-newlib/deploy/images/qemu-x86/* + expire_in: 1 day + + +# +# Third phase, the test jobs +# + +# QEMU based machines can use testimage, others will need something else (i.e., LAVA) + +qemu-cortex-m3/testimage: + extends: .test + needs: + - job: qemu-cortex-m3 + +qemu-nios2/testimage: + extends: .test + needs: + - job: qemu-nios2 + allow_failure: true + +qemu-x86/testimage: + extends: .test + needs: + - job: qemu-x86 + + +# +# Utility tasks, not executed automatically +# + +# Make the persistant files modifiable by all runners +chmod-presistent: + extends: .setup + stage: prep + when: manual + script: + - chmod -R 755 $CI_BUILDS_DIR/persist/* + +delete-dl-dir: + extends: .setup + stage: prep + when: manual + script: + - rm -rf $DL_DIR/* + +delete-repo-dir: + extends: .setup + stage: prep + when: manual + script: + - rm -rf $KAS_REPO_REF_DIR/* + +# Delete all sstate +delete-sstate: + extends: .setup + stage: prep + when: manual + script: + - rm -rf $SSTATE_DIR/* + +# Wipe out old sstate +prune-sstate: + extends: .setup + stage: prep + when: manual + script: + - find $SSTATE_DIR -type f -atime +30 -delete + +# Report on disk usage +usage: + extends: .setup + stage: prep + when: manual + script: + - du -h -s $DL_DIR $SSTATE_DIR $KAS_REPO_REF_DIR diff --git a/ci/96b-avenger96.yml b/ci/96b-avenger96.yml new file mode 100644 index 000000000000..9ab58aa83ffa --- /dev/null +++ b/ci/96b-avenger96.yml @@ -0,0 +1,9 @@ +header: + version: 9 + includes: + - base.yml + +machine: 96b-avenger96 + +target: + - zephyr-philosophers diff --git a/ci/96b-nitrogen.yml b/ci/96b-nitrogen.yml new file mode 100644 index 000000000000..ecd96fb67136 --- /dev/null +++ b/ci/96b-nitrogen.yml @@ -0,0 +1,6 @@ +header: + version: 9 + includes: + - base.yml + +machine: 96b-nitrogen diff --git a/ci/acrn.yml b/ci/acrn.yml new file mode 100644 index 000000000000..53748defebec --- /dev/null +++ b/ci/acrn.yml @@ -0,0 +1,6 @@ +header: + version: 9 + includes: + - base.yml + +machine: acrn diff --git a/ci/base.yml b/ci/base.yml new file mode 100644 index 000000000000..1e25e6655165 --- /dev/null +++ b/ci/base.yml @@ -0,0 +1,35 @@ +header: + version: 9 + includes: + - meta-python.yml + +distro: zephyr + +defaults: + repos: + refspec: hardknott + +repos: + meta-zephyr: + + poky: + url: https://git.yoctoproject.org/git/poky + layers: + meta: + meta-poky: + +env: + BB_LOGCONFIG: "" + +local_conf_header: + base: | + CONF_VERSION = "1" + INHERIT += "rm_work" + ERROR_QA = "${WARN_QA}" + testimage: | + IMAGE_CLASSES += "testimage" + +machine: unset + +target: + - zephyr-kernel-test-all diff --git a/ci/check-machine-coverage b/ci/check-machine-coverage new file mode 100755 index 000000000000..726714d8b0fe --- /dev/null +++ b/ci/check-machine-coverage @@ -0,0 +1,26 @@ +#! /usr/bin/env python3 + +from pathlib import Path +import sys + +metazephyr = Path.cwd() + +if metazephyr.name != "meta-zephyr": + print("Not running inside meta-zephyr") + sys.exit(1) + +# All machine configurations +machines = metazephyr.glob("conf/machine/*.conf") +machines = set(p.stem for p in machines) + +# All kas files +kas = metazephyr.glob("ci/*.yml") +kas = set(p.stem for p in kas) + +missing = machines - kas +print(f"The following machines are missing: {', '.join(sorted(missing))}.") + +covered = len(machines) - len(missing) +total = len(machines) +percent = int(covered / total * 100) +print(f"Coverage: {percent}%") diff --git a/ci/check-warnings b/ci/check-warnings new file mode 100755 index 000000000000..cc396423d8bf --- /dev/null +++ b/ci/check-warnings @@ -0,0 +1,18 @@ +#! /bin/bash + +# Expects the path to a log file as $1, and if this file has any content +# then display the contents and exit with an error code. + +set -e -u + +LOGFILE=$1 + +if test -s $LOGFILE; then + echo ============================== + echo The build had warnings/errors: + echo ============================== + cat $LOGFILE + exit 1 +fi + +exit 0 diff --git a/ci/jobs-to-kas b/ci/jobs-to-kas new file mode 100755 index 000000000000..70579703bc07 --- /dev/null +++ b/ci/jobs-to-kas @@ -0,0 +1,19 @@ +#! /bin/bash + +# Read a GitLab CI job name on $1 and transform it to a +# list of Kas yaml files + +set -e -u + +# Read Job namne from $1 and split on / +IFS=/ read -r -a PARTS<<<$1 + +# Prefix each part with ci/ +PARTS=("${PARTS[@]/#/ci/}") + +# Suffix each part with .yml +PARTS=("${PARTS[@]/%/.yml}") + +# Print colon-separated +IFS=":" +echo "${PARTS[*]}" diff --git a/ci/logging.yml b/ci/logging.yml new file mode 100644 index 000000000000..3af10295f8f3 --- /dev/null +++ b/ci/logging.yml @@ -0,0 +1,13 @@ +# Python logging configuration to write all warnings to a separate file +version: 1 + +handlers: + warnings: + class: logging.FileHandler + level: WARNING + filename: warnings.log + formatter: BitBake.logfileFormatter + +loggers: + BitBake: + handlers: [warnings] diff --git a/ci/meta-oe.yml b/ci/meta-oe.yml new file mode 100644 index 000000000000..ccd34f3a3ffa --- /dev/null +++ b/ci/meta-oe.yml @@ -0,0 +1,8 @@ +header: + version: 9 + +repos: + meta-openembedded: + url: https://git.openembedded.org/meta-openembedded + layers: + meta-oe: diff --git a/ci/meta-python.yml b/ci/meta-python.yml new file mode 100644 index 000000000000..3f76118ccd09 --- /dev/null +++ b/ci/meta-python.yml @@ -0,0 +1,10 @@ +header: + version: 9 + includes: + - meta-oe.yml + +repos: + meta-openembedded: + url: https://git.openembedded.org/meta-openembedded + layers: + meta-python: diff --git a/ci/qemu-cortex-m3.yml b/ci/qemu-cortex-m3.yml new file mode 100644 index 000000000000..73b46039abed --- /dev/null +++ b/ci/qemu-cortex-m3.yml @@ -0,0 +1,6 @@ +header: + version: 9 + includes: + - base.yml + +machine: qemu-cortex-m3 diff --git a/ci/qemu-nios2.yml b/ci/qemu-nios2.yml new file mode 100644 index 000000000000..75166054c265 --- /dev/null +++ b/ci/qemu-nios2.yml @@ -0,0 +1,6 @@ +header: + version: 9 + includes: + - base.yml + +machine: qemu-nios2 diff --git a/ci/qemu-x86.yml b/ci/qemu-x86.yml new file mode 100644 index 000000000000..c5d23f471bf8 --- /dev/null +++ b/ci/qemu-x86.yml @@ -0,0 +1,6 @@ +header: + version: 9 + includes: + - base.yml + +machine: qemu-x86 diff --git a/ci/testimage.yml b/ci/testimage.yml new file mode 100644 index 000000000000..e97e8970ec5e --- /dev/null +++ b/ci/testimage.yml @@ -0,0 +1,5 @@ +header: + version: 9 + +target: + - zephyr-kernel-test-all diff --git a/ci/update-repos b/ci/update-repos new file mode 100755 index 000000000000..fa638aad2efb --- /dev/null +++ b/ci/update-repos @@ -0,0 +1,40 @@ +#! /usr/bin/env python3 + +# Update clones of the repositories we need in KAS_REPO_REF_DIR to speed up fetches + +import sys +import os +import subprocess +import pathlib + +def repo_shortname(url): + # Taken from Kas (Repo.__getattr__) to ensure the logic is right + from urllib.parse import urlparse + url = urlparse(url) + return ('{url.netloc}{url.path}' + .format(url=url) + .replace('@', '.') + .replace(':', '.') + .replace('/', '.') + .replace('*', '.')) + +repositories = ( + "https://git.yoctoproject.org/git/poky", + "https://git.openembedded.org/meta-openembedded", +) + +if __name__ == "__main__": + if "KAS_REPO_REF_DIR" not in os.environ: + print("KAS_REPO_REF_DIR needs to be set") + sys.exit(1) + + base_repodir = pathlib.Path(os.environ["KAS_REPO_REF_DIR"]) + + for repo in repositories: + repodir = base_repodir / repo_shortname(repo) + if repodir.exists(): + print("Updating %s..." % repo) + subprocess.run(["git", "-C", repodir, "fetch"], check=True) + else: + print("Cloning %s..." % repo) + subprocess.run(["git", "clone", "--bare", repo, repodir], check=True) diff --git a/recipes-kernel/zephyr-kernel/zephyr-kernel-test.inc b/recipes-kernel/zephyr-kernel/zephyr-kernel-test.inc index b6b4766692a7..f5b1f0f035a8 100644 --- a/recipes-kernel/zephyr-kernel/zephyr-kernel-test.inc +++ b/recipes-kernel/zephyr-kernel/zephyr-kernel-test.inc @@ -5,6 +5,9 @@ ZEPHYRTESTS_remove = "fifo fpu_sharing lifo mbox mem_heap mem_pool \ # Exclude tests which does not build for various reasons ZEPHYRTESTS_remove = "gen_isr_table spinlock smp mp" +# Exclude tests that are no longer passing +ZEPHYRTESTS_remove += "common pending sleep context" + # test_context will fail because QEMU for ARM does not emulate CortexM3 BASEPRI register #ZEPHYRTESTS_remove_arm += "" -- 2.20.1
|
||||
|
||||
Re: #yocto cmake configurations
#yocto
Monsees, Steven C (US)
Attached…
From: Khem Raj <raj.khem@...>
Sent: Tuesday, May 4, 2021 2:36 PM To: Monsees, Steven C (US) <steven.monsees@...> Cc: yocto@... Subject: Re: [yocto] #yocto cmake configurations
can you post full linker cmd which is failing ?
On Tue, May 4, 2021 at 11:24 AM Monsees, Steven C (US) via lists.yoctoproject.org <steven.monsees=baesystems.com@...> wrote:
|
||||
|
||||
Yocto Technical Team Minutes, Engineering Sync, for May 4, 2021
Trevor Woerner
Yocto Technical Team Minutes, Engineering Sync, for May 4, 2021
archive: https://docs.google.com/document/d/1ly8nyhO14kDNnFcW2QskANXW3ZT7QwKC5wWVDg9dDH4/edit == announcements == The upcoming Yocto Project Summit is taking place May 25-26 2021 details: https://www.yoctoproject.org/yocto-project-virtual-summit-2021/ registration: https://www.cvent.com/d/yjq4dr/4W?ct=868bfddd-ca91-46bb-aaa5-62d2b61b2501 == disclaimer == Best efforts are made to ensure the below is accurate and valid. However, errors sometimes happen. If any errors or omissions are found, please feel free to reply to this email with any corrections. == attendees == Trevor Woerner, Stephen Jolley, Armin Kuster, Alexandre Belloni, Joshua Watt, Michael Opdenacker, Joel Winarske, Randy MacLeod, Jere Viikari, Scott Murray, Trevor Gamblin, Steve Sakoman, angolini, Rob Woolley, Richard Purdie, Tim Orling, Bruce Ashfield, Jon Mason, Ross Burton, Peter Kjellerstedt, Martin Jansa, Michael Halstead, Alejandro H, Denys Dmytriyenko == notes == - 3.2.4 to be build this week, final release for 3.2 (gatesgarth) - Apr 2022 (3.5) will be the next LTS (kirkstone) - 3.4.1 patches going in (honister) - gcc-11, thanks to Khem - multiconfig fixes for bitbake - new uninative version for (patchelf, and gold linker issues) - ~62 AB INT issues == general == RP: relatively quiet week RP: AB failures are a nightmare, the uninative update was meant to fix an issue, was difficult to get in, but didn’t address the problem RP: upstream is not accepting the patchelf fix until we provide a test case RP: the qmp patch seems to cause some of the AB issues, maybe was also reported by Armin Ross: Khem was waiting to start a build due to a related issue RP: a path length issue with sockets JPEW: there is a work-around ScottM: what does this mean for dunfell support? is dunfell support to end at that time (Apr 2022)? RP: remains to be seen. we’re starting the new LTS Apr 2022, but no firm decision on what is to happen to dunfell in Apr 2022 yet JPEW: dunfell was really good for BSPs ScottM: yes, lots of good dunfell BSPs for AGL. although most are now wanting to update to a 5.10 kernel. many AGL members are using dunfell but simply updating the kernel (some are due to LXC) SS: feedback i got is that 2 years is not nearly long enough. it takes at least 2 years to develop the product, not to mention post-release support. “LTS” might mean 5+ years for many ScottM: true, 7-10 years even Randy: is there support for this ScottM: possibly RP: a longer LTS puts strain on community maintainers, there are larger ecosystem effects. we need to get that message out to the people benefiting from the LTS ScottM: backporting CVEs get difficult as the LTS gets further and further back RP: sure, oe-core might be supported, but what does that mean for meta-oe? Bruce: and there are other non-oecore and non-metaoe “important” layers TimO: users need to decide: long-term or latest Armin: they can’t get both TimO: i wonder what SS’s feedback is SS: it’s what i expected. there’s a lot more silence than expected, surprised there aren’t more patches coming in, would like to see more community involvement. the month that i provided prizes for CVE hunting actually brought in fewer CVE fixes RP: i’m seeing that with core as well, there seems to be less involvement and engagement than one would expect SS: there are some things that need other layers/scenarios but it’s not comprehensive TimO: and testing is even worse RP: i’m curious to know which other layers/tests SS is using SS: i like to add QT, and do builds for specific boards, runtime test some of them to make sure everything is still working on real hardware Armin: more layers are adding tests (ptests) RP: can’t keep up with ptest failures in core as it is today Randy: we’re gathering more logs wrt high latency on AB. haven’t had time to analyze yet. between rust and AB latency issues, is there a preference RP: they’re both important for different reasons Armin: is there a reason we went with no-password scheme for test-image? RP: you’re assuming there was a design and design decisions made; there wasn’t. it evolved out of debug-tweaks, organically, with what we had TimO: unfortunate assumptions, it works for the specific things being tested so changes have been made Armin: 2 places where a user:pass can be set: class or systemd. which is preferred? RP: (from memory) configs get set in base-passwd and injected at rootfs time PeterK: user add-extra class? Armin: then i need to inherit that class RP: root entry in passwd file, done in base-passwd. then it doesn’t matter whether it’s via class or systemd. i would start there Randy: tagging releases (see last week’s discussion), in meta-oe the branch was created a bit early, and then things got pushed a bit later. should we create a process for this? Armin: the ones that want to align with poky do, others don’t. some layers only released a release branch recently Randy: in some ways later is better than too early TimO: some layers have their own branching scheme whereby a branch supports a number of releases JPEW: i would be hesitant to add a tag until i’ve tested against the upstream (same) tag, which could be a large burden for maintainers to test against specific tags Armin: for me i’m further downstream. i have to wait for poky to branch, then i have to wait for meta-oe to branch, then i can branch Bruce: what’s the issue? Randy: meta-oe branched too early but it wasn’t actually ready for that branch until weeks later TimO: i wait for my CI to blow up, then i know to do the compatibility RP: new people on the call. any questions? any topics? JoelW: hello, happy to listen in RP: if i sent an email to various lists (oe-architecture) would that help drum up more support for maintainers? i’ve drafted something, but not sure if sending it out would help
|
||||
|
||||
Re: #yocto cmake configurations
#yocto
can you post full linker cmd which is failing ?
On Tue, May 4, 2021 at 11:24 AM Monsees, Steven C (US) via lists.yoctoproject.org <steven.monsees=baesystems.com@...> wrote:
|
||||
|
||||
Re: #yocto cmake configurations
#yocto
Monsees, Steven C (US)
My standard zeus SDK appears to have an issue linking in my applications dynamic libs…
/disk0/scratch/smonsees/sbcbSTD_SDK/limws/3.0.4/sysroots/x86_64-pokysdk-linux/usr/libexec/x86_64-poky-linux/gcc/x86_64-poky-linux/9.2.0/real-ld: cannot find -ldrm_intel /disk0/scratch/smonsees/sbcbSTD_SDK/limws/3.0.4/sysroots/x86_64-pokysdk-linux/usr/libexec/x86_64-poky-linux/gcc/x86_64-poky-linux/9.2.0/real-ld: cannot find -ldrm /disk0/scratch/smonsees/sbcbSTD_SDK/limws/3.0.4/sysroots/x86_64-pokysdk-linux/usr/libexec/x86_64-poky-linux/gcc/x86_64-poky-linux/9.2.0/real-ld: cannot find -lclang collect2: error: ld returned 1 exit status
The libraries are under: /disk0/scratch/smonsees/sbcbSTD_SDK/limws/3.0.4/sysroots/corei7-64-poky-linux/usr/lib/
My CMake build app does not appear to have an issue finding the files:
DRM_INTEL_LIBRARIES:STRING=/disk0/scratch/smonsees/sbcbSTD_SDK/limws/3.0.4/sysroots/corei7-64-poky-linux/usr/lib/libdrm_intel.so DRM_LIBRARIES:STRING=/disk0/scratch/smonsees/sbcbSTD_SDK/limws/3.0.4/sysroots/corei7-64-poky-linux/usr/lib/libdrm.so
It appears to be an issue specifically with the ld…
LDFLAGS= " --sysroot=$ENV{OECORE_TARGET_SYSROOT} -L$ENV{OECORE_TARGET_SYSROOT}/usr/lib -L$ENV{OECORE_TARGET_SYSROOT}/usr/lib/x86_64-poky-linux/9.2.0 -lpthread -pthread -O2 -pipe -Wl,-O1 -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed"
It does not appear to be making use of –L’s…
Is there something I might look at/configure (i.e. add paths to search paths) ? Is there a simple test to validate tool ?
Thanks, Steve
From: yocto@... <yocto@...>
On Behalf Of Monsees, Steven C (US) via lists.yoctoproject.org
Sent: Sunday, May 2, 2021 1:28 PM To: yocto@... Subject: [yocto] #yocto cmake configurations
I am using zeus, standard SDK, cmake…
Can I pre-configure the SDK to setup cmake package search paths ?, say for find_package, etc. (i.e. detecting external libraries/programs)…
The majority of my env is configuring properly, but I am finding cmake is setup for a standard linux env with regards to these types of searches, and I wanted the cmake built in to look at my SDK paths (first by default) when doing such things as detecting python interpreter, libraries, etc.
I am working on third party package unaware of my SDK setup.
Thanks, Steve
|
||||
|
||||
Re: [meta-mingw] [PATCH] mingw-libgnurx: Add recipe
On Tue, May 4, 2021 at 11:06 AM Joshua Watt <jpewhacker@...> wrote:
maybe nativesdk-mingw-w64-runtime package can use this as a dependency, I did not specifically use it as I was trying to build flex where it was needed right sent a v2+SRC_URI = "http://download.sourceforge.net/mingw/Other/UserContributed/regex/mingw-regex-${PV}/mingw-libgnurx-${PV}-src.tar.gz \Probably don't need this comment? +inherit autotools
|
||||
|
||||
[meta-mingw] [PATCH v2] mingw-libgnurx: Add recipe
This implements glibc regex and will be used by many
packages e.g. flex, therefore add recipe Signed-off-by: Khem Raj <raj.khem@...> --- v2: Remove redundant comment ...onor-DESTDIR-variable-during-install.patch | 39 ++++++ .../0002-Add-autotool-files.patch | 125 ++++++++++++++++++ .../mingw-libgnurx/mingw-libgnurx_2.5.1.bb | 17 +++ 3 files changed, 181 insertions(+) create mode 100644 recipes-support/mingw-libgnurx/mingw-libgnurx/0001-Honor-DESTDIR-variable-during-install.patch create mode 100644 recipes-support/mingw-libgnurx/mingw-libgnurx/0002-Add-autotool-files.patch create mode 100644 recipes-support/mingw-libgnurx/mingw-libgnurx_2.5.1.bb diff --git a/recipes-support/mingw-libgnurx/mingw-libgnurx/0001-Honor-DESTDIR-variable-during-install.patch b/recipes-support/mingw-libgnurx/mingw-libgnurx/0001-Honor-DESTDIR-variable-during-install.patch new file mode 100644 index 0000000..ea8d9ed --- /dev/null +++ b/recipes-support/mingw-libgnurx/mingw-libgnurx/0001-Honor-DESTDIR-variable-during-install.patch @@ -0,0 +1,39 @@ +From a9b7e07a8ba9c390d9774daae769748a09d409ce Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@...> +Date: Sat, 1 May 2021 14:41:21 -0700 +Subject: [PATCH] Honor DESTDIR variable during install + +Upstream-Status: Pending +Signed-off-by: Khem Raj <raj.khem@...> +--- + Makefile.in | 14 +++++++------- + 1 file changed, 7 insertions(+), 7 deletions(-) + +diff --git a/Makefile.in b/Makefile.in +index 6397bf1..8395d2f 100644 +--- a/Makefile.in ++++ b/Makefile.in +@@ -78,16 +78,16 @@ gnurx.lib: libgnurx-$(DLLVERSION).dll + install: install-dll @install_dev@ + + install-dll: +- mkdir -p ${bindir} +- cp -p $(BINDIST_FILES) ${bindir} ++ mkdir -p $(DESTDIR)${bindir} ++ cp -p $(BINDIST_FILES) $(DESTDIR)${bindir} + + install-dev: +- mkdir -p ${includedir} ${libdir} +- cp -p ${srcdir}/regex.h ${includedir} +- cp -p $(DEVDIST_FILES) ${libdir} ++ mkdir -p ${includedir} $(DESTDIR)${libdir} ++ cp -p ${srcdir}/regex.h $(DESTDIR)${includedir} ++ cp -p $(DEVDIST_FILES) $(DESTDIR)${libdir} + for s in 3 7; do \ +- mkdir -p ${mandir}/man$$s; \ +- gzip -c ${srcdir}/regex.$$s > ${mandir}/man$$s/regex.$$s.gz; \ ++ mkdir -p $(DESTDIR)${mandir}/man$$s; \ ++ gzip -c ${srcdir}/regex.$$s > $(DESTDIR)${mandir}/man$$s/regex.$$s.gz; \ + done + + dist: bindist devdist srcdist diff --git a/recipes-support/mingw-libgnurx/mingw-libgnurx/0002-Add-autotool-files.patch b/recipes-support/mingw-libgnurx/mingw-libgnurx/0002-Add-autotool-files.patch new file mode 100644 index 0000000..1365f24 --- /dev/null +++ b/recipes-support/mingw-libgnurx/mingw-libgnurx/0002-Add-autotool-files.patch @@ -0,0 +1,125 @@ +From 0b74bbc32c4acf5b67d7568a5d1e776fe6578202 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@...> +Date: Sat, 1 May 2021 14:53:09 -0700 +Subject: [PATCH] Add autotool files + +This helps in reconfiguring the component with autotools on Linux + +Upstream-Status: Pending +Signed-off-by: Khem Raj <raj.khem@...> +--- + Makefile.am | 7 ++++ + configure.ac | 90 ++++++---------------------------------------------- + 2 files changed, 16 insertions(+), 81 deletions(-) + create mode 100644 Makefile.am + +diff --git a/Makefile.am b/Makefile.am +new file mode 100644 +index 0000000..be0a797 +--- /dev/null ++++ b/Makefile.am +@@ -0,0 +1,7 @@ ++lib_LTLIBRARIES = libgnurx.la ++ ++libgnurx_la_SOURCES = regex.c ++libgnurx_la_includedir = $(includedir) ++libgnurx_la_include_HEADERS = regex.h ++libgnurx_la_CFLAGS = -I$(top_srcdir) ++libgnurx_la_LDFLAGS = -no-undefined -version-info 0:0:0 -export-dynamic +diff --git a/configure.ac b/configure.ac +index c97738d..de64f75 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -1,83 +1,11 @@ + # configure.ac -*- Autoconf -*- + # Process this file with autoconf, to generate a configure script. +-# +-# $Id: configure.ac,v 1.2 2007/05/03 22:46:09 keithmarshall Exp $ +-# +-# Copyright (C) 2007, MinGW Project +-# Written by Keith Marshall <keithmarshall@...> +-# +-# Package identification. +-# +-# This is configure.ac for the MinGW `libgnurx' package. +-# BASENAME, VERSION_MAJOR and VERSION_MINOR are required tags; +-# complete `Value' fields as appropriate. +-# +-# Tag Value +-# --------------- ---------- +- MINGW_AC_DEFINE_PACKAGE_ID([BASENAME], [libgnurx]) +- MINGW_AC_DEFINE_PACKAGE_ID([VERSION_MAJOR], [2]) +- MINGW_AC_DEFINE_PACKAGE_ID([VERSION_MINOR], [5]) +-# +-# PATCHLEVEL is optional; comment/uncomment and adjust as required. +-# +- MINGW_AC_DEFINE_PACKAGE_ID([PATCHLEVEL], [1]) +-# +-# DLL_VERSION is required; installed DLLs will be versioned, by +-# appending a hyphen, the specified tag value, and then the `.dll' +-# file name extension, to the base name of each generated DLL. +-# +- MINGW_AC_DEFINE_PACKAGE_ID([DLL_VERSION], [0]) +-# +-# +-# libgnurx is an adaptation of Tor Lillqvist's original port of the +-# regex functions from GNU libc, for use on native Woe32 platforms. +-# +-# The original sources, on which this port is based, remain copyright +-# of their respective authors, or of the Free Software Foundation Inc., +-# as indicated in individual file headers; all are redistributed with +-# permission, as granted by the GNU Lesser General Public License. +-# +-# This is free software. It is provided AS IS, in the hope that it may +-# be useful, but WITHOUT WARRANTY OF ANY KIND, not even an IMPLIED WARRANTY +-# of MERCHANTABILITY, nor of FITNESS FOR ANY PARTICULAR PURPOSE. +-# +-# Permission is granted to redistribute this software, either "as is" or +-# in modified form, under the terms of the GNU Lesser General Public License, +-# as published by the Free Software Foundation; either version 2.1, or (at +-# your option) any later version. +-# +-# You should have received a copy of the GNU Lesser General Public License +-# along with this software; see the file COPYING.LIB. If not, write to the +-# Free Software Foundation, 51 Franklin St - Fifth Floor, Boston, +-# MA 02110-1301, USA. +- +-# Autoconf initialisation. +-# +- AC_PREREQ([2.59]) +- AC_INIT(__MINGW_AC_PACKAGE_IDENTIFICATION__) +- +-# Compiler and build tool checks. +-# +- AC_PROG_CC +- MINGW_AC_PROG_CC_OPTIONS([CC_QUALIFIED], [-m], [threads tune=pentium3]) +- +-# Set the release version for the resultant DLL. +-# +- AC_SUBST([DLLVERSION], [__MINGW_AC_PACKAGE_DLL_VERSION__]) +- +-# User configuration options. +-# +- MINGW_AC_DISTRIBUTION_TYPE([tar]) +- MINGW_AC_MSVC_IMPORT_LIBS([GNURX_LIB], [gnurx.lib]) +- MINGW_AC_DEV_INSTALL_OPTION +- +-# Configuration output. +-# +- AC_SUBST([GNURX_LIB]) +- AC_SUBST([CC_QUALIFIED], ["$CC $CC_QUALIFIED"]) +- LDFLAGS="$LDFLAGS -Wl,--enable-auto-image-base -Wl,--out-implib,libgnurx.dll.a" +- test -n "${GNURX_LIB}" && LDFLAGS="$LDFLAGS -Wl,--output-def,libgnurx.def" +- AC_CONFIG_FILES([Makefile]) +- AC_OUTPUT +-# +-# $RCSfile: configure.ac,v $Revision: 1.2 $: end of file ++ ++AC_INIT(libgnurx, 2.5.1) ++AM_INIT_AUTOMAKE(foreign) ++AC_PROG_INSTALL ++AC_LIBTOOL_DLOPEN ++AC_LIBTOOL_WIN32_DLL ++AC_PROG_LIBTOOL ++ ++AC_OUTPUT([Makefile]) diff --git a/recipes-support/mingw-libgnurx/mingw-libgnurx_2.5.1.bb b/recipes-support/mingw-libgnurx/mingw-libgnurx_2.5.1.bb new file mode 100644 index 0000000..ca5bbf9 --- /dev/null +++ b/recipes-support/mingw-libgnurx/mingw-libgnurx_2.5.1.bb @@ -0,0 +1,17 @@ +# Copyright (C) 2021 Khem Raj <raj.khem@...> +# Released under the MIT license (see COPYING.MIT for the terms) +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=bbb461211a33b134d42ed5ee802b37ff" + +SRC_URI = "http://download.sourceforge.net/mingw/Other/UserContributed/regex/mingw-regex-${PV}/mingw-libgnurx-${PV}-src.tar.gz \ + file://0001-Honor-DESTDIR-variable-during-install.patch \ + file://0002-Add-autotool-files.patch \ + " +SRC_URI[sha256sum] = "7147b7f806ec3d007843b38e19f42a5b7c65894a57ffc297a76b0dcd5f675d76" + +inherit autotools + +# Specify any options you want to pass to the configure script using EXTRA_OECONF: +EXTRA_OECONF = "" + +BBCLASSEXTEND = "nativesdk" -- 2.31.1
|
||||
|
||||
Re: [meta-mingw] [PATCH] mingw-libgnurx: Add recipe
Joshua Watt
On 5/4/21 12:59 PM, Khem Raj wrote:
This implements glibc regex and will be used by manyIs there some PROVIDES that this should have? How will recipes pull it in as a dependency? +SRC_URI = "http://download.sourceforge.net/mingw/Other/UserContributed/regex/mingw-regex-${PV}/mingw-libgnurx-${PV}-src.tar.gz \Probably don't need this comment? +inherit autotools
|
||||
|
||||
[meta-mingw] [PATCH] mingw-libgnurx: Add recipe
This implements glibc regex and will be used by many
packages e.g. flex, therefore add recipe Signed-off-by: Khem Raj <raj.khem@...> --- ...onor-DESTDIR-variable-during-install.patch | 39 ++++++ .../0002-Add-autotool-files.patch | 125 ++++++++++++++++++ .../mingw-libgnurx/mingw-libgnurx_2.5.1.bb | 20 +++ 3 files changed, 184 insertions(+) create mode 100644 recipes-support/mingw-libgnurx/mingw-libgnurx/0001-Honor-DESTDIR-variable-during-install.patch create mode 100644 recipes-support/mingw-libgnurx/mingw-libgnurx/0002-Add-autotool-files.patch create mode 100644 recipes-support/mingw-libgnurx/mingw-libgnurx_2.5.1.bb diff --git a/recipes-support/mingw-libgnurx/mingw-libgnurx/0001-Honor-DESTDIR-variable-during-install.patch b/recipes-support/mingw-libgnurx/mingw-libgnurx/0001-Honor-DESTDIR-variable-during-install.patch new file mode 100644 index 0000000..ea8d9ed --- /dev/null +++ b/recipes-support/mingw-libgnurx/mingw-libgnurx/0001-Honor-DESTDIR-variable-during-install.patch @@ -0,0 +1,39 @@ +From a9b7e07a8ba9c390d9774daae769748a09d409ce Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@...> +Date: Sat, 1 May 2021 14:41:21 -0700 +Subject: [PATCH] Honor DESTDIR variable during install + +Upstream-Status: Pending +Signed-off-by: Khem Raj <raj.khem@...> +--- + Makefile.in | 14 +++++++------- + 1 file changed, 7 insertions(+), 7 deletions(-) + +diff --git a/Makefile.in b/Makefile.in +index 6397bf1..8395d2f 100644 +--- a/Makefile.in ++++ b/Makefile.in +@@ -78,16 +78,16 @@ gnurx.lib: libgnurx-$(DLLVERSION).dll + install: install-dll @install_dev@ + + install-dll: +- mkdir -p ${bindir} +- cp -p $(BINDIST_FILES) ${bindir} ++ mkdir -p $(DESTDIR)${bindir} ++ cp -p $(BINDIST_FILES) $(DESTDIR)${bindir} + + install-dev: +- mkdir -p ${includedir} ${libdir} +- cp -p ${srcdir}/regex.h ${includedir} +- cp -p $(DEVDIST_FILES) ${libdir} ++ mkdir -p ${includedir} $(DESTDIR)${libdir} ++ cp -p ${srcdir}/regex.h $(DESTDIR)${includedir} ++ cp -p $(DEVDIST_FILES) $(DESTDIR)${libdir} + for s in 3 7; do \ +- mkdir -p ${mandir}/man$$s; \ +- gzip -c ${srcdir}/regex.$$s > ${mandir}/man$$s/regex.$$s.gz; \ ++ mkdir -p $(DESTDIR)${mandir}/man$$s; \ ++ gzip -c ${srcdir}/regex.$$s > $(DESTDIR)${mandir}/man$$s/regex.$$s.gz; \ + done + + dist: bindist devdist srcdist diff --git a/recipes-support/mingw-libgnurx/mingw-libgnurx/0002-Add-autotool-files.patch b/recipes-support/mingw-libgnurx/mingw-libgnurx/0002-Add-autotool-files.patch new file mode 100644 index 0000000..1365f24 --- /dev/null +++ b/recipes-support/mingw-libgnurx/mingw-libgnurx/0002-Add-autotool-files.patch @@ -0,0 +1,125 @@ +From 0b74bbc32c4acf5b67d7568a5d1e776fe6578202 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@...> +Date: Sat, 1 May 2021 14:53:09 -0700 +Subject: [PATCH] Add autotool files + +This helps in reconfiguring the component with autotools on Linux + +Upstream-Status: Pending +Signed-off-by: Khem Raj <raj.khem@...> +--- + Makefile.am | 7 ++++ + configure.ac | 90 ++++++---------------------------------------------- + 2 files changed, 16 insertions(+), 81 deletions(-) + create mode 100644 Makefile.am + +diff --git a/Makefile.am b/Makefile.am +new file mode 100644 +index 0000000..be0a797 +--- /dev/null ++++ b/Makefile.am +@@ -0,0 +1,7 @@ ++lib_LTLIBRARIES = libgnurx.la ++ ++libgnurx_la_SOURCES = regex.c ++libgnurx_la_includedir = $(includedir) ++libgnurx_la_include_HEADERS = regex.h ++libgnurx_la_CFLAGS = -I$(top_srcdir) ++libgnurx_la_LDFLAGS = -no-undefined -version-info 0:0:0 -export-dynamic +diff --git a/configure.ac b/configure.ac +index c97738d..de64f75 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -1,83 +1,11 @@ + # configure.ac -*- Autoconf -*- + # Process this file with autoconf, to generate a configure script. +-# +-# $Id: configure.ac,v 1.2 2007/05/03 22:46:09 keithmarshall Exp $ +-# +-# Copyright (C) 2007, MinGW Project +-# Written by Keith Marshall <keithmarshall@...> +-# +-# Package identification. +-# +-# This is configure.ac for the MinGW `libgnurx' package. +-# BASENAME, VERSION_MAJOR and VERSION_MINOR are required tags; +-# complete `Value' fields as appropriate. +-# +-# Tag Value +-# --------------- ---------- +- MINGW_AC_DEFINE_PACKAGE_ID([BASENAME], [libgnurx]) +- MINGW_AC_DEFINE_PACKAGE_ID([VERSION_MAJOR], [2]) +- MINGW_AC_DEFINE_PACKAGE_ID([VERSION_MINOR], [5]) +-# +-# PATCHLEVEL is optional; comment/uncomment and adjust as required. +-# +- MINGW_AC_DEFINE_PACKAGE_ID([PATCHLEVEL], [1]) +-# +-# DLL_VERSION is required; installed DLLs will be versioned, by +-# appending a hyphen, the specified tag value, and then the `.dll' +-# file name extension, to the base name of each generated DLL. +-# +- MINGW_AC_DEFINE_PACKAGE_ID([DLL_VERSION], [0]) +-# +-# +-# libgnurx is an adaptation of Tor Lillqvist's original port of the +-# regex functions from GNU libc, for use on native Woe32 platforms. +-# +-# The original sources, on which this port is based, remain copyright +-# of their respective authors, or of the Free Software Foundation Inc., +-# as indicated in individual file headers; all are redistributed with +-# permission, as granted by the GNU Lesser General Public License. +-# +-# This is free software. It is provided AS IS, in the hope that it may +-# be useful, but WITHOUT WARRANTY OF ANY KIND, not even an IMPLIED WARRANTY +-# of MERCHANTABILITY, nor of FITNESS FOR ANY PARTICULAR PURPOSE. +-# +-# Permission is granted to redistribute this software, either "as is" or +-# in modified form, under the terms of the GNU Lesser General Public License, +-# as published by the Free Software Foundation; either version 2.1, or (at +-# your option) any later version. +-# +-# You should have received a copy of the GNU Lesser General Public License +-# along with this software; see the file COPYING.LIB. If not, write to the +-# Free Software Foundation, 51 Franklin St - Fifth Floor, Boston, +-# MA 02110-1301, USA. +- +-# Autoconf initialisation. +-# +- AC_PREREQ([2.59]) +- AC_INIT(__MINGW_AC_PACKAGE_IDENTIFICATION__) +- +-# Compiler and build tool checks. +-# +- AC_PROG_CC +- MINGW_AC_PROG_CC_OPTIONS([CC_QUALIFIED], [-m], [threads tune=pentium3]) +- +-# Set the release version for the resultant DLL. +-# +- AC_SUBST([DLLVERSION], [__MINGW_AC_PACKAGE_DLL_VERSION__]) +- +-# User configuration options. +-# +- MINGW_AC_DISTRIBUTION_TYPE([tar]) +- MINGW_AC_MSVC_IMPORT_LIBS([GNURX_LIB], [gnurx.lib]) +- MINGW_AC_DEV_INSTALL_OPTION +- +-# Configuration output. +-# +- AC_SUBST([GNURX_LIB]) +- AC_SUBST([CC_QUALIFIED], ["$CC $CC_QUALIFIED"]) +- LDFLAGS="$LDFLAGS -Wl,--enable-auto-image-base -Wl,--out-implib,libgnurx.dll.a" +- test -n "${GNURX_LIB}" && LDFLAGS="$LDFLAGS -Wl,--output-def,libgnurx.def" +- AC_CONFIG_FILES([Makefile]) +- AC_OUTPUT +-# +-# $RCSfile: configure.ac,v $Revision: 1.2 $: end of file ++ ++AC_INIT(libgnurx, 2.5.1) ++AM_INIT_AUTOMAKE(foreign) ++AC_PROG_INSTALL ++AC_LIBTOOL_DLOPEN ++AC_LIBTOOL_WIN32_DLL ++AC_PROG_LIBTOOL ++ ++AC_OUTPUT([Makefile]) diff --git a/recipes-support/mingw-libgnurx/mingw-libgnurx_2.5.1.bb b/recipes-support/mingw-libgnurx/mingw-libgnurx_2.5.1.bb new file mode 100644 index 0000000..cb5cd7f --- /dev/null +++ b/recipes-support/mingw-libgnurx/mingw-libgnurx_2.5.1.bb @@ -0,0 +1,20 @@ +# Copyright (C) 2021 Khem Raj <raj.khem@...> +# Released under the MIT license (see COPYING.MIT for the terms) +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=bbb461211a33b134d42ed5ee802b37ff" + +SRC_URI = "http://download.sourceforge.net/mingw/Other/UserContributed/regex/mingw-regex-${PV}/mingw-libgnurx-${PV}-src.tar.gz \ + file://0001-Honor-DESTDIR-variable-during-install.patch \ + file://0002-Add-autotool-files.patch \ + " +SRC_URI[sha256sum] = "7147b7f806ec3d007843b38e19f42a5b7c65894a57ffc297a76b0dcd5f675d76" + +# NOTE: if this software is not capable of being built in a separate build directory +# from the source, you should replace autotools with autotools-brokensep in the +# inherit line +inherit autotools + +# Specify any options you want to pass to the configure script using EXTRA_OECONF: +EXTRA_OECONF = "" + +BBCLASSEXTEND = "nativesdk" -- 2.31.1
|
||||
|
||||
Re: Yocto Project Status WW18`21
Alexander Kanavin
On Tue, 4 May 2021 at 16:46, Stephen Jolley <sjolley.yp.pm@...> wrote:
What will happen to the current LTS at that point? Will support be cut off, will there be a transition window, or is it currently undefined? Alex
|
||||
|
||||
Yocto Project Status WW18`21
Stephen Jolley
Current Dev Position: YP 3.4 M1 Next Deadline: 7th June 2021 YP 3.4 M1 build
Next Team Meetings:
Key Status/Updates:
We are working to identify the load pattern on the infrastructure that seems to trigger these.
Ways to contribute:
YP 3.4 Milestone Dates:
Planned upcoming dot releases:
Tracking Metrics:
The Yocto Project’s technical governance is through its Technical Steering Committee, more information is available at: https://wiki.yoctoproject.org/wiki/TSC
The Status reports are now stored on the wiki at: https://wiki.yoctoproject.org/wiki/Weekly_Status
[If anyone has suggestions for other information you’d like to see on this weekly status update, let us know!]
Thanks,
Stephen K. Jolley Yocto Project Program Manager ( Cell: (208) 244-4460 * Email: sjolley.yp.pm@...
|
||||
|