diff --git a/strace-4.5.20.tar.bz2 b/strace-4.5.20.tar.bz2 deleted file mode 100644 index 2c11fe6..0000000 --- a/strace-4.5.20.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ea8c059369eaa5ad90b246f34eab247d0ee48bfdee2670c7196320a4669ccabd -size 504078 diff --git a/strace-4.5.20.diff b/strace-4.6.diff similarity index 100% rename from strace-4.5.20.diff rename to strace-4.6.diff diff --git a/strace-4.6.tar.bz2 b/strace-4.6.tar.bz2 new file mode 100644 index 0000000..6814772 --- /dev/null +++ b/strace-4.6.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:52f6044d92558594b1567778951e93a3bc9913edc4a1a4c34fda6a9a85af3c9b +size 489582 diff --git a/strace-add-support-for-block-ioctls.patch b/strace-add-support-for-block-ioctls.patch deleted file mode 100644 index 93b5c51..0000000 --- a/strace-add-support-for-block-ioctls.patch +++ /dev/null @@ -1,294 +0,0 @@ -From: Jeff Mahoney -Subject: strace: Add support for block ioctls -References: bnc#539521 - - This patch adds support for blkdev_ioctl()-handled ioctls. - -Signed-off-by: Jeff Mahoney ---- - Makefile.am | 2 - block.c | 221 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ - defs.h | 1 - ioctl.c | 3 - linux/ioctlent.sh | 3 - 5 files changed, 229 insertions(+), 1 deletion(-) - -Index: strace-4.5.20/Makefile.am -=================================================================== ---- strace-4.5.20.orig/Makefile.am -+++ strace-4.5.20/Makefile.am -@@ -15,7 +15,7 @@ INCLUDES = -I$(srcdir)/$(OS)/$(ARCH) -I$ - strace_SOURCES = strace.c syscall.c count.c util.c desc.c file.c ipc.c \ - io.c ioctl.c mem.c net.c process.c bjm.c quota.c \ - resource.c signal.c sock.c system.c term.c time.c \ -- proc.c scsi.c stream.c -+ proc.c scsi.c stream.c block.c - noinst_HEADERS = defs.h - - EXTRA_DIST = $(man_MANS) errnoent.sh signalent.sh syscallent.sh ioctlsort.c \ -Index: strace-4.5.20/block.c -=================================================================== ---- /dev/null -+++ strace-4.5.20/block.c -@@ -0,0 +1,221 @@ -+#include "defs.h" -+#ifdef LINUX -+#include -+#include -+#include -+#include -+#include -+ -+#ifndef BLKALIGNOFF -+#define BLKALIGNOFF _IO(0x12,122) -+#endif -+#ifndef BLKPBSZGET -+#define BLKPBSZGET _IO(0x12,123) -+#endif -+#ifndef BLKIOMIN -+#define BLKIOMIN _IO(0x12,120) -+#endif -+#ifndef BLKIOOPT -+#define BLKIOOPT _IO(0x12,121) -+#endif -+ -+ -+static void -+print_blkpg_req(struct tcb *tcp, struct blkpg_ioctl_arg *blkpg) -+{ -+ struct blkpg_partition p; -+ if (!(blkpg->op == BLKPG_ADD_PARTITION || -+ blkpg->op == BLKPG_DEL_PARTITION)) { -+ tprintf("{%d, ", blkpg->op); -+ return; -+ } -+ -+ tprintf("{%s, ", blkpg->op == BLKPG_ADD_PARTITION ? -+ "BLKPG_ADD_PARTITION" : "BLKPG_DEL_PARTITION"); -+ tprintf("flags=%d, datalen=%d, ", blkpg->flags, blkpg->datalen); -+ -+ if (umove(tcp, (unsigned long)blkpg->data, &p) < 0) { -+ tprintf("%#lx", (unsigned long)blkpg->data); -+ return; -+ } -+ -+ tprintf("{start=%lld, length=%lld, pno=%d, ", -+ p.start, p.length, p.pno); -+ -+ tprintf("devname=\"%s\", volname=\"%s\"}", -+ p.devname, p.volname); -+} -+ -+int -+block_ioctl(struct tcb *tcp, long code, long arg) -+{ -+ switch (code) { -+ -+ /* These pass arg as a value, not a pointer */ -+ case BLKRASET: -+ case BLKFRASET: -+ if (entering(tcp)) -+ tprintf(", %ld", arg); -+ break; -+ -+ /* Just pass in a signed int */ -+ case BLKROSET: -+ case BLKBSZSET: -+ if (entering(tcp)) { -+ int int_val; -+ if (umove(tcp, arg, &int_val) < 0) -+ tprintf(", %#lx", arg); -+ else -+ tprintf(", %d", int_val); -+ } -+ break; -+ -+ /* Just return an unsigned short */ -+ case BLKSECTGET: -+ if (exiting(tcp)) { -+ unsigned short ushort_val; -+ if (umove(tcp, arg, &ushort_val) < 0) -+ tprintf(", %#lx", arg); -+ else -+ tprintf(", %hu", ushort_val); -+ } -+ break; -+ -+ /* Just return a signed int */ -+ case BLKROGET: -+ case BLKBSZGET: -+ case BLKSSZGET: -+ case BLKALIGNOFF: -+ if (exiting(tcp)) { -+ int int_val; -+ if (umove(tcp, arg, &int_val) < 0) -+ tprintf(", %#lx", arg); -+ else -+ tprintf(", %d", int_val); -+ } -+ break; -+ -+ /* Just return an unsigned int */ -+ case BLKPBSZGET: -+ case BLKIOMIN: -+ case BLKIOOPT: -+ if (exiting(tcp)) { -+ unsigned int uint_val; -+ if (umove(tcp, arg, &uint_val) < 0) -+ tprintf(", %#lx", arg); -+ else -+ tprintf(", %u", uint_val); -+ } -+ break; -+ -+ /* Just return a signed long */ -+ case BLKRAGET: -+ case BLKFRAGET: -+ if (exiting(tcp)) { -+ long size; -+ if (umove(tcp, arg, &size) < 0) -+ tprintf(", %#lx", arg); -+ else -+ tprintf(", %ld", size); -+ } -+ break; -+ -+ /* Just return an unsigned long */ -+ case BLKGETSIZE: -+ if (exiting(tcp)) { -+ unsigned long ulong_val; -+ if (umove(tcp, arg, &ulong_val) < 0) -+ tprintf(", %#lx", arg); -+ else -+ tprintf(", %lu", ulong_val); -+ } -+ break; -+ -+ /* Just return a quad */ -+ case BLKGETSIZE64: -+ if (exiting(tcp)) { -+ uint64_t uint64_val; -+ if (umove(tcp, arg, &uint64_val) < 0) -+ tprintf(", %#lx", arg); -+ else -+ tprintf(", %llu", (unsigned long long)uint64_val); -+ } -+ break; -+ -+ /* More complex types */ -+ case BLKDISCARD: -+ if (entering(tcp)) { -+ uint64_t range[2]; -+ if (umove(tcp, arg, range) < 0) -+ tprintf(", %#lx", arg); -+ else -+ tprintf(", {%llx, %llx}", -+ (unsigned long long)range[0], -+ (unsigned long long)range[1]); -+ } -+ break; -+ -+ case HDIO_GETGEO: -+ if (exiting(tcp)) { -+ struct hd_geometry geo; -+ if (umove(tcp, arg, &geo) < 0) -+ tprintf(", %#lx", arg); -+ else -+ tprintf(", {heads=%hhu, sectors=%hhu, " -+ "cylinders=%hu, start=%lu}", -+ geo.heads, geo.sectors, -+ geo.cylinders, geo.start); -+ } -+ break; -+ case BLKPG: -+ if (entering(tcp)) { -+ struct blkpg_ioctl_arg blkpg; -+ if (umove(tcp, arg, &blkpg) < 0) -+ tprintf(", %#lx", arg); -+ else { -+ tprintf(", "); -+ print_blkpg_req(tcp, &blkpg); -+ } -+ } -+ if (exiting(tcp)) { -+ tprintf("}"); -+ } -+ break; -+ case BLKTRACESETUP: -+ if (entering(tcp)) { -+ struct blk_user_trace_setup buts; -+ if (umove(tcp, arg, &buts) < 0) -+ tprintf(", %#lx", arg); -+ else { -+ tprintf(", {act_mask=%hu, buf_size=%u, ", -+ buts.act_mask, buts.buf_size); -+ tprintf("buf_nr=%u, start_lba=%llu, ", -+ buts.buf_nr, buts.start_lba); -+ tprintf("end_lba=%llu, pid=%u}", -+ buts.end_lba, buts.pid); -+ } -+ } -+ if (exiting(tcp)) { -+ struct blk_user_trace_setup buts; -+ if (umove(tcp, arg, &buts) < 0) -+ tprintf(", %#lx", arg); -+ else { -+ tprintf(", {name=\"%s\"}", buts.name); -+ } -+ } -+ break; -+ /* No arguments or unhandled */ -+ case BLKFLSBUF: /* Requires driver knowlege */ -+ case BLKRRPART: /* No args */ -+ case BLKTRACESTART: -+ case BLKTRACESTOP: -+ case BLKTRACETEARDOWN: -+ default: -+ if (entering(tcp)) -+ tprintf(", %#lx", arg); -+ break; -+ -+ }; -+ return 1; -+} -+#endif /* LINUX */ -Index: strace-4.5.20/defs.h -=================================================================== ---- strace-4.5.20.orig/defs.h -+++ strace-4.5.20/defs.h -@@ -550,6 +550,7 @@ extern int stream_ioctl(struct tcb *, in - #ifdef LINUX - extern int rtc_ioctl(struct tcb *, long, long); - extern int scsi_ioctl(struct tcb *, long, long); -+extern int block_ioctl(struct tcb *, long, long); - #endif - - extern int tv_nz(struct timeval *); -Index: strace-4.5.20/ioctl.c -=================================================================== ---- strace-4.5.20.orig/ioctl.c -+++ strace-4.5.20/ioctl.c -@@ -152,6 +152,9 @@ long code, arg; - #ifdef LINUX - case 'p': - return rtc_ioctl(tcp, code, arg); -+ case 0x03: -+ case 0x12: -+ return block_ioctl(tcp, code, arg); - case 0x22: - return scsi_ioctl(tcp, code, arg); - #endif -Index: strace-4.5.20/linux/ioctlent.sh -=================================================================== ---- strace-4.5.20.orig/linux/ioctlent.sh -+++ strace-4.5.20/linux/ioctlent.sh -@@ -69,6 +69,9 @@ lookup_ioctls 56 linux/vt.h - lookup_ioctls '7[12]' linux/videotext.h - lookup_ioctls 89 $asm/sockios.h asm-generic/sockios.h linux/sockios.h - lookup_ioctls 8B linux/wireless.h -+lookup_ioctls 03 linux/hdreg.h -+lookup_ioctls fd dm-ioctl.h -+lookup_ioctls 52 linux/rfkill.h - - if [ -e $dir/Kbuild ]; then - # kernel has exported user space headers, so query only them diff --git a/strace-sparc-proto.diff b/strace-sparc-proto.diff deleted file mode 100644 index a1b7678..0000000 --- a/strace-sparc-proto.diff +++ /dev/null @@ -1,21 +0,0 @@ ---- - linux/sparc/syscall.h | 6 ++++++ - 1 file changed, 6 insertions(+) - -Index: strace-4.5.20/linux/sparc/syscall.h -=================================================================== ---- strace-4.5.20.orig/linux/sparc/syscall.h -+++ strace-4.5.20/linux/sparc/syscall.h -@@ -215,6 +215,12 @@ int sys_move_pages(), sys_getcpu(); - int sys_epoll_pwait(); - int sys_signalfd(), sys_timerfd(), sys_eventfd(); - -+int sys_mbind(), sys_get_mempolicy(), sys_set_mempolicy(); -+int sys_utimensat(), sys_timerfd_create(), sys_fallocate(); -+int sys_timerfd_settime(), sys_timerfd_gettime(), sys_signalfd4(); -+int sys_eventfd2(), sys_epoll_create1(), sys_dup3(), sys_pipe2(); -+int sys_inotify_init1(); -+ - # define SYS_socket_subcall 353 - #define SYS_sub_socket (SYS_socket_subcall + 1) - #define SYS_sub_bind (SYS_socket_subcall + 2) diff --git a/strace.changes b/strace.changes index 016031d..3301071 100644 --- a/strace.changes +++ b/strace.changes @@ -1,3 +1,49 @@ +------------------------------------------------------------------- +Wed Mar 16 11:13:09 CET 2011 - meissner@suse.de + +- Updated to 4.6 + * Changes in behavior + * Print diagnostic information about changes in personality mode to + standard error instead of standard output. + * Improvements + * Implemented a new method of following clone, fork, and vfork + syscalls using the Linux kernel's explicit facilities for tracing + creation of threads and child processes. + * Implemented CLONE_PARENT and CLONE_UNTRACED flags handling. + * Implemented decoding of TLS syscalls on m68k. + * Implemented biarch support on powerpc64. + * Implemented biarch support for getrlimit() and setrlimit(). + * Implemented decoding of struct ucred in getsockopt SO_PEERCRED. + * Implemented SOL_SCTP socket options decoding. + * Added HDIO_* ioctl names. (Addresses Debian bug #450953). + * Added LOOP_* ioctl names. + * Updated lists of CLOCK_*, CLONE_*, MS_*, and SOL_* constants to match Linux 2.6.37. + * Updated the list of IPPROTO_* constants to match netinet/in.h. + * Implemented decoding of HDIO_* and BLK* ioctls. + * Added MicroBlaze architecture support. + * Added new syscall entries to match Linux 2.6.37. + * Regenerated list of ioctl names from Linux 2.6.37. + * Enhanced signal notification decoding. + * Documented -C and -D options. + * Bug fixes + * Fixed fetching syscall arguments on m68k. + * Fixed an error when judging whether a process has children. + * Fixed get/set_robust_list syscall numbers for powerpc. + * Fixed a corner case in printing clone flags. + * Fixed cross-compiling issues. + * Fixed build issues on powerpc64, SH and SPARC. + * Fixed syscall flags of fstatat*, mmap, mmap2, fadvise64*, swapoff, + fgetxattr, flistxattr, fremovexattr, epoll_create, fallocate, + fanotify_init, and fanotify_mark syscalls. + * Fixed decoding of get[ug]id, gete[ug]id and setfs[ug]id return values. + * Fixed biarch support in IO dumping. + * Fixed raw exit_group decoding. + * Fixed decoding of file descriptors on 64-bit architectures. + * Fixed a corner case in waitpid handling. (Addresses Red Hat bug #663547). + * Fixed stat64 decoding on mips (Addresses Debian bug #599028). + * Fixed misleading italics in the manual page. (Addresses Debian bug #589323). +- buildrequire libaio-devel + ------------------------------------------------------------------- Wed Dec 8 11:35:56 UTC 2010 - puzel@novell.com diff --git a/strace.spec b/strace.spec index 1e5d203..95f9889 100644 --- a/strace.spec +++ b/strace.spec @@ -1,7 +1,7 @@ # # spec file for package strace (Version 4.5.20) # -# Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2011 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -18,7 +18,7 @@ Name: strace -BuildRequires: libacl-devel +BuildRequires: libacl-devel libaio-devel License: BSD3c Group: Development/Tools/Debuggers AutoReqProv: on @@ -27,14 +27,12 @@ AutoReqProv: on Obsoletes: strace-64bit %endif # -Version: 4.5.20 -Release: 4 +Version: 4.6 +Release: 5 Summary: A utility to trace the system calls of a program Source: http://dl.sourceforge.net/strace/strace-%{version}.tar.bz2 Source2: baselibs.conf Patch: strace-%{version}.diff -Patch2: strace-sparc-proto.diff -Patch3: strace-add-support-for-block-ioctls.patch Url: http://sourceforge.net/projects/strace/ BuildRoot: %{_tmppath}/%{name}-%{version}-build @@ -54,8 +52,6 @@ Authors: %prep %setup -q %patch -p1 -%patch2 -p1 -%patch3 -p1 %build export CFLAGS="$RPM_OPT_FLAGS"