Compare commits

..

8 commits

Author SHA1 Message Date
Dodji Seketeli
ca55862f1d Update to upstream 2.7 tarball
- Do not build with by default XXH_INLINE_ALL anymore
- Drop xxhash-static dependency
- Add xz-devel >= 5.2.0 dependency to support reading xz-compressed binaries
- Support new libabigail.so.6.0.0 SONAME

Signed-off-by: Dodji Seketeli <dodji@redhat.com>
2025-04-11 17:01:27 +02:00
Dodji Seketeli
974f669695 Update for libabigail SONAME bump to 5
Signed-off-by: Dodji Seketeli <dodji@redhat.com>
2024-11-01 19:33:06 +01:00
Dodji Seketeli
c2859398bf Update to upstream 2.6 tarball
Signed-off-by: Dodji Seketeli <dodji@redhat.com>
2024-11-01 18:58:24 +01:00
Dodji Seketeli
3501acb62b Update to upstream 2.6 tarball
- Update to upstream 2.6 tarball
- Add xxhash-devel as BuildRequire

Signed-off-by: Dodji Seketeli <dodji@redhat.com>
2024-11-01 18:58:24 +01:00
Adam Williamson
03c6d7cf5a CI: drop 'directory' from discover config
This isn't valid, according to current upstream docs, and seems
to produce a warning:

warn: /plans/ci:discover - {'how': 'fmf', 'directory': 'tests'} is not valid under any of the given schemas

