2015-10-19  James Hunt  <jamesodhunt@ubuntu.com>

	* man/procenv.1: Replace hard-coded utf character with unicode
	  escape equivalent to suppress warning on Fedora.
	* src/tests/check_all_args.in: Replace heuristics to remove troff
	  escapes with a safer approach.
	* src/procenv.c: show_uname(): Fix incorrect check on domainname,
	  identified by Coverity.

2015-09-28  James Hunt  <jamesodhunt@ubuntu.com>

	* src/procenv.c:
	  - Correct output order for 'libc:' and 'misc:'.
	* src/procenv.h:
	  - Bump PROCENV_FORMAT_VERSION.
	* src/tests/check_all_args.in:
	  - Ensure output sections are sorted and not duplicated.

2015-09-27  James Hunt  <jamesodhunt@ubuntu.com>

	* src/Makefile.am:
	  - Pass path to man page to tests.
	* src/tests/check_all_args.in:
	  - Set LC_ALL to the lang value under test.
	  - Actually save the original LANG value.
	  - 'set -e' fix.
	  - Add test to compare options documented by 'procenv --help' with
	    those in the man page to ensure no discrepancies.

2015-09-25  James Hunt  <jamesodhunt@ubuntu.com>

	* src/procenv.c:
	  - show_libc(): New function for new '--libc'/'-B'
	    option.
	  - show_compiler(): Added following features:
	    - _DEFAULT_SOURCE
	    - _LARGEFILE_SUPPORT
	    - __STDC_VERSION__
	* configure.ac: Add '--enable-reproducible-build' option which
	  suppresses the display of values that will change between
	  builds:
	  - __DATE__
	  - __TIME__
	  - __TIMESTAMP__

2015-08-24  James Hunt  <james.hunt@ubuntu.com>

	* src/tests/check_all_args.in: Actually disable tests if non-existent
	  locale found.

2015-08-23  James Hunt  <james.hunt@ubuntu.com>

	* src/procenv.c: Coverity fixes:
	  - get_mtu(): Drop useless goto and explicit zero return on error.
	  - get_canonical(): safer string termination.
	  - Allow '--indent-char' to be UTF-8.
	* src/tests/check_all_args.in:
	  - New single-character tests for:
	    - '--indent-char'.
	    - '--separator'.
	  - New multi-character tests for:
	    - '--indent-char'.
	    - '--separator'.
	    - '--crumb-separator'.
	  - Check default locale is valid before attempting to use it.

2015-08-22  James Hunt  <james.hunt@ubuntu.com>

	* src/procenv.h: Use __func__ rather than __FUNCTION__ to appease gcc 5.2.

2015-08-21  James Hunt  <james.hunt@ubuntu.com>

	* src/procenv.c: save_locale(): Specify 2nd arg to setlocale()
	  as "" since the original NULL was not only incorrect, it caused
	  a UTF-8 '--separator' or '--crumb-separator' to cause a crash.
	* src/tests/check_all_args.in:
	  - New tests for UTF-8 '--separator' and '--crumb-separator'.
	  - Show language test being run with.
	  - Ensure full command-line shown on failure.

2015-07-11  James Hunt  <james.hunt@ubuntu.com>

	* src/procenv.c: show_security_module_context_linux():
	  Don't free @mode returned by aa_gettaskcon(2) since it forms
	  part of the allocation returned in @context.

2015-07-08  James Hunt  <james.hunt@ubuntu.com>

	* src/procenv.c:
	  - Update copyright.
	  - show_mounts_linux(): Don't truncate fsid.
	  - show_mounts_bsd(): Don't truncate fsid.

2014-09-19  James Hunt  <james.hunt@ubuntu.com>

	* src/procenv.c: show_security_module_linux(): check HAVE_APPARMOR,
	  not HAVE_SYS_APPARMOR_H to allow building on Ubuntu Lucid (which does
	  not provide aa_is_enabled()).

2014-09-18  James Hunt  <james.hunt@ubuntu.com>

	* man/procenv.1:
	  - Bump date.
	  - Highlight non-display options.
	* src/procenv.c:
	  - show_capabilities_linux(): Added CAP_AUDIT_READ.
	  - main(): Allow '--exec' to come at the end of the command-line
	    (the only non-display option this is valid for).
	* src/procenv.h: die(): Output to stderr, not stdout.
	* src/tests/check_all_args.in:
	  - New test to ensure procenv can exec itself.
	  - Enable tests to ensure procenv detects illegal placement of
	    non-display options after any display option.
	  - Fixed check on unknown capabilities.
	  - Test to ensure a non-display option is disallowed after
	    a display option is now more comprehensive.
	  - src/tests/check_all_args.in: Ensure an empty environment is tolerated.

2014-08-19  James Hunt  <james.hunt@ubuntu.com>

	* src/procenv.c: Restore Coverity 0.0 defect density:
	  - translate(): Cleanup on error path.
	  - pstring_create(): Cleanup on error path.
	* src/tests/check_all_args.in: Warn if more capabilities found
	  than procenv is unaware of.

2014-08-14  James Hunt  <james.hunt@ubuntu.com>

	* man/procenv.1: More examples.
	* configure.ac: Add profiling for debug mode.

