diff --git a/.gitignore b/.gitignore index bfec4c1..9a443fc 100644 --- a/.gitignore +++ b/.gitignore @@ -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 diff --git a/libabigail.spec b/libabigail.spec index 19dded8..7a4e71c 100644 --- a/libabigail.spec +++ b/libabigail.spec @@ -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 - 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 - 2.8-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild - -* Fri Jul 04 2025 Dodji Seketeli - 2.8-1 -- Update to usptream 2.8 tarball -- Support new libabigail.so.7.0.0 SONAME - * Fri Apr 11 2025 Dodji Seketeli - 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 - 2.6-3 -- Limit fedabipkgdiff to Fedora and EPEL - -* Fri Jan 17 2025 Fedora Release Engineering - 2.6-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild - * Fri Nov 1 2024 Dodji Seketeli - 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 - 2.5-4 -- Add runtime dependencies of abidb -- Disable abidb on RHEL - -* Thu Jul 18 2024 Fedora Release Engineering - 2.5-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild - -* Thu May 16 2024 Adam Williamson - 2.5-2 -- Rebuild with fixed CI metadata - * Thu Apr 18 2024 Dodji Seketeli - 2.5-1 - Update to upstream 2.5 tarball - Drop patches diff --git a/sources b/sources index ee4135f..67f786a 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (libabigail-2.9.tar.xz) = 5bdf5ec49a5931a61bf28317b41eee583d6277d00ac621b2d2a97bbc0d816c3662bcfe13a5ac7aeee11c947afb69a5a0a9a8015fcebad09965b45af9b1e23606 +SHA512 (libabigail-2.7.tar.xz) = 6c31df739b94b83a5bac4b560eb1c16919495280ed3f5a37a84144e18a2362038337d3843948e3022b97ba73f7a41b32b33ca5f8b86a51ea57574dc3de98b9d5 diff --git a/tests/libabigail-testsuite/Makefile b/tests/libabigail-testsuite/Makefile new file mode 100644 index 0000000..4d741d5 --- /dev/null +++ b/tests/libabigail-testsuite/Makefile @@ -0,0 +1,63 @@ +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# Makefile of /tools/libabigail/Sanity/libabigail-testsuite +# Description: libabigail testing by upstream testsuite +# Author: Michal Kolar +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# 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 " > $(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) diff --git a/tests/libabigail-testsuite/PURPOSE b/tests/libabigail-testsuite/PURPOSE new file mode 100644 index 0000000..52e213c --- /dev/null +++ b/tests/libabigail-testsuite/PURPOSE @@ -0,0 +1,3 @@ +PURPOSE of /tools/libabigail/Sanity/libabigail-testsuite +Description: libabigail testing by upstream testsuite +Author: Michal Kolar diff --git a/tests/libabigail-testsuite/main.fmf b/tests/libabigail-testsuite/main.fmf index a21b94e..23d68bb 100644 --- a/tests/libabigail-testsuite/main.fmf +++ b/tests/libabigail-testsuite/main.fmf @@ -1,13 +1,15 @@ summary: libabigail testing by upstream testsuite +description: '' +contact: Michal Kolar 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 diff --git a/tests/libabigail-testsuite/runtest.sh b/tests/libabigail-testsuite/runtest.sh new file mode 100755 index 0000000..f387b16 --- /dev/null +++ b/tests/libabigail-testsuite/runtest.sh @@ -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 +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# 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 diff --git a/tests/libabigail-testsuite/test.sh b/tests/libabigail-testsuite/test.sh deleted file mode 100755 index c29f398..0000000 --- a/tests/libabigail-testsuite/test.sh +++ /dev/null @@ -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