it looks like we just want 'how': 'fmf', and it finds the files
on its own.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2024-05-16 11:29:07 -07:00
Adam Williamson
75654ba97b CI: remove SPECPARTS directory to fix finding build dir
cd $TmpDir/BUILD/libabigail-* is failing currently:
/usr/share/beakerlib/testing.sh: line 896: cd: too many arguments
this is likely because of the SPECPARTS directory which now shows
up alongside the build directory. Let's try removing that before
we cd.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2024-05-16 10:11:15 -07:00
Adam Williamson
63c5c552f4 Change 'how' in plans/ci.fmf to try and fix CI tests
I think `how: beakerlib` is no longer allowed, see e.g.
https://artifacts.dev.testing-farm.io/ac6e6d82-985b-478a-adfc-bb402bf0b46e/pipeline.log
(from https://osci-jenkins-1.ci.fedoraproject.org/job/fedora-ci/job/dist-git-pipeline/job/master/376078/ ,
from https://bodhi.fedoraproject.org/updates/FEDORA-2024-6da0169ae7 )
which says
"Unsupported execute method 'beakerlib' in the '/plans/ci' plan."
I think it should now be `how: tmt`.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2024-05-16 10:11:12 -07:00
Dodji Seketeli
c14fe345d5 Update to upstream 2.5 tarball
- Update to upstream 2.5 tarball
- Drop patches
  0001-Bug-31045-Don-t-try-setting-translation-unit-for-uni.patch
  0002-suppression-Add-has_strict_flexible_array_data_membe.patch
  0003-Replace-deprecated-mock-with-unittest.mock.patch
- Package libabigail.so.4 rather than the previous libabigail.so.3.
- Add abidb to the package

Signed-off-by: Dodji Seketeli <dodji@redhat.com>
2024-04-18 15:26:27 +02:00
8 changed files with 169 additions and 111 deletions

2
.gitignore vendored
View file

@ -44,5 +44,3 @@
/libabigail-2.5.tar.xz
/libabigail-2.6.tar.xz
/libabigail-2.7.tar.xz
/libabigail-2.8.tar.xz
/libabigail-2.9.tar.xz

View file

@ -1,11 +1,8 @@
# dependencies are not available in RHEL
%bcond abidb %{undefined rhel}
%global tarball_revision 1
%global tarball_name %{name}-%{version}
Name: libabigail
Version: 2.9
Version: 2.7
Release: 1%{?dist}
Summary: Set of ABI analysis tools
@ -25,13 +22,9 @@ BuildRequires: xz-devel >= 5.2.0
BuildRequires: doxygen
BuildRequires: python3-sphinx
BuildRequires: texinfo
%if %{with abidb}
BuildRequires: python3-GitPython
BuildRequires: python3-libarchive-c
Requires: python3-GitPython
Requires: python3-libarchive-c
%endif
%if 0%{?fedora} || 0%{?epel}
%if 0%{?fedora}
BuildRequires: dpkg
BuildRequires: koji
BuildRequires: python3-koji
@ -74,7 +67,7 @@ This package contains documentation for the libabigail tools in the
form of man pages, texinfo documentation and API documentation in html
format.
%if 0%{?fedora} || 0%{?epel}
%if 0%{?fedora}
%package fedora
Summary: Utility to compare the ABI of Fedora packages
BuildRequires: python3-devel
@ -105,7 +98,7 @@ them manually.
%autosetup -v -S git
%build
%configure %{?with_abidb:--enable-abidb} --enable-ctf --enable-btf --disable-silent-rules --disable-zip-archive --disable-static
%configure --enable-abidb --enable-ctf --enable-btf --disable-silent-rules --disable-zip-archive --disable-static
make %{?_smp_mflags}
pushd doc
make html-doc
@ -124,7 +117,7 @@ find %{buildroot} -name '*.la' -exec rm -f {} ';'
# default 'install' target of the makefile.
make -C doc/manuals install-man-and-info-doc DESTDIR=%{buildroot}
%if 0%{?fedora} || 0%{?epel}
%if 0%{?fedora}
# Explicitly use Python 3 as the interpreter
%py3_shebang_fix %{buildroot}%{_bindir}/fedabipkgdiff
%endif
@ -132,6 +125,10 @@ make -C doc/manuals install-man-and-info-doc DESTDIR=%{buildroot}
%check
time make %{?_smp_mflags} check check-self-compare || (cat tests/test-suite.log && exit 2)
if test $? -ne 0; then
cat tests/tests-suite.log
fi
%ldconfig_scriptlets
%files
@ -141,11 +138,9 @@ time make %{?_smp_mflags} check check-self-compare || (cat tests/test-suite.log
%{_bindir}/abilint
%{_bindir}/abipkgdiff
%{_bindir}/kmidiff
%if %{with abidb}
%{_bindir}/abidb
%endif
%{_libdir}/libabigail.so.8
%{_libdir}/libabigail.so.8.0.0
%{_libdir}/libabigail.so.6
%{_libdir}/libabigail.so.6.0.0
%{_libdir}/libabigail/default.abignore
%doc README AUTHORS ChangeLog
%license LICENSE.txt license-change-2020.txt
@ -163,24 +158,12 @@ time make %{?_smp_mflags} check check-self-compare || (cat tests/test-suite.log
%license LICENSE.txt license-change-2020.txt
%doc doc/manuals/html/*
%if 0%{?fedora} || 0%{?epel}
%if 0%{?fedora}
%files fedora
%{_bindir}/fedabipkgdiff
%endif
%changelog
* Thu Nov 06 2025 Dodji Seketeli <dodji@redhat.com> - 2.9-1
- Update to upstream 2.9 tarball
- Support new libabigail.so.8.0.0 SONAME
- Run 'make check check-self-compare' instead of two separate make invocations.
* Thu Jul 24 2025 Fedora Release Engineering <releng@fedoraproject.org> - 2.8-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild
* Fri Jul 04 2025 Dodji Seketeli <dodji@redhat.com> - 2.8-1
- Update to usptream 2.8 tarball
- Support new libabigail.so.7.0.0 SONAME
* Fri Apr 11 2025 Dodji Seketeli <dodji@redhat.com> - 2.7-1
- Update to upstream 2.7 tarball
- Do not build with by default XXH_INLINE_ALL anymore
@ -188,27 +171,11 @@ time make %{?_smp_mflags} check check-self-compare || (cat tests/test-suite.log
- Add xz-devel >= 5.2.0 dependency to support reading xz-compressed binaries
- Support new libabigail.so.6.0.0 SONAME
* Tue Feb 04 2025 Yaakov Selkowitz <yselkowi@redhat.com> - 2.6-3
- Limit fedabipkgdiff to Fedora and EPEL
* Fri Jan 17 2025 Fedora Release Engineering <releng@fedoraproject.org> - 2.6-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
* Fri Nov 1 2024 Dodji Seketeli <dodji@redhat.com> - 2.6-1
- Update to upstream 2.6 tarball
- Add xxhash-devel as BuildRequires
- Update library to libabigail.so.5.0.0
* Fri Jul 26 2024 Yaakov Selkowitz <yselkowi@redhat.com> - 2.5-4
- Add runtime dependencies of abidb
- Disable abidb on RHEL
* Thu Jul 18 2024 Fedora Release Engineering <releng@fedoraproject.org> - 2.5-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
* Thu May 16 2024 Adam Williamson <awilliam@redhat.com> - 2.5-2
- Rebuild with fixed CI metadata
* Thu Apr 18 2024 Dodji Seketeli <dodji@redhat.com> - 2.5-1
- Update to upstream 2.5 tarball
- Drop patches

View file

@ -1 +1 @@
SHA512 (libabigail-2.9.tar.xz) = 5bdf5ec49a5931a61bf28317b41eee583d6277d00ac621b2d2a97bbc0d816c3662bcfe13a5ac7aeee11c947afb69a5a0a9a8015fcebad09965b45af9b1e23606
SHA512 (libabigail-2.7.tar.xz) = 6c31df739b94b83a5bac4b560eb1c16919495280ed3f5a37a84144e18a2362038337d3843948e3022b97ba73f7a41b32b33ca5f8b86a51ea57574dc3de98b9d5

View file

@ -0,0 +1,63 @@
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Makefile of /tools/libabigail/Sanity/libabigail-testsuite
# Description: libabigail testing by upstream testsuite
# Author: Michal Kolar <mkolar@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2021 Red Hat, Inc.
#
# This program is free software: you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation, either version 2 of
# the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see http://www.gnu.org/licenses/.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
export TEST=/tools/libabigail/Sanity/libabigail-testsuite
export TESTVERSION=1.0
BUILT_FILES=
FILES=$(METADATA) runtest.sh Makefile PURPOSE
.PHONY: all install download clean
run: $(FILES) build
./runtest.sh
build: $(BUILT_FILES)
test -x runtest.sh || chmod a+x runtest.sh
clean:
rm -f *~ $(BUILT_FILES)
include /usr/share/rhts/lib/rhts-make.include
$(METADATA): Makefile
@echo "Owner: Michal Kolar <mkolar@redhat.com>" > $(METADATA)
@echo "Name: $(TEST)" >> $(METADATA)
@echo "TestVersion: $(TESTVERSION)" >> $(METADATA)
@echo "Path: $(TEST_DIR)" >> $(METADATA)
@echo "Description: libabigail testing by upstream testsuite" >> $(METADATA)
@echo "Type: Sanity" >> $(METADATA)
@echo "TestTime: 1h" >> $(METADATA)
@echo "RunFor: libabigail" >> $(METADATA)
@echo "Requires: libabigail rpm-build yum-utils gcc-c++" >> $(METADATA)
@echo "Priority: Normal" >> $(METADATA)
@echo "License: GPLv2+" >> $(METADATA)
@echo "Confidential: no" >> $(METADATA)
@echo "Destructive: no" >> $(METADATA)
@echo "Releases: -RHEL4 -RHELClient5 -RHELServer5 -RHEL6 -RHEL7" >> $(METADATA)
rhts-lint $(METADATA)

View file

@ -0,0 +1,3 @@
PURPOSE of /tools/libabigail/Sanity/libabigail-testsuite
Description: libabigail testing by upstream testsuite
Author: Michal Kolar <mkolar@redhat.com>

View file

@ -1,13 +1,15 @@
summary: libabigail testing by upstream testsuite
description: ''
contact: Michal Kolar <mkolar@redhat.com>
component:
- libabigail
test: ./test.sh
tier: 1
test: ./runtest.sh
framework: beakerlib
require+:
recommend:
- libabigail
- rpm-build
- yum-utils
- gcc-c++
- coreutils
duration: 1h
extra-summary: /tools/libabigail/Sanity/libabigail-testsuite
extra-task: /tools/libabigail/Sanity/libabigail-testsuite

View file

@ -0,0 +1,84 @@
#!/bin/bash
# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /tools/libabigail/Sanity/libabigail-testsuite
# Description: libabigail testing by upstream testsuite
# Author: Michal Kolar <mkolar@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2021 Red Hat, Inc.
#
# This program is free software: you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation, either version 2 of
# the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see http://www.gnu.org/licenses/.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Include Beaker environment
. /usr/share/beakerlib/beakerlib.sh || exit 1
BUILD_USER=${BUILD_USER:-lbbglbld}
TESTS_COUNT_MIN=${TESTS_COUNT_MIN:-10}
PACKAGE="libabigail"
REQUIRES="$PACKAGE rpm-build gcc-c++"
if rlIsFedora; then
REQUIRES="$REQUIRES dnf-utils"
else
REQUIRES="$REQUIRES yum-utils"
fi
rlJournalStart
rlPhaseStartSetup
rlShowRunningKernel
rlAssertRpm --all
rlRun "TmpDir=`mktemp -d /home/libabigail.XXXXXXXXXX`" # work in /home due to high demands on disk space
rlRun "pushd $TmpDir"
rlFetchSrcForInstalled $PACKAGE
rlRun "useradd -m -N $BUILD_USER" 0,9
[ "$?" == "0" ] && rlRun "del=yes"
rlRun "chown -R $BUILD_USER:users $TmpDir"
rlPhaseEnd
rlPhaseStartSetup "build libabigail"
rlRun "rpm -D \"_topdir $TmpDir\" -U *.src.rpm"
rlRun "yum-builddep -y $TmpDir/SPECS/*.spec"
rlRun "su -c 'rpmbuild -D \"_topdir $TmpDir\" -bc $TmpDir/SPECS/*.spec &>$TmpDir/rpmbuild.log' $BUILD_USER"
rlRun "rlFileSubmit $TmpDir/rpmbuild.log"
rlRun "rm -rf $TmpDir/BUILD/libabigail-*-SPECPARTS"
rlRun "cd $TmpDir/BUILD/libabigail-*"
rlPhaseEnd
rlPhaseStartTest "run testsuite"
rlRun "su -c 'make -k check |& tee -a $TmpDir/testsuite.log' $BUILD_USER"
rlRun "cp tests/test-suite.log $TmpDir/make-check.log"
rlRun "rlFileSubmit $TmpDir/make-check.log"
rlRun "su -c 'make -k check-self-compare |& tee -a $TmpDir/testsuite.log' $BUILD_USER"
rlRun "cp tests/test-suite.log $TmpDir/make-check-self-compare.log"
rlRun "rlFileSubmit $TmpDir/make-check-self-compare.log"
rlPhaseEnd
rlPhaseStartTest "evaluate results"
rlRun "cd $TmpDir"
rlRun "cat make-*.log | grep -E '^# FAIL:|^# XPASS:|^# ERROR:' | grep -vqE ':\s*0$'" 1
rlRun "tests_count=\$(grep -E '^PASS:' $TmpDir/testsuite.log | wc -l)"
[ "$tests_count" -ge "$TESTS_COUNT_MIN" ] && rlLogInfo "Test counter: $tests_count" || rlFail "Test counter $tests_count should be greater than or equal to $TESTS_COUNT_MIN"
rlPhaseEnd
rlPhaseStartCleanup
rlRun "popd"
rlRun "rm -r $TmpDir"
[ "$del" == "yes" ] && rlRun "userdel -f -r $BUILD_USER"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View file

@ -1,59 +0,0 @@
#!/bin/bash
. /usr/share/beakerlib/beakerlib.sh || exit 1
BUILD_USER=${BUILD_USER:-lbbglbld}
TESTS_COUNT_MIN=${TESTS_COUNT_MIN:-10}
PACKAGE="libabigail"
REQUIRES="$PACKAGE rpm-build gcc-c++"
if rlIsFedora; then
REQUIRES="$REQUIRES dnf-utils"
else
REQUIRES="$REQUIRES yum-utils"
fi
# variables needed for 'make check'
export RPM_PACKAGE_NAME=$(rpm -q --qf='%{NAME}\n' $PACKAGE)
export RPM_PACKAGE_VERSION=$(rpm -q --qf='%{VERSION}\n' $PACKAGE)
export RPM_PACKAGE_RELEASE=$(rpm -q --qf='%{RELEASE}\n' $PACKAGE)
export RPM_ARCH=$(rpm -q --qf='%{ARCH}\n' $PACKAGE)
rlJournalStart
rlPhaseStartSetup
rlShowRunningKernel
rlAssertRpm --all
rlRun "TmpDir=\$(mktemp -d /home/libabigail.XXXXXXXXXX)" # work in /home due to high demands on disk space
rlRun "pushd $TmpDir"
rlFetchSrcForInstalled $PACKAGE
rlRun "useradd -N $BUILD_USER" 0,9
[ "$?" == "0" ] && rlRun "del=yes"
rlRun "chown -R $BUILD_USER:users $TmpDir"
rlPhaseEnd
rlPhaseStartSetup "build libabigail"
rlRun "rpm -D \"_topdir $TmpDir\" -U *.src.rpm"
rlRun "yum-builddep -y $TmpDir/SPECS/*.spec &>$TmpDir/yum-builddep.log"
rlRun "rlFileSubmit $TmpDir/yum-builddep.log yum-builddep.log"
rlRun "su -c 'rpmbuild -D \"_topdir $TmpDir\" -bc $TmpDir/SPECS/*.spec &>$TmpDir/rpmbuild.log' $BUILD_USER"
rlRun "rlFileSubmit $TmpDir/rpmbuild.log rpmbuild.log"
rlRun "cd $(dirname `find $TmpDir -name configure -type f`)"
rlPhaseEnd
rlPhaseStartTest "run testsuite"
rlRun "su -c 'make check |& tee $TmpDir/testsuite.log' $BUILD_USER"
rlRun "rlFileSubmit tests/test-suite.log test-suite.log"
rlRun "rlFileSubmit $TmpDir/testsuite.log testsuite.log"
rlPhaseEnd
rlPhaseStartTest "evaluate results"
rlRun "grep -E '^# FAIL:|^# XPASS:|^# ERROR:' $TmpDir/testsuite.log | grep -vqE ':\s*0$'" 1
rlRun "tests_count=\$(grep -E '^PASS:' $TmpDir/testsuite.log | wc -l)"
[ "$tests_count" -ge "$TESTS_COUNT_MIN" ] && rlLogInfo "Test counter: $tests_count" || rlFail "Test counter $tests_count should be greater than or equal to $TESTS_COUNT_MIN"
rlPhaseEnd
rlPhaseStartCleanup
rlRun "popd"
rlRun "rm -r $TmpDir"
[ "$del" == "yes" ] && rlRun "userdel -f -r $BUILD_USER"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd