strace (4.21-1) experimental; urgency=low

  * strace 4.21 snapshot.

 -- Strace <strace-devel@lists.sourceforge.net>  Tue, 13 Feb 2018 23:10:19 +0000

strace (4.20-1) unstable; urgency=medium

  * New upstream version.

 -- Dmitry V. Levin <ldv@altlinux.org>  Mon, 13 Nov 2017 20:21:22 +0000

strace (4.19-1) unstable; urgency=medium

  * New upstream version.

 -- Dmitry V. Levin <ldv@altlinux.org>  Wed, 05 Sep 2017 12:13:14 +0000

strace (4.18-1) unstable; urgency=medium

  * New upstream version.

 -- Dmitry V. Levin <ldv@altlinux.org>  Wed, 05 Jul 2017 07:08:09 +0000

strace (4.17-1) unstable; urgency=medium

  * New upstream version.

 -- Dmitry V. Levin <ldv@altlinux.org>  Wed, 24 May 2017 16:17:18 +0000

strace (4.16-1) unstable; urgency=medium

  * New upstream version.

 -- Dmitry V. Levin <ldv@altlinux.org>  Tue, 14 Feb 2017 10:11:12 +0000

strace (4.15-1) unstable; urgency=medium

  * New upstream version.

 -- Dmitry V. Levin <ldv@altlinux.org>  Wed, 14 Dec 2016 08:09:10 +0000

strace (4.14-1) unstable; urgency=medium

  * New upstream version.

 -- Dmitry V. Levin <ldv@altlinux.org>  Tue, 04 Oct 2016 18:19:20 +0000

strace (4.13-1) unstable; urgency=medium

  * New upstream version.

 -- Dmitry V. Levin <ldv@altlinux.org>  Tue, 26 Jul 2016 16:17:18 +0000

strace (4.12-3) unstable; urgency=medium

  * Fix up 32/64-bit test output in strace -S test to fix i386 build
  * Run make check with VERBOSE=1 so we get useful information in build logs

 -- Steve McIntyre <93sam@debian.org>  Sat, 04 Jun 2016 02:37:44 +0100

strace (4.12-2) unstable; urgency=medium

  * Remove libunwind dependency. Closes: #826223

 -- Steve McIntyre <93sam@debian.org>  Fri, 03 Jun 2016 13:43:44 +0100

strace (4.12-1) unstable; urgency=low

  [ Dmitry V. Levin ]
  * New upstream version.
    + implemented simultaneous use of -p option and tracing of a command,
      closes: #549942
    + fixed decoding of syscalls unknown to the kernel on s390/s390x,
      closes: #485979

 -- Dmitry V. Levin <ldv@altlinux.org>  Tue, 31 May 2016 11:12:13 +0000

strace (4.11-1) unstable; urgency=low

  [ Dmitry V. Levin ]
  * New upstream version.
    + fixed decoding of path argument of umount2 syscall, closes: #785050

  [ Steve McIntyre ]
  * Drop patches against old upstream - all upstream now.
  * Add simple upstream patch to fix printing of 32-bit times syscall
    return value on 64-bit architectures.

 -- Steve McIntyre <93sam@debian.org>  Fri, 08 Jan 2015 00:52:05 +0000

strace (4.10-3) unstable; urgency=medium

  * Really fix mips* builds - fix sys_syscall() handling.
    Closes: #781753
  * Clean up strace64.substvars at clean time
  * Remove ancient changelog entries that annoy lintian
  * Update Standards-Version to 3.9.6 (no changes needed)

 -- Steve McIntyre <93sam@debian.org>  Wed, 08 Jul 2015 23:44:03 +0100

strace (4.10-2) unstable; urgency=medium

  * Fix building on arm64 using patches from upstream. Closes: #790770
  * Fix various test suite failures using patches from upstream.
    Closes: #781040
  * Fix mips o32 build. Thanks to Arturo Borrero Gonzalez
    <arturo.borrero.glez@gmail.com> for tracking this.
  * Add build-dependency on gawk for the test suite. Closes: #780992

 -- Steve McIntyre <93sam@debian.org>  Thu, 02 Jul 2015 02:03:25 +0100

strace (4.10-1) unstable; urgency=low

  [ Dmitry V. Levin ]
  * New upstream version.
    + enhanced ioctl decoding,  closes: #692913
    + enabled mips64el build, closes: #773375
    + updated signal and errno numbers, closes: #768642
    + updated generic and added arch-specific PTRACE_* constants,
      closes: #734554

 -- Steve McIntyre <93sam@debian.org>  Sat, 21 Mar 2015 22:18:25 +0000

strace (4.9-2) unstable; urgency=medium

  * Turn on support for ppc64el, code is already in upstream.
    Closes: #744121.

 -- Steve McIntyre <93sam@debian.org>  Wed, 20 Aug 2014 18:00:20 +0100

