CipUX-Passwd-3.4.0.3000755001750001750 011423664443 14712 5ustar00ckuelkerckuelker000000000000CipUX-Passwd-3.4.0.3/MANIFEST000444001750001750 31611423664443 16160 0ustar00ckuelkerckuelker000000000000bin/cipuxpasswd Build.PL Changes doc/usage.mkd lib/CipUX/Passwd.pm Makefile.PL MANIFEST This list of files MANIFEST.SKIP META.yml README t/00-load.t t/perlcritic.t t/perlcriticrc t/pod-coverage.t t/pod.t CipUX-Passwd-3.4.0.3/Build.PL000444001750001750 256311423664443 16351 0ustar00ckuelkerckuelker000000000000use strict; use warnings; use Module::Build; use version; our $VERSION = qv('3.4.0.3'); my $builder = Module::Build->new( module_name => 'CipUX::Passwd', license => 'gpl2', dist_author => 'Christian Kuelker ', dist_version => "$VERSION", dist_abstract => 'RPC client to set once own password', # create_makefile_pl => 'traditional', # create_readme => 1, verbose => 1, installdirs => 'vendor', meta_merge => { resources => { homepage => q(http://www.cipux.org), }, }, recommends => { 'File::Spec' => 0, 'Test::More' => 0, 'Test::Perl::Critic' => 0, 'Test::Pod' => '1.14', 'Test::Pod::Coverage' => '1.04', }, build_requires => {}, requires => { 'CipUX' => '3.4.0.0', 'CipUX::RPC::Client' => '3.4.0.0', 'Class::Std' => '0.0.9', 'English' => 0, 'Readonly' => 0, 'version' => 0, }, mkd_files => { 'doc/usage.mkd' => 'mydoc/usage.mkd', }, install_path => { 'mydoc' => '/usr/share/doc/cipux-passwd' }, add_to_cleanup => ['CipUX-Passwd-*'], ); # BUILD target #$builder->do_create_readme(); #$builder->do_create_makefile_pl(); $builder->add_build_element('mkd'); $builder->create_build_script(); CipUX-Passwd-3.4.0.3/README000444001750001750 142511423664443 15731 0ustar00ckuelkerckuelker000000000000CipUX-Passwd version 3.4.0.3 A simple XML-RPC client to set once own password. INSTALLATION To install this module, preferably run the following commands: perl Build.PL ./Build ./Build test ./Build install Alternatively, to install with ExtUtils::MakeMaker, you can use the following commands: perl Makefile.PL make make test make install DEPENDENCIES Carp CipUX Class::Std Data::Dumper English Log::Log4perl Readonly version COPYRIGHT AND LICENSE Copyright (C) 2009 by Christian Kuelker This library is licensed under the GNU GPL - GNU General Public License version 2 or (at your opinion) any later version. CipUX-Passwd-3.4.0.3/META.yml000444001750001750 136211423664443 16322 0ustar00ckuelkerckuelker000000000000--- abstract: 'RPC client to set once own password' author: - 'Christian Kuelker ' configure_requires: Module::Build: 0.36 generated_by: 'Module::Build version 0.3607' license: gpl2 meta-spec: url: http://module-build.sourceforge.net/META-spec-v1.4.html version: 1.4 name: CipUX-Passwd provides: CipUX::Passwd: file: lib/CipUX/Passwd.pm version: v3.4.0.3 recommends: File::Spec: 0 Test::More: 0 Test::Perl::Critic: 0 Test::Pod: 1.14 Test::Pod::Coverage: 1.04 requires: CipUX: v3.4.0.0 CipUX::RPC::Client: v3.4.0.0 Class::Std: v0.0.9 English: 0 Readonly: 0 version: 0 resources: homepage: http://www.cipux.org license: http://opensource.org/licenses/gpl-2.0.php version: v3.4.0.3 CipUX-Passwd-3.4.0.3/Makefile.PL000444001750001750 17111423664443 17000 0ustar00ckuelkerckuelker000000000000use Module::Build::Compat; Module::Build::Compat->run_build_pl(args => \@ARGV); Module::Build::Compat->write_makefile(); CipUX-Passwd-3.4.0.3/Changes000444001750001750 224311423664443 16343 0ustar00ckuelkerckuelker000000000000Revision history for CipUX-Passwd 3.4.0.3 2010-07-28T00:25:43 - changes * tighten licence specification to make META.yml happy * disable storage configuration with cache * drop build dependence Module::Build::CipUX * change USAGE to usage.mkd - contributor: Christian Kuelker - version created by: Christian Kuelker 3.4.0.2 2009-09-03T15:05:32 - changes * regarding a suggestion from Ulich P. Klein renaming task cipux_task_change_own_password_on_command_line to cipux_task_change_own_password_interactive - contributor: Christian Kuelker - version created by: Christian Kuelker 3.4.0.1 2009-05-12T00:29:12 - changes: * adopt new API * improve wording - version created by: Christian Kuelker 3.4.0.0 2009-04-23T00:58:22 Initial release to the public Christian Kuelker . CipUX-Passwd-3.4.0.3/MANIFEST.SKIP000444001750001750 24411423664443 16725 0ustar00ckuelkerckuelker000000000000-stamp$ \.orig$ \.bak$ \.swp$ \.svn _build blib Build$ \.ptkdb$ .deb$ .build$ .changes$ .upload$ .asc$ .dsc$ .tar.gz$ .cvsignore debian/files$ \..*\~$ ^MYMETA.yml$ CipUX-Passwd-3.4.0.3/lib000755001750001750 011423664443 15460 5ustar00ckuelkerckuelker000000000000CipUX-Passwd-3.4.0.3/lib/CipUX000755001750001750 011423664443 16450 5ustar00ckuelkerckuelker000000000000CipUX-Passwd-3.4.0.3/lib/CipUX/Passwd.pm000444001750001750 2637611423664443 20442 0ustar00ckuelkerckuelker000000000000# +========================================================================+ # || module: CipUX::Passwd || # || || # || Module for cipuxpasswd skript. XML-RPC client to change own || # || password. || # || || # || Copyright (C) 2009 by Christian Kuelker || # || || # || License: GNU General Public License - GPL version 2 || # || or (at you opinion) any later version. || # || || # +========================================================================+ # ID: $Id$ # Revision: $Revision$ # Head URL: $HeadURL$ # Date: $Date$ # Source: $Source$ package CipUX::Passwd; use warnings; use strict; use CipUX::RPC::Client; use Class::Std; use English qw( -no_match_vars); use Readonly; use base qw(CipUX); { # BEGIN CLASS use version; our $VERSION = qv('3.4.0.3'); use re 'taint'; # Keep data captured by parens tainted delete @ENV{qw(PATH IFS CDPATH ENV BASH_ENV)}; # Make %ENV safer # +======================================================================+ # || CONST || # +======================================================================+ Readonly::Scalar my $EMPTY_STRING => q{}; Readonly::Scalar my $CIPUX_DEFAULT_PORT => 8001; # +======================================================================+ # || OBJECT || # +======================================================================+ my %cipuxpasswd_cfg : ATTR( :get ); my %name_of : ATTR( init_arg => 'name'); # +======================================================================+ # || GLOBAL || # +======================================================================+ my $debug = 0; my $url = $EMPTY_STRING; my $host = 'localhost'; my $port = $CIPUX_DEFAULT_PORT; my $ssl = 0; # +======================================================================+ # || CONSTRUCTOR || # +======================================================================+ sub BUILD { # +------------------------------------------------------------------+ # | API my ( $self, $ident, $arg_r ) = @_; # add prefix for cfg, if needed my $pref = ( exists $arg_r->{pref} ) ? $self->l( $arg_r->{pref} ) : $EMPTY_STRING; # +------------------------------------------------------------------+ # | main # Enable this lines, if you would like to use storage configuration # with cache. # (With cache you have to set rights for /var/cache/cipux accordingly # if you would like to use this programm with other then root. # Example: chown -R root:admin /var/cache/cipux && # chmod -R g+rX /var/cache/cipux ) #$cipuxpasswd_cfg{$ident} # = $self->cfg( { 'sub' => 'storage', pref => $pref } ); # +------------------------------------------------------------------+ # | API return; } # +======================================================================+ # || DESTRUCTOR || # +======================================================================+ sub DEMOLISH { # +------------------------------------------------------------------+ # | API my ( $self, $ident ) = @_; # +------------------------------------------------------------------+ # | main delete $cipuxpasswd_cfg{$ident}; delete $name_of{ ident $self}; # +------------------------------------------------------------------+ # | API return; } # +======================================================================+ # || run || # +======================================================================+ sub run { # +------------------------------------------------------------------+ # | API my ( $self, $arg_r ) = @_; # +------------------------------------------------------------------+ # | prepare # config overwrites global variables: $host = ( exists $cipuxpasswd_cfg{ ident $self}->{host} ) ? $cipuxpasswd_cfg{ ident $self}->{host} : 'localhost'; $port = ( exists $cipuxpasswd_cfg{ ident $self}->{port} ) ? $cipuxpasswd_cfg{ ident $self}->{port} : $CIPUX_DEFAULT_PORT; $ssl = ( exists $cipuxpasswd_cfg{ ident $self}->{ssl} ) ? $cipuxpasswd_cfg{ ident $self}->{ssl} : 0; # url = 'https://localhost:8000/RPC2'; # url = 'http://localhost:8001/RPC2'; my $proto = 'http'; if ($ssl) { $proto = 'https'; } $url = $proto . q{://} . $self->l($host) . q{:} . $self->l($port) . q{/RPC2}; my $prompt = "$name_of{ ident $self}:"; # +------------------------------------------------------------------+ # | main my $rpc = CipUX::RPC::Client->new( { url => $url, client => $name_of{ ident $self}, version => "$VERSION" } ); if ( $rpc->rpc_ping() ) { $self->out("$prompt Server [$url] is available.\n"); } else { $self->out("$prompt Server [$url] is NOT available.\n"); return 0; } if ( $rpc->rpc_login() ) { $self->out("$prompt Authentication sucessful.\n"); } else { $self->out("$prompt Login or password wrong!\n"); return 0; } my $login = $rpc->get_login(); $self->out("$prompt Please type two times an identical password.\n"); my $cipux = CipUX->new(); my $npwmsg1 = "$prompt New password: "; my $p1 = $cipux->password_prompt( { prompt => $npwmsg1 } ); my $npwmsg2 = "$prompt Re-enter new password: "; my $p2 = $cipux->password_prompt( { prompt => $npwmsg2 } ); my $error = "$prompt ERROR:"; my $todo = ' Please try again.'; if ( defined $p1 and $p1 ne $EMPTY_STRING and $p1 eq $p2 and $rpc->rpc_selfpasswd( { password => $p1 } ) ) { $self->out("$prompt Password information changed for $login.\n"); } else { $self->out("$prompt Set password was not sucessful.\n"); } if ( not defined $p1 or $p1 eq $EMPTY_STRING ) { $self->out("$error First input is not given!$todo\n"); } if ( not defined $p2 or $p2 eq $EMPTY_STRING ) { $self->out("$error Second input is not given!$todo\n"); } if ( $p1 ne $p2 ) { $self->out("$error The two inputs are not identical!$todo\n"); } if ( $rpc->rpc_logout() ) { $self->out("$prompt Logout sucessful.\n"); } # +------------------------------------------------------------------+ # | API return 1; } } # END INSIDE OUT CLASS 1; # Magic true value required at end of module __END__ =pod =for stopwords cipuxpasswd RPC XML-RPC CipUX Destructor webpage Kuelker =head1 NAME CipUX::Passwd - XML-RPC client to change own password =head1 VERSION This document describes CipUX::Passwd version 3.4.0.3 =head1 SYNOPSIS use warnings; use strict; use CipUX::Passwd; use version; our $VERSION = qv('3.4.0.0'); my $cipux = CipUX::Passwd->new( { name=>'cipuxpasswd' } ); $cipux->run(); exit 0; =head1 DESCRIPTION Implements a XML-RPC client to change once own password using the CipUX XML-RPC server. =head1 SUBROUTINES/METHODS =head2 BUILD Constructor. =head2 DEMOLISH Destructor. =head2 run Main subroutine. =head1 DIAGNOSTICS =over =item C<< First input is not given! Please try again >> =item C<< Second input is not given! Please try again >> =item C<< The two inputs are not identical! Please try again >> =back =head1 CONFIGURATION AND ENVIRONMENT CipUX::Passwd requires no configuration files or environment variables. However if there is a configuration file it will be used. =head1 DEPENDENCIES CipUX CipUX::RPC::Client Class::Std English Readonly version =head1 INCOMPATIBILITIES None reported. =head1 BUGS AND LIMITATIONS No bugs have been reported. =head1 SEE ALSO See the CipUX webpage and the manual at L See the mailing list L =head1 AUTHOR Christian Kuelker christian.kuelker@cipworx.org =head1 LICENSE AND COPYRIGHT Copyright (C) 2009, Christian Kuelker. All rights reserved. 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 2, 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA =head1 DISCLAIMER OF WARRANTY BECAUSE THIS SOFTWARE IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE SOFTWARE, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE SOFTWARE "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 SOFTWARE IS WITH YOU. SHOULD THE SOFTWARE PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR, OR CORRECTION. 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 SOFTWARE AS PERMITTED BY THE ABOVE LICENSE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE SOFTWARE (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 SOFTWARE TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. =cut CipUX-Passwd-3.4.0.3/bin000755001750001750 011423664443 15462 5ustar00ckuelkerckuelker000000000000CipUX-Passwd-3.4.0.3/bin/cipuxpasswd000444001750001750 1035411423664443 20137 0ustar00ckuelkerckuelker000000000000#!/usr/bin/perl -w -T # +==========================================================================+ # || cipuxpasswd || # || || # || XML-RPC client to set own password. || # || || # || Copyright (C) 2009 by Christian Kuelker || # || || # || License: GNU General Public license - GNU GPL - version 2 || # || or (at your opinion) any later version. || # || || # +==========================================================================+ # $Id$ # $Revision$ # $HeadURL$ # $Date$ # $Source$ package cipuxpasswd; use strict; use warnings; use CipUX::Passwd; use version; our $VERSION = qv('3.4.0.3'); delete @ENV{qw(PATH IFS CDPATH ENV BASH_ENV)}; # Make %ENV safer # +==========================================================================+ # || MAIN || # +==========================================================================+ my $client = CipUX::Passwd->new( { name => 'cipuxpasswd' } ); $client->run(); exit 0; __END__ =pod =for stopwords cipuxpasswd RPC XML-RPC CipUX Kuelker webpage =head1 NAME cipuxpasswd - XML-RPC Client to change own password. =head1 VERSION version 3.4.0.3 =head1 USAGE cipuxpasswd =head1 OPTIONS None =head1 DESCRIPTION Implements a XML-RPC client to change once own password using the CipUX XML-RPC server. =head1 REQUIRED ARGUMENTS None. =head1 DIAGNOSTICS None. =head1 EXIT STATUS 0 on success. =head1 CONFIGURATION None. See CipUX::Passwd. =head1 DEPENDENCIES CipUX::Passwd version =head1 INCOMPATIBILITIES None reported. =head1 BUGS AND LIMITATIONS No bugs have been reported. =head1 SEE ALSO See the CipUX webpage and the manual at L See the mailing list L =head1 AUTHOR Christian Kuelker christian.kuelker@cipworx.org =head1 LICENSE AND COPYRIGHT Copyright (C) 2009, Christian Kuelker. All rights reserved. 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 2, 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA =head1 DISCLAIMER OF WARRANTY BECAUSE THIS SOFTWARE IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE SOFTWARE, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE SOFTWARE "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 SOFTWARE IS WITH YOU. SHOULD THE SOFTWARE PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR, OR CORRECTION. 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 SOFTWARE AS PERMITTED BY THE ABOVE LICENSE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE SOFTWARE (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 SOFTWARE TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. =cut CipUX-Passwd-3.4.0.3/doc000755001750001750 011423664443 15457 5ustar00ckuelkerckuelker000000000000CipUX-Passwd-3.4.0.3/doc/usage.mkd000444001750001750 372211423664443 17421 0ustar00ckuelkerckuelker000000000000# Usage of cipuxpasswd 2009-04-23 by Christian Kuelker - v0.1 The command 'cipuxpasswd' is a XML-RPC client. Internally it uses the CipUX::Task cipux_task_change_own_password_interactive to change once own password. However this task is disabled by default for this client. To enable this for admins, so that they can change their own paswword, you have to give cipuxpasswd the right to execute the task. ## Enabling 'admin' group To enable the 'admin' group you can issue this command as root to enable the access for all admins to cipuxpasswd. cipux_task_client -t cipux_task_add_member_to_task -o cipux_task_change_own_password_interactive -x value=cipuxpasswd After this you have to restart the CipUX XML-RPC server or flush its cache. ## Enabling other groups The 'admin' group is already a member of cipuxpasswd, but other groups are not. You have to add other groups, for example 'student' (or on other systems 'students'!), to cipuxpasswd to be able to used this tool by members of other groups. (Of course step 1 from above is a prerequisite.) ### Example (add group 'student' to cipuxpasswd): cipux_task_client -t cipux_task_add_member_to_cat_module -o cipuxpasswd -x value=student After this you have to restart the CipUX XML-RPC server of flush its cache. ## Using cipuxpasswd To acctually use it, just type cipuxpasswd You will then be asked for a login and a password. Passwords are not printed. If you successfully logged in you may change the password. You have to type two times exactly the same word. A typical session looks like this: cipuxpasswd cipuxpasswd: Server [http://localhost:8001/RPC2] is available. cipuxpasswd: Enter login: frodo cipuxpasswd: Enter password: cipuxpasswd: Authentication sucessful. cipuxpasswd: Please type two times an identical password. cipuxpasswd: New password: cipuxpasswd: Again new password: cipuxpasswd: Set password sucessful. cipuxpasswd: Logout sucessful. CipUX-Passwd-3.4.0.3/t000755001750001750 011423664443 15155 5ustar00ckuelkerckuelker000000000000CipUX-Passwd-3.4.0.3/t/00-load.t000444001750001750 22411423664443 16611 0ustar00ckuelkerckuelker000000000000#!perl -T use Test::More tests => 1; BEGIN { use_ok('CipUX::Passwd'); } diag("Testing CipUX::Passwd $CipUX::Passwd::VERSION, Perl $], $^X"); CipUX-Passwd-3.4.0.3/t/perlcriticrc000444001750001750 101711423664443 17721 0ustar00ckuelkerckuelker000000000000# CipUX Perl::Critic Configuration # # SEVERITY NAME ...is equivalent to... SEVERITY NUMBER # ---------------------------------------------------- # gentle 5 # stern 4 # harsh 3 # cruel 2 # brutal 1 severity = brutal verbose = 11 CipUX-Passwd-3.4.0.3/t/pod.t000444001750001750 35011423664443 16237 0ustar00ckuelkerckuelker000000000000#!perl -T use strict; use warnings; use Test::More; # Ensure a recent version of Test::Pod my $min_tp = 1.22; eval "use Test::Pod $min_tp"; plan skip_all => "Test::Pod $min_tp required for testing POD" if $@; all_pod_files_ok(); CipUX-Passwd-3.4.0.3/t/pod-coverage.t000444001750001750 104711423664443 20054 0ustar00ckuelkerckuelker000000000000use strict; use warnings; use Test::More; # Ensure a recent version of Test::Pod::Coverage my $min_tpc = 1.08; eval "use Test::Pod::Coverage $min_tpc"; plan skip_all => "Test::Pod::Coverage $min_tpc required for testing POD coverage" if $@; # Test::Pod::Coverage doesn't require a minimum Pod::Coverage version, # but older versions don't recognize some common documentation styles my $min_pc = 0.18; eval "use Pod::Coverage $min_pc"; plan skip_all => "Pod::Coverage $min_pc required for testing POD coverage" if $@; all_pod_coverage_ok(); CipUX-Passwd-3.4.0.3/t/perlcritic.t000444001750001750 100711423664443 17635 0ustar00ckuelkerckuelker000000000000#!perl use strict; use warnings; use File::Spec; use Test::More; use English qw(-no_match_vars); if ( not $ENV{TEST_AUTHOR} ) { my $msg = 'Author test. Set $ENV{TEST_AUTHOR} to a true value to run.'; plan( skip_all => $msg ); } eval { require Test::Perl::Critic; }; if ($EVAL_ERROR) { my $msg = 'Test::Perl::Critic required to criticise code'; plan( skip_all => $msg ); } my $rcfile = File::Spec->catfile( 't', 'perlcriticrc' ); Test::Perl::Critic->import( -profile => $rcfile ); all_critic_ok();