[boxer] 19/33: New upstream version 1.1.5

Jonas Smedegaard dr at jones.dk
Sun Nov 5 18:28:18 UTC 2017


This is an automated email from the git hooks/post-receive script.

js pushed a commit to annotated tag debian/1.1.5-1
in repository boxer.

commit cd980fc26c807234f18fee8349757c3a01e60e4e
Merge: bf0fc85 caa7fcd
Author: Jonas Smedegaard <dr at jones.dk>
Date:   Sun Nov 5 12:13:50 2017 +0100

    New upstream version 1.1.5

 COPYRIGHT                         |  46 ++++---
 Changes                           |  26 ++++
 LICENSE                           |   6 +-
 MANIFEST                          |   7 +
 META.json                         |  62 ++++++---
 META.yml                          |  56 +++++---
 Makefile.PL                       |  80 ++++++------
 README                            |   7 +-
 SIGNATURE                         |  86 ++++++-------
 TODO                              |  10 ++
 bin/boxer                         |  33 ++++-
 doap.ttl                          |  64 ++++++++--
 lib/Boxer.pm                      |  32 +++--
 lib/Boxer/CLI.pm                  |  39 ++++--
 lib/Boxer/CLI/Command.pm          | 130 ++++++-------------
 lib/Boxer/CLI/Command/About.pm    |  43 ++++++-
 lib/Boxer/CLI/Command/Aliases.pm  |  45 ++++++-
 lib/Boxer/CLI/Command/Commands.pm |  44 ++++++-
 lib/Boxer/CLI/Command/Compose.pm  |  53 ++++++--
 lib/Boxer/File/WithSkeleton.pm    | 160 +++++++++++++++++++++++
 lib/Boxer/{CLI.pm => Part.pm}     |  52 +++++---
 lib/Boxer/Part/Reclass.pm         | 125 ++++++++++++++++++
 lib/Boxer/Role/Interact.pm        |  48 ++++++-
 lib/Boxer/Task.pm                 |  44 ++++++-
 lib/Boxer/Task/Classify.pm        |  80 ++++++++++--
 lib/Boxer/Task/Serialize.pm       | 263 +++++++++++++-------------------------
 lib/Boxer/Types.pm                |  56 ++++++--
 lib/Boxer/World.pm                |  73 +++++++++++
 lib/Boxer/World/Flat.pm           | 128 +++++++++++++++++++
 lib/Boxer/World/Reclass.pm        | 195 ++++++++++++++++++++++++++++
 t/00_compile.t                    |   4 +-
 t/00_compile_scripts.t            |   4 +-
 t/01_app_help.t                   |   4 +-
 t/fixme.t                         |   4 +-
 t/minimumversion.t                |   4 +-
 t/pod.t                           |   4 +-
 t/world.t                         |  62 +++++++++
 37 files changed, 1645 insertions(+), 534 deletions(-)

diff --cc COPYRIGHT
index 251a89e,0000000..469667c
mode 100644,000000..100644
--- a/COPYRIGHT
+++ b/COPYRIGHT
@@@ -1,261 -1,0 +1,271 @@@
 +Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
 +Upstream-Name: Boxer
 +Upstream-Contact: Jonas Smedegaard (JONASS) <jonass at cpan.org>
 +Source: https://metacpan.org/release/Boxer
 +
 +Files: INSTALL
 + LICENSE
 + TODO
 + doc/boxer.svg
 + examples/README
 + examples/classes/Admin/apt/auto/all.yml
 + examples/classes/Admin/apt/auto/core.yml
 + examples/classes/Admin/apt/auto/functions.yml
 + examples/classes/Admin/apt/init.yml
 + examples/classes/Admin/apt/popcon.yml
 + examples/classes/Admin/apt/tools/changes.yml
 + examples/classes/Admin/apt/tools/init.yml
 + examples/classes/Admin/auto.yml
 + examples/classes/Admin/backup/init.yml
 + examples/classes/Admin/backup/remote.yml
 + examples/classes/Admin/base.yml
 + examples/classes/Admin/disk/lvm.yml
 + examples/classes/Admin/etc/functions.yml
 + examples/classes/Admin/etc/track.yml
 + examples/classes/Admin/harden/account/init.yml
 + examples/classes/Admin/harden/account/strong.yml
 + examples/classes/Admin/harden/init.yml
 + examples/classes/Admin/harden/trustweb.yml
 + examples/classes/Admin/init.yml
 + examples/classes/Console/compression.yml
 + examples/classes/Console/editor/init.yml
 + examples/classes/Console/editor/vim.yml
 + examples/classes/Console/filemanager.yml
 + examples/classes/Console/init.yml
 + examples/classes/Console/mail/init.yml
 + examples/classes/Console/mail/list/init.yml
 + examples/classes/Console/mail/list/tools.yml
 + examples/classes/Console/mail/mutt.yml
 + examples/classes/Console/mail/tools.yml
 + examples/classes/Console/media/audio/alsa.yml
 + examples/classes/Console/media/init.yml
 + examples/classes/Console/mobile/init.yml
 + examples/classes/Console/mobile/sync.yml
 + examples/classes/Console/mouse.yml
 + examples/classes/Console/multiplexer/init.yml
 + examples/classes/Console/tools.yml
 + examples/classes/Desktop/base.yml
 + examples/classes/Desktop/chat/init.yml
 + examples/classes/Desktop/chat/pidgin/crypto.yml
 + examples/classes/Desktop/chat/pidgin/init.yml
 + examples/classes/Desktop/email/base.yml
 + examples/classes/Desktop/email/bidi.yml
 + examples/classes/Desktop/email/harden.yml
 + examples/classes/Desktop/email/icedove/base.yml
 + examples/classes/Desktop/email/icedove/harden.yml
 + examples/classes/Desktop/email/init.yml
 + examples/classes/Desktop/email/locale/ALL.yml
 + examples/classes/Desktop/email/locale/AMERICAS.yml
 + examples/classes/Desktop/email/locale/ASIA.yml
 + examples/classes/Desktop/email/locale/EU.yml
 + examples/classes/Desktop/email/locale/EUROPE.yml
 + examples/classes/Desktop/email/locale/INDIA.yml
 + examples/classes/Desktop/harden.yml
 + examples/classes/Desktop/init.yml
 + examples/classes/Desktop/locale/EU.yml
 + examples/classes/Desktop/media/audio/alsa.yml
 + examples/classes/Desktop/media/audio/pulseaudio.yml
 + examples/classes/Desktop/media/init.yml
 + examples/classes/Desktop/mobile/init.yml
 + examples/classes/Desktop/mobile/sync.yml
 + examples/classes/Desktop/office/init.yml
 + examples/classes/Desktop/office/locale/AFRICA.yml
 + examples/classes/Desktop/office/locale/ALL.yml
 + examples/classes/Desktop/office/locale/AMERICAS.yml
 + examples/classes/Desktop/office/locale/ASIA.yml
 + examples/classes/Desktop/office/locale/EU.yml
 + examples/classes/Desktop/office/locale/EUROPE.yml
 + examples/classes/Desktop/office/locale/INDIA.yml
 + examples/classes/Desktop/office/locale/ZA.yml
 + examples/classes/Desktop/office/presentation.yml
 + examples/classes/Desktop/office/spreadsheet.yml
 + examples/classes/Desktop/office/word-processor.yml
 + examples/classes/Desktop/scheduling/init.yml
 + examples/classes/Desktop/screensaver/unicode.yml
 + examples/classes/Desktop/tools/harden.yml
 + examples/classes/Desktop/tools/pgp/gtk.yml
 + examples/classes/Desktop/tools/pgp/init.yml
 + examples/classes/Desktop/web/base.yml
 + examples/classes/Desktop/web/harden.yml
 + examples/classes/Desktop/web/iceweasel/base.yml
 + examples/classes/Desktop/web/iceweasel/harden.yml
 + examples/classes/Desktop/web/init.yml
 + examples/classes/Desktop/web/java.yml
 + examples/classes/Desktop/web/locale/AFRICA.yml
 + examples/classes/Desktop/web/locale/ALL.yml
 + examples/classes/Desktop/web/locale/AMERICAS.yml
 + examples/classes/Desktop/web/locale/ASIA.yml
 + examples/classes/Desktop/web/locale/EU.yml
 + examples/classes/Desktop/web/locale/EUROPE.yml
 + examples/classes/Desktop/web/locale/INDIA.yml
 + examples/classes/Framework/base.yml
 + examples/classes/Framework/crypto/base.yml
 + examples/classes/Framework/crypto/gnupg/pinentry/gtk/init.yml
 + examples/classes/Framework/media/base.yml
 + examples/classes/Framework/media/wildmidi/limit.yml
 + examples/classes/Framework/pkg/apt/cli/aptitude.yml
 + examples/classes/Framework/pkg/base.yml
 + examples/classes/Framework/web/webkit/webkit1/gtk/avoid.yml
 + examples/classes/Hardware/base.yml
 + examples/classes/Hardware/gl/hardware/init.yml
 + examples/classes/Hardware/gl/init.yml
 + examples/classes/Hardware/gl/software/avoid.yml
 + examples/classes/Hardware/harden.yml
 + examples/classes/Hardware/laptop/acer/aao725.yml
 + examples/classes/Hardware/laptop/apple/macbook2-1.yml
 + examples/classes/Hardware/laptop/apple/macbook5-1.yml
 + examples/classes/Hardware/laptop/init.yml
 + examples/classes/Hardware/laptop/lenovo/edge145.yml
 + examples/classes/Hardware/motherboard/amd/athlon/64.yml
 + examples/classes/Hardware/motherboard/amd/athlon/init.yml
 + examples/classes/Hardware/motherboard/amd/c60.yml
 + examples/classes/Hardware/motherboard/amd/e1-2500.yml
 + examples/classes/Hardware/motherboard/asus/a7n8x.yml
 + examples/classes/Hardware/motherboard/intel/atom/32bit.yml
 + examples/classes/Hardware/motherboard/intel/baytrail-m.yml
 + examples/classes/Hardware/motherboard/intel/core2duo.yml
 + examples/classes/Hardware/motherboard/intel/pentium3.yml
 + examples/classes/Hardware/motherboard/via/nehemiah.yml
 + examples/classes/Hardware/motherboard/via/samuel2.yml
 + examples/classes/Hardware/net/bluetooth.yml
 + examples/classes/Hardware/net/pac/avoid.yml
 + examples/classes/Hardware/nic/broadcom/sta.yml
 + examples/classes/Hardware/nic/realtek/init.yml
 + examples/classes/Hardware/power.yml
 + examples/classes/Hardware/tools/harden.yml
 + examples/classes/Language/java/base.yml
 + examples/classes/Language/java/init.yml
 + examples/classes/Language/java/openjdk6/avoid.yml
 + examples/classes/Language/java/openjdk6/init.yml
 + examples/classes/Language/java/openjdk7/avoid.yml
 + examples/classes/Language/java/openjdk7/init.yml
 + examples/classes/Service/antivirus.yml
 + examples/classes/Service/base.yml
 + examples/classes/Service/dhcp/client.yml
 + examples/classes/Service/dhcp/init.yml
 + examples/classes/Service/dns/authoritative.yml
 + examples/classes/Service/dns/init.yml
 + examples/classes/Service/git.yml
 + examples/classes/Service/ids.yml
 + examples/classes/Service/init.yml
 + examples/classes/Service/log/init.yml
 + examples/classes/Service/log/remote.yml
 + examples/classes/Service/mail/antispam.yml
 + examples/classes/Service/mail/base.yml
 + examples/classes/Service/mail/imap.yml
 + examples/classes/Service/mail/init.yml
 + examples/classes/Service/mail/list.yml
 + examples/classes/Service/mail/mda.yml
 + examples/classes/Service/mail/mta/init.yml
 + examples/classes/Service/mail/mta/postfix.yml
 + examples/classes/Service/mail/sasl.yml
 + examples/classes/Service/mail/sieve.yml
 + examples/classes/Service/ssh.yml
 + examples/classes/Service/web/apache/gnutls.yml
 + examples/classes/Service/web/apache/init.yml
 + examples/classes/Service/web/apache/uwsgi.yml
 + examples/classes/Service/web/init.yml
 + examples/classes/Service/web/mail/cider.yml
 + examples/classes/Service/web/uwsgi/init.yml
 + examples/classes/Service/web/uwsgi/psgi.yml
 + examples/classes/Service/web/uwsgi/python.yml
 + examples/classes/Service/web/wiki/moinmoin.yml
 + examples/classes/Task/harden/desktop.yml
 + examples/classes/cli/compression/init.yml
 + examples/classes/cli/compression/uncommon.yml
 + examples/classes/cli/gpm.yml
 + examples/classes/cli/less.yml
 + examples/classes/cli/mc.yml
 + examples/classes/cli/ssh-server.yml
 + examples/classes/cli/web.yml
 + examples/classes/hw/acpi/full.yml
 + examples/classes/hw/acpi/init.yml
 + examples/classes/hw/bluetooth.yml
 + examples/classes/hw/crypto.yml
 + examples/classes/hw/firmware.yml
 + examples/classes/hw/mac/init.yml
 + examples/classes/hw/mac/laptop.yml
 + examples/classes/hw/power.yml
 + examples/classes/hw/x86/amd64.yml
 + examples/classes/hw/x86/i486.yml
 + examples/classes/hw/x86/i686.yml
 + examples/classes/x11/init.yml
 + examples/classes/x11/lightdm/gtk.yml
 + examples/classes/x11/lightdm/init.yml
 + examples/nodes/lxp5.yml
 + examples/nodes/parl-greens.yml
 + share/skel/preseed.cfg.in
 + share/skel/script.sh.in
 +Copyright: Unknown
 +License: Unknown
 +
- Files: Changes
-  META.json
-  META.yml
-  doap.ttl
++Files: README
++ lib/Boxer.pm
++ lib/Boxer/CLI.pm
 + lib/Boxer/CLI/Command.pm
 + lib/Boxer/CLI/Command/About.pm
 + lib/Boxer/CLI/Command/Aliases.pm
 + lib/Boxer/CLI/Command/Commands.pm
 + lib/Boxer/CLI/Command/Compose.pm
++ lib/Boxer/File/WithSkeleton.pm
++ lib/Boxer/Part.pm
 + lib/Boxer/Role/Interact.pm
 + lib/Boxer/Task.pm
 + lib/Boxer/Task/Classify.pm
 + lib/Boxer/Task/Serialize.pm
 + lib/Boxer/Types.pm
- Copyright: Copyright 2016 Jonas Smedegaard.
++ lib/Boxer/World.pm
++ lib/Boxer/World/Flat.pm
++ lib/Boxer/World/Reclass.pm
++Copyright: Copyright © 2013-2016 Jonas Smedegaard.
 +License: GPL-1.0+ or Artistic-1.0
 +
- Files: dist.ini
-  t/00_compile.t
++Files: Changes
++ META.json
++ META.yml
++ bin/boxer
++ doap.ttl
++ t/world.t
++Copyright: Copyright 2017 Jonas Smedegaard.
++License: GPL-1.0+ or Artistic-1.0
++
++Files: t/00_compile.t
 + t/00_compile_scripts.t
 + t/01_app_help.t
 + t/fixme.t
 + t/minimumversion.t
 + t/pod.t
- Copyright: Copyright 2014 Jonas Smedegaard.
++Copyright: Copyright 2016 Jonas Smedegaard.
 +License: GPL-1.0+ or Artistic-1.0
 +
 +Files: COPYRIGHT
 + CREDITS
 + SIGNATURE
 +Copyright: None
 +License: public-domain
 +
- Files: README
-  lib/Boxer.pm
-  lib/Boxer/CLI.pm
- Copyright: This software is copyright (c) 2013-2015 by Jonas Smedegaard.
- License: GPL-1.0+ or Artistic-1.0
- 
 +Files: Makefile.PL
 +Copyright: Copyright 2013 Toby Inkster.
 +License: GPL-1.0+ or Artistic-1.0
 +
- Files: bin/boxer
- Copyright: Copyright 2015 Jonas Smedegaard.
++Files: lib/Boxer/Part/Reclass.pm
++Copyright: Copyright © 2016 Jonas Smedegaard.
++License: GPL-1.0+ or Artistic-1.0
++
++Files: dist.ini
++Copyright: Copyright 2014 Jonas Smedegaard.
 +License: GPL-1.0+ or Artistic-1.0
 +
 +License: Artistic-1.0
-  This software is Copyright (c) 2016 by the copyright holder(s).
++ This software is Copyright (c) 2017 by the copyright holder(s).
 + 
 + This is free software, licensed under:
 + 
 +   The Artistic License 1.0
 +
 +License: GPL-1.0
-  This software is Copyright (c) 2016 by the copyright holder(s).
++ This software is Copyright (c) 2017 by the copyright holder(s).
 + 
 + This is free software, licensed under:
 + 
 +   The GNU General Public License, Version 1, February 1989