strace (4.9-1) unstable; urgency=medium

  [ Dmitry V. Levin ]
  * New upstream version.
    + added -w option to produce stats on syscall latency, closes: #457497
    + applied miscellaneous corrections to the manpage, closes: #725987
    + fixed a typo in package description, closes: #697625
    + enabled or1k build, closes: #742235
    + enabled maximum security hardening, thanks to Markus <waldeck@gmx.de>

  [ Steve McIntyre ]
  * New maintainer. Thanks to Frederik for all his prior work!

 -- Steve McIntyre <93sam@debian.org>  Wed, 20 Aug 2014 15:11:36 +0100

strace (4.8-1.1) unstable; urgency=low

  * NMU
  * Uploading 4.8 to unstable to fix long-standing bugs that have been
    fixed for ages in experimental only.
  * enable arm64 build, Closes: #749956
  * enable x32 build, Closes: #727018
  * lintian-inspired fixes:
    + add build-arch and build-indep targets in debian/rules
    + update standards-version to 3.9.5
    + remove ancient changelog entries causing syntax checker errors
    + add hardening using buildflags.mk
    + trivial changes to Description: fields

 -- Steve McIntyre <93sam@debian.org>  Thu, 10 Jul 2014 14:22:18 +0000

strace (4.8-1) experimental; urgency=low

  * New upstream version.
    + Added aarch64 support, closes: #693074
    + Fixed kernel release string parsing, closes: #702309

 -- Dmitry V. Levin <ldv@altlinux.org>  Mon, 03 Jun 2013 15:16:17 +0000

strace (4.7-1) experimental; urgency=low

  [ Dmitry V. Levin ]
  * New upstream version.
    + Fixed sockaddr_un.sun_path name in decoded output, closes: #554946
    + Avoid potential core file clobbering on exit, closes: #656398
    + Fixed a typo in documentation, closes: #653309

 -- Frederik Schüler <fs@debian.org>  Tue, 12 Feb 2013 10:35:22 +0100

strace (4.6-1) unstable; urgency=low

  * New upstream version.
    + Added HDIO_* ioctl names, closes: #450953
    + Fixed stat64 decoding on mips, closes: #599028
    + Fixed misleading italics in the manual page, closes: #589323

 -- Dmitry V. Levin <ldv@altlinux.org>  Mon, 14 Mar 2011 15:16:17 +0000

