major rewrite

This commit is contained in:
YellowJacketLinux 2023-04-16 00:30:04 -07:00
parent 4d85e2e4ba
commit bda6168a71

View File

@ -1,17 +1,31 @@
# Many (most?) distributions put install-info in /{,usr/}sbin
# YJL defines this macro to /usr/bin/install-info
# so define it to be in /sbin/ if not defined.
%if %{!?insinfo:1}%{?insinfo:0}
%global insinfo /sbin/install-info
%endif
%global triplet %(%{_bindir}/gcc -dumpmachine)
# no stripping
%define __strip /bin/true
Name: binutils
Version: 2.40
Release: %{?repo}0.rc4%{?dist}
Summary: Collection of binary tools
Name: binutils
Version: 2.40
Release: %{?repo}0.rc5%{?dist}
Summary: Collection of binary tools
Group: System Environment/Utilities
License: GPLv2, GPLv3
URL: https://www.gnu.org/software/binutils/
Source0: https://sourceware.org/pub/binutils/releases/%{name}-%{version}.tar.xz
Group: System Environment/Utilities
License: GPLv2, GPLv3, LGPLv2, LGPLv3
URL: https://www.gnu.org/software/binutils/
Source0: https://sourceware.org/pub/binutils/releases/%{name}-%{version}.tar.xz
#BuildRequires:
Requires: %{name}-libs = %{version}-%{release}
Requires: %{name}-libs = %{version}-%{release}
Requires(post): %{insinfo}
Requires(preun): %{insinfo}
BuildRequires: elfutils-devel
BuildRequires: libfl-devel
BuildRequires: libstdc++-devel
BuildRequires: libzstd-devel
BuildRequires: zlib-devel
%description
These are the GNU binutils. These are utilities of use when dealing
@ -24,31 +38,72 @@ pair of libraries (bfd and opcodes) and a common set of header files
(include).
%package libs
Summary: Binutils Libraries
Group: System Environment/Libraries
License: LGPLv2, LGPLv3
Summary: The binutils shared libraries
Group: System Environment/Libraries
%description libs
This package contains the Binutils shared libraries
This package contains the binutils shared libraries.
%package devel
Summary: Binutils developer files
Group: Development/Libraries
Requires: %{name} = %{version}-%{release}
Requires: %{name}-libs = %{version}-%{release}
Summary: Binutils developer files
Group: Development/Libraries
Requires: %{name} = %{version}-%{release}
Requires: %{name}-libs = %{version}-%{release}
Requires(post): %{insinfo}
Requires(preun): %{insinfo}
%description devel
This package contains the developer files needed to compile software
that links against the binutils libraries.
%package static
Summary: Binutils static libraries
Group: Development/Libraries
Requires: %{name}-devel = %{version}-%{release}
Summary: Binutils static libraries
Group: Development/Libraries
Requires: %{name}-devel = %{version}-%{release}
%description static
This package contains the binutils static libraries, in the event
that they are actually needed.
This package contains the binutils libbfd.a and libopcodes.a static
libraries. You probably do not need this package.
%package -n gprofng
Summary: Application profiling tool
Group: System Environment/Utilities
Requires: %{name} = %{version}-%{release}
Requires(post): %{insinfo}
Requires(preun): %{insinfo}
# from https://blogs.oracle.com/linux/post/gprofng-the-next-generation-gnu-profiling-tool
%description -n gprofng
Gprofng is a next generation application profiling tool. It supports
the profiling of programs written in C, C++, Java, or Scala running on
systems using processors from Intel, AMD, Arm, or compatible vendors.
The extent of the support is processor dependent, but the basic views
are always available.
%package -n libctf-nobfd
Summary: The libctf-nobfd shared library
Group: System Environment/Libraries
%description -n libctf-nobfd
This package contains the libctf-nobfd shared library from binutils.
%package -n libctf-nobfd-devel
Summary: Developer files for the libctf-nobfd library
Group: Development/Libraries
Requires: %{name}-devel = %{version}-%{release}
%description -n libctf-nobfd-devel
This package containd the developer files needed to compile software
that links against the libctf-nobfd library.
%package -n libctf-nobfd-static
Summary: The libctf-nobfd static library
Group: Development/Libraries
Requires: libctf-nobfd-devel
%description -n libctf-nobfd-static
This package contains the libctf-nobfd.a static library from binutils.
You probably do not need this package.
%prep
%setup -q
@ -78,7 +133,8 @@ touch files.lang
%find_lang gas && cat gas.lang >> files.lang
%check
LOG=%{name}=make.check.tmp
%if 0%{?runtests:1} == 1
LOG=%{name}-make.check.tmp
make -k check > ${LOG} 2>&1 ||:
echo >> ${LOG}
echo >> ${LOG}
@ -90,48 +146,154 @@ echo >> ${LOG}
grep '^FAIL:' $(find -name '*.log') >> ${LOG}
sleep 1
mv ${LOG} %{name}-make.check.log
%else
echo "make check not run during packaging" > %{name}-make.check.log
%endif
%post
%{_bindir}/install-info %{_infodir}/as.info %{_infodir}/dir ||:
%{_bindir}/install-info %{_infodir}/bfd.info %{_infodir}/dir ||:
%{_bindir}/install-info %{_infodir}/binutils.info %{_infodir}/dir ||:
%{_bindir}/install-info %{_infodir}/ctf-spec.info %{_infodir}/dir ||:
%{_bindir}/install-info %{_infodir}/gprof.info %{_infodir}/dir ||:
%{_bindir}/install-info %{_infodir}/gprofng.info %{_infodir}/dir ||:
%{_bindir}/install-info %{_infodir}/ld.info %{_infodir}/dir ||:
%{_bindir}/install-info %{_infodir}/sframe-spec.info %{_infodir}/dir ||:
%{insinfo} %{_infodir}/as.info %{_infodir}/dir ||:
%{insinfo} %{_infodir}/bfd.info %{_infodir}/dir ||:
%{insinfo} %{_infodir}/binutils.info %{_infodir}/dir ||:
%{insinfo} %{_infodir}/ctf-spec.info %{_infodir}/dir ||:
%{insinfo} %{_infodir}/gprof.info %{_infodir}/dir ||:
%{insinfo} %{_infodir}/ld.info %{_infodir}/dir ||:
%{insinfo} %{_infodir}/sframe-spec.info %{_infodir}/dir ||:
%preun
if [ $1 = 0 ]; then
%{_bindir}/install-info --delete %{_infodir}/as.info %{_infodir}/dir ||:
%{_bindir}/install-info --delete %{_infodir}/binutils.info %{_infodir}/dir ||:
%{_bindir}/install-info --delete %{_infodir}/ctf-spec.info %{_infodir}/dir ||:
%{_bindir}/install-info --delete %{_infodir}/gprof.info %{_infodir}/dir ||:
%{_bindir}/install-info --delete %{_infodir}/gprofng.info %{_infodir}/dir ||:
%{_bindir}/install-info --delete %{_infodir}/ld.info %{_infodir}/dir ||:
%{_bindir}/install-info --delete %{_infodir}/sframe-spec.info %{_infodir}/dir ||:
%{insinfo} --delete %{_infodir}/as.info %{_infodir}/dir ||:
%{insinfo} --delete %{_infodir}/binutils.info %{_infodir}/dir ||:
%{insinfo} --delete %{_infodir}/ctf-spec.info %{_infodir}/dir ||:
%{insinfo} --delete %{_infodir}/gprof.info %{_infodir}/dir ||:
%{insinfo} --delete %{_infodir}/ld.info %{_infodir}/dir ||:
%{insinfo} --delete %{_infodir}/sframe-spec.info %{_infodir}/dir ||:
fi
%post -n gprofng
/sbin/ldconfig
%{insinfo} %{_infodir}/gprofng.info %{_infodir}/dir ||:
%preun -n gprofng
if [ $1 = 0 ]; then
%{insinfo} --delete %{_infodir}/gprofng.info %{_infodir}/dir ||:
fi
%postun -n gprofng -p /sbin/ldconfig
%post libs -p /sbin/ldconfig
%postun libs -p /sbin/ldconfig
%post -n libctf-nobfd -p /sbin/ldconfig
%postun -n libctf-nobfd -p /sbin/ldconfig
%post devel
%{_bindir}/install-info %{_infodir}/bfd.info %{_infodir}/dir ||:
%{insinfo} %{_infodir}/bfd.info %{_infodir}/dir ||:
%preun devel
if [ $1 = 0 ]; then
%{_bindir}/install-info --delete %{_infodir}/bfd.info %{_infodir}/dir ||:
%{insinfo} --delete %{_infodir}/bfd.info %{_infodir}/dir ||:
fi
%files -f files.lang
%defattr(-,root,root,-)
%{_prefix}/x86_64-pc-linux-gnu
%{_sysconfdir}/gprofng.rc
%{_bindir}/*
%attr(0755,root,root) %dir %{_prefix}/%{triplet}
%attr(0755,root,root) %dir %{_prefix}/%{triplet}/bin
%attr(0755,root,root) %{_prefix}/%{triplet}/bin/*
%attr(0755,root,root) %dir %{_prefix}/%{triplet}/lib
%attr(0755,root,root) %dir %{_prefix}/%{triplet}/lib/ldscripts
%attr(0644,root,root) %{_prefix}/%{triplet}/lib/ldscripts/*.x*
### bin stuff
%attr(0755,root,root) %{_bindir}/addr2line
%attr(0755,root,root) %{_bindir}/ar
%attr(0755,root,root) %{_bindir}/as
%attr(0755,root,root) %{_bindir}/c++filt
%attr(0755,root,root) %{_bindir}/dwp
%attr(0755,root,root) %{_bindir}/elfedit
%attr(0755,root,root) %{_bindir}/gprof
%attr(0755,root,root) %{_bindir}/ld
%attr(0755,root,root) %{_bindir}/ld.bfd
%attr(0755,root,root) %{_bindir}/ld.gold
%attr(0755,root,root) %{_bindir}/nm
%attr(0755,root,root) %{_bindir}/objcopy
%attr(0755,root,root) %{_bindir}/objdump
%attr(0755,root,root) %{_bindir}/ranlib
%attr(0755,root,root) %{_bindir}/readelf
%attr(0755,root,root) %{_bindir}/size
%attr(0755,root,root) %{_bindir}/strings
%attr(0755,root,root) %{_bindir}/strip
###
%dir %{_libdir}/bfd-plugins
%attr(0755,root,root) %{_libdir}/bfd-plugins/libdep.so
%exclude %{_infodir}/dir
%{_infodir}/as.info*
%{_infodir}/binutils.info*
%{_infodir}/ctf-spec.info*
%{_infodir}/gprof.info*
%{_infodir}/ld.info*
%{_infodir}/sframe-spec.info*
%attr(0644,root,root) %{_mandir}/man1/addr2line.1*
%attr(0644,root,root) %{_mandir}/man1/ar.1*
%attr(0644,root,root) %{_mandir}/man1/as.1*
%attr(0644,root,root) %{_mandir}/man1/c++filt.1*
%attr(0644,root,root) %{_mandir}/man1/dlltool.1*
%attr(0644,root,root) %{_mandir}/man1/elfedit.1*
%attr(0644,root,root) %{_mandir}/man1/gprof.1*
%attr(0644,root,root) %{_mandir}/man1/ld.1*
%attr(0644,root,root) %{_mandir}/man1/nm.1*
%attr(0644,root,root) %{_mandir}/man1/objcopy.1*
%attr(0644,root,root) %{_mandir}/man1/objdump.1*
%attr(0644,root,root) %{_mandir}/man1/ranlib.1*
%attr(0644,root,root) %{_mandir}/man1/readelf.1*
%attr(0644,root,root) %{_mandir}/man1/size.1*
%attr(0644,root,root) %{_mandir}/man1/strings.1*
%attr(0644,root,root) %{_mandir}/man1/strip.1*
%attr(0644,root,root) %{_mandir}/man1/windmc.1*
%attr(0644,root,root) %{_mandir}/man1/windres.1*
%license COPYING COPYING3 COPYING.LIB COPYING3.LIB
%doc COPYING COPYING3 COPYING.LIB COPYING3.LIB binutils/README
%doc %{name}-make.check.log
%files libs
%defattr(-,root,root,-)
%attr(0775,root,root) %{_libdir}/libbfd-2.40.so
%attr(0775,root,root) %{_libdir}/libopcodes-2.40.so
%attr(0775,root,root) %{_libdir}/libctf.so.0.0.0
%{_libdir}/libctf.so.0
%attr(0775,root,root) %{_libdir}/libsframe.so.0.0.0
%{_libdir}/libsframe.so.0
%license COPYING COPYING3 COPYING.LIB COPYING3.LIB
%doc COPYING COPYING3 COPYING.LIB COPYING3.LIB
%files devel
%defattr(-,root,root,-)
%attr(0644,root,root) %{_includedir}/*.h
%{_libdir}/libbfd.so
%{_libdir}/libopcodes.so
%{_libdir}/libctf.so
%{_libdir}/libsframe.so
%{_infodir}/bfd.info*
%license COPYING COPYING3 COPYING.LIB COPYING3.LIB
%doc COPYING COPYING3 COPYING.LIB COPYING3.LIB
%files static
%defattr(-,root,root,-)
%attr(0644,root,root) %{_libdir}/libbfd.a
%attr(0644,root,root) %{_libdir}/libopcodes.a
%attr(0644,root,root) %{_libdir}/libctf.a
%attr(0644,root,root) %{_libdir}/libsframe.a
%license COPYING COPYING3 COPYING.LIB COPYING3.LIB
%doc COPYING COPYING3 COPYING.LIB COPYING3.LIB
%files -n gprofng
%defattr(-,root,root,-)
%attr(0755,root,root) %{_bindir}/gp-archive
%attr(0755,root,root) %{_bindir}/gp-collect-app
%attr(0755,root,root) %{_bindir}/gp-display-html
%attr(0755,root,root) %{_bindir}/gp-display-src
%attr(0755,root,root) %{_bindir}/gp-display-text
%attr(0755,root,root) %{_bindir}/gprofng
%{_sysconfdir}/gprofng.rc
%dir %{_libdir}/gprofng
%attr(0755,root,root) %{_libdir}/gprofng/libgp-collector.so
%attr(0755,root,root) %{_libdir}/gprofng/libgp-collectorAPI.so
@ -141,52 +303,40 @@ fi
%attr(0755,root,root) %{_libdir}/gprofng/libgprofng.so.0.0.0
%{_libdir}/gprofng/libgprofng.so
%{_libdir}/gprofng/libgprofng.so.0
%exclude %{_infodir}/dir
%{_infodir}/as.info*
%{_infodir}/binutils.info*
%{_infodir}/ctf-spec.info*
%{_infodir}/gprof.info*
%{_infodir}/gprofng.info*
%{_infodir}/ld.info*
%{_infodir}/sframe-spec.info*
%{_mandir}/man1/*.1*
%license COPYING COPYING3
%doc COPYING COPYING3 binutils/README
%doc %{name}-make.check.log
%attr(0644,root,root) %{_mandir}/man1/gp-archive.1*
%attr(0644,root,root) %{_mandir}/man1/gp-collect-app.1*
%attr(0644,root,root) %{_mandir}/man1/gp-display-html.1*
%attr(0644,root,root) %{_mandir}/man1/gp-display-src.1*
%attr(0644,root,root) %{_mandir}/man1/gp-display-text.1*
%attr(0644,root,root) %{_mandir}/man1/gprofng.1*
%license COPYING COPYING3 COPYING.LIB COPYING3.LIB
%doc COPYING COPYING3 COPYING.LIB COPYING3.LIB
%files libs
%files -n libctf-nobfd
%defattr(-,root,root,-)
%attr(0775,root,root) %{_libdir}/libbfd-2.40.so
%attr(0775,root,root) %{_libdir}/libctf-nobfd.so.0.0.0
%attr(0775,root,root) %{_libdir}/libctf.so.0.0.0
%attr(0775,root,root) %{_libdir}/libopcodes-2.40.so
%attr(0775,root,root) %{_libdir}/libsframe.so.0.0.0
# symlinks
%{_libdir}/libctf-nobfd.so.0
%{_libdir}/libctf.so.0
%{_libdir}/libsframe.so.0
%license COPYING.LIB COPYING3.LIB
%doc COPYING.LIB COPYING3.LIB
%license COPYING COPYING3 COPYING.LIB COPYING3.LIB
%doc COPYING COPYING3 COPYING.LIB COPYING3.LIB
%files devel
%files -n libctf-nobfd-devel
%defattr(-,root,root,-)
%attr(0644,root,root) %{_includedir}/*.h
%{_libdir}/libbfd.so
%{_infodir}/bfd.info*
%{_libdir}/libctf-nobfd.so
%{_libdir}/libctf.so
%{_libdir}/libopcodes.so
%{_libdir}/libsframe.so
%license COPYING COPYING3 COPYING.LIB COPYING3.LIB
%doc COPYING COPYING3 COPYING.LIB COPYING3.LIB
%files static
%files -n libctf-nobfd-static
%defattr(-,root,root,-)
%attr(0644,root,root) %{_libdir}/libbfd.a
%attr(0644,root,root) %{_libdir}/libctf-nobfd.a
%attr(0644,root,root) %{_libdir}/libctf.a
%attr(0644,root,root) %{_libdir}/libopcodes.a
%attr(0644,root,root) %{_libdir}/libsframe.a
%license COPYING COPYING3 COPYING.LIB COPYING3.LIB
%doc COPYING COPYING3 COPYING.LIB COPYING3.LIB
%changelog
* Sun Apr 16 2023 Michael A. Peters <anymouseprophet@gmail.com> - 2.40-0.rc5
- Major rewrite of spec file
* Wed Apr 05 2023 Michael A. Peters <anymouseprophet@gmail.com> - 2.40-0.rc4
- Initial spec file for YJL (RPM bootstrapping LFS/BLFS 11.3)
- Twelve (out of numerous) test failures, all gold related