From: Marcin Krol Date: Wed, 14 Mar 2018 12:37:24 +0000 (+0000) Subject: - merged 3.2 from PLD, added rpm 4.5 fix X-Git-Url: https://git.tld-linux.org/?a=commitdiff_plain;h=78303a129e883b0ab2b32cc58aed781f0a875ab8;p=packages%2Fsystemtap.git - merged 3.2 from PLD, added rpm 4.5 fix --- diff --git a/systemtap-dyninst.patch b/systemtap-dyninst.patch new file mode 100644 index 0000000..5ad0af5 --- /dev/null +++ b/systemtap-dyninst.patch @@ -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 index 0000000..c5d94ff --- /dev/null +++ b/systemtap-no-werror.patch @@ -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 index 0000000..5e3c462 --- /dev/null +++ b/systemtap-rpm-4.5-support.patch @@ -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 + #include ++#include + #include + #include + #include +@@ -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 index acd39d7..0000000 --- a/systemtap-rpm5-support.patch +++ /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 --#include --#include --#include --#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include - - #ifndef xfree - #define xfree free - #endif - --} -- - #if ! HAVE_LIBRPMIO && HAVE_NSS - extern "C" { - #include -@@ -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); diff --git a/systemtap.spec b/systemtap.spec index 3765f30..49a65a7 100644 --- a/systemtap.spec +++ b/systemtap.spec @@ -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