+#
+# Conditional build:
+%bcond_without libunwind # strack tracing using libunwind
+%bcond_without libiberty # symbol demangling in stack backtraces
+#
+%ifnarch %{ix86} %{x8664} x32 %{arm} hppa ia64 mips ppc ppc64 sh
+%undefine with_libunwind
+%endif
Summary: prints system call strace of a running process
-Summary(de): druckt ein Protokoll der Systemaufrufe eines laufenden Prozesses
-Summary(es): Enseña las llamadas de sistema de un proceso en ejecución
-Summary(fr): affiche l'appel système strace d'un processus en exécution
-Summary(pl): strace wy¶wietla funkcje systemowe wywo³ywane przez uruchomiony proces
-Summary(pt_BR): Mostra as chamadas de sistema de um processo rodando
-Summary(ru): ïÔÓÌÅÖÉ×ÁÅÔ É ÐÏËÁÚÙ×ÁÅÔ ÓÉÓÔÅÍÎÙÅ ×ÙÚÏ×Ù, Ó×ÑÚÁÎÎÙÅ Ó ÚÁÐÕÝÅÎÎÙÍ ÐÒÏÃÅÓÓÏÍ
-Summary(tr): Çalýþan bir sürecin yaptýðý sistem çaðrýlarýný listeler
-Summary(uk): ÷¦ÄÓ̦ÄËÏ×Õ¤ ÔÁ ÐÏËÁÚÕ¤ ÓÉÓÔÅÍΦ ×ÉËÌÉËÉ, ÐÏ×'ÑÚÁΦ ¦Ú ÚÁÐÕÝÅÎÉÍ ÐÒÏÃÅÓÏÍ
+Summary(de.UTF-8): druckt ein Protokoll der Systemaufrufe eines laufenden Prozesses
+Summary(es.UTF-8): Enseña las llamadas de sistema de un proceso en ejecución
+Summary(fr.UTF-8): affiche l'appel système strace d'un processus en exécution
+Summary(pl.UTF-8): strace wyświetla funkcje systemowe wywoływane przez uruchomiony proces
+Summary(pt_BR.UTF-8): Mostra as chamadas de sistema de um processo rodando
+Summary(ru.UTF-8): Отслеживает и показывает системные вызовы, связанные с запущенным процессом
+Summary(tr.UTF-8): Çalışan bir sürecin yaptığı sistem çağrılarını listeler
+Summary(uk.UTF-8): Відслідковує та показує системні виклики, пов'язані із запущеним процесом
Name: strace
-Version: 4.5.3
+Version: 5.3
Release: 1
-License: BSD-like
+License: LGPL v2.1+
Group: Development/Debuggers
-Source0: http://dl.sourceforge.net/strace/%{name}-%{version}.tar.bz2
-# Source0-md5: a29028424cd365c9e19b5625342d3f63
+Source0: https://github.com/strace/strace/releases/download/v%{version}/%{name}-%{version}.tar.xz
+# Source0-md5: 84f5e72de813c9b1bb6057ee8ab428d8
Source1: %{name}.1.pl
-Patch0: %{name}-newsysc.patch
-Patch1: %{name}-getdents64.patch
-Patch2: %{name}-kernel26_userspace.patch
-URL: http://www.liacs.nl/~wichert/strace/
-BuildRequires: autoconf >= 2.54
-BuildRequires: automake
+URL: https://strace.io/
+# acl and libaio for headers only
+BuildRequires: acl-devel
+%{?with_libiberty:BuildRequires: binutils-devel >= 4:2.30-1}
+BuildRequires: libaio-devel
+%{?with_libunwind:BuildRequires: libunwind-devel}
+BuildRequires: tar >= 1:1.22
+BuildRequires: xz
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%description
including all of the arguments passed to it and the system call's
return value.
-%description -l de
+%description -l de.UTF-8
Strace druckt ein Protokoll aller von einem anderen Programm
-ausgegebenen Systemaufrufe, einschließlich aller weitergeleiteten
+ausgegebenen Systemaufrufe, einschließlich aller weitergeleiteten
Argumente und dem Ausgabewert des Systemaufrufs.
-%description -l es
-Strace imprime una "grabación" de cada llamada de sistema que el
-programa hace, incluyendo todos los argumentos pasados para él, si la
+%description -l es.UTF-8
+Strace imprime una "grabación" de cada llamada de sistema que el
+programa hace, incluyendo todos los argumentos pasados para él, si la
vuelta de cada llamada de sistema es verdadera, o si hay creado error.
-%description -l fr
-strace affiche l'enregistrement de chaque appel système que fait un
-programme ainsi que tous les arguments qui lui ont été passés et la
+%description -l fr.UTF-8
+strace affiche l'enregistrement de chaque appel système que fait un
+programme ainsi que tous les arguments qui lui ont été passés et la
valeur de retour de l'appel.
-%description -l pl
-Strace wy¶wietla informacje o ka¿dym wywo³aniu funkcji systemowych
-przez uruchamiany program, w tym równie¿ wszystkie argumenty wywo³ania
-i zwrócon± warto¶æ.
+%description -l pl.UTF-8
+Strace wyświetla informacje o każdym wywołaniu funkcji systemowych
+przez uruchamiany program, w tym również wszystkie argumenty wywołania
+i zwróconą wartość.
-%description -l pt_BR
-Strace imprime uma "gravação" de cada chamada de sistema que o
+%description -l pt_BR.UTF-8
+Strace imprime uma "gravação" de cada chamada de sistema que o
programa faz, incluindo todos os argumentos passados para ele e se o
-retorno de cada chamada de sistema é verdadeiro ou gerou erro.
+retorno de cada chamada de sistema é verdadeiro ou gerou erro.
+
+%description -l ru.UTF-8
+Программа strace перехватывает и регистрирует системные вызовы,
+произведенные и полученные исполняющимся процессом. Strace может
+вывести список всех системных вызовов, их аргументов и возвращаемые
+ими значения. Strace полезна для диагностики проблем и отладки.
+
+%description -l tr.UTF-8
+strace bir programın çalıştığı sürece yaptığı bütün sistem
+çağrılarını, gönderdiği parametreler ve geri dönüş değerleriyle
+birlikte döker.
+
+%description -l uk.UTF-8
+Програма strace перехоплює та регіструє системні визови, зроблені та
+отримані процесом, який виконується. Strace може вивести список усіх
+системних визовів, їх аргументів та значень, які вони повернули.
+Strace корисний для діагностики проблем та відладки.
+
+%package graph
+Summary: strace graph
+Summary(pl.UTF-8): Graf strace
+Group: Development/Debuggers
+# NOTE: doesn't require directly strace binary.
+
+%description graph
+strace-graph script processes strace -f output. It displays a graph of
+invoked subprocesses, and is useful for finding out what complex
+commands do.
-%description -l ru
-ðÒÏÇÒÁÍÍÁ strace ÐÅÒÅÈ×ÁÔÙ×ÁÅÔ É ÒÅÇÉÓÔÒÉÒÕÅÔ ÓÉÓÔÅÍÎÙÅ ×ÙÚÏ×Ù,
-ÐÒÏÉÚ×ÅÄÅÎÎÙÅ É ÐÏÌÕÞÅÎÎÙÅ ÉÓÐÏÌÎÑÀÝÉÍÓÑ ÐÒÏÃÅÓÓÏÍ. Strace ÍÏÖÅÔ
-×Ù×ÅÓÔÉ ÓÐÉÓÏË ×ÓÅÈ ÓÉÓÔÅÍÎÙÈ ×ÙÚÏ×Ï×, ÉÈ ÁÒÇÕÍÅÎÔÏ× É ×ÏÚ×ÒÁÝÁÅÍÙÅ
-ÉÍÉ ÚÎÁÞÅÎÉÑ. Strace ÐÏÌÅÚÎÁ ÄÌÑ ÄÉÁÇÎÏÓÔÉËÉ ÐÒÏÂÌÅÍ É ÏÔÌÁÄËÉ.
+The script can also handle the output with strace -t, -tt, or -ttt. It
+will add elapsed time for each process in that case.
-%description -l tr
-strace bir programýn çalýþtýðý sürece yaptýðý bütün sistem
-çaðrýlarýný, gönderdiði parametreler ve geri dönüþ deðerleriyle
-birlikte döker.
+%description graph -l pl.UTF-8
+Skrypt strace-graph przetwarza wynik strace -f i wyświetla graf
+wywoływanych podprocesów. Jest przydatny do sprawdzania co robią
+złożone polecenia.
-%description -l uk
-ðÒÏÇÒÁÍÁ strace ÐÅÒÅÈÏÐÌÀ¤ ÔÁ ÒÅǦÓÔÒÕ¤ ÓÉÓÔÅÍΦ ×ÉÚÏ×É, ÚÒÏÂÌÅΦ ÔÁ
-ÏÔÒÉÍÁΦ ÐÒÏÃÅÓÏÍ, ÑËÉÊ ×ÉËÏÎÕ¤ÔØÓÑ. Strace ÍÏÖÅ ×É×ÅÓÔÉ ÓÐÉÓÏË ÕÓ¦È
-ÓÉÓÔÅÍÎÉÈ ×ÉÚÏצ×, §È ÁÒÇÕÍÅÎÔ¦× ÔÁ ÚÎÁÞÅÎØ, Ñ˦ ×ÏÎÉ ÐÏ×ÅÒÎÕÌÉ.
-Strace ËÏÒÉÓÎÉÊ ÄÌÑ Ä¦ÁÇÎÏÓÔÉËÉ ÐÒÏÂÌÅÍ ÔÁ צÄÌÁÄËÉ.
+Skrypt jest w stanie obsłużyć także wyjście ze strace -t, -tt i -ttt.
+Doda wtedy upływający czas dla każdego procesu.
%prep
%setup -q
-%patch0 -p1
-%patch1 -p1
-%patch2 -p1
%build
-%{__aclocal}
-%{__autoconf}
-%{__autoheader}
-%{__automake}
-%configure
+%if %{with libunwind}
+# workaround for:
+# /usr/bin/ld: copy reloc against protected `_UPT_accessors' is invalid
+# /usr/bin/ld: failed to set dynamic section sizes: Bad value
+# (should be fixed in gcc >(=?) 5.1)
+CFLAGS="%{rpmcflags} -fPIE"
+%endif
+%configure \
+ %{!?with_libiberty:--without-libiberty} \
+ %{!?with_libunwind:--without-libunwind}
%{__make}
%install
rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT{%{_bindir},%{_mandir}/{man1,pl/man1}}
%{__make} install \
- prefix=$RPM_BUILD_ROOT%{_prefix} \
- mandir=$RPM_BUILD_ROOT%{_mandir} \
- bindir=$RPM_BUILD_ROOT%{_bindir}
+ DESTDIR=$RPM_BUILD_ROOT
-install %{SOURCE1} $RPM_BUILD_ROOT%{_mandir}/pl/man1
+install -D %{SOURCE1} $RPM_BUILD_ROOT%{_mandir}/pl/man1/strace.1
%clean
rm -rf $RPM_BUILD_ROOT
%files
%defattr(644,root,root,755)
-%doc COPYRIGHT CREDITS ChangeLog NEWS README-linux TODO
-%attr(755,root,root) %{_bindir}/strace*
-%{_mandir}/man1/*
-%lang(pl) %{_mandir}/pl/man1/*
+%doc COPYING CREDITS ChangeLog NEWS README-linux-ptrace
+%attr(755,root,root) %{_bindir}/strace
+%attr(755,root,root) %{_bindir}/strace-log-merge
+%{_mandir}/man1/strace.1*
+%{_mandir}/man1/strace-log-merge.1*
+%lang(pl) %{_mandir}/pl/man1/strace.1*
+
+%files graph
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_bindir}/strace-graph