<?xml version="1.0"?>
<preface>
<title>History</title>
<para>The CentOS Artwork Repository started around 2008, at <ulink
url="mailto:centos-devel@centos.org">CentOS Developers mailing
list</ulink> during a discussion about how to automate the slide
images of Anaconda. In such discussion, Ralph Angenendt rose up
his hand to ask: Do you have something to show?</para>
<para>To answer the question, Alain Reguera Delgado suggested a
bash script which combined SVG and SED files in order to produce
PNG images in different languages —together with the
proposition of creating a Subversion repository where translations
and image production could be distributed inside The CentOS
Community—.</para>
<para>Karanbirn Sighn considered the idea intresting and provided
the infrastructure necessary to support the effort. This way the
<ulink url="https://projects.centos.org/trac/artwork/">CentOS
Artwork SIG</ulink> and the <ulink
url="https://projects.centos.org/svn/artwork/">CentOS Artwork
Repository</ulink> were officially created.</para>
<para>Once the CentOS Artwork Repository was available, Alain
Reguera Delagdo uploaded the bash script for rendering Anaconda
slides; Ralph Angenendt documented it very well; and people
started to download working copies of CentOS Artwork Repository to
produce slide images in their own languages.</para>
<para>Around 2009, The rendition script was at a very rustic state
where only slide images could be produced, so it was redesigned to
extend the image production to other areas, not just slide images.
In this configuration, one SVG file was used as input to produce a
translated instance of it which, in turn, was used to produce one
translated PNG image as output. The SVG translated instance was
created through SED replacement commands. The translated PNG image
was created from the SVG translated instance using Inkscape
command-line interface.</para>
<para>The rendition script was named
<quote>render.sh</quote>.</para>
<para>The repository directory structure was prepared to receive
the rendition script using design templates and translation files
in the same location. There was one directory structure for each
artwork that needed to be produced. In this configuration, if you
would want to produce the same artwork with a different visual
style or structure, it was needed to create a new directory
structure for it because both the image structure and the image
visual style were together in the design template.</para>
<para>The rendition script was moved to a common place and linked
from different directory structures. There was no need to have the
same code in different directory structures if it could be in just
one place and then be linked from different locations.</para>
<para>The concepts about corporate identity began to be
considered. As referece, it was used the book <quote>Corporate
Identity</quote> by Wally Olins (1989) and Wikipedia (<ulink
url="http://en.wikipedia.org/Corporate_identity" />). This way,
the rendition script main's goal becomes to: automate production
of a monolithic corporate visual identity structure, based on the
mission and the release schema of The CentOS Project.</para>
<para>The directory structures started to be documented inside the
repository using text files without markup. Later, documentation
in flat text files was moved to LaTeX format and this way
<quote>The CentOS Artwork Repository Manual</quote> started to
take form.</para>
<para>Around 2010, the rendition script changed its name from
<command>render.sh</command> to <command>centos-art.sh</command>
and became a collection of functionalities where rendition was
just one among others (e.g., documenting and localizing).</para>
<para>The <command>centos-art.sh</command> was created to organize
automation of most frequent tasks inside the repository. There
was no need to have links all around the repository if a
command-line interface could be created (through symbolic links,
in the <filename class="directory">~/bin</filename> directory) and
be called anywhere inside the repository as it would be a regular
command.</para>
<para>Inside <command>centos-art.sh</command>, functionalities
started to get identified and separated one another. For example,
when images were rendered, there was no need to load
functionalities related to documentation manual. This layout moved
us onto common functionalities and specific functionalities inside
<command>centos-art.sh</command> script. Common functionalities
are loaded when <command>centos-art.sh</command> script is
initiated and are available to specific functionalities.</para>
<para>The <command>centos-art.sh</command> script was redesigned
to handle command-line options trough <command>getopt</command>
option parser.</para>
<para>The repository directory structure was updated to improve
the implementation of concepts related to corporate visual
identity. Specially in the area related to themes which were
divided into <emphasis>design models</emphasis> and
<emphasis>artistic motifs</emphasis> to eliminate the content
duplication produced by having both image structure and image
visual style in the same file. Now, themes are produced as result
of arbitrary combinations of both design models (structures) and
artistic motifs (visual styles).</para>
<para>In the documentation area, the documentation files in LaTeX
format were migrated to Texinfo format. In this configuration,
each directory structure in the repository has a documentation
entry associated in a Texinfo structure which can be read, edited
and administered (e.g., renamed, deleted, copied) interactively
throuch <command>centos-art.sh</command>. Additionally, the
<command>texi2html</command> program was used to produced XHTML
output customized by CSS from The CentOS Webenv.</para>
<para>Around 2011, the <command>centos-art.sh</command> script was
redesigned to start translating SVG and other XML-based files
(e.g., XHTML and Docbook files) through the
<command>xml2po</command> program and shell scripts files (e.g.,
Bash scripts) through GNU <command>gettext</command> tools. This
configuration provided a stronger interface for graphic designers,
translators and programmers to produce localized content. The SED
files are no longer used to handle translations.</para>
<para>Improve option parsing through
<command>getopt</command>.</para>
<para>Consolidate the <code>render</code>, <code>help</code> and
<code>locale</code> functionalities as the most frequent tasks
performed inside the repository. Additionally, the
<code>prepare</code> and <code>tuneup</code> functionalities are
maintained as useful tasks.</para>
<para>The <command>centos-art.sh</command> script is updated to
organize functionalities in two groups: <quote>the administrative
functionalities</quote> and <quote>the productive
functionalities</quote>. The administrative functionalities cover
actions like: copying, deleting and renaming directory structures
inside the repository. Also, preparing your workstation for using
<command>centos-art.sh</command> script, making backups of the
distribution theme currently installed, installing themes created
inside repository and restoring themes from backup. On the other
hand, the productive functionalities cover actions like: content
rendition, content localization, content documentation and content
maintainance.</para>
</preface>