diff --cc Changes
index 99b7743,0000000..a98284e
mode 100644,000000..100644
--- a/Changes
+++ b/Changes
@@@ -1,125 -1,0 +1,151 @@@
 +Boxer
 +=====
 +
 +Created:      2013-02-12
 +Home page:    <https://metacpan.org/release/Boxer>
 +Home page:    <https://wiki.debian.org/Boxer>
 +Bug tracker:  <http://rt.cpan.org/Dist/Display.html?Queue=Boxer>
 +Maintainer:   Jonas Smedegaard (JONASS) <jonass at cpan.org>
 +
++v1.1.5	2017-01-24
++
++ [ Bug Fixes ]
++ - Fix chomp tweak lines.
++
++ [ Documentation ]
++ - Add some TODOs.
++ - Fix usage description for compose subcommand.
++
++ [ Packaging ]
++ - Run perlcritic with tidyall, and test both (not only perlcritic) in
++   TEST_AUTHOR mode.
++ - Use version with modern assignment. Extend copyright to current year.
++
++ [ Other ]
++ - Add Boxer::File::WithSkeleton class.
++ - Add World and Part classes, with unit test.
++ - Consistently use namespace::clean in modules. Order use by
++   pragma/non-Moo/Moo/cleanup and (roughly) by specificity.
++ - Drop unusued code in Boxer::CLI.
++ - Modernize to use perl v5.14, utf8, and strictures 2.
++ - Stop handle __PKGAUTOLIST__ in data (deprecated since 0.004).
++ - Stop skip undefined args in Task::Serialize (needed only for
++   Task::Classify).
++ - Stop use MooX::Types::MooseLike::Base.
++
 +v1.1.4	2016-05-02
 +
 + [ Bug Fixes ]
 + - Fix have current dir be default nodedir (as originally intended and
 +   documented in boxer pod): Do XDG data_dirs lookup only on datadir,
 +   leaving datadir undefined by default).
 +
 +v1.1.3	2016-05-02
 +
 + [ Bug Fixes ]
 + - Fix use File::ShareDir.
 +
 +v1.1.2	2016-04-30
 +
 + - Use File::ShareDir (not File::ShareDir::ProjectDistDir, strongly
 +   discouraged by author). Thanks to Karen Etheridge (RT#114079).
 +
 +v1.1.1	2016-04-12
 +
 + - Use Log::Any::Adapter::Screen (not obsolete predecessor
 +   Log::Any::Adapter::ScreenColoredLevel).
 +
 +v1.1.0	2015-11-29
 +
 + [ Bug Fixes ]
 + - Fix unescape \n and ${ for shellscript.
 + - Fix use apt-get (automated) or apt (interactive, on recent releases) in
 +   skeleton scripts and notes (aptitude is not always available).
 +
 + [ Documentation ]
 + - Add TODO on resolving named suites from relative ones.
 + - Extend copyright to cover current year.
 +
 + [ Other ]
 + - Added: Pass node to skeleton files (and use in boilerplate, replacing
 +   bogus DebianParl boilerplate.
 + - Added: Pass suite to skeleton files, and set as variable in shellscript
 +   and preseed file late_script.
 + - Fix drop all hardcoded data from default skeleton files.
 + - Support empty packagelist.
 + - Tidy Boxer::Types.
 +
 +v1.0.0	2015-11-21
 +
 + [ Bug Fixes ]
 + - Fix avoid Boxer::Task::Serialize spewing garbage when warning about
 +   empty lists.
 + - Fix suppress failure to mark package auto-installed.
 +
 + [ Documentation ]
 + - Rewrite INSTALL to use Debian boxer package.
 +
 + [ Other ]
 + - Added: Implement --nonfree option for subcommand compose.
 + - Croak (not die) on broken input.
 + - Fixate suite in preseed file (resolved package list is suite-specific).
 + - Improve coercion and error messages for input paths.
 + - Release as stable, using semantic versioning.
 + - Sync example data with boxer-data.
 + - Tidy whitespace.
 + - Use MooX::Role::Logger (not MooX::Log::Any) and
 +   Log::Any::Adapter::ScreenColoredLevel.
 +
 +0.004	2014-11-24
 +
 + [ Bug Fixes ]
 + - Fix only warn (not die) on unresolved auto-markings, avoidance or
 +   tweaks.
 +
 + [ Documentation ]
 + - Add some TODOs.
 +
 + [ Other ]
 + - Adjust example class set: Use reclass 1.4 ABI, and drop broken Printing
 +   class.
 + - Adjust help output of Compose command to describe correct default
 +   locations.
 + - Deprecate expansion of __PKGAUTOLIST__ in tweaklist.
 + - Move initial shell code for tweaklist out to skeleton file.
 + - Sort doc sections by explicit list (and alphabetically only as
 +   fallback).
 + - Use Template::Tiny.
 +
 +0.003	2014-10-19
 +
 + [ Documentation ]
 + - Update INSTALL file and pod synopsis slightly.
 +
 + [ Packaging ]
 + - Fix copyright coverage to include current year.
 + - Fix require MooX::Log::Any.
 + - Require IPC::System::Simple.
 + - Tighten Moo requirement to at least 1.001000 (older are untested with
 +   Type::Tiny).
 +
 + [ Other ]
 + - Add --suite option (and drop it as 2nd argument) in compose command,
 +   allowing multiple nodes instead.
 + - Added: Handle nodes, classes and skeleton files with separate options in
 +   compose command.
 + - Added: Include builting skeleton files, and ship with example classes
 +   and nodes.
 + - Explicitly use IPC::System::Simple (already implicitly used via autodie
 +   + system() call).
 + - Refactor to strip undefined args handed over internally - a.k.a. coerce
 +   Undef to default, to permit callers to sloppily pass App::Cmd options
 +   as-is.
 +
 +0.002	2014-10-19
 +
 + [ Packaging ]
 + - Fix all references to distribution name.
 +   Toby Inkster++
 + - Fix time of initial release.
 +
 +0.001	2014-10-18	Initial release.
diff --cc LICENSE
index 6023ab4,0000000..fbe1aab
mode 100644,000000..100644
--- a/LICENSE
+++ b/LICENSE
@@@ -1,379 -1,0 +1,379 @@@
- This software is copyright (c) 2016 by Jonas Smedegaard.
++This software is copyright (c) 2017 by Jonas Smedegaard.
 +
 +This is free software; you can redistribute it and/or modify it under
 +the same terms as the Perl 5 programming language system itself.
 +
 +Terms of the Perl programming language system itself
 +
 +a) the GNU General Public License as published by the Free
 +   Software Foundation; either version 1, or (at your option) any
 +   later version, or
 +b) the "Artistic License"
 +
 +--- The GNU General Public License, Version 1, February 1989 ---
 +
- This software is Copyright (c) 2016 by Jonas Smedegaard.
++This software is Copyright (c) 2017 by Jonas Smedegaard.
 +
 +This is free software, licensed under:
 +
 +  The GNU General Public License, Version 1, February 1989
 +
 +                    GNU GENERAL PUBLIC LICENSE
 +                     Version 1, February 1989
 +
 + Copyright (C) 1989 Free Software Foundation, Inc.
 + 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 +
 + Everyone is permitted to copy and distribute verbatim copies
 + of this license document, but changing it is not allowed.
 +
 +                            Preamble
 +
 +  The license agreements of most software companies try to keep users
 +at the mercy of those companies.  By contrast, our General Public
 +License is intended to guarantee your freedom to share and change free
 +software--to make sure the software is free for all its users.  The
 +General Public License applies to the Free Software Foundation's
 +software and to any other program whose authors commit to using it.
 +You can use it for your programs, too.
 +
 +  When we speak of free software, we are referring to freedom, not
 +price.  Specifically, the General Public License is designed to make
 +sure that you have the freedom to give away or sell copies of free
 +software, that you receive source code or can get it if you want it,
 +that you can change the software or use pieces of it in new free
 +programs; and that you know you can do these things.
 +
 +  To protect your rights, we need to make restrictions that forbid
 +anyone to deny you these rights or to ask you to surrender the rights.
 +These restrictions translate to certain responsibilities for you if you
 +distribute copies of the software, or if you modify it.
 +
 +  For example, if you distribute copies of a such a program, whether
 +gratis or for a fee, you must give the recipients all the rights that
 +you have.  You must make sure that they, too, receive or can get the
 +source code.  And you must tell them their rights.
 +
 +  We protect your rights with two steps: (1) copyright the software, and
 +(2) offer you this license which gives you legal permission to copy,
 +distribute and/or modify the software.
 +
 +  Also, for each author's protection and ours, we want to make certain
 +that everyone understands that there is no warranty for this free
 +software.  If the software is modified by someone else and passed on, we
 +want its recipients to know that what they have is not the original, so
 +that any problems introduced by others will not reflect on the original
 +authors' reputations.
 +
 +  The precise terms and conditions for copying, distribution and
 +modification follow.
 +
 +                    GNU GENERAL PUBLIC LICENSE
 +   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
 +
 +  0. This License Agreement applies to any program or other work which
 +contains a notice placed by the copyright holder saying it may be
 +distributed under the terms of this General Public License.  The
 +"Program", below, refers to any such program or work, and a "work based
 +on the Program" means either the Program or any work containing the
 +Program or a portion of it, either verbatim or with modifications.  Each
 +licensee is addressed as "you".
 +
 +  1. You may copy and distribute verbatim copies of the Program's source
 +code as you receive it, in any medium, provided that you conspicuously and
 +appropriately publish on each copy an appropriate copyright notice and
 +disclaimer of warranty; keep intact all the notices that refer to this
 +General Public License and to the absence of any warranty; and give any
 +other recipients of the Program a copy of this General Public License
 +along with the Program.  You may charge a fee for the physical act of
 +transferring a copy.
 +
 +  2. You may modify your copy or copies of the Program or any portion of
 +it, and copy and distribute such modifications under the terms of Paragraph
 +1 above, provided that you also do the following:
 +
 +    a) cause the modified files to carry prominent notices stating that
 +    you changed the files and the date of any change; and
 +
 +    b) cause the whole of any work that you distribute or publish, that
 +    in whole or in part contains the Program or any part thereof, either
 +    with or without modifications, to be licensed at no charge to all
 +    third parties under the terms of this General Public License (except
 +    that you may choose to grant warranty protection to some or all
 +    third parties, at your option).
 +
 +    c) If the modified program normally reads commands interactively when
 +    run, you must cause it, when started running for such interactive use
 +    in the simplest and most usual way, to print or display an
 +    announcement including an appropriate copyright notice and a notice
 +    that there is no warranty (or else, saying that you provide a
 +    warranty) and that users may redistribute the program under these
 +    conditions, and telling the user how to view a copy of this General
 +    Public License.
 +
 +    d) You may charge a fee for the physical act of transferring a
 +    copy, and you may at your option offer warranty protection in
 +    exchange for a fee.
 +
 +Mere aggregation of another independent work with the Program (or its
 +derivative) on a volume of a storage or distribution medium does not bring
 +the other work under the scope of these terms.
 +
 +  3. You may copy and distribute the Program (or a portion or derivative of
 +it, under Paragraph 2) in object code or executable form under the terms of
 +Paragraphs 1 and 2 above provided that you also do one of the following:
 +
 +    a) accompany it with the complete corresponding machine-readable
 +    source code, which must be distributed under the terms of
 +    Paragraphs 1 and 2 above; or,
 +
 +    b) accompany it with a written offer, valid for at least three
 +    years, to give any third party free (except for a nominal charge
 +    for the cost of distribution) a complete machine-readable copy of the
 +    corresponding source code, to be distributed under the terms of
 +    Paragraphs 1 and 2 above; or,
 +
 +    c) accompany it with the information you received as to where the
 +    corresponding source code may be obtained.  (This alternative is
 +    allowed only for noncommercial distribution and only if you
 +    received the program in object code or executable form alone.)
 +
 +Source code for a work means the preferred form of the work for making
 +modifications to it.  For an executable file, complete source code means
 +all the source code for all modules it contains; but, as a special
 +exception, it need not include source code for modules which are standard
 +libraries that accompany the operating system on which the executable
 +file runs, or for standard header files or definitions files that
 +accompany that operating system.
 +
 +  4. You may not copy, modify, sublicense, distribute or transfer the
 +Program except as expressly provided under this General Public License.
 +Any attempt otherwise to copy, modify, sublicense, distribute or transfer
 +the Program is void, and will automatically terminate your rights to use
 +the Program under this License.  However, parties who have received
 +copies, or rights to use copies, from you under this General Public
 +License will not have their licenses terminated so long as such parties
 +remain in full compliance.
 +
 +  5. By copying, distributing or modifying the Program (or any work based
 +on the Program) you indicate your acceptance of this license to do so,
 +and all its terms and conditions.
 +
 +  6. Each time you redistribute the Program (or any work based on the
 +Program), the recipient automatically receives a license from the original
 +licensor to copy, distribute or modify the Program subject to these
 +terms and conditions.  You may not impose any further restrictions on the
 +recipients' exercise of the rights granted herein.
 +
 +  7. The Free Software Foundation may publish revised and/or new versions
 +of the General Public License from time to time.  Such new versions will
 +be similar in spirit to the present version, but may differ in detail to
 +address new problems or concerns.
 +
 +Each version is given a distinguishing version number.  If the Program
 +specifies a version number of the license which applies to it and "any
 +later version", you have the option of following the terms and conditions
 +either of that version or of any later version published by the Free
 +Software Foundation.  If the Program does not specify a version number of
 +the license, you may choose any version ever published by the Free Software
 +Foundation.
 +
 +  8. If you wish to incorporate parts of the Program into other free
 +programs whose distribution conditions are different, write to the author
 +to ask for permission.  For software which is copyrighted by the Free
 +Software Foundation, write to the Free Software Foundation; we sometimes
 +make exceptions for this.  Our decision will be guided by the two goals
 +of preserving the free status of all derivatives of our free software and
 +of promoting the sharing and reuse of software generally.
 +
 +                            NO WARRANTY
 +
 +  9. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
 +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
 +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
 +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
 +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
 +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
 +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
 +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
 +REPAIR OR CORRECTION.
 +
 +  10. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
 +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
 +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
 +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
 +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
 +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
 +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
 +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
 +POSSIBILITY OF SUCH DAMAGES.
 +
 +                     END OF TERMS AND CONDITIONS
 +
 +        Appendix: How to Apply These Terms to Your New Programs
 +
 +  If you develop a new program, and you want it to be of the greatest
 +possible use to humanity, the best way to achieve this is to make it
 +free software which everyone can redistribute and change under these
 +terms.
 +
 +  To do so, attach the following notices to the program.  It is safest to
 +attach them to the start of each source file to most effectively convey
 +the exclusion of warranty; and each file should have at least the
 +"copyright" line and a pointer to where the full notice is found.
 +
 +    <one line to give the program's name and a brief idea of what it does.>
 +    Copyright (C) 19yy  <name of author>
 +
 +    This program is free software; you can redistribute it and/or modify
 +    it under the terms of the GNU General Public License as published by
 +    the Free Software Foundation; either version 1, or (at your option)
 +    any later version.
 +
 +    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.  See the
 +    GNU General Public License for more details.
 +
 +    You should have received a copy of the GNU General Public License
 +    along with this program; if not, write to the Free Software
 +    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA  02110-1301 USA
 +
 +
 +Also add information on how to contact you by electronic and paper mail.
 +
 +If the program is interactive, make it output a short notice like this
 +when it starts in an interactive mode:
 +
 +    Gnomovision version 69, Copyright (C) 19xx name of author
 +    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
 +    This is free software, and you are welcome to redistribute it
 +    under certain conditions; type `show c' for details.
 +
 +The hypothetical commands `show w' and `show c' should show the
 +appropriate parts of the General Public License.  Of course, the
 +commands you use may be called something other than `show w' and `show
 +c'; they could even be mouse-clicks or menu items--whatever suits your
 +program.
 +
 +You should also get your employer (if you work as a programmer) or your
 +school, if any, to sign a "copyright disclaimer" for the program, if
 +necessary.  Here a sample; alter the names:
 +
 +  Yoyodyne, Inc., hereby disclaims all copyright interest in the
 +  program `Gnomovision' (a program to direct compilers to make passes
 +  at assemblers) written by James Hacker.
 +
 +  <signature of Ty Coon>, 1 April 1989
 +  Ty Coon, President of Vice
 +
 +That's all there is to it!
 +
 +
 +--- The Artistic License 1.0 ---
 +
- This software is Copyright (c) 2016 by Jonas Smedegaard.
++This software is Copyright (c) 2017 by Jonas Smedegaard.
 +
 +This is free software, licensed under:
 +
 +  The Artistic License 1.0
 +
 +The Artistic License
 +
 +Preamble
 +
 +The intent of this document is to state the conditions under which a Package
 +may be copied, such that the Copyright Holder maintains some semblance of
 +artistic control over the development of the package, while giving the users of
 +the package the right to use and distribute the Package in a more-or-less
 +customary fashion, plus the right to make reasonable modifications.
 +
 +Definitions:
 +
 +  - "Package" refers to the collection of files distributed by the Copyright
 +    Holder, and derivatives of that collection of files created through
 +    textual modification. 
 +  - "Standard Version" refers to such a Package if it has not been modified,
 +    or has been modified in accordance with the wishes of the Copyright
 +    Holder. 
 +  - "Copyright Holder" is whoever is named in the copyright or copyrights for
 +    the package. 
 +  - "You" is you, if you're thinking about copying or distributing this Package.
 +  - "Reasonable copying fee" is whatever you can justify on the basis of media
 +    cost, duplication charges, time of people involved, and so on. (You will
 +    not be required to justify it to the Copyright Holder, but only to the
 +    computing community at large as a market that must bear the fee.) 
 +  - "Freely Available" means that no fee is charged for the item itself, though
 +    there may be fees involved in handling the item. It also means that
 +    recipients of the item may redistribute it under the same conditions they
 +    received it. 
 +
 +1. You may make and give away verbatim copies of the source form of the
 +Standard Version of this Package without restriction, provided that you
 +duplicate all of the original copyright notices and associated disclaimers.
 +
 +2. You may apply bug fixes, portability fixes and other modifications derived
 +from the Public Domain or from the Copyright Holder. A Package modified in such
 +a way shall still be considered the Standard Version.
 +
 +3. You may otherwise modify your copy of this Package in any way, provided that
 +you insert a prominent notice in each changed file stating how and when you
 +changed that file, and provided that you do at least ONE of the following:
 +
 +  a) place your modifications in the Public Domain or otherwise make them
 +     Freely Available, such as by posting said modifications to Usenet or an
 +     equivalent medium, or placing the modifications on a major archive site
 +     such as ftp.uu.net, or by allowing the Copyright Holder to include your
 +     modifications in the Standard Version of the Package.
 +
 +  b) use the modified Package only within your corporation or organization.
 +
 +  c) rename any non-standard executables so the names do not conflict with
 +     standard executables, which must also be provided, and provide a separate
 +     manual page for each non-standard executable that clearly documents how it
 +     differs from the Standard Version.
 +
 +  d) make other distribution arrangements with the Copyright Holder.
 +
 +4. You may distribute the programs of this Package in object code or executable
 +form, provided that you do at least ONE of the following:
 +
 +  a) distribute a Standard Version of the executables and library files,
 +     together with instructions (in the manual page or equivalent) on where to
 +     get the Standard Version.
 +
 +  b) accompany the distribution with the machine-readable source of the Package
 +     with your modifications.
 +
 +  c) accompany any non-standard executables with their corresponding Standard
 +     Version executables, giving the non-standard executables non-standard
 +     names, and clearly documenting the differences in manual pages (or
 +     equivalent), together with instructions on where to get the Standard
 +     Version.
 +
 +  d) make other distribution arrangements with the Copyright Holder.
 +
 +5. You may charge a reasonable copying fee for any distribution of this
 +Package.  You may charge any fee you choose for support of this Package. You
 +may not charge a fee for this Package itself. However, you may distribute this
 +Package in aggregate with other (possibly commercial) programs as part of a
 +larger (possibly commercial) software distribution provided that you do not
 +advertise this Package as a product of your own.
 +
 +6. The scripts and library files supplied as input to or produced as output
 +from the programs of this Package do not automatically fall under the copyright
 +of this Package, but belong to whomever generated them, and may be sold
 +commercially, and may be aggregated with this Package.
 +
 +7. C or perl subroutines supplied by you and linked into this Package shall not
 +be considered part of this Package.
 +
 +8. The name of the Copyright Holder may not be used to endorse or promote
 +products derived from this software without specific prior written permission.
 +
 +9. THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED
 +WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
 +MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
 +
 +The End
 +
diff --cc MANIFEST
index 9cb5780,0000000..776d1a6
mode 100644,000000..100644
--- a/MANIFEST
+++ b/MANIFEST
@@@ -1,223 -1,0 +1,230 @@@
 +COPYRIGHT
 +CREDITS
 +Changes
 +INSTALL
 +LICENSE
 +MANIFEST
 +META.json
 +META.yml
 +Makefile.PL
 +README
 +SIGNATURE
 +TODO
 +bin/boxer
 +dist.ini
 +doap.ttl
 +doc/boxer.svg
 +examples/README
 +examples/classes/Admin/apt/auto/all.yml
 +examples/classes/Admin/apt/auto/core.yml
 +examples/classes/Admin/apt/auto/functions.yml
 +examples/classes/Admin/apt/init.yml
 +examples/classes/Admin/apt/popcon.yml
 +examples/classes/Admin/apt/tools/changes.yml
 +examples/classes/Admin/apt/tools/init.yml
 +examples/classes/Admin/auto.yml
 +examples/classes/Admin/backup/init.yml
 +examples/classes/Admin/backup/remote.yml
 +examples/classes/Admin/base.yml
 +examples/classes/Admin/disk/lvm.yml
 +examples/classes/Admin/etc/functions.yml
 +examples/classes/Admin/etc/track.yml
 +examples/classes/Admin/harden/account/init.yml
 +examples/classes/Admin/harden/account/strong.yml
 +examples/classes/Admin/harden/init.yml
 +examples/classes/Admin/harden/trustweb.yml
 +examples/classes/Admin/init.yml
 +examples/classes/Console/compression.yml
 +examples/classes/Console/editor/init.yml
 +examples/classes/Console/editor/vim.yml
 +examples/classes/Console/filemanager.yml
 +examples/classes/Console/init.yml
 +examples/classes/Console/mail/init.yml
 +examples/classes/Console/mail/list/init.yml
 +examples/classes/Console/mail/list/tools.yml
 +examples/classes/Console/mail/mutt.yml
 +examples/classes/Console/mail/tools.yml
 +examples/classes/Console/media/audio/alsa.yml
 +examples/classes/Console/media/init.yml
 +examples/classes/Console/mobile/init.yml
 +examples/classes/Console/mobile/sync.yml
 +examples/classes/Console/mouse.yml
 +examples/classes/Console/multiplexer/init.yml
 +examples/classes/Console/tools.yml
 +examples/classes/Desktop/base.yml
 +examples/classes/Desktop/chat/init.yml
 +examples/classes/Desktop/chat/pidgin/crypto.yml
 +examples/classes/Desktop/chat/pidgin/init.yml
 +examples/classes/Desktop/email/base.yml
 +examples/classes/Desktop/email/bidi.yml
 +examples/classes/Desktop/email/harden.yml
 +examples/classes/Desktop/email/icedove/base.yml
 +examples/classes/Desktop/email/icedove/harden.yml
 +examples/classes/Desktop/email/init.yml
 +examples/classes/Desktop/email/locale/ALL.yml
 +examples/classes/Desktop/email/locale/AMERICAS.yml
 +examples/classes/Desktop/email/locale/ASIA.yml
 +examples/classes/Desktop/email/locale/EU.yml
 +examples/classes/Desktop/email/locale/EUROPE.yml
 +examples/classes/Desktop/email/locale/INDIA.yml
 +examples/classes/Desktop/harden.yml
 +examples/classes/Desktop/init.yml
 +examples/classes/Desktop/locale/EU.yml
 +examples/classes/Desktop/media/audio/alsa.yml
 +examples/classes/Desktop/media/audio/pulseaudio.yml
 +examples/classes/Desktop/media/init.yml
 +examples/classes/Desktop/mobile/init.yml
 +examples/classes/Desktop/mobile/sync.yml
 +examples/classes/Desktop/office/init.yml
 +examples/classes/Desktop/office/locale/AFRICA.yml
 +examples/classes/Desktop/office/locale/ALL.yml
 +examples/classes/Desktop/office/locale/AMERICAS.yml
 +examples/classes/Desktop/office/locale/ASIA.yml
 +examples/classes/Desktop/office/locale/EU.yml
 +examples/classes/Desktop/office/locale/EUROPE.yml
 +examples/classes/Desktop/office/locale/INDIA.yml
 +examples/classes/Desktop/office/locale/ZA.yml
 +examples/classes/Desktop/office/presentation.yml
 +examples/classes/Desktop/office/spreadsheet.yml
 +examples/classes/Desktop/office/word-processor.yml
 +examples/classes/Desktop/scheduling/init.yml
 +examples/classes/Desktop/screensaver/unicode.yml
 +examples/classes/Desktop/tools/harden.yml
 +examples/classes/Desktop/tools/pgp/gtk.yml
 +examples/classes/Desktop/tools/pgp/init.yml
 +examples/classes/Desktop/web/base.yml
 +examples/classes/Desktop/web/harden.yml
 +examples/classes/Desktop/web/iceweasel/base.yml
 +examples/classes/Desktop/web/iceweasel/harden.yml
 +examples/classes/Desktop/web/init.yml
 +examples/classes/Desktop/web/java.yml
 +examples/classes/Desktop/web/locale/AFRICA.yml
 +examples/classes/Desktop/web/locale/ALL.yml
 +examples/classes/Desktop/web/locale/AMERICAS.yml
 +examples/classes/Desktop/web/locale/ASIA.yml
 +examples/classes/Desktop/web/locale/EU.yml
 +examples/classes/Desktop/web/locale/EUROPE.yml
 +examples/classes/Desktop/web/locale/INDIA.yml
 +examples/classes/Framework/base.yml
 +examples/classes/Framework/crypto/base.yml
 +examples/classes/Framework/crypto/gnupg/pinentry/gtk/init.yml
 +examples/classes/Framework/media/base.yml
 +examples/classes/Framework/media/wildmidi/limit.yml
 +examples/classes/Framework/pkg/apt/cli/aptitude.yml
 +examples/classes/Framework/pkg/base.yml
 +examples/classes/Framework/web/webkit/webkit1/gtk/avoid.yml
 +examples/classes/Hardware/base.yml
 +examples/classes/Hardware/gl/hardware/init.yml
 +examples/classes/Hardware/gl/init.yml
 +examples/classes/Hardware/gl/software/avoid.yml
 +examples/classes/Hardware/harden.yml
 +examples/classes/Hardware/laptop/acer/aao725.yml
 +examples/classes/Hardware/laptop/apple/macbook2-1.yml
 +examples/classes/Hardware/laptop/apple/macbook5-1.yml
 +examples/classes/Hardware/laptop/init.yml
 +examples/classes/Hardware/laptop/lenovo/edge145.yml
 +examples/classes/Hardware/motherboard/amd/athlon/64.yml
 +examples/classes/Hardware/motherboard/amd/athlon/init.yml
 +examples/classes/Hardware/motherboard/amd/c60.yml
 +examples/classes/Hardware/motherboard/amd/e1-2500.yml
 +examples/classes/Hardware/motherboard/asus/a7n8x.yml
 +examples/classes/Hardware/motherboard/intel/atom/32bit.yml
 +examples/classes/Hardware/motherboard/intel/baytrail-m.yml
 +examples/classes/Hardware/motherboard/intel/core2duo.yml
 +examples/classes/Hardware/motherboard/intel/pentium3.yml
 +examples/classes/Hardware/motherboard/via/nehemiah.yml
 +examples/classes/Hardware/motherboard/via/samuel2.yml
 +examples/classes/Hardware/net/bluetooth.yml
 +examples/classes/Hardware/net/pac/avoid.yml
 +examples/classes/Hardware/nic/broadcom/sta.yml
 +examples/classes/Hardware/nic/realtek/init.yml
 +examples/classes/Hardware/power.yml
 +examples/classes/Hardware/tools/harden.yml
 +examples/classes/Language/java/base.yml
 +examples/classes/Language/java/init.yml
 +examples/classes/Language/java/openjdk6/avoid.yml
 +examples/classes/Language/java/openjdk6/init.yml
 +examples/classes/Language/java/openjdk7/avoid.yml
 +examples/classes/Language/java/openjdk7/init.yml
 +examples/classes/Service/antivirus.yml
 +examples/classes/Service/base.yml
 +examples/classes/Service/dhcp/client.yml
 +examples/classes/Service/dhcp/init.yml
 +examples/classes/Service/dns/authoritative.yml
 +examples/classes/Service/dns/init.yml
 +examples/classes/Service/git.yml
 +examples/classes/Service/ids.yml
 +examples/classes/Service/init.yml
 +examples/classes/Service/log/init.yml
 +examples/classes/Service/log/remote.yml
 +examples/classes/Service/mail/antispam.yml
 +examples/classes/Service/mail/base.yml
 +examples/classes/Service/mail/imap.yml
 +examples/classes/Service/mail/init.yml
 +examples/classes/Service/mail/list.yml
 +examples/classes/Service/mail/mda.yml
 +examples/classes/Service/mail/mta/init.yml
 +examples/classes/Service/mail/mta/postfix.yml
 +examples/classes/Service/mail/sasl.yml
 +examples/classes/Service/mail/sieve.yml
 +examples/classes/Service/ssh.yml
 +examples/classes/Service/web/apache/gnutls.yml
 +examples/classes/Service/web/apache/init.yml
 +examples/classes/Service/web/apache/uwsgi.yml
 +examples/classes/Service/web/init.yml
 +examples/classes/Service/web/mail/cider.yml
 +examples/classes/Service/web/uwsgi/init.yml
 +examples/classes/Service/web/uwsgi/psgi.yml
 +examples/classes/Service/web/uwsgi/python.yml
 +examples/classes/Service/web/wiki/moinmoin.yml
 +examples/classes/Task/harden/desktop.yml
 +examples/classes/cli/compression/init.yml
 +examples/classes/cli/compression/uncommon.yml
 +examples/classes/cli/gpm.yml
 +examples/classes/cli/less.yml
 +examples/classes/cli/mc.yml
 +examples/classes/cli/ssh-server.yml
 +examples/classes/cli/web.yml
 +examples/classes/hw/acpi/full.yml
 +examples/classes/hw/acpi/init.yml
 +examples/classes/hw/bluetooth.yml
 +examples/classes/hw/crypto.yml
 +examples/classes/hw/firmware.yml
 +examples/classes/hw/mac/init.yml
 +examples/classes/hw/mac/laptop.yml
 +examples/classes/hw/power.yml
 +examples/classes/hw/x86/amd64.yml
 +examples/classes/hw/x86/i486.yml
 +examples/classes/hw/x86/i686.yml
 +examples/classes/x11/init.yml
 +examples/classes/x11/lightdm/gtk.yml
 +examples/classes/x11/lightdm/init.yml
 +examples/nodes/lxp5.yml
 +examples/nodes/parl-greens.yml
 +lib/Boxer.pm
 +lib/Boxer/CLI.pm
 +lib/Boxer/CLI/Command.pm
 +lib/Boxer/CLI/Command/About.pm
 +lib/Boxer/CLI/Command/Aliases.pm
 +lib/Boxer/CLI/Command/Commands.pm
 +lib/Boxer/CLI/Command/Compose.pm
++lib/Boxer/File/WithSkeleton.pm
++lib/Boxer/Part.pm
++lib/Boxer/Part/Reclass.pm
 +lib/Boxer/Role/Interact.pm
 +lib/Boxer/Task.pm
 +lib/Boxer/Task/Classify.pm
 +lib/Boxer/Task/Serialize.pm
 +lib/Boxer/Types.pm
++lib/Boxer/World.pm
++lib/Boxer/World/Flat.pm
++lib/Boxer/World/Reclass.pm
 +share/skel/preseed.cfg.in
 +share/skel/script.sh.in
 +t/00_compile.t
 +t/00_compile_scripts.t
 +t/01_app_help.t
 +t/fixme.t
 +t/minimumversion.t
 +t/pod.t
++t/world.t
diff --cc META.json
index 5a7d334,0000000..7c12a5b
mode 100644,000000..100644
--- a/META.json
+++ b/META.json
@@@ -1,155 -1,0 +1,175 @@@
 +{
 +   "abstract" : "boxer command line utils",
 +   "author" : [
 +      "Jonas Smedegaard (JONASS) <jonass at cpan.org>"
 +   ],
 +   "dynamic_config" : 0,
-    "generated_by" : "Dist::Inkt::Profile::TOBYINK version 0.023, CPAN::Meta::Converter version 2.150005",
++   "generated_by" : "Dist::Inkt::Profile::TOBYINK version 0.023, CPAN::Meta::Converter version 2.150010",
 +   "keywords" : [
 +      "Debian",
 +      "Distribution"
 +   ],
 +   "license" : [
 +      "perl_5"
 +   ],
 +   "meta-spec" : {
 +      "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec",
 +      "version" : "2"
 +   },
 +   "name" : "Boxer",
 +   "no_index" : {
 +      "directory" : [
 +         "eg",
 +         "examples",
 +         "inc",
 +         "t",
 +         "xt"
 +      ]
 +   },
 +   "optional_features" : {},
 +   "prereqs" : {
 +      "configure" : {
 +         "requires" : {
 +            "ExtUtils::MakeMaker" : "6.17",
 +            "File::ShareDir::Install" : "0.02"
 +         }
 +      },
 +      "runtime" : {
 +         "requires" : {
 +            "App::Cmd" : "0",
 +            "Capture::Tiny" : "0",
 +            "File::BaseDir" : "0",
-             "File::HomeDir" : "0",
 +            "File::ShareDir" : "0",
 +            "IPC::System::Simple" : "0",
-             "JSON" : "2.00",
 +            "Log::Any::Adapter::Screen" : "0",
 +            "Module::Runtime" : "0",
 +            "Moo" : "1.001000",
 +            "MooX::Role::Logger" : "0",
-             "MooX::Types::MooseLike::Base" : "0",
-             "Path::Class" : "0",
-             "Path::Tiny" : "0",
++            "Path::Tiny" : "0.054",
 +            "Role::Commons" : "0",
 +            "Template::Tiny" : "0.11",
 +            "Try::Tiny" : "0",
 +            "Types::Path::Tiny" : "0",
 +            "Types::Standard" : "0",
 +            "YAML::XS" : "0",
 +            "autodie" : "0",
 +            "match::simple" : "0",
 +            "namespace::clean" : "0",
-             "perl" : "5.010001",
-             "strictures" : "0"
++            "perl" : "5.014000",
++            "strictures" : "2"
 +         }
 +      },
 +      "test" : {
 +         "requires" : {
 +            "English" : "0",
 +            "File::Spec" : "0",
 +            "Test::Compile" : "0",
 +            "Test::Fixme" : "0",
 +            "Test::MinimumVersion" : "0",
 +            "Test::More" : "0.61",
 +            "Test::Pod" : "1.00",
 +            "Test::Synopsis" : "0"
 +         }
 +      }
 +   },
 +   "provides" : {
 +      "Boxer" : {
 +         "file" : "lib/Boxer.pm",
-          "version" : "v1.1.4"
++         "version" : "v1.1.5"
 +      },
 +      "Boxer::CLI" : {
 +         "file" : "lib/Boxer/CLI.pm",
-          "version" : "v1.1.4"
++         "version" : "v1.1.5"
 +      },
 +      "Boxer::CLI::Command" : {
 +         "file" : "lib/Boxer/CLI/Command.pm",
-          "version" : "v1.1.4"
++         "version" : "v1.1.5"
 +      },
 +      "Boxer::CLI::Command::About" : {
 +         "file" : "lib/Boxer/CLI/Command/About.pm",
-          "version" : "v1.1.4"
++         "version" : "v1.1.5"
 +      },
 +      "Boxer::CLI::Command::Aliases" : {
 +         "file" : "lib/Boxer/CLI/Command/Aliases.pm",
-          "version" : "v1.1.4"
++         "version" : "v1.1.5"
 +      },
 +      "Boxer::CLI::Command::Commands" : {
 +         "file" : "lib/Boxer/CLI/Command/Commands.pm",
-          "version" : "v1.1.4"
++         "version" : "v1.1.5"
 +      },
 +      "Boxer::CLI::Command::Compose" : {
 +         "file" : "lib/Boxer/CLI/Command/Compose.pm",
-          "version" : "v1.1.4"
++         "version" : "v1.1.5"
++      },
++      "Boxer::File::WithSkeleton" : {
++         "file" : "lib/Boxer/File/WithSkeleton.pm",
++         "version" : "v1.1.5"
++      },
++      "Boxer::Part" : {
++         "file" : "lib/Boxer/Part.pm",
++         "version" : "v1.1.5"
++      },
++      "Boxer::Part::Reclass" : {
++         "file" : "lib/Boxer/Part/Reclass.pm",
++         "version" : "v1.1.5"
 +      },
 +      "Boxer::Role::Interact" : {
 +         "file" : "lib/Boxer/Role/Interact.pm",
-          "version" : "v1.1.4"
++         "version" : "v1.1.5"
 +      },
 +      "Boxer::Task" : {
 +         "file" : "lib/Boxer/Task.pm",
-          "version" : "v1.1.4"
++         "version" : "v1.1.5"
 +      },
 +      "Boxer::Task::Classify" : {
 +         "file" : "lib/Boxer/Task/Classify.pm",
-          "version" : "v1.1.4"
++         "version" : "v1.1.5"
 +      },
 +      "Boxer::Task::Serialize" : {
 +         "file" : "lib/Boxer/Task/Serialize.pm",
-          "version" : "v1.1.4"
++         "version" : "v1.1.5"
 +      },
 +      "Boxer::Types" : {
 +         "file" : "lib/Boxer/Types.pm",
-          "version" : "v1.1.4"
++         "version" : "v1.1.5"
++      },
++      "Boxer::World" : {
++         "file" : "lib/Boxer/World.pm",
++         "version" : "v1.1.5"
++      },
++      "Boxer::World::Flat" : {
++         "file" : "lib/Boxer/World/Flat.pm",
++         "version" : "v1.1.5"
++      },
++      "Boxer::World::Reclass" : {
++         "file" : "lib/Boxer/World/Reclass.pm",
++         "version" : "v1.1.5"
 +      }
 +   },
 +   "release_status" : "stable",
 +   "resources" : {
 +      "bugtracker" : {
 +         "web" : "http://rt.cpan.org/Dist/Display.html?Queue=Boxer"
 +      },
 +      "homepage" : "https://metacpan.org/release/Boxer",
 +      "license" : [
 +         "http://dev.perl.org/licenses/"
 +      ],
 +      "repository" : {
 +         "type" : "git",
 +         "web" : "https://anonscm.debian.org/cgit/boxer/Boxer.git"
 +      },
 +      "x_identifier" : "http://purl.org/NET/cpan-uri/dist/Boxer/project"
 +   },
-    "version" : "v1.1.4",
++   "version" : "v1.1.5",
 +   "x_help_wanted" : [
 +      "documenter",
 +      "tester"
 +   ],
 +   "x_provides_scripts" : {
 +      "boxer" : {
 +         "file" : "bin/boxer"
 +      }
 +   },
 +   "x_serialization_backend" : "JSON::PP version 2.27400"
 +}
diff --cc META.yml
index c871c6d,0000000..2eb8880
mode 100644,000000..100644
--- a/META.yml
+++ b/META.yml
@@@ -1,111 -1,0 +1,125 @@@
 +---
 +abstract: 'boxer command line utils'
 +author:
 +  - 'Jonas Smedegaard (JONASS) <jonass at cpan.org>'
 +build_requires:
 +  English: '0'
 +  File::Spec: '0'
 +  Test::Compile: '0'
 +  Test::Fixme: '0'
 +  Test::MinimumVersion: '0'
 +  Test::More: '0.61'
 +  Test::Pod: '1.00'
 +  Test::Synopsis: '0'
 +configure_requires:
 +  ExtUtils::MakeMaker: '6.17'
 +  File::ShareDir::Install: '0.02'
 +dynamic_config: 0
- generated_by: 'Dist::Inkt::Profile::TOBYINK version 0.023, CPAN::Meta::Converter version 2.150005'
++generated_by: 'Dist::Inkt::Profile::TOBYINK version 0.023, CPAN::Meta::Converter version 2.150010'
 +keywords:
 +  - Debian
 +  - Distribution
 +license: perl
 +meta-spec:
 +  url: http://module-build.sourceforge.net/META-spec-v1.4.html
 +  version: '1.4'
 +name: Boxer
 +no_index:
 +  directory:
 +    - eg
 +    - examples
 +    - inc
 +    - t
 +    - xt
 +optional_features: {}
 +provides:
 +  Boxer:
 +    file: lib/Boxer.pm
-     version: v1.1.4
++    version: v1.1.5
 +  Boxer::CLI:
 +    file: lib/Boxer/CLI.pm
-     version: v1.1.4
++    version: v1.1.5
 +  Boxer::CLI::Command:
 +    file: lib/Boxer/CLI/Command.pm
-     version: v1.1.4
++    version: v1.1.5
 +  Boxer::CLI::Command::About:
 +    file: lib/Boxer/CLI/Command/About.pm
-     version: v1.1.4
++    version: v1.1.5
 +  Boxer::CLI::Command::Aliases:
 +    file: lib/Boxer/CLI/Command/Aliases.pm
-     version: v1.1.4
++    version: v1.1.5
 +  Boxer::CLI::Command::Commands:
 +    file: lib/Boxer/CLI/Command/Commands.pm
-     version: v1.1.4
++    version: v1.1.5
 +  Boxer::CLI::Command::Compose:
 +    file: lib/Boxer/CLI/Command/Compose.pm
-     version: v1.1.4
++    version: v1.1.5
++  Boxer::File::WithSkeleton:
++    file: lib/Boxer/File/WithSkeleton.pm
++    version: v1.1.5
++  Boxer::Part:
++    file: lib/Boxer/Part.pm
++    version: v1.1.5
++  Boxer::Part::Reclass:
++    file: lib/Boxer/Part/Reclass.pm
++    version: v1.1.5
 +  Boxer::Role::Interact:
 +    file: lib/Boxer/Role/Interact.pm
-     version: v1.1.4
++    version: v1.1.5
 +  Boxer::Task:
 +    file: lib/Boxer/Task.pm
-     version: v1.1.4
++    version: v1.1.5
 +  Boxer::Task::Classify:
 +    file: lib/Boxer/Task/Classify.pm
-     version: v1.1.4
++    version: v1.1.5
 +  Boxer::Task::Serialize:
 +    file: lib/Boxer/Task/Serialize.pm
-     version: v1.1.4
++    version: v1.1.5
 +  Boxer::Types:
 +    file: lib/Boxer/Types.pm
-     version: v1.1.4
++    version: v1.1.5
++  Boxer::World:
++    file: lib/Boxer/World.pm
++    version: v1.1.5
++  Boxer::World::Flat:
++    file: lib/Boxer/World/Flat.pm
++    version: v1.1.5
++  Boxer::World::Reclass:
++    file: lib/Boxer/World/Reclass.pm
++    version: v1.1.5
 +requires:
 +  App::Cmd: '0'
 +  Capture::Tiny: '0'
 +  File::BaseDir: '0'
-   File::HomeDir: '0'
 +  File::ShareDir: '0'
 +  IPC::System::Simple: '0'
-   JSON: '2.00'
 +  Log::Any::Adapter::Screen: '0'
 +  Module::Runtime: '0'
 +  Moo: '1.001000'
 +  MooX::Role::Logger: '0'
-   MooX::Types::MooseLike::Base: '0'
-   Path::Class: '0'
-   Path::Tiny: '0'
++  Path::Tiny: '0.054'
 +  Role::Commons: '0'
 +  Template::Tiny: '0.11'
 +  Try::Tiny: '0'
 +  Types::Path::Tiny: '0'
 +  Types::Standard: '0'
 +  YAML::XS: '0'
 +  autodie: '0'
 +  match::simple: '0'
 +  namespace::clean: '0'
-   perl: '5.010001'
-   strictures: '0'
++  perl: '5.014000'
++  strictures: '2'
 +resources:
 +  Identifier: http://purl.org/NET/cpan-uri/dist/Boxer/project
 +  bugtracker: http://rt.cpan.org/Dist/Display.html?Queue=Boxer
 +  homepage: https://metacpan.org/release/Boxer
 +  license: http://dev.perl.org/licenses/
 +  repository: https://anonscm.debian.org/cgit/boxer/Boxer.git
- version: v1.1.4
++version: v1.1.5
 +x_help_wanted:
 +  - documenter
 +  - tester
 +x_provides_scripts:
 +  boxer:
 +    file: bin/boxer
 +x_serialization_backend: 'CPAN::Meta::YAML version 0.018'
diff --cc Makefile.PL
index 9d98fe2,0000000..72f4a18
mode 100644,000000..100644
--- a/Makefile.PL
+++ b/Makefile.PL
@@@ -1,194 -1,0 +1,196 @@@
 +use strict;
 +use ExtUtils::MakeMaker 6.17;
 +
 +my $EUMM = eval( $ExtUtils::MakeMaker::VERSION );
 +
 +my $meta = {
 +  "abstract"           => "boxer command line utils",
 +  "author"             => ["Jonas Smedegaard (JONASS) <jonass\@cpan.org>"],
 +  "dynamic_config"     => 0,
-   "generated_by"       => "Dist::Inkt::Profile::TOBYINK version 0.023, CPAN::Meta::Converter version 2.150005",
++  "generated_by"       => "Dist::Inkt::Profile::TOBYINK version 0.023, CPAN::Meta::Converter version 2.150010",
 +  "keywords"           => ["Debian", "Distribution"],
 +  "license"            => ["perl_5"],
 +  "meta-spec"          => {
 +                            url => "http://search.cpan.org/perldoc?CPAN::Meta::Spec",
 +                            version => 2,
 +                          },
 +  "name"               => "Boxer",
 +  "no_index"           => { directory => ["eg", "examples", "inc", "t", "xt"] },
 +  "prereqs"            => {
 +                            configure => {
 +                              requires => { "ExtUtils::MakeMaker" => 6.17, "File::ShareDir::Install" => 0.02 },
 +                            },
 +                            runtime => {
 +                              requires => {
-                                 "App::Cmd"                     => 0,
-                                 "autodie"                      => 0,
-                                 "Capture::Tiny"                => 0,
-                                 "File::BaseDir"                => 0,
-                                 "File::HomeDir"                => 0,
-                                 "File::ShareDir"               => 0,
-                                 "IPC::System::Simple"          => 0,
-                                 "JSON"                         => "2.00",
-                                 "Log::Any::Adapter::Screen"    => 0,
-                                 "match::simple"                => 0,
-                                 "Module::Runtime"              => 0,
-                                 "Moo"                          => "1.001000",
-                                 "MooX::Role::Logger"           => 0,
-                                 "MooX::Types::MooseLike::Base" => 0,
-                                 "namespace::clean"             => 0,
-                                 "Path::Class"                  => 0,
-                                 "Path::Tiny"                   => 0,
-                                 "perl"                         => 5.010001,
-                                 "Role::Commons"                => 0,
-                                 "strictures"                   => 0,
-                                 "Template::Tiny"               => 0.11,
-                                 "Try::Tiny"                    => 0,
-                                 "Types::Path::Tiny"            => 0,
-                                 "Types::Standard"              => 0,
-                                 "YAML::XS"                     => 0,
++                                "App::Cmd"                  => 0,
++                                "autodie"                   => 0,
++                                "Capture::Tiny"             => 0,
++                                "File::BaseDir"             => 0,
++                                "File::ShareDir"            => 0,
++                                "IPC::System::Simple"       => 0,
++                                "Log::Any::Adapter::Screen" => 0,
++                                "match::simple"             => 0,
++                                "Module::Runtime"           => 0,
++                                "Moo"                       => "1.001000",
++                                "MooX::Role::Logger"        => 0,
++                                "namespace::clean"          => 0,
++                                "Path::Tiny"                => 0.054,
++                                "perl"                      => "5.014000",
++                                "Role::Commons"             => 0,
++                                "strictures"                => 2,
++                                "Template::Tiny"            => 0.11,
++                                "Try::Tiny"                 => 0,
++                                "Types::Path::Tiny"         => 0,
++                                "Types::Standard"           => 0,
++                                "YAML::XS"                  => 0,
 +                              },
 +                            },
 +                            test => {
 +                              requires => {
 +                                "English"              => 0,
 +                                "File::Spec"           => 0,
 +                                "Test::Compile"        => 0,
 +                                "Test::Fixme"          => 0,
 +                                "Test::MinimumVersion" => 0,
 +                                "Test::More"           => 0.61,
 +                                "Test::Pod"            => "1.00",
 +                                "Test::Synopsis"       => 0,
 +                              },
 +                            },
 +                          },
 +  "provides"           => {
-                             "Boxer" => { file => "lib/Boxer.pm", version => "v1.1.4" },
-                             "Boxer::CLI" => { file => "lib/Boxer/CLI.pm", version => "v1.1.4" },
-                             "Boxer::CLI::Command" => { file => "lib/Boxer/CLI/Command.pm", version => "v1.1.4" },
-                             "Boxer::CLI::Command::About" => { file => "lib/Boxer/CLI/Command/About.pm", version => "v1.1.4" },
-                             "Boxer::CLI::Command::Aliases" => { file => "lib/Boxer/CLI/Command/Aliases.pm", version => "v1.1.4" },
-                             "Boxer::CLI::Command::Commands" => { file => "lib/Boxer/CLI/Command/Commands.pm", version => "v1.1.4" },
-                             "Boxer::CLI::Command::Compose" => { file => "lib/Boxer/CLI/Command/Compose.pm", version => "v1.1.4" },
-                             "Boxer::Role::Interact" => { file => "lib/Boxer/Role/Interact.pm", version => "v1.1.4" },
-                             "Boxer::Task" => { file => "lib/Boxer/Task.pm", version => "v1.1.4" },
-                             "Boxer::Task::Classify" => { file => "lib/Boxer/Task/Classify.pm", version => "v1.1.4" },
-                             "Boxer::Task::Serialize" => { file => "lib/Boxer/Task/Serialize.pm", version => "v1.1.4" },
-                             "Boxer::Types" => { file => "lib/Boxer/Types.pm", version => "v1.1.4" },
++                            "Boxer"                         => { file => "lib/Boxer.pm", version => "v1.1.5" },
++                            "Boxer::CLI"                    => { file => "lib/Boxer/CLI.pm", version => "v1.1.5" },
++                            "Boxer::CLI::Command"           => { file => "lib/Boxer/CLI/Command.pm", version => "v1.1.5" },
++                            "Boxer::CLI::Command::About"    => { file => "lib/Boxer/CLI/Command/About.pm", version => "v1.1.5" },
++                            "Boxer::CLI::Command::Aliases"  => { file => "lib/Boxer/CLI/Command/Aliases.pm", version => "v1.1.5" },
++                            "Boxer::CLI::Command::Commands" => { file => "lib/Boxer/CLI/Command/Commands.pm", version => "v1.1.5" },
++                            "Boxer::CLI::Command::Compose"  => { file => "lib/Boxer/CLI/Command/Compose.pm", version => "v1.1.5" },
++                            "Boxer::File::WithSkeleton"     => { file => "lib/Boxer/File/WithSkeleton.pm", version => "v1.1.5" },
++                            "Boxer::Part"                   => { file => "lib/Boxer/Part.pm", version => "v1.1.5" },
++                            "Boxer::Part::Reclass"          => { file => "lib/Boxer/Part/Reclass.pm", version => "v1.1.5" },
++                            "Boxer::Role::Interact"         => { file => "lib/Boxer/Role/Interact.pm", version => "v1.1.5" },
++                            "Boxer::Task"                   => { file => "lib/Boxer/Task.pm", version => "v1.1.5" },
++                            "Boxer::Task::Classify"         => { file => "lib/Boxer/Task/Classify.pm", version => "v1.1.5" },
++                            "Boxer::Task::Serialize"        => { file => "lib/Boxer/Task/Serialize.pm", version => "v1.1.5" },
++                            "Boxer::Types"                  => { file => "lib/Boxer/Types.pm", version => "v1.1.5" },
++                            "Boxer::World"                  => { file => "lib/Boxer/World.pm", version => "v1.1.5" },
++                            "Boxer::World::Flat"            => { file => "lib/Boxer/World/Flat.pm", version => "v1.1.5" },
++                            "Boxer::World::Reclass"         => { file => "lib/Boxer/World/Reclass.pm", version => "v1.1.5" },
 +                          },
 +  "release_status"     => "stable",
 +  "resources"          => {
 +                            bugtracker   => { web => "http://rt.cpan.org/Dist/Display.html?Queue=Boxer" },
 +                            homepage     => "https://metacpan.org/release/Boxer",
 +                            license      => ["http://dev.perl.org/licenses/"],
 +                            repository   => {
 +                                              type => "git",
 +                                              web  => "https://anonscm.debian.org/cgit/boxer/Boxer.git",
 +                                            },
 +                            x_identifier => "http://purl.org/NET/cpan-uri/dist/Boxer/project",
 +                          },
-   "version"            => "v1.1.4",
++  "version"            => "v1.1.5",
 +  "x_help_wanted"      => ["documenter", "tester"],
 +  "x_provides_scripts" => { boxer => { file => "bin/boxer" } },
 +};
 +
 +my %dynamic_config;
 +
 +my %WriteMakefileArgs = (
 +	ABSTRACT   => $meta->{abstract},
 +	AUTHOR     => ($EUMM >= 6.5702 ? $meta->{author} : $meta->{author}[0]),
 +	DISTNAME   => $meta->{name},
 +	VERSION    => $meta->{version},
 +	EXE_FILES  => [ map $_->{file}, values %{ $meta->{x_provides_scripts} || {} } ],
 +	NAME       => do { my $n = $meta->{name}; $n =~ s/-/::/g; $n },
 +	test       => { TESTS => "t/*.t" },
 +	%dynamic_config,
 +);
 +
 +$WriteMakefileArgs{LICENSE} = $meta->{license}[0] if $EUMM >= 6.3001;
 +
 +sub deps
 +{
 +	my %r;
 +	for my $stage (@_)
 +	{
 +		for my $dep (keys %{$meta->{prereqs}{$stage}{requires}})
 +		{
 +			next if $dep eq 'perl';
 +			my $ver = $meta->{prereqs}{$stage}{requires}{$dep};
 +			$r{$dep} = $ver if !exists($r{$dep}) || $ver >= $r{$dep};
 +		}
 +	}
 +	\%r;
 +}
 +
 +my ($build_requires, $configure_requires, $runtime_requires, $test_requires);
 +if ($EUMM >= 6.6303)
 +{
 +	$WriteMakefileArgs{BUILD_REQUIRES}     ||= deps('build');
 +	$WriteMakefileArgs{CONFIGURE_REQUIRES} ||= deps('configure');
 +	$WriteMakefileArgs{TEST_REQUIRES}      ||= deps('test');
 +	$WriteMakefileArgs{PREREQ_PM}          ||= deps('runtime');
 +}
 +elsif ($EUMM >= 6.5503)
 +{
 +	$WriteMakefileArgs{BUILD_REQUIRES}     ||= deps('build', 'test');
 +	$WriteMakefileArgs{CONFIGURE_REQUIRES} ||= deps('configure');
 +	$WriteMakefileArgs{PREREQ_PM}          ||= deps('runtime');	
 +}
 +elsif ($EUMM >= 6.52)
 +{
 +	$WriteMakefileArgs{CONFIGURE_REQUIRES} ||= deps('configure');
 +	$WriteMakefileArgs{PREREQ_PM}          ||= deps('runtime', 'build', 'test');	
 +}
 +else
 +{
 +	$WriteMakefileArgs{PREREQ_PM}          ||= deps('configure', 'build', 'test', 'runtime');	
 +}
 +
 +{
 +	my ($minperl) = reverse sort(
 +		grep defined && /^[0-9]+(\.[0-9]+)?$/,
 +		map $meta->{prereqs}{$_}{requires}{perl},
 +		qw( configure build runtime )
 +	);
 +	
 +	if (defined($minperl))
 +	{
 +		die "Installing $meta->{name} requires Perl >= $minperl"
 +			unless $] >= $minperl;
 +		
 +		$WriteMakefileArgs{MIN_PERL_VERSION} ||= $minperl
 +			if $EUMM >= 6.48;
 +	}
 +}
 +
 +sub FixMakefile
 +{
 +	return unless -d 'inc';
 +	my $file = shift;
 +	
 +	local *MAKEFILE;
 +	open MAKEFILE, "< $file" or die "FixMakefile: Couldn't open $file: $!; bailing out";
 +	my $makefile = do { local $/; <MAKEFILE> };
 +	close MAKEFILE or die $!;
 +	
 +	$makefile =~ s/\b(test_harness\(\$\(TEST_VERBOSE\), )/$1'inc', /;
 +	$makefile =~ s/( -I\$\(INST_ARCHLIB\))/ -Iinc$1/g;
 +	$makefile =~ s/( "-I\$\(INST_LIB\)")/ "-Iinc"$1/g;
 +	$makefile =~ s/^(FULLPERL = .*)/$1 "-Iinc"/m;
 +	$makefile =~ s/^(PERL = .*)/$1 "-Iinc"/m;
 +	
 +	open  MAKEFILE, "> $file" or die "FixMakefile: Couldn't open $file: $!; bailing out";
 +	print MAKEFILE $makefile or die $!;
 +	close MAKEFILE or die $!;
 +}
 +
 +use File::ShareDir::Install;
 +install_share 'share';
 +{ package MY; use File::ShareDir::Install qw(postamble) };
 +
 +my $mm = WriteMakefile(%WriteMakefileArgs);
 +FixMakefile($mm->{FIRST_MAKEFILE} || 'Makefile');
 +exit(0);
 +
diff --cc README
index 1bb2b6e,0000000..138b201
mode 100644,000000..100644
--- a/README
+++ b/README
@@@ -1,27 -1,0 +1,30 @@@
 +NAME
 +    Boxer - system deployment ninja tricks
 +
++VERSION
++    Version v1.1.5
++
 +DESCRIPTION
 +    Framework for system deployment ninja tricks
 +
 +BUGS
 +    Please report any bugs to
 +    <http://rt.cpan.org/Dist/Display.html?Queue=Boxer>.
 +
 +SEE ALSO
 +    boxer.
 +
 +AUTHOR
-     Jonas Smedegaard <dr at jones.dk>.
++    Jonas Smedegaard `<dr at jones.dk>`.
 +
 +COPYRIGHT AND LICENCE
-     This software is copyright (c) 2013-2015 by Jonas Smedegaard.
++    Copyright © 2013-2016 Jonas Smedegaard
 +
 +    This is free software; you can redistribute it and/or modify it under the
 +    same terms as the Perl 5 programming language system itself.
 +
 +DISCLAIMER OF WARRANTIES
 +    THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED
 +    WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
 +    MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
 +
diff --cc SIGNATURE
index 95ddac4,0000000..6eb9702
mode 100644,000000..100644
--- a/SIGNATURE
+++ b/SIGNATURE
@@@ -1,255 -1,0 +1,245 @@@
 +This file contains message digests of all files listed in MANIFEST,
- signed via the Module::Signature module, version 0.79.
++signed via the Module::Signature module, version 0.81.
 +
 +To verify the content in this distribution, first make sure you have
 +Module::Signature installed, then type:
 +
 +    % cpansign -v
 +
 +It will check each file's integrity, as well as the signature's
 +validity.  If "==> Signature verified OK! <==" is not displayed,
 +the distribution may already have been compromised, and you should
 +not run its Makefile.PL or Build.PL.
 +
 +-----BEGIN PGP SIGNED MESSAGE-----
- Hash: SHA1
++Hash: SHA256
 +
- SHA1 4604851011fb865ea3e7a2c7fde8e56521853298 COPYRIGHT
++SHA1 b80914f670c13ed969c34bda31b282dfafba4d33 COPYRIGHT
 +SHA1 6c20c21af1aee1cc223733f8ad611d6e78ef790b CREDITS
- SHA1 7533e2453dcf1c9cd0a38ba9458d6c46b98734e4 Changes
++SHA1 ac159bf79e001f0bc73d3c2b7c5da8453908a4a2 Changes
 +SHA1 b199daf5b34dc2f8f1a17edf821af560e72d7c54 INSTALL
- SHA1 f2eb4743622d543c7d59bfc25ec9490c32109cf5 LICENSE
- SHA1 319e0673b5a771b173d6cb2a74a87e40fbf89c54 MANIFEST
- SHA1 290beb9f910ce2fb9e6b502e5b52ca2959af903a META.json
- SHA1 df8cb7000a2167489c8e3db54762390adb548faa META.yml
- SHA1 3824da40165d7dd00edca969b547072ff8bec187 Makefile.PL
- SHA1 ba398856d2427353fe3eb93af2f5f5ed875f41eb README
- SHA1 d474a2a6da6b07d395a903d20612c6cba42141ae TODO
- SHA1 f2289c8d12720e0a858cad4edd5ac1155656aca1 bin/boxer
++SHA1 669fff2c2aa740c31d6546341aa7627c248454c6 LICENSE
++SHA1 32f71780808987c77911be49c06b626328d71cf3 MANIFEST
++SHA1 fb99d5fa3fd21d24fde965a0ac246eed1957b384 META.json
++SHA1 728f9b97960baab884f1a4e47264d463dbd7a860 META.yml
++SHA1 21cd40660db5642207454363401630026641696f Makefile.PL
++SHA1 81d5e803a8aeb5e8ab2b52bf96b166222d01b5c5 README
++SHA1 28172458c570fec482572f4ebc19bb0609cdf24a TODO
++SHA1 d8a7ee1564a3da8af9726fe0c5ad6751a88bd0c1 bin/boxer
 +SHA1 c59760e54130231bcd42e193e41df8420a5d8bd9 dist.ini
- SHA1 e3d4c8a541b404621d09fc51d3dcc3d7f0df6c47 doap.ttl
++SHA1 5d95c8259e1182dfbf76b72125c8e6877f109e39 doap.ttl
 +SHA1 f2f5df67593d316760b27e089157ab26ca1cc4e1 doc/boxer.svg
 +SHA1 919d3b2bb4100a6a9731e85c91f70f957e42364d examples/README
 +SHA1 bde3ca64437336189476c015b54fa4a627ada4f7 examples/classes/Admin/apt/auto/all.yml
 +SHA1 9a4323bdf5b81d59a8a470ad6a0c1ab0639efabd examples/classes/Admin/apt/auto/core.yml
 +SHA1 e8c3843755fa88d2388088d95b0f9592d34bef05 examples/classes/Admin/apt/auto/functions.yml
 +SHA1 4a09ba79a6289de4099d9058e656535f9a460a15 examples/classes/Admin/apt/init.yml
 +SHA1 e31e421015c05adffcc840c4ad548034544d8213 examples/classes/Admin/apt/popcon.yml
 +SHA1 52b47d8d290828676d222f9f4db65f863de9c880 examples/classes/Admin/apt/tools/changes.yml
 +SHA1 6712534e5888a51377cdf205da4a35d3c935b90c examples/classes/Admin/apt/tools/init.yml
 +SHA1 9d0232ac5c3fdf8bd4d69954ad346fcf9b3d86dd examples/classes/Admin/auto.yml
 +SHA1 648f3b78723e18ee227f76e45e7e739badd4325e examples/classes/Admin/backup/init.yml
 +SHA1 cd81f861eb10cb1af5b1f32cd2191cf060dd1640 examples/classes/Admin/backup/remote.yml
 +SHA1 0f550fe85a7fd84240d4abd8c9f53fad8be0a72a examples/classes/Admin/base.yml
 +SHA1 973fc6290f0e80e3a6d42592aa856311f37147e3 examples/classes/Admin/disk/lvm.yml
 +SHA1 7f0ef298a2aead78475259af5407249b42f57f33 examples/classes/Admin/etc/functions.yml
 +SHA1 e56168168297f74570cdb23df12c03d8933c3b76 examples/classes/Admin/etc/track.yml
 +SHA1 9b2cbbda7cbf69e40ed2a846642f76205b87b90f examples/classes/Admin/harden/account/init.yml
 +SHA1 b734e09988afccaf5a316ba56df61fa79b624412 examples/classes/Admin/harden/account/strong.yml
 +SHA1 c39523b9774c744d0d98e7ec4663b7a6b0be72fc examples/classes/Admin/harden/init.yml
 +SHA1 68e4cc94f2298d83340787b9f24bff23dde718e3 examples/classes/Admin/harden/trustweb.yml
 +SHA1 0f550fe85a7fd84240d4abd8c9f53fad8be0a72a examples/classes/Admin/init.yml
 +SHA1 0bce79ff6b06bb79f111aa9849b2a219270e912a examples/classes/Console/compression.yml
 +SHA1 de5805ec976fc68b04f3fd43a4838c12f08fb24f examples/classes/Console/editor/init.yml
 +SHA1 cfaaba5fdb748583febec07a445c3379eaee4534 examples/classes/Console/editor/vim.yml
 +SHA1 f913ebc705c81b267c660566bb96bb0b50aa24e1 examples/classes/Console/filemanager.yml
 +SHA1 d6f5c89f27b9527c39a553444fc143bc5548157a examples/classes/Console/init.yml
 +SHA1 fcb672771563705a292eddb052900b872d8e349e examples/classes/Console/mail/init.yml
 +SHA1 229e1efd2ce688c905595c35add98bda0f9ec3e9 examples/classes/Console/mail/list/init.yml
 +SHA1 294862753c3108c6da0ca1ec8817cf33f83413d7 examples/classes/Console/mail/list/tools.yml
 +SHA1 65758035251269b6bd315269b556602392554ce3 examples/classes/Console/mail/mutt.yml
 +SHA1 492aab0060cefe2d0a833f2dd2c4bde1e0afa764 examples/classes/Console/mail/tools.yml
 +SHA1 a5d535edaf50371accffa4a5bbf5d3ab431d279c examples/classes/Console/media/audio/alsa.yml
 +SHA1 e4ad6e1274a9bb49ce6b25927e7bcad39a0733aa examples/classes/Console/media/init.yml
 +SHA1 86a5a30d6d9323b7194f368205bb4134dc271057 examples/classes/Console/mobile/init.yml
 +SHA1 d2f4f4c8172da0f08eb4d17aae261cc972679976 examples/classes/Console/mobile/sync.yml
 +SHA1 da98ddd58abf9812d6168853677677d6cc1d7051 examples/classes/Console/mouse.yml
 +SHA1 838591b9904ec3cc4d524ac19684dfc3cdf092e0 examples/classes/Console/multiplexer/init.yml
 +SHA1 e8e2c7ce0b73849e78c5e0eb5596d9e6af106faf examples/classes/Console/tools.yml
 +SHA1 8215799a6ebf081c1c74ba330fc1cc1957b05ea1 examples/classes/Desktop/base.yml
 +SHA1 68694b198eaea87e30dba471e4bca19d13a8b0ee examples/classes/Desktop/chat/init.yml
 +SHA1 1eaca255408545bb554ac0e4bd228dfa0aeeda05 examples/classes/Desktop/chat/pidgin/crypto.yml
 +SHA1 c253692b69f07adf4a9424fc57ab0aa13409d986 examples/classes/Desktop/chat/pidgin/init.yml
 +SHA1 224d5ccfc0e01f93b8ce0681761736ff1eab398f examples/classes/Desktop/email/base.yml
 +SHA1 474ab32715d335e5106d5e0708451833546a75f6 examples/classes/Desktop/email/bidi.yml
 +SHA1 0a6f955c42c4f1d8b743ad0233520097ac776dff examples/classes/Desktop/email/harden.yml
 +SHA1 96090d232ac6c1f6bbed5fc3e465be92717c9105 examples/classes/Desktop/email/icedove/base.yml
 +SHA1 ddc83ab596535d26aebfd22041be594f0c4f6aee examples/classes/Desktop/email/icedove/harden.yml
 +SHA1 528d1b988b0f021ac7fb88281db22c3d109a859e examples/classes/Desktop/email/init.yml
 +SHA1 c883ce1ccc6487dbcdfdafaf0d21f9532977d612 examples/classes/Desktop/email/locale/ALL.yml
 +SHA1 ef0f0980868c42a9e8f4e7da139f3cd83dd62dab examples/classes/Desktop/email/locale/AMERICAS.yml
 +SHA1 1ddd76c988b8cc305169c832142a35bd751d90dd examples/classes/Desktop/email/locale/ASIA.yml
 +SHA1 2657584e6c4be8f8e88c9fa5a49b97c9a88ecd3b examples/classes/Desktop/email/locale/EU.yml
 +SHA1 1fc0ff86112f46e09d691c8fdff76637e14542ba examples/classes/Desktop/email/locale/EUROPE.yml
 +SHA1 528cb47a6a44f043ac23a9ee63ea3bcf00a1f399 examples/classes/Desktop/email/locale/INDIA.yml
 +SHA1 a077b254f0f9ae472183ae5200d104134b822c9c examples/classes/Desktop/harden.yml
 +SHA1 8215799a6ebf081c1c74ba330fc1cc1957b05ea1 examples/classes/Desktop/init.yml
 +SHA1 348bdb6cbd18605f8dc0daf5a3feae01d06bc864 examples/classes/Desktop/locale/EU.yml
 +SHA1 2dc7613f6f90b4fe106994bf02ad230a6260e57f examples/classes/Desktop/media/audio/alsa.yml
 +SHA1 9c2578b2b07e2260026ee9df4eef28c462b1eb22 examples/classes/Desktop/media/audio/pulseaudio.yml
 +SHA1 e2d269198eaf46949a1e44bff268597f009256a7 examples/classes/Desktop/media/init.yml
 +SHA1 2c0b7699238e651e2a44a0e8e208a786cd73155c examples/classes/Desktop/mobile/init.yml
 +SHA1 4562fb3c2826019e4f93f3a28d07f37365f394a9 examples/classes/Desktop/mobile/sync.yml
 +SHA1 1ad20e2934e2fb1f9990029ad9aeb057c7995f1f examples/classes/Desktop/office/init.yml
 +SHA1 6dbc9206453e2c7b1df79bc859e3f964cdf77e9f examples/classes/Desktop/office/locale/AFRICA.yml
 +SHA1 41d0eb3ba8fb7bb9a4239d698c28be34721eeffa examples/classes/Desktop/office/locale/ALL.yml
 +SHA1 ae270782294145a6da8c2e75cf7ac944649a4b0a examples/classes/Desktop/office/locale/AMERICAS.yml
 +SHA1 e513e741ac320fa3b400f1de3f6ec2a338c02eee examples/classes/Desktop/office/locale/ASIA.yml
 +SHA1 dadd85ba036c465ec6dc0464334c33481bafee9f examples/classes/Desktop/office/locale/EU.yml
 +SHA1 e4aba019fe7de6f2cc546505ee4e95e7864186d6 examples/classes/Desktop/office/locale/EUROPE.yml
 +SHA1 68a403b0d5603b205a268730fc5e7aa97f9353d7 examples/classes/Desktop/office/locale/INDIA.yml
 +SHA1 cb9419cc0ab67538bff3c0fd1aa15cd1b7b8a599 examples/classes/Desktop/office/locale/ZA.yml
 +SHA1 d4cbe6721c8452be095f832292d9a07b377c7b86 examples/classes/Desktop/office/presentation.yml
 +SHA1 a7562d3a27bbe2280a43dc152af1198e47681885 examples/classes/Desktop/office/spreadsheet.yml
 +SHA1 f6fd85f4c1e26b1ca71c46b397d378eeeaccb97b examples/classes/Desktop/office/word-processor.yml
 +SHA1 a4596b7fbd99cf853cb14884f6f5c349ac62ffc8 examples/classes/Desktop/scheduling/init.yml
 +SHA1 b9432d2df4fcc39cd17e91e0bf386af27e85d11b examples/classes/Desktop/screensaver/unicode.yml
 +SHA1 a90a1a9575f9371b930460d7580cf8829cee8469 examples/classes/Desktop/tools/harden.yml
 +SHA1 10dfc41cfb8fa85c0f2ba9339cc90cd399c668ca examples/classes/Desktop/tools/pgp/gtk.yml
 +SHA1 c20bd53ac4cdd57cdf8f7ab0ede803843c6f6fad examples/classes/Desktop/tools/pgp/init.yml
 +SHA1 2a55b0bba0b84b9e6676cb547d2ec9ef573374c8 examples/classes/Desktop/web/base.yml
 +SHA1 8c14ab89c6a8fde1d6f5ba1f05644abf2dfa2039 examples/classes/Desktop/web/harden.yml
 +SHA1 4d80051b8ee7b7c1c57b3dd664f5a4e66451299d examples/classes/Desktop/web/iceweasel/base.yml
 +SHA1 713176f03b43c7e7d85f9a887635d92e0eb0d732 examples/classes/Desktop/web/iceweasel/harden.yml
 +SHA1 ada91e6de7bd76043f7d88e2aa86bb7667a7a0eb examples/classes/Desktop/web/init.yml
 +SHA1 90f0909e3205f95b1baeb39eb5d5c8b4bf290b16 examples/classes/Desktop/web/java.yml
 +SHA1 d92cd2cb44b2572e7462d17d8c1a5f2ac77df1f4 examples/classes/Desktop/web/locale/AFRICA.yml
 +SHA1 d6eaf17f4179d9ac59f53edf5998069a3ac81c48 examples/classes/Desktop/web/locale/ALL.yml
 +SHA1 04f42a49bc3cc849aa02e3e0780439be51030aa1 examples/classes/Desktop/web/locale/AMERICAS.yml
 +SHA1 63dab25bdea0930671e7cce46352f2aac27548d5 examples/classes/Desktop/web/locale/ASIA.yml
 +SHA1 30eebe8b20feb891b21d0da667015c861ab81cbd examples/classes/Desktop/web/locale/EU.yml
 +SHA1 e5949a390b06bf7ab4733e8f328e1b10e65805d7 examples/classes/Desktop/web/locale/EUROPE.yml
 +SHA1 25cd26aa4eaca4b15a4f45e47e2971b1f39bed35 examples/classes/Desktop/web/locale/INDIA.yml
 +SHA1 5b1a545211f663b9f85f2b3fc2c8ba0d3a59663e examples/classes/Framework/base.yml
 +SHA1 f92c6067c8b1df3415ae5b7ebe192b98bb450901 examples/classes/Framework/crypto/base.yml
 +SHA1 4ed3b74ff36ff3be75831a3a32377fcc6f1c81bf examples/classes/Framework/crypto/gnupg/pinentry/gtk/init.yml
 +SHA1 e0712611476c04e5d1332dba5c9f9bb123e3d21e examples/classes/Framework/media/base.yml
 +SHA1 bf1644485547fb1c065bc5e3f5eb5a7cfd67da1c examples/classes/Framework/media/wildmidi/limit.yml
 +SHA1 7783201b59a1d8dcb1062c699a403bdb88118bdc examples/classes/Framework/pkg/apt/cli/aptitude.yml
 +SHA1 1e104c97fc838f6ce3e961ce679f8ddf86dc39d0 examples/classes/Framework/pkg/base.yml
 +SHA1 f4bf39f679ad83c2de6d69ac9e187317a184cb97 examples/classes/Framework/web/webkit/webkit1/gtk/avoid.yml
 +SHA1 922c3dee0088ab16c918d9a583f29901952ca3a2 examples/classes/Hardware/base.yml
 +SHA1 0a6a7855b1361b135e20923a793cea1cd0bcd45c examples/classes/Hardware/gl/hardware/init.yml
 +SHA1 35b8eaf59744bf40ed63075cd2ef46234f1c7c58 examples/classes/Hardware/gl/init.yml
 +SHA1 d415688bfa2358bc1c3af4d7b2509e15d5b67eca examples/classes/Hardware/gl/software/avoid.yml
 +SHA1 80a6e2feff5949a9bf6eb3a73c5f5f05921a862c examples/classes/Hardware/harden.yml
 +SHA1 2c727ead1adb5708ec2aaa8678a83751c79a2d1c examples/classes/Hardware/laptop/acer/aao725.yml
 +SHA1 90a985fdf1537caf77f910c2a4fa5c3df6366311 examples/classes/Hardware/laptop/apple/macbook2-1.yml
 +SHA1 ec60c7e578cfc4674b2feae5342a2e5a0c9a3c44 examples/classes/Hardware/laptop/apple/macbook5-1.yml
 +SHA1 b0dc06597b26daa005f092e754cbc732ebcbd474 examples/classes/Hardware/laptop/init.yml
 +SHA1 2dbf2e048a0cebf3699db1d80c9c6e4d8fea650a examples/classes/Hardware/laptop/lenovo/edge145.yml
 +SHA1 8c3273263ad49c51b07ace784db24ecc2f69c3b8 examples/classes/Hardware/motherboard/amd/athlon/64.yml
 +SHA1 1de39053e1933de627a9b28d695477ed8faee32d examples/classes/Hardware/motherboard/amd/athlon/init.yml
 +SHA1 ef2c621d22dcfb9e0f2cc63ebd6984ca34ff43e8 examples/classes/Hardware/motherboard/amd/c60.yml
 +SHA1 291bf015d1dd6e893330d1c23a6dfb4f46c6cdd4 examples/classes/Hardware/motherboard/amd/e1-2500.yml
 +SHA1 307a4c4ea0055a1b17dd55159f4cf3e786509a34 examples/classes/Hardware/motherboard/asus/a7n8x.yml
 +SHA1 d00eb02422a871006086278c5c62e769bea241b8 examples/classes/Hardware/motherboard/intel/atom/32bit.yml
 +SHA1 ec009b8627865a754d06ba6aa49b27029993f603 examples/classes/Hardware/motherboard/intel/baytrail-m.yml
 +SHA1 fa98d021fb6bda4be4f1ad3c0564d25ad12aa2d0 examples/classes/Hardware/motherboard/intel/core2duo.yml
 +SHA1 72e57c9158d87db4d648052d18a62573a5d35b58 examples/classes/Hardware/motherboard/intel/pentium3.yml
 +SHA1 821a411ad39b9663856cebbb2b74a84014506099 examples/classes/Hardware/motherboard/via/nehemiah.yml
 +SHA1 9e59a996ce8b33f5aae02e6748de0c3c75bc1590 examples/classes/Hardware/motherboard/via/samuel2.yml
 +SHA1 6736c8a111c5b62e18b283b1c4407588b86a1d94 examples/classes/Hardware/net/bluetooth.yml
 +SHA1 d4906e49f31723aa8c552f17a1621cd555c655dc examples/classes/Hardware/net/pac/avoid.yml
 +SHA1 5c41407ec16cfde119b4c7f82ba0cf63a506f23f examples/classes/Hardware/nic/broadcom/sta.yml
 +SHA1 9b2783bf2f1dfe07dc14c072e92dad99d3378356 examples/classes/Hardware/nic/realtek/init.yml
 +SHA1 7a4605822c5ca6076ce195888717862195801064 examples/classes/Hardware/power.yml
 +SHA1 0b86f39bc222abafbe4eb3afee5193be0c2af591 examples/classes/Hardware/tools/harden.yml
 +SHA1 3c1ec1fe817e4126a93871d2fed410c9de4086ef examples/classes/Language/java/base.yml
 +SHA1 07cf89422cf7a2d05716182a650e4e8610f49c66 examples/classes/Language/java/init.yml
 +SHA1 2f5802f6f5baed2d92b675b6a7b4c38e8e30f058 examples/classes/Language/java/openjdk6/avoid.yml
 +SHA1 03cd547c40961ad14e88dee97dba1ec57d5b2303 examples/classes/Language/java/openjdk6/init.yml
 +SHA1 75f55c1380f56b0972c54a1cabe1f35084be2ac9 examples/classes/Language/java/openjdk7/avoid.yml
 +SHA1 395298845cde814d2b7f8a8b0c9a6e906aa05ed1 examples/classes/Language/java/openjdk7/init.yml
 +SHA1 563b949398a6c65a566f403d7fb958037adc445e examples/classes/Service/antivirus.yml
 +SHA1 bd85bfabed0e473b8e861208ca5d94def434bbe7 examples/classes/Service/base.yml
 +SHA1 33734486a14de89adb4dc8c411b9aad347966dd0 examples/classes/Service/dhcp/client.yml
 +SHA1 ec996190865b86c7deb357f191fd835a2a71a1e1 examples/classes/Service/dhcp/init.yml
 +SHA1 5e4e5f3bdb601b37f48bec71a7b9b1b3a5897257 examples/classes/Service/dns/authoritative.yml
 +SHA1 747fe23ef585070e5bb0bbaecb06c35cdd54ef48 examples/classes/Service/dns/init.yml
 +SHA1 04713b2959d7f8368e227329a21d87c0686e3641 examples/classes/Service/git.yml
 +SHA1 59dc1f4f244c36ae1fe3bf2fb7052cc70fd7aa97 examples/classes/Service/ids.yml
 +SHA1 bd85bfabed0e473b8e861208ca5d94def434bbe7 examples/classes/Service/init.yml
 +SHA1 c420d71382265653d39985b1ef75c97162362e93 examples/classes/Service/log/init.yml
 +SHA1 fabadecac763be3b35411883e8fa66538747a859 examples/classes/Service/log/remote.yml
 +SHA1 b24a4d209247c111caf0fa7d21010b96f30a4724 examples/classes/Service/mail/antispam.yml
 +SHA1 370290cf6511f7cf206e4a628c99ed29ae851b40 examples/classes/Service/mail/base.yml
 +SHA1 9c24fc803ceb6651eda6c30c92550e2d555ba714 examples/classes/Service/mail/imap.yml
 +SHA1 5e1b5f9ef7441fdb68ce97975ff49c23d38f1430 examples/classes/Service/mail/init.yml
 +SHA1 b06836ed61ae8bd42c4d52c854bf03ed66218038 examples/classes/Service/mail/list.yml
 +SHA1 355f7d5e1f390d74100934ebd99088de4acaf30e examples/classes/Service/mail/mda.yml
 +SHA1 d4a4394a2634185e615ec5ae6e7b9b5e64f5c6a7 examples/classes/Service/mail/mta/init.yml
 +SHA1 7af70f095d581ccbccc65b2b471c9f9d03a4795b examples/classes/Service/mail/mta/postfix.yml
 +SHA1 3cbb35371a5e763de9ce8e0e34f8cdbf79732aeb examples/classes/Service/mail/sasl.yml
 +SHA1 d70d1310ccbb5b96aff3625a5346e286afac5b3b examples/classes/Service/mail/sieve.yml
 +SHA1 86f1b85a6d65754bb28c9bab7d3f36f4480ba90c examples/classes/Service/ssh.yml
 +SHA1 53a27974a55da67ebf52d9df54a9e9628f852aec examples/classes/Service/web/apache/gnutls.yml
 +SHA1 5211464ad7dec14a10b42d082b1b938bb0f823d2 examples/classes/Service/web/apache/init.yml
 +SHA1 e770198bbb5d6a57286e92f1df4e3ca4623d555b examples/classes/Service/web/apache/uwsgi.yml
 +SHA1 75c7e8c9457cb91bc85e0b05c6bc5576639aa95d examples/classes/Service/web/init.yml
 +SHA1 e04efb0f648cea2c0cf27bd671cf4043b4d6b658 examples/classes/Service/web/mail/cider.yml
 +SHA1 ed6c8dd2272d93c43a9dfcd3b29533e74eec934f examples/classes/Service/web/uwsgi/init.yml
 +SHA1 2cb2592cfbf1839fe641a050ec3d0a835f17f5a5 examples/classes/Service/web/uwsgi/psgi.yml
 +SHA1 43ac614d25c02b0183169bb734221f054d650860 examples/classes/Service/web/uwsgi/python.yml
 +SHA1 97ac55c0d7f20c9fab0265057245b514cf988476 examples/classes/Service/web/wiki/moinmoin.yml
 +SHA1 84e13e657945b2e5a18a5be076c74fc99d09e288 examples/classes/Task/harden/desktop.yml
 +SHA1 67e18a3c0a512c2be2dee9bf268882cd9df5b7c4 examples/classes/cli/compression/init.yml
 +SHA1 bf7e82a960a7809cd16b055654d78e4a21e11b27 examples/classes/cli/compression/uncommon.yml
 +SHA1 e3477a368e31fc1de65b385ea920f470a67e60da examples/classes/cli/gpm.yml
 +SHA1 2e4fa0895ce96b72bd843f510450213cb1d76e79 examples/classes/cli/less.yml
 +SHA1 c9cc5d600b0625140a76969d84c87f7765d7641e examples/classes/cli/mc.yml
 +SHA1 b83679a8be81017f08bc83c69649aaa7d34ba588 examples/classes/cli/ssh-server.yml
 +SHA1 d80c3b0656d69f04568f024da7a792fcfd82c85e examples/classes/cli/web.yml
 +SHA1 e8ce76a263c9a931fb1e5d367ae43f67e8cfaaf7 examples/classes/hw/acpi/full.yml
 +SHA1 2a40ba3ecccf8a4783ad4cd9a3abf9572db68c72 examples/classes/hw/acpi/init.yml
 +SHA1 ceb9830033f920b9e031365514317336038e501e examples/classes/hw/bluetooth.yml
 +SHA1 7963027eeb4d18fd957070cb63becfe92a1242ce examples/classes/hw/crypto.yml
 +SHA1 c4bc9c34f6b5a4e33edd5226cea41bb310dd7084 examples/classes/hw/firmware.yml
 +SHA1 f7213faa455db186129fd85f2c7c20419ce01aa7 examples/classes/hw/mac/init.yml
 +SHA1 76626e08c190cdf13464e39e4981b990e27f9bb4 examples/classes/hw/mac/laptop.yml
 +SHA1 57d01769d1997ad984fd8995e1f2abf1227509a0 examples/classes/hw/power.yml
 +SHA1 2c45598a4faab216fe0232bd8bebbd9ec6c0db4b examples/classes/hw/x86/amd64.yml
 +SHA1 c96cc7615ba8ab7968aaf79b99679ca9453757ca examples/classes/hw/x86/i486.yml
 +SHA1 6b6e97587329fd54e9d8ef221cdfe7ee95c496c3 examples/classes/hw/x86/i686.yml
 +SHA1 87080d71f9a12a1db73c958adc3f26abf34e5a8d examples/classes/x11/init.yml
 +SHA1 20c2af37df6d3a9ec0c44362949d1228f8d039f7 examples/classes/x11/lightdm/gtk.yml
 +SHA1 36575b4e55acc82830eaa1f53ef74130629b184f examples/classes/x11/lightdm/init.yml
 +SHA1 b0e8e08c5b9e7726efa134a1ef081ff492f4c3ab examples/nodes/lxp5.yml
 +SHA1 45e744814af30ccc792ce8042815f39f57da1804 examples/nodes/parl-greens.yml
- SHA1 663438b953ea50c4c81a139b5ad57a1f6eafdd13 lib/Boxer.pm
- SHA1 5978c35e86b163444c259f9a00fc2263c95f7195 lib/Boxer/CLI.pm
- SHA1 33bab9c038c4e6fe653dcfcd8302623049b3704f lib/Boxer/CLI/Command.pm
- SHA1 8a6f8124298d34ac321a3c5c1a711e63670b3d8b lib/Boxer/CLI/Command/About.pm
- SHA1 1c374d0406a26d7d8f9f48edcc5e07eab7b2d25d lib/Boxer/CLI/Command/Aliases.pm
- SHA1 13f3ad2ad7eeeae6a74e157dd3e7130b36d73cc3 lib/Boxer/CLI/Command/Commands.pm
- SHA1 40f9edf783c54467819c75818bc26392f4226950 lib/Boxer/CLI/Command/Compose.pm
- SHA1 e244238966b268bb8ad9112764fc1a8f9e0d4f33 lib/Boxer/Role/Interact.pm
- SHA1 250fca9cfb5b4503ff2c6a6d485d46a05108816c lib/Boxer/Task.pm
- SHA1 5a17f964c5922138e4ba577477411dd1b4ea566d lib/Boxer/Task/Classify.pm
- SHA1 eb63a0100ad9d3cb0736286692476e5a672060e2 lib/Boxer/Task/Serialize.pm
- SHA1 a5e4f6040bc98ae1250d6d9d389772e026a94111 lib/Boxer/Types.pm
++SHA1 1d325aa029e68f148c685e32c4e815fab1a570fa lib/Boxer.pm
++SHA1 ec795fc0ddfa11c9901730341ce25047776a9ea4 lib/Boxer/CLI.pm
++SHA1 37f74e0c677c19dcfb1103e0a6598d4472b45637 lib/Boxer/CLI/Command.pm
++SHA1 4b092c09221ba6dc42cfd739ce4255477385ec67 lib/Boxer/CLI/Command/About.pm
++SHA1 bc86a5e1e0aad8cc5486715e087522b3c9f13771 lib/Boxer/CLI/Command/Aliases.pm
++SHA1 7979cce9e19d87a37d05c4bc975f23d9f4c54233 lib/Boxer/CLI/Command/Commands.pm
++SHA1 f16887b80e5d5c458ec80a051b3237250d79ab40 lib/Boxer/CLI/Command/Compose.pm
++SHA1 339853ee61db3f69d624739e6e3f55b2b8e53fb6 lib/Boxer/File/WithSkeleton.pm
++SHA1 7c48970ece7de7688387699a9ce86e53df4ea10c lib/Boxer/Part.pm
++SHA1 f3ac8e2ac2dbd41265828aeb8caf904a738ff544 lib/Boxer/Part/Reclass.pm
++SHA1 3631567c6aad87000434fea993b58ff7f7fcc149 lib/Boxer/Role/Interact.pm
++SHA1 be19af8f3deea6237b71cab96cbb9192d76cdf4f lib/Boxer/Task.pm
++SHA1 3a3f877943d8a4a1f6a3f57b96cb81224e821b47 lib/Boxer/Task/Classify.pm
++SHA1 e004f119e7cd20d042489a4e5789cd88ebc784e2 lib/Boxer/Task/Serialize.pm
++SHA1 05ccf46cd931835e347a519a229be8b3bd760fa1 lib/Boxer/Types.pm
++SHA1 4d60d62b45b9bf369a3df83598c50c18fa1ae249 lib/Boxer/World.pm
++SHA1 87678b47ed7e691d09697ccf61de95d29bfa141c lib/Boxer/World/Flat.pm
++SHA1 ed6395ea5551296641dfbc0c56daa019a6ea6181 lib/Boxer/World/Reclass.pm
 +SHA1 16ab646487dcc69478b20f7f11becb9f30bc01ee share/skel/preseed.cfg.in
 +SHA1 888a9b47c3e1cdbc23d932d2ec0ef4bb0e671572 share/skel/script.sh.in
- SHA1 79da2f8bb25fbfeaf402dca5baa579b66f0b6935 t/00_compile.t
- SHA1 3a08af6e6ef91d9f5fa3762310606c4432531a2e t/00_compile_scripts.t
- SHA1 e3d65ec269d39cafd7ce87ad24050a7110b93fc1 t/01_app_help.t
- SHA1 58e4221ee28b818ad3940f40328c359254555774 t/fixme.t
- SHA1 80f0b9e0db58da4841e563b66e078a4de5f51aa7 t/minimumversion.t
- SHA1 d8fc6b2045604f2a6d04f551431fd1bb68050e77 t/pod.t
- -----BEGIN PGP SIGNATURE-----
- Version: GnuPG v1
- 
- iQIcBAEBAgAGBQJXZOxIAAoJECx8MUbBoAEheHEQAJeutccD9h8i0bKaUAmQ1Z6U
- olwAfid5mAvtWfPun4If3MGJi5/CnS6LBYe9jOsRTMAGvY/Ja3PAQJOVhWGNgpVK
- 17fdV1W2wIyJc/6wo0QWDouZD2AAWQgQkq1xupN8IkaHRGmBrKJ570BQ/+MTSEOc
- lROEk6k18cRYwhaLxlQrLAWfXjh2q/hp+dsGEJlooCfSduUSlfx2vUi3D+JI828D
- erDN5ievkVJ3YDxLPA5r7iju0Lhn3dkT3FaSKxuyJRMzZj7x2+huwv/77ofWsbIz
- hkRlQ8HvZ/xjkzk9bnk4wJUewjH98DIS9o4YG16W7KPLQIOuWeX4ESu0y2Timyvs
- Y+MULxwXA9rM9aeBNLoxK1U1T3POaNIBxoxUsqi+PYKvdw/1BFR8oZd4aWIQihQG
- avL6VNwg+RRaER8ihdSIr9PvsOBB6WeNu5kMzrtCYruME3WzqGDzNyQ/gJSzOGgW
- +XEDQ6KL7UzLpTbI6XEvq+hhHtcIe5kXOu+u4D5rs8ts4m4qXU99gdi5vqqmz9Xd
- 4fD1F/jKFd6YuEDAn6ZwErjQ3cvhqV9gWFk56W+X4KrqI3wi3YGC6He7Rdmwfct9
- aMvkdCLBpMuz6pWB0Q3wmGpbTjDrTbz+YMHIgz38u8NBPhQ1tl7txEvumSlF/u9F
- JcrYDFKZh9Q2rNy02rzL
- =gQns
- -----END PGP SIGNATURE-----
++SHA1 8653c7bc24881ffb021b65bf7c9c9dca6a71e1a5 t/00_compile.t
++SHA1 3d4c3fcd3e1c2f4bd99a66c90fda8aa591e316be t/00_compile_scripts.t
++SHA1 d34157688eed8a82c1612c22ac98c6c0ee4f0286 t/01_app_help.t
++SHA1 8fb30d12fcc4a35ee8bd781c3ed99d90a951cd3a t/fixme.t
++SHA1 28287c40831d5126046988c88cd07e5da6f3f6d6 t/minimumversion.t
++SHA1 a7dcc176ca5bedb047f328b71bc7638ad6f330b5 t/pod.t
++SHA1 e42a74d35077f86e571fb4a7a81d7e7b3f53ebac t/world.t
diff --cc bin/boxer
index 609126b,f82dd46..f82dd46
mode 100644,100755..100644
--- a/bin/boxer
+++ b/bin/boxer
diff --cc doap.ttl
index d8942a2,0000000..ecc48c4
mode 100644,000000..100644
--- a/doap.ttl
+++ b/doap.ttl
@@@ -1,304 -1,0 +1,352 @@@
 + at prefix cpan-uri: <http://purl.org/NET/cpan-uri/terms#> .
 + at prefix dc:    <http://purl.org/dc/terms/> .
 + at prefix doap:  <http://usefulinc.com/ns/doap#> .
 + at prefix doap-changeset: <http://ontologi.es/doap-changeset#> .
 + at prefix doap-deps: <http://ontologi.es/doap-deps#> .
 + at prefix foaf:  <http://xmlns.com/foaf/0.1/> .
 + at prefix rdfs:  <http://www.w3.org/2000/01/rdf-schema#> .
 + at prefix xsd:   <http://www.w3.org/2001/XMLSchema#> .
 +
 +<http://dev.perl.org/licenses/>
 +	dc:title             "the same terms as the perl 5 programming language system itself".
 +
 +<http://purl.org/NET/cpan-uri/dist/Boxer/project>
 +	a                    doap:Project;
 +	cpan-uri:x_help_wanted <http://usefulinc.com/ns/doap#documenter>, <http://usefulinc.com/ns/doap#tester>;
 +	dc:contributor       <http://purl.org/NET/cpan-uri/person/jonass>;
- 	doap-deps:runtime-requirement [ doap-deps:on "App::Cmd 0"^^doap-deps:CpanId ], [ doap-deps:on "autodie 0"^^doap-deps:CpanId ], [ doap-deps:on "Module::Runtime"^^doap-deps:CpanId ], [ doap-deps:on "Moo 1.001000"^^doap-deps:CpanId ], [
++	doap-deps:runtime-requirement [ doap-deps:on "App::Cmd 0"^^doap-deps:CpanId ], [ doap-deps:on "autodie 0"^^doap-deps:CpanId ], [
 +		doap-deps:on "MooX::Role::Logger 0"^^doap-deps:CpanId;
 +	], [
 +		doap-deps:on "Log::Any::Adapter::Screen 0"^^doap-deps:CpanId;
- 	], [ doap-deps:on "namespace::clean 0"^^doap-deps:CpanId ], [ doap-deps:on "Path::Class 0"^^doap-deps:CpanId ], [
- 		doap-deps:on "MooX::Types::MooseLike::Base 0"^^doap-deps:CpanId;
- 	], [ doap-deps:on "Path::Tiny 0"^^doap-deps:CpanId ], [ doap-deps:on "Role::Commons 0"^^doap-deps:CpanId ], [
++	], [ doap-deps:on "namespace::clean 0"^^doap-deps:CpanId ], [ doap-deps:on "Path::Tiny 0.054"^^doap-deps:CpanId ], [ doap-deps:on "Role::Commons 0"^^doap-deps:CpanId ], [
 +		doap-deps:on "Template::Tiny 0.11"^^doap-deps:CpanId;
- 	], [
- 		doap-deps:on "IPC::System::Simple 0"^^doap-deps:CpanId;
 +	], [ doap-deps:on "Try::Tiny 0"^^doap-deps:CpanId ], [
 +		doap-deps:on "Types::Path::Tiny 0"^^doap-deps:CpanId;
- 	], [ doap-deps:on "Types::Standard 0"^^doap-deps:CpanId ], [ doap-deps:on "YAML::XS 0"^^doap-deps:CpanId ], [ doap-deps:on "perl 5.010001"^^doap-deps:CpanId ], [ doap-deps:on "strictures 0"^^doap-deps:CpanId ], [ doap-deps:on "Capture::Tiny 0"^^doap-deps:CpanId ], [ doap-deps:on "File::BaseDir 0"^^doap-deps:CpanId ], [ doap-deps:on "File::HomeDir 0"^^doap-deps:CpanId ], [ doap-deps:on "File::ShareDir 0"^^doap-deps:CpanId ], [ doap-deps:on "JSON 2.00"^^doap-deps:CpanId ], [ doap-deps:on [...]
++	], [ doap-deps:on "Types::Standard 0"^^doap-deps:CpanId ], [ doap-deps:on "YAML::XS 0"^^doap-deps:CpanId ], [
++		doap-deps:on "IPC::System::Simple 0"^^doap-deps:CpanId;
++	], [ doap-deps:on "perl 5.014000"^^doap-deps:CpanId ], [ doap-deps:on "strictures 2"^^doap-deps:CpanId ], [ doap-deps:on "Capture::Tiny 0"^^doap-deps:CpanId ], [ doap-deps:on "File::BaseDir 0"^^doap-deps:CpanId ], [ doap-deps:on "File::ShareDir 0"^^doap-deps:CpanId ], [ doap-deps:on "match::simple 0"^^doap-deps:CpanId ], [ doap-deps:on "Module::Runtime"^^doap-deps:CpanId ], [ doap-deps:on "Moo 1.001000"^^doap-deps:CpanId ];
 +	doap-deps:test-requirement [ doap-deps:on "Test::More 0.61"^^doap-deps:CpanId ], [ doap-deps:on "English 0"^^doap-deps:CpanId ], [ doap-deps:on "File::Spec 0"^^doap-deps:CpanId ], [ doap-deps:on "Test::Compile 0"^^doap-deps:CpanId ], [ doap-deps:on "Test::Fixme 0"^^doap-deps:CpanId ], [
 +		doap-deps:on "Test::MinimumVersion 0"^^doap-deps:CpanId;
 +	], [ doap-deps:on "Test::Pod 1.00"^^doap-deps:CpanId ], [ doap-deps:on "Test::Synopsis 0"^^doap-deps:CpanId ];
 +	doap:bug-database    <http://rt.cpan.org/Dist/Display.html?Queue=Boxer>;
 +	doap:category        [ rdfs:label "Debian" ], [ rdfs:label "Distribution" ];
 +	doap:created         "2013-02-12"^^xsd:date;
 +	doap:developer       <http://purl.org/NET/cpan-uri/person/jonass>;
 +	doap:download-page   <https://metacpan.org/release/Boxer>;
 +	doap:homepage        <https://metacpan.org/release/Boxer>, <https://wiki.debian.org/Boxer>;
 +	doap:license         <http://dev.perl.org/licenses/>;
 +	doap:maintainer      <http://purl.org/NET/cpan-uri/person/jonass>;
 +	doap:name            "Boxer";
 +	doap:programming-language "Perl";
- 	doap:release         <http://purl.org/NET/cpan-uri/dist/Boxer/v_0-001>, <http://purl.org/NET/cpan-uri/dist/Boxer/v_0-002>, <http://purl.org/NET/cpan-uri/dist/Boxer/v_0-003>, <http://purl.org/NET/cpan-uri/dist/Boxer/v_0-004>, <http://purl.org/NET/cpan-uri/dist/Boxer/v_v1-0-0>, <http://purl.org/NET/cpan-uri/dist/Boxer/v_v1-1-0>, <http://purl.org/NET/cpan-uri/dist/Boxer/v_v1-1-1>, <http://purl.org/NET/cpan-uri/dist/Boxer/v_v1-1-2>, <http://purl.org/NET/cpan-uri/dist/Boxer/v_v1-1-3>, <http [...]
++	doap:release         <http://purl.org/NET/cpan-uri/dist/Boxer/v_0-001>, <http://purl.org/NET/cpan-uri/dist/Boxer/v_0-002>, <http://purl.org/NET/cpan-uri/dist/Boxer/v_0-003>, <http://purl.org/NET/cpan-uri/dist/Boxer/v_0-004>, <http://purl.org/NET/cpan-uri/dist/Boxer/v_v1-0-0>, <http://purl.org/NET/cpan-uri/dist/Boxer/v_v1-1-0>, <http://purl.org/NET/cpan-uri/dist/Boxer/v_v1-1-1>, <http://purl.org/NET/cpan-uri/dist/Boxer/v_v1-1-2>, <http://purl.org/NET/cpan-uri/dist/Boxer/v_v1-1-3>, <http [...]
 +	doap:repository      [
 +		a doap:GitRepository;
 +		doap:browse <https://anonscm.debian.org/cgit/boxer/Boxer.git>;
 +	];
 +	doap:shortdesc       "boxer command line utils".
 +
 +<http://purl.org/NET/cpan-uri/dist/Boxer/v_0-001>
 +	a                    doap:Version;
 +	rdfs:label           "Initial release.";
 +	dc:identifier        "Boxer-0.001"^^xsd:string;
 +	dc:issued            "2014-10-18"^^xsd:date;
 +	doap-changeset:released-by <http://purl.org/NET/cpan-uri/person/jonass>;
 +	doap:file-release    <http://backpan.cpan.org/authors/id/J/JO/JONASS/Boxer-0.001.tar.gz>;
 +	doap:revision        "0.001"^^xsd:string.
 +
 +<http://purl.org/NET/cpan-uri/dist/Boxer/v_0-002>
 +	a                    doap:Version;
 +	dc:identifier        "Boxer-0.002"^^xsd:string;
 +	dc:issued            "2014-10-19"^^xsd:date;
 +	doap-changeset:changeset [
 +		doap-changeset:item [
 +			a doap-changeset:Packaging;
 +			rdfs:label "Fix time of initial release.";
 +		], [
 +			a doap-changeset:Packaging;
 +			rdfs:label "Fix all references to distribution name.";
 +			doap-changeset:thanks <http://purl.org/NET/cpan-uri/person/tobyink>;
 +		];
 +	];
 +	doap-changeset:released-by <http://purl.org/NET/cpan-uri/person/jonass>;
 +	doap:file-release    <http://backpan.cpan.org/authors/id/J/JO/JONASS/Boxer-0.002.tar.gz>;
 +	doap:revision        "0.002"^^xsd:string.
 +
 +<http://purl.org/NET/cpan-uri/dist/Boxer/v_0-003>
 +	a                    doap:Version;
 +	dc:identifier        "Boxer-0.003"^^xsd:string;
 +	dc:issued            "2014-10-19"^^xsd:date;
 +	doap-changeset:changeset [
 +		doap-changeset:item [
 +			a doap-changeset:Packaging;
 +			rdfs:label "Fix copyright coverage to include current year.";
 +		], [
 +			a doap-changeset:Documentation;
 +			rdfs:label "Update INSTALL file and pod synopsis slightly.";
 +		], [
 +			a doap-changeset:Change;
 +			rdfs:label "Explicitly use IPC::System::Simple (already implicitly used via autodie + system() call).";
 +		], [
 +			a doap-changeset:Packaging;
 +			rdfs:label "Fix require MooX::Log::Any.";
 +		], [
 +			a doap-changeset:Packaging;
 +			rdfs:label "Require IPC::System::Simple.";
 +		], [
 +			a doap-changeset:Addition;
 +			rdfs:label "Include builting skeleton files, and ship with example classes and nodes.";
 +		], [
 +			a doap-changeset:Packaging;
 +			rdfs:label "Tighten Moo requirement to at least 1.001000 (older are untested with Type::Tiny).";
 +		], [
 +			a doap-changeset:Change;
 +			rdfs:label "Refactor to strip undefined args handed over internally - a.k.a. coerce Undef to default, to permit callers to sloppily pass App::Cmd options as-is.";
 +		], [
 +			a doap-changeset:Change;
 +			rdfs:label "Add --suite option (and drop it as 2nd argument) in compose command, allowing multiple nodes instead.";
 +		], [
 +			a doap-changeset:Addition;
 +			rdfs:label "Handle nodes, classes and skeleton files with separate options in compose command.";
 +		];
 +	];
 +	doap-changeset:released-by <http://purl.org/NET/cpan-uri/person/jonass>;
 +	doap:file-release    <http://backpan.cpan.org/authors/id/J/JO/JONASS/Boxer-0.003.tar.gz>;
 +	doap:revision        "0.003"^^xsd:string.
 +
 +<http://purl.org/NET/cpan-uri/dist/Boxer/v_0-004>
 +	a                    doap:Version;
 +	dc:identifier        "Boxer-0.004"^^xsd:string;
 +	dc:issued            "2014-11-24"^^xsd:date;
 +	doap-changeset:changeset [
 +		doap-changeset:item [
 +			a doap-changeset:Change;
 +			rdfs:label "Adjust example class set: Use reclass 1.4 ABI, and drop broken Printing class.";
 +		], [
 +			a doap-changeset:Change;
 +			rdfs:label "Adjust help output of Compose command to describe correct default locations.";
 +		], [
 +			a doap-changeset:Change;
 +			rdfs:label "Use Template::Tiny.";
 +		], [
 +			a doap-changeset:Change;
 +			rdfs:label "Sort doc sections by explicit list (and alphabetically only as fallback).";
 +		], [
 +			a doap-changeset:Change;
 +			rdfs:label "Move initial shell code for tweaklist out to skeleton file.";
 +		], [
 +			a doap-changeset:Change;
 +			rdfs:label "Deprecate expansion of __PKGAUTOLIST__ in tweaklist.";
 +		], [
 +			a doap-changeset:Bugfix;
 +			rdfs:label "Fix only warn (not die) on unresolved auto-markings, avoidance or tweaks.";
 +		], [
 +			a doap-changeset:Documentation;
 +			rdfs:label "Add some TODOs.";
 +		];
 +	];
 +	doap-changeset:released-by <http://purl.org/NET/cpan-uri/person/jonass>;
 +	doap:file-release    <http://backpan.cpan.org/authors/id/J/JO/JONASS/Boxer-0.004.tar.gz>;
 +	doap:revision        "0.004"^^xsd:string.
 +
 +<http://purl.org/NET/cpan-uri/dist/Boxer/v_v1-0-0>
 +	a                    doap:Version;
 +	dc:identifier        "Boxer-v1.0.0"^^xsd:string;
 +	dc:issued            "2015-11-21"^^xsd:date;
 +	doap-changeset:changeset [
 +		doap-changeset:item [
 +			a doap-changeset:Change;
 +			rdfs:label "Tidy whitespace.";
 +		], [
 +			a doap-changeset:Documentation;
 +			rdfs:label "Rewrite INSTALL to use Debian boxer package.";
 +		], [
 +			a doap-changeset:Change;
 +			rdfs:label "Use MooX::Role::Logger (not MooX::Log::Any) and Log::Any::Adapter::ScreenColoredLevel.";
 +		], [
 +			a doap-changeset:Change;
 +			rdfs:label "Croak (not die) on broken input.";
 +		], [
 +			a doap-changeset:Addition;
 +			rdfs:label "Implement --nonfree option for subcommand compose.";
 +		], [
 +			a doap-changeset:Bugfix;
 +			rdfs:label "Fix suppress failure to mark package auto-installed.";
 +		], [
 +			a doap-changeset:Change;
 +			rdfs:label "Fixate suite in preseed file (resolved package list is suite-specific).";
 +		], [
 +			a doap-changeset:Bugfix;
 +			rdfs:label "Fix avoid Boxer::Task::Serialize spewing garbage when warning about empty lists.";
 +		], [
 +			a doap-changeset:Change;
 +			rdfs:label "Sync example data with boxer-data.";
 +		], [
 +			a doap-changeset:Change;
 +			rdfs:label "Improve coercion and error messages for input paths.";
 +		], [
 +			a doap-changeset:Change;
 +			rdfs:label "Release as stable, using semantic versioning.";
 +		];
 +	];
 +	doap-changeset:released-by <http://purl.org/NET/cpan-uri/person/jonass>;
 +	doap:file-release    <http://backpan.cpan.org/authors/id/J/JO/JONASS/Boxer-v1.0.0.tar.gz>;
 +	doap:revision        "v1.0.0"^^xsd:string.
 +
 +<http://purl.org/NET/cpan-uri/dist/Boxer/v_v1-1-0>
 +	a                    doap:Version;
 +	dc:identifier        "Boxer-v1.1.0"^^xsd:string;
 +	dc:issued            "2015-11-29"^^xsd:date;
 +	doap-changeset:changeset [
 +		doap-changeset:item [
 +			a doap-changeset:Change;
 +			rdfs:label "Tidy Boxer::Types.";
 +		], [
 +			a doap-changeset:Addition;
 +			rdfs:label "Pass suite to skeleton files, and set as variable in shellscript and preseed file late_script.";
 +		], [
 +			a doap-changeset:Documentation;
 +			rdfs:label "Add TODO on resolving named suites from relative ones.";
 +		], [
 +			a doap-changeset:Bugfix;
 +			rdfs:label "Fix unescape \\n and ${ for shellscript.";
 +		], [
 +			a doap-changeset:Bugfix;
 +			rdfs:label "Fix use apt-get (automated) or apt (interactive, on recent releases) in skeleton scripts and notes (aptitude is not always available).";
 +		], [
 +			a doap-changeset:Documentation;
 +			rdfs:label "Extend copyright to cover current year.";
 +		], [
 +			a doap-changeset:Addition;
 +			rdfs:label "Pass node to skeleton files (and use in boilerplate, replacing bogus DebianParl boilerplate.";
 +		], [
 +			a doap-changeset:Change;
 +			rdfs:label "Fix drop all hardcoded data from default skeleton files.";
 +		], [
 +			a doap-changeset:Change;
 +			rdfs:label "Support empty packagelist.";
 +		];
 +	];
 +	doap-changeset:released-by <http://purl.org/NET/cpan-uri/person/jonass>;
 +	doap:file-release    <http://backpan.cpan.org/authors/id/J/JO/JONASS/Boxer-v1.1.0.tar.gz>;
 +	doap:revision        "v1.1.0"^^xsd:string.
 +
 +<http://purl.org/NET/cpan-uri/dist/Boxer/v_v1-1-1>
 +	a                    doap:Version;
 +	dc:identifier        "Boxer-v1.1.1"^^xsd:string;
 +	dc:issued            "2016-04-12"^^xsd:date;
 +	doap-changeset:changeset [
 +		doap-changeset:item [
 +			a doap-changeset:Change;
 +			rdfs:label "Use Log::Any::Adapter::Screen (not obsolete predecessor Log::Any::Adapter::ScreenColoredLevel).";
 +		];
 +	];
 +	doap-changeset:released-by <http://purl.org/NET/cpan-uri/person/jonass>;
 +	doap:file-release    <http://backpan.cpan.org/authors/id/J/JO/JONASS/Boxer-v1.1.1.tar.gz>;
 +	doap:revision        "v1.1.1"^^xsd:string.
 +
 +<http://purl.org/NET/cpan-uri/dist/Boxer/v_v1-1-2>
 +	a                    doap:Version;
 +	dc:identifier        "Boxer-v1.1.2"^^xsd:string;
 +	dc:issued            "2016-04-30"^^xsd:date;
 +	doap-changeset:changeset [
 +		doap-changeset:item [
 +			a doap-changeset:Change;
 +			rdfs:label "Use File::ShareDir (not File::ShareDir::ProjectDistDir, strongly discouraged by author). Thanks to Karen Etheridge (RT#114079).";
 +		];
 +	];
 +	doap-changeset:released-by <http://purl.org/NET/cpan-uri/person/jonass>;
 +	doap:file-release    <http://backpan.cpan.org/authors/id/J/JO/JONASS/Boxer-v1.1.2.tar.gz>;
 +	doap:revision        "v1.1.2"^^xsd:string.
 +
 +<http://purl.org/NET/cpan-uri/dist/Boxer/v_v1-1-3>
 +	a                    doap:Version;
 +	dc:identifier        "Boxer-v1.1.3"^^xsd:string;
 +	dc:issued            "2016-05-02"^^xsd:date;
 +	doap-changeset:changeset [
 +		doap-changeset:item [
 +			a doap-changeset:Bugfix;
 +			rdfs:label "Fix use File::ShareDir.";
 +		];
 +	];
 +	doap-changeset:released-by <http://purl.org/NET/cpan-uri/person/jonass>;
 +	doap:file-release    <http://backpan.cpan.org/authors/id/J/JO/JONASS/Boxer-v1.1.3.tar.gz>;
 +	doap:revision        "v1.1.3"^^xsd:string.
 +
 +<http://purl.org/NET/cpan-uri/dist/Boxer/v_v1-1-4>
 +	a                    doap:Version;
 +	dc:identifier        "Boxer-v1.1.4"^^xsd:string;
 +	dc:issued            "2016-05-02"^^xsd:date;
 +	doap-changeset:changeset [
 +		doap-changeset:item [
 +			a doap-changeset:Bugfix;
 +			rdfs:label "Fix have current dir be default nodedir (as originally intended and documented in boxer pod): Do XDG data_dirs lookup only on datadir, leaving datadir undefined by default).";
 +		];
 +	];
 +	doap-changeset:released-by <http://purl.org/NET/cpan-uri/person/jonass>;
 +	doap:file-release    <http://backpan.cpan.org/authors/id/J/JO/JONASS/Boxer-v1.1.4.tar.gz>;
 +	doap:revision        "v1.1.4"^^xsd:string.
 +
++<http://purl.org/NET/cpan-uri/dist/Boxer/v_v1-1-5>
++	a                    doap:Version;
++	dc:identifier        "Boxer-v1.1.5"^^xsd:string;
++	dc:issued            "2017-01-24"^^xsd:date;
++	doap-changeset:changeset [
++		doap-changeset:item [
++			a doap-changeset:Documentation;
++			rdfs:label "Fix usage description for compose subcommand.";
++		], [
++			a doap-changeset:Change;
++			rdfs:label "Modernize to use perl v5.14, utf8, and strictures 2.";
++		], [
++			a doap-changeset:Packaging;
++			rdfs:label "Use version with modern assignment. Extend copyright to current year.";
++		], [
++			a doap-changeset:Change;
++			rdfs:label "Consistently use namespace::clean in modules. Order use by pragma/non-Moo/Moo/cleanup and (roughly) by specificity.";
++		], [
++			a doap-changeset:Change;
++			rdfs:label "Drop unusued code in Boxer::CLI.";
++		], [
++			a doap-changeset:Bugfix;
++			rdfs:label "Fix chomp tweak lines.";
++		], [
++			a doap-changeset:Packaging;
++			rdfs:label "Run perlcritic with tidyall, and test both (not only perlcritic) in TEST_AUTHOR mode.";
++		], [
++			a doap-changeset:Change;
++			rdfs:label "Stop handle __PKGAUTOLIST__ in data (deprecated since 0.004).";
++		], [
++			a doap-changeset:Change;
++			rdfs:label "Add World and Part classes, with unit test.";
++		], [
++			a doap-changeset:Change;
++			rdfs:label "Stop skip undefined args in Task::Serialize (needed only for Task::Classify).";
++		], [
++			a doap-changeset:Change;
++			rdfs:label "Add Boxer::File::WithSkeleton class.";
++		], [
++			a doap-changeset:Documentation;
++			rdfs:label "Add some TODOs.";
++		], [
++			a doap-changeset:Change;
++			rdfs:label "Stop use MooX::Types::MooseLike::Base.";
++		];
++	];
++	doap-changeset:released-by <http://purl.org/NET/cpan-uri/person/jonass>;
++	doap:file-release    <http://backpan.cpan.org/authors/id/J/JO/JONASS/Boxer-v1.1.5.tar.gz>;
++	doap:revision        "v1.1.5"^^xsd:string.
++
 +<http://purl.org/NET/cpan-uri/person/jonass>
 +	a                    foaf:Person;
 +	foaf:mbox            <mailto:dr at jones.dk>, <mailto:jonass at cpan.org>;
 +	foaf:name            "Jonas Smedegaard";
 +	foaf:nick            "JONASS";
 +	foaf:page            <https://metacpan.org/author/JONASS>.
 +
 +<http://purl.org/NET/cpan-uri/person/tobyink>
 +	a                    foaf:Person;
 +	foaf:mbox            <mailto:tobyink at cpan.org>;
 +	foaf:name            "Toby Inkster";
 +	foaf:nick            "TOBYINK";
 +	foaf:page            <https://metacpan.org/author/TOBYINK>.
 +

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-perl/packages/boxer.git



More information about the Pkg-perl-cvs-commits mailing list