The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
.travis.yml 013
Build.PL 32
Changes 08
MANIFEST 157
META.json 060
META.yml 2020
README 170
README.md 024
SIGNATURE 2379
inc/Devel/AssertOS/AIX.pm 019
inc/Devel/AssertOS/Amiga.pm 019
inc/Devel/AssertOS/Android.pm 011
inc/Devel/AssertOS/Apple.pm 023
inc/Devel/AssertOS/BSDOS.pm 019
inc/Devel/AssertOS/BeOS.pm 036
inc/Devel/AssertOS/Bitrig.pm 019
inc/Devel/AssertOS/Cygwin.pm 026
inc/Devel/AssertOS/DEC.pm 028
inc/Devel/AssertOS/DGUX.pm 019
inc/Devel/AssertOS/DragonflyBSD.pm 74
inc/Devel/AssertOS/Dynix.pm 019
inc/Devel/AssertOS/EBCDIC.pm 029
inc/Devel/AssertOS/Extending.pod 0123
inc/Devel/AssertOS/FreeBSD.pm 74
inc/Devel/AssertOS/GNUkFreeBSD.pm 019
inc/Devel/AssertOS/HPUX.pm 019
inc/Devel/AssertOS/Haiku.pm 019
inc/Devel/AssertOS/Interix.pm 019
inc/Devel/AssertOS/Irix.pm 019
inc/Devel/AssertOS/Linux/v2_6.pm 026
inc/Devel/AssertOS/Linux.pm 718
inc/Devel/AssertOS/MPEiX.pm 019
inc/Devel/AssertOS/MSDOS.pm 019
inc/Devel/AssertOS/MSWin32.pm 026
inc/Devel/AssertOS/MacOSX/v10_4.pm 026
inc/Devel/AssertOS/MacOSX/v10_5.pm 024
inc/Devel/AssertOS/MacOSX.pm 74
inc/Devel/AssertOS/MacOSclassic.pm 019
inc/Devel/AssertOS/MachTen.pm 026
inc/Devel/AssertOS/MicrosoftWindows.pm 023
inc/Devel/AssertOS/MidnightBSD.pm 019
inc/Devel/AssertOS/MirOSBSD.pm 019
inc/Devel/AssertOS/NeXT.pm 019
inc/Devel/AssertOS/NetBSD.pm 74
inc/Devel/AssertOS/Netware.pm 019
inc/Devel/AssertOS/OS2.pm 019
inc/Devel/AssertOS/OS390.pm 021
inc/Devel/AssertOS/OS400.pm 019
inc/Devel/AssertOS/OSF.pm 021
inc/Devel/AssertOS/OSFeatures/POSIXShellRedirection.pm 043
inc/Devel/AssertOS/OpenBSD.pm 74
inc/Devel/AssertOS/POSIXBC.pm 019
inc/Devel/AssertOS/QNX/Neutrino.pm 021
inc/Devel/AssertOS/QNX/v4.pm 021
inc/Devel/AssertOS/QNX.pm 027
inc/Devel/AssertOS/RISCOS.pm 021
inc/Devel/AssertOS/Realtime.pm 023
inc/Devel/AssertOS/SCO.pm 019
inc/Devel/AssertOS/Solaris.pm 019
inc/Devel/AssertOS/Sun.pm 023
inc/Devel/AssertOS/SunOS.pm 019
inc/Devel/AssertOS/SysVr4.pm 019
inc/Devel/AssertOS/SysVr5.pm 019
inc/Devel/AssertOS/Unicos.pm 019
inc/Devel/AssertOS/Unix.pm 037
inc/Devel/AssertOS/VMESA.pm 019
inc/Devel/AssertOS/VMS.pm 019
inc/Devel/AssertOS/VOS.pm 019
inc/Devel/AssertOS.pm 624
inc/Devel/CheckOS/Families.pod 073
inc/Devel/CheckOS.pm 812
lib/Unix/Uptime/BSD/XS.pm 114
lib/Unix/Uptime/BSD.pm 22
lib/Unix/Uptime/Linux.pm 11
lib/Unix/Uptime.pm 34
t/003-load.t 02
76 files changed (This is a version diff) 1271688
@@ -0,0 +1,13 @@
+language: perl
+perl:
+  - "5.20"
+  - "5.18"
+  - "5.16"
+  - "5.14"
+  - "5.12"
+  - "5.10"
+  - "5.8"
+install: true
+os:
+  - linux
+  - osx
@@ -1,4 +1,4 @@
-use lib inc; use Devel::AssertOS qw(Linux FreeBSD DragonflyBSD OpenBSD MacOSX NetBSD);
+use lib inc; use Devel::AssertOS qw(Cygwin Linux FreeBSD DragonflyBSD OpenBSD MacOSX NetBSD);
 
 use strict;
 use warnings;
@@ -25,8 +25,7 @@ my $build = Module::Build->new(
     },
     meta_merge => {
         resources => {
-            repository => 'http://git.pioto.org/gitweb/Unix-Uptime.git',
-            license => 'http://dev.perl.org/licenses/',
+            repository => 'https://github.com/pioto/Unix-Uptime',
             bugtracker => 'http://rt.cpan.org/NoAuth/Bugs.html?Dist=Unix-Uptime',
         },
     },
@@ -1,5 +1,13 @@
 Changes for Unix::Uptime
 
+0.4000 Mon Oct 13 15:11:06 EDT 2014
+    - Add support for Cygwin, from Graham Ollis <plicease@cpan.org>.
+    - Fix unit tests running under some non-English locales with
+      different decimal separators, from Graham Ollis
+      <plicease@cpan.org>.
+    - Improve forward-compatibility with Module::Build 0.4200, from
+      Graham Ollis <plicease@cpan.org>.
+
 0.3701 Thu Dec 16 22:40:14 EST 2010
     - Fix build of XS on NetBSD.
     - Correctly allocate all the space we need in SP 
@@ -1,20 +1,75 @@
+.travis.yml
 Build.PL
 Changes
 inc/Devel/AssertOS.pm
+inc/Devel/AssertOS/AIX.pm
+inc/Devel/AssertOS/Amiga.pm
+inc/Devel/AssertOS/Android.pm
+inc/Devel/AssertOS/Apple.pm
+inc/Devel/AssertOS/BeOS.pm
+inc/Devel/AssertOS/Bitrig.pm
+inc/Devel/AssertOS/BSDOS.pm
+inc/Devel/AssertOS/Cygwin.pm
+inc/Devel/AssertOS/DEC.pm
+inc/Devel/AssertOS/DGUX.pm
 inc/Devel/AssertOS/DragonflyBSD.pm
+inc/Devel/AssertOS/Dynix.pm
+inc/Devel/AssertOS/EBCDIC.pm
+inc/Devel/AssertOS/Extending.pod
 inc/Devel/AssertOS/FreeBSD.pm
+inc/Devel/AssertOS/GNUkFreeBSD.pm
+inc/Devel/AssertOS/Haiku.pm
+inc/Devel/AssertOS/HPUX.pm
+inc/Devel/AssertOS/Interix.pm
+inc/Devel/AssertOS/Irix.pm
 inc/Devel/AssertOS/Linux.pm
+inc/Devel/AssertOS/Linux/v2_6.pm
+inc/Devel/AssertOS/MachTen.pm
+inc/Devel/AssertOS/MacOSclassic.pm
 inc/Devel/AssertOS/MacOSX.pm
+inc/Devel/AssertOS/MacOSX/v10_4.pm
+inc/Devel/AssertOS/MacOSX/v10_5.pm
+inc/Devel/AssertOS/MicrosoftWindows.pm
+inc/Devel/AssertOS/MidnightBSD.pm
+inc/Devel/AssertOS/MirOSBSD.pm
+inc/Devel/AssertOS/MPEiX.pm
+inc/Devel/AssertOS/MSDOS.pm
+inc/Devel/AssertOS/MSWin32.pm
 inc/Devel/AssertOS/NetBSD.pm
+inc/Devel/AssertOS/Netware.pm
+inc/Devel/AssertOS/NeXT.pm
 inc/Devel/AssertOS/OpenBSD.pm
+inc/Devel/AssertOS/OS2.pm
+inc/Devel/AssertOS/OS390.pm
+inc/Devel/AssertOS/OS400.pm
+inc/Devel/AssertOS/OSF.pm
+inc/Devel/AssertOS/OSFeatures/POSIXShellRedirection.pm
+inc/Devel/AssertOS/POSIXBC.pm
+inc/Devel/AssertOS/QNX.pm
+inc/Devel/AssertOS/QNX/Neutrino.pm
+inc/Devel/AssertOS/QNX/v4.pm
+inc/Devel/AssertOS/Realtime.pm
+inc/Devel/AssertOS/RISCOS.pm
+inc/Devel/AssertOS/SCO.pm
+inc/Devel/AssertOS/Solaris.pm
+inc/Devel/AssertOS/Sun.pm
+inc/Devel/AssertOS/SunOS.pm
+inc/Devel/AssertOS/SysVr4.pm
+inc/Devel/AssertOS/SysVr5.pm
+inc/Devel/AssertOS/Unicos.pm
+inc/Devel/AssertOS/Unix.pm
+inc/Devel/AssertOS/VMESA.pm
+inc/Devel/AssertOS/VMS.pm
+inc/Devel/AssertOS/VOS.pm
 inc/Devel/CheckOS.pm
+inc/Devel/CheckOS/Families.pod
 lib/Unix/Uptime.pm
 lib/Unix/Uptime/BSD.pm
 lib/Unix/Uptime/BSD/XS.pm
 lib/Unix/Uptime/BSD/XS.xs
 lib/Unix/Uptime/Linux.pm
 MANIFEST			This list of files
-README
+README.md
 samples/uptime.pl
 t/000-compile.t
 t/001-uptime.t
@@ -22,4 +77,5 @@ t/002-uptime_hires.t
 t/003-load.t
 t/pod.t
 META.yml
+META.json
 SIGNATURE    Added here by Module::Build
@@ -0,0 +1,60 @@
+{
+   "abstract" : "Determine the current uptime, in seconds, and load",
+   "author" : [
+      "Mike Kelly <pioto@pioto.org>"
+   ],
+   "dynamic_config" : 1,
+   "generated_by" : "Module::Build version 0.4007, CPAN::Meta::Converter version 2.132140",
+   "license" : [
+      "perl_5"
+   ],
+   "meta-spec" : {
+      "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec",
+      "version" : "2"
+   },
+   "name" : "Unix-Uptime",
+   "prereqs" : {
+      "build" : {
+         "requires" : {
+            "ExtUtils::CBuilder" : "0",
+            "Module::Build" : "0.28"
+         }
+      },
+      "configure" : {
+         "requires" : {
+            "Module::Build" : "0.28"
+         }
+      }
+   },
+   "provides" : {
+      "Unix::Uptime" : {
+         "file" : "lib/Unix/Uptime.pm",
+         "version" : "0.4000"
+      },
+      "Unix::Uptime::BSD" : {
+         "file" : "lib/Unix/Uptime/BSD.pm",
+         "version" : "0.4000"
+      },
+      "Unix::Uptime::BSD::XS" : {
+         "file" : "lib/Unix/Uptime/BSD/XS.pm",
+         "version" : "0.4000"
+      },
+      "Unix::Uptime::Linux" : {
+         "file" : "lib/Unix/Uptime/Linux.pm",
+         "version" : "0.4000"
+      }
+   },
+   "release_status" : "stable",
+   "resources" : {
+      "bugtracker" : {
+         "web" : "http://rt.cpan.org/NoAuth/Bugs.html?Dist=Unix-Uptime"
+      },
+      "license" : [
+         "http://dev.perl.org/licenses/"
+      ],
+      "repository" : {
+         "url" : "https://github.com/pioto/Unix-Uptime"
+      }
+   },
+   "version" : "0.4000"
+}
@@ -1,34 +1,34 @@
 ---
