icu

International Components for Unicode

Build Status

Installs International Components for Unicode on Remote Servers

Current Supported Operating Systems include RedHat, Centos, Fedora, Debian, Ubuntu, FreeBSD(although I don't have a testing environment for FreeBSD in travis if anyone would like to set that up). It also ignore errors on the includes so assuming your operating system has the requirements listed below it should work there as well. Would love some testers for Oracle Linux and Solaris which I believe should both support this build.

There is a sub-branch proving the workability of the ansi-modifications in the ansi-modifications branch. Which you can check out on travis.

All changes made by internal code are reversible via the boolean switches discussed below, including switching between versions. An avenue of future expansion would be include a variable with state present or absent to show whether this should be installed or will remove all traces of ICU from the systems. This would likely include a little manipulation but could be done easily enough.

Requirements

None, it will make sure all dependencies are installed on supported systems. Unsupported systems will need to make sure these programs are present.

These are gcc, g++, gmake/make, and tar in whatever form they take on your distro.

Role Variables

The version of ICU you would like to install. Supports 49-58 currently. Most current is default.

icu_version: 58

icu_base is the base location for the install.

icu_base: /usr/local/include

ICU HOME Environmental Variable

If you would like to set ICU_HOME variable. This is installed for profiles at /etc/profile.d

icu_set_home: False

The icu home variable is by default in a new folder hanging off the icu base this can be overridden by setting icu_home.

icu_home: {{ icu_base }}/icu

This allows you to change the name of the file that gets put in profile.d incase you have a specific filename you expect to call to receive ICU_HOME for scripting.

icu_home_shell_name: icu_home.sh

Ansi Compatibility

Finally some people may want some less traditional ansi allowances baked into the code and this is allowed. Looking at all the folks in the Higher Education Community.

icu_ansi_compatibility=False

Date Fix

There is a fix for earlier versions(49-53) of icu baked into this build. I highly recommend that you leave these fixes in place as they are just a modification of one of the test builds that was based on the current date if not in place the ansible build will fail at the check step and you will need to run the final install step manually.

icu_apply_date_fix: True

Finally we start by setting the compiling variable to no and if any changes are made then compilation will be done. However if you would like to force recompilation set this variable to yes and it will recompile every time. (Note: Compilation is a non-idempotent operation as it first cleans then remakes)

icu_recompile: False

Dependencies

  • None

Example Playbook

- hosts: appserver
  vars:
    icu_set_home: True
  roles:
    - ChristopherDavenport.icu

License

MIT

Author Information

This role was created in 2016 by Christopher Davenport.

Install
ansible-galaxy install ChristopherDavenport/ansible-role-icu
GitHub repository
License
mit
Downloads
29
Owner
Functional Programmer (he / him)