This is an automated email from the ASF dual-hosted git repository. bcall pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/trafficserver-ci.git
The following commit(s) were added to refs/heads/main by this push: new 5b1ecc9 ABI checker for ATS new fe9fa80 Merge pull request #72 from bryancall/abi 5b1ecc9 is described below commit 5b1ecc9dd48fc71be54268a39cfba86fe5ea447b Author: Bryan Call <bc...@apache.org> AuthorDate: Wed Feb 16 08:54:37 2022 -0800 ABI checker for ATS --- abi/README.md | 4 ++ abi/abi.sh | 13 +++++ abi/build_script/trafficserver.sh | 14 +++++ abi/install_abi_tools.sh | 13 +++++ abi/patch_releases.sh | 32 +++++++++++ abi/patches/limits_8.x.patch | 10 ++++ abi/patches/limits_9.x.patch | 30 ++++++++++ abi/trafficserver.json | 112 ++++++++++++++++++++++++++++++++++++++ 8 files changed, 228 insertions(+) diff --git a/abi/README.md b/abi/README.md new file mode 100644 index 0000000..d5f0995 --- /dev/null +++ b/abi/README.md @@ -0,0 +1,4 @@ +1. Run install\_abi\_tools.sh to install all the necessary command line tools. This should only need to be run once. +2. Next run the patch\_releases.sh script to download the traffic server releases that need to be patched. Again this should only need to be run once. +3. Run the abi.sh script to download the rest of the releases, build all releases, and check for ABI compatibility. This script can be run multiple time and it will automatically update the traffic server GitHub master branch to see if it is still ABI compatible + diff --git a/abi/abi.sh b/abi/abi.sh new file mode 100755 index 0000000..ee59cae --- /dev/null +++ b/abi/abi.sh @@ -0,0 +1,13 @@ +#!/bin/sh + +abi-monitor -get -build trafficserver.json +abi-tracker -build trafficserver.json + +# Deploy to webserver directory +#abi-tracker -deploy /usr/share/nginx/html/abi-trafficserver/ +#cp -pr images /usr/share/nginx/html/abi-trafficserver/ + +# Untar reports and remove tar.gz reports +#cd /usr/share/nginx/html/abi-trafficserver/ +#for i in $(find . -name '*tar.gz'); do tar -C $(dirname $i) -xf $i; done +#find . -name '*tar.gz' -exec rm {} \; diff --git a/abi/build_script/trafficserver.sh b/abi/build_script/trafficserver.sh new file mode 100644 index 0000000..fa511db --- /dev/null +++ b/abi/build_script/trafficserver.sh @@ -0,0 +1,14 @@ +# Really only needed for GitHub checkout +autoreconf -if + +# abi-dumper wants to have -Og optimization +sed -i -e 's/-O3/-Og/' configure + +# Configure, build and install +./configure --prefix="$INSTALL_TO" +make -j 8 +make -j 8 install + +# Hacky cleanups +cp $INSTALL_TO/bin/traffic_server $INSTALL_TO/lib/traffic_server.so +rm -f $INSTALL_TO/lib/plugin* diff --git a/abi/install_abi_tools.sh b/abi/install_abi_tools.sh new file mode 100755 index 0000000..a20b011 --- /dev/null +++ b/abi/install_abi_tools.sh @@ -0,0 +1,13 @@ +#!/bin/bash + +set -x + +rm -rf github +mkdir github +cd github +git clone https://github.com/lvc/installer.git +cd installer +for i in abi-dumper abi-tracker abi-compliance-checker vtable-dumper abi-monitor; do + sudo make install prefix=/usr/local target=${i} +done +rm -rf github diff --git a/abi/patch_releases.sh b/abi/patch_releases.sh new file mode 100755 index 0000000..1d3611e --- /dev/null +++ b/abi/patch_releases.sh @@ -0,0 +1,32 @@ +#!/bin/bash + +set -e + +patch_release() +{ + root_dir=$(pwd) + ver=$1 + patch=$2 + echo version: $ver + echo patch file: $patch + rm -rf installed/trafficserver/$ver + rm -rf src/trafficserver/$ver + mkdir -p src/trafficserver/$ver + cd src/trafficserver/$ver + wget https://archive.apache.org/dist/trafficserver/trafficserver-${ver}.tar.bz2 + tar -xjf trafficserver-${ver}.tar.bz2 + cd trafficserver-${ver} + patch -p0 < ../../../../patches/$patch + cd .. + rm trafficserver-${ver}.tar.bz2 + tar -cjf trafficserver-${ver}.tar.bz2 trafficserver-${ver} + rm -rf trafficserver-${ver} + cd $root_dir +} + +for i in 8.1.0 8.1.1 8.1.2; do + patch_release $i limits_8.x.patch +done + +patch_release 9.0.0 limits_9.x.patch + diff --git a/abi/patches/limits_8.x.patch b/abi/patches/limits_8.x.patch new file mode 100644 index 0000000..e73ec27 --- /dev/null +++ b/abi/patches/limits_8.x.patch @@ -0,0 +1,10 @@ +--- include/tscore/BufferWriterForward.h 2022-02-16 10:12:58.479082634 -0800 ++++ include/tscore/BufferWriterForward.h.new 2022-02-16 10:12:39.591080450 -0800 +@@ -28,6 +28,7 @@ + #include <cstring> + #include <vector> + #include <map> ++#include <limits> + + #include "tscpp/util/TextView.h" + #include "tscore/ink_assert.h" diff --git a/abi/patches/limits_9.x.patch b/abi/patches/limits_9.x.patch new file mode 100644 index 0000000..6a952d6 --- /dev/null +++ b/abi/patches/limits_9.x.patch @@ -0,0 +1,30 @@ +--- include/tscpp/util/TextView.h 2022-02-16 10:57:40.674392744 -0800 ++++ include/tscpp/util/TextView.h.new 2022-02-16 10:57:56.696394597 -0800 +@@ -32,6 +32,7 @@ + #include <algorithm> + #include <string> + #include <string_view> ++#include <limits> + + /** Compare views with ordering, ignoring case. + * +--- include/tscore/BufferWriterForward.h 2022-02-16 10:12:58.479082634 -0800 ++++ include/tscore/BufferWriterForward.h.new 2022-02-16 10:12:39.591080450 -0800 +@@ -28,6 +28,7 @@ + #include <cstring> + #include <vector> + #include <map> ++#include <limits> + + #include "tscpp/util/TextView.h" + #include "tscore/ink_assert.h" +--- include/tscore/Extendible.h 2020-09-05 18:13:58.000000000 -0700 ++++ include/tscore/Extendible.h.new 2022-02-16 11:55:08.735791403 -0800 +@@ -44,6 +44,7 @@ + #include <typeinfo> + #include <type_traits> + #include <unordered_map> ++#include <limits> + + #include "tscore/AtomicBit.h" + #include "tscore/ink_assert.h" diff --git a/abi/trafficserver.json b/abi/trafficserver.json new file mode 100644 index 0000000..bee4158 --- /dev/null +++ b/abi/trafficserver.json @@ -0,0 +1,112 @@ +{ + "Name": "trafficserver", + "SourceUrl": "https://archive.apache.org/dist/trafficserver/", + "Git": "https://github.com/apache/trafficserver.git", + "Maintainer": "d...@trafficserver.apache.org", + "MaintainerUrl": "https://trafficserver.apache.org", + "BuildScript": "build_script/trafficserver.sh", + "HeadersDiff": "Off", + "MinimalVersion": "8.1.0", + + "Versions": [ + { + "Number": "current", + "Installed": "installed/trafficserver/current", + "Source": "src/trafficserver/current", + "Changelog": "Off", + "HeadersDiff": "Off", + "PkgDiff": "Off", + "ABIView": "Off", + "ABIDiff": "Off" + }, + { + "Number": "9.1.1", + "Installed": "installed/trafficserver/9.1.1", + "Source": "src/trafficserver/9.1.1/trafficserver-9.1.1.tar.bz2", + "Changelog": "Off", + "HeadersDiff": "Off", + "PkgDiff": "Off", + "ABIView": "Off", + "ABIDiff": "Off" + }, + { + "Number": "9.1.0", + "Installed": "installed/trafficserver/9.1.0", + "Source": "src/trafficserver/9.1.0/trafficserver-9.1.0.tar.bz2", + "Changelog": "Off", + "HeadersDiff": "Off", + "PkgDiff": "Off", + "ABIView": "Off", + "ABIDiff": "Off" + }, + { + "Number": "9.0.2", + "Installed": "installed/trafficserver/9.0.2", + "Source": "src/trafficserver/9.0.2/trafficserver-9.0.2.tar.bz2", + "Changelog": "Off", + "HeadersDiff": "Off", + "PkgDiff": "Off", + "ABIView": "Off", + "ABIDiff": "Off" + }, + { + "Number": "9.0.1", + "Installed": "installed/trafficserver/9.0.1", + "Source": "src/trafficserver/9.0.1/trafficserver-9.0.1.tar.bz2", + "Changelog": "Off", + "HeadersDiff": "Off", + "PkgDiff": "Off", + "ABIView": "Off", + "ABIDiff": "Off" + }, + { + "Number": "9.0.0", + "Installed": "installed/trafficserver/9.0.0", + "Source": "src/trafficserver/9.0.0/trafficserver-9.0.0.tar.bz2", + "Changelog": "Off", + "HeadersDiff": "Off", + "PkgDiff": "Off", + "ABIView": "Off", + "ABIDiff": "Off" + }, + { + "Number": "8.1.3", + "Installed": "installed/trafficserver/8.1.3", + "Source": "src/trafficserver/8.1.3/trafficserver-8.1.3.tar.bz2", + "Changelog": "Off", + "HeadersDiff": "Off", + "PkgDiff": "Off", + "ABIView": "Off", + "ABIDiff": "Off" + }, + { + "Number": "8.1.2", + "Installed": "installed/trafficserver/8.1.2", + "Source": "src/trafficserver/8.1.2/trafficserver-8.1.2.tar.bz2", + "Changelog": "Off", + "HeadersDiff": "Off", + "PkgDiff": "Off", + "ABIView": "Off", + "ABIDiff": "Off" + }, + { + "Number": "8.1.1", + "Installed": "installed/trafficserver/8.1.1", + "Source": "src/trafficserver/8.1.1/trafficserver-8.1.1.tar.bz2", + "Changelog": "Off", + "HeadersDiff": "Off", + "PkgDiff": "Off", + "ABIView": "Off", + "ABIDiff": "Off" + }, + { + "Number": "8.1.0", + "Installed": "installed/trafficserver/8.1.0", + "Source": "src/trafficserver/8.1.0/trafficserver-8.1.0.tar.bz2", + "Changelog": "Off", + "HeadersDiff": "Off", + "PkgDiff": "Off", + "ABIView": "Off", + "ABIDiff": "Off" + }] +}