diff -Nru libconfig-model-openssh-perl-1.225/Build.PL libconfig-model-openssh-perl-1.227/Build.PL --- libconfig-model-openssh-perl-1.225/Build.PL 2012-10-28 10:03:40.000000000 +0000 +++ libconfig-model-openssh-perl-1.227/Build.PL 2013-04-04 18:42:07.000000000 +0000 @@ -7,7 +7,7 @@ # # The GNU Lesser General Public License, Version 2.1, February 1999 # -# Copyright (c) 2008-2012 Dominique Dumont. +# Copyright (c) 2008-2013 Dominique Dumont. # # This file is part of Config-Model-OpenSsh. # @@ -27,22 +27,37 @@ # 02110-1301 USA use Module::Build; -use Data::Dumper ; use warnings FATAL => qw(all) ; use strict ; require 5.010; -my %model_files = map { ($_, $_ ) } glob("lib/Config/Model/*.d/*") ; +my %appli_files = map { ( $_, $_ ) } glob("lib/Config/Model/*.d/*"); -my $build = Module::Build->new +# check that pod docs are up-to-date this is redundant with work done by +# dzil. But this enable to re-build the docs downstream. +# Use $^X in there as requested in +# https://rt.cpan.org/Public/Bug/Display.html?id=74891 +my $class = Module::Build->subclass( + class => "Module::Build::Custom", + code => <<'SUBCLASS' ); + +sub ACTION_build { + my $self = shift; + # below requires Config::Model 2.026 + system ($^X, qw!-Ilib -S cme gen-class-pod!) ; + $self->SUPER::ACTION_build; +} +SUBCLASS + +my $build = $class->new ( module_name => 'Config::Model::OpenSsh', license => 'lgpl', dist_author => "Dominique Dumont (ddumont at cpan dot org)", dist_abstract => "OpenSsh configuration files graphical editor", - model_files => \%model_files , + appli_files => \%appli_files , 'build_requires' => { 'File::Copy::Recursive' => '0', @@ -55,32 +70,25 @@ 'Test::Warn' => '0' }, 'configure_requires' => { + 'Config::Model' => '2.026', 'Module::Build' => '0.3601' }, 'recommends' => { - 'Config::Model::Backend::Augeas' => '0', 'Config::Model::CursesUI' => '0', 'Config::Model::TkUI' => '0' }, 'requires' => { - 'Any::Moose' => '0', - 'Config::Model' => '2.017', - 'File::Slurp' => '0', - 'Log::Log4perl' => '1.11' + 'Config::Model' => '2.026', + 'Log::Log4perl' => '1.11', + 'Mouse' => '0', + 'Tk' => '0' }, - meta_merge => { - resources => { - homepage => 'http://config-model.wiki.sourceforge.net', - MailingList => 'https://lists.sourceforge.net/lists/listinfo/config-model-users', - repository => 'http://config-model.hg.sourceforge.net:8000/hgroot/config-model/config-model', - }, - }, add_to_cleanup => [qw/wr_test/] , ); $build->add_build_element('pl'); -$build->add_build_element('model'); # see model_files above +$build->add_build_element('appli'); $build->create_build_script; diff -Nru libconfig-model-openssh-perl-1.225/ChangeLog libconfig-model-openssh-perl-1.227/ChangeLog --- libconfig-model-openssh-perl-1.225/ChangeLog 2012-10-28 10:03:40.000000000 +0000 +++ libconfig-model-openssh-perl-1.227/ChangeLog 2013-04-04 18:42:07.000000000 +0000 @@ -1,3 +1,22 @@ +2013-04-04 - 1.227 + + * Removed Augeas backend (no longer needed, comments are handled + by Config::Model::Backend::OpenSsh) + * Removed unused deps (File::Slurp) + * Replaced Any::Moose with Mouse. Directly depend on Mouse. + Removed dependency on Any::Mooose + +2012-12-07 - 1.226 + + * ssh model: + + added ControlPersist parameter + + added Re-Build parameter (fix RT #81346) + * Changed experience of Control* parameters to beginner + * backend: ensure clear error message if Host is used in sshd_config + * updated demos to use cme + * use cme gen-class-pod to re-build when necessary + * updated Config::Model dependency to 2.026 for this + 2012-10-28 Dominique Dumont v 1.225 Doc and demo fix release diff -Nru libconfig-model-openssh-perl-1.225/MANIFEST libconfig-model-openssh-perl-1.227/MANIFEST --- libconfig-model-openssh-perl-1.225/MANIFEST 2012-10-28 10:03:40.000000000 +0000 +++ libconfig-model-openssh-perl-1.227/MANIFEST 2013-04-04 18:42:07.000000000 +0000 @@ -3,9 +3,9 @@ LICENSE MANIFEST MANIFEST.SKIP +META.json META.yml README.pod -TODO demo/maintainer-demo.pl demo/user-demo.pl lib/Config/Model/Backend/OpenSsh.pm @@ -29,8 +29,6 @@ lib/Config/Model/system.d/ssh lib/Config/Model/system.d/sshd lib/Config/Model/user.d/ssh -t/augeas_match.t -t/augeas_sshd.t t/custom_sshd.t t/custom_sshd_match.t t/model_tests.d/sshd-examples/debian-671367 diff -Nru libconfig-model-openssh-perl-1.225/META.json libconfig-model-openssh-perl-1.227/META.json --- libconfig-model-openssh-perl-1.225/META.json 1970-01-01 00:00:00.000000000 +0000 +++ libconfig-model-openssh-perl-1.227/META.json 2013-04-04 18:42:07.000000000 +0000 @@ -0,0 +1,68 @@ +{ + "abstract" : "OpenSsh config editor", + "author" : [ + "Dominique Dumont" + ], + "dynamic_config" : 0, + "generated_by" : "Dist::Zilla version 4.300032, CPAN::Meta::Converter version 2.120921", + "license" : [ + "lgpl_2_1" + ], + "meta-spec" : { + "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", + "version" : "2" + }, + "name" : "Config-Model-OpenSsh", + "prereqs" : { + "build" : { + "requires" : { + "File::Copy::Recursive" : "0", + "Module::Build" : "0.3601", + "Test::Differences" : "0", + "Test::Exception" : "0", + "Test::File::Contents" : "0", + "Test::Memory::Cycle" : "0", + "Test::More" : "0", + "Test::Warn" : "0" + } + }, + "configure" : { + "requires" : { + "Config::Model" : "2.026", + "Module::Build" : "0.3601" + } + }, + "develop" : { + "requires" : { + "Test::Pod" : "1.41" + } + }, + "runtime" : { + "recommends" : { + "Config::Model::CursesUI" : "0", + "Config::Model::TkUI" : "0" + }, + "requires" : { + "Config::Model" : "2.026", + "Log::Log4perl" : "1.11", + "Mouse" : "0", + "Tk" : "0" + } + } + }, + "release_status" : "stable", + "resources" : { + "bugtracker" : { + "mailto" : "bug-project@rt.cpan.org", + "web" : "http://rt.cpan.org/NoAuth/Bugs.html?Dist=Config-Model-OpenSsh" + }, + "homepage" : "https://github.com/dod38fr/config-model/wiki", + "repository" : { + "type" : "git", + "url" : "git://github.com/dod38fr/config-model-openssh.git", + "web" : "http://github.com/dod38fr/config-model-openssh.git" + } + }, + "version" : "1.227" +} + diff -Nru libconfig-model-openssh-perl-1.225/META.yml libconfig-model-openssh-perl-1.227/META.yml --- libconfig-model-openssh-perl-1.225/META.yml 2012-10-28 10:03:40.000000000 +0000 +++ libconfig-model-openssh-perl-1.227/META.yml 2013-04-04 18:42:07.000000000 +0000 @@ -12,21 +12,25 @@ Test::More: 0 Test::Warn: 0 configure_requires: + Config::Model: 2.026 Module::Build: 0.3601 dynamic_config: 0 -generated_by: 'Dist::Zilla version 4.300025, CPAN::Meta::Converter version 2.120921' +generated_by: 'Dist::Zilla version 4.300032, CPAN::Meta::Converter version 2.120921' license: lgpl meta-spec: url: http://module-build.sourceforge.net/META-spec-v1.4.html version: 1.4 name: Config-Model-OpenSsh recommends: - Config::Model::Backend::Augeas: 0 Config::Model::CursesUI: 0 Config::Model::TkUI: 0 requires: - Any::Moose: 0 - Config::Model: 2.017 - File::Slurp: 0 + Config::Model: 2.026 Log::Log4perl: 1.11 -version: 1.225 + Mouse: 0 + Tk: 0 +resources: + bugtracker: http://rt.cpan.org/NoAuth/Bugs.html?Dist=Config-Model-OpenSsh + homepage: https://github.com/dod38fr/config-model/wiki + repository: git://github.com/dod38fr/config-model-openssh.git +version: 1.227 diff -Nru libconfig-model-openssh-perl-1.225/README.pod libconfig-model-openssh-perl-1.227/README.pod --- libconfig-model-openssh-perl-1.225/README.pod 2012-10-28 10:03:40.000000000 +0000 +++ libconfig-model-openssh-perl-1.227/README.pod 2013-04-04 18:42:07.000000000 +0000 @@ -36,7 +36,7 @@ =head2 Installation from git -Make sure that L and C are installed. +Make sure that L and L are installed, then run: dzil build diff -Nru libconfig-model-openssh-perl-1.225/TODO libconfig-model-openssh-perl-1.227/TODO --- libconfig-model-openssh-perl-1.225/TODO 2012-10-28 10:03:40.000000000 +0000 +++ libconfig-model-openssh-perl-1.227/TODO 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - -* Maybe separate OpenSsh client and server into 2 Perl distributions. - diff -Nru libconfig-model-openssh-perl-1.225/debian/changelog libconfig-model-openssh-perl-1.227/debian/changelog --- libconfig-model-openssh-perl-1.225/debian/changelog 2012-10-29 12:51:10.000000000 +0000 +++ libconfig-model-openssh-perl-1.227/debian/changelog 2013-05-04 19:13:20.000000000 +0000 @@ -1,3 +1,24 @@ +libconfig-model-openssh-perl (1.227-1) unstable; urgency=low + + [ Salvatore Bonaccorso ] + * Change Vcs-Git to canonical URI (git://anonscm.debian.org) + * Change search.cpan.org based URIs to metacpan.org based URIs + + [ Dominique Dumont ] + * Imported Upstream version 1.227: + * Removed Augeas backend (no longer needed, comments are handled + by Config::Model::Backend::OpenSsh) + * Replaced Any::Moose with Mouse. + * control: + * updated std-version + * added enhances openssh-client openssh-server + * updated description + * depends on libmouse-perl instead of libany-moose-perl + * depends on libconfig-model-perl ( >= 2.034) + * copyright: updated years + + -- Dominique Dumont Sat, 04 May 2013 21:11:02 +0200 + libconfig-model-openssh-perl (1.225-1) unstable; urgency=low * New upstream version (Doc and demo fix release) diff -Nru libconfig-model-openssh-perl-1.225/debian/control libconfig-model-openssh-perl-1.227/debian/control --- libconfig-model-openssh-perl-1.225/debian/control 2012-10-29 12:51:10.000000000 +0000 +++ libconfig-model-openssh-perl-1.227/debian/control 2013-05-04 19:13:20.000000000 +0000 @@ -6,36 +6,36 @@ Jotam Jr. Trejo Section: perl Priority: optional -Build-Depends: debhelper (>= 8), - perl -Build-Depends-Indep: libany-moose-perl, - libconfig-model-backend-augeas-perl, - libconfig-model-perl ( >= 2.015), +Build-Depends: debhelper (>= 8) +Build-Depends-Indep: libconfig-model-backend-augeas-perl, + libconfig-model-perl ( >= 2.034), libfile-copy-recursive-perl, liblog-log4perl-perl, + libmouse-perl, libtest-differences-perl, libtest-exception-perl, libtest-file-contents-perl, libtest-memory-cycle-perl, libtest-pod-perl, libtest-warn-perl -Standards-Version: 3.9.3 +Standards-Version: 3.9.4 Vcs-Browser: http://anonscm.debian.org/gitweb/?p=pkg-perl/packages/libconfig-model-openssh-perl.git -Vcs-Git: git://git.debian.org/pkg-perl/packages/libconfig-model-openssh-perl.git -Homepage: http://search.cpan.org/dist/Config-Model-OpenSsh/ +Vcs-Git: git://anonscm.debian.org/pkg-perl/packages/libconfig-model-openssh-perl.git +Homepage: https://metacpan.org/release/Config-Model-OpenSsh/ Package: libconfig-model-openssh-perl Architecture: all -Depends: ${perl:Depends}, - ${misc:Depends}, - libany-moose-perl, - libconfig-model-perl ( >= 2.015), - liblog-log4perl-perl -Recommends: libconfig-model-tkui-perl, - libconfig-model-backend-augeas-perl +Depends: ${misc:Depends}, + ${perl:Depends}, + libconfig-model-perl ( >= 2.034), + liblog-log4perl-perl, + libmouse-perl +Recommends: libconfig-model-tkui-perl Suggests: libconfig-model-cursesui-perl +Enhances: openssh-client, + openssh-server Description: configuration file editor for OpenSsh - Config::Model::OpenSsh is a configuration model for editing OpenSSH + Config::Model::OpenSsh enables cme command to edit OpenSSH configuration files, namely, /etc/ssh/sshd_config, /etc/ssh/ssh_config (for root) and ~/.ssh/config (for other users). . @@ -48,6 +48,6 @@ be edited with the graphical interface and saved back in the configuration files. . - Using '-ui none', the OpenSSH configuration editor can also be used as a - command line to validate the semantic content of configuration files. + 'cme check ssh' command can be used to validate the content of ssh* + configuration files. diff -Nru libconfig-model-openssh-perl-1.225/debian/copyright libconfig-model-openssh-perl-1.227/debian/copyright --- libconfig-model-openssh-perl-1.225/debian/copyright 2012-10-29 12:51:10.000000000 +0000 +++ libconfig-model-openssh-perl-1.227/debian/copyright 2013-05-04 19:13:20.000000000 +0000 @@ -1,14 +1,14 @@ Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Upstream-Name: Config-Model-OpenSsh Upstream-Contact: Dominique Dumont -Source: http://search.cpan.org/dist/Config-Model-OpenSsh/ +Source: https://metacpan.org/release/Config-Model-OpenSsh/ Files: * -Copyright: 2008-2012, Dominique Dumont +Copyright: 2008-2013, Dominique Dumont License: LGPL-2.1+ Files: debian/* -Copyright: 2009-2012, Dominique Dumont +Copyright: 2009-2013, Dominique Dumont 2010, Jonathan Yu 2011, Jotam Jr. Trejo 2011, gregor herrmann diff -Nru libconfig-model-openssh-perl-1.225/debian/watch libconfig-model-openssh-perl-1.227/debian/watch --- libconfig-model-openssh-perl-1.225/debian/watch 2012-10-29 12:51:10.000000000 +0000 +++ libconfig-model-openssh-perl-1.227/debian/watch 2013-05-04 19:13:20.000000000 +0000 @@ -1,4 +1,4 @@ # format version number, currently 3; this line is compulsory! version=3 # URL to the package page followed by a regex to search -http://search.cpan.org/dist/Config-Model-OpenSsh/ .*/Config-Model-OpenSsh-v?(\d[\d.-]+)\.(?:tar(?:\.gz|\.bz2)?|tgz|zip)$ +https://metacpan.org/release/Config-Model-OpenSsh/ .*/Config-Model-OpenSsh-v?(\d[\d.-]+)\.(?:tar(?:\.gz|\.bz2)?|tgz|zip)$ diff -Nru libconfig-model-openssh-perl-1.225/lib/Config/Model/Backend/OpenSsh/Ssh.pm libconfig-model-openssh-perl-1.227/lib/Config/Model/Backend/OpenSsh/Ssh.pm --- libconfig-model-openssh-perl-1.225/lib/Config/Model/Backend/OpenSsh/Ssh.pm 2012-10-28 10:03:40.000000000 +0000 +++ libconfig-model-openssh-perl-1.227/lib/Config/Model/Backend/OpenSsh/Ssh.pm 2013-04-04 18:42:07.000000000 +0000 @@ -9,10 +9,10 @@ # package Config::Model::Backend::OpenSsh::Ssh ; { - $Config::Model::Backend::OpenSsh::Ssh::VERSION = '1.225'; + $Config::Model::Backend::OpenSsh::Ssh::VERSION = '1.227'; } -use Any::Moose ; +use Mouse ; extends "Config::Model::Backend::OpenSsh" ; use Carp ; @@ -205,7 +205,7 @@ } 1; -no Any::Moose; +no Mouse; __END__ diff -Nru libconfig-model-openssh-perl-1.225/lib/Config/Model/Backend/OpenSsh/Sshd.pm libconfig-model-openssh-perl-1.227/lib/Config/Model/Backend/OpenSsh/Sshd.pm --- libconfig-model-openssh-perl-1.225/lib/Config/Model/Backend/OpenSsh/Sshd.pm 2012-10-28 10:03:40.000000000 +0000 +++ libconfig-model-openssh-perl-1.227/lib/Config/Model/Backend/OpenSsh/Sshd.pm 2013-04-04 18:42:07.000000000 +0000 @@ -9,10 +9,10 @@ # package Config::Model::Backend::OpenSsh::Sshd ; { - $Config::Model::Backend::OpenSsh::Sshd::VERSION = '1.225'; + $Config::Model::Backend::OpenSsh::Sshd::VERSION = '1.227'; } -use Any::Moose ; +use Mouse ; extends "Config::Model::Backend::OpenSsh" ; use Carp ; @@ -239,7 +239,7 @@ return $result ; } -no Any::Moose; +no Mouse; 1; diff -Nru libconfig-model-openssh-perl-1.225/lib/Config/Model/Backend/OpenSsh.pm libconfig-model-openssh-perl-1.227/lib/Config/Model/Backend/OpenSsh.pm --- libconfig-model-openssh-perl-1.225/lib/Config/Model/Backend/OpenSsh.pm 2012-10-28 10:03:40.000000000 +0000 +++ libconfig-model-openssh-perl-1.227/lib/Config/Model/Backend/OpenSsh.pm 2013-04-04 18:42:07.000000000 +0000 @@ -9,10 +9,10 @@ # package Config::Model::Backend::OpenSsh ; { - $Config::Model::Backend::OpenSsh::VERSION = '1.225'; + $Config::Model::Backend::OpenSsh::VERSION = '1.227'; } -use Any::Moose ; +use Mouse ; extends "Config::Model::Backend::Any" ; has 'current_node' => ( @@ -77,7 +77,7 @@ my $i = 0; while ( $i < @dispatch ) { my ( $regexp, $sub ) = @dispatch[ $i++, $i++ ]; - if ( $k =~ $regexp ) { + if ( $k =~ $regexp and $self->can($sub)) { $logger->trace("read_ssh_file: dispatch calls $sub"); $self->$sub( $config_root, $k, \@v, $comment ); last; @@ -205,7 +205,7 @@ return $result.$match ; } -no Any::Moose; +no Mouse; 1; diff -Nru libconfig-model-openssh-perl-1.225/lib/Config/Model/OpenSsh.pm libconfig-model-openssh-perl-1.227/lib/Config/Model/OpenSsh.pm --- libconfig-model-openssh-perl-1.225/lib/Config/Model/OpenSsh.pm 2012-10-28 10:03:40.000000000 +0000 +++ libconfig-model-openssh-perl-1.227/lib/Config/Model/OpenSsh.pm 2013-04-04 18:42:07.000000000 +0000 @@ -9,7 +9,7 @@ # package Config::Model::OpenSsh ; { - $Config::Model::OpenSsh::VERSION = '1.225'; + $Config::Model::OpenSsh::VERSION = '1.227'; } 1; diff -Nru libconfig-model-openssh-perl-1.225/lib/Config/Model/models/Ssh/HostElement.pl libconfig-model-openssh-perl-1.227/lib/Config/Model/models/Ssh/HostElement.pl --- libconfig-model-openssh-perl-1.225/lib/Config/Model/models/Ssh/HostElement.pl 2012-10-28 10:03:40.000000000 +0000 +++ libconfig-model-openssh-perl-1.227/lib/Config/Model/models/Ssh/HostElement.pl 2013-04-04 18:42:07.000000000 +0000 @@ -38,14 +38,14 @@ 'value_type' => 'boolean', 'upstream_default' => '0', 'type' => 'leaf', - 'description' => "If set to 'yes', passphrase/password querying will be disabled. In addition, the ServerAliveInterval option will be set to 300 seconds by default. This option is useful in scripts and other batch jobs where no user is present to supply the password, and where it is desirable to detect a broken network swiftly. " + 'description' => 'If set to \'yes\', passphrase/password querying will be disabled. In addition, the ServerAliveInterval option will be set to 300 seconds by default. This option is useful in scripts and other batch jobs where no user is present to supply the password, and where it is desirable to detect a broken network swiftly. ' }, 'BindAddress', { 'value_type' => 'uniline', 'experience' => 'advanced', 'type' => 'leaf', - 'description' => "Use the specified address on the local machine as the source address of the connection. Only useful on systems with more than one address. Note that this option does not work if UsePrivilegedPort is set to 'yes'." + 'description' => 'Use the specified address on the local machine as the source address of the connection. Only useful on systems with more than one address. Note that this option does not work if UsePrivilegedPort is set to \'yes\'.' }, 'ChallengeResponseAuthentication', { @@ -166,7 +166,6 @@ { 'value_type' => 'enum', 'upstream_default' => 'no', - 'experience' => 'master', 'type' => 'leaf', 'description' => 'Enables the sharing of multiple sessions over a single network connection. When set to \'yes\', ssh(1) will listen for connections on a control socket specified using the ControlPath argument. Additional sessions can connect to this socket using the same ControlPath with ControlMaster set to \'no\' (the default). These sessions will try to reuse the master instance\'s network connection rather than initiating new ones, but will fall back to connecting normally if the control socket does not exist, or is not listening. @@ -188,11 +187,18 @@ 'ControlPath', { 'value_type' => 'uniline', - 'experience' => 'master', 'type' => 'leaf', 'description' => 'Specify the path to the control socket used for connection sharing as described in the ControlMaster section above or the string \'none\' to disable connection sharing. In the path, \'%l\' will be substituted by the local host name, \'%h\' will be substituted by the target host name, \'%p\' the port, and \'%r\' by the remotelogin username. It is recommended that any ControlPath used for opportunistic connection sharing include at least %h, %p, and %r. This ensures that shared connections are uniquely identified. ' }, + 'ControlPersist', + { + 'value_type' => 'uniline', + 'summary' => 'persists the master connection in the background', + 'match' => '^(?i)yes|no|\\d+$', + 'type' => 'leaf', + 'description' => 'When used in conjunction with ControlMaster, specifies that the master connection should remain open in the background (waiting for future client connections) after the initial client connection has been closed. If set to ``no\'\', then the master connection will not be placed into the background, and will close as soon as the initial client connection is closed. If set to ``yes\'\', then the master connection will remain in the background indef- initely (until killed or closed via a mechanism such as the ssh(1) ``-O exit\'\' option). If set to a time in seconds, or a time in any of the formats documented in sshd_config(5), then the backgrounded master connection will automatically terminate after it has remained idle (with no client connections) for the specified time.' + }, 'DynamicForward', { 'cargo' => { @@ -561,6 +567,24 @@ If the bind_address is not specified, the default is to only bind to loopback addresses. If the bind_address is \'*\' or an empty string, then the forwarding is requested to listen on all inter faces. Specifying a remote bind_address will only succeed if the server\'s GatewayPorts option is enabled (see sshd_config(5)).' }, + 'RequestTTY', + { + 'value_type' => 'enum', + 'help' => { + 'yes' => 'always request a TTY when standard input is a TTY', + 'auto' => 'request a TTY when opening a login session', + 'no' => 'never request a TTY', + 'force' => 'always request a TTY' + }, + 'type' => 'leaf', + 'description' => 'Specifies whether to request a pseudo-tty for the session. This option mirrors the -t and -T flags for C.', + 'choice' => [ + 'yes', + 'no', + 'force', + 'auto' + ] + }, 'RhostsRSAAuthentication', { 'value_type' => 'boolean', diff -Nru libconfig-model-openssh-perl-1.225/lib/Config/Model/models/Ssh/HostElement.pod libconfig-model-openssh-perl-1.227/lib/Config/Model/models/Ssh/HostElement.pod --- libconfig-model-openssh-perl-1.225/lib/Config/Model/models/Ssh/HostElement.pod 2012-10-28 10:03:40.000000000 +0000 +++ libconfig-model-openssh-perl-1.227/lib/Config/Model/models/Ssh/HostElement.pod 2013-04-04 18:42:07.000000000 +0000 @@ -77,6 +77,10 @@ Specify the path to the control socket used for connection sharing as described in the ControlMaster section above or the string 'none' to disable connection sharing. In the path, '%l' will be substituted by the local host name, '%h' will be substituted by the target host name, '%p' the port, and '%r' by the remotelogin username. It is recommended that any ControlPath used for opportunistic connection sharing include at least %h, %p, and %r. This ensures that shared connections are uniquely identified. I<< Optional. Type uniline. >> +=head2 ControlPersist - persists the master connection in the background + +When used in conjunction with ControlMaster, specifies that the master connection should remain open in the background (waiting for future client connections) after the initial client connection has been closed. If set to ``no'', then the master connection will not be placed into the background, and will close as soon as the initial client connection is closed. If set to ``yes'', then the master connection will remain in the background indef- initely (until killed or closed via a mechanism such as the ssh(1) ``-O exit'' option). If set to a time in seconds, or a time in any of the formats documented in sshd_config(5), then the backgrounded master connection will automatically terminate after it has remained idle (with no client connections) for the specified time.I<< Optional. Type uniline. >> + =head2 DynamicForward Specifies that a TCP port on the local machine be forwarded over the secure channel, and the application protocol is then used to determine where to connect to from the remote machine. @@ -255,6 +259,34 @@ If the bind_address is not specified, the default is to only bind to loopback addresses. If the bind_address is '*' or an empty string, then the forwarding is requested to listen on all inter faces. Specifying a remote bind_address will only succeed if the server's GatewayPorts option is enabled (see sshd_config(5)).I<< Optional. Type list of node. >> +=head2 RequestTTY + +Specifies whether to request a pseudo-tty for the session. This option mirrors the -t and -T flags for C.I<< Optional. Type enum. choice: 'yes', 'no', 'force', 'auto'. >> + +Here are some explanations on the possible values: + +=over + +=item 'auto' + +request a TTY when opening a login session + +=item 'force' + +always request a TTY + +=item 'no' + +never request a TTY + +=item 'yes' + +always request a TTY when standard input is a TTY + +=back + + + =head2 RhostsRSAAuthentication Specifies whether to try rhosts based authentication with RSA host authentication. This option applies to protocol version 1 only and requires ssh(1) to be setuid root.I<< Optional. Type boolean. upstream_default: '0'. >> diff -Nru libconfig-model-openssh-perl-1.225/lib/Config/Model/models/Ssh/PortForward.pl libconfig-model-openssh-perl-1.227/lib/Config/Model/models/Ssh/PortForward.pl --- libconfig-model-openssh-perl-1.225/lib/Config/Model/models/Ssh/PortForward.pl 2012-10-28 10:03:40.000000000 +0000 +++ libconfig-model-openssh-perl-1.227/lib/Config/Model/models/Ssh/PortForward.pl 2013-04-04 18:42:07.000000000 +0000 @@ -31,11 +31,11 @@ 'value_type' => 'uniline', 'summary' => 'bind address to listen to', 'type' => 'leaf', - 'description' => "Specify the address that the port will listen to. By default, only connections coming from localhost (127.0.0.1) will be forwarded. + 'description' => 'Specify the address that the port will listen to. By default, only connections coming from localhost (127.0.0.1) will be forwarded. By default, the local port is bound in accordance with the GatewayPorts setting. However, an explicit bind_address may be used to bind the connection to a specific address. -The bind_address of 'localhost' indicates that the listening port be bound for local use only, while an empty address or '*' indicates that the port should be available from all interfaces." +The bind_address of \'localhost\' indicates that the listening port be bound for local use only, while an empty address or \'*\' indicates that the port should be available from all interfaces.' }, 'port', { diff -Nru libconfig-model-openssh-perl-1.225/lib/Config/Model/models/Ssh.pl libconfig-model-openssh-perl-1.227/lib/Config/Model/models/Ssh.pl --- libconfig-model-openssh-perl-1.225/lib/Config/Model/models/Ssh.pl 2012-10-28 10:03:40.000000000 +0000 +++ libconfig-model-openssh-perl-1.227/lib/Config/Model/models/Ssh.pl 2013-04-04 18:42:07.000000000 +0000 @@ -43,7 +43,7 @@ }, 'ordered' => '1', 'type' => 'hash', - 'description' => "The declarations make in 'parameters' are applied only to the hosts that match one of the patterns given in pattern elements. A single '*' as a pattern can be used to provide global defaults for all hosts. The host is the hostname argument given on the command line (i.e. the name is not converted to a canonicalized host name before matching). Since the first obtained value for each parameter is used, more host-specific declarations should be given near the beginning of the hash (which takes order into account), and general defaults at the end.", + 'description' => 'The declarations make in \'parameters\' are applied only to the hosts that match one of the patterns given in pattern elements. A single \'*\' as a pattern can be used to provide global defaults for all hosts. The host is the hostname argument given on the command line (i.e. the name is not converted to a canonicalized host name before matching). Since the first obtained value for each parameter is used, more host-specific declarations should be given near the beginning of the hash (which takes order into account), and general defaults at the end.', 'index_type' => 'string' } ], diff -Nru libconfig-model-openssh-perl-1.225/lib/Config/Model/models/Ssh.pod libconfig-model-openssh-perl-1.227/lib/Config/Model/models/Ssh.pod --- libconfig-model-openssh-perl-1.225/lib/Config/Model/models/Ssh.pod 2012-10-28 10:03:40.000000000 +0000 +++ libconfig-model-openssh-perl-1.227/lib/Config/Model/models/Ssh.pod 2013-04-04 18:42:07.000000000 +0000 @@ -88,6 +88,10 @@ Specify the path to the control socket used for connection sharing as described in the ControlMaster section above or the string 'none' to disable connection sharing. In the path, '%l' will be substituted by the local host name, '%h' will be substituted by the target host name, '%p' the port, and '%r' by the remotelogin username. It is recommended that any ControlPath used for opportunistic connection sharing include at least %h, %p, and %r. This ensures that shared connections are uniquely identified. I<< Optional. Type uniline. >> +=head2 ControlPersist - persists the master connection in the background + +When used in conjunction with ControlMaster, specifies that the master connection should remain open in the background (waiting for future client connections) after the initial client connection has been closed. If set to ``no'', then the master connection will not be placed into the background, and will close as soon as the initial client connection is closed. If set to ``yes'', then the master connection will remain in the background indef- initely (until killed or closed via a mechanism such as the ssh(1) ``-O exit'' option). If set to a time in seconds, or a time in any of the formats documented in sshd_config(5), then the backgrounded master connection will automatically terminate after it has remained idle (with no client connections) for the specified time.I<< Optional. Type uniline. >> + =head2 DynamicForward Specifies that a TCP port on the local machine be forwarded over the secure channel, and the application protocol is then used to determine where to connect to from the remote machine. @@ -266,6 +270,34 @@ If the bind_address is not specified, the default is to only bind to loopback addresses. If the bind_address is '*' or an empty string, then the forwarding is requested to listen on all inter faces. Specifying a remote bind_address will only succeed if the server's GatewayPorts option is enabled (see sshd_config(5)).I<< Optional. Type list of node. >> +=head2 RequestTTY + +Specifies whether to request a pseudo-tty for the session. This option mirrors the -t and -T flags for C.I<< Optional. Type enum. choice: 'yes', 'no', 'force', 'auto'. >> + +Here are some explanations on the possible values: + +=over + +=item 'auto' + +request a TTY when opening a login session + +=item 'force' + +always request a TTY + +=item 'no' + +never request a TTY + +=item 'yes' + +always request a TTY when standard input is a TTY + +=back + + + =head2 RhostsRSAAuthentication Specifies whether to try rhosts based authentication with RSA host authentication. This option applies to protocol version 1 only and requires ssh(1) to be setuid root.I<< Optional. Type boolean. upstream_default: '0'. >> diff -Nru libconfig-model-openssh-perl-1.225/lib/Config/Model/models/Sshd.pl libconfig-model-openssh-perl-1.227/lib/Config/Model/models/Sshd.pl --- libconfig-model-openssh-perl-1.225/lib/Config/Model/models/Sshd.pl 2012-10-28 10:03:40.000000000 +0000 +++ libconfig-model-openssh-perl-1.227/lib/Config/Model/models/Sshd.pl 2013-04-04 18:42:07.000000000 +0000 @@ -97,12 +97,12 @@ }, 'AuthorizedKeysFile', { - 'migrate_values_from' => '- AuthorizedKeysFile2', 'cargo' => { 'value_type' => 'uniline', 'type' => 'leaf' }, 'experience' => 'advanced', + 'migrate_values_from' => '- AuthorizedKeysFile2', 'type' => 'list', 'description' => 'Specifies the file that contains the public keys that can be used for user authentication. AuthorizedKeysFile may contain tokens of the form %T which are substituted during connection setup.' }, @@ -851,17 +851,6 @@ { 'backend' => 'OpenSsh::Sshd', 'config_dir' => '/etc/ssh' - }, - { - 'save' => 'backup', - 'file' => 'sshd_config', - 'backend' => 'augeas', - 'sequential_lens' => [ - 'HostKey', - 'Subsystem', - 'Match' - ], - 'config_dir' => '/etc/ssh' } ] } diff -Nru libconfig-model-openssh-perl-1.225/t/augeas_match.t libconfig-model-openssh-perl-1.227/t/augeas_match.t --- libconfig-model-openssh-perl-1.225/t/augeas_match.t 2012-10-28 10:03:40.000000000 +0000 +++ libconfig-model-openssh-perl-1.227/t/augeas_match.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,145 +0,0 @@ -use ExtUtils::testlib; -use Test::More ; -use Config::Model ; -use Log::Log4perl qw(:easy) ; -use File::Path ; -use File::Copy ; -use Test::Differences ; - -use warnings; -no warnings qw(once); - -use strict; - - -my $arg = shift || ''; - -my ($log,$show) = (0) x 2 ; - -my $trace = $arg =~ /t/ ? 1 : 0 ; -$log = 1 if $arg =~ /l/; -$show = 1 if $arg =~ /s/; - -if (eval {require Config::Model::Backend::Augeas; } ) { - # workaround Augeas locale bug - no warnings qw/uninitialized/; - if ($ENV{LC_ALL} ne 'C' or $ENV{LANG} ne 'C') { - $ENV{LC_ALL} = $ENV{LANG} = 'C'; - my $inc = join(' ',map("-I$_",@INC)) ; - exec("$^X $inc $0 @ARGV"); - } - plan tests => 7 ; -} -else { - plan skip_all => "Config::Model::Backend::Augeas is not installed"; -} - -Log::Log4perl->easy_init($log ? $TRACE: $WARN); - -#$::RD_ERRORS = 1 ; -#$::RD_WARN = 1 ; # unless undefined, also report non-fatal problems -#$::RD_HINT = 1 ; # if defined, also suggestion remedies -$::RD_TRACE = 1 if $arg =~ /p/; - -my $model = Config::Model -> new ( ) ; - -Config::Model::Exception::Any->Trace(1) if $arg =~ /e/; - -ok(1,"compiled"); - -# pseudo root where config files are written by config-model -my $wr_root = 'wr_test'; - -my $testdir = 'augeas_match' ; - -# cleanup before tests -rmtree($wr_root); - -my @orig = ; - -my $wr_dir = $wr_root.'/'.$testdir ; -mkpath($wr_dir.'/etc/ssh', { mode => 0755 }) - || die "can't mkpath: $!"; -open(SSHD,"> $wr_dir/etc/ssh/sshd_config") - || die "can't open file: $!"; -print SSHD @orig ; -close SSHD ; - -my $inst = $model->instance (root_class_name => 'Sshd', - instance_name => 'sshd_instance', - root_dir => $wr_dir, - ); - -ok($inst,"Read $wr_dir/etc/ssh/sshd_config and created instance") ; - -my $root = $inst -> config_root ; - -my $dump = $root->dump_tree (); -print "$testdir dump:\n",$dump if $trace ; - -$inst->write_back(backend => 'augeas', force => 1) ; -ok(1,"wrote data in $wr_dir") ; - -open(SSHD2,"$wr_dir/etc/ssh/sshd_config") - || die "can't open file: $!"; -my @new = ; -close SSHD2 ; - -TODO: { -local $TODO = "The last X11Forwarding is a computed default value. As such, it is -written in the file. It would be smarter not to write it. For this, -Config::Model need to support computed value that provide a -'built_in' computed value instead of 'default' computed value. A -built_in value will not be written in sshd_config file"; - - -eq_or_diff(\@new,\@orig,"check written file (no modif)") ; - -# remove also this line with the todo -push @orig, "X11Forwarding yes\n"; -} - - - -eq_or_diff(\@new,\@orig,"check written file with workaround (no modif )") ; - - -$root->load("HostbasedAuthentication=yes - Subsystem:ddftp=/home/dd/bin/ddftp - ") ; - -$inst->write_back(backend => 'augeas') ; -ok(1,"wrote data in $wr_dir") ; - -open(SSHD2,"$wr_dir/etc/ssh/sshd_config") - || die "can't open file: $!"; - -my @new2 = ; -close SSHD2 ; - -my @mod = @orig; -splice @mod,1,0, "HostbasedAuthentication yes\n", - "Subsystem ddftp /home/dd/bin/ddftp\n"; - -eq_or_diff(\@new2,\@mod,"check written file with workaround (and modifs)") ; - -__DATA__ - -X11Forwarding yes - -Match User domi -AllowTcpForwarding yes -PasswordAuthentication yes -RhostsRSAAuthentication no -RSAAuthentication yes -X11DisplayOffset 10 -X11Forwarding yes - -# sarkomment -Match User sarko Group pres.* -Banner /etc/bienvenue.txt -X11Forwarding no - -# some comment -Match User bush Group pres.* Host white.house.* -Banner /etc/welcome.txt diff -Nru libconfig-model-openssh-perl-1.225/t/augeas_sshd.t libconfig-model-openssh-perl-1.227/t/augeas_sshd.t --- libconfig-model-openssh-perl-1.225/t/augeas_sshd.t 2012-10-28 10:03:40.000000000 +0000 +++ libconfig-model-openssh-perl-1.227/t/augeas_sshd.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,197 +0,0 @@ -# -*- cperl -*- -# $Author: ddumont $ -# $Date: 2008-04-15 13:57:49 +0200 (mar, 15 avr 2008) $ -# $Revision: 608 $ - -use ExtUtils::testlib; -use Test::More ; -use Config::Model ; -use Log::Log4perl qw(:easy) ; -use File::Path ; -use File::Copy ; - -use warnings; -no warnings qw(once); - -use strict; - -my $arg = shift || ''; - -my ($log,$show) = (0) x 2 ; - -my $trace = $arg =~ /t/ ? 1 : 0 ; -$::verbose = 1 if $arg =~ /v/; -$::debug = 1 if $arg =~ /d/; -$log = 1 if $arg =~ /l/; -$show = 1 if $arg =~ /s/; - -Log::Log4perl->easy_init($log ? $TRACE: $WARN); - -#$::RD_ERRORS = 1 ; -#$::RD_WARN = 1 ; # unless undefined, also report non-fatal problems -#$::RD_HINT = 1 ; # if defined, also suggestion remedies -$::RD_TRACE = 1 if $arg =~ /p/; - -if (eval {require Config::Model::Backend::Augeas; } ) { - # workaround Augeas locale bug - no warnings qw/uninitialized/; - if ($ENV{LC_ALL} ne 'C' or $ENV{LANG} ne 'C') { - $ENV{LC_ALL} = $ENV{LANG} = 'C'; - my $inc = join(' ',map("-I$_",@INC)) ; - exec("$^X $inc $0 @ARGV"); - } - plan tests => 6 ; -} -else { - plan skip_all => "Config::Model::Backend::Augeas is not installed"; -} - -my $model = Config::Model -> new ( ) ; - -Config::Model::Exception::Any->Trace(1) if $arg =~ /e/; - -ok(1,"compiled"); - -# pseudo root where config files are written by config-model -my $wr_root = 'wr_test'; - -my $testdir = 'augeas_sshd' ; - -# cleanup before tests -rmtree($wr_root); - -my @orig = ; - -my $wr_dir = $wr_root.'/'.$testdir ; -mkpath($wr_dir.'/etc/ssh', { mode => 0755 }) - || die "can't mkpath: $!"; -open(SSHD,"> $wr_dir/etc/ssh/sshd_config") - || die "can't open file: $!"; -print SSHD @orig ; -close SSHD ; - -my $inst = $model->instance (root_class_name => 'Sshd', - instance_name => 'sshd_instance', - root_dir => $wr_dir, - ); - -ok($inst,"Read $wr_dir/etc/ssh/sshd_config and created instance") ; - -my $root = $inst -> config_root ; - -my $dump = $root->dump_tree (); -print "$testdir dump:\n",$dump if $trace ; - -$inst->write_back(backend => 'augeas') ; -ok(1,"wrote data in $wr_dir directory") ; - -my $wr_file = "$wr_dir/etc/ssh/sshd_config"; -open(SSHD2,$wr_file) || die "can't open file $wr_file: $!"; -my @new = ; -close SSHD2 ; - -is_deeply(\@new,\@orig,"check written file $wr_file (no modif)") ; - -$root->load("HostbasedAuthentication=yes - Subsystem:ddftp=/home/dd/bin/ddftp - ") ; - -$inst->write_back(backend => 'augeas') ; -ok(1,"wrote data in $wr_dir") ; - -open(SSHD2, $wr_file) || die "can't open file $wr_file: $!"; - -my @new2 = ; -close SSHD2 ; - -my @mod = @orig; -$mod[38] = "HostbasedAuthentication yes\n"; -splice @mod, 76,0, "Subsystem ddftp /home/dd/bin/ddftp\n"; - -is_deeply(\@new2,\@mod,"check written file $wr_file (with modifs)") ; - -__DATA__ - -# snatched from Debian config file -# Package generated configuration file -# See the sshd(8) manpage for details - -# What ports, IPs and protocols we listen for -Port 22 -# Use these options to restrict which interfaces/protocols sshd will bind to -#ListenAddress :: -#ListenAddress 0.0.0.0 -Protocol 2 -# HostKeys for protocol version 2 -HostKey /etc/ssh/ssh_host_rsa_key -HostKey /etc/ssh/ssh_host_dsa_key -#Privilege Separation is turned on for security -UsePrivilegeSeparation yes - -# Lifetime and size of ephemeral version 1 server key -KeyRegenerationInterval 3600 - -# Logging -SyslogFacility AUTH -LogLevel INFO - -# Authentication: -LoginGraceTime 120 -PermitRootLogin yes -StrictModes yes - -RSAAuthentication yes -PubkeyAuthentication yes -#AuthorizedKeysFile %h/.ssh/authorized_keys - -# Don't read the user's ~/.rhosts and ~/.shosts files -IgnoreRhosts yes -# For this to work you will also need host keys in /etc/ssh_known_hosts -RhostsRSAAuthentication no -# similar for protocol version 2 -HostbasedAuthentication no -# Uncomment if you don't trust ~/.ssh/known_hosts for RhostsRSAAuthentication -#IgnoreUserKnownHosts yes - -# To enable empty passwords, change to yes (NOT RECOMMENDED) -PermitEmptyPasswords no - -# Change to yes to enable challenge-response passwords (beware issues with -# some PAM modules and threads) -ChallengeResponseAuthentication no - -# Change to no to disable tunnelled clear text passwords -#PasswordAuthentication yes - -# Kerberos options -#KerberosAuthentication no -#KerberosGetAFSToken no -#KerberosOrLocalPasswd yes -#KerberosTicketCleanup yes - -# GSSAPI options -#GSSAPIAuthentication no -#GSSAPICleanupCredentials yes - -X11Forwarding yes -X11DisplayOffset 10 -PrintMotd no -PrintLastLog yes -TCPKeepAlive yes -#UseLogin no - -MaxStartups 10:30:60 -#Banner /etc/issue.net - -# Allow client to pass locale environment variables -AcceptEnv LANG LC_* - -Subsystem sftp /usr/lib/openssh/sftp-server - -UsePAM yes - -AllowUsers foo bar@192.168.0.* - -ClientAliveCountMax 5 -ClientAliveInterval 300 - diff -Nru libconfig-model-openssh-perl-1.225/t/custom_sshd.t libconfig-model-openssh-perl-1.227/t/custom_sshd.t --- libconfig-model-openssh-perl-1.225/t/custom_sshd.t 2012-10-28 10:03:40.000000000 +0000 +++ libconfig-model-openssh-perl-1.227/t/custom_sshd.t 2013-04-04 18:42:07.000000000 +0000 @@ -17,8 +17,6 @@ my ($log,$show) = (0) x 2 ; my $trace = $arg =~ /t/ ? 1 : 0 ; -$::verbose = 1 if $arg =~ /v/; -$::debug = 1 if $arg =~ /d/; $log = 1 if $arg =~ /l/; $show = 1 if $arg =~ /s/; @@ -31,12 +29,6 @@ Log::Log4perl->easy_init($log ? $DEBUG: $ERROR); } -# trap warning if Augeas backend is not installed -if (not eval {require Config::Model::Backend::Augeas; } ) { - # do not use Test::Warnings with this - $SIG{__WARN__} = sub { warn $_[0] unless $_[0] =~ /unknown backend/}; -} - my $model = Config::Model -> new ( ) ; Config::Model::Exception::Any->Trace(1) if $arg =~ /e/; diff -Nru libconfig-model-openssh-perl-1.225/t/custom_sshd_match.t libconfig-model-openssh-perl-1.227/t/custom_sshd_match.t --- libconfig-model-openssh-perl-1.225/t/custom_sshd_match.t 2012-10-28 10:03:40.000000000 +0000 +++ libconfig-model-openssh-perl-1.227/t/custom_sshd_match.t 2013-04-04 18:42:07.000000000 +0000 @@ -17,8 +17,6 @@ my ($log,$show) = (0) x 2 ; my $trace = $arg =~ /t/ ? 1 : 0 ; -$::verbose = 1 if $arg =~ /v/; -$::debug = 1 if $arg =~ /d/; $log = 1 if $arg =~ /l/; $show = 1 if $arg =~ /s/; @@ -31,12 +29,6 @@ Log::Log4perl->easy_init($log ? $DEBUG: $ERROR); } -# trap warning if Augeas backend is not installed -if (not eval {require Config::Model::Backend::Augeas; } ) { - # do not use Test::Warnings with this - $SIG{__WARN__} = sub { warn $_[0] unless $_[0] =~ /unknown backend/}; -} - my $model = Config::Model -> new ( ) ; Config::Model::Exception::Any->Trace(1) if $arg =~ /e/; diff -Nru libconfig-model-openssh-perl-1.225/t/ssh_config.t libconfig-model-openssh-perl-1.227/t/ssh_config.t --- libconfig-model-openssh-perl-1.225/t/ssh_config.t 2012-10-28 10:03:40.000000000 +0000 +++ libconfig-model-openssh-perl-1.227/t/ssh_config.t 2013-04-04 18:42:07.000000000 +0000 @@ -20,7 +20,6 @@ my ($log,$show) = (0) x 2 ; my $trace = $arg =~ /t/ ? 1 : 0 ; -$::debug = 1 if $arg =~ /d/; $log = 1 if $arg =~ /l/; $show = 1 if $arg =~ /s/; @@ -218,4 +217,6 @@ HostName localhost Port 20022 User ocad +ControlPersist YES +