Compare commits

...
Sign in to create a new pull request.

8 commits

Author SHA1 Message Date
Dodji Seketeli
efd849c3ec Upload the libabigail 2.9 upstream tarball
Signed-off-by: Dodji Seketeli <dodji@redhat.com>
2025-11-11 17:47:53 +01:00
Dodji Seketeli
7be38de247 Update to 2.9 tarball
Signed-off-by: Dodji Seketeli <dodji@seketeli.org>
2025-11-06 12:29:26 +01:00
Fedora Release Engineering
c0702778ab Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild 2025-07-24 19:19:55 +00:00
Dodji Seketeli
8fd7f028b6 Upload libabigail 2.8 tarballs
* .gitignore: Update:
	* sources: Likewise.

Signed-off-by: Dodji Seketeli <dodji@redhat.com>
2025-07-04 14:33:18 +02:00
Dodji Seketeli
488f7b6cd3 Update to usptream 2.8 tarball
- Update to usptream 2.8 tarball
- Support new libabigail.so.7.0.0 SONAME

Signed-off-by: Dodji Seketeli <dodji@redhat.com>
2025-07-04 12:48:28 +02:00
Michal Kolar
8a77f08775 update tests/libabigail-testsuite testcase 2025-04-26 16:30:55 +00:00
Dodji Seketeli
0bc8b64b63 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 16:44:12 +02:00
Yaakov Selkowitz
62b6c5e9f1 Limit fedabipkgdiff to Fedora and EPEL
libabigail is shipped in RHEL 9+ CRB, in which koji is not included.
The enablement of fedabipkgdiff for EPEL 8 must therefore be limited
to Fedora and EPEL builds, not RHEL.

This reverts commit 2872de25f3
("Add /usr/bin/fedabipkgdiff to EPEL 8").
2025-02-04 15:54:51 -05:00
8 changed files with 102 additions and 166 deletions

3
.gitignore vendored
View file

@ -43,3 +43,6 @@
/0002-suppression-Add-has_strict_flexible_array_data_membe.patch
/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

@ -5,8 +5,8 @@
%global tarball_name %{name}-%{version}
Name: libabigail
Version: 2.6
Release: 2%{?dist}
Version: 2.9
Release: 1%{?dist}
Summary: Set of ABI analysis tools
License: Apache-2.0 WITH LLVM-exception
@ -21,8 +21,7 @@ BuildRequires: libtool
BuildRequires: elfutils-devel
BuildRequires: libxml2-devel
BuildRequires: xxhash-devel
# libabigail builds with XXH_INLINE_ALL, so depend on (virtual) xxhash-static
BuildRequires: xxhash-static
BuildRequires: xz-devel >= 5.2.0
BuildRequires: doxygen
BuildRequires: python3-sphinx
BuildRequires: texinfo
@ -32,7 +31,7 @@ BuildRequires: python3-libarchive-c
Requires: python3-GitPython
Requires: python3-libarchive-c
%endif
%if 0%{?fedora}
%if 0%{?fedora} || 0%{?epel}
BuildRequires: dpkg
BuildRequires: koji
BuildRequires: python3-koji
@ -75,6 +74,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}
%package fedora
Summary: Utility to compare the ABI of Fedora packages
BuildRequires: python3-devel
@ -99,6 +99,7 @@ This package contains the fedabipkgdiff command line utility, which
interacts with the Fedora Build System over the internet to let the
user compare the ABI of Fedora packages without having to download
them manually.
%endif
%prep
%autosetup -v -S git
@ -123,12 +124,13 @@ 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}
# Explicitly use Python 3 as the interpreter
%py3_shebang_fix %{buildroot}%{_bindir}/fedabipkgdiff
%endif
%check
time make %{?_smp_mflags} check || (cat tests/test-suite.log && exit 2)
time make %{?_smp_mflags} check-self-compare ENABLE_SLOW_TEST=yes || (cat tests/test-suite.log && exit 2)
time make %{?_smp_mflags} check check-self-compare || (cat tests/test-suite.log && exit 2)
%ldconfig_scriptlets
@ -142,8 +144,8 @@ time make %{?_smp_mflags} check-self-compare ENABLE_SLOW_TEST=yes || (cat tests/
%if %{with abidb}
%{_bindir}/abidb
%endif
%{_libdir}/libabigail.so.5
%{_libdir}/libabigail.so.5.0.0
%{_libdir}/libabigail.so.8
%{_libdir}/libabigail.so.8.0.0
%{_libdir}/libabigail/default.abignore
%doc README AUTHORS ChangeLog
%license LICENSE.txt license-change-2020.txt
@ -161,10 +163,34 @@ time make %{?_smp_mflags} check-self-compare ENABLE_SLOW_TEST=yes || (cat tests/
%license LICENSE.txt license-change-2020.txt
%doc doc/manuals/html/*
%if 0%{?fedora} || 0%{?epel}
%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
- 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
* 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

View file

@ -1 +1 @@
SHA512 (libabigail-2.6.tar.xz) = 77983586c9fa99ab5593e41e33ddfc175aef7a2ddfabb7eac79a9adfd776e7dbbb317f6d4c26044c420f2eac1f9d25e0c04887a54bb3136cc91e61219a1343e4
SHA512 (libabigail-2.9.tar.xz) = 5bdf5ec49a5931a61bf28317b41eee583d6277d00ac621b2d2a97bbc0d816c3662bcfe13a5ac7aeee11c947afb69a5a0a9a8015fcebad09965b45af9b1e23606

View file

@ -1,63 +0,0 @@
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# 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

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

View file

@ -1,15 +1,13 @@
summary: libabigail testing by upstream testsuite
description: ''
contact: Michal Kolar <mkolar@redhat.com>
component:
- libabigail
test: ./runtest.sh
test: ./test.sh
tier: 1
framework: beakerlib
recommend:
require+:
- 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

@ -1,84 +0,0 @@
#!/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 "build_dir=`find $TmpDir -type f -name README | awk '{ print length, \$0 }' | sort -n -s | head -n 1 | cut -d ' ' -f 2- | sed 's|/README||'`"
rlRun "cd $build_dir"
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

@ -0,0 +1,59 @@
#!/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