VERSION

This document describes Module::Build::CipUX version 0.4.0

SYNOPSIS

    use Module::Build::CipUX;

    my $build = Module::Build::CipUX->new(
        module_name     =>  'xxxx',
        license         =>  'gpl',
        ...
        cipux_paths       =>  {
            'schema' =>  q(/etc/ldap/schema),
            'setup'  =>  q(/etc/cipux/setup),
        },
        # cipux_schema   =>  [ glob('extras/*.schema') ],
        # cipux_setup =>  [ glob('extras/*.setup') ],

        # build target
        schema_files => {
             'etc/ldap/schema/cipux.schema' => 'schema/cipux.schema',
        },
        setup_files => {
            'etc/cipux/setup/courier.schema'        => 'setup/courier.schema',
            'etc/cipux/setup/debian-cipux.conf'     => 'setup/debian-cipux.conf',
            'etc/cipux/setup/debian-edu-cipux.conf' => 'setup/debian-edu-cipux.conf',
            'etc/cipux/setup/debian-edu-ldap.acl'   => 'setup/debian-edu-ldap.acl',
            'etc/cipux/setup/debian-edu-ldap.ldif'  => 'setup/debian-edu-ldap.ldif',
            'etc/cipux/setup/debian-ldap.acl'       => 'setup/debian-ldap.acl',
            'etc/cipux/setup/debian-ldap.ldif'      => 'setup/debian-ldap.ldif',
            'etc/cipux/setup/lis.schema'            => 'setup/lis.schema',
        },

                );

    my $elem_ar = $builder->get_all_elements;
    foreach my $e (@{$elem_ar}){
        $builder->add_build_element($e);
    }

    $build->create_build_script();

DESCRIPTION

The goal of this module is build and install CipUX plugins in Perl and also handle CipUX core modules, subclassing the Module::Build and adding some extra funtionalities to it.

For a description of the interface see Module::Build::API.

This is a list of new parameters in the Module::Build::new method:

cipux_paths

Define the install paths of the components using a hash with the following keys:

setup

The default value is /etc/cipux/setup.

schema

The default value is /etc/ldap/schema.

cipux_setup

List of setup files to install.

cipux_schema

List of LDAP schema files to install.

INTERFACE

cipuxrelease

[version 0.1.0]

Make a cipux release tarball

CONSTRUCTOR

new

New inscance of Module::Build::CipUX.

my $build = Module::Build::CipUX->new();

SUBROUTINES/METHODS

Build action which converts *.po files to *.mo files using gettext. Build a simple CipUX release tarball. Returns private properties from the hash in Build.PL. This was inspired by Module::Build::IkiWiki. This violates ProhibitAccessOfPrivateData. If someone knows how to do better, drop a mail to cipux-devel mailing list. Retrieve all elements and return a array reference to it.

$cipux_elements_ar = get_all_elements();

\fIadd_all_elements()\fP

Call get_all_elements and add all elements to the build list by add_build_element. \s-1PARAM:\s0

    source_prefix              # cgi
    source_extension           # pl
    destination_prefix         # webcgi
    destination_extension      # cgi
    verbose                    # 1|0

Search a given directory for files of given extension, change the extension and construct a new path with the file name. It returns a hash reference.

var_dump({ \s-1PARAM\s0 })

\s-1PARAM:\s0

    var_r    (mandatory)                          reference to variable
    name     (mandatory)                          name of variable
    file     (optional)                           filename if wish is to dump to file
    fh       (optional) if not defined *STDOUT;   other file handle or handle

Dump a variable to \s-1STDOUT\s0. Or if parameter is given, dump it to a file or to another location given by a handle. Find all files for mode 750 and return hash reference. Uses find_files_by_element.

\fIprocess_bin750_files()\fP

Process files. Find all files for mode 755 and return hash reference. Uses find_files_by_element.

process_bin755_files

Process files. Find all files for mode 750 and return hash reference. Uses find_files_by_element.

process_sbin750_files

Process files. Find all files for mode 755 and return hash reference. Uses find_files_by_element.

process_sbin755_files

Process files. Find all files for element webcgi and return hash reference. Uses find_files_by_element.

process_webcgi_files

Process files. Find all files for element initscript and return hash reference. Uses find_files_by_element.

process_initscript_files

Process files. Find all files for element conf644 and return hash reference. Uses find_files_by_element.

