Compare commits

...

47 Commits

Author SHA1 Message Date
David Abdurachmanov bef566a602
Merge remote-tracking branch 'up/master' into master-riscv64
Signed-off-by: David Abdurachmanov <david.abdurachmanov@gmail.com>
2019-03-21 14:38:59 +01:00
Frank Ch. Eigler aa6fc8f4c3 Automated weekly systemtap rawhide release: 0.20190308gitb3627d9aa037 2019-03-08 11:40:12 -05:00
Frank Ch. Eigler 76a4cb15d7 Automated weekly systemtap rawhide release: 0.20190307gitf7fb9c9182dc 2019-03-07 15:58:52 -05:00
Igor Gnatenko e85c4ec28f Rebuild for readline 8.0 2019-02-17 09:30:53 +01:00
Frank Ch. Eigler 38eab87aa2 Automated weekly systemtap rawhide release: 0.20190207git4e76869512d2 2019-02-07 10:14:17 -05:00
Fedora Release Engineering 360a94dd83 - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2019-02-03 09:19:31 +00:00
Frank Ch. Eigler 00a7eb9b22 Automated weekly systemtap rawhide release: 0.20190125git905865da1024 2019-01-25 13:05:51 -05:00
Frank Ch. Eigler 64b52e0137 Automated weekly systemtap rawhide release: 0.20190123gitc8084763b75f 2019-01-23 14:42:58 -05:00
Frank Ch. Eigler e398a475bc Automated weekly systemtap rawhide release: 0.20181204git891810c246d6 2018-12-04 14:30:02 -05:00
Frank Ch. Eigler c27bf142be Automated weekly systemtap rawhide release: 0.20181203gitec3b46eb9b19 2018-12-03 15:46:04 -05:00
Frank Ch. Eigler 3f6623da51 Automated weekly systemtap rawhide release: 0.20181126git47ce37a149b6 2018-11-26 22:38:23 -05:00
Frank Ch. Eigler 8fa0dba5a2 Automated weekly systemtap rawhide release: 0.20181126gitf082df49dd91 2018-11-26 18:51:48 -05:00
Frank Ch. Eigler 5a071c9e48 Merge branch 'f29'
* f29:
  rhbz1650371
  upstream release 3.3
  3.2-11 spec update.
  3.2-11
  3.2-10
  3.2-9 - Add unwind-fallback.patch.
  Backport fix for removed timers in kernel 4.15 (#1546563)
2018-11-15 20:42:08 -05:00
Frank Ch. Eigler c0ec2425f3 rhbz1650371 2018-11-15 20:38:09 -05:00
Peter Robinson e6b0de4db8 Crash and virt host supported on ppc64le and aarch64, Move chkconfig to traditional initscripts deps (not required for systemd), spec cleanups 2018-10-14 22:14:52 +01:00
Frank Ch. Eigler a612da876f Merge branch 'master' into f27
* master: (39 commits)
  upstream 4.0 release
  test simplify more
  Automated weekly systemtap rawhide release: 0.20181003git4ad1e11de831
  CI try 8
  CI try 7
  CI try 6
  Automated weekly systemtap rawhide release: 0.20180914gitfe4e14f4af16.1
  CI take 5, k.i.s.s.
  Automated weekly systemtap rawhide release: 0.20180914gitfe4e14f4af16
  CI try 4
  Automated weekly systemtap rawhide release: 0.20180914git11a0a7aea387
  Automated weekly systemtap rawhide release: 0.20180914gitc1befcceae01
  CI try 3 - hand-install the kernel-debuginfo
  Automated weekly systemtap rawhide release: 0.20180914gitc1befcceae01
  more rhts boilerplate imported from acl/
  Automated weekly systemtap rawhide release: 0.20180914gitc51d4e55d285
  CI experiment
  Automated weekly systemtap rawhide release: 0.20180906git37598c4fee7c
  Automated weekly systemtap rawhide release: 0.20180906git37598c4fee7c
  Automated weekly systemtap rawhide release: 0.20180810git
  ...
2018-10-13 16:21:18 -04:00
Frank Ch. Eigler 227f3127ce upstream 4.0 release 2018-10-13 15:32:07 -04:00
Frank Ch. Eigler 864ecbdfc2 test simplify more 2018-10-03 22:30:10 -04:00
Frank Ch. Eigler e5251ded41 Automated weekly systemtap rawhide release: 0.20181003git4ad1e11de831 2018-10-03 22:29:39 -04:00
Frank Ch. Eigler b6ed2853aa CI try 8 2018-09-16 11:11:19 -04:00
Frank Ch. Eigler c985571b05 CI try 7 2018-09-16 07:32:39 -04:00
Frank Ch. Eigler 2bcf1a3045 CI try 6 2018-09-16 06:27:14 -04:00
Frank Ch. Eigler 4fb6cc1adf Automated weekly systemtap rawhide release: 0.20180914gitfe4e14f4af16.1 2018-09-14 21:18:48 -04:00
Frank Ch. Eigler 19d1385d28 CI take 5, k.i.s.s. 2018-09-14 21:15:59 -04:00
Frank Ch. Eigler 645ca44195 Automated weekly systemtap rawhide release: 0.20180914gitfe4e14f4af16 2018-09-14 19:46:13 -04:00
Frank Ch. Eigler c730acbcfd CI try 4 2018-09-14 19:38:35 -04:00
Frank Ch. Eigler 33ac182b01 Automated weekly systemtap rawhide release: 0.20180914git11a0a7aea387 2018-09-14 18:00:46 -04:00
Frank Ch. Eigler 31f6729a4f Automated weekly systemtap rawhide release: 0.20180914gitc1befcceae01 2018-09-14 17:15:01 -04:00
Frank Ch. Eigler 534796bb5d CI try 3 - hand-install the kernel-debuginfo 2018-09-14 16:58:49 -04:00
Frank Ch. Eigler 85ce83bb04 Automated weekly systemtap rawhide release: 0.20180914gitc1befcceae01 2018-09-14 16:03:52 -04:00
Frank Ch. Eigler 40630c72c2 more rhts boilerplate imported from acl/ 2018-09-14 16:01:55 -04:00
Frank Ch. Eigler 48bf308579 Automated weekly systemtap rawhide release: 0.20180914gitc51d4e55d285 2018-09-14 14:37:28 -04:00
Frank Ch. Eigler d09f6eaf35 CI experiment 2018-09-14 14:21:05 -04:00
Frank Ch. Eigler ddcf2c9e17 Automated weekly systemtap rawhide release: 0.20180906git37598c4fee7c 2018-09-06 22:00:28 -04:00
Frank Ch. Eigler 8564a9f880 Automated weekly systemtap rawhide release: 0.20180906git37598c4fee7c 2018-09-06 21:58:00 -04:00
Frank Ch. Eigler d4c7fab7e0 Automated weekly systemtap rawhide release: 0.20180810git 2018-08-10 15:35:12 -04:00
Igor Gnatenko 6c9283129e
%{python_sitearch} → %{python2_sitearch}
Signed-off-by: Igor Gnatenko <ignatenkobrain@fedoraproject.org>
2018-07-30 00:22:25 +02:00
Fedora Release Engineering fe71a913bf - Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2018-07-14 07:12:48 +00:00
Jason Tibbitts b24274bf97 Remove needless use of %defattr 2018-07-10 01:33:29 -05:00
Miro Hrončok 4919b3de2d Rebuilt for Python 3.7 2018-06-19 11:28:14 +02:00
Frank Ch. Eigler 3df356ef9a upstream release 3.3 2018-06-08 18:46:04 -04:00
Frank Ch. Eigler 45296db740 upstream release 3.3 2018-06-08 18:41:53 -04:00
Mark Wielaard b67c63adc5 3.2-11 spec update. 2018-04-20 17:09:03 +02:00
Mark Wielaard 0d3a3a4eee 3.2-11
- Add rhbz1549063.patch (/bin/env -> /usr/bin/env)
- Add rhbz1566745.patch (4.15 kernel tapset updates)
- Enable accidentially disabled Suggests: kernel-devel again.
2018-04-20 17:08:55 +02:00
Mark Wielaard c6a588ad5d 3.2-10
- Add unwind-fallback.patch
- rhbz1566422.patch
2018-04-20 17:08:20 +02:00
Mark Wielaard a1381b8649 3.2-9 - Add unwind-fallback.patch. 2018-04-20 17:07:55 +02:00
Sergey Avseyev b60bd66c70 Backport fix for removed timers in kernel 4.15 (#1546563) 2018-02-22 12:31:57 +03:00
10 changed files with 380 additions and 319 deletions

20
.gitignore vendored
View File

@ -1,3 +1,4 @@
*~
/systemtap-3.1.tar.gz
/systemtap-3.2-0.20170321git272146660f54.tar.gz
/systemtap-3.2-0.20170406git83d186dc7f5c.tar.gz
@ -8,3 +9,22 @@
/systemtap-3.3-0.20180315gitc2585f2b58cd.tar.gz
/systemtap-3.3-0.20180420gitd4a446c.tar.gz
/systemtap-3.3-0.20180508git9c6ac6cda49e.tar.gz
/systemtap-3.3.tar.gz
/systemtap-4.0-0.20180810git.tar.gz
/systemtap-4.0-0.20180906git37598c4fee7c.tar.gz
/systemtap-4.0-0.20180914gitc51d4e55d285.tar.gz
/systemtap-4.0-0.20180914gitc1befcceae01.tar.gz
/systemtap-4.0-0.20180914git11a0a7aea387.tar.gz
/systemtap-4.0-0.20180914gitfe4e14f4af16.tar.gz
/systemtap-4.0-0.20180914gitfe4e14f4af16.1.tar.gz
/systemtap-4.0-0.20181003git4ad1e11de831.tar.gz
/systemtap-4.0.tar.gz
/systemtap-4.1-0.20181126gitf082df49dd91.tar.gz
/systemtap-4.1-0.20181126git47ce37a149b6.tar.gz
/systemtap-4.1-0.20181203gitec3b46eb9b19.tar.gz
/systemtap-4.1-0.20181204git891810c246d6.tar.gz
/systemtap-4.1-0.20190123gitc8084763b75f.tar.gz
/systemtap-4.1-0.20190125git905865da1024.tar.gz
/systemtap-4.1-0.20190207git4e76869512d2.tar.gz
/systemtap-4.1-0.20190307gitf7fb9c9182dc.tar.gz
/systemtap-4.1-0.20190308gitb3627d9aa037.tar.gz

View File

@ -1,49 +0,0 @@
commit 9f81f10b0caf6dfc49c4b7ceb7902f45d37b532a (HEAD -> master, origin/master, origin/HEAD)
Author: Frank Ch. Eigler <fche@redhat.com>
Date: Fri Oct 20 10:01:58 2017 -0400
rhbz1504009: let dtrace -G -o /dev/null run, as in autoconf
commit c245153ca193c471a8c broke the ability of dtrace to be tested in
autoconf "-G -o /dev/null" usage, because its output file name was too
simple a function of the input name, and normal users can't write to
/dev/null.dtrace-temp.c . Now we back down to mkstemp, like before,
upon a failure of the simple concatenated name.
diff --git a/dtrace.in b/dtrace.in
index 2e2e002a5c56..25efc253b708 100644
--- a/dtrace.in
+++ b/dtrace.in
@@ -410,8 +410,12 @@ from tempfile import mkstemp
else:
print("header: " + fname)
- fname = filename + ".dtrace-temp.c"
- fdesc = open(fname, mode='w')
+ try: # for reproducible-builds purposes, prefer a fixed path name pattern
+ fname = filename + ".dtrace-temp.c"
+ fdesc = open(fname, mode='w')
+ except: # but that doesn't work for -o /dev/null - see rhbz1504009
+ (ignore,fname) = mkstemp(suffix=".c")
+ fdesc = open(fname, mode='w')
providers.semaphore_write(fdesc)
fdesc.close()
cc1 = os.environ.get("CC", "gcc")
diff --git a/testsuite/systemtap.base/dtrace.exp b/testsuite/systemtap.base/dtrace.exp
index fa6b3ec3f6d3..7c60f09d70b8 100644
--- a/testsuite/systemtap.base/dtrace.exp
+++ b/testsuite/systemtap.base/dtrace.exp
@@ -83,6 +83,13 @@ if {[file exists /tmp/XXX.o]} then {
}
exec rm -f /tmp/XXX.o
+verbose -log "$dtrace -G -s $dpath -o /dev/null"
+if [as_non_root "$python $dtrace -G -s $dpath -o /dev/null"] {
+ fail "$test -G -o /dev/null"
+} else {
+ pass "$test -G -o /dev/null"
+}
+
verbose -log "$dtrace -G -s $dpath -o /tmp/XXX"
catch {exec $python $dtrace -G -s $dpath -o /tmp/XXX} res
if {[file exists /tmp/XXX]} then {

View File

@ -1,208 +0,0 @@
commit a8e317b60 (HEAD -> master, origin/master, origin/HEAD)
Author: Stan Cox <scox@redhat.com>
Date: Tue Feb 13 22:38:03 2018 -0500
Fixes for gcc 8
* includes/sys/sdt.h (__SDT_COND_SIGNED): Add CT, cast type argument
Author: Will Cohen <wcohen.redhat.com>
* stap-serverd.cxx (generate_mok, handleRequest, handle_connection):
Catch format overflow
* translate.cxx (translate_pass): Use ref in catch.
diff --git a/includes/sys/sdt.h b/includes/sys/sdt.h
index 940f74483..c0c5a492c 100644
--- a/includes/sys/sdt.h
+++ b/includes/sys/sdt.h
@@ -119,8 +119,8 @@ struct __sdt_type
#define __SDT_ALWAYS_SIGNED(T) \
template<> struct __sdt_type<T> { static const bool __sdt_signed = true; };
-#define __SDT_COND_SIGNED(T) \
-template<> struct __sdt_type<T> { static const bool __sdt_signed = ((T)(-1) < 1); };
+#define __SDT_COND_SIGNED(T,CT) \
+template<> struct __sdt_type<T> { static const bool __sdt_signed = ((CT)(-1) < 1); };
__SDT_ALWAYS_SIGNED(signed char)
__SDT_ALWAYS_SIGNED(short)
__SDT_ALWAYS_SIGNED(int)
@@ -141,14 +141,14 @@ __SDT_ALWAYS_SIGNED(const volatile short)
__SDT_ALWAYS_SIGNED(const volatile int)
__SDT_ALWAYS_SIGNED(const volatile long)
__SDT_ALWAYS_SIGNED(const volatile long long)
-__SDT_COND_SIGNED(char)
-__SDT_COND_SIGNED(wchar_t)
-__SDT_COND_SIGNED(volatile char)
-__SDT_COND_SIGNED(volatile wchar_t)
-__SDT_COND_SIGNED(const char)
-__SDT_COND_SIGNED(const wchar_t)
-__SDT_COND_SIGNED(const volatile char)
-__SDT_COND_SIGNED(const volatile wchar_t)
+__SDT_COND_SIGNED(char, char)
+__SDT_COND_SIGNED(wchar_t, wchar_t)
+__SDT_COND_SIGNED(volatile char, char)
+__SDT_COND_SIGNED(volatile wchar_t, wchar_t)
+__SDT_COND_SIGNED(const char, char)
+__SDT_COND_SIGNED(const wchar_t, wchar_t)
+__SDT_COND_SIGNED(const volatile char, char)
+__SDT_COND_SIGNED(const volatile wchar_t, wchar_t)
#if defined (__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4))
/* __SDT_COND_SIGNED(char16_t) */
/* __SDT_COND_SIGNED(char32_t) */
diff --git a/stap-serverd.cxx b/stap-serverd.cxx
index b8f70114c..063c3c587 100644
--- a/stap-serverd.cxx
+++ b/stap-serverd.cxx
@@ -1607,6 +1607,7 @@ generate_mok(string &mok_fingerprint)
char tmpdir[PATH_MAX] = { '\0' };
string public_cert_path, private_cert_path, destdir;
mode_t old_umask;
+ int retlen;
mok_fingerprint.clear ();
@@ -1631,7 +1632,14 @@ generate_mok(string &mok_fingerprint)
}
// Make a temporary directory to store results in.
- snprintf (tmpdir, PATH_MAX, "%s/stap-server.XXXXXX", mok_path.c_str ());
+ retlen = snprintf (tmpdir, PATH_MAX, "%s/stap-server.XXXXXX", mok_path.c_str ());
+ if (retlen < 0 || retlen >= PATH_MAX)
+ {
+ server_error (_F("Could not create %s name", "temporary directory"));
+ tmpdir[0] = '\0';
+ goto cleanup;
+ }
+
if (mkdtemp (tmpdir) == NULL)
{
server_error (_F("Could not create temporary directory %s: %s", tmpdir,
@@ -1704,6 +1712,7 @@ handleRequest (const string &requestDirName, const string &responseDirName, stri
unsigned u;
unsigned i;
FILE* f;
+ int retlen;
// Save the server version. Do this early, so the client knows what version of the server
// it is dealing with, even if the request is not fully completed.
@@ -1782,7 +1791,12 @@ handleRequest (const string &requestDirName, const string &responseDirName, stri
struct stat st;
char *arg;
- snprintf (stapargfile, PATH_MAX, "%s/argv%d", requestDirName.c_str (), i);
+ retlen = snprintf (stapargfile, PATH_MAX, "%s/argv%d", requestDirName.c_str (), i);
+ if (retlen < 0 || retlen >= PATH_MAX)
+ {
+ server_error (_F("Error creating %s name", "path"));
+ return;
+ }
rc = stat(stapargfile, & st);
if (rc) break;
@@ -1888,7 +1902,15 @@ handleRequest (const string &requestDirName, const string &responseDirName, stri
{
glob_t globber;
char pattern[PATH_MAX];
- snprintf (pattern, PATH_MAX, "%s/*.ko", new_staptmpdir.c_str());
+ int retlen;
+
+ retlen = snprintf (pattern, PATH_MAX, "%s/*.ko", new_staptmpdir.c_str());
+ if (retlen < 0 || retlen >= PATH_MAX)
+ {
+ server_error (_F("Error creating %s name", "pattern"));
+ return;
+ }
+
rc = glob (pattern, GLOB_ERR, NULL, &globber);
if (rc)
server_error (_F("Unable to find a module in %s", new_staptmpdir.c_str()));
@@ -2164,6 +2186,7 @@ handle_connection (void *arg)
copy for each connection.*/
vector<string> argv;
PRInt32 bytesRead;
+ int retlen;
/* Detatch to avoid a memory leak */
if(max_threads > 0)
@@ -2213,7 +2236,13 @@ handle_connection (void *arg)
#endif
secStatus = SECFailure;
- snprintf(tmpdir, PATH_MAX, "%s/stap-server.XXXXXX", getenv("TMPDIR") ?: "/tmp");
+ retlen = snprintf(tmpdir, PATH_MAX, "%s/stap-server.XXXXXX", getenv("TMPDIR") ?: "/tmp");
+ if (retlen < 0 || retlen >= PATH_MAX)
+ {
+ server_error (_F("Error creating %s name", "temporary directory"));
+ tmpdir[0]=0; /* prevent /bin/rm */
+ goto cleanup;
+ }
rc1 = mkdtemp(tmpdir);
if (! rc1)
{
@@ -2223,9 +2252,20 @@ handle_connection (void *arg)
}
/* Create a temporary files names and directories. */
- snprintf (requestFileName, PATH_MAX, "%s/request.zip", tmpdir);
+ retlen = snprintf (requestFileName, PATH_MAX, "%s/request.zip", tmpdir);
+ if (retlen < 0 || retlen >= PATH_MAX)
+ {
+ server_error (_F("Error creating %s name", "request.zip path"));
+ goto cleanup;
+ }
+
+ retlen = snprintf (requestDirName, PATH_MAX, "%s/request", tmpdir);
+ if (retlen < 0 || retlen >= PATH_MAX)
+ {
+ server_error (_F("Error creating %s name", "request directory path"));
+ goto cleanup;
+ }
- snprintf (requestDirName, PATH_MAX, "%s/request", tmpdir);
rc = mkdir(requestDirName, 0700);
if (rc)
{
@@ -2233,7 +2273,13 @@ handle_connection (void *arg)
goto cleanup;
}
- snprintf (responseDirName, PATH_MAX, "%s/response", tmpdir);
+ retlen = snprintf (responseDirName, PATH_MAX, "%s/response", tmpdir);
+ if (retlen < 0 || retlen >= PATH_MAX)
+ {
+ server_error (_F("Error creating %s name", "response directory path"));
+ goto cleanup;
+ }
+
rc = mkdir(responseDirName, 0700);
if (rc)
{
@@ -2243,7 +2289,12 @@ handle_connection (void *arg)
// Set this early, since it gets used for errors to be returned to the client.
stapstderr = string(responseDirName) + "/stderr";
- snprintf (responseFileName, PATH_MAX, "%s/response.zip", tmpdir);
+ retlen = snprintf (responseFileName, PATH_MAX, "%s/response.zip", tmpdir);
+ if (retlen < 0 || retlen >= PATH_MAX)
+ {
+ server_error (_F("Error creating %s name", "response.zip path"));
+ goto cleanup;
+ }
/* Read data from the socket.
* If the user is requesting/requiring authentication, authenticate
diff --git a/translate.cxx b/translate.cxx
index 1240a80ec..4ade06fdd 100644
--- a/translate.cxx
+++ b/translate.cxx
@@ -7860,7 +7860,7 @@ translate_pass (systemtap_session& s)
if (versions.size() >= 3 && s.verbose > 1)
clog << _F("ignoring extra parts of compat version: %s", s.compatible.c_str()) << endl;
}
- catch (const runtime_error)
+ catch (const runtime_error&)
{
throw SEMANTIC_ERROR(_F("parse error in compatibility version: %s", s.compatible.c_str()));
}

134
rhbz1650371.patch Normal file
View File

@ -0,0 +1,134 @@
commit fba365b4d365f54ab7ef60272996dc2889461640
Author: Frank Ch. Eigler <fche@redhat.com>
Date: Thu Nov 15 16:27:58 2018 -0500
PR23890: tolerate f29+ style ELF files
Reported by kenj@pcp, with mjw et al.'s help, we found out why
systemtap on fedora 29+ routinely fails to verify build-ids for
userspace programs. F29 adds a separate loadable segment with the
relevante .note's, before the main text segment. The runtime code
that listens to mmaps-in-progress now accepts this configuration.
As long as the .note section is loaded (time-wise and space-wise)
before the .text one(s), we're good.
diff --git a/runtime/linux/uprobes-inode.c b/runtime/linux/uprobes-inode.c
index 6d450c90d87c..b9604e6385ce 100644
--- a/runtime/linux/uprobes-inode.c
+++ b/runtime/linux/uprobes-inode.c
@@ -563,9 +563,11 @@ stapiu_change_plus(struct stapiu_target* target, struct task_struct *task,
return rc;
}
- /* Actually do the check. */
+ /* Actually do the check. NB: on F29+, offset may not equal 0
+ for LOADable "R E" segments, because the read-only .note.*
+ stuff may have been loaded earlier, separately. PR23890. */
if ((rc = _stp_usermodule_check(task, target->filename,
- relocation))) {
+ relocation - offset))) {
/* Be sure to release the inode on failure. */
iput(target->inode);
target->inode = NULL;
commit 824e9ab80108c1882842fc2a4b4abd1aee990ecc (upstream/master)
Author: Frank Ch. Eigler <fche@redhat.com>
Date: Thu Nov 15 20:22:34 2018 -0500
PR23890 bonus: show nicer messages upon a buildid mismatch
Instead of producing only a one-byte error, we now compute the entire
builds into hex text strings, and report the whole shebang on an
error. (Also, ditch some 2.6.27 kernel-bug compatibiltiy fossil
in the area.)
diff --git a/runtime/sym.c b/runtime/sym.c
index 60f0fa980964..111147ee555d 100644
--- a/runtime/sym.c
+++ b/runtime/sym.c
@@ -636,30 +636,46 @@ unsigned long _stp_linenumber_lookup(unsigned long addr, struct task_struct *tas
return 0;
}
+
+// Compare two build-id hex strings, each of length m->build_id_len bytes.
+// Since mismatches can mystify, produce a hex-textual version of both
+// expected and actual strings, and compare textually. Failure messages
+// are more intelligible this way.
static int _stp_build_id_check (struct _stp_module *m,
unsigned long notes_addr,
struct task_struct *tsk)
{
- int j;
+ enum { max_buildid_hexstring = 65 };
+ static const char hexnibble[16]="0123456789abcdef";
+ char hexstring_theory[max_buildid_hexstring], hexstring_practice[max_buildid_hexstring];
+ int buildid_len = min((max_buildid_hexstring-1)/2, m->build_id_len);
+
+ int i, j;
+
+ memset(hexstring_theory, '\0', max_buildid_hexstring);
+ for (i=0, j=0; j<buildid_len; j++) {
+ unsigned char theory = m->build_id_bits[j];
+ hexstring_theory[i++] = hexnibble[theory >> 4];
+ hexstring_theory[i++] = hexnibble[theory & 15];
+ }
- for (j = 0; j < m->build_id_len; j++) {
+ memset(hexstring_practice, '\0', max_buildid_hexstring);
+ for (i=0, j=0; j<buildid_len; j++) {
/* Use set_fs / get_user to access conceivably invalid addresses.
* If loc2c-runtime.h were more easily usable, a deref() loop
* could do it too. */
mm_segment_t oldfs = get_fs();
int rc;
- unsigned char theory, practice = 0;
+ unsigned char practice = 0;
#ifdef STAPCONF_PROBE_KERNEL
if (!tsk) {
- theory = m->build_id_bits[j];
set_fs(KERNEL_DS);
rc = probe_kernel_read(&practice, (void*)(notes_addr + j), 1);
}
else
#endif
{
- theory = m->build_id_bits[j];
set_fs (tsk ? USER_DS : KERNEL_DS);
/*
@@ -685,21 +701,19 @@ static int _stp_build_id_check (struct _stp_module *m,
}
set_fs(oldfs);
- if (rc || (theory != practice)) {
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,27)
- _stp_error ("Build-id mismatch [man error::buildid]: \"%s\" byte %d (0x%02x vs 0x%02x) address %#lx rc %d\n",
- m->path, j, theory, practice, notes_addr, rc);
+ if (rc == 0) { // got actual data byte
+ hexstring_practice[i++] = hexnibble[practice >> 4];
+ hexstring_practice[i++] = hexnibble[practice & 15];
+ }
+ }
+
+ // have two strings, will travel
+ if (strcmp (hexstring_practice, hexstring_theory)) {
+ _stp_error ("Build-id mismatch [man error::buildid]: \"%s\" address %#lx, expected %s actual %s\n",
+ m->path, notes_addr, hexstring_theory, hexstring_practice);
return 1;
-#else
- /* This branch is a surrogate for kernels affected by Fedora bug
- * #465873. */
- _stp_warn (KERN_WARNING
- "Build-id mismatch [man error::buildid]: \"%s\" byte %d (0x%02x vs 0x%02x) rc %d\n",
- m->path, j, theory, practice, rc);
-#endif
- break;
- } /* end mismatch */
- } /* end per-byte check loop */
+ }
+
return 0;
}

View File

@ -1 +1 @@
SHA512 (systemtap-3.3-0.20180508git9c6ac6cda49e.tar.gz) = eeb254486ce991d2bdbbaed6b350fe28455a921134465b4a74c015c433e059d09bd945ae778da39989f12873365be54a8278e57ef6c12a3f406118b35f7738d8
SHA512 (systemtap-4.1-0.20190308gitb3627d9aa037.tar.gz) = 3ab90e1e3de4177513ea0dede72e8da9208c1f3a55fca0a88aabb63a67f4a3d872fa04287593f1abfdc27193a3cc7ee6c0d540bb61e16a61fd6b9b133f1ff9bf

View File

@ -1,9 +1,10 @@
%{!?with_sqlite: %global with_sqlite 0%{?fedora} >= 17 || 0%{?rhel} >= 7}
%{!?with_docs: %global with_docs 1}
# prefer prebuilt docs
%{!?with_docs: %global with_docs 0}
%{!?with_htmldocs: %global with_htmldocs 0}
%{!?with_monitor: %global with_monitor 1}
# crash is not available
%ifarch ppc ppc64 %{sparc} aarch64 ppc64le %{mips} riscv64
%ifarch ppc ppc64 %{sparc} %{mips} riscv64
%{!?with_crash: %global with_crash 0}
%else
%{!?with_crash: %global with_crash 1}
@ -38,9 +39,12 @@
%{!?with_python3_probes: %global with_python3_probes (0%{?fedora} >= 23 || 0%{?rhel} > 7)}
%{!?with_httpd: %global with_httpd 0}
%ifarch ppc64le aarch64 riscv64
# Virt is supported on these arches, even on el7, but it's not in core EL7
%if 0%{?rhel} <= 7
%ifarch ppc64le aarch64
%global with_virthost 0
%endif
%endif
%if 0%{?fedora} >= 18 || 0%{?rhel} >= 6
%define initdir %{_initddir}
@ -66,18 +70,24 @@
%define dracutstap %{_prefix}/share/dracut/modules.d/99stap
%endif
%if 0%{?rhel} >= 6
%if 0%{?rhel} == 6 || 0%{?rhel} == 7
%define dracutbindir /sbin
%else
%define dracutbindir %{_bindir}
%endif
%if 0%{?rhel} == 6
%{!?_rpmmacrodir: %define _rpmmacrodir /etc/rpm/}
%else
%{!?_rpmmacrodir: %define _rpmmacrodir %{_rpmconfigdir}/macros.d}
%endif
# To avoid testsuite/*/*.stp has shebang which doesn't start with '/'
%undefine __brp_mangle_shebangs
%define __brp_mangle_shebangs_exclude_from .stp$
Name: systemtap
Version: 3.3
Release: 0.20180508git9c6ac6cda49e.0.riscv64%{?dist}
Version: 4.1
Release: 0.20190308gitb3627d9aa037.0.riscv64%{?dist}
# for version, see also configure.ac
@ -109,13 +119,13 @@ Release: 0.20180508git9c6ac6cda49e.0.riscv64%{?dist}
# 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: %{name}-%{version}-0.20180508git9c6ac6cda49e.tar.gz
Source: %{name}-%{version}-0.20190308gitb3627d9aa037.tar.gz
# Build*
BuildRequires: gcc-c++
BuildRequires: cpio
BuildRequires: gettext-devel
BuildRequires: pkgconfig(nss)
BuildRequires: pkgconfig(avahi-client)
@ -213,23 +223,26 @@ 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}
Conflicts: systemtap-devel < %{version}-%{release}
Conflicts: systemtap-runtime < %{version}-%{release}
Conflicts: systemtap-client < %{version}-%{release}
Requires: nss coreutils
Requires: zip unzip
Requires(pre): shadow-utils
Requires(post): chkconfig
Requires(preun): chkconfig
Requires(preun): initscripts
Requires(postun): initscripts
BuildRequires: nss-devel avahi-devel
%if %{with_openssl}
Requires: openssl
%endif
%if %{with_systemd}
Requires: systemd
%else
Requires(post): chkconfig
Requires(preun): chkconfig
Requires(preun): initscripts
Requires(postun): initscripts
%endif
%description server
@ -240,17 +253,20 @@ 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/
# The virtual provide 'kernel-devel-uname-r' tries to get the right
# kernel variant (kernel-PAE, kernel-debug, etc.) devel package
# installed.
%ifnarch riscv64
%if 0%{?rhel} >= 8 || 0%{?fedora} >= 20
Recommends: kernel-debug-devel
Recommends: kernel-devel
%else
Requires: kernel-devel-uname-r
%endif
%{?fedora:Suggests: kernel-devel}
Requires: gcc make
Conflicts: systemtap-client < %{version}-%{release}
Conflicts: systemtap-server < %{version}-%{release}
Conflicts: systemtap-runtime < %{version}-%{release}
# Suggest: kernel-debuginfo
%description devel
@ -264,10 +280,12 @@ a copy of the standard tapset library and the runtime library C files.
%package runtime
Summary: Programmable system-wide instrumentation system - runtime
Group: Development/System
License: GPLv2+
URL: http://sourceware.org/systemtap/
Requires(pre): shadow-utils
Conflicts: systemtap-devel < %{version}-%{release}
Conflicts: systemtap-server < %{version}-%{release}
Conflicts: systemtap-client < %{version}-%{release}
%description runtime
SystemTap runtime contains the components needed to execute
@ -277,13 +295,15 @@ using a local or remote systemtap-devel installation.
%package client
Summary: Programmable system-wide instrumentation system - client
Group: Development/System
License: GPLv2+
URL: http://sourceware.org/systemtap/
Requires: zip unzip
Requires: systemtap-runtime = %{version}-%{release}
Requires: coreutils grep sed unzip zip
Requires: openssh-clients
Conflicts: systemtap-devel < %{version}-%{release}
Conflicts: systemtap-server < %{version}-%{release}
Conflicts: systemtap-runtime < %{version}-%{release}
%if %{with_mokutil}
Requires: mokutil
%endif
@ -298,14 +318,17 @@ 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}
%if %{with_systemd}
Requires: systemd
%else
Requires(post): chkconfig
Requires(preun): chkconfig
Requires(preun): initscripts
Requires(postun): initscripts
%endif
%description initscript
This package includes a SysVinit script to launch selected systemtap
@ -315,7 +338,6 @@ boot-time probing if supported.
%package sdt-devel
Summary: Static probe support tools
Group: Development/System
License: GPLv2+ and Public Domain
URL: http://sourceware.org/systemtap/
%if %{with_pyparsing}
@ -339,7 +361,6 @@ with the optional dtrace-compatibility preprocessor to process related
%package testsuite
Summary: Instrumentation System Testsuite
Group: Development/System
License: GPLv2+
URL: http://sourceware.org/systemtap/
Requires: systemtap = %{version}-%{release}
@ -397,23 +418,20 @@ systemtap on the current system.
%if %{with_java}
%package runtime-java
Summary: Systemtap Java Runtime Support
Group: Development/System
License: GPLv2+
URL: http://sourceware.org/systemtap/
Requires: systemtap-runtime = %{version}-%{release}
Requires: byteman > 2.0
Requires: net-tools
Requires: iproute
%description runtime-java
This package includes support files needed to run systemtap scripts
that probe Java processes running on the OpenJDK 1.6 and OpenJDK 1.7
runtimes using Byteman.
that probe Java processes running on the OpenJDK runtimes using Byteman.
%endif
%if %{with_python2_probes}
%package runtime-python2
Summary: Systemtap Python 2 Runtime Support
Group: Development/System
License: GPLv2+
URL: http://sourceware.org/systemtap/
Requires: systemtap-runtime = %{version}-%{release}
@ -426,7 +444,6 @@ that probe python 2 processes.
%if %{with_python3_probes}
%package runtime-python3
Summary: Systemtap Python 3 Runtime Support
Group: Development/System
License: GPLv2+
URL: http://sourceware.org/systemtap/
Requires: systemtap-runtime = %{version}-%{release}
@ -441,10 +458,22 @@ This package includes support files needed to run systemtap scripts
that probe python 3 processes.
%endif
%if %{with_python3}
%package exporter
Summary: Systemtap-prometheus interoperation mechanism
License: GPLv2+
URL: http://sourceware.org/systemtap/
Requires: systemtap-runtime = %{version}-%{release}
%description exporter
This package includes files for a systemd service that manages
systemtap sessions and relays prometheus metrics from the sessions
to remote requesters on demand.
%endif
%if %{with_virthost}
%package runtime-virthost
Summary: Systemtap Cross-VM Instrumentation - host
Group: Development/System
License: GPLv2+
URL: http://sourceware.org/systemtap/
Requires: libvirt >= 1.0.2
@ -459,7 +488,6 @@ connection.
%if %{with_virtguest}
%package runtime-virtguest
Summary: Systemtap Cross-VM Instrumentation - guest
Group: Development/System
License: GPLv2+
URL: http://sourceware.org/systemtap/
Requires: systemtap-runtime = %{version}-%{release}
@ -545,7 +573,7 @@ cd ..
%global docs_config --enable-docs --disable-htmldocs
%endif
%else
%global docs_config --disable-docs
%global docs_config --enable-docs=prebuilt
%endif
# Enable pie as configure defaults to disabling it
@ -596,10 +624,16 @@ cd ..
%global httpd_config --disable-httpd
%endif
%if %{with_bpf}
%global bpf_config --with-bpf
%else
%global bpf_config --without-bpf
%endif
# We don't ship compileworthy python code, just oddball samples
%global py_auto_byte_compile 0
%configure %{?elfutils_config} %{dyninst_config} %{sqlite_config} %{crash_config} %{docs_config} %{pie_config} %{rpm_config} %{java_config} %{virt_config} %{dracut_config} %{python3_config} %{python2_probes_config} %{python3_probes_config} %{httpd_config} --disable-silent-rules --with-extra-version="rpm %{version}-%{release}"
%configure %{?elfutils_config} %{dyninst_config} %{sqlite_config} %{crash_config} %{docs_config} %{pie_config} %{rpm_config} %{java_config} %{virt_config} %{dracut_config} %{python3_config} %{python2_probes_config} %{python3_probes_config} %{httpd_config} %{bpf_config} --disable-silent-rules --with-extra-version="rpm %{version}-%{release}"
make %{?_smp_mflags}
%if %{with_emacsvim}
@ -607,7 +641,6 @@ make %{?_smp_mflags}
%endif
%install
rm -rf ${RPM_BUILD_ROOT}
make DESTDIR=$RPM_BUILD_ROOT install
%find_lang %{name}
for dir in $(ls -1d $RPM_BUILD_ROOT%{_mandir}/{??,??_??}) ; do
@ -636,19 +669,21 @@ install -c -m 755 stap-prep $RPM_BUILD_ROOT%{_bindir}/stap-prep
# Copy over the testsuite
cp -rp testsuite $RPM_BUILD_ROOT%{_datadir}/systemtap
%if %{with_docs}
# We want the manuals in the special doc dir, not the generic doc install dir.
# We build it in place and then move it away so it doesn't get installed
# twice. rpm can specify itself where the (versioned) docs go with the
# %doc directive.
mkdir docs.installed
mv $RPM_BUILD_ROOT%{_datadir}/doc/systemtap/*.pdf docs.installed/
%if %{with_docs}
%if %{with_htmldocs}
mv $RPM_BUILD_ROOT%{_datadir}/doc/systemtap/tapsets docs.installed/
mv $RPM_BUILD_ROOT%{_datadir}/doc/systemtap/SystemTap_Beginners_Guide docs.installed/
%endif
%endif
install -D -m 644 macros.systemtap $RPM_BUILD_ROOT%{_rpmmacrodir}/macros.systemtap
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/stap-server
mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/lib/stap-server
mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/lib/stap-server/.systemtap
@ -658,12 +693,27 @@ mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/cache/systemtap
mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/run/systemtap
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d
install -m 644 initscript/logrotate.stap-server $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/stap-server
# If using systemd systemtap.service file, retain the old init script in %{_libexecdir} as a helper.
%if %{with_systemd}
mkdir -p $RPM_BUILD_ROOT%{_unitdir}
touch $RPM_BUILD_ROOT%{_unitdir}/systemtap.service
install -m 644 initscript/systemtap.service $RPM_BUILD_ROOT%{_unitdir}/systemtap.service
mkdir -p $RPM_BUILD_ROOT%{_sbindir}
install -m 755 initscript/systemtap $RPM_BUILD_ROOT%{_sbindir}/systemtap-service
%else
mkdir -p $RPM_BUILD_ROOT%{initdir}
install -m 755 initscript/systemtap $RPM_BUILD_ROOT%{initdir}
mkdir -p $RPM_BUILD_ROOT%{_sbindir}
ln -sf %{initdir}/systemtap $RPM_BUILD_ROOT%{_sbindir}/systemtap-service
# TODO CHECK CORRECTNESS: symlink %{_sbindir}/systemtap-service to %{initdir}/systemtap
%endif
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/systemtap
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/systemtap/conf.d
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/systemtap/script.d
install -m 644 initscript/config.systemtap $RPM_BUILD_ROOT%{_sysconfdir}/systemtap/config
%if %{with_systemd}
mkdir -p $RPM_BUILD_ROOT%{_unitdir}
touch $RPM_BUILD_ROOT%{_unitdir}/stap-server.service
@ -717,13 +767,13 @@ done
%endif
%pre runtime
getent group stapusr >/dev/null || groupadd -g 156 -r stapusr 2>/dev/null || groupadd -r stapusr
getent group stapsys >/dev/null || groupadd -g 157 -r stapsys 2>/dev/null || groupadd -r stapsys
getent group stapdev >/dev/null || groupadd -g 158 -r stapdev 2>/dev/null || groupadd -r stapdev
getent group stapusr >/dev/null || groupadd -f -g 156 -r stapusr
getent group stapsys >/dev/null || groupadd -f -g 157 -r stapsys
getent group stapdev >/dev/null || groupadd -f -g 158 -r stapdev
exit 0
%pre server
getent group stap-server >/dev/null || groupadd -g 155 -r stap-server 2>/dev/null || groupadd -r stap-server
getent group stap-server >/dev/null || groupadd -f -g 155 -r stap-server
getent passwd stap-server >/dev/null || \
useradd -c "Systemtap Compile Server" -u 155 -g stap-server -d %{_localstatedir}/lib/stap-server -r -s /sbin/nologin stap-server 2>/dev/null || \
useradd -c "Systemtap Compile Server" -g stap-server -d %{_localstatedir}/lib/stap-server -r -s /sbin/nologin stap-server
@ -891,6 +941,24 @@ if [ "$1" -ge "1" ]; then
fi
exit 0
%if %{with_python3}
%if %{with_systemd}
%preun exporter
if [ $1 = 0 ] ; then
/bin/systemctl stop stap-exporter.service >/dev/null 2>&1 || :
/bin/systemctl disable stap-exporter.service >/dev/null 2>&1 || :
fi
exit 0
%postun exporter
# Restart service if this is an upgrade rather than an uninstall
if [ "$1" -ge "1" ]; then
/bin/systemctl condrestart stap-exporter >/dev/null 2>&1 || :
fi
exit 0
%endif
%endif
%post
# Remove any previously-built uprobes.ko materials
(make -C %{_datadir}/systemtap/runtime/uprobes clean) >/dev/null 2>&1 || true
@ -955,11 +1023,10 @@ done
# ------------------------------------------------------------------------
%files -f systemtap.lang
%files
# The master "systemtap" rpm doesn't include any files.
%files server -f systemtap.lang
%defattr(-,root,root)
%{_bindir}/stap-server
%dir %{_libexecdir}/systemtap
%{_libexecdir}/systemtap/stap-serverd
@ -1032,7 +1099,6 @@ done
%files runtime -f systemtap.lang
%defattr(-,root,root)
%attr(4110,root,stapusr) %{_bindir}/staprun
%{_bindir}/stapsh
%{_bindir}/stap-merge
@ -1068,13 +1134,12 @@ done
%files client -f systemtap.lang
%defattr(-,root,root)
%doc README README.unprivileged AUTHORS NEWS
%{_datadir}/systemtap/examples
%{!?_licensedir:%global license %%doc}
%license COPYING
%if %{with_docs}
%doc docs.installed/*.pdf
%if %{with_docs}
%if %{with_htmldocs}
%doc docs.installed/tapsets/*.html
%doc docs.installed/SystemTap_Beginners_Guide
@ -1098,15 +1163,20 @@ done
%files initscript
%defattr(-,root,root)
%if %{with_systemd}
%{_unitdir}/systemtap.service
%{_sbindir}/systemtap-service
%else
%{initdir}/systemtap
%{_sbindir}/systemtap-service
%endif
%dir %{_sysconfdir}/systemtap
%dir %{_sysconfdir}/systemtap/conf.d
%dir %{_sysconfdir}/systemtap/script.d
%config(noreplace) %{_sysconfdir}/systemtap/config
%dir %{_localstatedir}/cache/systemtap
%ghost %{_localstatedir}/run/systemtap
%{_mandir}/man8/systemtap.8*
%{_mandir}/man8/systemtap-service.8*
%if %{with_dracut}
%dir %{dracutstap}
%{dracutstap}/*
@ -1114,18 +1184,17 @@ done
%files sdt-devel
%defattr(-,root,root)
%{_bindir}/dtrace
%{_includedir}/sys/sdt.h
%{_includedir}/sys/sdt-config.h
%{_mandir}/man1/dtrace.1*
%{_rpmmacrodir}/macros.systemtap
%doc README AUTHORS NEWS
%{!?_licensedir:%global license %%doc}
%license COPYING
%files testsuite
%defattr(-,root,root)
%dir %{_datadir}/systemtap
%{_datadir}/systemtap/testsuite
@ -1169,6 +1238,15 @@ done
%endif
%endif
%if %{with_python3}
%files exporter
%{_sysconfdir}/stap-exporter
%{_sysconfdir}/sysconfig/stap-exporter
%{_unitdir}/stap-exporter.service
%{_mandir}/man8/stap-exporter.8*
%{_sbindir}/stap-exporter
%endif
# ------------------------------------------------------------------------
# Future new-release entries should be of the form
@ -1178,36 +1256,53 @@ done
# PRERELEASE
%changelog
* Thu May 10 2018 David Abdurachmanov <david.abdurachmanov@gmail.com> - 3.3-0.20180508git9c6ac6cda49e.0.riscv64
- Add support for riscv64
* Thu Mar 21 2019 David Abdurachmanov <david.abdurachmanov@gmail.com> - 4.1-0.20190308gitb3627d9aa037.0.riscv64
- Add support for RISC-V (riscv64)
* Tue May 08 2018 Frank Ch. Eigler <fche@redhat.com> - 3.3-0.20180508git9c6ac6cda49e
* Fri Mar 08 2019 Frank Ch. Eigler <fche@redhat.com> - 4.1-0.20190308gitb3627d9aa037
- Automated weekly rawhide release
- Applied spec changes from upstream git
* Fri Apr 20 2018 Mark Wielaard <mark@klomp.org> - 3.3-0.20180420gitd4a446c
* Thu Mar 07 2019 Frank Ch. Eigler <fche@redhat.com> - 4.1-0.20190307gitf7fb9c9182dc
- Automated weekly rawhide release
- Applied spec changes from upstream git
* Fri Apr 20 2018 Mark Wielaard <mark@klomp.org> - 3.3-0.20180420gitd4a446c
* Sun Feb 17 2019 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 4.1-0.20190208git4e76869512d2
- Rebuild for readline 8.0
* Thu Feb 07 2019 Frank Ch. Eigler <fche@redhat.com> - 4.1-0.20190207git4e76869512d2
- Automated weekly rawhide release
- Applied spec changes from upstream git
* Thu Mar 15 2018 Frank Ch. Eigler <fche@redhat.com> - 3.3-0.20180315gitc2585f2b58cd
* Sun Feb 03 2019 Fedora Release Engineering <releng@fedoraproject.org> - 4.1-0.20190126git905865da1024
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Fri Jan 25 2019 Frank Ch. Eigler <fche@redhat.com> - 4.1-0.20190125git905865da1024
- Automated weekly rawhide release
- Applied spec changes from upstream git
* Thu Mar 15 2018 Frank Ch. Eigler <fche@redhat.com> - 3.3-0.20180315gitc2585f2b58cd
* Wed Jan 23 2019 Frank Ch. Eigler <fche@redhat.com> - 4.1-0.20190123gitc8084763b75f
- Automated weekly rawhide release
- Applied spec changes from upstream git
* Tue Mar 06 2018 Björn Esser <besser82@fedoraproject.org> - 3.3-0.20180223git5ef0c24456e3
- Rebuilt for libjson-c.so.4 (json-c v0.13.1)
* Thu Feb 22 2018 Frank Ch. Eigler <fche@redhat.com> - 3.3-0.20180222git5ef0c24456e3
* Tue Dec 04 2018 Frank Ch. Eigler <fche@redhat.com> - 4.1-0.20181204git891810c246d6
- Automated weekly rawhide release
- Applied spec changes from upstream git
* Mon Dec 03 2018 Frank Ch. Eigler <fche@redhat.com> - 4.1-0.20181203gitec3b46eb9b19
- Automated weekly rawhide release
- Applied spec changes from upstream git
* Mon Nov 26 2018 Frank Ch. Eigler <fche@redhat.com> - 4.1-0.20181126git47ce37a149b6
- Automated weekly rawhide release
- Applied spec changes from upstream git
* Sat Oct 13 2018 Frank Ch. Eigler <fche@redhat.com> - 4.0-1
- Upstream release.
* Thu Jun 07 2018 Frank Ch. Eigler <fche@redhat.com> - 3.3-1
- Upstream release.
* Wed Oct 18 2017 Frank Ch. Eigler <fche@redhat.com> - 3.2-1
- Upstream release.

View File

@ -0,0 +1,38 @@
TOPLEVEL_NAMESPACE=fedora
PACKAGE_NAME=systemtap
RELATIVE_PATH=Sanity/dejagnu-smoketest
export TESTVERSION=1.0
export TEST=/$(TOPLEVEL_NAMESPACE)/$(PACKAGE_NAME)/$(RELATIVE_PATH)
.PHONY: all install download clean
BUILT_FILES=
FILES=$(METADATA) runtest.sh Makefile PURPOSE
run: $(FILES) build
./runtest.sh
build: $(BUILT_FILES)
chmod a+x ./runtest.sh
clean:
rm -f *~ *.rpm $(BUILT_FILES)
include /usr/share/rhts/lib/rhts-make.include
# Generate the testinfo.desc here:
$(METADATA): Makefile
@touch $(METADATA)
# Change to the test owner's name
@echo "Owner: Frank Ch. Eigler <fche@redhat.com>" > $(METADATA)
@echo "Name: $(TEST)" >> $(METADATA)
@echo "Path: $(TEST_DIR)" >> $(METADATA)
@echo "TestVersion: $(TESTVERSION)" >> $(METADATA)
@echo "Type: Sanity" >> $(METADATA)
@echo "Description: smoke test" >> $(METADATA)
@echo "TestTime: 10m" >> $(METADATA)
@echo "RunFor: $(PACKAGE_NAME)" >> $(METADATA)
@echo "Requires: $(PACKAGE_NAME)" >> $(METADATA)
@echo "License: GPLv2" >> $(METADATA)
# You may need other fields here; see the documentation
rhts-lint $(METADATA)

View File

@ -0,0 +1,3 @@
Test Name: dejagnu-smoketest
Author:
Short Description: Run a minimal systemtap testsuite

View File

@ -0,0 +1,17 @@
#!/bin/sh
set -e
set -x
dnf debuginfo-install -y kernel
# on Fedora CI, can only assume about 1GB RAM to run these tests
stap -L 'process("stap").mark("*")' | grep pass
# stap -L 'kernel.trace("sys_enter")'
stap -v --example helloworld.stp
stap -v -T 10 -p4 -e 'probe kernel.function("do_exit") {println($$vars)}'
# stap -v -T 10 -e 'probe syscall.* ? {println(argstr)}'
echo
echo RESULT: PASS

11
tests/tests.yml Normal file
View File

@ -0,0 +1,11 @@
---
- hosts: localhost
roles:
- role: standard-test-beakerlib
tags:
- classic
tests:
- dejagnu-smoketest
required_packages:
- systemtap-testsuite
- kernel-devel