diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 17:32:43 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 17:32:43 +0000 |
commit | 6bf0a5cb5034a7e684dcc3500e841785237ce2dd (patch) | |
tree | a68f146d7fa01f0134297619fbe7e33db084e0aa /ipc/chromium/src/third_party/libevent/extra/abi-check | |
parent | Initial commit. (diff) | |
download | thunderbird-upstream.tar.xz thunderbird-upstream.zip |
Adding upstream version 1:115.7.0.upstream/1%115.7.0upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'ipc/chromium/src/third_party/libevent/extra/abi-check')
3 files changed, 100 insertions, 0 deletions
diff --git a/ipc/chromium/src/third_party/libevent/extra/abi-check/README.md b/ipc/chromium/src/third_party/libevent/extra/abi-check/README.md new file mode 100644 index 0000000000..77fdd94128 --- /dev/null +++ b/ipc/chromium/src/third_party/libevent/extra/abi-check/README.md @@ -0,0 +1,35 @@ +## libevent ABI/API changes + + +This script is used to generate information about changes in libevent ABI/API +between various versions using [LVC tools](https://github.com/lvc). Such an +overview can help developers migrate from one version to another. + +Here is the `abi_check.sh`, which is used to generate ABI/API timeline for +libevent. + +You can limit the number of included libevent versions via a number given +as a parameter to the script. For example + +```shell +$ ./abi_check.sh 3 +``` + +generates overview for the last 3 versions and the current version. +If no parameter given, it will generate overview for the last 2 versions and +the current version by default. + +But this script requires some tools that are available in the following docker image: + +``` +docker.pkg.github.com/azat/docker-images/lvc-debian +``` + +And the full command looks like: + +```shell + docker run --rm -it -v $PWD:/src:ro -w /src -v tmp/le-abi-check-root:/abi-root -e ABI_CHECK_ROOT=/abi-root docker.pkg.github.com/azat/docker-images/lvc-debian /src/extra/abi-check/abi_check.sh +``` + +'timeline/libevent/index.html' is the final result and can be viewed +[here](https://libevent.org/abi) diff --git a/ipc/chromium/src/third_party/libevent/extra/abi-check/abi_check.sh b/ipc/chromium/src/third_party/libevent/extra/abi-check/abi_check.sh new file mode 100755 index 0000000000..e860657e9b --- /dev/null +++ b/ipc/chromium/src/third_party/libevent/extra/abi-check/abi_check.sh @@ -0,0 +1,53 @@ +#!/usr/bin/env bash + +# Requirements: +# - wdiff +# - rfcdiff +# - universal-ctags +# - abi-tracker +# - abi-monitor +# - git +# +# All of this are included in: +# docker.pkg.github.com/azat/docker-images/lvc-debian:latest +# +# TODO: +# - move image into libevent namespace + +# verify backward compatibility of API/ABI changes + +set -e + +LIMIT=${1:-2} +EVENT_SOURCE_DIR=${EVENT_SOURCE_DIR:-"$(cd "$(dirname "$0")"/../.. && pwd)"} +ABI_CHECK_ROOT=${ABI_CHECK_ROOT:-$EVENT_SOURCE_DIR/.abi-check} +ABI_CHECK_WORKSPACE=${ABI_CHECK_WORKSPACE:-"work/abi-check"} + +mkdir -p "$ABI_CHECK_ROOT/$ABI_CHECK_WORKSPACE" +cd "$ABI_CHECK_ROOT/$ABI_CHECK_WORKSPACE" + +# copy current source code and profile into workspace +mkdir -p src/libevent/current +mkdir -p installed/libevent/current +( # to avoid cd back + cd "$EVENT_SOURCE_DIR" + # XXX: not `git archive` since it will not copy changes that are not in index, + # and maybe some issues on CI (since it does not contain full clone) + find . -maxdepth 1 -mindepth 1 | { + git check-ignore --no-index --verbose --non-matching --stdin + } | fgrep :: | cut -f2 | grep -v /.git/ | tee /dev/stderr | { + xargs cp -r -t "$ABI_CHECK_ROOT/$ABI_CHECK_WORKSPACE/src/libevent/current/" + } + cp extra/abi-check/libevent.json "$ABI_CHECK_ROOT/$ABI_CHECK_WORKSPACE/" +) + +# run LVC tools +abi-monitor -get -limit "$LIMIT" libevent.json +# XXX: abi-monitor 1.12 supports "-make -j8", but 1.10 does not +# (we can detect which version we have, and add this options) +abi-monitor -v current -build libevent.json +abi-monitor -build libevent.json +abi-tracker -build libevent.json + +# remove useless files +rm -rf src installed build_logs libevent.json diff --git a/ipc/chromium/src/third_party/libevent/extra/abi-check/libevent.json b/ipc/chromium/src/third_party/libevent/extra/abi-check/libevent.json new file mode 100644 index 0000000000..42930e933c --- /dev/null +++ b/ipc/chromium/src/third_party/libevent/extra/abi-check/libevent.json @@ -0,0 +1,12 @@ +{ + "Name": "libevent", + "Title": "Libevent", + "SourceUrl": "https://github.com/libevent/libevent/tags", + "Git": "https://github.com/libevent/libevent.git", + "Maintainer": "Nick Mathewson, Azat Khuzhin and Niels Provos", + "MaintainerUrl": "https://libevent.org", + "BuildSystem": "Autotools", + "HeadersDiff": "On", + "Package": "release-", + "ReleasePattern": "\A([\d\-\.\_]+)(|\-beta|\-rc|\-stable)\Z", +} |