]> TLD Linux GIT Repositories - packages/systemtap.git/commitdiff
- merged 2.7 from PLD, doc still broken
authorMarcin Krol <hawk@tld-linux.org>
Wed, 8 Jul 2015 15:13:20 +0000 (15:13 +0000)
committerMarcin Krol <hawk@tld-linux.org>
Wed, 8 Jul 2015 15:13:20 +0000 (15:13 +0000)
systemtap-dtrace-flexibility.patch [deleted file]
systemtap.spec

diff --git a/systemtap-dtrace-flexibility.patch b/systemtap-dtrace-flexibility.patch
deleted file mode 100644 (file)
index 6cf9db0..0000000
+++ /dev/null
@@ -1,383 +0,0 @@
-From c486eff3f809b5ce544d5a032198e7680f2b7f2b Mon Sep 17 00:00:00 2001
-From: Stan Cox <scox@redhat.com>
-Date: Tue, 9 Sep 2014 15:07:44 -0400
-Subject: [PATCH 1/3] Add -fpic -fPIC to the list of accepted but ignored
- dtrace options.
-
-* dtrace.in (main):  Add ignore_options.
----
- dtrace.in                           | 4 +++-
- testsuite/systemtap.base/dtrace.exp | 8 ++++----
- 2 files changed, 7 insertions(+), 5 deletions(-)
-
-diff --git a/dtrace.in b/dtrace.in
-index d5f189d4fc9e..2f9fb6307e28 100644
---- a/dtrace.in
-+++ b/dtrace.in
-@@ -305,6 +305,8 @@ def main():
-     s_filename = ""
-     includes = []
-     defines = []
-+    ignore_options = ["-64", "-32", "-fpic", "-fPIC"]
-+
-     while i < len(sys.argv):
-         if sys.argv[i] == "-o":
-             i += 1
-@@ -330,7 +332,7 @@ def main():
-             HAVE_PYP = False
-         elif sys.argv[i] == "--types":
-             print sys.argv[0] + ": note: obsolete option --types used"
--        elif sys.argv[i] == "-64" or sys.argv[i] == "-32":
-+        elif sys.argv[i] in ignore_options:
-             pass                # dtrace users sometimes pass these flags
-         elif sys.argv[i] == "--help":
-             dtrace_help()
-diff --git a/testsuite/systemtap.base/dtrace.exp b/testsuite/systemtap.base/dtrace.exp
-index 252dad90ede5..e029748100d6 100644
---- a/testsuite/systemtap.base/dtrace.exp
-+++ b/testsuite/systemtap.base/dtrace.exp
-@@ -53,12 +53,12 @@ set incpath "/tmp/dtrace_inc"
- # -----------------------------------------------------------------
- # test command line option and file handling 
--verbose -log "$dtrace -G -s $dpath -o XXX.o"
--catch {exec $dtrace -G -s $dpath -o XXX.o}
-+verbose -log "$dtrace -G -64 -fPIC -s $dpath -o XXX.o"
-+catch {exec $dtrace -G -64 -fPIC -s $dpath -o XXX.o}
- if {[file exists XXX.o]} then {
--    pass "dtrace -G -o XXX.o"
-+    pass "dtrace -G -64 -fPIC -o XXX.o"
- } else {
--    fail "dtrace -G -o XXX.o"
-+    fail "dtrace -G -64 -fPIC -o XXX.o"
- }
- exec rm -f XXX.o
--- 
-1.9.3
-
-
-From 52cac9d8159a399b824201f4d2c98abe89a01767 Mon Sep 17 00:00:00 2001
-From: Stan Cox <scox@redhat.com>
-Date: Tue, 23 Sep 2014 13:42:54 -0400
-Subject: [PATCH 2/3] Ignore C declarations in .d file and use string pattern
- matching as a fallback mechanism.
-
-* dtrace.in (_PypProvider):  SkipTo the provider{...}
-(main): If pyparsing fails, then fallback to pattern matching.
-
-* dtrace.exp:  Add a fallback test.
----
- dtrace.in                           | 39 +++++++++++++++++++++++++++---------
- testsuite/systemtap.base/dtrace.exp | 40 +++++++++++++++++++++++++++++++++++++
- 2 files changed, 70 insertions(+), 9 deletions(-)
-
-diff --git a/dtrace.in b/dtrace.in
-index 2f9fb6307e28..04ace92181d9 100644
---- a/dtrace.in
-+++ b/dtrace.in
-@@ -29,13 +29,13 @@ try:
-     from pyparsing import alphas, cStyleComment, delimitedList, Group, \
-         Keyword, lineno, Literal, nestedExpr, nums, oneOf, OneOrMore, \
-         Optional, ParseException, ParserElement, restOfLine, restOfLine, \
--        Suppress, Word, ZeroOrMore
-+        Suppress, SkipTo, Word, ZeroOrMore
-     HAVE_PYP = True
- except ImportError:
-     HAVE_PYP = False
--# Common file creation methods for pyparsing and regexparsing
-+# Common file creation methods for pyparsing and string pattern matching
- class _HeaderCreator(object):
-     def init_semaphores(self, fdesc):
-@@ -149,7 +149,7 @@ class _PypProvider(_HeaderCreator):
-         provider_decl = (PROVIDER + Optional(ident)
-                          + lbrace + Group(probe_decls) + rbrace + Optional(semi))
--        dtrace_statement = Group(decls | provider_decl)
-+        dtrace_statement = Group (SkipTo("provider", include=False) + provider_decl)
-         self.dtrace_statements = ZeroOrMore(dtrace_statement)
-         cplusplus_linecomment = Literal("//") + restOfLine
-@@ -167,7 +167,10 @@ class _PypProvider(_HeaderCreator):
-         for asti in self.ast:
-             if len(asti) == 0:
-                 continue
--            elif asti[0] == "provider":
-+            # ignore SkipTo token
-+            if asti[0] != "provider":
-+                del asti[0]
-+            if asti[0] == "provider":
-                 # list of probes
-                 for prb in asti[2]:
-                     semaphores_def += self.add_semaphore(asti[1], prb[1])
-@@ -186,15 +189,18 @@ class _PypProvider(_HeaderCreator):
-                 self.ast = self.bnf.parseFile(provider).asList()
-         except ParseException, err:
-             if len(self.current_probe):
--                print "%s:%s:%d: syntax error near:\nprobe %s\n" % (sys.argv[0],provider, self.current_lineno, self.current_probe)
-+                print "Warning: %s:%s:%d: syntax error near:\nprobe %s\n" % (sys.argv[0],provider, self.current_lineno, self.current_probe)
-             else:
--                print "%s:%s:%d syntax error near:\n%s\n" % (sys.argv[0],provider,err.lineno, err.line)
--            sys.exit(1)
-+                print "Warning: %s:%s:%d syntax error near:\n%s\n" % (sys.argv[0],provider,err.lineno, err.line)
-+            raise ParseException, err
-   
-         probes_def = ""
-         for asti in self.ast:
-             if len(asti) == 0:
-                 continue
-+            # ignore SkipTo token
-+            if asti[0] != "provider":
-+                del asti[0]
-             if asti[0] == "provider":
-                 # list of probes
-                 for prb in asti[2]:
-@@ -369,14 +375,29 @@ def main():
-             providers = _PypProvider()
-         else:
-             providers = _ReProvider()
--        providers.probe_write(s_filename, filename + suffix)
-+        while True:
-+            try:
-+                providers.probe_write(s_filename, filename + suffix)
-+                break;
-+            # complex C declarations can fool the pyparsing grammar.  
-+            # we could increase the complexity of the grammar
-+            # instead we fall back to string pattern matching
-+            except ParseException, err:
-+                print "Warning: Proceeding as if --no-pyparsing was given.\n"
-+                providers = _ReProvider()
-     elif build_source:
-         if HAVE_PYP:
-             providers = _PypProvider()
-         else:
-             providers = _ReProvider()
-         (ignore, fname) = mkstemp(suffix=".h")
--        providers.probe_write(s_filename, fname)
-+        while True:
-+            try:
-+                providers.probe_write(s_filename, fname)
-+                break;
-+            except ParseException, err:
-+                print "Warning: Proceeding as if --no-pyparsing was given.\n"
-+                providers = _ReProvider()
-         if not keep_temps:
-             os.remove(fname)
-         else:
-diff --git a/testsuite/systemtap.base/dtrace.exp b/testsuite/systemtap.base/dtrace.exp
-index e029748100d6..60cab3f5abf2 100644
---- a/testsuite/systemtap.base/dtrace.exp
-+++ b/testsuite/systemtap.base/dtrace.exp
-@@ -207,6 +207,46 @@ if { $ok == 4} {
- }
- exec rm -f XXX.h
-+set ok 0
-+set pypath "/tmp/pypath.d"
-+set $fp [open $pypath "w"]
-+puts $fp "
-+#include <sys/types.h>
-+
-+provider alpha {
-+      probe request__start(string, uint8_t, uint16_t, int, void *);
-+      probe request__one(string, uint8_t, uint32_t, int, int);
-+      probe client__two(int, int);
-+      probe client__three(int, string, pid_t, zoneid_t);
-+      probe input__stop(int, int, uint32_t, uint32_t, int8_t, uint8_t*, double*);
-+};
-+
-+#ifdef DCL_AFTER_PROVIDER
-+typedef unsigned short int __u_short;
-+typedef const static unsigned short __u_c_short;
-+#endif
-+
-+#pragma D attributes Unknown provider alpha provider
-+"
-+close $fp
-+verbose -log "$dtrace -C -h -s $pypath -o XXX.h"
-+spawn $dtrace -C -DDCL_AFTER_PROVIDER -h -s $pypath -o XXX.h
-+expect {
-+    -re {Warning.*syntax error} {incr ok; exp_continue}
-+    -re {Warning.*--no-pyparsing} {incr ok; exp_continue}
-+    eof { }
-+}
-+catch {close}; catch {wait}
-+if {[file exists XXX.h]} then {
-+    incr ok;
-+}
-+if { $ok == 3} {
-+    pass "dtrace parser check"
-+} else {
-+    fail "dtrace parser check $ok"
-+}
-+exec rm -f XXX.h
-+
- verbose -log "$dtrace -I$incpath -G -s $idpath"
- catch {exec $dtrace -G -s $dpath}
- if {[file exists test.o]} then {
--- 
-1.9.3
-
-
-From 3525152408f15e23dcffe2371bbd575f1646d691 Mon Sep 17 00:00:00 2001
-From: Stan Cox <scox@redhat.com>
-Date: Thu, 25 Sep 2014 13:47:04 -0400
-Subject: [PATCH 3/3] Add pyparsing / no-parsing compatibility test.
-
-* dtrace.exp:  Add pyparsing compatibility test.
----
- testsuite/systemtap.base/dtrace.exp | 93 ++++++++++++++++++++++++++++---------
- 1 file changed, 72 insertions(+), 21 deletions(-)
-
-diff --git a/testsuite/systemtap.base/dtrace.exp b/testsuite/systemtap.base/dtrace.exp
-index 60cab3f5abf2..e455c298737a 100644
---- a/testsuite/systemtap.base/dtrace.exp
-+++ b/testsuite/systemtap.base/dtrace.exp
-@@ -8,6 +8,8 @@ if {[installtest_p]} {
-     set dtrace ../dtrace
- }
-+# Create the test .d files
-+
- exec mkdir -p /tmp/dtrace
- set dpath "/tmp/dtrace/test.d"
-@@ -48,6 +50,29 @@ provider tstsyscall
- "
- close $fp
-+set pypath "/tmp/pypath.d"
-+set $fp [open $pypath "w"]
-+puts $fp "
-+#include <sys/types.h>
-+
-+provider alpha {
-+      probe request__start(string, uint8_t, uint16_t, int, void *);
-+      probe request__one(string, uint8_t, uint32_t, int, int);
-+      probe client__two(int, int);
-+      probe client__three(int, string, pid_t, zoneid_t);
-+      probe input__stop(int, int, uint32_t, uint32_t, int8_t, uint8_t*, double*);
-+};
-+
-+#ifdef DCL_AFTER_PROVIDER
-+typedef unsigned short int __u_short;
-+typedef const static unsigned short __u_c_short;
-+#endif
-+
-+#pragma D attributes Unknown provider alpha provider
-+"
-+close $fp
-+
-+
- set incpath "/tmp/dtrace_inc"
- # -----------------------------------------------------------------
-@@ -156,6 +181,9 @@ if { $ok != 0} {
-     fail "dtrace CFLAGS= CC="
- }
-+# -----------------------------------------------------------------
-+# test -h header file creation
-+
- set ok 0
- verbose -log "$dtrace -C -h -s $dpath -o XXX.h"
- catch {exec $dtrace -C -h -s $dpath -o XXX.h}
-@@ -189,6 +217,9 @@ if { $ok == 4} {
- }
- exec rm -f XXX.h
-+# -----------------------------------------------------------------
-+# test --no-pyparsing
-+
- set ok 0
- verbose -log "$dtrace -C --no-pyparsing -I$incpath -h -s $idpath -o XXX.h"
- catch {exec $dtrace -C --no-pyparsing -I$incpath -h -s $idpath -o XXX.h}
-@@ -207,28 +238,10 @@ if { $ok == 4} {
- }
- exec rm -f XXX.h
--set ok 0
--set pypath "/tmp/pypath.d"
--set $fp [open $pypath "w"]
--puts $fp "
--#include <sys/types.h>
--
--provider alpha {
--      probe request__start(string, uint8_t, uint16_t, int, void *);
--      probe request__one(string, uint8_t, uint32_t, int, int);
--      probe client__two(int, int);
--      probe client__three(int, string, pid_t, zoneid_t);
--      probe input__stop(int, int, uint32_t, uint32_t, int8_t, uint8_t*, double*);
--};
--
--#ifdef DCL_AFTER_PROVIDER
--typedef unsigned short int __u_short;
--typedef const static unsigned short __u_c_short;
--#endif
-+# -----------------------------------------------------------------
-+# test fallback to --no-pyparsing
--#pragma D attributes Unknown provider alpha provider
--"
--close $fp
-+set ok 0
- verbose -log "$dtrace -C -h -s $pypath -o XXX.h"
- spawn $dtrace -C -DDCL_AFTER_PROVIDER -h -s $pypath -o XXX.h
- expect {
-@@ -247,6 +260,9 @@ if { $ok == 3} {
- }
- exec rm -f XXX.h
-+# -----------------------------------------------------------------
-+# test -G object file creation
-+
- verbose -log "$dtrace -I$incpath -G -s $idpath"
- catch {exec $dtrace -G -s $dpath}
- if {[file exists test.o]} then {
-@@ -256,5 +272,40 @@ if {[file exists test.o]} then {
- }
- exec rm -f test.o
-+# -----------------------------------------------------------------
-+# test dtrace for pyparsing / --no-pyparsing compatibility
-+
-+set ok 0
-+set dfiles {dtrace}
-+foreach i $dfiles {
-+    verbose -log "$dtrace $srcdir/$subdir/$i.d"
-+    catch {exec $dtrace -C -h -s $srcdir/$subdir/$i.d -o $i-1.h}
-+    catch {exec $dtrace -C -h --no-pyparsing -s $srcdir/$subdir/$i.d -o $i-2.h}
-+    spawn diff -wqs $i-1.h $i-2.h
-+    expect {
-+      -re {Files.*identical} {incr ok; exp_continue}
-+      eof { }
-+    }
-+    catch {exec $dtrace -C -G -s $srcdir/$subdir/$i.d -o $i-1.o}
-+    catch {exec $dtrace -C -G --no-pyparsing -s $srcdir/$subdir/$i.d -o $i-2.o}
-+    verbose -log "exec nm $i-1.o > $i-1.od"
-+    catch {exec nm $i-1.o > $i-1.od}
-+    catch {exec nm $i-2.o > $i-2.od}
-+    spawn diff -qs $i-1.od $i-2.od
-+    expect {
-+      -re {Files.*identical} {incr ok; exp_continue}
-+      eof { }
-+    }
-+    catch {exec /bin/rm $i-1.h $i-2.h $i-1.o $i-2.o}
-+}
-+if { $ok == 2} {
-+    pass "dtrace known uses"
-+} else {
-+    fail "dtrace known uses ${ok}"
-+}
-+
-+# -----------------------------------------------------------------
-+# cleanup
-+
- exec /bin/rm -r /tmp/dtrace /tmp/dtrace_inc
- # -----------------------------------------------------------------
--- 
-1.9.3
-
index 5f08c11331269a3d8d67263c068d3946ce46cf7b..0fbef986b1ab9bed40b57b962cb9d9d3d33ad976 100644 (file)
@@ -5,7 +5,7 @@
 %bcond_without crash           # crash extension
 %bcond_without dyninst         # dyninst support
 %bcond_without java            # Java runtime support
-#
+
 %ifnarch %{ix86} %{x8664} alpha arm ia64 ppc64 s390 s390x
 %undefine      with_crash
 %endif
 Summary:       Instrumentation System
 Summary(pl.UTF-8):     System oprzyrządowania
 Name:          systemtap
-Version:       2.6
-Release:       3
+Version:       2.7
+Release:       1
 License:       GPL v2+
 Group:         Base
 Source0:       http://sourceware.org/systemtap/ftp/releases/%{name}-%{version}.tar.gz
-# Source0-md5: 65e6745f0ec103758c711dd1d12fb6bf
+# Source0-md5: e0c3c36955323ae59be07a26a9563474
 Patch0:                %{name}-configure.patch
 Patch1:                %{name}-build.patch
 Patch2:                %{name}-rpm5-support.patch
-Patch3:                %{name}-dtrace-flexibility.patch
 Patch4:                format-security.patch
 URL:           http://sourceware.org/systemtap/
 BuildRequires: autoconf >= 2.63
@@ -35,9 +34,13 @@ 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: glib2-devel
-%{?with_java:BuildRequires:    jdk}
+%if %{with java}
+BuildRequires: jdk
+BuildRequires: rpm-javaprov
+%endif
 %if %{with dyninst} || %{with java}
 BuildRequires: libselinux-devel
 %endif
@@ -46,7 +49,9 @@ BuildRequires:        libvirt-devel >= 1.0.2
 BuildRequires: libxml2-devel >= 2.0
 BuildRequires: mysql-devel
 BuildRequires: nss-devel >= 3
+BuildRequires: pkgconfig
 BuildRequires: rpm-devel
+BuildRequires: rpm-pythonprov
 BuildRequires: sqlite3-devel >= 3
 BuildRequires: xmlto
 %if %{with doc}
@@ -56,6 +61,8 @@ BuildRequires:        texlive-dvips
 BuildRequires: texlive-fonts-bitstream
 BuildRequires: texlive-fonts-type1-bitstream
 BuildRequires: texlive-latex
+BuildRequires: texlive-latex-psnfss
+BuildRequires: texlive-xetex
 %endif
 # let base mean client+local development package
 Requires:      %{name}-client = %{version}-%{release}
@@ -216,11 +223,21 @@ przestrzeni użytkownika, wraz z opcjonalnym preprocesorem zgodności z
 dtrace, który przetwarza pliki .d na pliki nagłówkowe .h z makrami
 śledzącymi.
 
+%package doc
+Summary:       SystemTap guides and tutorials
+Summary(pl.UTF-8):     Przewodniki i dokumentacja wprowadzająca do SystemTap
+Group:         Documentation
+
+%description doc
+SystemTap guides and tutorials.
+
+%description doc -l pl.UTF-8
+Przewodniki i dokumentacja wprowadzająca do SystemTap.
+
 %prep
 %setup -q
 %patch0 -p1
 %patch1 -p1
-%patch3 -p1
 %patch4 -p1
 %if "%{_rpmversion}" >= "5.0"
 %patch2 -p1
@@ -254,19 +271,24 @@ install -d $RPM_BUILD_ROOT/var/{cache,run}/%{name} \
        DESTDIR=$RPM_BUILD_ROOT
 
 # not installed by make
-install stap-prep $RPM_BUILD_ROOT%{_bindir}/stap-prep
+install -p stap-prep $RPM_BUILD_ROOT%{_bindir}/stap-prep
 
-install initscript/systemtap $RPM_BUILD_ROOT/etc/rc.d/init.d
-install initscript/config.systemtap $RPM_BUILD_ROOT%{_sysconfdir}/systemtap/config
+install -p initscript/systemtap $RPM_BUILD_ROOT/etc/rc.d/init.d
+cp -p initscript/config.systemtap $RPM_BUILD_ROOT%{_sysconfdir}/systemtap/config
 
-install initscript/stap-server $RPM_BUILD_ROOT/etc/rc.d/init.d
-install initscript/config.stap-server $RPM_BUILD_ROOT/etc/sysconfig/stap-server
-install initscript/logrotate.stap-server $RPM_BUILD_ROOT/etc/logrotate.d/stap-server
+install -p initscript/stap-server $RPM_BUILD_ROOT/etc/rc.d/init.d
+cp -p initscript/config.stap-server $RPM_BUILD_ROOT/etc/sysconfig/stap-server
+cp -p initscript/logrotate.stap-server $RPM_BUILD_ROOT/etc/logrotate.d/stap-server
 
 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
 
 %find_lang %{name}
@@ -292,13 +314,15 @@ 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}/man3/function::*.3stap*
-#%{_mandir}/man3/probe::*.3stap*
 %{_mandir}/man3/stapex.3stap*
 %{_mandir}/man3/stapfuncs.3stap*
 %{_mandir}/man3/stapprobes.3stap*
 %{_mandir}/man3/stapvars.3stap*
-#%{_mandir}/man3/tapset::*.3stap*
+%if %{with doc}
+%{_mandir}/man3/function::*.3stap*
+%{_mandir}/man3/probe::*.3stap*
+%{_mandir}/man3/tapset::*.3stap*
+%endif
 %{_mandir}/man7/error::*.7stap*
 %{_mandir}/man7/stappaths.7*
 %{_mandir}/man7/warning::debuginfo.7stap*
@@ -318,7 +342,10 @@ rm -rf $RPM_BUILD_ROOT
 
 %files client
 %defattr(644,root,root,755)
-%doc docs-installed/examples %{?with_docs:docs-installed/{tapsets,langref.pdf,tutorial.pdf}}
+%if %{with doc}
+%doc docs-installed/{tapsets,langref.pdf,tutorial.pdf}
+%{_examplesdir}/%{name}-client-%{version}
+%endif
 %attr(755,root,root) %{_bindir}/stap
 %attr(755,root,root) %{_bindir}/stap-prep
 %attr(755,root,root) %{_bindir}/stapvirt
@@ -369,3 +396,9 @@ rm -rf $RPM_BUILD_ROOT
 %{_includedir}/sys/sdt.h
 %{_includedir}/sys/sdt-config.h
 %{_mandir}/man1/dtrace.1*
+
+%if %{with publican}
+%files doc
+%defattr(644,root,root,755)
+%doc doc/{langref,tutorial}.pdf doc/beginners/SystemTap_Beginners_Guide.pdf
+%endif