]> TLD Linux GIT Repositories - packages/systemtap.git/commitdiff
- merged 3.2 from PLD, added rpm 4.5 fix
authorMarcin Krol <hawk@tld-linux.org>
Wed, 14 Mar 2018 12:37:24 +0000 (12:37 +0000)
committerMarcin Krol <hawk@tld-linux.org>
Wed, 14 Mar 2018 12:37:24 +0000 (12:37 +0000)
systemtap-dyninst.patch [new file with mode: 0644]
systemtap-no-werror.patch [new file with mode: 0644]
systemtap-rpm-4.5-support.patch [new file with mode: 0644]
systemtap-rpm5-support.patch [deleted file]
systemtap.spec

diff --git a/systemtap-dyninst.patch b/systemtap-dyninst.patch
new file mode 100644 (file)
index 0000000..5ad0af5
--- /dev/null
@@ -0,0 +1,29 @@
+--- systemtap-3.1/stapdyn/dynsdt.cxx.orig      2017-02-17 18:37:01.000000000 +0100
++++ systemtap-3.1/stapdyn/dynsdt.cxx   2017-04-11 20:34:37.723802317 +0200
+@@ -264,7 +264,7 @@
+   if (points.empty())
+     {
+       warnx("couldn't find %s:%s at %#" PRIx64 " -> %#lx",
+-            p.provider.c_str(), p.name.c_str(), p.pc_offset, address);
++            p.provider.c_str(), p.name.c_str(), p.pc_offset, (unsigned long)address);
+       return;
+     }
+@@ -290,7 +290,7 @@
+   BPatch_funcCallExpr printfCall(*(printfFuncs[0]), printfArgs);
+   warnx("inserting %s:%s at %#" PRIx64 " -> %#lx [%zu]",
+-        p.provider.c_str(), p.name.c_str(), p.pc_offset, address, points.size());
++        p.provider.c_str(), p.name.c_str(), p.pc_offset, (unsigned long)address, points.size());
+   process->insertSnippet(printfCall, points);
+   if (p.sem_offset)
+@@ -302,7 +302,7 @@
+       else
+         {
+           warnx("incrementing semaphore for %s:%s at %#" PRIx64 " -> %#lx",
+-                p.provider.c_str(), p.name.c_str(), p.sem_offset, sem_address);
++                p.provider.c_str(), p.name.c_str(), p.sem_offset, (unsigned long)sem_address);
+           BPatch_type *sem_type = image->findType("unsigned short");
+           BPatch_variableExpr *semaphore =
diff --git a/systemtap-no-werror.patch b/systemtap-no-werror.patch
new file mode 100644 (file)
index 0000000..c5d94ff
--- /dev/null
@@ -0,0 +1,26 @@
+--- systemtap-3.0/configure.ac.orig    2016-04-05 20:34:37.752195113 +0200
++++ systemtap-3.0/configure.ac 2016-04-05 20:44:11.672171031 +0200
+@@ -93,8 +93,8 @@
+ AS_IF([test "x$enable_ssp" != xno],[
+    save_CFLAGS="$CFLAGS"
+    save_CXXFLAGS="$CXXFLAGS"
+-   CXXFLAGS="$CXXFLAGS -Werror -fstack-protector-all -D_FORTIFY_SOURCE=2"
+-   CFLAGS="$CFLAGS -Werror -fstack-protector-all -D_FORTIFY_SOURCE=2"
++   CXXFLAGS="$CXXFLAGS -fstack-protector-all -D_FORTIFY_SOURCE=2"
++   CFLAGS="$CFLAGS -fstack-protector-all -D_FORTIFY_SOURCE=2"
+    AC_COMPILE_IFELSE([AC_LANG_SOURCE([int something ();])], [
+        AC_MSG_NOTICE([Compiling with gcc -fstack-protector-all et al.])
+       CFLAGS="$save_CFLAGS -fstack-protector-all -D_FORTIFY_SOURCE=2"
+--- systemtap-3.0/Makefile.am.orig     2016-04-05 20:44:51.275502703 +0200
++++ systemtap-3.0/Makefile.am  2016-04-05 20:51:00.125487222 +0200
+@@ -14,8 +14,8 @@
+             -DLOCALEDIR='"$(localedir)"' \
+             -I$(srcdir)/includes -I$(builddir)/includes/sys
+-AM_CFLAGS = -D_GNU_SOURCE -fexceptions -Wall -Wextra -Werror -Wunused -Wformat=2 -W
+-AM_CXXFLAGS = -Wall -Wextra -Werror
++AM_CFLAGS = -D_GNU_SOURCE -fexceptions -Wall -Wextra -Wunused -Wformat=2 -W
++AM_CXXFLAGS = -Wall -Wextra
+ bin_SCRIPTS = stap-report
+ pkglibexec_SCRIPTS = stap-env
diff --git a/systemtap-rpm-4.5-support.patch b/systemtap-rpm-4.5-support.patch
new file mode 100644 (file)
index 0000000..5e3c462
--- /dev/null
@@ -0,0 +1,58 @@
+diff -urpa systemtap-3.2.orig/configure.ac systemtap-3.2/configure.ac
+--- systemtap-3.2.orig/configure.ac    2017-10-18 17:59:37.000000000 +0000
++++ systemtap-3.2/configure.ac 2018-03-14 12:27:03.557939628 +0000
+@@ -465,6 +465,19 @@ AC_ARG_WITH([rpm],
+   [AS_HELP_STRING([--with-rpm],
+                   [query rpm database for missing debuginfos])], [], [with_rpm="auto"])
+ if test "$with_rpm" != "no"; then
++  PKG_CHECK_MODULES([RPM], [rpm], [
++      AC_DEFINE_UNQUOTED([HAVE_RPM],1,[Define if RPM backend is available])
++      CPPFLAGS="$RPM_CFLAGS $CPPFLAGS"
++      stap_LIBS="$stap_LIBS $RPM_LIBS"
++   ], [
++      AC_PATH_PROG(RPM_PATH,rpm,none)
++      if test "$RPM_PATH" = "none"; then
++         AC_MSG_ERROR([RPM executable was not found in your system])
++      else
++         AC_DEFINE_UNQUOTED([HAVE_RPM],1,[Define if RPM backend is available])
++      fi
++   ]
++)
+   AC_CHECK_LIB(rpm, rpmtsInitIterator, [
+                     AC_DEFINE([HAVE_LIBRPM],[1],[have librpm])
+                     stap_LIBS="$stap_LIBS -lc -lrpm"
+diff -urpa systemtap-3.2.orig/rpm_finder.cxx systemtap-3.2/rpm_finder.cxx
+--- systemtap-3.2.orig/rpm_finder.cxx  2017-10-18 17:59:37.000000000 +0000
++++ systemtap-3.2/rpm_finder.cxx       2018-03-14 12:24:39.000000000 +0000
+@@ -24,6 +24,7 @@ extern "C" {
+ #include <string.h>
+ #include <rpm/rpmlib.h>
++#include <rpm/rpmmacro.h>
+ #include <rpm/rpmts.h>
+ #include <rpm/rpmdb.h>
+ #include <rpm/header.h>
+@@ -99,7 +100,9 @@ missing_rpm_enlist (systemtap_session& s
+           break;
+         /* Verify the kernel file is not already installed.  */
+-        rpminfo = headerFormat(h, header, &err);
++        char *nvra = rpmExpand("%{___NVRA}", NULL);
++        rpminfo = headerSprintf(h, header, rpmTagTable, rpmHeaderFormats, &err);
++        free(nvra);
+         if (!rpminfo)
+           {
+@@ -151,9 +154,10 @@ missing_rpm_enlist (systemtap_session& s
+           }
+         /* The allocated memory gets utilized below for MISSING_RPM_HASH.  */
+           if(strcmp(rpm_type,"-debuginfo")==0){
++          char *nvra = rpmExpand("%{___NVRA}", NULL);
+           xfree(rpminfo);
+-          rpminfo = headerFormat(h, "%{name}-%{version}-%{release}.%{arch}",
+-                                 &err);
++          rpminfo = headerSprintf(h, nvra, rpmTagTable, rpmHeaderFormats, &err);
++          free(nvra);
+         }
+         if (!rpminfo)
+           {
diff --git a/systemtap-rpm5-support.patch b/systemtap-rpm5-support.patch
deleted file mode 100644 (file)
index acd39d7..0000000
+++ /dev/null
@@ -1,114 +0,0 @@
---- systemtap-1.5/configure.ac.rpm5~   2011-05-23 21:21:36.000000000 +0200
-+++ systemtap-1.5/configure.ac 2011-09-26 08:22:28.072465175 +0200
-@@ -449,6 +449,19 @@ AC_ARG_WITH([rpm],
-   [AS_HELP_STRING([--with-rpm],
-                   [query rpm database for missing debuginfos])], [], [with_rpm="auto"])
- if test "$with_rpm" != "no"; then
-+  PKG_CHECK_MODULES([RPM], [rpm], [
-+      AC_DEFINE_UNQUOTED([HAVE_RPM],1,[Define if RPM backend is available])
-+      CPPFLAGS="$RPM_CFLAGS $CPPFLAGS"
-+      stap_LIBS="$stap_LIBS $RPM_LIBS"
-+   ], [
-+      AC_PATH_PROG(RPM_PATH,rpm,none)
-+      if test "$RPM_PATH" = "none"; then
-+         AC_MSG_ERROR([RPM executable was not found in your system])
-+      else
-+         AC_DEFINE_UNQUOTED([HAVE_RPM],1,[Define if RPM backend is available])
-+      fi
-+   ]
-+)
-   AC_CHECK_LIB(rpm, rpmtsInitIterator, [
-                     AC_DEFINE([HAVE_LIBRPM],[1],[have librpm])
-                     stap_LIBS="$stap_LIBS -lrpm"
---- systemtap-1.5/rpm_finder.cxx.rpm5~ 2011-05-23 21:21:36.000000000 +0200
-+++ systemtap-1.5/rpm_finder.cxx       2011-09-26 08:14:28.829226303 +0200
-@@ -20,21 +20,22 @@ using namespace std;
- #ifdef HAVE_LIBRPM
--extern "C" {
--
--#define _RPM_4_4_COMPAT
--#include <string.h>
--#include <rpm/rpmlib.h>
--#include <rpm/rpmts.h>
--#include <rpm/rpmdb.h>
--#include <rpm/header.h>
-+#include <cstring>
-+#include <tr1/cstdint>
-+#include <rpmtypes.h>
-+#include <rpmiotypes.h>
-+#include <rpmtag.h>
-+#include <rpmts.h>
-+#include <rpmrc.h>
-+#include <rpmdb.h>
-+#include <rpmmacro.h>
-+#include <rpmio.h>
-+#include <rpmcli.h>
- #ifndef xfree
- #define xfree free
- #endif
--}
--
- #if ! HAVE_LIBRPMIO && HAVE_NSS
- extern "C" {
- #include <nss.h>
-@@ -51,7 +52,7 @@ missing_rpm_enlist (systemtap_session& s
- {
-   static int rpm_init_done = 0;
-   rpmts ts;
--  rpmdbMatchIterator mi;
-+  rpmmi mi;
-   int count = 0;
-   if (filename == NULL)
-@@ -90,8 +91,8 @@ missing_rpm_enlist (systemtap_session& s
-         errmsg_t err;
-         size_t rpminfolen = strlen(rpm_type);
-         size_t srcrpmlen = sizeof (".src.rpm") - 1;
--        rpmdbMatchIterator mi_rpminfo;
--        h = rpmdbNextIterator(mi);
-+        rpmmi mi_rpminfo;
-+        h = rpmmiNext(mi);
-         if (h == NULL)
-           break;
-         /* Verify the kernel file is not already installed.  */
-@@ -138,21 +139,23 @@ missing_rpm_enlist (systemtap_session& s
-         /* s = `-debuginfo-%{version}-%{release}.%{arch}' */
-         /* RPMDBI_PACKAGES requires keylen == sizeof (int).  */
--        /* RPMDBI_LABEL is an interface for NVR-based dbiFindByLabel().  */
--        mi_rpminfo = rpmtsInitIterator(ts, (rpmTag)  RPMDBI_LABEL,
-+        /* RPMTAG_NVRA is an interface for NVR-based dbiFindByLabel().  */
-+        mi_rpminfo = rpmtsInitIterator(ts, (rpmTag)  RPMTAG_NVRA,
-                                             rpminfo, 0);
-         if (mi_rpminfo)
-           {
--            rpmdbFreeIterator(mi_rpminfo);
-+            rpmmiFree(mi_rpminfo);
-             count = 0;
-             break;
-           }
-         /* The allocated memory gets utilized below for MISSING_RPM_HASH.  */
-           if(strcmp(rpm_type,"-debuginfo")==0){
-+          char *nvra = rpmExpand("%{___NVRA}", NULL);
-           xfree(rpminfo);
-           rpminfo = headerSprintf(h,
--                    "%{name}-%{version}-%{release}.%{arch}",
-+                    nvra,
-                     rpmTagTable, rpmHeaderFormats, &err);
-+          free(nvra);
-         }
-         if (!rpminfo)
-           {
-@@ -176,7 +179,7 @@ missing_rpm_enlist (systemtap_session& s
-         sess.rpms_to_install.insert(rpminfo);
-       }
-       count++;
--      rpmdbFreeIterator(mi);
-+      rpmmiFree(mi);
-     }
-   rpmtsFree(ts);
index 3765f30264a0794fbf180cf50461df44b7d55037..49a65a71e0a5eba72dae3a3b005062cc3766c06c 100644 (file)
@@ -1,30 +1,34 @@
 #
 # Conditional build:
-%bcond_with    doc             # documentation build
-%bcond_with    publican        # publican guides build (requires functional publican+wkhtmltopdf)
+%bcond_without doc             # documentation build
+%bcond_with    publican        # publican guides build [as of 3.0 not rebuilt automatically, PDFs are included]
 %bcond_without crash           # crash extension
 %bcond_without dyninst         # dyninst support
 %bcond_without java            # Java runtime support
+%bcond_without python2         # Python 2.x runtime support
+%bcond_without python3         # Python 3.x runtime support
 
 %ifnarch %{ix86} %{x8664} alpha arm ia64 ppc64 s390 s390x
 %undefine      with_crash
 %endif
-%ifnarch %{ix86} %{x8664} ppc ppc64
+%ifnarch %{ix86} %{x8664} x32 ppc ppc64 aarch64
 %undefine      with_dyninst
 %endif
 Summary:       Instrumentation System
 Summary(pl.UTF-8):     System oprzyrządowania
 Name:          systemtap
-Version:       2.7
-Release:       2
+Version:       3.2
+Release:       1
 License:       GPL v2+
 Group:         Base
 Source0:       http://sourceware.org/systemtap/ftp/releases/%{name}-%{version}.tar.gz
-# Source0-md5: e0c3c36955323ae59be07a26a9563474
+# Source0-md5: 457147cde312eab7ff8cb49add93f4b4
 Patch0:                %{name}-configure.patch
 Patch1:                %{name}-build.patch
-Patch2:                %{name}-rpm5-support.patch
+Patch2:                %{name}-rpm-4.5-support.patch
+Patch3:                %{name}-no-werror.patch
 Patch4:                format-security.patch
+Patch5:                %{name}-dyninst.patch
 URL:           http://sourceware.org/systemtap/
 BuildRequires: autoconf >= 2.63
 BuildRequires: automake
@@ -34,25 +38,35 @@ BuildRequires:      boost-devel
 BuildRequires: docbook-dtd412-xml
 %{?with_dyninst:BuildRequires: dyninst-devel >= 8.0}
 BuildRequires: elfutils-devel >= 0.148
-BuildRequires: gettext-devel >= 0.18.2
-BuildRequires: gettext-tools >= 0.18.2
+BuildRequires: gettext-devel >= 0.19.4
+BuildRequires: gettext-tools >= 0.19.4
 BuildRequires: glib2-devel
-%if %{with java}
-BuildRequires: jdk
-BuildRequires: rpm-javaprov
-%endif
+BuildRequires: json-c-devel >= 0.12
+%{?with_java:BuildRequires:    jdk}
 %if %{with dyninst} || %{with java}
 BuildRequires: libselinux-devel
 %endif
-BuildRequires: libstdc++-devel
+BuildRequires: libstdc++-devel >= 6:4.5
 BuildRequires: libvirt-devel >= 1.0.2
 BuildRequires: libxml2-devel >= 2.0
 BuildRequires: mysql-devel
+BuildRequires: ncurses-devel
 BuildRequires: nss-devel >= 3
 BuildRequires: pkgconfig
+%if %{with python2}
+BuildRequires: python-devel >= 1:2.6
+BuildRequires: python-setuptools
+%endif
+%if %{with python3}
+BuildRequires: python3-devel >= 1:3.2
+BuildRequires: python3-setuptools
+%endif
+BuildRequires: readline-devel
 BuildRequires: rpm-devel
+%{?with_java:BuildRequires:    rpm-javaprov}
 BuildRequires: rpm-pythonprov
-BuildRequires: sqlite3-devel >= 3
+BuildRequires: rpmbuild(macros) >= 1.219
+BuildRequires: sqlite3-devel >= 3.7
 BuildRequires: xmlto
 %if %{with doc}
 BuildRequires: latex2html
@@ -85,6 +99,7 @@ lokalnego tworzenia i wykonywania skryptów systemtap.
 Summary:       Programmable system-wide instrumentation system - runtime
 Summary(pl.UTF-8):     Programowalny systemowy system oprzyrządowania - środowisko uruchomieniowe
 Group:         Applications/System
+Requires:      json-c >= 0.12
 
 %description runtime
 SystemTap runtime contains the components needed to execute a
@@ -110,8 +125,38 @@ runtimes using Byteman.
 
 %description runtime-java -l pl.UTF-8
 Ten pakiet zawiera pliki niezbędne do uruchamiania skryptów systemtap
-sondujące procesy Javy działające w środowiskach OpenJDK 1.6 i OpenJDK
-1.7 przy użyciu Bytemana.
+sondujących procesy Javy działające w środowiskach OpenJDK 1.6 i
+OpenJDK 1.7 przy użyciu Bytemana.
+
+%package runtime-python2
+Summary:       SystemTap Python 2 Runtime Support
+Summary(pl.UTF-8):     Obsługa Pythona 2 dla środowiska uruchomieniowego SystemTap
+Group:         Development/Tools
+Requires:      %{name}-runtime = %{version}-%{release}
+Requires:      python-modules >= 1:2.6
+
+%description runtime-python2
+This package includes support files needed to run systemtap scripts
+that probe Python 2 processes.
+
+%description runtime-python2 -l pl.UTF-8
+Ten pakiet zawiera pliki niezbędne do uruchamiania skryptów systemtap
+sondujących procesy Pythona 2.
+
+%package runtime-python3
+Summary:       SystemTap Python 3 Runtime Support
+Summary(pl.UTF-8):     Obsługa Pythona 3 dla środowiska uruchomieniowego SystemTap
+Group:         Development/Tools
+Requires:      %{name}-runtime = %{version}-%{release}
+Requires:      python3-modules >= 1:3.2
+
+%description runtime-python3
+This package includes support files needed to run systemtap scripts
+that probe Python 3 processes.
+
+%description runtime-python3 -l pl.UTF-8
+Ten pakiet zawiera pliki niezbędne do uruchamiania skryptów systemtap
+sondujących procesy Pythona 3.
 
 %package client
 Summary:       Programmable system-wide instrumentation system - client
@@ -147,7 +192,7 @@ Summary(pl.UTF-8):  Programowalny systemowy system oprzyrządowania - pliki nagł
 Group:         Development/Tools
 Requires:      %{name}-client = %{version}-%{release}
 Requires:      gcc
-#Requires:     kernel-module-build
+Requires:      kernel-module-build
 Requires:      make
 
 %description devel
@@ -238,10 +283,10 @@ Przewodniki i dokumentacja wprowadzająca do SystemTap.
 %setup -q
 %patch0 -p1
 %patch1 -p1
-%patch4 -p1
-%if "%{_rpmversion}" >= "5.0"
 %patch2 -p1
-%endif
+%patch3 -p1
+%patch4 -p1
+%patch5 -p1
 
 %build
 %{__gettextize}
@@ -254,7 +299,6 @@ Przewodniki i dokumentacja wprowadzająca do SystemTap.
        %{?with_crash:--enable-crash} \
        --enable-docs%{!?with_doc:=no} \
        --enable-pie \
-       --enable-publican%{!?with_publican:=no} \
        --enable-server \
        --enable-sqlite \
        --with-dyninst%{!?with_dyninst:=no} \
@@ -284,13 +328,12 @@ install -d $RPM_BUILD_ROOT%{_sysconfdir}/systemtap/{conf.d,script.d}
 install -d $RPM_BUILD_ROOT/var/lib/stap-server/.systemtap
 install -d $RPM_BUILD_ROOT/var/log/stap-server
 
-%if %{with doc}
-install -d $RPM_BUILD_ROOT%{_examplesdir}
-mv $RPM_BUILD_ROOT{%{_docdir}/%{name}/examples,%{_examplesdir}/%{name}-client-%{version}}
-%endif
-
 %{__mv} $RPM_BUILD_ROOT%{_docdir}/systemtap docs-installed
 
+%if %{with python2}
+%py_postclean
+%endif
+
 %find_lang %{name}
 
 %clean
@@ -304,6 +347,7 @@ rm -rf $RPM_BUILD_ROOT
 %doc AUTHORS NEWS README*
 %attr(755,root,root) %{_bindir}/stap-merge
 %attr(755,root,root) %{_bindir}/stap-report
+%attr(755,root,root) %{_bindir}/stapbpf
 %{?with_dyninst:%attr(755,root,root) %{_bindir}/stapdyn}
 %attr(755,root,root) %{_bindir}/stapsh
 # XXX: %attr(4754,root,stapusr) staprun ?
@@ -314,12 +358,14 @@ rm -rf $RPM_BUILD_ROOT
 %{?with_crash:%attr(755,root,root) %{_libdir}/%{name}/staplog.so}
 %{_mandir}/man1/stap-merge.1*
 %{_mandir}/man1/stap-report.1*
+%{_mandir}/man1/stapref.1*
 %{_mandir}/man3/stapex.3stap*
 %{_mandir}/man3/stapfuncs.3stap*
 %{_mandir}/man3/stapprobes.3stap*
 %{_mandir}/man3/stapvars.3stap*
 %if %{with doc}
 %{_mandir}/man3/function::*.3stap*
+%{_mandir}/man3/macro::*.3stap*
 %{_mandir}/man3/probe::*.3stap*
 %{_mandir}/man3/tapset::*.3stap*
 %endif
@@ -327,10 +373,24 @@ rm -rf $RPM_BUILD_ROOT
 %{_mandir}/man7/stappaths.7*
 %{_mandir}/man7/warning::debuginfo.7stap*
 %{_mandir}/man7/warning::symbols.7stap*
+%{_mandir}/man8/stapbpf.8*
 %{?with_dyninst:%{_mandir}/man8/stapdyn.8*}
 %{_mandir}/man8/staprun.8*
 %{_mandir}/man8/stapsh.8*
 %{_mandir}/man8/systemtap.8*
+%lang(cs) %{_mandir}/cs/man1/stap-merge.1*
+%lang(cs) %{_mandir}/cs/man1/stap-report.1*
+%lang(cs) %{_mandir}/cs/man1/stapref.1*
+%lang(cs) %{_mandir}/cs/man3/stapex.3stap*
+%lang(cs) %{_mandir}/cs/man3/stapfuncs.3stap*
+%lang(cs) %{_mandir}/cs/man3/stapprobes.3stap*
+%lang(cs) %{_mandir}/cs/man3/stapvars.3stap*
+%lang(cs) %{_mandir}/cs/man7/error::*.7stap*
+%lang(cs) %{_mandir}/cs/man7/stappaths.7*
+%lang(cs) %{_mandir}/cs/man7/warning::debuginfo.7stap*
+%lang(cs) %{_mandir}/cs/man7/warning::symbols.7stap*
+%lang(cs) %{_mandir}/cs/man8/stapsh.8*
+%lang(cs) %{_mandir}/cs/man8/systemtap.8*
 
 %if %{with java}
 %files runtime-java
@@ -340,24 +400,48 @@ rm -rf $RPM_BUILD_ROOT
 %{_libdir}/%{name}/HelperSDT.jar
 %endif
 
-%files client
+%if %{with python2}
+%files runtime-python2
 %defattr(644,root,root,755)
-%if %{with doc}
-%doc docs-installed/{tapsets,langref.pdf,tutorial.pdf}
-%{_examplesdir}/%{name}-client-%{version}
+%dir %{py_sitedir}/HelperSDT
+%attr(755,root,root) %{py_sitedir}/HelperSDT/_HelperSDT.so
+%{py_sitedir}/HelperSDT/*.py[co]
+%{py_sitedir}/HelperSDT-0.1.0-py*.egg-info
 %endif
+
+%if %{with python3}
+%files runtime-python3
+%defattr(644,root,root,755)
+%dir %{py3_sitedir}/HelperSDT
+%attr(755,root,root) %{py3_sitedir}/HelperSDT/_HelperSDT.cpython-*.so
+%{py3_sitedir}/HelperSDT/*.py
+%{py3_sitedir}/HelperSDT/__pycache__
+%{py3_sitedir}/HelperSDT-0.1.0-py*.egg-info
+%endif
+
+%files client
+%defattr(644,root,root,755)
 %attr(755,root,root) %{_bindir}/stap
 %attr(755,root,root) %{_bindir}/stap-prep
 %attr(755,root,root) %{_bindir}/stapvirt
 %dir %{_datadir}/%{name}
+%{_datadir}/%{name}/examples
 %{_datadir}/%{name}/tapset
 %{_mandir}/man1/stap.1*
 %{_mandir}/man1/stap-prep.1*
 %{_mandir}/man1/stapvirt.1*
+%lang(cs) %{_mandir}/cs/man1/stap.1*
+%lang(cs) %{_mandir}/cs/man1/stap-prep.1*
+%lang(cs) %{_mandir}/cs/man1/stapvirt.1*
 
 %files devel
 %defattr(644,root,root,755)
 %{_datadir}/%{name}/runtime
+%if %{with python2} || %{with python3}
+%dir %{_libexecdir}/systemtap
+%dir %{_libexecdir}/systemtap/python
+%attr(755,root,root) %{_libexecdir}/systemtap/python/stap-resolve-module-function.py
+%endif
 
 %files initscript
 %defattr(644,root,root,755)
@@ -389,6 +473,7 @@ rm -rf $RPM_BUILD_ROOT
 #%attr(755,stap-server,stap-server) %dir /var/log/stap-server
 #%attr(755,stap-server,stap-server) %dir /var/run/stap-server
 %{_mandir}/man8/stap-server.8*
+%lang(cs) %{_mandir}/cs/man8/stap-server.8*
 
 %files sdt-devel
 %defattr(644,root,root,755)
@@ -396,9 +481,10 @@ rm -rf $RPM_BUILD_ROOT
 %{_includedir}/sys/sdt.h
 %{_includedir}/sys/sdt-config.h
 %{_mandir}/man1/dtrace.1*
+%lang(cs) %{_mandir}/cs/man1/dtrace.1*
 
-%if %{with publican}
+%if %{with doc}
 %files doc
 %defattr(644,root,root,755)
-%doc doc/{langref,tutorial}.pdf doc/beginners/SystemTap_Beginners_Guide.pdf
+%doc doc/{langref,tutorial}.pdf doc/beginners/SystemTap_Beginners_Guide.pdf docs-installed/tapsets.pdf
 %endif