diff --git a/.gitignore b/.gitignore index f6281a5..41dbcd9 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,36 @@ /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-164d17e.tar.gz +/libabigail-1.0.rc0.tar.gz +/libabigail-1.0.rc1.tar.gz +/libabigail-1.0.rc2.tar.gz +/libabigail-1.0.rc3.tar.gz +/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 +/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.1.tar.gz +/libabigail-1.2.tar.gz +/libabigail-1.3.tar.gz +/libabigail-1.4.tar.gz +/libabigail-1.5.tar.gz +/Support-having-several-debuginfo-search-dirs-for-a-b.patch +/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 +/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 diff --git a/libabigail.spec b/libabigail.spec index 0fee0d9..fa6f990 100644 --- a/libabigail.spec +++ b/libabigail.spec @@ -1,40 +1,62 @@ -%global date 20150720 -%global git_revision ab1316b -%global checkout %{date}git%{git_revision} -%global tarball_name %{name}-%{version}-git-%{git_revision} +%global tarball_revision 0 +%global tarball_name %{name}-%{version} Name: libabigail -Version: 1.0 -Release: 0.4.%{checkout}%{?dist} +Version: 2.4 +Release: 3%{?dist} Summary: Set of ABI analysis tools -License: LGPLv3+ +License: Apache-2.0 WITH LLVM-exception URL: https://sourceware.org/libabigail/ -# This tarball was constructed from pulling the source code of -# libabigail from its Git repository by doing: -# git clone git://sourceware.org/git/libabigail.git -# pushd libabigail -# git archive --prefix %%{tarball_name}/ -o %%{tarball_name}.tar.gz %%{git_revision} -Source0: %{tarball_name}.tar.gz +Source0: ftp://mirrors.kernel.org/sourceware/libabigail/%{tarball_name}.tar.xz +Patch1: 0001-Bug-31045-Don-t-try-setting-translation-unit-for-uni.patch +Patch2: 0002-suppression-Add-has_strict_flexible_array_data_membe.patch +BuildRequires: git +BuildRequires: binutils-devel +BuildRequires: gcc-c++ BuildRequires: libtool BuildRequires: elfutils-devel BuildRequires: libxml2-devel BuildRequires: doxygen BuildRequires: python-sphinx BuildRequires: texinfo -BuildRequires: dos2unix +BuildRequires: python2-devel +BuildRequires: rpm-python +BuildRequires: python2-mock +BuildRequires: python2-koji +BuildRequires: python-unittest2 +BuildRequires: python2-pyxdg +BuildRequires: wget +#For x-rpm mimetype definition! +BuildRequires: mailcap +BuildRequires: koji +BuildRequires: python2-koji + +Requires: python2-pyxdg +Requires: rpm-python +Requires: koji +Requires: python2-koji +Requires: python2 >= 2.6 +Requires: wget +#For x-rpm mimetype definition! +Requires: mailcap %description -The libabigail package comprises four command line utilities: abidiff, -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. 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. +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 +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 +kernels. abipkgdiff compares the ABIs of ELF binaries contained in +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. Install libabigail if you need to compare the ABI of ELF shared libraries. @@ -62,10 +84,20 @@ format. %prep %setup -n %{tarball_name} +# Create a git repo within the expanded tarball. +git init +git config user.name "Dodji Seketeli" +git config user.email "dodji@redhat.com" +git add . +git commit -a -q -m "%{version} baseline." +# Apply all the patches on top. +git am %{patches} +#As one of the patches touches a Makefile.am, +# we need to regenerate the Makefile.in files. +autoreconf %build -autoreconf -i -%configure --disable-silent-rules --disable-zip-archive --disable-static +%configure --enable-ctf --disable-python3 --disable-silent-rules --disable-zip-archive --disable-static make %{?_smp_mflags} pushd doc make html-doc @@ -83,36 +115,37 @@ find %{buildroot} -name '*.la' -exec rm -f {} ';' # 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 %check -make check -if [ $1 -eq 0 ]; then - cat tests/test-suite.log -fi +time make %{?_smp_mflags} check check-self-compare || (cat tests/test-suite.log && exit 2) -%post -p /sbin/ldconfig - -%postun -p /sbin/ldconfig - -%post doc +%post +/sbin/ldconfig /usr/sbin/install-info %{_infodir}/abigail.info* %{_infodir}/dir 2>/dev/null || : -%preun doc +%preun if [ $1 -eq 0 ]; then /usr/sbin/install-info --delete %{_infodir}/abigail.info* %{_infodir}/dir 2>/dev/null || : fi +%postun -p /sbin/ldconfig + %files %{_bindir}/abicompat %{_bindir}/abidiff %{_bindir}/abidw %{_bindir}/abilint %{_bindir}/abipkgdiff -%{_libdir}/libabigail.so.0 -%{_libdir}/libabigail.so.0.0.0 -%doc AUTHORS ChangeLog -%license COPYING COPYING-LGPLV3 COPYING-GPLV3 +%{_bindir}/fedabipkgdiff +%{_bindir}/kmidiff +%{_libdir}/libabigail.so.3 +%{_libdir}/libabigail.so.3.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 @@ -121,13 +154,226 @@ fi %{_datadir}/aclocal/abigail.m4 %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* %changelog +* Mon Nov 20 2023 Dodji Seketeli - 2.4-3 +- Fix SPDX licensing string + +* Wed Nov 15 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. +- Fix sourceware.org/PR31017 + "Support Flex array conversion suppression" + Apply patch 0002-suppression-Add-has_strict_flexible_array_data_membe.patch +- Use SPDX license description +- Add git as build requirement +- Use git to apply the patches as they apply binary changes and patch + doesn't know how to handle these. +- As the paches touch Makefile.am files, run autoreconf after + applying the patches. + + +* Fri Oct 20 2023 Dodji Seketeli - 2.4-1 +- Update to upstream 2.4 tarball +- Support soname bumped to libabigail.so.3.0.0 + +* 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. + +* 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. + +* 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 Feb 25 2021 Dodji Seketeli - 1.8.2-1 +- Update to upstream 1.8.2 point release + +* 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 Dec 1 2020 Dodji Seketeli - 1.8-1 +- Update to upstream 1.8 +- Add "make check-self-compare" to regression tests +- Add BuildRequires python2-koji + +* 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 +- Update to upstream 1.6 +- Remove patches: + 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 +- Apply patches + Support-having-several-debuginfo-search-dirs-for-a-b.patch and + Add-a-fail-no-debug-info-to-abidiff.patch + +* Fri Oct 26 2018 Dodji Seketeli - 1.5-1 +- Remove dpkg from buildrequires + +* Thu Oct 25 2018 Dodji Seketeli - 1.5-1 +- Update to upstream 1.5 tarball + +* Fri Jul 13 2018 Dodji Seketeli - 1.4-1 +- Update to upstream 1.4 +- Merge change to build fedabipkgdiff in Fedora only + +* Wed May 16 2018 Dodji Seketeli - 1.3-1 +- Update to upstream 1.3 version +- Make sure to build against python2. + +* Tue Mar 6 2018 Dodji Seketeli - 1.2-1 +- Update to upstream 1.2 + +* Tue Jan 30 2018 Dodji Seketeli - 1.1-1 +- Update to upstream 1.1 + +* Wed Nov 22 2017 Dodji Seketeli - 1.0-1 +- Add missing %%{dist} to release. + +* Tue Nov 7 2017 Dodji Seketeli - 1.0-1 +- 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 +- Remove patches that got applied upstream: + 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 +- Add kmidiff to the RPM + +* 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 + Apply the upstream patch here. + +* Sat Nov 26 2016 Dodji Seketeli - 1.0-0.8.rc6.2 +- Fix an issue where some suppressed diff nodes are still visible in change reports + 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 +- 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 + +* 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, rpm-python, python-mock, koji, pyxdg, python-unittest2 +- Add new %%{_bindir}/fedabipkgdiff binary and + %%{_libdir}/libabigail/default.abignore configuration file to the set + of distributed files. +- Drop patches that were integrated upstream: + 0001-Bug-19961-Distinguish-between-PI-executable-and-shar.patch + 0002-Bug-19964-Cannot-load-function-aliases-on-ppc64.patch + +* 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: + Bug 19961 - Distinguish between PI executable and shared library + Bug 19964 - Cannot load function aliases on ppc64 + The two upstream patches applied are 8944ceb9ef03a4187 and 2529f84ae0e2ca2a + +* Sun Apr 17 2016 Dodji Seketeli - 1.0-0.8.rc4.1 +- Update to upstream 1.0.rc4 + +* Fri Mar 25 2016 Dodji Seketeli - 1.0-0.8.rc3.1 +- Bump pseudo epoch to 0.8 so that we have: 1.0-0.8.rc3.1 + +* Tue Mar 8 2016 Dodji Seketeli - 1.0-0.rc3.1 +- Update to upstream 1.0.rc3 +- Add gcc-c++ as BuildRequires +- Measure the time taken by regression tests + +* Fri Jan 8 2016 Dodji Seketeli - 1.0-0.rc2.1 +- Update to upstream release 1.0.rc2 +- Run make check in // if possible + +* Wed Jan 6 2016 Dodji Seketeli - 1.0-0.rc1.2 +- Add/Remove info pages to/from info pages database after install/before remove + +* Wed Jan 6 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 + +* Tue Nov 17 2015 Dodji Seketeli - 1.0-0.7.rc0 +- Update to upstream release 1.0.rc0 +- Take a tarball built using make dist now. +- Do not run autoreconf -i anymore, during the build. + +* 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 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. diff --git a/sources b/sources index 3fdd82b..32bfac4 100644 --- a/sources +++ b/sources @@ -1 +1,3 @@ -4c6690d4106dd28e9c3db62273734074 libabigail-1.0-git-ab1316b.tar.gz +SHA512 (libabigail-2.4.tar.xz) = f9b51f8710c75b911da10c1e93e0b6b6fa575f99e8f37a5f51e93a8e6b79c9ad1541e531730b410385053d6565f807300f7910dca48cbd3e991d111198781d95 +SHA512 (0001-Bug-31045-Don-t-try-setting-translation-unit-for-uni.patch) = f2145d6f9552dcd818228c08a68b6d54f7d79c53d79c2fff18f2664ac3684d2da09670247e482a18ee8f3b44fafbac425ca8d357ea4c621212b84b8180bd989e +SHA512 (0002-suppression-Add-has_strict_flexible_array_data_membe.patch) = 28b8eecba059e2e08e907ecc8ee9e03d57acdc94ce4e1aea4b8c51cf78c7711812215539149e5d24e77fb4c7a6b62c2e5062e7ff87b69d4ee2a85d2205e8b00b