@@ -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';