-name: Unix-Uptime
-version: 0.3701
+abstract: 'Determine the current uptime, in seconds, and load'
 author:
   - 'Mike Kelly <pioto@pioto.org>'
-abstract: |-
-  Determine the current uptime, in seconds, and load
-  averages, across different *NIX architectures
-license: perl
-resources:
-  bugtracker: http://rt.cpan.org/NoAuth/Bugs.html?Dist=Unix-Uptime
-  license: http://dev.perl.org/licenses/
-  repository: http://git.pioto.org/gitweb/Unix-Uptime.git
-configure_requires:
-  Module::Build: 0.28
 build_requires:
+  ExtUtils::CBuilder: 0
+  Module::Build: 0.28
+configure_requires:
   Module::Build: 0.28
+dynamic_config: 1
+generated_by: 'Module::Build version 0.4007, CPAN::Meta::Converter version 2.132140'
+license: perl
+meta-spec:
+  url: http://module-build.sourceforge.net/META-spec-v1.4.html
+  version: 1.4
+name: Unix-Uptime
 provides:
   Unix::Uptime:
     file: lib/Unix/Uptime.pm
-    version: 0.3701
+    version: 0.4000
   Unix::Uptime::BSD:
     file: lib/Unix/Uptime/BSD.pm
-    version: 0.3701
+    version: 0.4000
   Unix::Uptime::BSD::XS:
     file: lib/Unix/Uptime/BSD/XS.pm
-    version: 0.3701
+    version: 0.4000
   Unix::Uptime::Linux:
     file: lib/Unix/Uptime/Linux.pm