strace (4.5.20-2.3) unstable; urgency=low

  * Non-maintainer upload.
  * Add sh4 to arch list.
  * Add powerpcspe to arch list (Closes: #579842).

 -- Nobuhiro Iwamatsu <iwamatsu@debian.org>  Tue, 22 Mar 2011 09:03:49 +0900

strace (4.5.20-2.2) unstable; urgency=low

  * Non-maintainer upload.
  * Add sh4 to arch list (Closes: #537105).

 -- Nobuhiro Iwamatsu <iwamatsu@debian.org>  Wed, 09 Mar 2011 09:22:01 +0900

strace (4.5.20-2.1) unstable; urgency=low

  * NMU, added armhf support. (Closes: #596960)

 -- Konstantinos Margaritis <markos@debian.org>  Thu, 24 Feb 2011 14:47:54 +0000

strace (4.5.20-2) unstable; urgency=low

  * Add missing sparc syscall defines to fix FTBFS on sparc.

 -- Frederik Schüler <fs@debian.org>  Tue, 04 May 2010 14:31:46 +0200

strace (4.5.20-1) unstable; urgency=low

  [ Dmitry V. Levin ]
  * New upstream version.
    + Corrected decoding of 64bit syscalls, closes: #570603
    + Corrected getsockopt decoding on architectures where
      sizeof(long) > sizeof(int), closes: #494844
    + Corrected decoding of epoll_pwait, closes: #513014
    + Implemented -C option to combine regular and -c output, closes: #466196

  [ Frederik Schüler ]
  * Update standards-version to 3.8.4.
  * debian/rules: allow parallel building.
  * debian/rules: comment out verbose build, only needed for debugging.
  * debian/rules: clean up clean: target, dh_clean does most of the work
    already.
  * debian/rules: use *-stamp instead of stamp-*, so dh_clean can tidy
    up for us.

 -- Frederik Schüler <fs@debian.org>  Tue, 13 Apr 2010 13:02:57 +0200

strace (4.5.19-2) unstable; urgency=low

  * Add sparc64 to the architectures list, closes: #560062
  * Fix FTBFS, thanks to Aurelien Jarno <aurelien@aurel32.net> for pointing
    out the solution. Closes: #560516
  * Rebuild as normal package, closes: #566968
  * Update standards-version to 3.8.3.
  * Lower package priority to optional, matching the archive override.
  * Add watch file.

 -- Frederik Schüler <fs@debian.org>  Tue, 26 Jan 2010 12:20:51 +0100

strace (4.5.19-1) unstable; urgency=low

  [ Dmitry V. Levin ]
  * New upstream release.
    + Fixed FTBFS on armel, closes: #520084, #535564
    + Marked sendfile(2) as a network syscall, closes: #509499
    + Fixed syscall numbers for tee and sync_file_range, closes: #503124
    + Corrected accept(2) decoding, closes: #507573
    + Changed strace to exit/kill with traced process
      exitcode/signal, closes: #37665

  [ Frederik Schüler ]
  * Move myself from uploaders to maintainers, and drop Roland from the list,
    closes: #521458
  * Apply hppa fixes, thanks to Carlos O'Donell <carlos@systemhalted.org>
    and Helge Deller <deller@gmx.de> for the fixes, closes: #546619, #437928
  * Update standards-version to 3.8.1.

 -- Frederik Schüler <fs@debian.org>  Mon, 05 Oct 2009 22:39:54 +0200

strace (4.5.18-1) unstable; urgency=low

  * New upstream release, closes: #515655
    + Fix FTBFS, closes: #518852
  * Backported patch from CVS: Fix support for NUL-terminated
    string, closes: #508484
  * Build-depend on debhelper (>= 7.0.0).

 -- Frederik Schüler <fs@debian.org>  Mon, 09 Mar 2009 14:39:42 +0100

strace (4.5.17+cvs080723-2) unstable; urgency=low

  * Pull Fix for sparc FTBFS from CVS, closes: #492774
  * Make strace64 priority extra.

 -- Frederik Schüler <fs@debian.org>  Sat, 02 Aug 2008 10:36:59 +0200

strace (4.5.17+cvs080723-1) unstable; urgency=low

  * New upstream cvs snapshot.
    - fixes arm and armel FTBFS.

 -- Frederik Schüler <fs@debian.org>  Wed, 23 Jul 2008 15:23:22 +0200

strace (4.5.17-1) unstable; urgency=low

  * New upstream release.

 -- Frederik Schüler <fs@debian.org>  Sat, 19 Jul 2008 21:38:30 +0200

strace (4.5.16+cvs20080708-2) unstable; urgency=low

  * Rerun autotools in correct order.
  * Add strace64 package on i386, powerpc, s390 and sparc,
    closes: #491167, #491188

 -- Frederik Schüler <fs@debian.org>  Thu, 17 Jul 2008 17:21:27 +0200

strace (4.5.16+cvs20080708-1) unstable; urgency=low

  * New upstream snapshot.
    + Fix chmod/chown typo in debian/rules, closes: #459255.
    + Install strace-graph too, closes: 469068.
    + Fix m68k build, closes: 456879.
    + Arm updates, closes: #441000.
    + fix build on mips/mipsel, closes: #448802.
    + show poll() parameters before blocking, closes: #369651.
    + use dh_strip instead of install -s, closes: #438055, #396682.
    + fix sparc build, closes: #469379.
  * Acknowledge NMU, closes: #469380.
  * Remove Wichert Akkerman from uploaders list.
  * Bump standards version to 3.8.0.
    - Add Homepage field.
  * Add dh_md5sums call, closes: #439428.
  * Fix dpkg-gencontrol call.
  * Update debian/copyright.

 -- Frederik Schüler <fs@debian.org>  Tue, 01 Jul 2008 23:05:51 +0200

strace (4.5.16-1) unstable; urgency=low

  * New upstream version.
    + 64-bit builds, closes: #435303.
    + LFS build fix, closes: #385310.
    + Fix multithread issues
    + Fix spurious SIGSTOP on early interrupt.
    + Fix utime for biarch.
    + Fix -u error message.
    + Better futex syscall printing.
    + Fix argv/envp printing with small -s settings, and for biarch.
    + New syscalls: getcpu, eventfd, timerfd, signalfd, epoll_pwait,
      move_pages, utimensat.

 -- Roland McGrath <frob@debian.org>  Fri, 03 Aug 2007 03:24:21 -0700

strace (4.5.15-1) unstable; urgency=high

  [ Roland McGrath ]
  * New upstream version.
    + Fix -ff -o behavior, closes: #353935.
    + Fail when nonoption args follow -p switches, closes: #361302.
    + Fix semtimedop, closes: #340239.
    + ARM support fixes, closes: #360152, #360154.

  [ Frederik Schüler ]
  * Fix configure script, closes: #428997

 -- Frederik Schüler <fs@debian.org>  Fri, 22 Jun 2007 16:28:08 +0000

strace (4.5.14-2) unstable; urgency=low

  * New comaintainer.
  * Fix build failure with linux-2.6.18, thanks to Andreas Henriksson for the
    patch, closes: #392556.
  * Fix build with libc6 2.5.
  * Acknowledge NMUs, closes: #315500, #355733

 -- Frederik Schüler <fs@debian.org>  Thu, 26 Oct 2006 22:11:25 +0200

strace (4.5.14-1) unstable; urgency=low

  * New upstream version.
    + Fix crash in printing sysctl, closes: #339117.
    + Respect DEB_BUILD_OPTIONS=nostrip, closes: #325132.
    + Fix ipc syscall decoding, closes: #340239.
    + Add missing source files to tarball, closes: #336197.
    + Build on armeb, closes: #335681.

 -- Roland McGrath <frob@debian.org>  Mon, 16 Jan 2006 22:17:38 -0800

strace (4.5.13-1) unstable; urgency=low

  * New upstream version.
    + Fix m68k build, closes: #315500.
    + Fix setsockopt decoding on 64-bit.
    + Fix typos in socket option name strings.
    + Display more IPV6 socket options by name.
    + Don't display inappropriate syscalls for -e trace=file.
    + New selector type -e trace=desc for file-descriptor using calls.
    + Fix 32-bit old_mmap syscall decoding on x86-64.
    + Fix errors detaching from multithreaded process on interrupt.
    + Note 4.5.12 fix for crash handling bad signal numbers.

 -- Roland McGrath <frob@debian.org>  Wed,  3 Aug 2005 04:41:49 -0700

strace (4.5.12-1) unstable; urgency=low

  * New upstream version.
    + Build on ppc64, closes: #301089.
    + Refuse negative -s argument value, closes: #303256.
    + Fix known syscall recognition for IA32 processes on x86-64.
    + Fix bad output for ptrace on x86-64.
    + Fix potential buffer overruns.
    + Make some diagnostics more consistent.
    + Update PowerPC system calls.
    + Better printing for Linux aio system calls.
    + Don't truncate statfs64 fields to 32 bits in output.
    + Cosmetic code cleanups.

 -- Roland McGrath <frob@debian.org>  Wed,  8 Jun 2005 13:52:39 -0700

strace (4.5.11-1) unstable; urgency=low

  * New upstream version.
    + Update MIPS system call table, closes: #256684.
    + Fix build on s390 and sparc, closes: #294172, #293564.
    + Fix select handling on nonstandard fd_set sizes, closes: #65654, #284290.
    + Don't print errors for null file name pointers, closes: #63093.
    + Fix initial execve output with -i.
    + Fix build nits, closes: #300598.

 -- Roland McGrath <frob@debian.org>  Tue, 22 Mar 2005 15:12:22 -0800

strace (4.5.9-1) unstable; urgency=low

  * New upstream version.
    + Fix potential crash in getxattr printing, closes: #283704.
    + Improve socket ioctl printing, closes: #192164.
    + Fix sparc build, closes: #278449.
    + Update ia64 syscall list.
    + Fix x86_64 syscall argument extraction for 32-bit processes.
    + Fix -e signal=NAME parsing.
    + Fix x86_64 exit_group syscall handling.
    + Improve mount flags printing.
    + Support symbolic printing of x86_64 arch_prctl parameters.
    + Add strace-udeb package for Debian installer debugging, closes: #268294.

 -- Roland McGrath <frob@debian.org>  Fri,  4 Feb 2005 01:53:01 -0800

strace (4.5.8-1) unstable; urgency=low

  * New upstream version.
    + Fix strace64 man page symlink, closes: #269220.
    + Update syscall tables for Alpha, ARM, HPPA, closes: #273887.
    + Build strace64 for s390, closes: #271500.
    + Fix some endian issues in 64-bit argument output on 32-bit machines.
    + Support new Linux syscalls mbind, set_mempolicy, get_mempolicy, waitid.
    + Support Linux syscalls fadvise64, fadvise64_64, and epoll_*.
    + Improve ioctl command name matching.
    + Print RTC_* ioctl structure contents.
    + Support newer RLIMIT_* values.
    + Print struct cmsghdr details in sendmsg.

 -- Roland McGrath <frob@debian.org>  Tue, 19 Oct 2004 18:05:28 -0700

strace (4.5.7-1) unstable; urgency=low

  * New upstream version.
    + Update man page about -c, closes: #254438.
    + Include pread/pwrite calls in -e read/write tracing, closes: #239947.
    + Update SO_* and IP_* value lists, closes: #171653.
    + Print attribute values in *xattr system calls.
    + Print clock_t values symbolically in Linux clock_* system calls.
    + Show PER_* values correctly, closes: #40588.
    + Fix `strace64' build on sparc, closes: #254728.

 -- Roland McGrath <frob@debian.org>  Tue, 31 Aug 2004 01:41:19 -0700

strace (4.5.6-1) unstable; urgency=low

  * New upstream version.
    + Update Linux ioctl lists and decode some more network ioctls.
    + Fix `quotactl' argument decoding on 64-bit.
    + Linux/SPARC64 support, closes: #254728.

 -- Roland McGrath <frob@debian.org>  Mon, 12 Jul 2004 00:18:32 -0700

strace (4.5.5-1) unstable; urgency=low

  * New upstream version.
    + Fix support for 32-bit (i386) binaries on Linux/AMD64.

 -- Roland McGrath <frob@debian.org>  Sun, 27 Jun 2004 22:19:15 -0700

strace (4.5.4-1) unstable; urgency=low

  * Build package on amd64, closes: #246568.
  * New upstream version.
    + Recognize more PF_* and AF_* values, closes: #250506.
    + Other  fixes.

 -- Roland McGrath <frob@debian.org>  Thu,  3 Jun 2004 19:35:37 -0700

strace (4.5.3-1) unstable; urgency=low

  * New upstream version.
    + Finish fix for -f on Linux/S390(x).
    + Print extra wait status bits, closes: #240062.

 -- Roland McGrath <frob@debian.org>  Fri, 16 Apr 2004 15:27:43 -0700

strace (4.5.2-1) unstable; urgency=low

  * New upstream version.
    + Check for errors writing to -o file, closes: #218762
    + Print multiple ioctl code matches on Linux.
    + Various other fixes.
    + Update typos and obsolete bits in man page, closes: #217008, #223390
    + Fix compilation problems with newer kernel headers, closes: #223207
    + Update HPPA system calls, closes: #231632
    + Fix PID in messages, closes: #229802
    + Fix s390 brokenness in 4.5, closes: #226098

 -- Roland McGrath <frob@debian.org>  Mon,  1 Mar 2004 22:44:55 -0800

strace (4.5-1) unstable; urgency=low

  * New upstream version.
    + Fix mlock syscall printing.
    + MIPS & S390 updates.
    + Print names for SIGRT_* in sets.

 -- Roland McGrath <frob@debian.org>  Wed, 24 Sep 2003 15:20:18 -0700

strace (4.4.99-1) unstable; urgency=low

  * New upstream version.
    + Alpha updates.
    + Add a few more new Linux 2.5 system calls.
    + Stephen Thomas contributed a port to Linux/SH64.
    + Print protocol names for PF_INET6 sockets.

 -- Roland McGrath <frob@debian.org>  Thu, 17 Jul 2003 02:04:43 -0700

strace (4.4.98-1) unstable; urgency=low

  * New upstream version.
    + Fixes clone argument bugs.
    + Fixes sem* printing bugs.
    + Fixes -e argument parsing, closes: #188379.
    + Fixes hanging parent in odd wait cases, closes: #47608, #109656.
    + Fixes -q defaulting, closes: #47113, #153678.
    + Fixes trying to execute directories, closes: #137103.
    + Updates ARM support, thanks to Russell King.
    + Updates S390/S390x support.
  * Bump standards-version to 3.5.10

 -- Roland McGrath <frob@debian.org>  Mon,  2 Jun 2003 12:26:29 -0700

strace (4.4.96-1) unstable; urgency=low

  * New upstream version.
    + Handles yet more new Linux 2.5 system calls.
    + Fixes x86_64 and ia64 clone printing.
    + Updates SH port.

 -- Roland McGrath <frob@debian.org>  Sun, 30 Mar 2003 17:14:34 -0800

strace (4.4.95-1) unstable; urgency=low

  * New upstream version.
    + Fixes printing of getresuid and getresgid values.

 -- Roland McGrath <frob@debian.org>  Mon, 24 Feb 2003 02:50:43 -0800

strace (4.4.94-1) unstable; urgency=low

  * New upstream version.
    + New option -E to set environment variables.
    + Build fixes for sparc, closes: #178636.

 -- Roland McGrath <frob@debian.org>  Wed, 19 Feb 2003 19:12:40 -0800

strace (4.4.93-1) unstable; urgency=low

  * New upstream version.
    + Grok new quotactl arguments, closes: #154067.
    + Fix m68k build problem, closes: #176528.
    + Old bugs prior release actually closes: #154068.
    + Fix S390 bugs with -f, and bugs with execve.
  * Switched to non-native packaging (empty .diff), closes: #176388.

 -- Roland McGrath <frob@debian.org>  Tue, 21 Jan 2003 12:22:08 -0800

strace (4.4.92-1) unstable; urgency=low

  * New upstream version.
    + Updated config.guess and config.sub, closes: #176241.
    + Several fixes for PPC, closes: #144326.
    + Fixed ptrace output for unknown requests, closes: #77728.
    + Fixed output of getdents64, truncate64, ftruncate64, closes: #169528.
    + Old bugs the last release actually closes: #153750, #38467, #109993,
      #109815, #104594, #113087, #134803, #166622, #96356, #94725, #32147,
      #32798, #36801, #41066, #81637, #138300, #143791.

 -- Roland McGrath <frob@debian.org>  Tue, 14 Jan 2003 02:02:44 -0800

strace (4.4.91-1) unstable; urgency=low

  * New upstream version.
    + Fixes -f on x86-64.

 -- Roland McGrath <frob@debian.org>  Fri, 10 Jan 2003 12:55:34 -0800

strace (4.4.90-1) unstable; urgency=low

  * New maintainer.
  * New upstream version.

 -- Roland McGrath <frob@debian.org>  Fri, 10 Jan 2003 01:58:40 -0800

strace (4.4-1.2) unstable; urgency=low

  * NMU
  * Quick one-liner to allow building on the ARM. Closes: #109993.
  * Re-ran autoconf, hopefully I didn't break other arches.

 -- Anand Kumria <wildfire@progsoc.org>  Mon,  1 Oct 2001 14:22:25 +1000

strace (4.4-1.1) unstable; urgency=low

  * NMU.
  * Added patch from David Mosberger which fixes some ia64 issues.
    Closes: #113087.
  * Added ia64-specific Build-Depends on libc6.1-dev.  Closes:
    #109815.
  * Ran autoheader, so the s390 patch applies.  Closes: #104594.

 -- Jeff Licquia <jlicquia@progeny.com>  Tue, 25 Sep 2001 13:15:28 -0500

strace (4.4-1) unstable; urgency=low

  * New upstream version
    + Added S390 support. Closes: Bug#104594
    + New config.{guess,sub}. Closes: Bug#92532
    + LFS support for Linux/sparc. Closes: Bug#99215
    * Works on IA64 again. Closes: Bug#103854
  * Don't override CFLAGS in debian/rules
  * Remove rules to create configure & friends. Closes: Bug#92483

 -- Wichert Akkerman <wakkerma@debian.org>  Sun, 19 Aug 2001 14:10:58 +0200

strace (4.3-3.1) unstable; urgency=low

  * copy in new config.{guess,sub} to get support for new architectures.
    Closes: #94725

 -- LaMont Jones <lamont@debian.org>  Mon,  9 Jul 2001 21:39:34 -0600

strace (4.3-3) unstable; urgency=low

  * Update architecture list

 -- Wichert Akkerman <wakkerma@debian.org>  Sat, 14 Apr 2001 10:42:19 +0200

strace (4.3-2) unstable; urgency=low

  * Run cvsbuild so we don't need to run autohead & friends
  * Sync to current CVS

 -- Wichert Akkerman <wakkerma@debian.org>  Fri, 13 Apr 2001 19:08:53 +0200

strace (4.3-1) unstable; urgency=low

  * New upstream version
  * Updated Build-Depends to use a recent glibc so we get the 2.4 kernel
    headers
  * Changed Architecture so we only build on Linux
  * Include section and priority in control info

 -- Wichert Akkerman <wakkerma@debian.org>  Sun,  1 Apr 2001 16:35:32 +0200

strace (4.2-4) frozen unstable; urgency=low

  * Actually install postinst and prerm so we get the proper /usr/doc/strace
    symlink

 -- Wichert Akkerman <wakkerma@debian.org>  Thu, 17 Feb 2000 21:49:17 +0100

strace (4.2-3) frozen unstable; urgency=low

  * Fix typo in aclocal.m4 that prevented compilation on architectures without
    LFS

 -- Wichert Akkerman <wakkerma@debian.org>  Sun, 13 Feb 2000 01:19:11 +0100

strace (4.2-2) frozen unstable; urgency=low

  * only include linux/ptrace.h if sys/reg.h hasn't been found by configure,
    Closes: Bug# 39556

 -- Wichert Akkerman <wakkerma@debian.org>  Thu, 27 Jan 2000 03:22:55 +0100

strace (4.2-1) frozen unstable; urgency=low

  * New upstream version:
    + Builds correctly on glibc2.0 again, Closes: Bug# 51648
    + Small y2k fix in printtimes, Closes: Bug# 54592
    + semop is handled now, Closes: Bug# 52684

 -- Wichert Akkerman <wakkerma@debian.org>  Fri, 21 Jan 2000 21:45:41 +0100

strace (4.1-1) unstable; urgency=low

  * New upstream version
  * Bump standards-version to 3.1.0
  * FHS 2.1 compliant

 -- Wichert Akkerman <wakkerma@debian.org>  Fri, 26 Nov 1999 01:42:07 +0100

strace (4.0-1) unstable; urgency=low

  * New upstream version

 -- Wichert Akkerman <wakkerma@debian.org>  Fri,  9 Jul 1999 16:12:34 +0200

strace (3.99.1-1) unstable; urgency=low

  * New upstream version, second pre-release for 4.0

 -- Wichert Akkerman <wakkerma@debian.org>  Wed,  9 Jun 1999 15:20:42 +0200

strace (3.99-1) unstable; urgency=low

  * New upstream maintainer (me :)
  * New upstream version, pre-release for strace 4.0
  * See upstream changelog for changes
  * Build with glibc2.1

 -- Wichert Akkerman <wakkerma@debian.org>  Tue, 27 Apr 1999 14:00:15 +0200

strace (3.1.0.1-12) unstable; urgency=low

  * Only i386 has a LDT, so check for architecture in mem.c (Bug# 32798)
  * Check for nsignals properly, closes: #34445
  * Fix check for overruns in umove*, patch by Nate Eldredge <nate@cartsys.com>

 -- Wichert Akkerman <wakkerma@debian.org>  Mon, 15 Mar 1999 00:43:14 +0100

strace (3.1.0.1-11) unstable; urgency=low

  * Merge some ARM stuff that got stuck in my mailbox

 -- Wichert Akkerman <wakkerma@debian.org>  Sun, 31 Jan 1999 13:04:13 +0100

strace (3.1.0.1-10) unstable; urgency=low

  * Move sys_poll to the DONE section in linux/dummy.h
  * Support subarchitectures for alpha (Bug# 32147)
  * Incorporate changes from Ulrich Drepper
    + up number of supported personalities on Linux sparc to 3
    + add O_DIRECT, O_LARGEFILE and O_DIRECTORY to openmodes
    + change prefix for printxval to SEEK_ in sys_lseek
    + add a support for a whole bunch of syscalls
    + updated sys_pread and sys_pwrite for SVR4
    + handle sys_delete_module properly
    + change SYS_socket_subcall to 230 for non-powerpc architectures
    + sys_chown is now lchown
    + looks like a whole lot of syscalls is moved from 180 to 230
    + Revamp a lot of the signal handling code
    + handle sys_clone
    + Lots more (it was a 6494-line patch and I'm too lazy to put all
      changes in here..)
  * Please note you need to have 2.1 or 2.2 kernel sources in /usr/src/linux
    in order to compile this.

 -- Wichert Akkerman <wakkerma@debian.org>  Fri, 29 Jan 1999 02:04:12 +0100

strace (3.1.0.1-9) unstable; urgency=low

  * Add support for poll() systemcall

 -- Wichert Akkerman <wakkerma@debian.org>  Thu, 31 Dec 1998 16:03:44 +0100

strace (3.1.0.1-8) frozen unstable; urgency=low

  * Use new_stat from libc6 now, except for powerpc and sparc

 -- Wichert Akkerman <wakkerma@debian.org>  Thu, 24 Dec 1998 11:35:32 +0100

strace (3.1.0.1-7) frozen unstable; urgency=low

  * Fix sparc support
  * Display nanosleep call correctly (Bug# 25904)
  * Honour -v flag in printargs (Bug# 10426)
  * Play with #define to get proper kernel struct stat
  * Compile with 2.1.131 kernel source

 -- Wichert Akkerman <wakkerma@debian.org>  Sat, 19 Dec 1998 15:02:14 +0100

strace (3.1.0.1-6) frozen unstable; urgency=low

  * Set NSIG correctly for ARM
  * Include strace-graph script from Richard Braakman <dark@debian.org>
    as an example. Try it and be amazed!
  * Fix sigaction problem, patch from Topi Miettinen
    <Topi.Miettinen@medialab.sonera.net>

 -- Wichert Akkerman <wakkerma@debian.org>  Mon,  7 Dec 1998 02:10:30 +0100

strace (3.1.0.1-5) unstable; urgency=low

  * Patched from Richard Braakman <dark@debian.org>:
    + use correct dirent.h on Linux
    + remove debugging code left from the powerpc patch
    + fix output for execve when -v is used

 -- Wichert Akkerman <wakkerma@debian.org>  Fri, 13 Nov 1998 15:59:17 +0100

strace (3.1.0.1-5) unstable; urgency=low

  * Add location of upstream sources to the copyright
  * Merged ARM architecture support from Jim Studt <jim@federated.com>

 -- Wichert Akkerman <wakkerma@debian.org>  Mon,  9 Nov 1998 16:43:24 +0100

strace (3.1.0.1-4) unstable; urgency=low

  * More ppc patches from Daniel Jacobowitz <dan@debian.org>

 -- Wichert Akkerman <wakkerma@debian.org>  Mon, 12 Oct 1998 00:59:44 +0200

strace (3.1.0.1-3) unstable; urgency=low

  * Added support for sys_query_module, patch from Brian J. Murrell
    <brian@interlinx.bc.ca>
  * Preserve timestamps for documentation when installed
  * Incorporate patches from Daniel Jacobowitz <dan@debian.org>:
    + powerpc patches
    + Patches include changing SYS_socket_subcall and SYS_ipc_subcall,
      check for stray syscall exit after execv, and completely regenerated
      syscall, errno, and ioctl lists.
    + Decode capget and capset arguments.

 -- Wichert Akkerman <wakkerma@debian.org>  Sun, 11 Oct 1998 22:42:56 +0200

strace (3.1.0.1-2) unstable; urgency=low

  * Patch to support sparc, courtesy of RedHat
  * Cleaned up some stuff the patch left broken
  * Fix some more compilation-issues for IPX with current kernels

 -- Wichert Akkerman <wakkerma@debian.org>  Fri, 24 Jul 1998 22:53:43 +0200

strace (3.1.0.1-1) unstable; urgency=low

  * New (actually very old) upstream version. Fixes something we
    already had fixed
  * Compiled with current kernel-headers from libc6-dev
  * Fixed spelling-error
  * Compress changelog
  * Bumped standard-version to 2.4.1.0

 -- Wichert Akkerman <wakkerma@debian.org>  Wed, 22 Jul 1998 15:53:23 +0200

strace (3.1-14) unstable; urgency=low

  * Don't let libc6 trick us anymore with {f,l,}stat() calls
  * Fix configure.in to support PentiumII processors

 -- Wichert Akkerman <wakkerma@debian.org>  Mon, 22 Jun 1998 20:17:20 +0200

strace (3.1-13) unstable; urgency=low

  * Corrected error on PowerPC patch that broke other archictectures
    (Bug# 13837)

 -- Wichert Akkerman <wakkerma@debian.org>  Tue, 14 Oct 1997 15:41:29 +0200

strace (3.1-12) unstable; urgency=low

  * PowerPC patches by Klee Dienes (Bug# 10788, 10790)
  * Create correct md5sums (Bug# 13363)
  * Put changelog in correct place (Bug# 13363)
  * Pristine sources

 -- Wichert Akkerman <wakkerma@debian.org>  Mon,  6 Oct 1997 15:42:25 +0200

strace (3.1-11) unstable; urgency=low

  * Ported to libc6 / glibc2 (Bug# 11729)
  * Compress manpage

 -- Wichert Akkerman <wakkerma@wi.leidenuniv.nl>  Fri,  1 Aug 1997 00:13:38 +0200

strace (3.1-10) unstable; urgency=low

  * Install upstream changelog
  * Added dependencies to control file for libc
  * Added md5sums to .deb file

 -- Wichert Akkerman <wakkerma@debian.org>  Fri, 11 Jul 1997 12:26:12 +0200

strace (3.1-9) stable; urgency=low

  * Fixed bug with hanging children. Patch by Matthias Urlichs
  * Added some more constants to net.c.
  * glibc patches, courtesy of Klee Dienes (Bug# 7735)

 -- Wichert Akkerman <wakkerma@debian.org>  Mon, 21 Apr 1997 11:59:45 +0200

strace (3.1-8) frozen unstable; urgency=low

  * Added detection of ROSE networking

 -- Wichert Akkerman <wakkerma@wi.leidenuniv.nl>  Tue, 12 Nov 1996 22:21:22 +0100

strace (3.1-7) stable; urgency=low

  * Install manpage with correct mode (0644) (Bug#4813)
  * Renamed debian changelog to changelog.Debian

 -- Wichert Akkerman <wakkerma@wi.leidenuniv.nl>  Sat, 26 Oct 1996 18:15:41 +0200

strace (3.1-6) stable; urgency=low

  * Small patch for compilation on kernels 2.1.0 and later (see signal.c)

 -- Wichert Akkerman <wakkerma@wi.leidenuniv.nl>  Fri, 18 Oct 1996 00:28:47 +0200

strace (3.1-5) stable unstable; urgency=low

  * Moved to new packagingformat
  * Fixed umoven bug (Bug# 4523)
  * Corrected number of parameters for mmap systemcall (bug# 4508)

 -- Wichert Akkerman <wakkerma@wi.leidenuniv.nl>  Sat, 23 Sep 1996 23:33:58 +0200

strace (3.1-4) unstable; urgency=low

  * Fixed changestemplate

 -- Wichert Akkerman <wakkerma@wi.leidenuniv.nl>, Thu Sep 12 14:59:44 MET DST 1996

strace (3.1-3) unstable; urgency=low

  * Revamped debian files

 -- Wichert Akkerman <wakkerma@wi.leidenuniv.nl>, Thu Jul 11 20:19:11 MET DST 1996


strace (3.1-2) unstable; urgency=low
  * Added some #ifdef's around IPX stuff to make it compilable on non-Linux
    systems.
  * changed debian.control and debian.rules to conform to new debian naming
    schemes
  * added architecture-option to debian.rules and debian.control

 -- Wichert Akkerman <wakkerma@wi.leidenuniv.nl>

strace (3.1-1) unstable; urgency=low

  * Moved to new upstream version
  * added more protocol families to domains
  * added IPIP-protocol to protocols
  * added MSG_PROXY and MSG_CTRUNC to msg_flags
  * added SO_BSDCOMPAT and SO_REUSEPORT to sockoptions
  * added IP, IPX and TCP-options
  * added IP, IPX and TCP support to get-/setsockopt()
  * added IPX support

 -- Wichert Akkerman <wakkerma@wi.leidenuniv.nl>