process_conf644_files

Process files. Find all files for element conf600 and return hash reference. Uses find_files_by_element.

process_conf600_files

Process files.

find_bootcfg_files

Find files.

process_bootcfg_files

Process files.

find_bootcfgobject_files

Find files.

find_bootcfgstorage_files

Find files.

find_bootcfgaccess_files

Find files.

find_bootcfgtask_files

Find files.

process_bootcfgobject_files

Process files.

process_bootcfgstorage_files

Process files.

process_bootcfgaccess_files

Process files.

process_bootcfgtask_files

Process files. Find all files for element locale and return hash reference. Uses find_files_by_element.

process_locale_files

Process files. Add $element . '_files' to include list. Returns reference to hash of all files in that directory if the directory exists; otherwise returns undef Execute find_${elelemt}_files method. Returns list of files for trivial files. For non-trivial files it does...:

General:

make a path skip .svn dirs change extension for some files, copy otherwise make some files executable change some modes

\s-1PO:\s0

check number of *.pot files identify the *.pot file build file name from *.pot file for *.mo file build *.mo file from *.po file with msgfmt

DIAGNOSTICS

Error messages are from the base class. This package generates no exceptions. Occurs if it is not possible to make a directory in blib/po

CONFIGURATION AND ENVIRONMENT

Module::Build::CipUX requires no configuration files or environment variables.

DEPENDENCIES

Module::Build

INCOMPATIBILITIES

None reported.

BUGS AND LIMITATIONS

No bugs have been reported.