2014-07-04  James Hunt  <james.hunt@ubuntu.com>

	* src/procenv.c: Correct guard used around procenv_getcpu()
	  and split_fields().

2014-07-03  James Hunt  <james.hunt@ubuntu.com>

	* src/pr_list.c: 
	  - New functions:
	    - pr_list_append_str()
	    - pr_list_appendn_str()
	    - pr_list_prependn_str()
	* src/procenv.c: 
	  - procenv_getcpu(): A {RHEL,Centos} 5-pecific hack to fully
	    resolve LP: #1333194 by working around fact that glibc on that
	    platform does not provide sched_getcpu(3).

2014-06-26  James Hunt  <james.hunt@ubuntu.com>

	* TODO: Updates.
	* src/procenv.c:
	  - More fixes for LP: #1333194:
	    - show_capabilities_linux(): Guard PR_CAPBSET_READ.
	    - cap_get_bound(): Guard PR_CAPBSET_READ.
	* src/procenv.h: Define CAP_LAST_CAP when using old versions of libcap.

2014-06-26  James Hunt  <james.hunt@ubuntu.com>

	* src/procenv.c:
	  - show_numa_memory():
	    - Fix for systems using old numa libraries (RHEL5). This should
	      really fix LP: #1333194.
	  - show_security_module():
	    - Corrected SELinux checking code.
	    - Added MLS detail.
	  - show_shared_mem_linux():
	    - Compiler appeasement.
	    - Added 'swap_attempts' and 'swap_successes' (apparently now unused,
	      but displayed for completeness).
	  - show_msg_queues_linux(): Compiler appeasement.
	* src/procenv.h:
	  - PROCENV_FORMAT_VERSION: Bumped to v8.
	  - Added PROCENV_NUMA_BITMASK_ISSET() macro to handle both old and new
	    libnuma API's.

2014-06-25  James Hunt  <james.hunt@ubuntu.com>

	* src/procenv.c:
	  - get_mtu(): Ensure unsigned long used for ioctl(2) request parameter
	    (caught by FreeBSD's "WARNING ioctl sign-extension ioctl" console
	    message).
	  - get_mac_address(): As above.
	  - show_uname(): Handle unset uts.domainname without an
	    assertion to cope on OpenSuSE 13.1 systems.