-    version: 0.3701
-generated_by: Module::Build version 0.3
-meta-spec:
-  url: http://module-build.sourceforge.net/META-spec-v1.2.html
-  version: 1.2
+    version: 0.4000
+resources:
+  bugtracker: http://rt.cpan.org/NoAuth/Bugs.html?Dist=Unix-Uptime
+  license: http://dev.perl.org/licenses/
+  repository: https://github.com/pioto/Unix-Uptime
+version: 0.4000
@@ -1,17 +0,0 @@
-Unix-Uptime is Copyright (C) 2008-2009, Mike Kelly.
-
-This is a simple module that allows you to get the current system
-uptime, in seconds, and the current load average. See the Unix::Uptime
-perldoc for more information.
-
-LICENSE INFORMATION
-
-This module is free software; you can redistribute it and/or modify it
-under the same terms as Perl 5.10.0. For more details, see the full text
-of the licenses at <http://www.perlfoundation.org/artistic_license_1_0>,
-and <http://www.gnu.org/licenses/gpl-2.0.html>.
-
-This program is distributed in the hope that it will be
-useful, but without any warranty; without even the implied
-warranty of merchantability or fitness for a particular purpose.
-
@@ -0,0 +1,24 @@
+Unix-Uptime is Copyright (C) 2008-2014, Mike Kelly.
+
+This is a simple module that allows you to get the current system
+uptime, in seconds, and the current load average.
+
+On *BSD systems, this involves using an optional XS module, with a
+fallback on parsing the output of the 'syslog' command. If you wish to
+avoid building the XS module, set the 'NO_XS' environment variable to
+some true value before running `perl Build.PL`.
+
+See the Unix::Uptime perldoc for more information.
+
+LICENSE INFORMATION
+
+This module is free software; you can redistribute it and/or modify it
+under the same terms as Perl 5.10.0. For more details, see the full text
+of the licenses at <http://www.perlfoundation.org/artistic_license_1_0>,
+and <http://www.gnu.org/licenses/gpl-2.0.html>.
+
+This program is distributed in the hope that it will be
+useful, but without any warranty; without even the implied
+warranty of merchantability or fitness for a particular purpose.
+
+[![Build Status](https://travis-ci.org/pioto/Unix-Uptime.svg?branch=develop)](https://travis-ci.org/pioto/Unix-Uptime)
@@ -1,5 +1,5 @@
 This file contains message digests of all files listed in MANIFEST,
-signed via the Module::Signature module, version 0.63.
+signed via the Module::Signature module, version 0.73.
 
 To verify the content in this distribution, first make sure you have
 Module::Signature installed, then type:
@@ -14,34 +14,90 @@ not run its Makefile.PL or Build.PL.
 -----BEGIN PGP SIGNED MESSAGE-----
 Hash: SHA1
 
-SHA1 c46bd15e655c4954063f0268a348764a0bde073f Build.PL
-SHA1 4e4bd5eaafe543317f91f51861e1a58bd5c33c7e Changes
-SHA1 a75b0368e7c8795d33e456c10cc63827390687c8 MANIFEST
-SHA1 88217b531ccebd6d4e54f1f86e3854393ab624d5 META.yml
-SHA1 418029e20962010e0de1dfeee4aa8e790775e9dd README
-SHA1 9e61a0b731e48fa44e281ba173ee2f2bbd671d6a inc/Devel/AssertOS.pm
-SHA1 75e217c2336cd4c35fd9da928f3ca77826de8737 inc/Devel/AssertOS/DragonflyBSD.pm
-SHA1 570d9a7334e8bce42bfd6a7460a248c46b2340a5 inc/Devel/AssertOS/FreeBSD.pm
-SHA1 ed6151739400c91fcd896070d9ff719abbb59704 inc/Devel/AssertOS/Linux.pm
-SHA1 fc65be1917e4452b07c05712ad65fe0aade6bdbd inc/Devel/AssertOS/MacOSX.pm
-SHA1 0ec4833579e1fec5d1117665590b0e3d543b8596 inc/Devel/AssertOS/NetBSD.pm
-SHA1 3efcf630129d10fa06a1e25abb8728d5e0cb87a0 inc/Devel/AssertOS/OpenBSD.pm
-SHA1 9e8da415eea08a7718478941879bef4cbecfe827 inc/Devel/CheckOS.pm
-SHA1 be59327cd282fd24575a8721f95d45f204a9df59 lib/Unix/Uptime.pm
-SHA1 b7b19d5ad44e0e41058c2ef6b9495dfdf7a89f60 lib/Unix/Uptime/BSD.pm
-SHA1 c7a9462c8b2d890a53a494db669e73a06f1391d8 lib/Unix/Uptime/BSD/XS.pm
+SHA1 7d493a7361a1a8ac5f37aa642c0d69471fd9e283 .travis.yml
+SHA1 322d54f69d2399b5ac253d9c2e73070399083236 Build.PL
+SHA1 5085d9f1031bc3f7920d798915806108754ddab3 Changes
+SHA1 d04d5778aefb53928e11068f0e973f54df7d5dbe MANIFEST
+SHA1 950218f1b12ae7ad971b9de2aee4117367b146fa META.json
+SHA1 a899334bd35096d99d272b004cb7fd8f7d5a7a52 META.yml
+SHA1 3c71a25d406211ea3e7c06cf1960c1e91adae2a3 README.md
+SHA1 f9ffda3c5a56f2ca2d0b7b453b48c927302b470d inc/Devel/AssertOS.pm
+SHA1 ee1841d87162813bbc74d2054fbafcc0d66bca39 inc/Devel/AssertOS/AIX.pm
+SHA1 d5248d929619b53d48de201eaa1c4d1bed5ece4b inc/Devel/AssertOS/Amiga.pm
+SHA1 4cd082777867536d8063a0dbb6ff7c5961281c94 inc/Devel/AssertOS/Android.pm
+SHA1 0c808fe5faa0ade4e6601fb29a74de1a7b51bc12 inc/Devel/AssertOS/Apple.pm
+SHA1 2425323066e4f7e7c3984ec2db55bf68f406c123 inc/Devel/AssertOS/BSDOS.pm
+SHA1 9fd621b5d28868c781a6a577f0bf414f03c22f8a inc/Devel/AssertOS/BeOS.pm
+SHA1 05875e483a4b39f7cb1d9019fbf2ba4276ae0e1c inc/Devel/AssertOS/Bitrig.pm
+SHA1 04cdbd6f70c2eb7933131f502ae05036d8732e3b inc/Devel/AssertOS/Cygwin.pm
+SHA1 52f9980a893c68dc2c4d6740fdf3587ebf9a7a21 inc/Devel/AssertOS/DEC.pm
+SHA1 19f7955ab92d9b60c86138870e1b9de5d241db13 inc/Devel/AssertOS/DGUX.pm
+SHA1 c7284b3168cbf2442aab5fa1e9f33b06ac651b4e inc/Devel/AssertOS/DragonflyBSD.pm
+SHA1 f21f8ebb2a8027cf119852f9c1d3f5f6a99f75de inc/Devel/AssertOS/Dynix.pm
+SHA1 7ee5640eef1568722beb54c3d780fb3d2047659c inc/Devel/AssertOS/EBCDIC.pm
+SHA1 7a537979d4fc34c48160e4d6c01d27c0f06d0ed1 inc/Devel/AssertOS/Extending.pod
+SHA1 829c95529a827d9d45a2da5d1bdd7fa04d65ca0d inc/Devel/AssertOS/FreeBSD.pm
+SHA1 08b3c10bb67bd054dbd6bd2d4309cc19ba8fd3af inc/Devel/AssertOS/GNUkFreeBSD.pm
+SHA1 f155be1964170a7b86a3709b5f9a4577d56b1866 inc/Devel/AssertOS/HPUX.pm
+SHA1 e8e4bc5d992517fcc1cb3093dd89088fd37b036d inc/Devel/AssertOS/Haiku.pm
+SHA1 683ad40ccebcabdda66b599cf6faf9dfc9d4c5da inc/Devel/AssertOS/Interix.pm
+SHA1 4c3c18e19eedb149e360b3d7e993880bdb5918d3 inc/Devel/AssertOS/Irix.pm
+SHA1 2f64dbc6383411a62253f5642f26c09f00874bd5 inc/Devel/AssertOS/Linux.pm
+SHA1 eeabe972dffe0bb2f804f7eafa1a81bad59229fe inc/Devel/AssertOS/Linux/v2_6.pm
+SHA1 e4f15d3b6ac9f0fcfe8ba20c2e78310f1e694eae inc/Devel/AssertOS/MPEiX.pm
+SHA1 047ed24d47b4207e5b082888ea780158c08ca1cd inc/Devel/AssertOS/MSDOS.pm
+SHA1 9bb74c1de7bf28527fc07b8ba50b065b8aa64d40 inc/Devel/AssertOS/MSWin32.pm
+SHA1 f87f1545258920cff245a52ec5343e4338557817 inc/Devel/AssertOS/MacOSX.pm
+SHA1 66716eb573d19b124b5b9df11d8404834dbb5f76 inc/Devel/AssertOS/MacOSX/v10_4.pm
+SHA1 11166cf1fcb62355f1e23015ac45c69f502458ac inc/Devel/AssertOS/MacOSX/v10_5.pm
+SHA1 bb9a401ef90c733e38f7ab229c9b4f29fbefe4d3 inc/Devel/AssertOS/MacOSclassic.pm
+SHA1 12b8caa85c43c17d1708b67c812f56a4a54ccea8 inc/Devel/AssertOS/MachTen.pm
+SHA1 78e6007a26276ba2a3760d12990e338071f1c5df inc/Devel/AssertOS/MicrosoftWindows.pm
+SHA1 dc29302dbb751cceeef68bd87c565fdd96667e07 inc/Devel/AssertOS/MidnightBSD.pm
+SHA1 2c59d1fae7e5a62336a0fde5a855c45cb3f4fef8 inc/Devel/AssertOS/MirOSBSD.pm
+SHA1 28d1d24311dc34dcf0452152acf1ad8d07730c25 inc/Devel/AssertOS/NeXT.pm
+SHA1 7e68008c2a018a1fdbd0b95dddd4e83ca457a9e1 inc/Devel/AssertOS/NetBSD.pm
+SHA1 858e0ed91a634973e561602c8bf12ce8df45587f inc/Devel/AssertOS/Netware.pm
+SHA1 445c621cd91cd6ba821d45cc0ac79971aa3f0887 inc/Devel/AssertOS/OS2.pm
+SHA1 917036d7f02aa3eab37b587099ff3182616bdb46 inc/Devel/AssertOS/OS390.pm
+SHA1 d425c1f0fad35b05ed594f340b1505d561264fad inc/Devel/AssertOS/OS400.pm
+SHA1 33eafab7980b3764bae7c14178688612a3b8ace9 inc/Devel/AssertOS/OSF.pm
+SHA1 8f6ea7dc53d84b357b24fc55d6447598863f36a3 inc/Devel/AssertOS/OSFeatures/POSIXShellRedirection.pm
+SHA1 33add95b7749680680b4aa0f863d08caaa66fb6f inc/Devel/AssertOS/OpenBSD.pm
+SHA1 6e2062ca3c2a3aba2ab6864787b00a7359fb6622 inc/Devel/AssertOS/POSIXBC.pm
+SHA1 f9adec3dd4edceb78f5451946cc48b89b8010f03 inc/Devel/AssertOS/QNX.pm
+SHA1 57338d9b006d6d637bc8080ca0a67e7918d59022 inc/Devel/AssertOS/QNX/Neutrino.pm
+SHA1 8693b14cfcfdda87691a86da5061b5f18d5a4adc inc/Devel/AssertOS/QNX/v4.pm
+SHA1 bb382bc87bd2fc25267ecce1927129344c9d3c4c inc/Devel/AssertOS/RISCOS.pm
+SHA1 facce59d2c6e94c6057cbe5e5dcc26b80155e15f inc/Devel/AssertOS/Realtime.pm
+SHA1 7fa2c38639557e45db6b30cbe991f4b19577498b inc/Devel/AssertOS/SCO.pm
+SHA1 eb984cdc25bf5f7e919ee6fc4d44ec5c1a1019e8 inc/Devel/AssertOS/Solaris.pm
+SHA1 66d4350a55e8e794feaae3d6efdc09a1b3b6062e inc/Devel/AssertOS/Sun.pm
+SHA1 af70260f68550f1afd5dc4694dc19c9418cf17f5 inc/Devel/AssertOS/SunOS.pm
+SHA1 1fcc5bd48e7a9b5763be897e3a3c27290366eed8 inc/Devel/AssertOS/SysVr4.pm
+SHA1 785008efd2330ccdb0c25b9480dc8c220ce21991 inc/Devel/AssertOS/SysVr5.pm
+SHA1 770010576847e63751663d88ceaeda6f4ecbafd3 inc/Devel/AssertOS/Unicos.pm
+SHA1 b2fbcfb4f62e92d9d803a57be4827b8e718ed1a9 inc/Devel/AssertOS/Unix.pm
+SHA1 a6a512d2875759c45e4ec4d7c591e315abdfe6d9 inc/Devel/AssertOS/VMESA.pm
+SHA1 ac0428c5160982335afff51615f648b7f3261639 inc/Devel/AssertOS/VMS.pm
+SHA1 75398c1e4d79e9eb1fd9663c30d6e5b5f63d68dd inc/Devel/AssertOS/VOS.pm
+SHA1 05788319b0fbb2e4f8b3383dc1e1d522ab63c71d inc/Devel/CheckOS.pm
+SHA1 cb27ab53b13dc675130e45f89e064f0c7611bcb9 inc/Devel/CheckOS/Families.pod
+SHA1 d1ae359a37acd2fedc373d60770196b4280d4a66 lib/Unix/Uptime.pm
+SHA1 978dde77032bd057eb0c63bbb8042a35d575bbc2 lib/Unix/Uptime/BSD.pm
+SHA1 6d510d33d18cffb15c6f2e560de7a2c1674571d7 lib/Unix/Uptime/BSD/XS.pm
 SHA1 fd648e34aa09e1d59c74d74b206d31f094164c3b lib/Unix/Uptime/BSD/XS.xs
-SHA1 41d201b38ecffa266bbd60c39a94dfa606185bf9 lib/Unix/Uptime/Linux.pm
+SHA1 1382cac3dafe3f0de3250667bc05204a80fd26db lib/Unix/Uptime/Linux.pm
 SHA1 cbfb5f799ab0a9e17ba9188a7ee20f23f20a4e46 samples/uptime.pl
 SHA1 712c110e5a11ada009058c81b6f457fd5e212b58 t/000-compile.t
 SHA1 35d67c769f76989794e77e6f92d7f6950a92e693 t/001-uptime.t
 SHA1 86f576ae39dbd68fe2d5a56c25d172f6c0c46446 t/002-uptime_hires.t
-SHA1 fb796600d53815cf983b2b06aa9583cbc3332684 t/003-load.t
+SHA1 3076209ca0412e84c8f3eaaa8c49e8ef6c1fafb9 t/003-load.t
 SHA1 e9c6a5881fc60173fbc8d479c1afd2ce3b43bef1 t/pod.t
 -----BEGIN PGP SIGNATURE-----
-Version: GnuPG v2.0.16 (GNU/Linux)
+Version: GnuPG v1
 
-iEYEARECAAYFAk0K2/AACgkQokMzJ47YCzqz+QCfYW/9a+VS+6eLSKejn/wSS3kh
-6AgAoL1NxJk4ZYV/sR5O3IrhQ91UkQUx
-=TrPC
+iEYEARECAAYFAlQ8JmEACgkQokMzJ47YCzr+oACgm7Hu7ppe/jQO3X1TW63LE5xC
+/ZcAoLphqZT5UPdTdT3VH4/8goWV2yiU
+=x5r/
 -----END PGP SIGNATURE-----
@@ -0,0 +1,19 @@
+package Devel::AssertOS::AIX;
+
+use Devel::CheckOS;
+
+$VERSION = '1.2';
+
+sub os_is { $^O =~ /^aix$/i ? 1 : 0; }
+
+Devel::CheckOS::die_unsupported() unless(os_is());
+
+=head1 COPYRIGHT and LICENCE
+
+Copyright 2007 - 2014 David Cantrell
+
+This software is free-as-in-speech software, and may be used, distributed, and modified under the terms of either the GNU General Public Licence version 2 or the Artistic Licence. It's up to you which one you use. The full text of the licences can be found in the files GPL2.txt and ARTISTIC.txt, respectively.
+
+=cut
+
+1;
@@ -0,0 +1,19 @@
+package Devel::AssertOS::Amiga;
+
+use Devel::CheckOS;
+
+$VERSION = '1.2';
+
+sub os_is { $^O =~ /^amigaos$/i ? 1 : 0; }
+
+Devel::CheckOS::die_unsupported() unless(os_is());
+
+=head1 COPYRIGHT and LICENCE
+
+Copyright 2007 - 2014 David Cantrell
+
+This software is free-as-in-speech software, and may be used, distributed, and modified under the terms of either the GNU General Public Licence version 2 or the Artistic Licence. It's up to you which one you use. The full text of the licences can be found in the files GPL2.txt and ARTISTIC.txt, respectively.
+
+=cut
+
+1;
@@ -0,0 +1,11 @@
+package Devel::AssertOS::Android;
+
+use Devel::CheckOS;
+
+$VERSION = '1.2';
+
+sub os_is { $^O =~ /^android$/i ? 1 : 0; }
+
+Devel::CheckOS::die_unsupported() unless(os_is());
+
+1;
@@ -0,0 +1,23 @@
+# $Id: Apple.pm,v 1.5 2008/11/05 22:52:34 drhyde Exp $
+
+package Devel::AssertOS::Apple;
+
+use Devel::CheckOS;
+
+$VERSION = '1.2';
+
+sub matches { return qw(MacOSX MacOSclassis); }
+sub os_is { Devel::CheckOS::os_is(matches()); }
+Devel::CheckOS::die_unsupported() unless(os_is());
+
+sub expn { "The operating system is from Apple" }
+
+=head1 COPYRIGHT and LICENCE
+
+Copyright 2007 - 2008 David Cantrell
+
+This software is free-as-in-speech software, and may be used, distributed, and modified under the terms of either the GNU General Public Licence version 2 or the Artistic Licence. It's up to you which one you use. The full text of the licences can be found in the files GPL2.txt and ARTISTIC.txt, respectively.
+
+=cut
+
+1;
@@ -0,0 +1,19 @@
+package Devel::AssertOS::BSDOS;
+
+use Devel::CheckOS;
+
+$VERSION = '1.2';
+
+sub os_is { $^O =~ /^bsdos$/i ? 1 : 0; }
+
+Devel::CheckOS::die_unsupported() unless(os_is());
+
+=head1 COPYRIGHT and LICENCE
+
+Copyright 2007 - 2014 David Cantrell
+
+This software is free-as-in-speech software, and may be used, distributed, and modified under the terms of either the GNU General Public Licence version 2 or the Artistic Licence. It's up to you which one you use. The full text of the licences can be found in the files GPL2.txt and ARTISTIC.txt, respectively.
+
+=cut
+
+1;
@@ -0,0 +1,36 @@
+package Devel::AssertOS::BeOS;
+
+use Devel::CheckOS;
+
+$VERSION = '1.4';
+
+# weird special case, not quite like other OS modules, as this is both
+# an OS *and* a family - maybe this should be fixed at some point
+sub matches { return qw(Haiku) }
+sub os_is {
+    return 1 if(
+        $^O =~ /^beos$/i ||
+        Devel::CheckOS::os_is('Haiku')
+    );
+    return 0;
+}
+
+sub expn {
+join("\n",
+"This matches both Be Inc's original BeOS, as well as Haiku, an open-",
+"source BeOS-compatible project.  This is because Haiku is intended",
+"to be able to run BeOS software, while also having its own extra features."
+)
+}
+
+Devel::CheckOS::die_unsupported() unless(os_is());
+
+=head1 COPYRIGHT and LICENCE
+
+Copyright 2007 - 2014 David Cantrell
+
+This software is free-as-in-speech software, and may be used, distributed, and modified under the terms of either the GNU General Public Licence version 2 or the Artistic Licence. It's up to you which one you use. The full text of the licences can be found in the files GPL2.txt and ARTISTIC.txt, respectively.
+
+=cut
+
+1;
@@ -0,0 +1,19 @@
+package Devel::AssertOS::Bitrig;
+
+use Devel::CheckOS;
+
+$VERSION = '1.0';
+
+sub os_is { $^O =~ /^BITRIG$/i ? 1 : 0; }
+
+Devel::CheckOS::die_unsupported() unless(os_is());
+
+=head1 COPYRIGHT and LICENCE
+
+Copyright 2014 David Cantrell
+
+This software is free-as-in-speech software, and may be used, distributed, and modified under the terms of either the GNU General Public Licence version 2 or the Artistic Licence. It's up to you which one you use. The full text of the licences can be found in the files GPL2.txt and ARTISTIC.txt, respectively.
+
+=cut
+
+1;
@@ -0,0 +1,26 @@
+package Devel::AssertOS::Cygwin;
+
+use Devel::CheckOS;
+
+$VERSION = '1.3';
+
+sub os_is { $^O =~ /^cygwin$/i ? 1 : 0; }
+
+sub expn {
+join("\n",
+"The operating system is Microsoft Windows, but perl was built using",
+"the POSIXish API provided by Cygwin"
+)
+}
+
+Devel::CheckOS::die_unsupported() unless(os_is());
+
+=head1 COPYRIGHT and LICENCE
+
+Copyright 2007 - 2014 David Cantrell
+
+This software is free-as-in-speech software, and may be used, distributed, and modified under the terms of either the GNU General Public Licence version 2 or the Artistic Licence. It's up to you which one you use. The full text of the licences can be found in the files GPL2.txt and ARTISTIC.txt, respectively.
+
+=cut
+
+1;
@@ -0,0 +1,28 @@
+# $Id: DEC.pm,v 1.5 2008/11/05 22:52:34 drhyde Exp $
+
+package Devel::AssertOS::DEC;
+
+use Devel::CheckOS;
+
+$VERSION = '1.4';
+
+sub matches { return qw(OSF VMS); }
+sub os_is { Devel::CheckOS::os_is(matches()); }
+Devel::CheckOS::die_unsupported() unless(os_is());
+
+sub expn {
+join("\n",
+"The operating system is from Digital Equipment Corporation, or was",
+"originally written by DEC before they were taken over by Compaq/HP"
+)
+}
+
+=head1 COPYRIGHT and LICENCE
+
+Copyright 2007 - 2008 David Cantrell
+
+This software is free-as-in-speech software, and may be used, distributed, and modified under the terms of either the GNU General Public Licence version 2 or the Artistic Licence. It's up to you which one you use. The full text of the licences can be found in the files GPL2.txt and ARTISTIC.txt, respectively.
+
+=cut
+
+1;
@@ -0,0 +1,19 @@
+package Devel::AssertOS::DGUX;
+
+use Devel::CheckOS;
+
+$VERSION = '1.2';
+
+sub os_is { $^O =~ /^dgux$/i ? 1 : 0; }
+
+Devel::CheckOS::die_unsupported() unless(os_is());
+
+=head1 COPYRIGHT and LICENCE
+
+Copyright 2007 - 2014 David Cantrell
+
+This software is free-as-in-speech software, and may be used, distributed, and modified under the terms of either the GNU General Public Licence version 2 or the Artistic Licence. It's up to you which one you use. The full text of the licences can be found in the files GPL2.txt and ARTISTIC.txt, respectively.
+
+=cut
+
+1;
@@ -1,19 +1,16 @@
-# $Id: DragonflyBSD.pm,v 1.3 2008/10/27 20:31:21 drhyde Exp $
-
-package #
-Devel::AssertOS::DragonflyBSD;
+package Devel::AssertOS::DragonflyBSD;
 
 use Devel::CheckOS;
 
-$VERSION = '1.1';
+$VERSION = '1.2';
 
-sub os_is { $^O eq 'dragonfly' ? 1 : 0; }
+sub os_is { $^O =~ /^dragonfly$/i ? 1 : 0; }
 
 Devel::CheckOS::die_unsupported() unless(os_is());
 
 =head1 COPYRIGHT and LICENCE
 
-Copyright 2007 - 2008 David Cantrell
+Copyright 2007 - 2014 David Cantrell
 
 This software is free-as-in-speech software, and may be used, distributed, and modified under the terms of either the GNU General Public Licence version 2 or the Artistic Licence. It's up to you which one you use. The full text of the licences can be found in the files GPL2.txt and ARTISTIC.txt, respectively.
 
@@ -0,0 +1,19 @@
+package Devel::AssertOS::Dynix;
+
+use Devel::CheckOS;
+
+$VERSION = '1.2';
+
+sub os_is { $^O =~ /^dynixptx$/i ? 1 : 0; }
+
+Devel::CheckOS::die_unsupported() unless(os_is());
+
+=head1 COPYRIGHT and LICENCE
+
+Copyright 2007 - 2014 David Cantrell
+
+This software is free-as-in-speech software, and may be used, distributed, and modified under the terms of either the GNU General Public Licence version 2 or the Artistic Licence. It's up to you which one you use. The full text of the licences can be found in the files GPL2.txt and ARTISTIC.txt, respectively.
+
+=cut
+
+1;
@@ -0,0 +1,29 @@
+package Devel::AssertOS::EBCDIC;
+
+use Devel::CheckOS;
+
+$VERSION = '1.0';
+
+# list of OSes lifted from Module::Build 0.2808
+#
+sub matches {
+    return qw(
+        OS390 OS400 POSIXBC VMESA
+    );
+}
+sub os_is { Devel::CheckOS::os_is(matches()); }
+Devel::CheckOS::die_unsupported() unless(os_is());
+
+sub expn {
+  "The OS uses some variant of EBCDIC instead of ASCII."
+}
+
+=head1 COPYRIGHT and LICENCE
+
+Copyright 2010 David Cantrell
+
+This software is free-as-in-speech software, and may be used, distributed, and modified under the terms of either the GNU General Public Licence version 2 or the Artistic Licence. It's up to you which one you use. The full text of the licences can be found in the files GPL2.txt and ARTISTIC.txt, respectively.
+
+=cut
+
+1;
@@ -0,0 +1,123 @@
+=head1 NAME
+
+Devel::AssertOS::Extending - how to write Devel::AssertOS::* modules that
+check what platform they're running on
+
+=head1 DESCRIPTION
+
+Devel::AssertOS::* modules are used by Devel::CheckOS to figure out what
+OS it is running on.  A set of modules are provided which should correctly
+detect all platforms that perl *currently* runs on, as well as detecting
+OS 'families' like 'Unix' and 'Windows'.
+
+You can also use Devel::AssertOS::* modules on their own to quickly check
+whether you're running on the right platform.
+
+If you try to C<use> a Devel::AssertOS module on the wrong platform, it
+will C<die> by calling C<Devel::CheckOS::die_unsupported()>.  This
+conveniently spits out the text that CPAN-testers look for to see if
+your code failed simply because they're doing something as silly as
+testing your Solaris-only code on HPUX.
+
+=head1 HOW TO WRITE YOUR OWN MODULES
+
+If you want to add support for new platforms, you need to write a module
+called Devel::AssertOS::PlatformName which looks like:
+
+    package Devel::AssertOS::Linux;
+    use Devel::CheckOS;
+    $VERSION = '1.0';
+    sub os_is { $^O =~ /^linux$/i ? 1 : 0; }
+    Devel::CheckOS::die_unsupported() unless(os_is());
+    1;
+
+And that's it.  The subroutine B<must> be called C<os_is> and loading the
+module B<must> die in precisely that manner if your code is running on
+the wrong platform. It's a good idea to check $^O case-insensitively
+as it's not consistent. Note that it is an error to say:
+
+    sub os_is { 1; }
+
+and assume "well, on the wrong platform that'll never get reached because
+the module can't load".  Because the module *can* load, and indeed *does
+get loaded* - some functions in Devel::CheckOS do things like:
+
+    eval "use Devel::AssertOS::$os";
+
+to suppress the error.
+
+If you want to support a 'family' of OSes, then instead of matching against
+C<$^O>, instead use C<Devel::CheckOS::os_is> to check that we're running on
+any of the OSes in your family, like this:
+
+match any of several values of C<$^O> like this:
+
+    package Devel::AssertOS::FreeSoftware;
+    use Devel::CheckOS;
+    $VERSION = '1.0';
+    sub matches { return qw(Linux FreeBSD NetBSD OpenBSD DragonflyBSD); }
+    sub os_is { Devel::CheckOS::os_is(matches()); }
+    sub expn { "The operating system is free-as-in-beer" }
+    Devel::CheckOS::die_unsupported() unless(os_is());
+
+You may also add a subroutine called C<expn> which should return a small
+snippet of explanatory text.  Again, see Devel::AssertOS::Unix for an
+example.  This is particularly useful for 'family' modules.
+
+Note the C<matches> subroutine - this is so that people can query your
+module and see what OSes are in your family.
+
+=head1 VERSIONS OF AN OS
+
+Two levels of name are supported.  So C<Devel::AssertOS::Linux::v2_6> is
+legal.  More than two levels are not supported.  Be careful to pick names
+that are both legal perl package names and legal filenames on all platforms.
+In general, this means anything that matches C</[_a-z]\w*/i>.
+
+=head1 OS FEATURES
+
+I would like to reserve the namespace C<Devel::AssertOS::OSFeatures::*>.
+If you want to release a module that tells the user whether a particular
+feature is available (eg, whether POSIX shell redirection can be expected
+to work) then please discuss it with me first.
+
+=head1 BUGS and FEEDBACK
+
+I welcome feedback about my code, including constructive criticism.
+Bug reports should be made using L<http://rt.cpan.org/> or by email.
+
+If you are feeling particularly generous you can encourage me in my
+open source endeavours by buying me something from my wishlist:
+  L<http://www.cantrell.org.uk/david/wishlist/>
+
+=head1 SEE ALSO
+
+L<Devel::CheckOS>
+
+$^O in L<perlvar>
+
+L<perlport>
+
+=head1 AUTHOR
+
+David Cantrell E<lt>F<david@cantrell.org.uk>E<gt>
+
+Thanks to David Golden for the name and ideas about the interface, and
+for the cpan-testers-discuss mailing list for prompting me to write it
+in the first place.
+
+=head1 COPYRIGHT and LICENCE
+
+Copyright 2007 - 2014 David Cantrell
+
+This documentation is free-as-in-speech.  It may be used,
+distributed and modified under the terms of the Creative Commons
+Attribution-Share Alike 2.0 UK: England & Wales License, whose
+text you may read at
+L<http://creativecommons.org/licenses/by-sa/2.0/uk/>.
+
+=head1 CONSPIRACY
+
+This documentation is also free-as-in-mason.
+
+=cut
@@ -1,19 +1,16 @@
-# $Id: FreeBSD.pm,v 1.5 2008/10/27 20:31:21 drhyde Exp $
-
-package #
-Devel::AssertOS::FreeBSD;
+package Devel::AssertOS::FreeBSD;
 
 use Devel::CheckOS;
 
-$VERSION = '1.0';
+$VERSION = '1.2';
 
-sub os_is { $^O eq 'freebsd' ? 1 : 0; }
+sub os_is { $^O =~ /^(gnuk)?freebsd$/i ? 1 : 0; }
 
 Devel::CheckOS::die_unsupported() unless(os_is());
 
 =head1 COPYRIGHT and LICENCE
 
-Copyright 2007 - 2008 David Cantrell
+Copyright 2007 - 2014 David Cantrell
 
 This software is free-as-in-speech software, and may be used, distributed, and modified under the terms of either the GNU General Public Licence version 2 or the Artistic Licence. It's up to you which one you use. The full text of the licences can be found in the files GPL2.txt and ARTISTIC.txt, respectively.
 
@@ -0,0 +1,19 @@
+package Devel::AssertOS::GNUkFreeBSD;
+
+use Devel::CheckOS;
+
+$VERSION = '1.1';
+
+sub os_is { $^O =~ /^gnukfreebsd$/i ? 1 : 0; }
+
+Devel::CheckOS::die_unsupported() unless(os_is());
+
+=head1 COPYRIGHT and LICENCE
+
+Copyright 2007 - 2014 David Cantrell
+
+This software is free-as-in-speech software, and may be used, distributed, and modified under the terms of either the GNU General Public Licence version 2 or the Artistic Licence. It's up to you which one you use. The full text of the licences can be found in the files GPL2.txt and ARTISTIC.txt, respectively.
+
+=cut
+
+1;
@@ -0,0 +1,19 @@
+package Devel::AssertOS::HPUX;
+
+use Devel::CheckOS;
+
+$VERSION = '1.2';
+
+sub os_is { $^O =~ /^hpux$/i ? 1 : 0; }
+
+Devel::CheckOS::die_unsupported() unless(os_is());
+
+=head1 COPYRIGHT and LICENCE
+
+Copyright 2007 - 2014 David Cantrell
+
+This software is free-as-in-speech software, and may be used, distributed, and modified under the terms of either the GNU General Public Licence version 2 or the Artistic Licence. It's up to you which one you use. The full text of the licences can be found in the files GPL2.txt and ARTISTIC.txt, respectively.
+
+=cut
+
+1;
@@ -0,0 +1,19 @@
+package Devel::AssertOS::Haiku;
+
+use Devel::CheckOS;
+
+$VERSION = '1.1';
+
+sub os_is { $^O =~ /^haiku$/i ? 1 : 0; }
+
+Devel::CheckOS::die_unsupported() unless(os_is());
+
+=head1 COPYRIGHT and LICENCE
+
+Copyright 2007 - 2014 David Cantrell
+
+This software is free-as-in-speech software, and may be used, distributed, and modified under the terms of either the GNU General Public Licence version 2 or the Artistic Licence. It's up to you which one you use. The full text of the licences can be found in the files GPL2.txt and ARTISTIC.txt, respectively.
+
+=cut
+
+1;
@@ -0,0 +1,19 @@
+package Devel::AssertOS::Interix;
+
+use Devel::CheckOS;
+
+$VERSION = '1.2';
+
+sub os_is { $^O =~ /^interix$/i ? 1 : 0; }
+
+Devel::CheckOS::die_unsupported() unless(os_is());
+
+=head1 COPYRIGHT and LICENCE
+
+Copyright 2007 - 2014 David Cantrell
+
+This software is free-as-in-speech software, and may be used, distributed, and modified under the terms of either the GNU General Public Licence version 2 or the Artistic Licence. It's up to you which one you use. The full text of the licences can be found in the files GPL2.txt and ARTISTIC.txt, respectively.
+
+=cut
+
+1;
@@ -0,0 +1,19 @@
+package Devel::AssertOS::Irix;
+
+use Devel::CheckOS;
+
+$VERSION = '1.2';
+
+sub os_is { $^O =~ /^irix$/i ? 1 : 0; }
+
+Devel::CheckOS::die_unsupported() unless(os_is());
+
+=head1 COPYRIGHT and LICENCE
+
+Copyright 2007 - 2014 David Cantrell
+
+This software is free-as-in-speech software, and may be used, distributed, and modified under the terms of either the GNU General Public Licence version 2 or the Artistic Licence. It's up to you which one you use. The full text of the licences can be found in the files GPL2.txt and ARTISTIC.txt, respectively.
+
+=cut
+
+1;
@@ -0,0 +1,26 @@
+# $Id: v2_6.pm,v 1.4 2008/11/05 22:52:35 drhyde Exp $
+
+package Devel::AssertOS::Linux::v2_6;
+
+use Devel::CheckOS;
+
+$VERSION = '1.3';
+
+sub os_is {
+    Devel::CheckOS::os_is('Linux') &&
+    `uname -r` =~ /^2\.6\./ ? 1 : 0;
+}
+
+sub expn { "The operating system has a Linux 2.6.x series kernel" }
+
+Devel::CheckOS::die_unsupported() unless(os_is());
+
+=head1 COPYRIGHT and LICENCE
+
+Copyright 2007 - 2008 David Cantrell
+
+This software is free-as-in-speech software, and may be used, distributed, and modified under the terms of either the GNU General Public Licence version 2 or the Artistic Licence. It's up to you which one you use. The full text of the licences can be found in the files GPL2.txt and ARTISTIC.txt, respectively.
+
+=cut
+
+1;
@@ -1,19 +1,30 @@
-# $Id: Linux.pm,v 1.5 2008/10/27 20:31:21 drhyde Exp $
-
-package #
-Devel::AssertOS::Linux;
+package Devel::AssertOS::Linux;
 
 use Devel::CheckOS;
 
-$VERSION = '1.1';
+$VERSION = '1.3';
+
 
-sub os_is { $^O eq 'linux' ? 1 : 0; }
+sub subtypes { qw(Android) }
+sub matches { ('Linux', subtypes()) }
+
+sub os_is {
+    (
+        # order is important
+        Devel::CheckOS::os_is(subtypes()) ||
+        $^O =~ /^linux$/i
+    ) ? 1 : 0;
+}
 
 Devel::CheckOS::die_unsupported() unless(os_is());
 
+sub expn {
+    "The operating system has a Linux kernel"
+}
+
 =head1 COPYRIGHT and LICENCE
 
-Copyright 2007 - 2008 David Cantrell
+Copyright 2007 - 2014 David Cantrell
 
 This software is free-as-in-speech software, and may be used, distributed, and modified under the terms of either the GNU General Public Licence version 2 or the Artistic Licence. It's up to you which one you use. The full text of the licences can be found in the files GPL2.txt and ARTISTIC.txt, respectively.
 
@@ -0,0 +1,19 @@
+package Devel::AssertOS::MPEiX;
+
+use Devel::CheckOS;
+
+$VERSION = '1.2';
+
+sub os_is { $^O =~ /^mpeix$/i ? 1 : 0; }
+
+Devel::CheckOS::die_unsupported() unless(os_is());
+
+=head1 COPYRIGHT and LICENCE
+
+Copyright 2007 - 2014 David Cantrell
+
+This software is free-as-in-speech software, and may be used, distributed, and modified under the terms of either the GNU General Public Licence version 2 or the Artistic Licence. It's up to you which one you use. The full text of the licences can be found in the files GPL2.txt and ARTISTIC.txt, respectively.
+
+=cut
+
+1;
@@ -0,0 +1,19 @@
+package Devel::AssertOS::MSDOS;
+
+use Devel::CheckOS;
+
+$VERSION = '1.2';
+
+sub os_is { $^O =~ /^dos$/i ? 1 : 0; }
+
+Devel::CheckOS::die_unsupported() unless(os_is());
+
+=head1 COPYRIGHT and LICENCE
+
+Copyright 2007 - 2014 David Cantrell
+
+This software is free-as-in-speech software, and may be used, distributed, and modified under the terms of either the GNU General Public Licence version 2 or the Artistic Licence. It's up to you which one you use. The full text of the licences can be found in the files GPL2.txt and ARTISTIC.txt, respectively.
+
+=cut
+
+1;
@@ -0,0 +1,26 @@
+package Devel::AssertOS::MSWin32;
+
+use Devel::CheckOS;
+
+$VERSION = '1.3';
+
+sub os_is { $^O =~ /^MSWin32$/i ? 1 : 0; }
+
+sub expn {
+join("\n",
+"The operating system is Microsoft Windows, and perl was built using",
+"the Win32 API"
+)
+}
+
+Devel::CheckOS::die_unsupported() unless(os_is());
+
+=head1 COPYRIGHT and LICENCE
+
+Copyright 2007 - 2014 David Cantrell
+
+This software is free-as-in-speech software, and may be used, distributed, and modified under the terms of either the GNU General Public Licence version 2 or the Artistic Licence. It's up to you which one you use. The full text of the licences can be found in the files GPL2.txt and ARTISTIC.txt, respectively.
+
+=cut
+
+1;
@@ -0,0 +1,26 @@
+# $Id: v10_4.pm,v 1.4 2008/11/05 22:52:35 drhyde Exp $
+
+package Devel::AssertOS::MacOSX::v10_4;
+
+use Devel::CheckOS;
+
+$VERSION = '1.3';
+
+sub os_is {
+    Devel::CheckOS::os_is('MacOSX') &&
+    `sw_vers -productVersion` =~ /^10\.4\./ ? 1 : 0;
+}
+
+sub expn { "The operating system is some version of OS X Tiger (10.4)" }
+
+Devel::CheckOS::die_unsupported() unless(os_is());
+
+=head1 COPYRIGHT and LICENCE
+
+Copyright 2007 - 2008 David Cantrell
+
+This software is free-as-in-speech software, and may be used, distributed, and modified under the terms of either the GNU General Public Licence version 2 or the Artistic Licence. It's up to you which one you use. The full text of the licences can be found in the files GPL2.txt and ARTISTIC.txt, respectively.
+
+=cut
+
+1;
@@ -0,0 +1,24 @@
+package Devel::AssertOS::MacOSX::v10_5;
+
+use Devel::CheckOS;
+
+$VERSION = '1.0';
+
+sub os_is {
+    Devel::CheckOS::os_is('MacOSX') &&
+    `sw_vers -productVersion` =~ /^10\.5\./ ? 1 : 0;
+}
+
+sub expn { "The operating system is some version of OS X Leopard (10.5)" }
+
+Devel::CheckOS::die_unsupported() unless(os_is());
+
+=head1 COPYRIGHT and LICENCE
+
+Copyright 2007 - 2008 David Cantrell
+
+This software is free-as-in-speech software, and may be used, distributed, and modified under the terms of either the GNU General Public Licence version 2 or the Artistic Licence. It's up to you which one you use. The full text of the licences can be found in the files GPL2.txt and ARTISTIC.txt, respectively.
+
+=cut
+
+1;
@@ -1,19 +1,16 @@
-# $Id: MacOSX.pm,v 1.3 2008/10/27 20:31:21 drhyde Exp $
-
-package #
-Devel::AssertOS::MacOSX;
+package Devel::AssertOS::MacOSX;
 
 use Devel::CheckOS;
 
-$VERSION = '1.1';
+$VERSION = '1.2';
 
-sub os_is { $^O eq 'darwin' ? 1 : 0; }
+sub os_is { $^O =~ /^darwin$/i ? 1 : 0; }
 
 Devel::CheckOS::die_unsupported() unless(os_is());
 
 =head1 COPYRIGHT and LICENCE
 
-Copyright 2007 - 2008 David Cantrell
+Copyright 2007 - 2014 David Cantrell
 
 This software is free-as-in-speech software, and may be used, distributed, and modified under the terms of either the GNU General Public Licence version 2 or the Artistic Licence. It's up to you which one you use. The full text of the licences can be found in the files GPL2.txt and ARTISTIC.txt, respectively.
 
@@ -0,0 +1,19 @@
+package Devel::AssertOS::MacOSclassic;
+
+use Devel::CheckOS;
+
+$VERSION = '1.2';
+
+sub os_is { $^O =~ /^MacOS$/i ? 1 : 0; }
+
+Devel::CheckOS::die_unsupported() unless(os_is());
+
+=head1 COPYRIGHT and LICENCE
+
+Copyright 2007 - 2014 David Cantrell
+
+This software is free-as-in-speech software, and may be used, distributed, and modified under the terms of either the GNU General Public Licence version 2 or the Artistic Licence. It's up to you which one you use. The full text of the licences can be found in the files GPL2.txt and ARTISTIC.txt, respectively.
+
+=cut
+
+1;
@@ -0,0 +1,26 @@
+package Devel::AssertOS::MachTen;
+
+use Devel::CheckOS;
+
+$VERSION = '1.2';
+
+sub os_is { $^O =~ /^machten$/i ? 1 : 0; }
+
+sub expn {
+join("\n",
+"You're using the Mach Ten BSD-compatible environment on top of",
+"Mac OS 'Classic' - ie, a pre-OS-X version of Mac OS.",
+)
+}
+
+Devel::CheckOS::die_unsupported() unless(os_is());
+
+=head1 COPYRIGHT and LICENCE
+
+Copyright 2007 - 2014 David Cantrell
+
+This software is free-as-in-speech software, and may be used, distributed, and modified under the terms of either the GNU General Public Licence version 2 or the Artistic Licence. It's up to you which one you use. The full text of the licences can be found in the files GPL2.txt and ARTISTIC.txt, respectively.
+
+=cut
+
+1;
@@ -0,0 +1,23 @@
+# $Id: MicrosoftWindows.pm,v 1.6 2008/11/05 22:52:34 drhyde Exp $
+
+package Devel::AssertOS::MicrosoftWindows;
+
+use Devel::CheckOS;
+
+$VERSION = '1.3';
+
+sub matches { return qw(Cygwin MSWin32); }
+sub os_is { Devel::CheckOS::os_is(matches()); }
+Devel::CheckOS::die_unsupported() unless(os_is());
+
+sub expn { "The operating system is some version of Microsoft Windows" }
+
+=head1 COPYRIGHT and LICENCE
+
+Copyright 2007 - 2008 David Cantrell
+
+This software is free-as-in-speech software, and may be used, distributed, and modified under the terms of either the GNU General Public Licence version 2 or the Artistic Licence. It's up to you which one you use. The full text of the licences can be found in the files GPL2.txt and ARTISTIC.txt, respectively.
+
+=cut
+
+1;
@@ -0,0 +1,19 @@
+package Devel::AssertOS::MidnightBSD;
+
+use Devel::CheckOS;
+
+$VERSION = '1.1';
+
+sub os_is { $^O =~ /^midnightbsd$/i ? 1 : 0; }
+
+Devel::CheckOS::die_unsupported() unless(os_is());
+
+=head1 COPYRIGHT and LICENCE
+
+Copyright 2007 - 2014 David Cantrell
+
+This software is free-as-in-speech software, and may be used, distributed, and modified under the terms of either the GNU General Public Licence version 2 or the Artistic Licence. It's up to you which one you use. The full text of the licences can be found in the files GPL2.txt and ARTISTIC.txt, respectively.
+
+=cut
+
+1;
@@ -0,0 +1,19 @@
+package Devel::AssertOS::MirOSBSD;
+
+use Devel::CheckOS;
+
+$VERSION = '1.2';
+
+sub os_is { $^O =~ /^mirbsd$/i ? 1 : 0; }
+
+Devel::CheckOS::die_unsupported() unless(os_is());
+
+=head1 COPYRIGHT and LICENCE
+
+Copyright 2007 - 2014 David Cantrell
+
+This software is free-as-in-speech software, and may be used, distributed, and modified under the terms of either the GNU General Public Licence version 2 or the Artistic Licence. It's up to you which one you use. The full text of the licences can be found in the files GPL2.txt and ARTISTIC.txt, respectively.
+
+=cut
+
+1;
@@ -0,0 +1,19 @@
+package Devel::AssertOS::NeXT;
+
+use Devel::CheckOS;
+
+$VERSION = '1.2';
+
+sub os_is { $^O =~ /^next$/i ? 1 : 0; }
+
+Devel::CheckOS::die_unsupported() unless(os_is());
+
+=head1 COPYRIGHT and LICENCE
+
+Copyright 2007 - 2014 David Cantrell
+
+This software is free-as-in-speech software, and may be used, distributed, and modified under the terms of either the GNU General Public Licence version 2 or the Artistic Licence. It's up to you which one you use. The full text of the licences can be found in the files GPL2.txt and ARTISTIC.txt, respectively.
+
+=cut
+
+1;
@@ -1,19 +1,16 @@
-# $Id: NetBSD.pm,v 1.3 2008/10/27 20:31:21 drhyde Exp $
-
-package #
-Devel::AssertOS::NetBSD;
+package Devel::AssertOS::NetBSD;
 
 use Devel::CheckOS;
 
-$VERSION = '1.1';
+$VERSION = '1.2';
 
-sub os_is { $^O eq 'netbsd' ? 1 : 0; }
+sub os_is { $^O =~ /^netbsd$/i ? 1 : 0; }
 
 Devel::CheckOS::die_unsupported() unless(os_is());
 
 =head1 COPYRIGHT and LICENCE
 
-Copyright 2007 - 2008 David Cantrell
+Copyright 2007 - 2014 David Cantrell
 
 This software is free-as-in-speech software, and may be used, distributed, and modified under the terms of either the GNU General Public Licence version 2 or the Artistic Licence. It's up to you which one you use. The full text of the licences can be found in the files GPL2.txt and ARTISTIC.txt, respectively.
 
@@ -0,0 +1,19 @@
+package Devel::AssertOS::Netware;
+
+use Devel::CheckOS;
+
+$VERSION = '1.2';
+
+sub os_is { $^O =~ /^netware$/i ? 1 : 0; }
+
+Devel::CheckOS::die_unsupported() unless(os_is());
+
+=head1 COPYRIGHT and LICENCE
+
+Copyright 2007 - 2014 David Cantrell
+
+This software is free-as-in-speech software, and may be used, distributed, and modified under the terms of either the GNU General Public Licence version 2 or the Artistic Licence. It's up to you which one you use. The full text of the licences can be found in the files GPL2.txt and ARTISTIC.txt, respectively.
+
+=cut
+
+1;
@@ -0,0 +1,19 @@
+package Devel::AssertOS::OS2;
+
+use Devel::CheckOS;
+
+$VERSION = '1.1';
+
+sub os_is { $^O =~ /^os2$/i ? 1 : 0; }
+
+Devel::CheckOS::die_unsupported() unless(os_is());
+
+=head1 COPYRIGHT and LICENCE
+
+Copyright 2007 - 2014 David Cantrell
+
+This software is free-as-in-speech software, and may be used, distributed, and modified under the terms of either the GNU General Public Licence version 2 or the Artistic Licence. It's up to you which one you use. The full text of the licences can be found in the files GPL2.txt and ARTISTIC.txt, respectively.
+
+=cut
+
+1;
@@ -0,0 +1,21 @@
+package Devel::AssertOS::OS390;
+
+use Devel::CheckOS;
+
+$VERSION = '1.2';
+
+sub os_is { $^O =~ /^os390$/i ? 1 : 0; }
+
+sub expn { "OS390 is also known as z/OS" }
+
+Devel::CheckOS::die_unsupported() unless(os_is());
+
+=head1 COPYRIGHT and LICENCE
+
+Copyright 2007 - 2014 David Cantrell
+
+This software is free-as-in-speech software, and may be used, distributed, and modified under the terms of either the GNU General Public Licence version 2 or the Artistic Licence. It's up to you which one you use. The full text of the licences can be found in the files GPL2.txt and ARTISTIC.txt, respectively.
+
+=cut
+
+1;
@@ -0,0 +1,19 @@
+package Devel::AssertOS::OS400;
+
+use Devel::CheckOS;
+
+$VERSION = '1.2';
+
+sub os_is { $^O =~ /^os400$/i ? 1 : 0; }
+
+Devel::CheckOS::die_unsupported() unless(os_is());
+
+=head1 COPYRIGHT and LICENCE
+
+Copyright 2007 - 2014 David Cantrell
+
+This software is free-as-in-speech software, and may be used, distributed, and modified under the terms of either the GNU General Public Licence version 2 or the Artistic Licence. It's up to you which one you use. The full text of the licences can be found in the files GPL2.txt and ARTISTIC.txt, respectively.
+
+=cut
+
+1;
@@ -0,0 +1,21 @@
+package Devel::AssertOS::OSF;
+
+use Devel::CheckOS;
+
+$VERSION = '1.2';
+
+sub os_is { $^O =~ /^dec_osf$/i ? 1 : 0; }
+
+sub expn { "OSF is also known as OSF/1, Digital Unix, and Tru64 Unix" }
+
+Devel::CheckOS::die_unsupported() unless(os_is());
+
+=head1 COPYRIGHT and LICENCE
+
+Copyright 2007 - 2014 David Cantrell
+
+This software is free-as-in-speech software, and may be used, distributed, and modified under the terms of either the GNU General Public Licence version 2 or the Artistic Licence. It's up to you which one you use. The full text of the licences can be found in the files GPL2.txt and ARTISTIC.txt, respectively.
+
+=cut
+
+1;
@@ -0,0 +1,43 @@
+# $Id: POSIXShellRedirection.pm,v 1.3 2008/11/05 22:52:35 drhyde Exp $
+
+package Devel::AssertOS::OSFeatures::POSIXShellRedirection;
+
+$VERSION = '1.4';
+
+use Devel::CheckOS;
+
+sub matches { return qw(Unix Cygwin BeOS VOS); }
+sub os_is { Devel::CheckOS::os_is(matches()); }
+Devel::CheckOS::die_unsupported() unless(os_is());
+
+sub expn {
+join("\n",
+"The operating system's normal shell(s) support POSIX-style redirection",
+"such as:",
+"  foo |  more    (piping from one command to another)",
+"  foo >  file    (redirection of STDOUT to a file)",
+"  foo 2> file    (redirection of STDERR to a file)",
+"  foo <  file    (redirection of STDIN from a file)",
+"and so on"
+)
+}
+
+=head1 NAME
+
+Devel::AssertOS::OSFeatures::POSIXShellRedirection - check whether
+the OS we're running on can be expected to support POSIX shell
+redirection.
+
+=head1 SYNOPSIS
+
+See L<Devel::CheckOS> and L<Devel::AssertOS>
+
+=head1 COPYRIGHT and LICENCE
+
+Copyright 2007 - 2008 David Cantrell
+
+This software is free-as-in-speech software, and may be used, distributed, and modified under the terms of either the GNU General Public Licence version 2 or the Artistic Licence. It's up to you which one you use. The full text of the licences can be found in the files GPL2.txt and ARTISTIC.txt, respectively.
+
+=cut
+
+1;
@@ -1,19 +1,16 @@
-# $Id: OpenBSD.pm,v 1.3 2008/10/27 20:31:21 drhyde Exp $
-
-package #
-Devel::AssertOS::OpenBSD;
+package Devel::AssertOS::OpenBSD;
 
 use Devel::CheckOS;
 
-$VERSION = '1.1';
+$VERSION = '1.2';
 
-sub os_is { $^O eq 'openbsd' ? 1 : 0; }
+sub os_is { $^O =~ /^openbsd$/i ? 1 : 0; }
 
 Devel::CheckOS::die_unsupported() unless(os_is());
 
 =head1 COPYRIGHT and LICENCE
 
-Copyright 2007 - 2008 David Cantrell
+Copyright 2007 - 2014 David Cantrell
 
 This software is free-as-in-speech software, and may be used, distributed, and modified under the terms of either the GNU General Public Licence version 2 or the Artistic Licence. It's up to you which one you use. The full text of the licences can be found in the files GPL2.txt and ARTISTIC.txt, respectively.
 
@@ -0,0 +1,19 @@
+package Devel::AssertOS::POSIXBC;
+
+use Devel::CheckOS;
+
+$VERSION = '1.2';
+
+sub os_is { $^O =~ /^posix-bc$/i ? 1 : 0; }
+
+Devel::CheckOS::die_unsupported() unless(os_is());
+
+=head1 COPYRIGHT and LICENCE
+
+Copyright 2007 - 2014 David Cantrell
+
+This software is free-as-in-speech software, and may be used, distributed, and modified under the terms of either the GNU General Public Licence version 2 or the Artistic Licence. It's up to you which one you use. The full text of the licences can be found in the files GPL2.txt and ARTISTIC.txt, respectively.
+
+=cut
+
+1;
@@ -0,0 +1,21 @@
+package Devel::AssertOS::QNX::Neutrino;
+
+use Devel::CheckOS;
+
+$VERSION = '1.1';
+
+sub os_is { $^O =~ /^nto$/i ? 1 : 0; }
+
+sub expn { "The operating system is version 6 of QNX, also known as Neutrino" }
+
+Devel::CheckOS::die_unsupported() unless(os_is());
+
+=head1 COPYRIGHT and LICENCE
+
+Copyright 2007 - 2014 David Cantrell
+
+This software is free-as-in-speech software, and may be used, distributed, and modified under the terms of either the GNU General Public Licence version 2 or the Artistic Licence. It's up to you which one you use. The full text of the licences can be found in the files GPL2.txt and ARTISTIC.txt, respectively.
+
+=cut
+
+1;
@@ -0,0 +1,21 @@
+package Devel::AssertOS::QNX::v4;
+
+use Devel::CheckOS;
+
+$VERSION = '1.1';
+
+sub os_is { $^O =~ /^qnx$/i ? 1 : 0; }
+
+sub expn { "The operating system is version 4 of QNX" }
+
+Devel::CheckOS::die_unsupported() unless(os_is());
+
+=head1 COPYRIGHT and LICENCE
+
+Copyright 2007 - 2014 David Cantrell
+
+This software is free-as-in-speech software, and may be used, distributed, and modified under the terms of either the GNU General Public Licence version 2 or the Artistic Licence. It's up to you which one you use. The full text of the licences can be found in the files GPL2.txt and ARTISTIC.txt, respectively.
+
+=cut
+
+1;
@@ -0,0 +1,27 @@
+# $Id: QNX.pm,v 1.2 2008/10/27 20:31:21 drhyde Exp $
+
+package Devel::AssertOS::QNX;
+
+use Devel::CheckOS;
+
+$VERSION = '1.2';
+
+sub matches { return qw(QNX::v4 QNX::Neutrino); }
+sub os_is { Devel::CheckOS::os_is(matches()); }
+sub expn {
+join("\n", 
+"All versions of QNX match this, as well as (possibly) a more specific",
+"match"
+)
+}
+Devel::CheckOS::die_unsupported() unless(os_is());
+
+=head1 COPYRIGHT and LICENCE
+
+Copyright 2007 - 2008 David Cantrell
+
+This software is free-as-in-speech software, and may be used, distributed, and modified under the terms of either the GNU General Public Licence version 2 or the Artistic Licence. It's up to you which one you use. The full text of the licences can be found in the files GPL2.txt and ARTISTIC.txt, respectively.
+
+=cut
+
+1;
@@ -0,0 +1,21 @@
+package Devel::AssertOS::RISCOS;
+
+use Devel::CheckOS;
+
+$VERSION = '1.2';
+
+sub os_is { $^O =~ /^riscos$/i ? 1 : 0; }
+
+sub expn { "This is the Acorn operating system, not the MIPS RISC/os system" }
+
+Devel::CheckOS::die_unsupported() unless(os_is());
+
+=head1 COPYRIGHT and LICENCE
+
+Copyright 2007 - 2014 David Cantrell
+
+This software is free-as-in-speech software, and may be used, distributed, and modified under the terms of either the GNU General Public Licence version 2 or the Artistic Licence. It's up to you which one you use. The full text of the licences can be found in the files GPL2.txt and ARTISTIC.txt, respectively.
+
+=cut
+
+1;
@@ -0,0 +1,23 @@
+# $Id: Realtime.pm,v 1.3 2008/11/05 22:52:34 drhyde Exp $
+
+package Devel::AssertOS::Realtime;
+
+use Devel::CheckOS;
+
+$VERSION = '1.2';
+
+sub matches { return qw(QNX); }
+sub os_is { Devel::CheckOS::os_is(matches()); }
+Devel::CheckOS::die_unsupported() unless(os_is());
+
+sub expn { "This is a realtime operating system" }
+
+=head1 COPYRIGHT and LICENCE
+
+Copyright 2007 - 2008 David Cantrell
+
+This software is free-as-in-speech software, and may be used, distributed, and modified under the terms of either the GNU General Public Licence version 2 or the Artistic Licence. It's up to you which one you use. The full text of the licences can be found in the files GPL2.txt and ARTISTIC.txt, respectively.
+
+=cut
+
+1;
@@ -0,0 +1,19 @@
+package Devel::AssertOS::SCO;
+
+use Devel::CheckOS;
+
+$VERSION = '1.2';
+
+sub os_is { $^O =~ /^sco_sv$/i ? 1 : 0; }
+
+Devel::CheckOS::die_unsupported() unless(os_is());
+
+=head1 COPYRIGHT and LICENCE
+
+Copyright 2007 - 2014 David Cantrell
+
+This software is free-as-in-speech software, and may be used, distributed, and modified under the terms of either the GNU General Public Licence version 2 or the Artistic Licence. It's up to you which one you use. The full text of the licences can be found in the files GPL2.txt and ARTISTIC.txt, respectively.
+
+=cut
+
+1;
@@ -0,0 +1,19 @@
+package Devel::AssertOS::Solaris;
+
+use Devel::CheckOS;
+
+$VERSION = '1.2';
+
+sub os_is { $^O =~ /^solaris$/i ? 1 : 0; }
+
+Devel::CheckOS::die_unsupported() unless(os_is());
+
+=head1 COPYRIGHT and LICENCE
+
+Copyright 2007 - 2014 David Cantrell
+
+This software is free-as-in-speech software, and may be used, distributed, and modified under the terms of either the GNU General Public Licence version 2 or the Artistic Licence. It's up to you which one you use. The full text of the licences can be found in the files GPL2.txt and ARTISTIC.txt, respectively.
+
+=cut
+
+1;
@@ -0,0 +1,23 @@
+# $Id: Sun.pm,v 1.5 2008/11/05 22:52:34 drhyde Exp $
+
+package Devel::AssertOS::Sun;
+
+use Devel::CheckOS;
+
+$VERSION = '1.3';
+
+sub matches { return qw(SunOS Solaris); }
+sub os_is { Devel::CheckOS::os_is(matches()); }
+Devel::CheckOS::die_unsupported() unless(os_is());
+
+sub expn { "The operating system is from Sun Microsystems" }
+
+=head1 COPYRIGHT and LICENCE
+
+Copyright 2007 - 2008 David Cantrell
+
+This software is free-as-in-speech software, and may be used, distributed, and modified under the terms of either the GNU General Public Licence version 2 or the Artistic Licence. It's up to you which one you use. The full text of the licences can be found in the files GPL2.txt and ARTISTIC.txt, respectively.
+
+=cut
+
+1;
@@ -0,0 +1,19 @@
+package Devel::AssertOS::SunOS;
+
+use Devel::CheckOS;
+
+$VERSION = '1.2';
+
+sub os_is { $^O =~ /^sunos$/i ? 1 : 0; }
+
+Devel::CheckOS::die_unsupported() unless(os_is());
+
+=head1 COPYRIGHT and LICENCE
+
+Copyright 2007 - 2014 David Cantrell
+
+This software is free-as-in-speech software, and may be used, distributed, and modified under the terms of either the GNU General Public Licence version 2 or the Artistic Licence. It's up to you which one you use. The full text of the licences can be found in the files GPL2.txt and ARTISTIC.txt, respectively.
+
+=cut
+
+1;
@@ -0,0 +1,19 @@
+package Devel::AssertOS::SysVr4;
+
+use Devel::CheckOS;
+
+$VERSION = '1.2';
+
+sub os_is { $^O =~ /^svr4$/i ? 1 : 0; }
+
+Devel::CheckOS::die_unsupported() unless(os_is());
+
+=head1 COPYRIGHT and LICENCE
+
+Copyright 2007 - 2014 David Cantrell
+
+This software is free-as-in-speech software, and may be used, distributed, and modified under the terms of either the GNU General Public Licence version 2 or the Artistic Licence. It's up to you which one you use. The full text of the licences can be found in the files GPL2.txt and ARTISTIC.txt, respectively.
+
+=cut
+
+1;
@@ -0,0 +1,19 @@
+package Devel::AssertOS::SysVr5;
+
+use Devel::CheckOS;
+
+$VERSION = '1.2';
+
+sub os_is { $^O =~ /^svr5$/i ? 1 : 0; }
+
+Devel::CheckOS::die_unsupported() unless(os_is());
+
+=head1 COPYRIGHT and LICENCE
+
+Copyright 2007 - 2014 David Cantrell
+
+This software is free-as-in-speech software, and may be used, distributed, and modified under the terms of either the GNU General Public Licence version 2 or the Artistic Licence. It's up to you which one you use. The full text of the licences can be found in the files GPL2.txt and ARTISTIC.txt, respectively.
+
+=cut
+
+1;
@@ -0,0 +1,19 @@
+package Devel::AssertOS::Unicos;
+
+use Devel::CheckOS;
+
+$VERSION = '1.2';
+
+sub os_is { $^O =~ /^unicos(mk)?$/i ? 1 : 0; }
+
+Devel::CheckOS::die_unsupported() unless(os_is());
+
+=head1 COPYRIGHT and LICENCE
+
+Copyright 2007 - 2014 David Cantrell
+
+This software is free-as-in-speech software, and may be used, distributed, and modified under the terms of either the GNU General Public Licence version 2 or the Artistic Licence. It's up to you which one you use. The full text of the licences can be found in the files GPL2.txt and ARTISTIC.txt, respectively.
+
+=cut
+
+1;
@@ -0,0 +1,37 @@
+package Devel::AssertOS::Unix;
+
+use Devel::CheckOS;
+
+$VERSION = '1.5';
+
+# list of OSes originally lifted from Module::Build 0.2808
+#
+sub matches {
+    return qw(
+        AIX Android Bitrig BSDOS DGUX DragonflyBSD Dynix FreeBSD HPUX Interix Irix
+        Linux MachTen MacOSX MirOSBSD NetBSD OpenBSD OSF QNX SCO Solaris
+        SunOS SysVr4 SysVr5 Unicos MidnightBSD
+    );
+}
+sub os_is { Devel::CheckOS::os_is(matches()); }
+Devel::CheckOS::die_unsupported() unless(os_is());
+
+sub expn {
+join("\n", 
+"The OS supports multiple concurrent users, devices are represented as",
+"pseudo-files in /dev, there is a single root to the filesystem, users",
+"are protected from interference from other users, and the API is POSIXy.",
+"It should be reasonably easy to port a simple text-mode C program",
+"between Unixes."
+)
+}
+
+=head1 COPYRIGHT and LICENCE
+
+Copyright 2007 - 2014 David Cantrell
+
+This software is free-as-in-speech software, and may be used, distributed, and modified under the terms of either the GNU General Public Licence version 2 or the Artistic Licence. It's up to you which one you use. The full text of the licences can be found in the files GPL2.txt and ARTISTIC.txt, respectively.
+
+=cut
+
+1;
@@ -0,0 +1,19 @@
+package Devel::AssertOS::VMESA;
+
+use Devel::CheckOS;
+
+$VERSION = '1.2';
+
+sub os_is { $^O =~ /^vmesa$/i ? 1 : 0; }
+
+Devel::CheckOS::die_unsupported() unless(os_is());
+
+=head1 COPYRIGHT and LICENCE
+
+Copyright 2007 - 2014 David Cantrell
+
+This software is free-as-in-speech software, and may be used, distributed, and modified under the terms of either the GNU General Public Licence version 2 or the Artistic Licence. It's up to you which one you use. The full text of the licences can be found in the files GPL2.txt and ARTISTIC.txt, respectively.
+
+=cut
+
+1;
@@ -0,0 +1,19 @@
+package Devel::AssertOS::VMS;
+
+use Devel::CheckOS;
+
+$VERSION = '1.2';
+
+sub os_is { $^O =~ /^VMS$/i ? 1 : 0; }
+
+Devel::CheckOS::die_unsupported() unless(os_is());
+
+=head1 COPYRIGHT and LICENCE
+
+Copyright 2007 - 2014 David Cantrell
+
+This software is free-as-in-speech software, and may be used, distributed, and modified under the terms of either the GNU General Public Licence version 2 or the Artistic Licence. It's up to you which one you use. The full text of the licences can be found in the files GPL2.txt and ARTISTIC.txt, respectively.
+
+=cut
+
+1;
@@ -0,0 +1,19 @@
+package Devel::AssertOS::VOS;
+
+use Devel::CheckOS;
+
+$VERSION = '1.2';
+
+sub os_is { $^O =~ /^vos$/i ? 1 : 0; }
+
+Devel::CheckOS::die_unsupported() unless(os_is());
+
+=head1 COPYRIGHT and LICENCE
+
+Copyright 2007 - 2014 David Cantrell
+
+This software is free-as-in-speech software, and may be used, distributed, and modified under the terms of either the GNU General Public Licence version 2 or the Artistic Licence. It's up to you which one you use. The full text of the licences can be found in the files GPL2.txt and ARTISTIC.txt, respectively.
+
+=cut
+
+1;
@@ -1,7 +1,4 @@
-# $Id: AssertOS.pm,v 1.5 2008/10/27 20:31:21 drhyde Exp $
-
-package #
-Devel::AssertOS;
+package Devel::AssertOS;
 
 use Devel::CheckOS;
 
@@ -9,7 +6,7 @@ use strict;
 
 use vars qw($VERSION);
 
-$VERSION = '1.1';
+$VERSION = '1.21';
 
 # localising prevents the warningness leaking out of this module
 local $^W = 1;    # use warnings is a 5.6-ism
@@ -29,12 +26,33 @@ do this:
 which will die unless the platform the code is running on is Linux, FreeBSD
 or Cygwin.
 
+To assert that the OS is B<not> a specific platform, prepend the platform name
+with a minus sign. For example, to run on anything but Amiga, do:
+
+    use Devel::AssertOS qw(-Amiga);
+
+
 =cut
 
 sub import {
     shift;
     die("Devel::AssertOS needs at least one parameter\n") unless(@_);
-    Devel::CheckOS::die_if_os_isnt(@_);
+
+    my @oses = @_;
+
+    my ( @must, @must_not );
+
+    for my $os ( @oses ) {
+        if ( $os =~ s/^-// ) {
+            push @must_not, $os;
+        }
+        else {
+            push @must, $os;
+        }
+    }
+
+    Devel::CheckOS::die_if_os_is(@must_not) if @must_not;
+    Devel::CheckOS::die_if_os_isnt(@must)   if @must;
 }
 
 =head1 BUGS and FEEDBACK
@@ -0,0 +1,73 @@
+=head1 NAME
+
+Devel::CheckOS::Families - what OS "families" are supported "out of the
+box" by Devel::CheckOS and Devel::AssertOS?
+
+=head1 WHAT IS AN OS FAMILY
+
+Computing platforms fall into several categories.  For example, there is
+the category of Unix-a-likes.  Each of these categories is a "family".
+A platform can fall into several families.
+
+=head1 THE Unix FAMILY
+
+Broadly speaking, these are platforms where:
+
+=over
+
+=item Devices are represented as pseudo-files in the filesystem
+
+=item Symlinks and hardlinks are supported in at least some filesystems
+
+=item "Unix-style" permissions are supported
+
+That is, there are seperate read/write/execute permissions for file owner,
+group and anyone.  This implies the presence of multiple user accounts
+and user groups.  Permissions may not be supported on all filesystems.
+
+=item The filesystem has a single root
+
+=item The C API for the operating system is largely POSIX-compatible
+
+=back
+
+=head1 THE Linux FAMILY
+
+This includes both ordinary Linux and Android. Plain old Linux will
+match 'Linux'. Android will match both that and 'Android'.
+
+=head1 THE MicrosoftWindows FAMILY
+
+This includes any version of Windows and also includes things like
+Cygwin which run on top of it.
+
+=head1 THE DEC, Sun, and Apple FAMILIES
+
+These include any OS written by, respectively, DEC, Sun, and Apple.
+They exist because, while, eg, Mac OS Classic and Mac OS X are very
+different platforms, they do support some unique features - such as
+AppleScript.
+
+=head1 THE Realtime FAMILY
+
+This is for all real-time OSes.  So far, it only includes QNX.
+
+=head1 THE EBCDIC FAMILY
+
+OSes which use EBCDIC instead of ASCII.
+
+=head1 AUTHOR, COPYRIGHT and LICENCE
+
+Copyright 2008 - 2010 David Cantrell E<lt>F<david@cantrell.org.uk>E<gt>
+
+This documentation is free-as-in-speech.  It may be used,
+distributed and modified under the terms of the Creative Commons
+Attribution-Share Alike 2.0 UK: England & Wales License, whose
+text you may read at
+L<http://creativecommons.org/licenses/by-sa/2.0/uk/>.
+
+=head1 CONSPIRACY
+
+This documentation is also free-as-in-mason.
+
+=cut
@@ -1,14 +1,11 @@
-# $Id: CheckOS.pm,v 1.32 2008/11/11 23:49:49 drhyde Exp $
-
-package #
-Devel::CheckOS;
+package Devel::CheckOS;
 
 use strict;
 use Exporter;
 
 use vars qw($VERSION @ISA @EXPORT_OK %EXPORT_TAGS);
 
-$VERSION = '1.61';
+$VERSION = '1.73';
 
 # localising prevents the warningness leaking out of this module
 local $^W = 1;    # use warnings is a 5.6-ism
@@ -309,13 +306,20 @@ Thanks to Matt Kraai for information about QNX.
 Thanks to Kenichi Ishigaki and Gabor Szabo for reporting a bug on Windows,
 and to the former for providing a patch.
 
-=head1 CVS
+Thanks to Paul Green for some information about VOS.
+
+Thanks to Yanick Champoux for a patch to let Devel::AssertOS support
+negative assertions.
+
+Thanks to Brian Fraser for adding Android support.
+
+=head1 SOURCE CODE REPOSITORY
 
-L<http://drhyde.cvs.sourceforge.net/drhyde/perlmodules/Devel-CheckOS/>
+L<git://github.com/DrHyde/perl-modules-Devel-CheckOS.git>
 
 =head1 COPYRIGHT and LICENCE
 
-Copyright 2007 David Cantrell
+Copyright 2007-2012 David Cantrell
 
 This software is free-as-in-speech software, and may be used, distributed, and modified under the terms of either the GNU General Public Licence version 2 or the Artistic Licence. It's up to you which one you use. The full text of the licences can be found in the files GPL2.txt and ARTISTIC.txt, respectively.
 
@@ -7,7 +7,7 @@ use base 'Exporter';
 
 our @EXPORT = qw(sysctl_kern_boottime sysctl_vm_loadavg);
 
-our $VERSION='0.3701';
+our $VERSION='0.4000';
 $VERSION = eval $VERSION;
 
 require XSLoader;
@@ -15,3 +15,16 @@ XSLoader::load('Unix::Uptime::BSD::XS', $VERSION);
 
 1;
 
+__END__
+
+=head1 NAME
+
+Unix::Uptime::BSD::XS - XS-based BSD implementation of Unix::Uptime (for Darwin, DragonFly, and *BSD)
+
+=head1 SEE ALSO
+
+L<Unix::Uptime>
+
+=cut
+
+# vim: set ft=perl sw=4 sts=4 et :
@@ -5,7 +5,7 @@ use strict;
 
 my $HAVE_XS = eval { require Unix::Uptime::BSD::XS; };
 
-our $VERSION='0.3701';
+our $VERSION='0.4000';
 $VERSION = eval $VERSION;
 
 sub uptime {
@@ -93,7 +93,7 @@ __END__
 
 =head1 NAME
 
-Unix::Uptime::BSD - BSD implementation of Unix::Uptime (for Darwin, OpenBSD, and NetBSD)
+Unix::Uptime::BSD - BSD implementation of Unix::Uptime (for Darwin, DragonFly, and *BSD)
 
 =head1 SEE ALSO
 
@@ -3,7 +3,7 @@ package Unix::Uptime::Linux;
 use warnings;
 use strict;
 
-our $VERSION='0.3701';
+our $VERSION='0.4000';
 $VERSION = eval $VERSION;
 
 sub uptime {
@@ -3,10 +3,11 @@ package Unix::Uptime;
 use warnings;
 use strict;
 
-our $VERSION='0.3701';
+our $VERSION='0.4000';
 $VERSION = eval $VERSION;
 
 my %modules = (
+    cygwin    => 'Linux',
     freebsd   => 'BSD',
     dragonfly => 'BSD',
     linux     => 'Linux',
@@ -143,7 +144,7 @@ this point, I won't commit to an API freeze until version 1.0.
 =head1 CONTRIBUTING
 
 This project is developed using git. The repository may be browsed at:
-L<http://git.pioto.org/gitweb/Unix-Uptime.git>
+L<https://github.com/pioto/Unix-Uptime>
 
 Patches in git-format-patch style are preferred. Either send them to me
 by email, or open an RT ticket
@@ -155,7 +156,7 @@ Mike Kelly <pioto@pioto.org>
 
 =head1 COPYRIGHT AND LICENSE
 
-Copyright (C) 2008-2009, Mike Kelly.
+Copyright (C) 2008-2014, Mike Kelly.
 
 This module is free software; you can redistribute it and/or modify it
 under the same terms as Perl 5.10.0. For more details, see the full text
@@ -6,6 +6,8 @@ use Test::More tests => 9;
 
 use Unix::Uptime;
 
+$ENV{LC_ALL} = 'C';
+
 ok my ($load1, $load5, $load15) = Unix::Uptime->load(), 'received a load avarage';
 like $load1, qr/^\d+(\.\d+)?$/, 'load1 looks right';
 like $load5, qr/^\d+(\.\d+)?$/, 'load5 looks right';