Please report any bugs or feature requests to \*(C`[email protected]\*(C', or through the web interface at <http://rt.cpan.org>.

AUTHOR

Christian Kuelker \*(C`<[email protected]>\*(C'

LICENSE AND COPYRIGHT

Copyright (C) 2008 - 2009, Christian Kuelker \*(C`<[email protected]>\*(C'. All rights reserved.

This program is free software; you can redistribute it and/or modify it under the terms of the \s-1GNU\s0 General Public License as published by the Free Software Foundation; either version 2 of the License or any later version.

This program is distributed in the hope that it will be useful, but \s-1WITHOUT\s0 \s-1ANY\s0 \s-1WARRANTY\s0; without even the implied warranty of \s-1MERCHANTABILITY\s0 or \s-1FITNESS\s0 \s-1FOR\s0 A \s-1PARTICULAR\s0 \s-1PURPOSE\s0. See the \s-1GNU\s0 General Public License for more details.

You should have received a copy of the \s-1GNU\s0 General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, \s-1MA\s0 02110-1301 \s-1USA\s0.

DISCLAIMER OF WARRANTY

\s-1BECAUSE\s0 \s-1THIS\s0 \s-1SOFTWARE\s0 \s-1IS\s0 \s-1LICENSED\s0 \s-1FREE\s0 \s-1OF\s0 \s-1CHARGE\s0, \s-1THERE\s0 \s-1IS\s0 \s-1NO\s0 \s-1WARRANTY\s0 \s-1FOR\s0 \s-1THE\s0 \s-1SOFTWARE\s0, \s-1TO\s0 \s-1THE\s0 \s-1EXTENT\s0 \s-1PERMITTED\s0 \s-1BY\s0 \s-1APPLICABLE\s0 \s-1LAW\s0. \s-1EXCEPT\s0 \s-1WHEN\s0 \s-1OTHERWISE\s0 \s-1STATED\s0 \s-1IN\s0 \s-1WRITING\s0 \s-1THE\s0 \s-1COPYRIGHT\s0 \s-1HOLDERS\s0 \s-1AND/OR\s0 \s-1OTHER\s0 \s-1PARTIES\s0 \s-1PROVIDE\s0 \s-1THE\s0 \s-1SOFTWARE\s0 \*(L"\s-1AS\s0 \s-1IS\s0\*(R" \s-1WITHOUT\s0 \s-1WARRANTY\s0 \s-1OF\s0 \s-1ANY\s0 \s-1KIND\s0, \s-1EITHER\s0 \s-1EXPRESSED\s0 \s-1OR\s0 \s-1IMPLIED\s0, \s-1INCLUDING\s0, \s-1BUT\s0 \s-1NOT\s0 \s-1LIMITED\s0 \s-1TO\s0, \s-1THE\s0 \s-1IMPLIED\s0 \s-1WARRANTIES\s0 \s-1OF\s0 \s-1MERCHANTABILITY\s0 \s-1AND\s0 \s-1FITNESS\s0 \s-1FOR\s0 A \s-1PARTICULAR\s0 \s-1PURPOSE\s0. \s-1THE\s0 \s-1ENTIRE\s0 \s-1RISK\s0 \s-1AS\s0 \s-1TO\s0 \s-1THE\s0 \s-1QUALITY\s0 \s-1AND\s0 \s-1PERFORMANCE\s0 \s-1OF\s0 \s-1THE\s0 \s-1SOFTWARE\s0 \s-1IS\s0 \s-1WITH\s0 \s-1YOU\s0. \s-1SHOULD\s0 \s-1THE\s0 \s-1SOFTWARE\s0 \s-1PROVE\s0 \s-1DEFECTIVE\s0, \s-1YOU\s0 \s-1ASSUME\s0 \s-1THE\s0 \s-1COST\s0 \s-1OF\s0 \s-1ALL\s0 \s-1NECESSARY\s0 \s-1SERVICING\s0, \s-1REPAIR\s0, \s-1OR\s0 \s-1CORRECTION\s0.

\s-1IN\s0 \s-1NO\s0 \s-1EVENT\s0 \s-1UNLESS\s0 \s-1REQUIRED\s0 \s-1BY\s0 \s-1APPLICABLE\s0 \s-1LAW\s0 \s-1OR\s0 \s-1AGREED\s0 \s-1TO\s0 \s-1IN\s0 \s-1WRITING\s0 \s-1WILL\s0 \s-1ANY\s0 \s-1COPYRIGHT\s0 \s-1HOLDER\s0, \s-1OR\s0 \s-1ANY\s0 \s-1OTHER\s0 \s-1PARTY\s0 \s-1WHO\s0 \s-1MAY\s0 \s-1MODIFY\s0 \s-1AND/OR\s0 \s-1REDISTRIBUTE\s0 \s-1THE\s0 \s-1SOFTWARE\s0 \s-1AS\s0 \s-1PERMITTED\s0 \s-1BY\s0 \s-1THE\s0 \s-1ABOVE\s0 \s-1LICENCE\s0, \s-1BE\s0 \s-1LIABLE\s0 \s-1TO\s0 \s-1YOU\s0 \s-1FOR\s0 \s-1DAMAGES\s0, \s-1INCLUDING\s0 \s-1ANY\s0 \s-1GENERAL\s0, \s-1SPECIAL\s0, \s-1INCIDENTAL\s0, \s-1OR\s0 \s-1CONSEQUENTIAL\s0 \s-1DAMAGES\s0 \s-1ARISING\s0 \s-1OUT\s0 \s-1OF\s0 \s-1THE\s0 \s-1USE\s0 \s-1OR\s0 \s-1INABILITY\s0 \s-1TO\s0 \s-1USE\s0 \s-1THE\s0 \s-1SOFTWARE\s0 (\s-1INCLUDING\s0 \s-1BUT\s0 \s-1NOT\s0 \s-1LIMITED\s0 \s-1TO\s0 \s-1LOSS\s0 \s-1OF\s0 \s-1DATA\s0 \s-1OR\s0 \s-1DATA\s0 \s-1BEING\s0 \s-1RENDERED\s0 \s-1INACCURATE\s0 \s-1OR\s0 \s-1LOSSES\s0 \s-1SUSTAINED\s0 \s-1BY\s0 \s-1YOU\s0 \s-1OR\s0 \s-1THIRD\s0 \s-1PARTIES\s0 \s-1OR\s0 A \s-1FAILURE\s0 \s-1OF\s0 \s-1THE\s0 \s-1SOFTWARE\s0 \s-1TO\s0 \s-1OPERATE\s0 \s-1WITH\s0 \s-1ANY\s0 \s-1OTHER\s0 \s-1SOFTWARE\s0), \s-1EVEN\s0 \s-1IF\s0 \s-1SUCH\s0 \s-1HOLDER\s0 \s-1OR\s0 \s-1OTHER\s0 \s-1PARTY\s0 \s-1HAS\s0 \s-1BEEN\s0 \s-1ADVISED\s0 \s-1OF\s0 \s-1THE\s0 \s-1POSSIBILITY\s0 \s-1OF\s0 \s-1SUCH\s0 \s-1DAMAGES\s0.