2014-06-24  James Hunt  <james.hunt@ubuntu.com>

	* configure.ac: Add header checks for selinux and apparmor (LP: #1333182).
	* procenv.spec.in: Added 'libselinux-devel' to BuildRequires.
	* src/Makefile.am: Use $(top_builddir) and $(subdir) rather than
	  $(abs_builddir) since the RHEL5 / Centos 5 version of automake don't
	  define the latter.
	* src/procenv.c:
	  - Fix building on RHEL5 / Centos 5 by guarding undefined personality
	    symbols (LP: #1333194).
	  - Guard code based on CPU_ALLOC(3) availability.
	  - Guard capabilities, SELinux and AppArmor code.
	  - show_numa_memory(): Use entry() rather than show(), the latter of
	    which could have cause invalid formatted output if the NUMA policy
	    could not be queried.
	  - show_sizeof(): Add missing typedefs from stdint.h.
	* src/procenv.h: SELinux and capability guards.
	* src/tests/check_all_args.in:
	  - Don't die if JSON or XML checker are unavailable - just run
	    what tests are possible.
	  - Test using C locale and current (if different).

2014-06-09  James Hunt  <james.hunt@ubuntu.com>

	* procenv.spec.in: Fix for spec file on RHEL - thanks Dave Love
	  (LP: #1327594).

2014-06-07  James Hunt  <james.hunt@ubuntu.com>

	* src/procenv.c: sysconf and confstr cleanups.
	* src/procenv.h:
	  - Removed now unecessary macros.
	  - Bumped PROCENV_FORMAT_VERSION.

2014-06-04  James Hunt  <james.hunt@ubuntu.com>

	* src/procenv.c:
	  - show_pathconfs(): Guard all defines.
	  - show_confstrs(): Guard all defines.
	* src/procenv.h: Added _show_confstr() macro to allow name to be
	  specified.

2014-06-03  James Hunt  <james.hunt@ubuntu.com>

	* src/procenv.c:
	  - Guard extended interfaces flags (IFF_*) since as of
	    kernel 3.15 they have been removed (LP: #1324256).
	  - show_all_groups(): Fixed possible memory leak - thanks Coverity.
	  - show_uname(): Added asserts.
	* src/tests/check_all_args.in: Temporary work-around for lp:1325494.

2014-03-27  James Hunt  <james.hunt@ubuntu.com>

	* TODO: Update.
	* src/procenv.c:
	  - get_arch(): Update for Sparc 64-bit (V9).
	  - show_capabilities_linux(): Move CAP_LAST_CAP out of the list and use
	    it as a count to avoid it being confused for an actual capability.

2014-03-20  James Hunt  <james.hunt@ubuntu.com>

	* man/procenv.1: Add reference to personality(2).
	* src/procenv.c: --misc: Add Linux personality type and flags.
	* src/procenv.h: Bump PROCENV_FORMAT_VERSION to 6 for format change.

2014-03-17  James Hunt  <james.hunt@ubuntu.com>

	* man/procenv.1: Add reference to libcap(3).
	* procenv.spec.in: Buid-depend on libcap-devel.
	* README: Update.

2014-03-14  James Hunt  <james.hunt@ubuntu.com>

	* src/procenv.c:
	  - show_mounts_linux(): Don't quote unknown canonical name.
	  - get_canonical(): Return value denoting if name was known.
	  - show_capabilities_linux():
	  - Use cap_get_bound() rather than prctl().
	  - Memory leak fix.
	* src/procenv.h: _show_capability(): 
	  - Use cap_get_bound() rather than prctl().
	  - Add "supported".

2014-03-13  James Hunt  <james.hunt@ubuntu.com>

	* NEWS: Corrected formatting.
	* TODO: Updates.
	* configure.ac: Link to libcap if available.
	* src/procenv.c:
	  - get_capability_by_flag(): New function to query a capability value
	    for a specified capability type.
	  - show_capabilities_linux():
	    - Make use of libcap calls.
	    - Add missing CAP_BLOCK_SUSPEND.
	    - Show "unknown" capabilities if detected (capabilities that the
	      running kernel supports which procenv doesn't know about).
	* src/procenv.h:
	  - PROCENV_FORMAT_VERSION: bumped to version 5 for capabilities output
	    format change.
	  - show_capability(): Now calls _show_capability().
	  - _show_capability(): Reworking of show_capability() macro that uses
	    libcap calls and works for unknowns too.

2014-01-31  James Hunt  <james.hunt@ubuntu.com>

	* configure.ac: Build procenv.spec from .in file to auto-update
	  version number.
	* procenv.spec.in: Renamed from procenv.spec.
	* src/procenv.c: show_capabilities_bsd(): Fixes to allow
	  building on FreeBSD 9.

2014-01-27  James Hunt  <james.hunt@ubuntu.com>

	* configure.ac: Check for FreeBSD Capsicum support.
	* man/procenv.1:
	  - --fds: Update for FreeBSD to mention Capsicum capabilities.
	  - --capabilities: Explain this option is for Linux capabilities only
	    (a different beast to Capsicum).
	  - SEE ALSO: Further references.
	  - Corrected BSD comment for --semaphores, --message-queues and
	    --shared-memory.
	* src/procenv.c:
	  - mntopt_map: Journaled Soft Updates fix for FreeBSD 8 and older.
	  - usage():
	    - Typo fix.
	  - show_fds_generic(): Added FreeBSD Capsicum capabilities for systems
	    which support it (FreeBSD 9+, assuming kernel is appropriately
	    configured).
	  - show_env(): Copy environ before sorting since modification is
	    disallowed.
	  - show_capabilities_bsd(): New function to query Capsicum capabilities.
	  - show_shared_mem_linux(): Fixed bug that incorrectly showed the
	    current process name rather than the last.
	* src/procenv.h:
	  - Bumped PROCENV_FORMAT_VERSION (format-version) to 3 for FreeBSD
	    capabilities.
	  - Capsicum macro.
	  - Replaced bool typedef with stdbool.h.

2014-01-23  James Hunt  <james.hunt@ubuntu.com>

	* procenv.spec: Added RPM specfile courtesy of Dave Love and
	  updated for 0.30 (LP: #1100967).
	* Makefile.am: Distribute spec file.

2014-01-22  James Hunt  <james.hunt@ubuntu.com>

	* src/procenv.c: show_cpu_affinities(): Initialise variable to
	  pacify clang on FreeBSD 10.

2014-01-14  James Hunt  <james.hunt@ubuntu.com>

	* src/procenv.c:
	  - get_tty_locked_status(): Assume unlocked if unable to query status
	    (for example on Sparc64 running 2.6.32-5 kernel).
	  - show_semaphores(): Calling semctl(SEM_INFO) without semun union was
	    causing subsequent call to semctl(SEM_STAT) to SIGSEGV on Sparc and
	    PPC architectures (Closes: #728684).

2014-01-13  James Hunt  <james.hunt@ubuntu.com>

	* configure.ac: Check for numa.h.
	* src/procenv.c: Allow building on Linux systems whose
	  architectures are not NUMA-capable.

2014-01-10  James Hunt  <james.hunt@ubuntu.com>

	* man/procenv.1: Updated dates.
	* src/pr_list.c: Added header.
	* src/pr_list.h: Added header.
	* src/procenv.c:
	  - Update date.
	  - show_cpu_affinities(): Fix for FreeBSD which does
	    not provide dynamic cpu sets (CPU_ALLOC(3) et al).
	  - get_arch(): Added PPCspe and PPC64LE.
	* src/procenv.h: Added header.

2014-01-08  James Hunt  <james.hunt@ubuntu.com>

	* src/procenv.c:
	  - show_cpu_affinities(): Fix for hyper-threaded systems
	    (LP: #1251209) - thanks Dave Love.
	  - show_numa_memory(): Fix memory leak (calling free(3) rather than
	    numa_free_nodemask()).
	  - show_sizeof():
	    - Added lots of missing standard types (as documented in types.h(P)).
	    - Sorted list.
	  - show_cgroups_linux(): Fixed memory leak caused by misuse of
	    strsep(3).

2013-12-06  James Hunt  <james.hunt@ubuntu.com>

	* configure.ac: AM_INIT_AUTOMAKE: Ensure automake v1.13 is
	  passed 'serial-tests'.

2013-12-04  James Hunt  <james.hunt@ubuntu.com>

	* src/tests/check_all_args.in: Fix to sections regex to avoid
	  matching the TERMCAP variable (which contains various nasty
	  characters).

2013-12-03  James Hunt  <james.hunt@ubuntu.com>

	* configure.ac:
	  - Put AC_COPYRIGHT onto one line for older automakes.
	  - Removed unused AC_TYPE_* checks.
	  - "Fix" to handle the automake 1.13 "serial-tests" fiasco
	     and always display test verbose test output.
	  - Conditionally use format-security compiler flag.
	* src/procenv.c: show_numa_memory(): Tell libnuma not to call exit(3). 
	* src/tests/check_all_args.in:
	  - Add debug handling.
	  - Use python rather than json_pp since the latter is not available
	    on older perl installations.

2013-12-02  James Hunt  <james.hunt@ubuntu.com>

	* src/procenv.c:
	  - show_mounts_linux(): Always initialise locals.
	  - show_compiler(): Guard __TIMESTAMP__ which isn't available
	    on old compilers.

2013-11-30  James Hunt  <james.hunt@ubuntu.com>

	* src/tests/check_all_args.in: Don't run XML tests if control
	  characters found in the environment (for example in $TERMCAP
	  when running under GNU Screen) since XMl validation will fail
	  (which is only partly reasonable given that such charactes
	  cannot be reliably encoded in XML anyway).

2013-11-29  Dave Love  <fx@gnu.org>

	* Fix for building on RHEL 5 (LP: #1256415).

2013-11-29  James Hunt  <james.hunt@ubuntu.com>

	* src/procenv.c:
	  - Use PROCENV_GNU_BSD rather than PROCENV_LINUX_BSD_KERNEL.
	  - Make use of generic stubs where appropriate.
	  - encode_string(): Handle non-printables for JSON and XML.
	    Note that they cannot be fully handled in XML as it disallows
	    encoding control characters so a validating parser will choke
	    on the output in that case.
	* src/tests/check_all_args.in:
	  - Explicit test for json_pp.
	  - Generate more details on error.
	  - Protect against silent failure when setting section.

2013-11-28  James Hunt  <james.hunt@ubuntu.com>

	* src/procenv.c:
	  - Use PROCENV_LINUX_BSD_KERNEL rather than raw define value for
	    kFreeBSD systems.
	  - Tweaks to hide NUMA from BSD systems.
	  - usage(): Added missing entry for --memory (as caught by new test).
	  - Made os-specific function names saner.
	  - Make Linux-specific functions still display a heading by using
	    stubs. This fixes the tests, makes the code slightly clearer
	    (hopefully not at the expense of the user).
	* src/procenv.h:
	  - Added PROCENV_LINUX_BSD_KERNEL for kFreeBSD systems.
	* src/tests/check_all_args.in:
	  - New test to ensure that all sections generated by default output
	    have a corresponding command-line option.

2013-11-27  James Hunt  <james.hunt@ubuntu.com>

	* configure.ac: Check for libnuma.
	* man/procenv.1:
	  - Updated date.
	  - Add -Y/--memory.
	* src/procenv.c:
	  - show_misc(): Memory page size moved to show_memory().
	  - show_memory(): New function.
	  - dump():
	    - Added missing call to show_cpu().
	    - Added call to show_memory().
	  - show_numa_memory(): New function to display NUMA details (LP: #1251209).
	* src/procenv.h: Bumped PROCENV_FORMAT_VERSION.
	* src/tests/check_all_args.in:
	  - Check explicitly for xmlwf.
	  - Added test to ensure all options produce output in default output
	    mode too.

2013-11-22  James Hunt  <james.hunt@ubuntu.com>

	* src/procenv.c: show_cpu_affinities(): New function that displays basic
	  CPU affinity details.
	* man/procenv.1: Correct and add additional references for '--cpu'.

2013-11-13  James Hunt  <james.hunt@ubuntu.com>

	* src/procenv.c:
	  - Fixes for unimplemented FreeBSD output:
	    - show_shared_mem_bsd()
	    - show_semaphores_bsd()
	    - show_msg_queues_bsd()
	* src/tests/check_all_args.in:
	  - Use mktemp(1) instead of Debian/Ubuntu-specific tempfile(1).
	  - Remove rogue xmlwf call in '--format=text' test.
	  - Fix for the unhelpful xmlwf: unlike every other Unix utility, xmlwf
	    returns 0, even on failure (!) so we have to check if output is
	    produced...

2013-11-07  James Hunt  <james.hunt@ubuntu.com>

	* src/procenv.c: get_arch(): Added PPC64.

2013-11-01  James Hunt  <james.hunt@ubuntu.com>

	* man/procenv.1:
	  - NOTES: Escape dash in indent-char.
	  - EXAMPLES: Fixed display of indent-char value.
	* src/procenv.c: get_arch(): Added missing "SuperH".

2013-10-30  James Hunt  <james.hunt@ubuntu.com>

	* src/procenv.c:
	  - show_signals(): Check return from get_signal_name() in case a
	    platform doesn't provide the signal in question.
	  - get_kernel_bits(): Return error value rather than calling die().
	  - show_bsd_mounts(): Removed unused variables.
	  - Added a few extra asserts to ensure section_open() is passed a valid
	    name.
	* src/procenv.h: Need to define 'semun' on Hurd too.

2013-10-25  James Hunt  <james.hunt@ubuntu.com>

	* TODO: Stuff.
	* src/procenv.c: get_arch(): Fix for AARCH64 which seemingly isn't
	  considered to be "ARM" by gcc.

2013-10-15  James Hunt  <james.hunt@ubuntu.com>

	* man/procenv.1:
	  - Fix for lintian bug: spelling-error-in-binary.
	* src/procenv.c:
	  - Fixes for lintian bugs: spelling-error-in-manpage,
	    hyphen-used-as-minus-sign.

2013-10-14  James Hunt  <james.hunt@ubuntu.com>

	* configure.ac: Add '--debug' option.
	* man/procenv.1:
	  - General tidy-up.
	  - OPTIONS: Added '--crumb-separator'.
	  - EXAMPLES: Added a few more.
	  - LIMITATIONS: Updated.
	* src/pr_list.c: Undo erroneous "fix" to pr_list_append() and
	  pr_list_prepend().
	* src/procenv.c:
	  - Remove "(linux)" suffix from capabilities, cgroups and oom
	    output: they are not displayed on other platforms, so the
	    information is redundant.
	  - Added '--crumb-separator'.
	  - show_network_if(): Put flags in containeris rather than dumping as a
	    comma-separated list.

2013-10-13  James Hunt  <james.hunt@ubuntu.com>

	* TODO: Update.
	* man/procenv.1: ENVIRONMENT VARIABLES:
	  - Added PROCENV_INDENT, PROCENV_INDENT_CHAR and PROCENV_SEPARATOR.
	* src/pr_list.c:
	  - Fix issue in pr_list_append() and pr_list_prepend().
	  - Added PR_LIST_FOREACH_STR() and PR_LIST_FOREACH_REV_STR() from
	    pr_list.h.
	  - pr_list_visitor_str(): New.
	* src/procenv.c:
	  - appendf(): Simplified and plugged a memory leak.
	  - appendva(): Simplified and plugged a memory leak.
	  - show_fds_linux(): Fixed memory leak.
	  - show_semaphores_linux(): Fixed memory leak.
	  - Comments.
	  - cleanup(): Check crumb_list before clearing it.
	  - check_envvars(): Added PROCENV_INDENT_ENV, PROCENV_INDENT_CHAR_ENV and
	    PROCENV_SEPARATOR_ENV.

2013-10-12  James Hunt  <james.hunt@ubuntu.com>

	* configure.ac: Add ability to disable optimisation for debugging.
	* man/procenv.1:
	  - SYNOPSIS: Added '--format=crumb'
	  - ENVIRONMENT VARIABLES: Added 'PROCENV_FORMAT'.
	  - NOTES: More details.
	  - EXAMPLES: Two examples showing how to use '--format'.
	* src/Makefile.am:
	  - Remove hard-coded optimisation flag.
	  - Add pr_list.[ch] sources.
	* src/procenv.c:
	  - Added 'crumb' format and supporting functions.
	  - Removed horrid object-handling hacks since object_open()
	    and object_close() are now sensible.
	  - Added calls to object_open() and object_close() in various places
	    for json array handling.
	  - usage():
	    - Fixed '--messages-queues' and '--shared-memory' to add missing
	      intra-word dash.
	    - Updated notes.
	  - show_meta(): Use get_output_format_name() instead of hard-coded
	    list.
	  - show_stat(): Removed double header().
	  - check_env_vars(): Update to handle 'PROCENV_FORMAT'.
	* src/tests/check_all_args.in:
	  - Test both short and long options.
	  - Test 'crumb' format.

2013-10-03  James Hunt  <james.hunt@ubuntu.com>

	* src/procenv.c:
	  - show_proc(): Improved grouping by adding more sections.
	  - show_meta(): Show output format.
	  - show_compiler(): Add "feature test macros" section.

2013-10-02  James Hunt  <james.hunt@ubuntu.com>

	* man/procenv.1:
	  - Added new options:
	    - -C/--cpu.
	    - --format.
	    - --indent.
	    - --indent-char.
	    - --separator.
	  - Removed bracketed partial option names since getopt_long(3) allows
	    any unique partially named option.
	* src/Makefile.am:
	  - Added check_all_args test.
	  - CFLAGS: Check for unused variables.
	* src/procenv.c:
	  - Added ability to produce output in either highly-structured text
	    (default), JSON, or XML using the --format=<format> option.

2013-09-13  James Hunt  <james.hunt@ubuntu.com>

	* src/tests/check_all_args.in: Added missing test.
	* src/procenv.c:
	  - usage():
	    - Clarify option usage.
	    - Ensure no wrapping on 80-column devices.
	  - show_rlimits():
	    - Enable RLIMIT_RTTIME on Linux.
	    - Check kernel version and defines for newer limits.
	* src/procenv.h: Cleanup.

2013-09-12  James Hunt  <james.hunt@ubuntu.com>

	* src/Makefile.am: Updated for new check_all_args test.
	* src/procenv.c:
	  - dump(): Ensure correct output ordering.
	  - Added "not implemented" stubs for FreeBSD IPC functions.
	* src/tests/show_compiler_details: Don't hard-code 'gcc' - use 'cc'
	  for maximum portability.

2013-09-11  James Hunt  <james.hunt@ubuntu.com>

	* man/procenv.1:
	  - Added -E/--semaphores option.
	  - Added -M/--message-queues option.
	  - Added -S/--shared-memory option.
	  - Added ref to ipcs(1).
	* src/procenv.c:
	  - Added support for displaying IPC resources (shared memory,
	    semaphores and message queues) under Linux only at this
	    stage.
	  - New utility functions: format_time(), format_perms() and
	    pid_to_name().

2013-08-30  James Hunt  <james.hunt@ubuntu.com>

	* src/procenv.c:
	  - show_stat(): Make resilient to failures.
	  - show_linux_mounts(): Show if unable to query major+minor number.
	  - show_bsd_mounts(): Show if unable to query major+minor number.
	  - get_major_minor(): Return a value rather than simply warning on
	    error.

2013-08-28  James Hunt  <james.hunt@ubuntu.com>

	* src/procenv.c:
	  - show_network(): Handle bionics lack of getifaddrs().
	  - get_arch(): Don't identify MIPSEL as MIPS.

2013-08-23  James Hunt  <james.hunt@ubuntu.com>

	* TODO: 
	* man/procenv.1:
	  - Added -A/--arguments option.
	  - Updated --mount to include reference to statfs.
	  - Added -N/--network option.
	  - Updated SEE ALSO section.
	* src/procenv.c: 
	  - Added support for BSD/Hurd signals: SIGEMT, SIGINFO, SIGLOST.
	  - usage(): Use colon to separate output types from description for
	    consistency.
	  - is_console(): Enable for FreeBSD/kFreeBSD.
	  - append(): Allocate space if str points to NULL.
	  - appendf(): Allocate space if str points to NULL.
	  - appendva(): Allocate space if str points to NULL.
	  - dump():
	    - Call show_network().
	    - Call show_locale() *after* show_rlimits() for correct ordering.
	  - show_linux_mounts(): Add block and inode details (LP: #1212728).
	  - show_bsd_mounts(): Add block and inode details (LP: #1212728).
	  - show_compiler():
	    - Added __FILE__, __BASE_FILE__ and __TIMESTAMP__.
	  - main():
	    - Updates for -N/--network.
	  - New functions:
	    - show_arguments().
	    - get_network_address().
	    - decode_if_flags().
	    - get_ipv6_scope_name() (unused).
	    - get_mtu().
	    - get_mac_address().
	    - decode_extended_if_flags().
	    - get_net_family_name().
	    - show_network_if().
	    - show_network().

2013-07-19  James Hunt  <james.hunt@ubuntu.com>

	* src/man/procenv.1: Updated date and year.
	* src/procenv.c:
	  - show_bsd_proc_branch(): Fix to work in BSD jails: these entities are
	    bizarre in that they have no init process, and a processes parent
	    may actually be a process running *outside* of the jail... and as a
	    result, all you can know about it is its PID.
	  - Various hacks to work in the decidedly un-bionic Android
	    environment.
	* Android.mk: Makefile for Android.

2013-07-04  James Hunt  <james.hunt@ubuntu.com>

	* man/procenv.1: Add a new --exec example.

2013-06-28  James Hunt  <james.hunt@ubuntu.com>

	* configure.ac: Force old serial test behaviour (specifically
	  for automake-1.13 and above) to ensure test output is visible in
	  build logs.

2013-05-31  James Hunt  <james.hunt@ubuntu.com>

	* src/procenv.c:
	  - dump_misc(): Don't quote value if it's UNKNOWN_STR
	    (for easier parsing).
	  - show_stat(): Change "mode" to "permissions" since not only is the
	    latter more familiar to some, the tags should be as unique as
	    possible (and we have another "mode" for privileged execution).
	  - show_linux_mounts(): Display UNKNOWN_STR rather than aborting if
	    /proc not mounted.
	  - show_linux_proc_branch: As per show_linux_mounts().
	  - get_os(): Fixed regression where kFreeBSD was not being detected
	    (seemingly because __linux__ is no longer defined on such systems :-)
	  - get_arch(): Added missing detection for "SystemZ".
	  - show_linux_cgroups(): As per show_linux_mounts().
	  - dump_linux_proc_fds(): As per show_linux_mounts().
	  - show_oom(): As per show_linux_mounts().
	  - get_root(): As per show_linux_mounts().

2013-05-17  James Hunt  <james.hunt@ubuntu.com>

	* man/procenv.1: Added -P/--platform option.
	* src/procenv.c:
	  - usage(): Added -P/--platform option.
	  - dump_misc(): Move platforms bits to dump_platform().
	  - dump_platform(): New function:
	  - dump(): Call dump_platform().
	    - show executable bits.
	    - Call show_data_model().
	    - Call get_os() and get_arch().
	  - get_platform(): Removed.
	  - get_os(): New function.
	  - get_arch(): New function (includes support for x32).
	  - show_data_model(): New function.
	  - main(): Added -P/--platform option.

2013-04-07  James Hunt  <james.hunt@ubuntu.com>

	* src/procenv.c: show_tty_attrs():
	  - Clear lock status for all non-linux platforms.
	  - Update calls to show_const_tty() and show_cc_tty() passing
	    lock_status as a parameter.
	* src/procenv.h:
	  - show_cc_tty(): Pass lock status as a parameter. Comment header.
	  - show_const_tty(): Pass lock status as a parameter. Comment header.

2013-04-04  James Hunt  <james.hunt@ubuntu.com>

	* src/procenv.c:
	  - Changed __linux__ to PROCENV_LINUX.
	  - header(): Fix possible buffer overflow.
	  - dump_meta(): Added a "mode" value showing if running
	    privileged or non-privileged (the former showing potentially
	    more information).
	  - show_tty_attrs():
	    - Now shows individual locked tty attributes
	      when running in privileged mode.
	    - Added winsize attributes.
	  - get_tty_locked_status(): New function.
	* man/procenv.1: Update for --tty.

2013-03-27  James Hunt  <james.hunt@ubuntu.com>

	* Merge of lp:~mtmiller/procenv/portability-bug-fixes.

2013-01-10  James Hunt  <james.hunt@ubuntu.com>

	* TODO: Updated.
	* src/procenv.c:
	  - locale_map: Protect LC_NAME for FreeBSD.
	  - show_env() and show_all_groups(): sort environment
	    using strcoll(3) rather than strcmp(3) to make output
	    locale-aware.

2012-12-15  James Hunt  <james.hunt@ubuntu.com>

	* src/procenv.c: get_priorities(): Do not assert priorities
	  since they may be legitimate values. We could check errno,
	  but little point when only querying.

2012-12-10  James Hunt  <james.hunt@ubuntu.com>

	* TODO: Updated with an idea from Dmitrijs Ledkovs.

2012-12-06  James Hunt  <james.hunt@ubuntu.com>

	* TODO: Updated with a couple of ideas.
	* man/procenv.1: Formatting of "SEE ALSO" section.
	* src/procenv.c: show_linux_prctl(): Handle all possible
	  return scenarios to avoid random output.
	  Thanks Dave Love (LP: #1086771).

	[ Dave Love <fx@gnu.org> ]
	* src/procenv.c:
	  - locale_map:
	    - Guard non-POSIX locale categories for portability.
	    - Remove LC_ALL.
	  - show_locale(): Special-case handling for LC_ALL.

	[ Mike Miller <mtmiller@ieee.org> ]
	* src/procenv.c:
	  - show_linux_security_module_context(): Check that Apparmor
	    and SELinux are enabled before querying contexts
	    (LP: #1086768).

2012-12-02  James Hunt  <james.hunt@ubuntu.com>

	* src/procenv.c:
	  - locale_map: Add LC_ADDRESS, LC_IDENTIFICATION,
	    LC_MEASUREMENT, LC_NAME, LC_PAPER and LC_TELEPHONE
	    (LP: #1081628).
	  - show_env(): Sort environment variables (LP: #1081629).
	  - show_locale(): Added LANG and LANGUAGE for parity with
	    locale(1).
	* man/procenv.1:
	  - Add ref to locale(7).
	  - Add ref to locale(1).

2012-11-29  James Hunt  <james.hunt@ubuntu.com>

	* General tidy-up (removing unused variables, etc).

	[ Dave Love <fx@gnu.org> ]
	* Makefile.am: Add man page to man1_MANS for RHEL package build.
	* src/procenv.c:
	  - show_locale(): Load locale from the environment prior to
	    querying, and revert at end.
	  - show_linux_cpu(): Guard sched_getcpu().
	* src/procenv.h: show_capability(): Make NOP if PR_CAPBSET_READ
	  not available.
	* configure.ac: Add sched_getcpu to list of AC_CHECK_FUNCS.

2012-11-28  James Hunt  <james.hunt@ubuntu.com>

	* man/procenv.1: Update for --threads and set date.
	* src/procenv.c: get_platform(): Correction for detecting ARMHF.

2012-11-28  James Hunt  <james.hunt@ubuntu.com>
	
	* src/procenv.c:
	  - get_thread_scheduler_name(): Make visible to non-Linux platforms.
	  - get_platform(): Fix for Hurd.
	  - show_clocks(): Fix for Hurd.
	* src/procenv.h:
	  - Fix to gross Hurd hack.
	  - Make visible to non-Linux platforms.
	  - show_clock_res(): Make resilient to failure.
	
2012-11-26  James Hunt  <james.hunt@ubuntu.com>
	
	* TODO: Update.
	* configure.ac: Add pthread.
	* man/procenv.1: Formatting.
	* src/procenv.c:
	  - usage(): Added -T and --threads option.
	  - get_misc(): Minor Hurd tweak.
	  - get_user_info(): Added check around prctl.
	  - init(): Call gte_uname() as early as possible to allow
	    LINUX_KERNEL_*() macros to work.
	  - dump(): Add show_threads().
	  - show_capabilities(): Put kernel version guard around
	    PR_GET_KEEPCAPS.
	  - get_thread_scheduler_name(): New function.
	  - show_linux_scheduler(): Disallow failure.
	  - show_linux_cpu(): Disallow failure.
	  - show_threads(): New function.
	  - main():
	  - Added --threads option.
	  - Call get_uname() for '-i'.
	* src/procenv.h: Added pthread.h and minor tweak for Hurd.
	
2012-11-22  James Hunt  <james.hunt@ubuntu.com>
	
	* src/tests/show_compiler_details: New test to dump out useful info
	  as an aid to debugging build failures and for general interest.
	* src/Makefile.am: Call show_compiler_details test before running
	  main binary such that we can use the new tests output to diagnose
	  failures with the main binary.
	* src/procenv.h:
	  - Added explicit define for GNU/Hurd to ensure that platform defines
	    procenv_user.proc_name.
	
2012-11-21  James Hunt  <james.hunt@ubuntu.com>
	
	* TODO: Update.
	* src/procenv.c:
	  - dump_misc(): Added kernel headers version.
	  - linux_kernel_version():
	  - Rewrite as original logic was flawed - we now use the same
	    technique as KERNEL_VERSION()/LINUX_VERSION_CODE.
	  - Drop the @patch parameter: we're not using it and it is problematic
	    if it contains alphabetics.
	  - show_linux_prctl(): Don't allow prctl to fail, even for
	    environments, such as chroots, where the libc defines the symbols,
	    but the kernel outside the chroot does not implement the features.
	  - get_platform(): Added alpha and m68k.
	  - main(): Call get_user_info() if dumping misc details to ensure uname
	    values available.
	* src/procenv.h:
	  - Removed LINUX_KERNEL_MMRP() as unused.
	  - Removed pdie() macro now that we handle prctl failures gracefully.
	
2012-11-20  James Hunt  <james.hunt@ubuntu.com>
	
	* man/procenv.1:
	  - Added new locale options.
	  - Updated datestamp.
	* src/procenv.c:
	  - usage(): Added locale options.
	  - dump_misc():
	  - Now shows 'platform' and 'kernel bits' (moved from dump_meta()).
	  - Added 'endianness'.
	  - is_big_endian(): New function.
	  - show_stat(): Fixed 1 byte memory leak.
	  - dump(): Call show_locale().
	  - show_locale(): New function to dump locale details.
	  - get_platform():
	  - Added comment header.
	  - Added in ia64, sparc64, sparc, mips, armhf, armel, s390x, SuperH, Hurd.
	  - Changed 'Linux (Intel)' to 'Linux (i386)'.
	  - Return UNKNOWN_STR as last resort.
	  - show_capabilities(): Only query certain capabilities if they are
	    known to be theoretically available by comparing running kernel
	    version with kernel version specified in capabilities(7) that
	    introduced it.
	  - main(): Updated for new locale options.
	* src/procenv.h: show_capability():
	  - Added comment header.
	  - Now handles failure less brutally.
	
2012-11-19  James Hunt  <james.hunt@ubuntu.com>
	
	* man/procenv.1: Show calls made by '--proc' and '--misc'.
	* src/procenv.c:
	  - Various platform-specific fixes identified by recent Debian upload.
	  - Formatting.
	  - linux_kernel_version(): Replacement for inadequate KERNEL_VERSION() macro.
	  - New macros that make use of linux_kernel_version():
	  - LINUX_KERNEL_M()
	  - LINUX_KERNEL_MM()
	  - LINUX_KERNEL_MMR()
	  - LINUX_KERNEL_MMRP()
	  - Horrid hack for Hurd, which doesn't define PATH_MAX.

2012-11-16  James Hunt  <james.hunt@ubuntu.com>

	* man/procenv.1:
	  - Remove duplicate entry for --proc.
	  - Add references to system and library call man pages for each option.
	  - Add note that options are processed in order.
	  - Correct order of options in syslog example.
	  - Added rusage options.
	* TODO: Updated.
	* src/procenv.c:
	  - Added rusage.
	  - Moved show_capability() to header file.
	  - main(): Added missing 'u' to getopt_long() call.
	  - show_sizeof(): Added types uintmax_t, imaxdiv_t, rlim_t,
	fenv_t, fexcept_t.

2012-11-05  James Hunt  <james.hunt@ubuntu.com>

	* Split show_uname() into get_uname() and dump_uname().
	* init(): Call get_uname().
	* show_linux_prctl():
	  - Check for x86 before quering PR_GET_TSC.
	  - Check for kernel v3.5 before querying PR_GET_NO_NEW_PRIVS.
	  - Check for kernel v3.4 before querying PR_GET_CHILD_SUBREAPER.
	* New macros:
	  - PROCENV_ARCH_X86.
	  - KERNEL_VERSION().

2012-11-04  James Hunt  <james.hunt@ubuntu.com>

	* AUTHORS: Corrected email address.
	* man/procenv.1: Credit Kees in copyright and add in
	  standard "warranty".

2012-11-01  James Hunt  <james.hunt@ubuntu.com>

	* Hide show_oom() for non-Linux platforms.

2012-10-27  James Hunt  <james.hunt@ubuntu.com>

	* src/procenv.c:
	  - get_path(): New function to return path of specified program.
	  - show_stat(): Ensure we can resolve argv[0] to a full
	    path by using get_path().
	  - check_envvars(): Made strsep() usage safe.

2012-10-26  James Hunt  <james.hunt@ubuntu.com>

	* Set EXTRA_DIST to ensure man page
	  included in distribution.
	* man/procenv.1: Typos and hyphen fixes.

2012-10-25  James Hunt  <james.hunt@ubuntu.com>

	* Initial import.
