2018-01-26 16:17:03 +00:00
|
|
|
|
|
|
|
# Do not build the annobin plugin with annotation enabled.
|
|
|
|
# This is because if we are bootstrapping a new build environment we can have
|
|
|
|
# a new version of gcc installed, but without a new of annobin installed.
|
|
|
|
# (ie we are building the new version of annobin to go with the new version
|
|
|
|
# of gcc). If the *old* annobin plugin is used whilst building this new
|
|
|
|
# version, the old plugin will complain that version of gcc for which it
|
|
|
|
# was built is different from the version of gcc that is now being used, and
|
|
|
|
# then it will abort.
|
2018-01-26 11:36:09 +00:00
|
|
|
%undefine _annotated_build
|
|
|
|
|
2017-07-27 13:58:31 +00:00
|
|
|
Name: annobin
|
|
|
|
Summary: Binary annotation plugin for GCC
|
2018-01-26 12:33:58 +00:00
|
|
|
Version: 3.2
|
2018-01-26 16:17:03 +00:00
|
|
|
Release: 2%{?dist}
|
2017-07-27 13:58:31 +00:00
|
|
|
|
2017-10-03 13:46:25 +00:00
|
|
|
License: GPLv3+
|
2017-07-27 13:58:31 +00:00
|
|
|
URL: https://fedoraproject.org/wiki/Toolchain/Watermark
|
|
|
|
|
2017-09-21 12:39:01 +00:00
|
|
|
# Use "--without tests" to disable the testsuite. The default is to run them.
|
|
|
|
%bcond_without tests
|
|
|
|
|
|
|
|
#---------------------------------------------------------------------------------
|
2017-09-21 13:02:09 +00:00
|
|
|
Source: https://nickc.fedorapeople.org/annobin-%{version}.tar.xz
|
2017-12-08 11:11:14 +00:00
|
|
|
# For the latest sources use: git clone git://sourceware.org/git/annobin.git
|
2017-07-27 13:58:31 +00:00
|
|
|
|
|
|
|
# This is a gcc plugin, hence gcc is required.
|
|
|
|
Requires: gcc
|
2018-01-26 16:17:03 +00:00
|
|
|
Requires(post): /sbin/install-info
|
|
|
|
Requires(preun): /sbin/install-info
|
2017-07-27 13:58:31 +00:00
|
|
|
|
2018-01-26 16:17:03 +00:00
|
|
|
BuildRequires: gcc-plugin-devel pkgconfig coreutils info
|
2017-07-27 13:58:31 +00:00
|
|
|
|
|
|
|
%description
|
2018-01-04 10:05:29 +00:00
|
|
|
A plugin for GCC that records extra information in the files that it compiles,
|
|
|
|
and a set of scripts that analyze the recorded information. These scripts can
|
|
|
|
determine things ABI clashes in compiled binaries, or the absence of required
|
|
|
|
hardening options.
|
|
|
|
|
|
|
|
Note - the plugin is enabled in gcc builds via flags provided by the
|
|
|
|
redhat-rpm-macros package, and the analysis tools rely upon the readelf program
|
|
|
|
from the binutils package.
|
2017-07-27 13:58:31 +00:00
|
|
|
|
2017-09-21 12:39:01 +00:00
|
|
|
#---------------------------------------------------------------------------------
|
|
|
|
%if %{with tests}
|
|
|
|
|
|
|
|
%package tests
|
|
|
|
Summary: Test scripts and binaries for checking the behaviour and output of the annobin plugin
|
|
|
|
|
|
|
|
%description tests
|
|
|
|
Provides a means to test the generation of annotated binaries and the parsing
|
|
|
|
of the resulting files.
|
|
|
|
# FIXME: Does not actually do this yet...
|
|
|
|
|
|
|
|
%endif
|
|
|
|
#---------------------------------------------------------------------------------
|
|
|
|
|
2017-07-27 13:58:31 +00:00
|
|
|
%global ANNOBIN_PLUGIN_DIR %(g++ -print-file-name=plugin)
|
|
|
|
|
|
|
|
%prep
|
|
|
|
%autosetup -p1
|
|
|
|
|
2018-01-04 10:05:29 +00:00
|
|
|
# The plugin has to be configured with the same arcane configure
|
|
|
|
# scripts used by gcc. Hence we must not allow the Fedora build
|
|
|
|
# system to regenerate any of the configure files.
|
|
|
|
touch aclocal.m4 plugin/config.h.in
|
2017-09-26 12:59:20 +00:00
|
|
|
touch configure */configure Makefile.in */Makefile.in
|
2018-01-26 12:33:58 +00:00
|
|
|
# Similarly we do not want to rebuild the documentation.
|
|
|
|
touch doc/annobin.info
|
2017-09-26 12:59:20 +00:00
|
|
|
|
2017-07-27 13:58:31 +00:00
|
|
|
%build
|
2018-01-16 17:48:21 +00:00
|
|
|
%configure --quiet --with-gcc-plugin-dir=%{ANNOBIN_PLUGIN_DIR}
|
2017-10-03 13:48:09 +00:00
|
|
|
%make_build
|
|
|
|
|
|
|
|
%install
|
|
|
|
%make_install
|
2018-01-26 16:17:03 +00:00
|
|
|
%{__rm} -f %{buildroot}%{_infodir}/dir
|
2017-07-27 13:58:31 +00:00
|
|
|
|
2017-09-21 12:39:01 +00:00
|
|
|
%if %{with tests}
|
2017-10-03 13:48:09 +00:00
|
|
|
%check
|
2017-09-21 12:39:01 +00:00
|
|
|
make check
|
|
|
|
%endif
|
|
|
|
|
2018-01-26 16:17:03 +00:00
|
|
|
%post
|
|
|
|
/sbin/install-info %{_infodir}/annobin.info.gz %{_infodir} >/dev/null 2>&1 || :
|
|
|
|
exit 0
|
|
|
|
|
|
|
|
%preun
|
|
|
|
if [ $1 = 0 ]; then
|
|
|
|
/sbin/install-info --delete %{_infodir}/annobin.info.gz %{_infodir} >/dev/null 2>&1|| :
|
|
|
|
fi
|
|
|
|
exit 0
|
|
|
|
|
2017-07-27 13:58:31 +00:00
|
|
|
%files
|
|
|
|
%{ANNOBIN_PLUGIN_DIR}
|
|
|
|
%{_bindir}/built-by.sh
|
|
|
|
%{_bindir}/check-abi.sh
|
|
|
|
%{_bindir}/hardened.sh
|
|
|
|
%license COPYING3 LICENSE
|
|
|
|
%exclude %{_datadir}/doc/annobin-plugin/COPYING3
|
|
|
|
%exclude %{_datadir}/doc/annobin-plugin/LICENSE
|
|
|
|
%doc %{_datadir}/doc/annobin-plugin/annotation.proposal.txt
|
2018-01-26 12:33:58 +00:00
|
|
|
%doc %{_infodir}/annobin.info.gz
|
2017-07-27 13:58:31 +00:00
|
|
|
|
2017-09-21 12:39:01 +00:00
|
|
|
#---------------------------------------------------------------------------------
|
|
|
|
|
2017-07-27 13:58:31 +00:00
|
|
|
%changelog
|
2018-01-26 16:17:03 +00:00
|
|
|
* Fri Jan 26 2018 Nick Clifton <nickc@redhat.com> - 3.2-2
|
|
|
|
- Fix the installation of the annobin.info file.
|
|
|
|
|
2018-01-26 12:33:58 +00:00
|
|
|
* Fri Jan 26 2018 Nick Clifton <nickc@redhat.com> - 3.2-1
|
|
|
|
- Rebase on 3.2 release, which now contains documentation!
|
|
|
|
|
2018-01-26 09:45:52 +00:00
|
|
|
* Fri Jan 26 2018 Richard W.M. Jones <rjones@redhat.com> - 3.1-3
|
|
|
|
- Rebuild against GCC 7.3.1.
|
|
|
|
|
2018-01-16 17:48:21 +00:00
|
|
|
* Tue Jan 16 2018 Nick Clifton <nickc@redhat.com> - 3.1-2
|
|
|
|
- Add --with-gcc-plugin-dir option to the configure command line.
|
|
|
|
|
2018-01-04 10:05:29 +00:00
|
|
|
* Thu Jan 04 2018 Nick Clifton <nickc@redhat.com> - 3.1-1
|
|
|
|
- Rebase on version 3.1 sources.
|
|
|
|
|
2017-12-11 10:36:08 +00:00
|
|
|
* Mon Dec 11 2017 Nick Clifton <nickc@redhat.com> - 2.5.1-5
|
|
|
|
- Do not generate notes when there is no output file. (#1523875)
|
|
|
|
|
|
|
|
* Fri Dec 08 2017 Nick Clifton <nickc@redhat.com> - 2.5.1-4
|
2017-12-08 11:11:14 +00:00
|
|
|
- Invent an input filename when reading from a pipe. (#1523401)
|
|
|
|
|
2017-11-30 17:53:24 +00:00
|
|
|
* Thu Nov 30 2017 Florian Weimer <fweimer@redhat.com> - 2.5.1-3
|
|
|
|
- Use DECL_ASSEMBLER_NAME for symbol references (#1519165)
|
|
|
|
|
2017-10-03 13:48:47 +00:00
|
|
|
* Tue Oct 03 2017 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 2.5.1-2
|
|
|
|
- Cleanups in spec
|
|
|
|
|
2017-10-03 13:49:30 +00:00
|
|
|
* Tue Sep 26 2017 Nick Clifton <nickc@redhat.com> - 2.5.1-1
|
2017-09-26 12:59:20 +00:00
|
|
|
- Touch the auto-generated files in order to stop them from being regenerated.
|
|
|
|
|
2017-10-03 13:49:30 +00:00
|
|
|
* Tue Sep 26 2017 Nick Clifton <nickc@redhat.com> - 2.5-2
|
2017-09-26 11:33:04 +00:00
|
|
|
- Stop the plugin complaining about compiler datestamp mismatches.
|
|
|
|
|
2017-10-03 13:49:30 +00:00
|
|
|
* Thu Sep 21 2017 Nick Clifton <nickc@redhat.com> - 2.4-1
|
2017-09-21 13:31:48 +00:00
|
|
|
- Tweak tests so that they will run on older machines.
|
|
|
|
|
2017-10-03 13:49:30 +00:00
|
|
|
* Thu Sep 21 2017 Nick Clifton <nickc@redhat.com> - 2.3-1
|
2017-09-21 12:39:01 +00:00
|
|
|
- Add annobin-tests subpackage containing some preliminary tests.
|
|
|
|
- Remove link-time test for unsuported targets.
|
|
|
|
|
2017-08-02 17:35:45 +00:00
|
|
|
* Wed Aug 02 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2.0-3
|
|
|
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
|
|
|
|
|
2017-07-31 06:34:29 +00:00
|
|
|
* Mon Jul 31 2017 Florian Weimer <fweimer@redhat.com> - 2.0-2
|
|
|
|
- Rebuild with binutils fix for ppc64le (#1475636)
|
|
|
|
|
2017-10-03 13:49:30 +00:00
|
|
|
* Wed Jun 28 2017 Nick Clifton <nickc@redhat.com> - 2.0-1
|
2017-07-27 13:58:31 +00:00
|
|
|
- Fixes for problems reported by the package submission review:
|
|
|
|
* Add %%license entry to %%file section.
|
|
|
|
* Update License and BuildRequires tags.
|
|
|
|
* Add Requires tag.
|
|
|
|
* Remove %%clean.
|
|
|
|
* Add %%check.
|
|
|
|
* Clean up the %%changelog.
|
|
|
|
- Update to use version 2 of the specification and sources.
|
|
|
|
|
2017-10-03 13:49:30 +00:00
|
|
|
* Thu May 11 2017 Nick Clifton <nickc@redhat.com> - 1.0-1
|
2017-07-27 13:58:31 +00:00
|
|
|
- Initial submission.
|