From 9da5ca9f79ce066767f9bf1f36a4cba67f117742 Mon Sep 17 00:00:00 2001 From: "Frank Ch. Eigler" Date: Wed, 1 Feb 2012 21:55:08 -0500 Subject: [PATCH] release 1.7 --- .gitignore | 1 + gcc-4.7.patch | 73 ----------- sources | 2 +- systemtap.spec | 346 +++++++++++++++++++++++++++++++------------------ 4 files changed, 220 insertions(+), 202 deletions(-) delete mode 100644 gcc-4.7.patch diff --git a/.gitignore b/.gitignore index 3ab1bb9..2ea7428 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ systemtap-1.3.tar.gz /systemtap-1.4.tar.gz /systemtap-1.5.tar.gz /systemtap-1.6.tar.gz +/systemtap-1.7.tar.gz diff --git a/gcc-4.7.patch b/gcc-4.7.patch deleted file mode 100644 index fb02521..0000000 --- a/gcc-4.7.patch +++ /dev/null @@ -1,73 +0,0 @@ -diff --git a/cache.cxx b/cache.cxx -index 5104f8d..aaba56f 100644 ---- a/cache.cxx -+++ b/cache.cxx -@@ -22,6 +22,7 @@ extern "C" { - #include - #include - #include -+#include - } - - using namespace std; -diff --git a/csclient.cxx b/csclient.cxx -index 21f945f..9f8faee 100644 ---- a/csclient.cxx -+++ b/csclient.cxx -@@ -24,6 +24,7 @@ - #include - - extern "C" { -+#include - #include - #include - #include -diff --git a/session.cxx b/session.cxx -index b322600..2436031 100644 ---- a/session.cxx -+++ b/session.cxx -@@ -30,6 +30,7 @@ extern "C" { - #include - #include - #include -+#include - } - - #if HAVE_NSS -diff --git a/setupdwfl.cxx b/setupdwfl.cxx -index 71814d7..ee1dbd0 100644 ---- a/setupdwfl.cxx -+++ b/setupdwfl.cxx -@@ -23,6 +23,7 @@ - extern "C" { - #include - #include -+#include - } - - // XXX: also consider adding $HOME/.debug/ for perf build-id-cache -diff --git a/stap-serverd.cxx b/stap-serverd.cxx -index 8ee3b09..9e1345a 100644 ---- a/stap-serverd.cxx -+++ b/stap-serverd.cxx -@@ -29,6 +29,7 @@ - #include - - extern "C" { -+#include - #include - #include - #include -diff --git a/translate.cxx b/translate.cxx -index 543c908..9d4c137 100644 ---- a/translate.cxx -+++ b/translate.cxx -@@ -5569,7 +5569,7 @@ emit_symbol_data (systemtap_session& s) - - ofstream kallsyms_out ((s.tmpdir + "/" + symfile).c_str()); - -- unwindsym_dump_context ctx = { s, kallsyms_out, 0, ~0, s.unwindsym_modules }; -+ unwindsym_dump_context ctx = { s, kallsyms_out, 0, ~0UL, s.unwindsym_modules }; - - // Micro optimization, mainly to speed up tiny regression tests - // using just begin probe. diff --git a/sources b/sources index 85f2b81..c2ba252 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -b845ec58bc04cf4cad5c897f67de1308 systemtap-1.6.tar.gz +b61b42b2fc687a8c76621ce8e4b37b17 systemtap-1.7.tar.gz diff --git a/systemtap.spec b/systemtap.spec index c3d3698..c4bcbd1 100644 --- a/systemtap.spec +++ b/systemtap.spec @@ -11,24 +11,46 @@ %{!?pie_supported: %global pie_supported 1} %{!?with_grapher: %global with_grapher 1} %{!?with_boost: %global with_boost 0} -%{!?with_publican: %global with_publican 0} +%{!?with_publican: %global with_publican 1} %{!?publican_brand: %global publican_brand fedora} Name: systemtap -Version: 1.6 -Release: 4%{?dist} +Version: 1.7 +Release: 1%{?dist} # for version, see also configure.ac -Summary: Instrumentation System + + +# Packaging abstract: +# +# systemtap empty req:-client req:-devel +# systemtap-server /usr/bin/stap-server*, req:-devel +# systemtap-devel /usr/bin/stap, runtime, tapset, req:kernel-devel +# systemtap-runtime /usr/bin/staprun, /usr/bin/stapsh +# systemtap-client /usr/bin/stap, samples, docs, tapset(bonus), req:-runtime +# systemtap-initscript /etc/init.d/systemtap, req:systemtap +# systemtap-sdt-devel /usr/include/sys/sdt.h /usr/bin/dtrace +# systemtap-testsuite /usr/share/systemtap/testsuite*, req:systemtap, req:sdt-devel +# systemtap-grapher /usr/bin/stapgraph, req:systemtap +# +# Typical scenarios: +# +# stap-client: systemtap-client +# stap-server: systemtap-server +# local user: systemtap +# +# Unusual scenarios: +# +# intermediary stap-client for --remote: systemtap-client (-runtime unused) +# intermediary stap-server for --use-server: systemtap-server (-devel unused) + +Summary: Programmable system-wide instrumentation system Group: Development/System License: GPLv2+ URL: http://sourceware.org/systemtap/ Source: ftp://sourceware.org/pub/%{name}/releases/%{name}-%{version}.tar.gz -Obsoletes: systemtap-client < 1.5 - +# Build* BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) - -Requires: kernel >= 2.6.9-11 BuildRequires: gettext %if %{with_sqlite} BuildRequires: sqlite-devel @@ -43,18 +65,7 @@ BuildRequires: crash-devel zlib-devel %if %{with_rpm} BuildRequires: rpm-devel glibc-headers %endif -# Alternate kernel packages kernel-PAE-devel et al have a virtual -# provide for kernel-devel, so this requirement does the right thing. -Requires: kernel-devel -Requires: gcc make -# Suggest: kernel-debuginfo -Requires: systemtap-runtime = %{version}-%{release} BuildRequires: nss-devel avahi-devel pkgconfig - -# Additional requires for things spawned by stap -Requires: coreutils grep sed unzip zip -Requires: openssh-clients - %if %{with_bundled_elfutils} Source1: elfutils-%{elfutils_version}.tar.gz Patch1: elfutils-portability.patch @@ -63,7 +74,6 @@ BuildRequires: m4 %else BuildRequires: elfutils-devel >= %{elfutils_version} %endif - %if %{with_docs} BuildRequires: /usr/bin/latex /usr/bin/dvips /usr/bin/ps2pdf latex2html # On F10, xmlto's pdf support was broken off into a sub-package, @@ -75,7 +85,6 @@ BuildRequires: publican BuildRequires: /usr/share/publican/Common_Content/%{publican_brand}/defaults.cfg %endif %endif - %if %{with_grapher} BuildRequires: gtkmm24-devel >= 2.8 BuildRequires: libglademm24-devel >= 2.6.7 @@ -87,15 +96,66 @@ BuildRequires: boost-devel %endif BuildRequires: gettext-devel -Patch2: gcc-4.7.patch +# Install requirements +Requires: systemtap-client = %{version}-%{release} +Requires: systemtap-devel = %{version}-%{release} %description SystemTap is an instrumentation system for systems running Linux. -Developers can write instrumentation to collect data on the operation -of the system. +Developers can write instrumentation scripts to collect data on +the operation of the system. The base systemtap package contains/requires +the components needed to locally develop and execute systemtap scripts. + +# ------------------------------------------------------------------------ + +%package server +Summary: Instrumentation System Server +Group: Development/System +License: GPLv2+ +URL: http://sourceware.org/systemtap/ +Requires: systemtap-devel = %{version}-%{release} +# On RHEL[45], /bin/mktemp comes from the 'mktemp' package. On newer +# distributions, /bin/mktemp comes from the 'coreutils' package. To +# avoid a specific RHEL[45] Requires, we'll do a file-based require. +Requires: nss /bin/mktemp +Requires: zip unzip +Requires(pre): shadow-utils +Requires(post): chkconfig +Requires(preun): chkconfig +Requires(preun): initscripts +Requires(postun): initscripts +BuildRequires: nss-devel avahi-devel + +%description server +This is the remote script compilation server component of systemtap. +It announces itself to nearby clients with avahi (if available), and +compiles systemtap scripts to kernel objects on their demand. + + +%package devel +Summary: Programmable system-wide instrumentation system - development headers, tools +Group: Development/System +License: GPLv2+ +URL: http://sourceware.org/systemtap/ +Requires: kernel >= 2.6.9-11 +# Alternate kernel packages kernel-PAE-devel et al. have a virtual +# provide for kernel-devel, so this requirement does the right thing, +# at least past RHEL4. +Requires: kernel-devel +Requires: gcc gcc-c++ make +# Suggest: kernel-debuginfo + +%description devel +This package contains the components needed to compile a systemtap +script from source form into executable (.ko) forms. It may be +installed on a self-contained developer workstation (along with the +systemtap-client and systemtap-runtime packages), or on a dedicated +remote server (alongside the systemtap-server package). It includes +a copy of the standard tapset library and the runtime library C files. + %package runtime -Summary: Instrumentation System Runtime +Summary: Programmable system-wide instrumentation system - runtime Group: Development/System License: GPLv2+ URL: http://sourceware.org/systemtap/ @@ -103,40 +163,43 @@ Requires: kernel >= 2.6.9-11 Requires(pre): shadow-utils %description runtime -SystemTap runtime is the runtime component of an instrumentation -system for systems running Linux. Developers can write -instrumentation to collect data on the operation of the system. +SystemTap runtime contains the components needed to execute +a systemtap script that was already compiled into a module +using a local or remote systemtap-devel installation. -%package testsuite -Summary: Instrumentation System Testsuite + +%package client +Summary: Programmable system-wide instrumentation system - client Group: Development/System License: GPLv2+ URL: http://sourceware.org/systemtap/ -Requires: systemtap = %{version}-%{release} -Requires: systemtap-sdt-devel = %{version}-%{release} -Requires: dejagnu which prelink - -%description testsuite -The testsuite allows testing of the entire SystemTap toolchain -without having to rebuild from sources. - -%package server -Summary: Instrumentation System Server -Group: Development/System -License: GPLv2+ -URL: http://sourceware.org/systemtap/ -Requires: systemtap = %{version}-%{release} -Requires: avahi avahi-tools nss coreutils Requires: zip unzip +Requires: systemtap-runtime = %{version}-%{release} +Requires: coreutils grep sed unzip zip +Requires: openssh-clients + +%description client +This package contains/requires the components needed to develop +systemtap scripts, and compile them using a local systemtap-devel +or a remote systemtap-server installation, then run them using a +local or remote systemtap-runtime. It includes script samples and +documentation, and a copy of the tapset library for reference. + + +%package initscript +Summary: Systemtap Initscripts +Group: Development/System +License: GPLv2+ +URL: http://sourceware.org/systemtap/ +Requires: systemtap = %{version}-%{release} Requires(post): chkconfig Requires(preun): chkconfig Requires(preun): initscripts Requires(postun): initscripts -%description server -This is the remote script compilation server component of systemtap. -It announces itself to local clients with avahi, and compiles systemtap -scripts to kernel objects on their demand. +%description initscript +Sysvinit scripts to launch selected systemtap scripts at system startup. + %package sdt-devel Summary: Static probe support tools @@ -145,21 +208,26 @@ License: GPLv2+ and Public Domain URL: http://sourceware.org/systemtap/ %description sdt-devel -Support tools to allow applications to use static probes. +This package includes the header file used for static +instrumentation compiled into userspace programs and libraries, along +with the optional dtrace-compatibility preprocessor to process related +.d files into tracing-macro-laden .h headers. -%package initscript -Summary: Systemtap Initscripts + +%package testsuite +Summary: Instrumentation System Testsuite Group: Development/System License: GPLv2+ URL: http://sourceware.org/systemtap/ -Requires: systemtap-runtime = %{version}-%{release} -Requires(post): chkconfig -Requires(preun): chkconfig -Requires(preun): initscripts -Requires(postun): initscripts +Requires: systemtap = %{version}-%{release} +Requires: systemtap-sdt-devel = %{version}-%{release} +Requires: dejagnu which prelink elfutils grep + +%description testsuite +This package includes the dejagnu-based systemtap stress self-testing +suite. This may be used by system administrators to thoroughly check +systemtap on the current system. -%description initscript -Initscript for Systemtap scripts %if %{with_grapher} %package grapher @@ -167,13 +235,17 @@ Summary: Instrumentation System Grapher Group: Development/System License: GPLv2+ URL: http://sourceware.org/systemtap/ -Requires: systemtap-runtime = %{version}-%{release} +# NB: don't bind it to a particular version (PR13499) +Requires: systemtap %description grapher -SystemTap grapher is a utility for real-time visualization of +This package includes a utility for real-time visualization of data from SystemTap instrumentation scripts. %endif + +# ------------------------------------------------------------------------ + %prep %setup -q %{?setup_elfutils} @@ -187,8 +259,6 @@ find . \( -name configure -o -name config.h.in \) -print | xargs touch cd .. %endif -%patch2 -p1 - %build %if %{with_bundled_elfutils} @@ -320,15 +390,14 @@ install -m 644 initscript/logrotate.stap-server $RPM_BUILD_ROOT%{_sysconfdir}/lo %clean rm -rf ${RPM_BUILD_ROOT} -%pre -getent group stap-server >/dev/null || groupadd -g 155 -r stap-server || groupadd -r stap-server - %pre runtime -getent group stapdev >/dev/null || groupadd -r stapdev -getent group stapusr >/dev/null || groupadd -r stapusr +getent group stapusr >/dev/null || groupadd -g 156 -r stapusr || groupadd -r stapusr +getent group stapsys >/dev/null || groupadd -g 157 -r stapsys || groupadd -r stapsys +getent group stapdev >/dev/null || groupadd -g 158 -r stapdev || groupadd -r stapdev exit 0 %pre server +getent group stap-server >/dev/null || groupadd -g 155 -r stap-server || groupadd -r stap-server getent passwd stap-server >/dev/null || \ useradd -c "Systemtap Compile Server" -u 155 -g stap-server -d %{_localstatedir}/lib/stap-server -m -r -s /sbin/nologin stap-server || \ useradd -c "Systemtap Compile Server" -g stap-server -d %{_localstatedir}/lib/stap-server -m -r -s /sbin/nologin stap-server @@ -403,61 +472,10 @@ exit 0 (make -C %{_datadir}/%{name}/runtime/uprobes clean) >/dev/null 2>&1 || true (/sbin/rmmod uprobes) >/dev/null 2>&1 || true +# ------------------------------------------------------------------------ + %files -f %{name}.lang -%defattr(-,root,root) - -%doc README README.unprivileged AUTHORS NEWS COPYING examples -%if %{with_docs} -%doc docs.installed/*.pdf -%doc docs.installed/tapsets -%if %{with_publican} -%doc docs.installed/SystemTap_Beginners_Guide -%endif -%endif - -%{_bindir}/stap -%{_bindir}/stap-prep -%{_bindir}/stap-report -%{_mandir}/man1/stap.1* -%{_mandir}/man1/stap-merge.1* -%{_mandir}/man3/* -%{_mandir}/man7/stappaths.7* - -%dir %{_datadir}/%{name} -%{_datadir}/%{name}/runtime -%{_datadir}/%{name}/tapset - -%if %{with_bundled_elfutils} -%dir %{_libdir}/%{name} -%{_libdir}/%{name}/lib*.so* -%endif - -# Make sure that the uprobes module can be built by root and by the server -%dir %attr(0775,root,stap-server) %{_datadir}/%{name}/runtime/uprobes - -%files runtime -f %{name}.lang -%defattr(-,root,root) -%attr(4110,root,stapusr) %{_bindir}/staprun -%{_bindir}/stapsh -%{_bindir}/stap-merge -%{_bindir}/stap-report -%dir %{_libexecdir}/%{name} -%{_libexecdir}/%{name}/stapio -%{_libexecdir}/%{name}/stap-env -%{_libexecdir}/%{name}/stap-authorize-cert -%if %{with_crash} -%dir %{_libdir}/%{name} -%{_libdir}/%{name}/staplog.so* -%endif -%{_mandir}/man7/stappaths.7* -%{_mandir}/man8/staprun.8* - -%doc README README.security AUTHORS NEWS COPYING - -%files testsuite -%defattr(-,root,root) -%dir %{_datadir}/%{name} -%{_datadir}/%{name}/testsuite +# The master "systemtap" rpm doesn't include any files. %files server -f %{name}.lang %defattr(-,root,root) @@ -479,14 +497,65 @@ exit 0 %ghost %config(noreplace) %attr(0644,stap-server,stap-server) %{_localstatedir}/log/stap-server/log %ghost %attr(0755,stap-server,stap-server) %{_localstatedir}/run/stap-server %doc initscript/README.stap-server +%doc README README.unprivileged AUTHORS NEWS COPYING -%files sdt-devel + +%files devel -f %{name}.lang +%{_bindir}/stap +%{_bindir}/stap-prep +%{_bindir}/stap-report +%dir %{_datadir}/%{name}/runtime +%{_datadir}/%{name}/runtime +%dir %{_datadir}/%{name}/tapset +%{_datadir}/%{name}/tapset +%{_mandir}/man1/stap.1* +%{_mandir}/man7/stappaths.7* +%doc README README.unprivileged AUTHORS NEWS COPYING +%if %{with_bundled_elfutils} +%dir %{_libdir}/%{name} +%{_libdir}/%{name}/lib*.so* +%endif + +%files runtime -f %{name}.lang %defattr(-,root,root) -%{_bindir}/dtrace -%{_includedir}/sys/sdt.h -%{_includedir}/sys/sdt-config.h -%{_mandir}/man1/dtrace.1* -%doc README AUTHORS NEWS COPYING +%attr(4110,root,stapusr) %{_bindir}/staprun +%{_bindir}/stapsh +%{_bindir}/stap-merge +%{_bindir}/stap-report +%dir %{_libexecdir}/%{name} +%{_libexecdir}/%{name}/stapio +%{_libexecdir}/%{name}/stap-env +%{_libexecdir}/%{name}/stap-authorize-cert +%if %{with_crash} +%dir %{_libdir}/%{name} +%{_libdir}/%{name}/staplog.so* +%endif +%{_mandir}/man7/stappaths.7* +%{_mandir}/man8/staprun.8* +%doc README README.security AUTHORS NEWS COPYING + + +%files client -f %{name}.lang +%defattr(-,root,root) +%doc README README.unprivileged AUTHORS NEWS COPYING examples +%if %{with_docs} +%doc docs.installed/*.pdf +%doc docs.installed/tapsets/*.html +%if %{with_publican} +%doc docs.installed/SystemTap_Beginners_Guide +%endif +%endif +%{_bindir}/stap +%{_bindir}/stap-prep +%{_bindir}/stap-report +%{_mandir}/man1/stap.1* +%{_mandir}/man1/stap-merge.1* +%{_mandir}/man3/* +%{_mandir}/man7/stappaths.7* +%dir %{_datadir}/%{name} +%{_datadir}/%{name}/tapset + + %files initscript %defattr(-,root,root) @@ -499,6 +568,22 @@ exit 0 %ghost %{_localstatedir}/run/systemtap %doc initscript/README.systemtap + +%files sdt-devel -f %{name}.lang +%defattr(-,root,root) +%{_bindir}/dtrace +%{_includedir}/sys/sdt.h +%{_includedir}/sys/sdt-config.h +%{_mandir}/man1/dtrace.1* +%doc README AUTHORS NEWS COPYING + + +%files testsuite +%defattr(-,root,root) +%dir %{_datadir}/%{name} +%{_datadir}/%{name}/testsuite + + %if %{with_grapher} %files grapher %defattr(-,root,root) @@ -508,8 +593,13 @@ exit 0 %{_mandir}/man1/stapgraph.1* %endif +# ------------------------------------------------------------------------ %changelog +* Wed Feb 01 2012 Frank Ch. Eigler - 1.7-1 +- Upstream release. +- Reorganize subpackages, new -client and -devel for subset installations. + * Sat Jan 14 2012 Mark Wielaard - 1.6-4 - Fixes for gcc-4.7 based on upstream commits e14c86 and 47caa9.