Blob Blame History Raw
%{?scl:%{?scl_package:%scl_package strace}}

Summary: Tracks and displays system calls associated with a running process
Name: %{?scl_prefix}strace
Version: 4.17
Release: 7%{?dist}
License: BSD
Group: Development/Debuggers
URL: http://sourceforge.net/projects/strace/
# The upstream source really comes in .xz format.  Unfortunately
# DTS builds using .xz seem to want to use /opt/rh/<...>/xz rather
# than the one in /usr/bin.  Using the .gz extension seems to avoid
# this problem.  This should be fixed at some point.
Source: http://downloads.sourceforge.net/strace/strace-%{version}.tar.gz
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)

%define alternatives_cmd %{!?scl:%{_sbindir}}%{?scl:%{_root_sbindir}}/alternatives
%define alternatives_cmdline %{alternatives_cmd}%{?scl: --altdir %{_sysconfdir}/alternatives --admindir %{_scl_root}/var/lib/alternatives}

BuildRequires: libacl-devel, time
%{?scl:Requires:%scl_runtime}

#Patch1000: strace-strict-aliasing.patch
Patch1001: strace-rh948577.patch
Patch1002: strace-rh851457.patch
Patch1005: strace-no-net-tests.patch
Patch1007: strace-no-uio-tests.patch

# Hack as the RHEL 6 used for DTS is too old and doesn't define MADV_DODUMP
# and MADV_DONTDUMP.
Patch2000: strace-rh921550.patch

#Patch2001: strace-4.12-vhangup.patch
#Patch2002: strace-4.12-chown.patch

Patch3000: strace-no-rhel5-tests.patch
Patch3001: strace-rpmbuild-m64.patch
Patch3002: strace-rh1377847.patch
Patch3003: strace-rh1276132.patch
Patch3004: strace-rh1540954-1.patch
Patch3005: strace-rh1540954-2.patch
Patch3006: strace-rh1562124.patch

# In the past we had a separate strace64 package, these days the
# stndard 64 bit build provides that functionality.  For tracing
# 32 bit applications on ppc and s390 we still have strace32
Obsoletes: strace64

%define strace32_arches ppc s390

%description
The strace program intercepts and records the system calls called and
received by a running process.  Strace can print a record of each
system call, its arguments and its return value.  Strace is useful for
diagnosing problems and debugging, as well as for instructional
purposes.

Install strace if you need a tool to track the system calls made and
received by a process.

%ifarch %{strace32_arches}
%package -n strace32
Summary: Tracks and displays system calls associated with a running process.
Group: Development/Debuggers

%description -n strace32
The strace program intercepts and records the system calls called and
received by a running process.  Strace can print a record of each
system call, its arguments and its return value.  Strace is useful for
diagnosing problems and debugging, as well as for instructional
purposes.

Install strace if you need a tool to track the system calls made and
received by a process.

This package provides the `strace32' program to trace 32-bit processes on
64-bit IBM P and Z series platforms.
%endif

%prep
%setup -q -n strace-%{version}
#%patch1000 -p1
%patch1001 -p1
%patch1002 -p1
%patch1005 -p1
%patch1007 -p1
%patch2000 -p1
#%patch2001 -p1
#%patch2002 -p1
%patch3000 -p1
%patch3001 -p1
%patch3002 -p1
%patch3003 -p1
%patch3004 -p1
%patch3005 -p1
%patch3006 -p1

%build
uname -a
%configure
make %{?_smp_mflags}

%install
rm -rf %{buildroot}
make DESTDIR=%{buildroot} install

# remove unpackaged files from the buildroot
rm -f %{buildroot}%{_bindir}/strace-graph

%define copy64 ln
%if 0%{?rhel}
%if 0%{?rhel} < 6
%endif
%define copy64 cp -p
%endif

%ifarch %{strace32_arches}
%{copy64} %{buildroot}%{_bindir}/strace %{buildroot}%{_bindir}/strace32
%endif

%check
# Temporary until we dig deeper into the failures
%ifnarch s390x ppc64
make -k check
%endif

%clean
rm -rf %{buildroot}

%files
%defattr(-,root,root)
%doc CREDITS ChangeLog ChangeLog-CVS COPYING NEWS README
%{_bindir}/strace
%{_bindir}/strace-log-merge
%{_mandir}/man1/*

%ifarch %{strace32_arches}
%files -n strace32
%defattr(-,root,root)
%{_bindir}/strace32
%endif

%changelog
* Tue Apr  3 2018 DJ Delorie <dj@redhat.com> - 4.17-7
- Update futex 32-bit tests for newer kernels. (#1562124)

* Tue Apr  3 2018 DJ Delorie <dj@redhat.com> - 4.17-6
- Update futex tests for newer kernels. (#1562124)

* Thu Mar  8 2018 DJ Delorie <dj@redhat.com> - 4.17-5
- Add regenerated files to previous commit. (#1540954)

* Wed Feb 21 2018 DJ Delorie <dj@redhat.com> - 4.17-4
- Handle MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED (#1540954)

* Fri Aug 11 2017 DJ Delorie <dj@redhat.com> - 4.17-3
- Handle PTRACE_CONT (#1276132)

* Fri Jun 23 2017 DJ Delorie <dj@redhat.com> - 4.17-2
- update sources and .gitignore

* Fri Jun 23 2017 DJ Delorie <dj@redhat.com> - 4.17-1
- Rebase to 4.17 (#1464230)
- Skip tests not supported on our builders
- Update patches for 4.17

* Fri Aug 12 2016 DJ Delorie <dj@redhat.com> - 4.12-3
- Merge upstream patches for vhangup and chown
- Skip some tests on older kernels (RHEL 6)
- Remove -m64 that rpm macros adds
- Duplicate vhangup/chown patch for -m32 also.

* Wed Jul 27 2016 Jeff Law <law@redhat.com> - 4.12-2
- Disable testing on s390x and ppc64 until we can determine
  root causes of their failures.

* Thu Jul 21 2016 DJ Delorie <dj@redhat.com> - 4.12-1
- Rebase to fc24's 4.12

* Wed Aug  5 2015 DJ Delorie <dj@redhat.com> - 4.10-2
- Add --re-interval to caps tests also

* Fri Jul 17 2015 DJ Delorie <dj@redhat.com> - 4.10-1
- Rebase to fc23's 4.10

* Wed May 21 2014 Jeff Law <law@redhat.com> - 4.8-8
- Import from RHEL 7 and build