diff --git a/.fmf/version b/.fmf/version new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/.fmf/version @@ -0,0 +1 @@ +1 diff --git a/.gitignore b/.gitignore index e912284..bfec4c1 100644 --- a/.gitignore +++ b/.gitignore @@ -1,22 +1,26 @@ +/libabigail-1.0.tar.gz +/libabigail-1.0-git-616d9af.tar.gz +/libabigail-1.0-git-088f077.tar.gz +/libabigail-1.0-git-43c06a8.tar.gz +/libabigail-0.1-git-43c06a8.tar.gz +/libabigail-1.0-git-ab1316b.tar.gz +/libabigail-1.0-git-f0d319a.tar.gz +/libabigail-1.0-git-a89b0d0.tar.gz /libabigail-1.0-git-164d17e.tar.gz /libabigail-1.0.rc0.tar.gz -/no-designated-init-for-el6-patch.txt -/enum-val-fix-patch.txt +/libabigail-1.0.rc1.tar.gz +/enum-value-wide-precision-on-32-bits-machine-patch.txt /libabigail-1.0.rc2.tar.gz -/std-lower-el6-patch.txt -/enum-val-stable-on-32-64-bits-patch.txt /libabigail-1.0.rc3.tar.gz /fix-test-diff-pkg-patch.txt /libabigail-1.0.rc4.tar.gz /0001-Bug-19961-Distinguish-between-PI-executable-and-shar.patch /0002-Bug-19964-Cannot-load-function-aliases-on-ppc64.patch /libabigail-1.0.rc5.tar.gz -/0001-Fix-python-interpreter-patch-for-el6.patch /libabigail-1.0.rc6.tar.gz /0001-A-suppressed-diff-node-implies-suppressing-all-equiv.patch /0001-Bug-20927-Segfault-when-HOME-is-not-set.patch /0001-Fix-aborting-when-reading-.foo-symbols-from-a-ppc64-.patch -/libabigail-1.0.tar.gz /libabigail-1.1.tar.gz /libabigail-1.2.tar.gz /libabigail-1.3.tar.gz @@ -26,3 +30,19 @@ /Add-a-fail-no-debug-info-to-abidiff.patch /libabigail-1.6.tar.gz /libabigail-1.7.tar.gz +/libabigail-1.8.tar.gz +/libabigail-1.8.1.tar.gz +/libabigail-1.8.2.tar.gz +/libabigail-2.0.tar.gz +/libabigail-2.1.tar.gz +/libabigail-2.2.tar.xz +/libabigail-2.3.tar.xz +/0001-ir-Remove-redundant-virtual-member-functions.patch +/libabigail-2.4.tar.xz +/0001-Bug-31045-Don-t-try-setting-translation-unit-for-uni.patch +/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 diff --git a/0003-Replace-deprecated-mock-with-unittest.mock.patch b/0003-Replace-deprecated-mock-with-unittest.mock.patch new file mode 100644 index 0000000..f5d21d4 --- /dev/null +++ b/0003-Replace-deprecated-mock-with-unittest.mock.patch @@ -0,0 +1,26 @@ +From 8602d3c36dad05ada68feedc80926afadff448a2 Mon Sep 17 00:00:00 2001 +From: Maxwell G +Date: Sat, 13 Jan 2024 05:50:39 +0000 +Subject: [PATCH] Replace deprecated mock with unittest.mock + +Relates: https://fedoraproject.org/wiki/Changes/RemovePythonMockUsage +--- + tests/mockfedabipkgdiff.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/tests/mockfedabipkgdiff.in b/tests/mockfedabipkgdiff.in +index 1e56266..863cf7f 100644 +--- a/tests/mockfedabipkgdiff.in ++++ b/tests/mockfedabipkgdiff.in +@@ -42,7 +42,7 @@ import tempfile + import six + + try: +- from mock import patch ++ from unittest.mock import patch + except ImportError: + import sys + six.print_('mock is required to run tests. Please install before running' +-- +2.43.0 + diff --git a/enum-val-fix-patch.txt b/enum-val-fix-patch.txt deleted file mode 100644 index e8070cb..0000000 --- a/enum-val-fix-patch.txt +++ /dev/null @@ -1,93 +0,0 @@ -diff --git a/include/abg-ir.h b/include/abg-ir.h -index daeec5c..cb9169b 100644 ---- a/include/abg-ir.h -+++ b/include/abg-ir.h -@@ -1832,7 +1832,7 @@ public: - void - set_name(const string& n); - -- ssize_t -+ size_t - get_value() const; - - void -diff --git a/src/abg-dwarf-reader.cc b/src/abg-dwarf-reader.cc -index 1eda045..313b282 100644 ---- a/src/abg-dwarf-reader.cc -+++ b/src/abg-dwarf-reader.cc -@@ -3956,6 +3956,7 @@ die_unsigned_constant_attribute(Dwarf_Die* die, - return true; - } - -+#if 0 - /// Get the value of an attribute that is supposed to be a signed - /// constant. - /// -@@ -3988,7 +3989,7 @@ die_signed_constant_attribute(Dwarf_Die* die, - cst = result; - return true; - } -- -+#endif - /// Get the value of a DIE attribute; that value is meant to be a - /// flag. - /// -@@ -6476,8 +6477,8 @@ build_enum_type(read_context& ctxt, - string n, m; - location l; - die_loc_and_name(ctxt, &child, loc, n, m); -- ssize_t val = 0; -- die_signed_constant_attribute(&child, DW_AT_const_value, val); -+ size_t val = 0; -+ die_unsigned_constant_attribute(&child, DW_AT_const_value, val); - enms.push_back(enum_type_decl::enumerator(n, val)); - } - while (dwarf_siblingof(&child, &child) == 0); -diff --git a/src/abg-ir.cc b/src/abg-ir.cc -index dedf053..c279ad8 100644 ---- a/src/abg-ir.cc -+++ b/src/abg-ir.cc -@@ -8200,7 +8200,7 @@ enum_type_decl::enumerator::set_name(const string& n) - /// - /// @return the value of the current instance of - /// enum_type_decl::enumerator. --ssize_t -+size_t - enum_type_decl::enumerator::get_value() const - {return priv_->value_;} - -diff --git a/src/abg-reader.cc b/src/abg-reader.cc -index 4da7f4d..3c19481 100644 ---- a/src/abg-reader.cc -+++ b/src/abg-reader.cc -@@ -3176,7 +3176,7 @@ build_enum_type_decl(read_context& ctxt, - if (xmlStrEqual(n->name, BAD_CAST("enumerator"))) - { - string name; -- ssize_t value = 0; -+ size_t value = 0; - - xml_char_sptr a = xml::build_sptr(xmlGetProp(n, BAD_CAST("name"))); - if (a) -@@ -3185,7 +3185,7 @@ build_enum_type_decl(read_context& ctxt, - a = xml::build_sptr(xmlGetProp(n, BAD_CAST("value"))); - if (a) - { -- value = strtol(CHAR_STR(a), NULL, 0); -+ value = strtoll(CHAR_STR(a), NULL, 0); - if (errno == ERANGE) - return nil; - } -diff --git a/src/abg-writer.cc b/src/abg-writer.cc -index 8d64ce5..dcece4a 100644 ---- a/src/abg-writer.cc -+++ b/src/abg-writer.cc -@@ -1861,7 +1861,7 @@ write_enum_type_decl(const enum_type_decl_sptr decl, - o << "\n"; - } - diff --git a/gating.yaml b/gating.yaml new file mode 100644 index 0000000..ce3cdc1 --- /dev/null +++ b/gating.yaml @@ -0,0 +1,19 @@ +--- !Policy +product_versions: + - fedora-* +decision_context: bodhi_update_push_stable +subject_type: koji_build +rules: + - !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.tier0.functional} +--- !Policy +product_versions: + - rhel-8 +decision_context: osci_compose_gate +rules: + - !PassingTestCaseRule {test_case_name: baseos-ci.brew-build.tier1.functional} +--- !Policy +product_versions: + - rhel-9 +decision_context: osci_compose_gate +rules: + - !PassingTestCaseRule {test_case_name: baseos-ci.brew-build.tier1.functional} diff --git a/libabigail.spec b/libabigail.spec index 1e34551..19dded8 100644 --- a/libabigail.spec +++ b/libabigail.spec @@ -1,48 +1,47 @@ -%global tarball_revision 0 +# dependencies are not available in RHEL +%bcond abidb %{undefined rhel} + +%global tarball_revision 1 %global tarball_name %{name}-%{version} Name: libabigail -Version: 1.7 +Version: 2.9 Release: 1%{?dist} Summary: Set of ABI analysis tools -License: LGPLv3+ +License: Apache-2.0 WITH LLVM-exception URL: https://sourceware.org/libabigail/ -Source0: ftp://mirrors.kernel.org/sourceware/libabigail/%{tarball_name}.tar.gz +Source0: http://mirrors.kernel.org/sourceware/libabigail/%{tarball_name}.tar.xz +BuildRequires: git +BuildRequires: libbpf-devel +BuildRequires: binutils-devel BuildRequires: gcc-c++ BuildRequires: libtool BuildRequires: elfutils-devel BuildRequires: libxml2-devel +BuildRequires: xxhash-devel +BuildRequires: xz-devel >= 5.2.0 BuildRequires: doxygen -BuildRequires: python-sphinx +BuildRequires: python3-sphinx BuildRequires: texinfo -BuildRequires: dos2unix +%if %{with abidb} +BuildRequires: python3-GitPython +BuildRequires: python3-libarchive-c +Requires: python3-GitPython +Requires: python3-libarchive-c +%endif +%if 0%{?fedora} || 0%{?epel} BuildRequires: dpkg -BuildRequires: python2-devel -BuildRequires: python-argparse -BuildRequires: rpm-python -BuildRequires: python-mock BuildRequires: koji -BuildRequires: pyxdg -BuildRequires: python-unittest2 +BuildRequires: python3-koji +%endif BuildRequires: wget -#For x-rpm mimetype definition! -BuildRequires: mailcap -BuildRequires: koji - -Requires: pyxdg -Requires: rpm-python -Requires: koji -Requires: python2 >= 2.6 -Requires: wget -#For x-rpm mimetype definition! -Requires: mailcap %description The libabigail package comprises seven command line utilities: -abidiff, kmidiff, abipkgdiff, abicompat, abidw, abilint and -fedabipkgdiff. The abidiff command line tool compares the ABI of two +abidiff, kmidiff, abipkgdiff, abicompat, abidw, and abilint. +The abidiff command line tool compares the ABI of two ELF shared libraries and emits meaningful textual reports about changes impacting exported functions, variables and their types. Simarly, the kmidiff compares the kernel module interface of two Linux @@ -51,9 +50,7 @@ two packages. abicompat checks if a subsequent version of a shared library is still compatible with an application that is linked against it. abidw emits an XML representation of the ABI of a given ELF shared library. abilint checks that a given XML representation of the -ABI of a shared library is correct. fedabipkgdiff 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. +ABI of a shared library is correct. Install libabigail if you need to compare the ABI of ELF shared libraries. @@ -71,38 +68,51 @@ application binary interfaces of shared libraries in the ELF format. %package doc Summary: Man pages, texinfo files and html manuals of libabigail -Requires(post): info -Requires(preun): info %description doc 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 +BuildRequires: python3-koji +BuildRequires: python3-rpm +BuildRequires: python3-pyxdg +#For x-rpm mimetype definition! +BuildRequires: mailcap +BuildRequires: make +Requires: %{name}%{?_isa} = %{version}-%{release} +Requires: curl +Requires: koji +Requires: python3 >= 3.6 +Requires: python3-koji +Requires: python3-pyxdg +Requires: python3-rpm +#For x-rpm mimetype definition! +Requires: mailcap + +%description fedora +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 -%setup -n %{tarball_name} +%autosetup -v -S git %build -# Sometimes the libtool program generated on the developer's machine -# when she was doing make dist contains some flags that trigger the -# use of "/usr/lib/rpm/redhat/redhat-hardened-ld", which is not -# present on el6. That flags like in the fild build-aux/ltmain.sh -# looks like: -# compiler_flags="-specs=/usr/lib/rpm/redhat/redhat-hardened-ld" -# So let's remove those flags if they are present. -if test -f build-aux/ltmain.sh; then - sed -i -e "s/compiler_flags=.*/compiler_flags=/" build-aux/ltmain.sh -fi -%configure --disable-python3 --disable-silent-rules --disable-zip-archive --disable-static +%configure %{?with_abidb:--enable-abidb} --enable-ctf --enable-btf --disable-silent-rules --disable-zip-archive --disable-static make %{?_smp_mflags} pushd doc make html-doc pushd manuals make html-doc -%if 0%{!?el6}||0%{!?el5} make man make info -%endif popd popd @@ -110,29 +120,19 @@ popd %make_install find %{buildroot} -name '*.la' -exec rm -f {} ';' -%if 0%{!?el6}&&0%{!?el5} # Install man and texinfo files as they are not installed by the # default 'install' target of the makefile. make -C doc/manuals install-man-and-info-doc DESTDIR=%{buildroot} -dos2unix doc/manuals/html/_static/jquery.js + +%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 check-self-compare || (cat tests/test-suite.log && exit 2) -%post -p /sbin/ldconfig - -%postun -p /sbin/ldconfig - -%if 0%{!?el6}&&0%{!?el5} -%post doc -/usr/sbin/install-info %{_infodir}/abigail.info* %{_infodir}/dir 2>/dev/null || : - -%preun doc -if [ $1 -eq 0 ]; then - /usr/sbin/install-info --delete %{_infodir}/abigail.info* %{_infodir}/dir 2>/dev/null || : -fi -%endif +%ldconfig_scriptlets %files %{_bindir}/abicompat @@ -140,17 +140,18 @@ fi %{_bindir}/abidw %{_bindir}/abilint %{_bindir}/abipkgdiff -%{_bindir}/fedabipkgdiff %{_bindir}/kmidiff -%{_libdir}/libabigail.so.0 -%{_libdir}/libabigail.so.0.0.0 -%{_libdir}/libabigail/default.abignore -%if 0%{?el6}||0%{?el5} -%doc README AUTHORS ChangeLog COPYING COPYING-LGPLV3 COPYING-GPLV3 doc/manuals/html/* -%else -%doc README AUTHORS ChangeLog -%license COPYING COPYING-LGPLV3 COPYING-GPLV3 +%if %{with abidb} +%{_bindir}/abidb %endif +%{_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 +%{_mandir}/man1/* +%{_mandir}/man7/* +%{_infodir}/abigail.info* %files devel %{_libdir}/libabigail.so @@ -158,48 +159,260 @@ fi %{_includedir}/* %{_datadir}/aclocal/abigail.m4 -%if 0%{!?el6}&&0%{!?el5} %files doc -%license COPYING COPYING-LGPLV3 COPYING-GPLV3 +%license LICENSE.txt license-change-2020.txt %doc doc/manuals/html/* -%{_mandir}/man1/* -%{_mandir}/man7/* -%{_infodir}/abigail.info* + +%if 0%{?fedora} || 0%{?epel} +%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 +- 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 - 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 + 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 + Added BuildRequires: python3-GitPython, python3-libarchive-c +- Better handle error handling when tests fails. + +* Fri Jan 26 2024 Maxwell G - 2.4-7 +- Remove python3-mock dependency +- Apply patch 0003-Replace-deprecated-mock-with-unittest.mock.patch + +* Thu Jan 25 2024 Fedora Release Engineering - 2.4-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Sun Jan 21 2024 Fedora Release Engineering - 2.4-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Mon Nov 20 2023 Dodji Seketeli - 2.4-4 +- Fix SPDX licensing string + +* Wed Nov 15 2023 Dodji Seketeli - 2.4-3 +- Fix sourceware.org/PR31017 + "Support Flex array conversion suppression" + Apply patch 0002-suppression-Add-has_strict_flexible_array_data_membe.patch + +* Tue Nov 14 2023 Dodji Seketeli - 2.4-2 +- Fix sourceware.org/PR31045 + "Don't try setting translation unit for unique types" + Apply patch + 0001-Bug-31045-Don-t-try-setting-translation-unit-for-uni.patch. + That patch is applied in upstream mainline and will be available in + libabigail 2.5. +- Use %%autosetup instead of the previous %%setup and %%patch macros. +- Add git as a build requirement + +* Fri Oct 20 2023 Dodji Seketeli - 2.4-1 +- Update to upstream 2.4 tarball +- Drop patches + 0001-Fix-fedabipkgdiff-configure-check-for-Python-3.12.patch and + 0001-Fix-fedabipkgdiff-configure-check-for-Python-3.12.patch +- Enable build with support for BTF +- Added BuildRequires: libbpf-devel +- Support soname bumped to libabigail.so.3.0.0 + +* Thu Oct 12 2023 Dodji Seketeli - 2.3-3 +- Use the SPDX format to express the license of the package +- Fix a compilation warning + +* Thu Jul 20 2023 Fedora Release Engineering - 2.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Thu Apr 27 2023 Dodji Seketeli - 2.3-1 +- Update to upstream 2.3 release +- Don't do "dos2unix doc/manuals/html/_static/jquery.js" + The file doc/manuals/html/_static/jquery.js is no more. + Hence, don't BuildRequires: dos2unix anymore. +- The libaigail binary is now libabigail.so.2.0.0. + +* Thu Jan 19 2023 Fedora Release Engineering - 2.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Fri Dec 2 2022 Dodji Seketeli - 2.2-1 +- Update to upstream 2.2 release. +- Switch to a tar.xz tarball. + +* Wed Sep 21 2022 Dodji Seketeli - 2.1-1 +- Update to upstream 2.1 +- Add libabigail.so.1 and libabigail.so.1.0.0 to the package. +- Enable CTF support when running the tests. +- Add binutils-devel as BuildRequires, for CTF. + +* Thu Jul 21 2022 Fedora Release Engineering - 2.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Thu Jan 20 2022 Fedora Release Engineering - 2.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Mon Oct 4 2021 Dodji Seketeli - 2.0-1 +- Update to upstream 2.0 tarball +- Change License to ASL 2.0 to comply with the upstream license change. + +* Thu Jul 22 2021 Fedora Release Engineering - 1.8.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Thu Feb 25 2021 Dodji Seketeli - 1.8.2-1 +- Update to upstream 1.8.2 point release +- Require dpkg and koji only on Fedora builds only. + +* Wed Jan 27 2021 Dodji Seketeli - 1.8.1-1 +- Update to upstream fixes up to libabigail-1.8.1 + This encompasses this fixes, compared to the last 1.8 release: + ir: Add better comments to types_have_similar_structure + mainpage: Update web page for 1.8 release + Bug 26992 - Try harder to resolve declaration-only classes + Bug 27204 - potential loss of some aliased ELF function symbols + Ignore duplicated functions and those not associated with ELF symbols + Bug 27236 - Pointer comparison wrongly fails because of typedef change + Bug 27233 - fedabipkgdiff fails on package gnupg2 from Fedora 33 + Bug 27232 - fedabipkgdiff fails on gawk from Fedora 33 + dwarf-reader: Support fast DW_FORM_line_strp string comparison + gen-changelog.py: Update call to subprocess.Popen & cleanup + Bug 27255 - fedabipkgdiff fails on nfs-utils on Fedora 33 + abidiff: support --dump-diff-tree with --leaf-changes-only + ir: Arrays are indirect types for type structure similarity purposes + Add qualifier / typedef / array / pointer test + abg-ir: Optimize calls to std::string::find() for a single char. + abipkgdiff: Address operator precedence warning + +* Tue Jan 26 2021 Fedora Release Engineering - 1.8-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Tue Dec 1 2020 Dodji Seketeli - 1.8-1 +- Update to upstream 1.8 +- Add 'make check-self-compare' to the regression tests run. +- BuildRequires python3-koji + +* Tue Jul 28 2020 Fedora Release Engineering - 1.7-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + * Tue Feb 25 2020 Dodji Seketeli - 1.7-1 - Update to upstream 1.7 -- Add Koji as BuildRequires - Fixes: RHBZ#1799575 -* Thu Mar 28 2019 Dodji Seketeli - 1.6-1 +* Mon Feb 17 2020 Sinny Kumari - 1.6-4 +- Add koji as BuildRequires +- Fixes: RHBZ#1799575 + +* Wed Jan 29 2020 Fedora Release Engineering - 1.6-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Thu Jul 25 2019 Fedora Release Engineering - 1.6-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Wed Mar 27 2019 Dodji Seketeli - 1.6-1 - Update to upstream 1.6 -- Remove patches: +- Removed patches that are now upstream Support-having-several-debuginfo-search-dirs-for-a-b.patch Add-a-fail-no-debug-info-to-abidiff.patch -* Mon Nov 12 2018 Dodji Seketeli - 1.5-2 +* Wed Mar 13 2019 Mathieu Bridon - 1.5-4 +- Remove unnecessary dependencies: python3-unittest2 and wget which + was referred to twice. +- Better group dependencies: Many dependencies are only required for + fedabipkgdiff, so let's put them under the right conditional. +- Split fedabipkgdiff to its own subpackage + This tool is very specific, and only useful to Fedora developers, + not all developers. It also has lots of dependencies which aren't + required by the other tools. Splitting it to its own specialized + package makes the main package, with its library and utilities, + much lighter. + +* Thu Mar 7 2019 Tim Landscheidt - 1.5-4 +- Remove obsolete requirements for %%post/%%preun scriptlets + +* Fri Feb 01 2019 Fedora Release Engineering - 1.5-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Mon Nov 12 2018 Dodji Seketeli - 1.5-2 - Apply patches Support-having-several-debuginfo-search-dirs-for-a-b.patch and Add-a-fail-no-debug-info-to-abidiff.patch * Thu Oct 25 2018 Dodji Seketeli - 1.5-1 -- Update to upstream 1.5 tarball +- Update to upstream 1.5 + +* Wed Jul 25 2018 Nils Philippsen - 1.4-2 +- explicitly use Python 3 for fedabipkgdiff * Fri Jul 13 2018 Dodji Seketeli - 1.4-1 - Update to upstream 1.4 -- Merge change to build fedabipkgdiff in Fedora only +- Merge change to build fedabipkgdiff in Fedora only. + +* Fri Jul 13 2018 Fedora Release Engineering - 1.3-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Tue Jun 19 2018 Miro HronĨok - 1.3-2 +- Rebuilt for Python 3.7 * Wed May 16 2018 Dodji Seketeli - 1.3-1 -- Update to upstream 1.3 version -- Make sure to disable python3 +- Update to upstream 1.3 +- Use python3 modules -* Tue Mar 6 2018 Dodji Seketeli - 1.2-1 +* Mon Mar 19 2018 Dodji Seketeli - 1.2-2 +- Depend on Koji only on Fedora + +* Mon Mar 5 2018 Dodji Seketeli - 1.2-1 - Update to upstream 1.2 -* Tue Jan 30 2018 Dodji Seketeli - 1.1-1 +* Fri Feb 09 2018 Igor Gnatenko - 1.1-4 +- Escape macros in %%changelog + +* Wed Feb 07 2018 Fedora Release Engineering - 1.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Fri Feb 02 2018 Igor Gnatenko - 1.1-2 +- Switch to %%ldconfig_scriptlets + +* Thu Jan 25 2018 Dodji Seketeli - 1.1-1 - Update to upstream 1.1 +- Use python2-sphynx, rpm-python2, python2-rpm rather than + python-sphinx, rpm-python. * Wed Nov 22 2017 Dodji Seketeli - 1.0-1 - Add missing %%{dist} to release. @@ -208,6 +421,8 @@ fi - Update to upstream 1.0 tarball - Adjust tarball_revision and tarball_name macros - Adjust Release macro +- Remove the koji build require as python2-koji is enough +- Replace the pyxdg build require with the python2-pyxdg one. - Added missing build and runtime require 'mailcap' to allow fedabipkgdiff to detect RPM files - Update description to account for the new kmidiff tool @@ -217,11 +432,26 @@ fi 0001-Fix-aborting-when-reading-.foo-symbols-from-a-ppc64-.patch - Add kmidiff to the RPM +* Fri Oct 06 2017 Troy Dawson - 1.0-0.13.rc6.4 +- Fix rawhide FTBFS - Added Buildrequires python2-koji + +* Thu Aug 03 2017 Fedora Release Engineering - 1.0-0.12.rc6.4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Wed Jul 26 2017 Fedora Release Engineering - 1.0-0.11.rc6.4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Mon May 15 2017 Fedora Release Engineering - 1.0-0.10.rc6.4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_27_Mass_Rebuild + +* Fri Feb 10 2017 Fedora Release Engineering - 1.0-0.9.rc6.4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + * Fri Dec 9 2016 Dodji Seketeli - 1.0-0.8.rc6.4 - Fix upstream bug - Fix aborting when reading .foo symbols from a ppc64 binary * Mon Dec 5 2016 Dodji Seketeli - 1.0-0.8.rc6.3 -- Fix upstream Bug 20927 - Segfault when abidiff is invoked with $HOME not set +- Fix upstream Bug 20927 - Segfault when abidiff is invoked with $HOME empty Apply the upstream patch here. * Sat Nov 26 2016 Dodji Seketeli - 1.0-0.8.rc6.2 @@ -229,20 +459,26 @@ fi This implies applying upstream patch: "[PATCH] A suppressed diff node implies suppressing all equivalent nodes too" -* Thu Nov 24 2016 Dodji Seketeli - 1.0-0.8.rc6.1 +* Wed Nov 23 2016 Dodji Seketeli - 1.0-0.8.rc6.1 - Update to upstream 1.0.rc6 tarball -- Add pyxdg, rpm-python, koji and python2 as runtime dependencies. -- Add wget as a build and runtime requirement. It's useful for fedabipkgdiff. -- Update package description to mention fedabipkgdiff +- Add wget as a build and runtime requirement. It's useful for fedabipkgdiff + +* Mon Aug 29 2016 Dodji Seketeli - 1.0-0.8.rc5.5 +- Update the package description to mention fedabipkgdiff + +* Mon Aug 29 2016 Chenxiong Qi - 1.0-0.8.rc5.4 +- Add pyxdg, rpm-python, koji and python2 as runtime dependencies + +* Tue Jun 28 2016 Dodji Seketeli - 1.0-0.8.rc5.3 +- Fix previous change log entry * Tue Jun 28 2016 Dodji Seketeli - 1.0-0.8.rc5.2 - Add README * Mon Jun 27 2016 Dodji Seketeli - 1.0-0.8.rc5.1 - Update to upstream 1.0.rc5 tarball -- Add new build requires for new fedabipkgdiff tool: python2-devel, - python-argparse, rpm-python, python-mock, koji, pyxdg, - python-unittest2 +- Add new build requires for new fedabipkgdiff tool: + python2-devel, rpm-python, python2-mock, koji, pyxdg, python2-unittest2 - Add new %%{_bindir}/fedabipkgdiff binary and %%{_libdir}/libabigail/default.abignore configuration file to the set of distributed files. @@ -250,6 +486,10 @@ fi 0001-Bug-19961-Distinguish-between-PI-executable-and-shar.patch 0002-Bug-19964-Cannot-load-function-aliases-on-ppc64.patch + +* Mon May 2 2016 Dodji Seketeli - 1.0-0.8.rc4.3%{?dist} +- Add README file + * Mon Apr 25 2016 Dodji Seketeli - 1.0-0.8.rc4.2 - Fix PIE and ppc64 function aliases handling. The exact two upstream bugs fixed are: @@ -259,7 +499,7 @@ fi * Sun Apr 17 2016 Dodji Seketeli - 1.0-0.8.rc4.1 - Update to upstream 1.0.rc4 -- Remove patch fix-test-diff-pkg-patch.txt as it got applied upstream +- Remove fix-test-diff-pkg-patch.txt as it was applied upstream. * Tue Mar 8 2016 Dodji Seketeli - 1.0-0.rc3.2 - Fix test-diff-pkg regression test failure due to a race condition. @@ -267,30 +507,98 @@ fi * Tue Mar 8 2016 Dodji Seketeli - 1.0-0.rc3.1 - Update to upstream 1.0.rc3 - Add gcc-c++ as BuildRequires -- Drop the pactches to 1.0.rc2 as they are now integrated upstream in 1.0.rc3 - Measure the time taken by regression tests -* Fri Jan 8 2016 Dodji Seketeli - 1.0-0.rc2.2 -- Add enum-val-stable-on-32-64-bits-patch +* Thu Feb 04 2016 Fedora Release Engineering - 1.0-0.rc2.1.1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild -* Fri Jan 8 2016 Dodji Seketeli - 1.0-0.rc2.1 +* Thu Jan 7 2016 Dodji Seketeli - 1.0-0.rc2.1 - Update to upstream 1.0.rc2 -- Build the tests in // if possible -- Add a patch to fix build on el6/g++ 4.4.7 -- Drop the previous patches as they got integrated upstream +- This fixes an important regression in the handling of binaries + which debug info have been compressed with dwz. +- Fix source tarball URL. -* Tue Nov 17 2015 Dodji Seketeli - 1.0-0.3.rc0 -- Fix use of redhat-hardened-ld link script on el6 -- Add a patch to avoid using designated initializers in tools/abipkgdiff.cc -- Add a patch to avoid a test failure do to loss of precision of - enumerator values on 32 bits x86. +* Wed Jan 6 2016 Dodji Seketeli - 1.0-0.rc1.3 +- Run make check in // if possible -* Tue Nov 17 2015 Dodji Seketeli - 1.0-0.2.rc0 +* Wed Jan 6 2016 Dodji Seketeli - 1.0-0.rc1.2 +- Add/Remove info pages to/from info pages database after install/before remove + +* Tue Jan 5 2016 Dodji Seketeli - 1.0-0.rc1.1 +- Ship man/info pages right into the main package, along with the main + programs. +- Update to upstream release 1.0.rc1 +- Significant changes include: + rhtbz/1283906 - crash in abigail::dwarf_reader::build_reference_type() + libabigail/19336 - Better handle redundantly qualified reference types + libabigail/19126 - abidw segv on a dwz compressed version of r300_dri.so + libabigail/19355 - Libabigail slow on r300_dri.so + Numerous other bug fixes and cleanups + +* Mon Nov 16 2015 Dodji Seketeli - 1.0-0.7.rc0.20151116gitd8bcceb - Update to upstream release 1.0.rc0 - Take a tarball built using make dist now. +- Update the comments in the spec regarding how the tarball has been generated. - Do not run autoreconf -i anymore, during the build. -- Add redhat-rpm-config to have binaries linked with - /usr/lib/rpm/redhat/redhat-hardened-ld -* Wed Sep 9 2015 Dodji Seketeli - 1.0-0.1.20150909git164d17e -- Initial package for upstream git commit hash 164d17e +* Wed Sep 9 2015 Dodji Seketeli - 1.0-0.6.20150909git164d17e +- Update to upstream git commit hash 164d17e + Bug 18791 - libabigail fails to read the output of abidw + Bug 18818 - abidw aborts on a class with a non-complete base class + Bug 18828 - Handle force-resolving of multiple declarations-only of the same type + Bug 18844 - assert failure in abidw at abg-dwarf-reader.cc:6537 + Bug 18894 - Fix representation of enumerators in abixml format + Bug 18893 - type degradation from dwarf to abixml on libGLU.so + Bug 18892 - type degradation from DWARF to abixml on libtsan.so + Bug 18904 - Fix support for C++ rvalue references + Numerous additional bug fixes + Added .deb, tarball and directory support to abipkgdiff + Several improvements to abidw, abidiff and abilint +- Added dpkg build dependency to activate support of .deb archives +- cat tests/test-suite.log when check fails +- Update description to add abipkgdiff + +* Mon Jul 27 2015 Sinny Kumari - 1.0-0.5.20150727gitf0d319a +- Update to upstream git commit hash f0d319a. Returns different exit status code + when abipkgdiff runs and various other bug fixes in libabigail. +- Adjust date, git_revision and Release macros + +* Mon Jul 20 2015 Sinny Kumari - 1.0-0.4.20150720gitab1316b +- Update to upstream git commit hash ab1316b. It brings various bug fixes and a + new abipkgdiff tool to detect abi changes at package level. +- Install abipkgdiff binary in bindir +- Adjust date, git_revision and Release macros + +* Thu Jun 25 2015 Dodji Seketeli - 1.0-0.3.20150625git43c06a8 +- Update to upstream git commit hash 43c06a8 (pre-release of 1.0). + This brings lots of bug fixes as well as some improvements in change + report suppression capabilities in the library and in the abidiff + tool. +- Tarball name format is now clearer: %%{name}-%%{version}-git-%%{git_revision} +- Add new macro tarball_name for that +- Adjust the Source0, git_revision, date, Release macros +- Adjust the %%setup directive to the fact that the tarball now extracts to + a directory named %%{name}-%%{version}-git-%%{git_revision} +- Adjust the packaging of the man pages as some of them moved from + section 7 to section 1. + +* Wed Jun 17 2015 Fedora Release Engineering - 1.0-0.2.20150422gita9582d8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Wed Apr 22 2015 Sinny Kumari - 1.0-0.1.20150420gita9582d8 +- Add COPYING-GPLV3 license file as well +- Remove python-sphinx-latex from BuildRequires +- Package latest source tar with git revision a9582d8 + +* Sat Jan 24 2015 Sinny Kumari - 1.0-0.3.20150114git63c81f0 +- Specify only sub-packgae name instead of giving full package name +- Add info as post and preun Requires for doc sub-package + +* Fri Jan 23 2015 Sinny Kumari - 1.0-0.2.20150114git63c81f0 +- Add python-sphinx-latex as BuildRequires +- Use license instead of doc macro for license file installation +- Update checkout value + +* Sun Jan 18 2015 Sinny Kumari - 1.0-0.1.git.63c81f0 +- Initial build of the libabigail package using source code from git + revision 63c81f0. diff --git a/no-designated-init-for-el6-patch.txt b/no-designated-init-for-el6-patch.txt deleted file mode 100644 index 66356d3..0000000 --- a/no-designated-init-for-el6-patch.txt +++ /dev/null @@ -1,32 +0,0 @@ -Do not use designated initializers in abipkgdiff.cc - -So g++ 4.4.7 of el6 does not support designated initializers, so -libabigail fails to build on el6 for that reason. - -This patch uses a more classical syntax for that compiler. - -diff --git a/tools/abipkgdiff.cc b/tools/abipkgdiff.cc -index 3a94223..0e8ad2f 100644 ---- a/tools/abipkgdiff.cc -+++ b/tools/abipkgdiff.cc -@@ -1217,14 +1217,14 @@ prepare_packages(package& first_package, - package_descriptor ea[] = - { - { -- .pkg = first_package, -- .opts = opts, -- .callback = first_package_tree_walker_callback_fn -+ first_package, -+ opts, -+ first_package_tree_walker_callback_fn - }, - { -- .pkg = second_package, -- .opts = opts, -- .callback = second_package_tree_walker_callback_fn -+ second_package, -+ opts, -+ second_package_tree_walker_callback_fn - }, - }; - diff --git a/plans/ci.fmf b/plans/ci.fmf new file mode 100644 index 0000000..3fd3ab7 --- /dev/null +++ b/plans/ci.fmf @@ -0,0 +1,5 @@ +summary: CI Gating Plan +discover: + how: fmf +execute: + how: tmt diff --git a/sources b/sources index cf5681d..ee4135f 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (libabigail-1.7.tar.gz) = 02971c8f760cd7c6e7f77ef323c93769270666652a8f491b30cce74aa9bc20e2c5113eca0a534b814e9c8567538b6b7b84d15687e0ac15cf8ece736b2f7e2261 +SHA512 (libabigail-2.9.tar.xz) = 5bdf5ec49a5931a61bf28317b41eee583d6277d00ac621b2d2a97bbc0d816c3662bcfe13a5ac7aeee11c947afb69a5a0a9a8015fcebad09965b45af9b1e23606 diff --git a/tests/libabigail-testsuite/main.fmf b/tests/libabigail-testsuite/main.fmf new file mode 100644 index 0000000..a21b94e --- /dev/null +++ b/tests/libabigail-testsuite/main.fmf @@ -0,0 +1,13 @@ +summary: libabigail testing by upstream testsuite +component: +- libabigail +test: ./test.sh +tier: 1 +framework: beakerlib +require+: +- libabigail +- rpm-build +- yum-utils +- gcc-c++ +- coreutils +duration: 1h diff --git a/tests/libabigail-testsuite/test.sh b/tests/libabigail-testsuite/test.sh new file mode 100755 index 0000000..c29f398 --- /dev/null +++ b/tests/libabigail-testsuite/test.sh @@ -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