Blame Documentation/repository.asciidoc

Alain Reguera Delgado 67d70c
[[repository]]
Alain Reguera Delgado 8ea9a9
The CentOS Artwork Repository
Alain Reguera Delgado 8ea9a9
=============================
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 67d70c
[[repository-mission]]
Alain Reguera Delgado 8ea9a9
== Repository Mission
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 67d70c
The CentOS Artwork Repository is a community effort to organize The
Alain Reguera Delgado 67d70c
CentOS Project visual identity and automate its production, based on
Alain Reguera Delgado 67d70c
the concepts described in <<identity>>.
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 67d70c
[[repository-infrastructure]]
Alain Reguera Delgado 8ea9a9
== Repository Infrastructure
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
The CentOS Artwork Repository is made of one ``central repository''
Alain Reguera Delgado 8ea9a9
and many ``working copies'' of that central repository.  The working
Alain Reguera Delgado 8ea9a9
copies are independent one another, can be distributed all around the
Alain Reguera Delgado 8ea9a9
world and provide a local place for designers, documenters,
Alain Reguera Delgado 8ea9a9
translators and programmers to perform their work in a decentralized
Alain Reguera Delgado 8ea9a9
way.  The central repository, on the other hand, provides a common
Alain Reguera Delgado 8ea9a9
place for all independent working copies to exchange data in the
Alain Reguera Delgado 8ea9a9
community.
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
image:repository-infra.png[repository-infra.png]
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
=== Subversion
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
The current infrastructure that holds The CentOS Artwork Repository on
Alain Reguera Delgado 8ea9a9
the Internet, is made of the following components:
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
 * http://subversion.tigris.org/[Subversion] -- Modern Version Control System designed to replace CVS.
Alain Reguera Delgado 8ea9a9
 * http://trac.edgewall.org/[Trac] -- Enhanced wiki and issue tracking system.
Alain Reguera Delgado 8ea9a9
 * Httpd+WebDav as data exchanging route between the workstations and
Alain Reguera Delgado 8ea9a9
   the central repository, through the Internet.  Httpd was configured
Alain Reguera Delgado 8ea9a9
   to provide service through SSL, so all traffic between the
Alain Reguera Delgado 8ea9a9
   workstations and the server be protected while it travels across
Alain Reguera Delgado 8ea9a9
   the Internet.  The access rights are controlled by using a
Alain Reguera Delgado 8ea9a9
   combination of both Subversion's authorization files and Httpd's
Alain Reguera Delgado 8ea9a9
   password files.  These files can be managed consistently through
Alain Reguera Delgado 8ea9a9
   Trac's WebAdmin plug-in.
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
In this infrastructure, the first level of directories in the
Alain Reguera Delgado 8ea9a9
repository provides the Subversion's standard trunk-branches-tags
Alain Reguera Delgado 8ea9a9
layout.  The second level of directories provides organization for
Alain Reguera Delgado 8ea9a9
different work lines, as described in <<repo-convs-worklines>>.  All
Alain Reguera Delgado 8ea9a9
other subsequent directory levels from second level on exist to
Alain Reguera Delgado 8ea9a9
organize specific concepts related to the work line they belong to.
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
=== Git
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
In addition to current Subversion infrastructure, we are working on a
Alain Reguera Delgado 8ea9a9
Git infrastructure with the intention of migrating the current
Alain Reguera Delgado 8ea9a9
Subversion infrastructure up to it, progressively. The Git
Alain Reguera Delgado 8ea9a9
infrastructure we are working on is made of the following components: 
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
* Git -- Fast version control system.
Alain Reguera Delgado 8ea9a9
* Gitolite -- Highly flexible server for git directory version
Alain Reguera Delgado 8ea9a9
  tracker.
Alain Reguera Delgado 8ea9a9
* Gitweb -- Simple web interface to git repositories.
Alain Reguera Delgado 8ea9a9
* MantisBT -- Web-based issue tracking system.
Alain Reguera Delgado 8ea9a9
* The data exchanging route between the working copies and the central
Alain Reguera Delgado 8ea9a9
  repository takes place through SSH. The access rights are controlled
Alain Reguera Delgado 8ea9a9
  by using a combination of SSH public keys and Gitolite's repository
Alain Reguera Delgado 8ea9a9
  configuration file.
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
In this infrastructure, the first level of directories in the
Alain Reguera Delgado 8ea9a9
repository provides organization for different work lines, as
Alain Reguera Delgado 8ea9a9
described in <<repo-convs-worklines>>.  All other subsequent directory
Alain Reguera Delgado 8ea9a9
levels from second level on exist to organize specific concepts
Alain Reguera Delgado 8ea9a9
related to the work line they belong to.
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
[[repo-convs-worklines]]
Alain Reguera Delgado 8ea9a9
== Repository Work Lines
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
The content production inside The CentOS Artwork Repository has been
Alain Reguera Delgado 8ea9a9
divided into individual work lines that relate one another based on
Alain Reguera Delgado 8ea9a9
the idea of doing one thing well. In this model, the content produced
Alain Reguera Delgado 8ea9a9
individually by each work line is combined one another later to
Alain Reguera Delgado 8ea9a9
achieve higher purposes (e.g., corporate identity for The CentOS
Alain Reguera Delgado 8ea9a9
Project). The repository work lines, as conceived here, provide a
Alain Reguera Delgado 8ea9a9
reliable environment for people to work synchronized and
Alain Reguera Delgado 8ea9a9
decentralized.
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
The action of combining work lines inside The CentOS Artwork
Alain Reguera Delgado 8ea9a9
Repository is also known as the ``Production Cycle'' of CentOS
Alain Reguera Delgado 8ea9a9
corporate visual identity.  The rest of this section describes the
Alain Reguera Delgado 8ea9a9
work lines available in the repository and how they integrate one
Alain Reguera Delgado 8ea9a9
another.
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
[[repo-convs-worklines-artworks]]
Alain Reguera Delgado 8ea9a9
=== Graphic Design
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
Graphic Design is the first component The CentOS Artwork SIG works out
Alain Reguera Delgado 8ea9a9
in order to produce The CentOS Project corporate visual identity.
Alain Reguera Delgado 8ea9a9
Through this work line, graphic designers create ``design models'' and
Alain Reguera Delgado 8ea9a9
``artistic motifs'' for all the visual manifestation The CentOS
Alain Reguera Delgado 8ea9a9
Project is made of.  Once design models and artistic motifs are set in
Alain Reguera Delgado 8ea9a9
place, graphic designers use the *render* module of *centos-art.sh*
Alain Reguera Delgado 8ea9a9
script to combine them all into final images.
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
The mission of Artworks work line is define all the visual
Alain Reguera Delgado 8ea9a9
manifestations the The CentOS Project is made of and provide design
Alain Reguera Delgado 8ea9a9
models and artistic motifs for them in order to produce the final
Alain Reguera Delgado 8ea9a9
image files required to transmit the visual style that identifies The
Alain Reguera Delgado 8ea9a9
CentOS Project as unique organization.
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
The graphic design process takes place in the +Artworks/+ directory
Alain Reguera Delgado 8ea9a9
stored at the first level of the repository directory structure. This
Alain Reguera Delgado 8ea9a9
directory organizes themes (design models and artistic models),
Alain Reguera Delgado 8ea9a9
palettes, brushes, icons, brands and customizations for the web
Alain Reguera Delgado 8ea9a9
environment.
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
To know more about The CentOS Project corporate visual identity, read
Alain Reguera Delgado 8ea9a9
the article named
Alain Reguera Delgado 8ea9a9
``_link:../../../Corporate/Final/en_US/index.html[The CentOS Project
Alain Reguera Delgado 8ea9a9
Corporate Visual Identity]._''
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
[[repo-convs-worklines-l10n]]
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
=== Localization
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
Localization is the second component that must be worked out in the
Alain Reguera Delgado 8ea9a9
production cycle of CentOS corporate visual identity.  Through this
Alain Reguera Delgado 8ea9a9
work line translators localize source files (e.g., SVG, DocBook, Shell
Alain Reguera Delgado 8ea9a9
scripts) which are later used to produce localized images, localized
Alain Reguera Delgado 8ea9a9
documentation and localized automation scripts.  To localize source
Alain Reguera Delgado 8ea9a9
files, translators use the *locale* module of *centos-art.sh* script
Alain Reguera Delgado 8ea9a9
which takes care of retrieving translatable strings from source files
Alain Reguera Delgado 8ea9a9
and provide a consistent localization interface based on GNU *gettext*
Alain Reguera Delgado 8ea9a9
multi-lingual message production tool set and *xml2po* command.
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
The mission of Localization work line is extending the visual identity
Alain Reguera Delgado 8ea9a9
(produced in English language) to as many native languages as
Alain Reguera Delgado 8ea9a9
possible, in order for people which doesn't understand English
Alain Reguera Delgado 8ea9a9
language to feel more comfortable with The CentOS Project in their own
Alain Reguera Delgado 8ea9a9
native languages.
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
The localization process takes place inside the +Locales/+ directory
Alain Reguera Delgado 8ea9a9
of each component that requires localization.  This directory contains
Alain Reguera Delgado 8ea9a9
the component related PO files organized in language-specific
Alain Reguera Delgado 8ea9a9
directories.  To know more about the specific localization process
Alain Reguera Delgado 8ea9a9
read the *locale* module documentation.
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
[[repo-convs-worlines-manuals]]
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
=== Documentation
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
Documentation is the third component that must be worked out in the
Alain Reguera Delgado 8ea9a9
production cycle of corporate visual identity.  Through this work line
Alain Reguera Delgado 8ea9a9
documenters settle down the conceptual and practical uses around The
Alain Reguera Delgado 8ea9a9
CentOS Artwork Repository and all the content produced inside it.  To
Alain Reguera Delgado 8ea9a9
write documentation, documenters use Asciidoc as source documentation
Alain Reguera Delgado 8ea9a9
format and the *render* module of *centos-art.sh* script to transform
Alain Reguera Delgado 8ea9a9
Asciidoc source documentation format into final output formats,
Alain Reguera Delgado 8ea9a9
including man pages and html.
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
The mission of Documentation work line is describe the standard
Alain Reguera Delgado 8ea9a9
procedures The CentOS Artwork Repository relies on, as well as
Alain Reguera Delgado 8ea9a9
conceive a place to help you understand what The CentOS Artwork
Alain Reguera Delgado 8ea9a9
Repository is and what can you do with it.
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
The Documentation work line takes place inside the +Documentation/+
Alain Reguera Delgado 8ea9a9
directory inside major components stored in the first directory level
Alain Reguera Delgado 8ea9a9
of the repository (e.g., Artworks, Automation and Packages).
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
[[repo-convs-worlines-packages]]
Alain Reguera Delgado 8ea9a9
=== Packages
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
The packages work line is the fourth component that must be worked out
Alain Reguera Delgado 8ea9a9
in the corporate identity production cycle. Through this work line
Alain Reguera Delgado 8ea9a9
packager gather final images, final translations and final
Alain Reguera Delgado 8ea9a9
documentation related to artworks and put them all together inside RPM
Alain Reguera Delgado 8ea9a9
packages. For this purpose, packagers use the *package* module of
Alain Reguera Delgado 8ea9a9
*centos-art.sh* script which provides a consistent interface for
Alain Reguera Delgado 8ea9a9
building packages inside the repository.
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
The mission of Packages work line is package the information The
Alain Reguera Delgado 8ea9a9
CentOS Project requires to re-brand The CentOS Distribution according
Alain Reguera Delgado 8ea9a9
Red Hat redistribution guidelines. It is also the mission of this work
Alain Reguera Delgado 8ea9a9
line to make The CentOS Artwork Repository easy to install, configure
Alain Reguera Delgado 8ea9a9
and use by most graphic designers, documenters, programmers and
Alain Reguera Delgado 8ea9a9
translators.
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
The packages work line takes place in the +Packages/+ directory stored
Alain Reguera Delgado 8ea9a9
at the first level of the repository directory structure. This
Alain Reguera Delgado 8ea9a9
directory organizes both SOURCES and SPECS files used to build RPMS
Alain Reguera Delgado 8ea9a9
and SRPMS files. In this directory, SOURCES and SPECS files are under
Alain Reguera Delgado 8ea9a9
version control but RPMS and SRPMS produced from them are not.
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
[[repo-convs-worklines-scripts]]
Alain Reguera Delgado 8ea9a9
=== Automation
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
The automation work line is the fifth and last component that must be
Alain Reguera Delgado 8ea9a9
worked out in the corporate identity production cycle.  This work line
Alain Reguera Delgado 8ea9a9
closes the production cycle and provides the production standards
Alain Reguera Delgado 8ea9a9
graphic designers, documenters, translators and packagers need to make
Alain Reguera Delgado 8ea9a9
their work consistent and reusable.  For this purpose, programmers
Alain Reguera Delgado 8ea9a9
develop the *centos-art.sh* script.
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
The mission of Automation work line is standardize the interaction of
Alain Reguera Delgado 8ea9a9
work lines in a reliable way.
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
The Automation work line takes place in the +Automation/+ directory
Alain Reguera Delgado 8ea9a9
stored at the first level of the repository directory structure.
Alain Reguera Delgado 8ea9a9
Presently, most of the automation work is done in Bash.
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
== Preparing Your Workstation
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
Once your workstation has been installed, it is time for you to
Alain Reguera Delgado 8ea9a9
configure it. The configuration of your workstation consists on
Alain Reguera Delgado 8ea9a9
defining your workplace, download a working copy from The CentOS Artwork Repository and
Alain Reguera Delgado 8ea9a9
finally, run the *prepare* functionality of
Alain Reguera Delgado 8ea9a9
*centos-art.sh* script to install/update the software
Alain Reguera Delgado 8ea9a9
needed, render images, create links, and anything else needed.
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
=== Define Your Workplace
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
Once you've installed the workstation and it is up and running, you
Alain Reguera Delgado 8ea9a9
need to register the user name you'll use for working. In this task
Alain Reguera Delgado 8ea9a9
you need to use the commands *useradd* and *passwd* to create the user
Alain Reguera Delgado 8ea9a9
name and set a password for it, respectively.  These commands require
Alain Reguera Delgado 8ea9a9
administrative privileges to be executed, so you need to login as
Alain Reguera Delgado 8ea9a9
``root'' superuser for doing so.
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
[CAUTION]
Alain Reguera Delgado 8ea9a9
Do not use the ``root'' username for regular tasks inside your working
Alain Reguera Delgado 8ea9a9
copy of The CentOS Artwork Repository.  This is dangerous and might
Alain Reguera Delgado 8ea9a9
provoke irreversible damages to your workstation.
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
When you've registered your user name in the workstation, it provides
Alain Reguera Delgado 8ea9a9
an identifier for you to open a user's session in the workstation and
Alain Reguera Delgado 8ea9a9
a place to store the information you produce, as well. This place is
Alain Reguera Delgado 8ea9a9
known as your home directory and is unique for each user registered in
Alain Reguera Delgado 8ea9a9
the workstation. For example, if you register the user name john in
Alain Reguera Delgado 8ea9a9
your workstation, your home directory would be located at
Alain Reguera Delgado 8ea9a9
+/home/john/+.
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
At this point it is important to define where to download the working
Alain Reguera Delgado 8ea9a9
copy of The CentOS Artwork Repository inside your home directory.
Alain Reguera Delgado 8ea9a9
This decision deserves special attention and should be implemented
Alain Reguera Delgado 8ea9a9
carefully in order to grant a standard environment that could be
Alain Reguera Delgado 8ea9a9
distributed. Let's see some alternatives.
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
==== Different absolute paths
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
Consider that you store your working copy under
Alain Reguera Delgado 8ea9a9
+/home/john/Projects/artwork/+ and I store mine under
Alain Reguera Delgado 8ea9a9
+/home/al/Projects/artwork/+, we'll end up refering the same files
Alain Reguera Delgado 8ea9a9
inside our working copies through different absolute paths.  This
Alain Reguera Delgado 8ea9a9
alternative generates a contradiction when files which hold path
Alain Reguera Delgado 8ea9a9
information inside are committed up to the central repository from
Alain Reguera Delgado 8ea9a9
different working copies. The contradiction comes from the question:
Alain Reguera Delgado 8ea9a9
which is the correct absolute path to use inside such files, yours or
Alain Reguera Delgado 8ea9a9
mine? (None of them is, of course.)
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
==== One unique absolute path
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
Another case would be that where you and I ourselves use one unique
Alain Reguera Delgado 8ea9a9
home directory (e.g., +/home/centos/Projects/artwork/+) to store the
Alain Reguera Delgado 8ea9a9
working copy of The CentOS Artwork Repository in our own workstations,
Alain Reguera Delgado 8ea9a9
but configure the subversion client to use different user names to
Alain Reguera Delgado 8ea9a9
commit changes up from the working copy to the central repository.
Alain Reguera Delgado 8ea9a9
This alternative might be not so good in situations where you and I
Alain Reguera Delgado 8ea9a9
have to share the same workstation.  In such cases, it would be
Alain Reguera Delgado 8ea9a9
required that we both share the password information of the same
Alain Reguera Delgado 8ea9a9
system user (the ``centos'' user in our example) which, in addition,
Alain Reguera Delgado 8ea9a9
gives access to that user's subversion client configuration and this
Alain Reguera Delgado 8ea9a9
way provokes the whole sense of using different subversion credentials
Alain Reguera Delgado 8ea9a9
for committing changes to be lost.
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
==== Different absolute paths, dynamic expansion, symbolic links, relative links, and environment variables
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
With this solution it is possible to store working copies of The
Alain Reguera Delgado 8ea9a9
CentOS Artwork Repository on different locations inside the same
Alain Reguera Delgado 8ea9a9
workstation without lose relation between files. Here we use the
Alain Reguera Delgado 8ea9a9
TCAR_WORKDIR environment variable to set the location of the working
Alain Reguera Delgado 8ea9a9
copy inside the workstation. Later the centos-art.sh scripts uses this
Alain Reguera Delgado 8ea9a9
value as reference to determine where the working copy is. This value
Alain Reguera Delgado 8ea9a9
is also the one used for dynamic expansion inside design models and
Alain Reguera Delgado 8ea9a9
other similar files. In the case of web projects where different
Alain Reguera Delgado 8ea9a9
components are required to produce the final content, we create
Alain Reguera Delgado 8ea9a9
symbolic links between them and use relative paths so it is possible
Alain Reguera Delgado 8ea9a9
to reuse them and retain the relation between them in different
Alain Reguera Delgado 8ea9a9
contexts.
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
For example, lets consider the organization of XHTML manuals rendered
Alain Reguera Delgado 8ea9a9
from DocBook source files. When you render a DocBook manual inside The
Alain Reguera Delgado 8ea9a9
CentOS Artwork Repository it creates XHTML files.  This XHTML files
Alain Reguera Delgado 8ea9a9
use images and common style sheets for better presentation.  Both of
Alain Reguera Delgado 8ea9a9
these images and styles components live outside the XHTML structure
Alain Reguera Delgado 8ea9a9
so, in order to make them available relatively to the XHTML structure,
Alain Reguera Delgado 8ea9a9
we created symbolic links from the XHTML structure to the outside
Alain Reguera Delgado 8ea9a9
location where they are in.  The creation of symbolic links takes
Alain Reguera Delgado 8ea9a9
place automatically when each DockBook manual is rendered through
Alain Reguera Delgado 8ea9a9
*centos-art.sh*, which uses the value of TCAR_WORKDIR environment
Alain Reguera Delgado 8ea9a9
variable as reference to determine the absolute path of the working
Alain Reguera Delgado 8ea9a9
copy.  
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
Because absolute paths are no longer stored inside permanent files and
Alain Reguera Delgado 8ea9a9
*centos-art.sh* script uses the TCAR_WORKDIR environment variable to
Alain Reguera Delgado 8ea9a9
determine where the working copy is stored in the workstation, it
Alain Reguera Delgado 8ea9a9
should be safe to download working copies of The CentOS Artwork
Alain Reguera Delgado 8ea9a9
Repository anywhere in the workstation. One just have to be sure that
Alain Reguera Delgado 8ea9a9
the value of TCAR_WORKDIR environment variable does match the location
Alain Reguera Delgado 8ea9a9
of the working copy you are using.
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
=== Download Your Working Copy
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
In order to use The CentOS Artwork Repository you need to download a
Alain Reguera Delgado 8ea9a9
working copy from the central repository into your workstation.  To
Alain Reguera Delgado 8ea9a9
download such working copy use the following command:
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
----------------------------------------------------------------------
Alain Reguera Delgado 8ea9a9
git clone gitolite@centos.org.cu/centos-artwork.git
Alain Reguera Delgado 8ea9a9
----------------------------------------------------------------------
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
This command will create your working copy inside your home directory,
Alain Reguera Delgado 8ea9a9
specifically in a directory named 
Alain Reguera Delgado 8ea9a9
class="directory">artwork.git</filename>. Inside this directory you
Alain Reguera Delgado 8ea9a9
will find all the files you need to work with inside The CentOS
Alain Reguera Delgado 8ea9a9
Artwork Repository. If you want to have your working copy in a
Alain Reguera Delgado 8ea9a9
location different to that one shown above.
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
The first time you download the working copy it contains no image
Alain Reguera Delgado 8ea9a9
files, nor documentation, or localized content inside it. This is
Alain Reguera Delgado 8ea9a9
because all the files provided in the working copy are source files
Alain Reguera Delgado 8ea9a9
(e.g., the files needed to produce other files) and it is up to you to
Alain Reguera Delgado 8ea9a9
render them in order to produce the final files (e.g., images and
Alain Reguera Delgado 8ea9a9
documentation) used to implement The CentOS Project corporate visual
Alain Reguera Delgado 8ea9a9
identity.
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
=== Configure Administrative Tasks
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
Most of the administrative tasks you need to perform in your working
Alain Reguera Delgado 8ea9a9
copy of The CentOS Artwork Repository are standardized inside the
Alain Reguera Delgado 8ea9a9
*prepare* functionality of *centos-art.sh* script. Inside
Alain Reguera Delgado 8ea9a9
*centos-art.sh* script, all administrative task are invoked through
Alain Reguera Delgado 8ea9a9
the *sudo* command. Thus, in order for the *centos-art.sh* script to
Alain Reguera Delgado 8ea9a9
perform administrative tasks, you need to update the *sudo*'s
Alain Reguera Delgado 8ea9a9
configuration in a way that such administrative actions be allowed.
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
At time of this writing the *centos-art.sh* script
Alain Reguera Delgado 8ea9a9
implements just one administrative task, that is package management.
Alain Reguera Delgado 8ea9a9
Nevertheless, in the future, other administrative tasks might be
Alain Reguera Delgado 8ea9a9
included as well (e.g., installing themes locally from the working
Alain Reguera Delgado 8ea9a9
copy for testing purposes.).
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
To update the *sudo*'s configuration, execute the *visudo* command as
Alain Reguera Delgado 8ea9a9
``root''.  Later, uncoment the <varname>Cmnd_Alias</varname> related
Alain Reguera Delgado 8ea9a9
to ``SOFTWARE'' and add a line for your username allowing software
Alain Reguera Delgado 8ea9a9
commands. This configuration is illustrated in 
Alain Reguera Delgado 8ea9a9
linkend="repo-ws-config-sudoers-example" />.
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
[[repo-ws-config-sudoers-example]]
Alain Reguera Delgado 8ea9a9
.The /etc/sudoers configuration file
Alain Reguera Delgado 8ea9a9
======================================================================
Alain Reguera Delgado 8ea9a9
----------------------------------------------------------------------
Alain Reguera Delgado 8ea9a9
## Installation and management of software
Alain Reguera Delgado 8ea9a9
Cmnd_Alias SOFTWARE = /bin/rpm, /usr/bin/up2date, /usr/bin/yum
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
## Next comes the main part: which users can run what software on
Alain Reguera Delgado 8ea9a9
## which machines (the sudoers file can be shared between multiple
Alain Reguera Delgado 8ea9a9
## systems).
Alain Reguera Delgado 8ea9a9
## Syntax:
Alain Reguera Delgado 8ea9a9
##
Alain Reguera Delgado 8ea9a9
##      user    MACHINE=COMMANDS
Alain Reguera Delgado 8ea9a9
##
Alain Reguera Delgado 8ea9a9
## The COMMANDS section may have other options added to it.
Alain Reguera Delgado 8ea9a9
##
Alain Reguera Delgado 8ea9a9
## Allow root to run any commands anywhere
Alain Reguera Delgado 8ea9a9
root    ALL=(ALL)       ALL
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
## Allow the centos user to run installation and management of
Alain Reguera Delgado 8ea9a9
## software anywhere.
Alain Reguera Delgado 8ea9a9
al      ALL=(ALL)       SOFTWARE
Alain Reguera Delgado 8ea9a9
----------------------------------------------------------------------
Alain Reguera Delgado 8ea9a9
======================================================================
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
[[repo-ws-config-runout]]
Alain Reguera Delgado 8ea9a9
=== Run Preparation Tool
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
Once you've both downloaded a working copy from The CentOS Artwork
Alain Reguera Delgado 8ea9a9
Repository and configured the *sudo* configuration file successfully,
Alain Reguera Delgado 8ea9a9
run the *prepare* functionality of *centos-art.sh* script to complete
Alain Reguera Delgado 8ea9a9
the configuration process using the following command:
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
----------------------------------------------------------------------
Alain Reguera Delgado 8ea9a9
~/artwork/Scripts/Bash/centos-art.sh prepare
Alain Reguera Delgado 8ea9a9
----------------------------------------------------------------------
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
[[repo-convs-filename-rfiles]]
Alain Reguera Delgado 8ea9a9
== Repository File Names
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
Inside The CentOS Artwork Repository, file names are always written in
Alain Reguera Delgado 8ea9a9
lowercase.  Digits (e.g., 0, 1, 2), hyphen (-), dot (.) and low line
Alain Reguera Delgado 8ea9a9
(_) characters are also accepted. In case you use hyphen and dot
Alain Reguera Delgado 8ea9a9
characters, don't use them as first character in the file name.
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
=== File Names Written Correctly
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
The following file names are written correctly:
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
* +01-welcome.png+
Alain Reguera Delgado 8ea9a9
* +splash.png+
Alain Reguera Delgado 8ea9a9
* +anaconda_header.png+
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
=== File Names Written Incorrectly
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
* +01-Welcome.png+
Alain Reguera Delgado 8ea9a9
* +-welcome.png+
Alain Reguera Delgado 8ea9a9
* +Splash.png+
Alain Reguera Delgado 8ea9a9
* +AnacondaHeader.png+
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
== Repository Link Names
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
Inside The CentOS Artwork Repository, links are always symbolic and
Alain Reguera Delgado 8ea9a9
follow the same name convention used by regular files, as described in
Alain Reguera Delgado 8ea9a9
<<repo-convs-filename-rfiles>>.
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
== Repository Directory Names
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
Inside The CentOS Artwork Repository, directory names are all written
Alain Reguera Delgado 8ea9a9
capitalized and sometimes in cammel case. Digits (e.g., 0, 1, 2),
Alain Reguera Delgado 8ea9a9
hyphen (-), dot (.) and low line (_) characters are also accepted. In
Alain Reguera Delgado 8ea9a9
case you use hyphen and dot characters, don't use them as first
Alain Reguera Delgado 8ea9a9
character in the directory name.
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
=== Directory Names Written Correctly
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
The following directory names are written correctly:
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
* +Identity+
Alain Reguera Delgado 8ea9a9
* +Themes+
Alain Reguera Delgado 8ea9a9
* +Motifs+
Alain Reguera Delgado 8ea9a9
* +TreeFlower+
Alain Reguera Delgado 8ea9a9
* +0.0.1+
Alain Reguera Delgado 8ea9a9
* +0.0.1-35+
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
=== Directory Names Written Incorrectly
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
The following directory names are written incorrectly:
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
* +identity+
Alain Reguera Delgado 8ea9a9
* +theMes+
Alain Reguera Delgado 8ea9a9
* +MOTIFS+
Alain Reguera Delgado 8ea9a9
* +treeFlower+
Alain Reguera Delgado 8ea9a9
* +.0.1+
Alain Reguera Delgado 8ea9a9
* +.0.1-35+
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
== Repository Directory Structure
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
Occasionly, you may find that new components of The CentOS Project
Alain Reguera Delgado 8ea9a9
corporate visual identity need to be added to the repository in order
Alain Reguera Delgado 8ea9a9
to work them out. If that is the case, the first question we need to
Alain Reguera Delgado 8ea9a9
ask ourselves, before starting to create directories blindly all over,
Alain Reguera Delgado 8ea9a9
is: _What is the right place to store it?_
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
To create a directory structure inside the repository you need to
Alain Reguera Delgado 8ea9a9
define the concept behind it first. Later you need to create a new
Alain Reguera Delgado 8ea9a9
directory inside the repository, remembering that there are locations
Alain Reguera Delgado 8ea9a9
inside the repository that already define concepts you probably would
Alain Reguera Delgado 8ea9a9
prefer to reuse.  For example, the +Artworks/Themes/Motifs+ directory
Alain Reguera Delgado 8ea9a9
stores artistic motifs of different themes, the
Alain Reguera Delgado 8ea9a9
+Artworks/Themes/Models+ directory stores design models for themes,
Alain Reguera Delgado 8ea9a9
the +Documentation+ directory stores documentation, +Locales+ stores
Alain Reguera Delgado 8ea9a9
translation messages, and the +Automation+ stores automation scripts.
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
The best suggestion we can probably give you would be to send a mail
Alain Reguera Delgado 8ea9a9
with your questions to the mailto:centos-devel@centos.org[CentOS
Alain Reguera Delgado 8ea9a9
developers mailing list]
Alain Reguera Delgado 8ea9a9
(mailto:centos-devel@centos.org[centos-devel@centos.org]).  This is
Alain Reguera Delgado 8ea9a9
the place where development of The CentOS Artwork Repository takes place and surely, in
Alain Reguera Delgado 8ea9a9
community, it will be possible to find a place for your new component
Alain Reguera Delgado 8ea9a9
inside the repository.
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
The following sub-sections describe relevant directories of The CentOS
Alain Reguera Delgado 8ea9a9
Artwork Repository that you can use as reference to know where the
Alain Reguera Delgado 8ea9a9
files you are looking for are stored in and where you can store new
Alain Reguera Delgado 8ea9a9
files, as well.
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
=== The +Artworks/+ Directory
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
This directory contains files affecting the visual style of The CentOS
Alain Reguera Delgado 8ea9a9
Project. This directory organizes Brushes, Gradients, Fonts, Palettes,
Alain Reguera Delgado 8ea9a9
Patterns Themes and the web environment customizable files.
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
=== The +Artworks/Brands/+ Directory
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
This directory ...
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
=== The +Artworks/Brushes/+ Directory
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
This directory contains GIMP brushes. Brushes stored in this directory
Alain Reguera Delgado 8ea9a9
will be available inside GIMP's brushes dialog.
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
=== The +Artworks/Documentation/+ Directory
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
This directory ...
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
=== The +Artworks/Fonts/+ Directory
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
This directory contains font files. Font files stored in this
Alain Reguera Delgado 8ea9a9
directory will be available to be used from applications like GIMP and
Alain Reguera Delgado 8ea9a9
Inkscape.
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
=== The +Artworks/Gradients/+ Directory
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
This directory contains GIMP gradients. Gradients stored in this
Alain Reguera Delgado 8ea9a9
directory will be available inside GIMP's gradients dialog. This
Alain Reguera Delgado 8ea9a9
directory organizes gradient files inside
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
=== The +Artworks/Icons/+ Directory
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
This directory ...
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
=== The +Artworks/Palettes/+ Directory
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
This directory ...
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
=== The +Artworks/Patterns/+ Directory
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
This directory contains GIMP patterns. Patterns stored in this
Alain Reguera Delgado 8ea9a9
directory will be available inside GIMP's patterns dialog.
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
=== The +Artworks/Themes/+ Directory
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
This directory ...
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
=== The +Artworks/Webenv/+ Directory
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
This directory ...
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
=== The +Automation/+ Directory
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
This directory ...
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
== Repository Authoring
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
The content produced inside The CentOS Artwork Repository is copyright
Alain Reguera Delgado 8ea9a9
of The CentOS Project.  This is something you, as author, should be
Alain Reguera Delgado 8ea9a9
aware of because you are contributing your creation's rights to
Alain Reguera Delgado 8ea9a9
someone else; The CentOS Project in this case.  This way, your work is
Alain Reguera Delgado 8ea9a9
distributed using ``The CentOS Project'' as copyright holder, not your
Alain Reguera Delgado 8ea9a9
name (even you remain as natural author of the work).  Because The
Alain Reguera Delgado 8ea9a9
CentOS Project is the copyright holder, is the license chosen by The
Alain Reguera Delgado 8ea9a9
CentOS Project the one applied to your work, so it is the one you need
Alain Reguera Delgado 8ea9a9
to agree with before making a creation inside The CentOS Artwork
Alain Reguera Delgado 8ea9a9
Repository.
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
The CentOS Project is a community project controlled by its own
Alain Reguera Delgado 8ea9a9
community of users.  Inside the community, The CentOS Administrators
Alain Reguera Delgado 8ea9a9
group is the higher authority and the only one able to set core
Alain Reguera Delgado 8ea9a9
decision like the kind of license used inside the project and
Alain Reguera Delgado 8ea9a9
subproject like The CentOS Artwork Repository.
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
The redistribution conditions of The CentOS Artwork Repository are
Alain Reguera Delgado 8ea9a9
described in ...
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
== Repository Publishing
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
When you perform changes inside your working copy, those changes are
Alain Reguera Delgado 8ea9a9
local to your working copy only. In order for you to share your
Alain Reguera Delgado 8ea9a9
changes with others, you need to push them up to the central
Alain Reguera Delgado 8ea9a9
repository the working copy you are using was initially downloaded
Alain Reguera Delgado 8ea9a9
from. To push your changes up to the central repository see
Alain Reguera Delgado 8ea9a9
git-push(1) man page.
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
Initially, you won't be able to publish your changes to The CentOS
Alain Reguera Delgado 8ea9a9
Artwork Repository immediately. It is necessary that you prove your
Alain Reguera Delgado 8ea9a9
interest in contributing first sending a mail to the
Alain Reguera Delgado 8ea9a9
http://lists.centos.org/mailman/listinfo/centos-devel[CentOS
Alain Reguera Delgado 8ea9a9
Developers mailing list]
Alain Reguera Delgado 8ea9a9
(mailto:centos-devel@centos.org[centos-devel@centos.org]), preferably
Alain Reguera Delgado 8ea9a9
in conjunction with a description of the changes you pretend to
Alain Reguera Delgado 8ea9a9
commit. This restriction is necessary in order to protect the source
Alain Reguera Delgado 8ea9a9
repository from spammers.
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
Once you've received access to publish your changes, they will remain
Alain Reguera Delgado 8ea9a9
valid to you and there is no need for you to request permission to
Alain Reguera Delgado 8ea9a9
publish new changes as long as you behave as a good cooperating
Alain Reguera Delgado 8ea9a9
citizen.
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
As a good cooperating citizen one understand of a person who respects
Alain Reguera Delgado 8ea9a9
the work already done by others and share ideas with authors before
Alain Reguera Delgado 8ea9a9
changing relevant parts of their work, specially in situations when
Alain Reguera Delgado 8ea9a9
the access required to realize the changes has been granted already.
Alain Reguera Delgado 8ea9a9
Of course, there is a time when conversation has taken place already,
Alain Reguera Delgado 8ea9a9
the paths has been traced and changing the work is so obvious that
Alain Reguera Delgado 8ea9a9
there is no need for you to talk about it; that's because you already
Alain Reguera Delgado 8ea9a9
did, you already built the trust to keep going. As complement, the
Alain Reguera Delgado 8ea9a9
mailing list mentioned above is available for sharing ideas in a way
Alain Reguera Delgado 8ea9a9
that good relationship between community citizens could be constantly
Alain Reguera Delgado 8ea9a9
balanced.
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
The relationship between community citizens is monitored by repository
Alain Reguera Delgado 8ea9a9
administrators. Repository administrators are responsible of granting
Alain Reguera Delgado 67d70c
that everything goes the way it needs to go in order for The CentOS
Alain Reguera Delgado 67d70c
Artwork Repository to accomplish its mission (see <<repo-mission>>).
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
== Repository Copying Conditions
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
The CentOS Project uses The CentOS Artwork Repository to produce The
Alain Reguera Delgado 8ea9a9
CentOS Project corporate visual identity.
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
The The CentOS Artwork Repository is not in the public domain; it is
Alain Reguera Delgado 8ea9a9
copyrighted and there are restrictions on their distribution, but
Alain Reguera Delgado 8ea9a9
these restrictions are designed to permit everything that a good
Alain Reguera Delgado 8ea9a9
cooperating citizen would want to do.  What is not allowed is to try
Alain Reguera Delgado 8ea9a9
to prevent others from further sharing any version of this work that
Alain Reguera Delgado 8ea9a9
they might get from you.
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
Specifically, we want to make sure that you have the right to give
Alain Reguera Delgado 8ea9a9
away copies of The CentOS Artwork Repository, that you receive source
Alain Reguera Delgado 8ea9a9
code or else can get it if you want it, that you can change this work
Alain Reguera Delgado 8ea9a9
or use pieces of it in new free works, and that you know you can do
Alain Reguera Delgado 8ea9a9
these things.
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
To make sure that everyone has such rights, we have to forbid you to
Alain Reguera Delgado 8ea9a9
deprive anyone else of these rights.  For example, if you distribute
Alain Reguera Delgado 8ea9a9
copies of the The CentOS Artwork Repository, you must give the
Alain Reguera Delgado 8ea9a9
recipients all the rights that you have.  You must make sure that
Alain Reguera Delgado 8ea9a9
they, too, receive or can get the source code.  And you must tell them
Alain Reguera Delgado 8ea9a9
their rights.
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
Also, for our own protection, we must make certain that everyone finds
Alain Reguera Delgado 8ea9a9
out that there is no warranty for the The CentOS Artwork Repository.
Alain Reguera Delgado 8ea9a9
If this work is modified by someone else and passed on, we want their
Alain Reguera Delgado 8ea9a9
recipients to know that what they have is not what we distributed, so
Alain Reguera Delgado 8ea9a9
that any problems introduced by others will not reflect on our
Alain Reguera Delgado 8ea9a9
reputation.
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
The The CentOS Artwork Repository is released as a GPL work.
Alain Reguera Delgado 8ea9a9
Individual packages used by The CentOS Artwork Repository include
Alain Reguera Delgado 8ea9a9
their own licenses and the The CentOS Artwork Repository license
Alain Reguera Delgado 8ea9a9
applies to all packages that it does not clash with.  If there is a
Alain Reguera Delgado 8ea9a9
clash between the The CentOS Artwork Repository license and individual
Alain Reguera Delgado 8ea9a9
package licenses, the individual package license applies instead.
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
The precise conditions of the license for the The CentOS Artwork
Alain Reguera Delgado 8ea9a9
Repository are found in (...). This manual specifically is covered by
Alain Reguera Delgado 8ea9a9
the conditions found in (...).
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
[[repo-history]]
Alain Reguera Delgado 8ea9a9
== History
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
=== 2008
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
The CentOS Artwork Repository started at
Alain Reguera Delgado 8ea9a9
mailto:centos-devel@centos.org[The CentOS Developers Mailing List]
Alain Reguera Delgado 8ea9a9
around 2008, on a discussion about how to automate slide images used
Alain Reguera Delgado 8ea9a9
by Anaconda (The CentOS Distribution installer).  In such discussion,
Alain Reguera Delgado 8ea9a9
http://wiki.centos.org/RalphAngenendt[Ralph Angenendt] rose up his
Alain Reguera Delgado 8ea9a9
hand to ask --Do you have something to show?.
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
To answer the question,
Alain Reguera Delgado 8ea9a9
http://wiki.centos.org/AlainRegueraDelgado[Alain Reguera Delgado]
Alain Reguera Delgado 8ea9a9
suggested a bash script which combined SVG and SED files in order to
Alain Reguera Delgado 8ea9a9
produce PNG images in different languages --in conjunction with
Alain Reguera Delgado 8ea9a9
the proposition of creating a Subversion repository where translations
Alain Reguera Delgado 8ea9a9
and image production could be distributed inside The CentOS Community.
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
http://wiki.centos.org/KaranbirSingh[Karanbir Singh] considered the
Alain Reguera Delgado 8ea9a9
idea intresting and provided the infrastructure necessary to support
Alain Reguera Delgado 8ea9a9
the effort.  This way, https://projects.centos.org/trac/artwork[The
Alain Reguera Delgado 8ea9a9
CentOS Artwork SIG] and https://projects.centos.org/svn/artwork[The
Alain Reguera Delgado 8ea9a9
CentOS Artwork Repository] were officially created and made world wide
Alain Reguera Delgado 8ea9a9
available. In this configuration, users were able to register
Alain Reguera Delgado 8ea9a9
themselves and administrators were able to assign access rights to
Alain Reguera Delgado 8ea9a9
registered users inside The CentOS Artwork Repository, both using a
Alain Reguera Delgado 8ea9a9
Trac web interface.
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
Once The CentOS Artwork Repository was available, Alain Reguera
Alain Reguera Delgado 8ea9a9
Delgado uploaded the bash script used to produce the Anaconda
Alain Reguera Delgado 8ea9a9
slides;footnote:[See
Alain Reguera Delgado 8ea9a9
https://projects.centos.org/trac/artwork/browser/Main/render.sh?rev=15]
Alain Reguera Delgado 8ea9a9
Ralph Angenendt documented it very well;footnote:[See
Alain Reguera Delgado 8ea9a9
https://projects.centos.org/trac/artwork/wiki/HowToTranslateSlides]
Alain Reguera Delgado 8ea9a9
and people started to download working copies of The CentOS Artwork
Alain Reguera Delgado 8ea9a9
Repository to produce slide images in their own
Alain Reguera Delgado 8ea9a9
languages.footnote:[See
Alain Reguera Delgado 8ea9a9
http://www.google.com/search?q=anaconda+slides+site%3Alists.centos.org]
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
From this time on The CentOS Artwork Repository has been evolving into
Alain Reguera Delgado 8ea9a9
an automated production environment where The CentOS Community can
Alain Reguera Delgado 8ea9a9
conceive The CentOS Project corporate visual identity.
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
The exact changes commited to The CentOS Artwork Repository through
Alain Reguera Delgado 8ea9a9
history can be found in the
Alain Reguera Delgado 8ea9a9
https://projects.centos.org/trac/artwork/timeline[repository logs] so
Alain Reguera Delgado 8ea9a9
you can know the real history about it. For those of you who just want
Alain Reguera Delgado 8ea9a9
to get a glance of changes committed, see <<repo-history>>.
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
=== 2009
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
Around 2009, the rendition script was at a very rustic state where
Alain Reguera Delgado 8ea9a9
only slide images could be produced, so it was redesigned to extend
Alain Reguera Delgado 8ea9a9
the image production to other areas, different from slide images.  In
Alain Reguera Delgado 8ea9a9
this configuration, one SVG file was used as input to produce a
Alain Reguera Delgado 8ea9a9
translated instance of it which, in turn, was used to produce one
Alain Reguera Delgado 8ea9a9
translated PNG image as output. The SVG translated instance was
Alain Reguera Delgado 8ea9a9
created through SED replacement commands. The translated PNG image was
Alain Reguera Delgado 8ea9a9
created from the SVG translated instance using Inkscape command-line
Alain Reguera Delgado 8ea9a9
interface.
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
The repository directory structure was prepared to receive the
Alain Reguera Delgado 8ea9a9
rendition script using design templates and translation files in the
Alain Reguera Delgado 8ea9a9
same location. There was one directory structure for each art work
Alain Reguera Delgado 8ea9a9
that needed to be produced. In this configuration, if you would want
Alain Reguera Delgado 8ea9a9
to produce the same art work with a different visual style or
Alain Reguera Delgado 8ea9a9
structure, it was needed to create a new directory structure for it
Alain Reguera Delgado 8ea9a9
because both the image structure and the image visual style were
Alain Reguera Delgado 8ea9a9
together in the design template.
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
The rendition script was moved to a common place and linked from
Alain Reguera Delgado 8ea9a9
different directory structures. There was no need to have the same
Alain Reguera Delgado 8ea9a9
code in different directory structures if it could be in just one
Alain Reguera Delgado 8ea9a9
place and then be linked from different locations.  
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
Corporate identity concepts began to be considered. As referece, it
Alain Reguera Delgado 8ea9a9
was used the book "Corporate Identity" by Wally Olins (1989) and
Alain Reguera Delgado 8ea9a9
http://en.wikipedia.org/Corporate_identity[Wikipedia related links].
Alain Reguera Delgado 8ea9a9
This way, the rendition script main's goal becomes to: _automate the
Alain Reguera Delgado 8ea9a9
production process of a monolithic corporate visual identity
Alain Reguera Delgado 8ea9a9
structure, based on the mission and the release schema of The CentOS
Alain Reguera Delgado 8ea9a9
Project_.
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
The repository directory structures began to be documented by mean of
Alain Reguera Delgado 8ea9a9
flat text files. Later, documentation in flat text files was moved
Alain Reguera Delgado 8ea9a9
onto LaTeX format and this way The CentOS Artwork User Guide was
Alain Reguera Delgado 8ea9a9
initiated.
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
=== 2010
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
Around 2010, the rendition script changed its name from *render.sh* to
Alain Reguera Delgado 8ea9a9
*centos-art.sh* and became a collection of functionalities where
Alain Reguera Delgado 8ea9a9
rendition was just one among others (e.g., documentation and
Alain Reguera Delgado 8ea9a9
localization).
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
The *centos-art.sh* was initially conceived to automate frequent tasks
Alain Reguera Delgado 8ea9a9
inside the repository based in the idea of Unix toolbox: to create
Alain Reguera Delgado 8ea9a9
small and specialized tools that do one thing well.  This way,
Alain Reguera Delgado 8ea9a9
functionalities inside *centos-art.sh* began to be identified and
Alain Reguera Delgado 8ea9a9
separated one another. For example, when images were rendered, there
Alain Reguera Delgado 8ea9a9
was no need to load functionalities related to documentation manual.
Alain Reguera Delgado 8ea9a9
This layout moved us onto ``common functionalities'' and ``specific
Alain Reguera Delgado 8ea9a9
functionalities'' inside *centos-art.sh* script. Common
Alain Reguera Delgado 8ea9a9
functionalities are loaded when *centos-art.sh* script is initiated
Alain Reguera Delgado 8ea9a9
and are available to specific functionalities.  
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
Suddenly, no need was found to keep all the links spreaded around the
Alain Reguera Delgado 8ea9a9
repository in order to execute the *centos-art.sh* script from
Alain Reguera Delgado 8ea9a9
different locations.  The *centos-art* command-line interface was used
Alain Reguera Delgado 8ea9a9
instead. The *centos-art* command-line interface is a symbolic link
Alain Reguera Delgado 8ea9a9
stored inside the +\~/bin+ directory pointing to *centos-art.sh*
Alain Reguera Delgado 8ea9a9
script.  As default configuration, inside The CentOS Distribution, the
Alain Reguera Delgado 8ea9a9
path to +\~/bin+ is included in the search path for commands (see PATH
Alain Reguera Delgado 8ea9a9
environment variable).  This way, using the *centos-art* command-line
Alain Reguera Delgado 8ea9a9
interface, it is possible to execute the *centos-art.sh* script from
Alain Reguera Delgado 8ea9a9
virtually anywhere inside the workstation, just as we frequently do
Alain Reguera Delgado 8ea9a9
with regular commands.
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
Start using GNU getopt as default option parser inside the
Alain Reguera Delgado 8ea9a9
*centos-art.sh* script.
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
The repository directory structure was updated to improve the
Alain Reguera Delgado 8ea9a9
implementation of corporate visual identity concepts.  Specially in
Alain Reguera Delgado 8ea9a9
the area related to themes. Having both structure and style in the
Alain Reguera Delgado 8ea9a9
same file introduced content duplication when producing art works.
Alain Reguera Delgado 8ea9a9
Because of this reason, they were separated into two different
Alain Reguera Delgado 8ea9a9
directory structures: the design models and the artistic motifs
Alain Reguera Delgado 8ea9a9
directory structures.  From this point on, the *centos-art.sh* was
Alain Reguera Delgado 8ea9a9
able to produce themes as result of arbitrary combinations between
Alain Reguera Delgado 8ea9a9
design models (structure) and artistic motifs (visual styles).
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
In the documentation area, the documents in LaTeX format were migrated
Alain Reguera Delgado 8ea9a9
to Texinfo format. In this configuration, each directory structure in
Alain Reguera Delgado 8ea9a9
the repository has a documentation entry associated in a Texinfo
Alain Reguera Delgado 8ea9a9
structure which can be read, edited and administered (e.g., renamed,
Alain Reguera Delgado 8ea9a9
deleted and copied) interactively through *centos-art.sh* script.
Alain Reguera Delgado 8ea9a9
Additionally, the texi2html program was used to produced customized
Alain Reguera Delgado 8ea9a9
XHTML output in conjunction with CSS from The CentOS Web Environment.
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
=== 2011
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
Around 2011, the *centos-art.sh* script was
Alain Reguera Delgado 8ea9a9
redesigned to start translating XML-based files (e.g., SVG and Docbook
Alain Reguera Delgado 8ea9a9
files) through *xml2po* program and shell scripts
Alain Reguera Delgado 8ea9a9
(e.g., Bash scripts) through GNU gettext tools.  This configuration
Alain Reguera Delgado 8ea9a9
provided a stronger localization interface for graphic designers,
Alain Reguera Delgado 8ea9a9
translators and programmers. The SED replacement files are no longer
Alain Reguera Delgado 8ea9a9
used to handle localization.  
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
The *render*, *help* and
Alain Reguera Delgado 8ea9a9
*locale* functionalities consolidated themselves as
Alain Reguera Delgado 8ea9a9
the most frequent tasks performed in The CentOS Artwork Repository working copy.
Alain Reguera Delgado 8ea9a9
Additionally, the *prepare* and
Alain Reguera Delgado 8ea9a9
*tuneup* functionalities were also maintained as
Alain Reguera Delgado 8ea9a9
useful tasks.
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
In the documentation area, it was introduced the transformation of
Alain Reguera Delgado 8ea9a9
localized DocBook XML DTD instances through the
Alain Reguera Delgado 8ea9a9
*render* and *locale*
Alain Reguera Delgado 8ea9a9
functionalities.  In this configuration, you use
Alain Reguera Delgado 8ea9a9
*locale* functionality to localize DocBook source
Alain Reguera Delgado 8ea9a9
files to your prefered language and later, using the
Alain Reguera Delgado 8ea9a9
*render* functionality, you can produce the
Alain Reguera Delgado 8ea9a9
localized XTHML and PDF output as specified in a XSLT layer.
Alain Reguera Delgado 8ea9a9
Unfortunly, the transformation DocBook XML -> FO -> PDF (through
Alain Reguera Delgado 8ea9a9
PassiveTex) seems to be buggy inside CentOS 5.5, so it was commented
Alain Reguera Delgado 8ea9a9
inside the *centos-art.sh* script. Most documentation
Alain Reguera Delgado 8ea9a9
is now organized in DocBook format, even Texinfo format remains as the
Alain Reguera Delgado 8ea9a9
only format with automated production tasks.
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
In the automation area, the *centos-art.sh* script
Alain Reguera Delgado 8ea9a9
introduced the capability of reading configuration files. The main
Alain Reguera Delgado 8ea9a9
goal here was moving some command-line options from functionalities
Alain Reguera Delgado 8ea9a9
onto a more persistent medium.  Most configuration files were set to
Alain Reguera Delgado 8ea9a9
define the position of brands inside images and documentation manual
Alain Reguera Delgado 8ea9a9
specific options.
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
[[repo-history-2012]]
Alain Reguera Delgado 8ea9a9
=== 2012
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
The CentOS Artwork Repository development was eventually stopped at
Alain Reguera Delgado 8ea9a9
November 2011 until July 2012 when we needed to make the
Alain Reguera Delgado 8ea9a9
*centos-art.sh* script a bit more customizable than it presently was.
Alain Reguera Delgado 8ea9a9
For example, it was considered as a need that functionalities inside
Alain Reguera Delgado 8ea9a9
the *centos-art.sh* script must be not just conceived independent one
Alain Reguera Delgado 8ea9a9
another but reusable in different contexts as well.
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
[[repo-history-2012-1]]
Alain Reguera Delgado 8ea9a9
==== Make Localization Of *centos-art.sh* Script Specific To Different Contexts
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
The procedure used to locale messages inside the *centos-art.sh*
Alain Reguera Delgado 8ea9a9
script has to be re-designed in order to accept such pluggable
Alain Reguera Delgado 8ea9a9
behavior into the script. We couldn't publish unique
Alain Reguera Delgado 8ea9a9
+centos-art.sh.po+ and +centos-art.sh.mo+ files because they may
Alain Reguera Delgado 8ea9a9
contain different information in different contexts. For example, if
Alain Reguera Delgado 8ea9a9
you are using the *render* and
Alain Reguera Delgado 8ea9a9
*help* functionalities you only need translation
Alain Reguera Delgado 8ea9a9
messages for them and not those from other functionalities that may
Alain Reguera Delgado 8ea9a9
exist in the central repository but you didn't download nor use into
Alain Reguera Delgado 8ea9a9
your working copy.
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
One solution for this could be to have independent PO files for each
Alain Reguera Delgado 8ea9a9
functionality of *centos-art.sh* script which are
Alain Reguera Delgado 8ea9a9
combined to create the final PO and MO files that
Alain Reguera Delgado 8ea9a9
*gettext* uses to retrive translated strings
Alain Reguera Delgado 8ea9a9
when *centos-art.sh* script is running. For this
Alain Reguera Delgado 8ea9a9
solution to be effective, you must be selective about the
Alain Reguera Delgado 8ea9a9
functionalities and locales directories you download into your working
Alain Reguera Delgado 8ea9a9
copy. For example, if you want to use the render functionality and its
Alain Reguera Delgado 8ea9a9
locale messages only, you must download the required directories and
Alain Reguera Delgado 8ea9a9
exclude others.
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
[NOTE]
Alain Reguera Delgado 8ea9a9
======================================================================
Alain Reguera Delgado 8ea9a9
In case you don't want to be selective and download the whole
Alain Reguera Delgado 8ea9a9
repository, the creation of the +centos-art.sh.po+,
Alain Reguera Delgado 8ea9a9
+centos-art.sh.pot+ and
Alain Reguera Delgado 8ea9a9
+centos-art.sh.mo+ files will occur automatically
Alain Reguera Delgado 8ea9a9
the first time you run the *prepare* functionality
Alain Reguera Delgado 8ea9a9
(which require the *locale* functionality to be
Alain Reguera Delgado 8ea9a9
available), or later, by running the following command:
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
----------------------------------------------------------------------
Alain Reguera Delgado 8ea9a9
centos-art locale Scripts/Bash --update
Alain Reguera Delgado 8ea9a9
----------------------------------------------------------------------
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
For more information about the *prepare* and *locale* functionalities,
Alain Reguera Delgado 8ea9a9
see their respective manuals.
Alain Reguera Delgado 8ea9a9
======================================================================
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
[[repo-history-2012-2]]
Alain Reguera Delgado 8ea9a9
.Directory structure of a rendering-only context
Alain Reguera Delgado 8ea9a9
======================================================================
Alain Reguera Delgado 8ea9a9
----------------------------------------------------------------------
Alain Reguera Delgado 8ea9a9
/home/centos/Projects/artwork/
Alain Reguera Delgado 8ea9a9
|-- Locales/
Alain Reguera Delgado 8ea9a9
|   `-- Scripts/
Alain Reguera Delgado 8ea9a9
|       `-- Bash/
Alain Reguera Delgado 8ea9a9
|           `-- es_ES/
Alain Reguera Delgado 8ea9a9
|               |-- Functions/
Alain Reguera Delgado 8ea9a9
|               |   |-- Commons/
Alain Reguera Delgado 8ea9a9
|               |   |   |-- messages.po
Alain Reguera Delgado 8ea9a9
|               |   |   `-- messages.pot
Alain Reguera Delgado 8ea9a9
|               |   |-- Locales/
Alain Reguera Delgado 8ea9a9
|               |   |   |-- messages.po
Alain Reguera Delgado 8ea9a9
|               |   |   `-- messages.pot
Alain Reguera Delgado 8ea9a9
|               |   `-- Render/
Alain Reguera Delgado 8ea9a9
|               |       |-- messages.po
Alain Reguera Delgado 8ea9a9
|               |       `-- messages.pot
Alain Reguera Delgado 8ea9a9
|               |-- LC_MESSAGES/
Alain Reguera Delgado 8ea9a9
|               |   `-- centos-art.sh.mo
Alain Reguera Delgado 8ea9a9
|               |-- centos-art.sh.po
Alain Reguera Delgado 8ea9a9
|               `-- centos-art.sh.pot
Alain Reguera Delgado 8ea9a9
`-- Scripts/
Alain Reguera Delgado 8ea9a9
    `-- Bash/
Alain Reguera Delgado 8ea9a9
        |-- Functions/
Alain Reguera Delgado 8ea9a9
        |   |-- Commons/
Alain Reguera Delgado 8ea9a9
        |   |-- Locales/
Alain Reguera Delgado 8ea9a9
        |   `-- Render/
Alain Reguera Delgado 8ea9a9
        `-- centos-art.sh
Alain Reguera Delgado 8ea9a9
----------------------------------------------------------------------
Alain Reguera Delgado 8ea9a9
======================================================================
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
As shown in <<repo-history-2012-2>>, both *Commons* and *Locales*
Alain Reguera Delgado 8ea9a9
functionalities will always be required directories. The +Commons+
Alain Reguera Delgado 8ea9a9
directory contains the common functionalities and the *Locales*
Alain Reguera Delgado 8ea9a9
directory contains the standard procedures you need to run in order to
Alain Reguera Delgado 8ea9a9
build the final +centos-art.sh.mo+ file used by *gettext* to retrive
Alain Reguera Delgado 8ea9a9
translation strings when the *centos-art.sh* script is running.
Alain Reguera Delgado 8ea9a9
Remember that +centos-art.sh.pot+, +centos-art.sh.po+ files aren't
Alain Reguera Delgado 8ea9a9
under version control and they are built by combining each
Alain Reguera Delgado 8ea9a9
funtionality message.po file into a PO and later a MO file.  
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
A practical example of using the solution described above may be found
Alain Reguera Delgado 8ea9a9
when you are working on the corporate identity of The CentOS Project
Alain Reguera Delgado 8ea9a9
and then need to start a new corporate identity project for another
Alain Reguera Delgado 8ea9a9
organization.  You want to keep the directory structure of The CentOS
Alain Reguera Delgado 8ea9a9
Artwork Repository and its automation tool, the *centos-art.sh*
Alain Reguera Delgado 8ea9a9
script.  Your new project requires you to introduce new
Alain Reguera Delgado 8ea9a9
functionalities to *centos-art.sh* which don't fit the needs of The
Alain Reguera Delgado 8ea9a9
CentOS Project (e.g., you want to introduce a *report* functionality
Alain Reguera Delgado 8ea9a9
to mesure how much connect time do you consume through your PPP
Alain Reguera Delgado 8ea9a9
internface.) or you just want to keep the directory structure of your
Alain Reguera Delgado 8ea9a9
new project as simple as possible.
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
To go through this it is possible to mix specific parts of different
Alain Reguera Delgado 8ea9a9
central repositories into one single working copy.  This is the
Alain Reguera Delgado 8ea9a9
working copy you'll use to manage your new project. In
Alain Reguera Delgado 8ea9a9
<<repo-history-2012-1>>, we see how the +Render+, +Locales+ and
Alain Reguera Delgado 8ea9a9
+Commons+ directories which come from the The CentOS Artwork
Alain Reguera Delgado 8ea9a9
Repository has been integrated into the working copy of your new
Alain Reguera Delgado 8ea9a9
project.
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
----------------------------------------------------------------------
Alain Reguera Delgado 8ea9a9
/home/al/Projects/Myapp/
Alain Reguera Delgado 8ea9a9
|-- Locales/
Alain Reguera Delgado 8ea9a9
|   `-- Scripts/
Alain Reguera Delgado 8ea9a9
|       `-- Bash/         
Alain Reguera Delgado 8ea9a9
|           `-- es_ES/
Alain Reguera Delgado 8ea9a9
|               |-- Functions/
Alain Reguera Delgado 8ea9a9
|               |   |-- Commons/ <--| from https://projects.centos.org/svn/artwork/
Alain Reguera Delgado 8ea9a9
|               |   |   |-- messages.po
Alain Reguera Delgado 8ea9a9
|               |   |   `-- messages.pot
Alain Reguera Delgado 8ea9a9
|               |   |-- Locales/ <--| from https://projects.centos.org/svn/artwork/
Alain Reguera Delgado 8ea9a9
|               |   |   |-- messages.po
Alain Reguera Delgado 8ea9a9
|               |   |   `-- messages.pot
Alain Reguera Delgado 8ea9a9
|               |   |-- Render/  <--| from https://projects.centos.org/svn/artwork/
Alain Reguera Delgado 8ea9a9
|               |   |   |-- messages.po
Alain Reguera Delgado 8ea9a9
|               |   |   `-- messages.pot
Alain Reguera Delgado 8ea9a9
|               |   `-- Report/
Alain Reguera Delgado 8ea9a9
|               |       |-- messages.po
Alain Reguera Delgado 8ea9a9
|               |       `-- messages.pot
Alain Reguera Delgado 8ea9a9
|               |-- LC_MESSAGES/
Alain Reguera Delgado 8ea9a9
|               |   `-- myapp.sh.mo
Alain Reguera Delgado 8ea9a9
|               |-- myapp.sh.po
Alain Reguera Delgado 8ea9a9
|               `-- myapp.sh.pot
Alain Reguera Delgado 8ea9a9
`-- Scripts/
Alain Reguera Delgado 8ea9a9
    `-- Bash/
Alain Reguera Delgado 8ea9a9
        |-- Functions/
Alain Reguera Delgado 8ea9a9
        |   |-- Commons/ <--| from https://projects.centos.org/svn/artwork/
Alain Reguera Delgado 8ea9a9
        |   |-- Locales/ <--| from https://projects.centos.org/svn/artwork/
Alain Reguera Delgado 8ea9a9
        |   |-- Render/  <--| from https://projects.centos.org/svn/artwork/
Alain Reguera Delgado 8ea9a9
        |   `-- Report/
Alain Reguera Delgado 8ea9a9
        `-- myapp.sh
Alain Reguera Delgado 8ea9a9
----------------------------------------------------------------------
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
At this point, your working copy contains files from two different
Alain Reguera Delgado 8ea9a9
central repositories. One repository provides the files of your new
Alain Reguera Delgado 8ea9a9
organization project and the other one provides the files related to
Alain Reguera Delgado 8ea9a9
the *render* functionality from The CentOS Artwork Repository.  In
Alain Reguera Delgado 8ea9a9
this environment, all updates commited to the +Render+, +Locales+ and
Alain Reguera Delgado 8ea9a9
+Commons+ directories at The CentOS Artwork Repository will be
Alain Reguera Delgado 8ea9a9
available to you too, the next time you update your working copy.
Alain Reguera Delgado 8ea9a9
Likewise, if you change something in any of these directories and
Alain Reguera Delgado 8ea9a9
commit your changes, your changes will be available to poeple working
Alain Reguera Delgado 8ea9a9
in The CentOS Artwork Repository the next time they update their
Alain Reguera Delgado 8ea9a9
working copies.
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
Understanding the need of mixing different central repositories into a
Alain Reguera Delgado 8ea9a9
single working copy is an important step for reusing the
Alain Reguera Delgado 8ea9a9
functionalities that come with centos-art.sh script, but it is not
Alain Reguera Delgado 8ea9a9
enough if you want to customize the information produced by it.  By
Alain Reguera Delgado 8ea9a9
default, the centos-art.sh script uses information related to The
Alain Reguera Delgado 8ea9a9
CentOS Project.  You probably need to change this if you are producing
Alain Reguera Delgado 8ea9a9
images to a different organization than The CentOS Project. For
Alain Reguera Delgado 8ea9a9
example, some of the information you might need to change would be the
Alain Reguera Delgado 8ea9a9
copyright holder, brands, domain names, mailing lists, and so forth.
Alain Reguera Delgado 8ea9a9
To change this information you need to duplicate the file
Alain Reguera Delgado 8ea9a9
+centos-art.sh+ and rename it to something else.  Later, you need to
Alain Reguera Delgado 8ea9a9
edit the renamed version and change variables inside according your
Alain Reguera Delgado 8ea9a9
needs. In <<repo-history-2012-1>>, we used the name *myapp.sh* instead
Alain Reguera Delgado 8ea9a9
of *centos-art.sh* so the information we set inside it could reflect
Alain Reguera Delgado 8ea9a9
the specific needs that motivated the creation of a new project
Alain Reguera Delgado 8ea9a9
without affecting those from The CentOS Project.
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
Most of the information you need to change in your duplicated version
Alain Reguera Delgado 8ea9a9
of +centos-art.sh+ file is controlled by a set of read-only variables.
Alain Reguera Delgado 8ea9a9
You modify these variables here and they will be available all along
Alain Reguera Delgado 8ea9a9
the script execution time. For example, you can change the value of
Alain Reguera Delgado 8ea9a9
CLI_WRKCOPY variable inside your duplicated version of +centos-art.sh+
Alain Reguera Delgado 8ea9a9
to change the absolute path you use to store your working copy.
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
==== Enhance The CentOS Logo Construction
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
The CentOS Logo is made of two different components known as The
Alain Reguera Delgado 8ea9a9
CentOS Symbol and The CentOS Type.  Presently (at the end of
Alain Reguera Delgado 8ea9a9
September), to produce these components, we create one SVG image for
Alain Reguera Delgado 8ea9a9
each PNG image we want to produce, store it in
Alain Reguera Delgado 8ea9a9
+Identity/Models/Brands/Logos+ directory structure and run the
Alain Reguera Delgado 8ea9a9
command:
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
----------------------------------------------------------------------
Alain Reguera Delgado 8ea9a9
centos-art render Identity/Images/Brands/Logos*
Alain Reguera Delgado 8ea9a9
----------------------------------------------------------------------
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
This model works and scales well in situations when there isn't a need
Alain Reguera Delgado 8ea9a9
to reuse final images among themselves. However, when you need to
Alain Reguera Delgado 8ea9a9
reuse images among themselves, a better solution is required. The goal
Alain Reguera Delgado 8ea9a9
here would be: don't create SVG images for PNG
Alain Reguera Delgado 8ea9a9
images you can build based on other PNG images.
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
This might be achieved through one of the following ways:
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
- Create a new specific functionality to achieved the goal.  Needed
Alain Reguera Delgado 8ea9a9
  because the *render* specific functionality uses SVG files as
Alain Reguera Delgado 8ea9a9
  reference to build images (i.e., one SVG image produces one PNG
Alain Reguera Delgado 8ea9a9
  image).
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
- Modify *render* functionality to work in different modes based on
Alain Reguera Delgado 8ea9a9
  file type or file extension.  The first mode would use SVG files as
Alain Reguera Delgado 8ea9a9
  reference to build PNG images (just as it was doing so far).  The
Alain Reguera Delgado 8ea9a9
  second mode would use a configuration file named +render.conf+ as
Alain Reguera Delgado 8ea9a9
  reference inside the design models directory you want to produce
Alain Reguera Delgado 8ea9a9
  images for so as to build the related PNG images.  In this second
Alain Reguera Delgado 8ea9a9
  case, the configuration file specifies how final PNG images will be
Alain Reguera Delgado 8ea9a9
  produced (e.g., by appending or overlapping them one another).
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
For example, consider the following command-line:
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
----------------------------------------------------------------------
Alain Reguera Delgado 8ea9a9
centos-art render Identity/Images/Brands/Logos
Alain Reguera Delgado 8ea9a9
----------------------------------------------------------------------
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
This command should evaluate which type of rendition will be done,
Alain Reguera Delgado 8ea9a9
based on whether the source file is a scalable vector graphic (SVG) or
Alain Reguera Delgado 8ea9a9
a configuration file.  To make this decision, the *centos-art.sh*
Alain Reguera Delgado 8ea9a9
script looks for SVG files first, and configuration files later.  When
Alain Reguera Delgado 8ea9a9
SVG files are found, the *centos-art.sh* script uses a list of SVG
Alain Reguera Delgado 8ea9a9
files and process them one by one excluding any related configuration
Alain Reguera Delgado 8ea9a9
file that could exist.  On the other hand, if no SVG file is found
Alain Reguera Delgado 8ea9a9
inside the related design model directory structure, the
Alain Reguera Delgado 8ea9a9
*centos-art.sh* script will use the configuration file with the name
Alain Reguera Delgado 8ea9a9
+render.conf+ to create images as specified inside it. When neither a
Alain Reguera Delgado 8ea9a9
SVG or a configuration file is found inside the design model directory
Alain Reguera Delgado 8ea9a9
structure, the *centos-art.sh* script finishes its execution without
Alain Reguera Delgado 8ea9a9
any error message.  For example, if no SVG file is found inside
Alain Reguera Delgado 8ea9a9
+Identity/Models/Brands/Logos/+ directory and the
Alain Reguera Delgado 8ea9a9
+Identity/Models/Brands/Logos/images.conf+ configuration file exists
Alain Reguera Delgado 8ea9a9
therein with the following content:
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
----------------------------------------------------------------------
Alain Reguera Delgado 8ea9a9
[centos.png]
Alain Reguera Delgado 8ea9a9
models  = "Identity/Models/Brands/Symbols/centos-symbol-forlogos.svgz Identity/Models/Brands/Types/centos.svgz"
Alain Reguera Delgado 8ea9a9
formats = "xpm jpg"
Alain Reguera Delgado 8ea9a9
heights = "48 78"
Alain Reguera Delgado 8ea9a9
fgcolor = "000000 ffffff"
Alain Reguera Delgado 8ea9a9
bgcolor = "ffffff-0"
Alain Reguera Delgado 8ea9a9
command = "/usr/bin/convert +append"
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
[centos-artwork.png]
Alain Reguera Delgado 8ea9a9
models  = "Identity/Models/Brands/Symbols/centos-symbol-forlogos.svgz Identity/Models/Brands/Types/centos.svgz Identity/Models/Brands/Types/artwork.svgz"
Alain Reguera Delgado 8ea9a9
formats = "xpm jpg"
Alain Reguera Delgado 8ea9a9
heights = "48 78"
Alain Reguera Delgado 8ea9a9
fgcolor = "000000 ffffff"
Alain Reguera Delgado 8ea9a9
bgcolor = "ffffff-0"
Alain Reguera Delgado 8ea9a9
command = "/usr/bin/convert +append"
Alain Reguera Delgado 8ea9a9
----------------------------------------------------------------------
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
The *centos-art.sh* script should produce the
Alain Reguera Delgado 8ea9a9
following image files:
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
----------------------------------------------------------------------
Alain Reguera Delgado 8ea9a9
Identity/Images/Brands/Logos/000000/ffffff-0/48/centos.jpg
Alain Reguera Delgado 8ea9a9
Identity/Images/Brands/Logos/000000/ffffff-0/48/centos.png
Alain Reguera Delgado 8ea9a9
Identity/Images/Brands/Logos/000000/ffffff-0/48/centos.xpm
Alain Reguera Delgado 8ea9a9
Identity/Images/Brands/Logos/000000/ffffff-0/48/centos-artwork.png
Alain Reguera Delgado 8ea9a9
Identity/Images/Brands/Logos/000000/ffffff-0/48/centos-artwork.jpg
Alain Reguera Delgado 8ea9a9
Identity/Images/Brands/Logos/000000/ffffff-0/48/centos-artwork.xmp
Alain Reguera Delgado 8ea9a9
Identity/Images/Brands/Logos/000000/ffffff-0/78/centos.jpg
Alain Reguera Delgado 8ea9a9
Identity/Images/Brands/Logos/000000/ffffff-0/78/centos.png
Alain Reguera Delgado 8ea9a9
Identity/Images/Brands/Logos/000000/ffffff-0/78/centos.xpm
Alain Reguera Delgado 8ea9a9
Identity/Images/Brands/Logos/000000/ffffff-0/78/centos-artwork.png
Alain Reguera Delgado 8ea9a9
Identity/Images/Brands/Logos/000000/ffffff-0/78/centos-artwork.jpg
Alain Reguera Delgado 8ea9a9
Identity/Images/Brands/Logos/000000/ffffff-0/78/centos-artwork.xmp
Alain Reguera Delgado 8ea9a9
Identity/Images/Brands/Logos/ffffff/ffffff-0/48/centos.jpg
Alain Reguera Delgado 8ea9a9
Identity/Images/Brands/Logos/ffffff/ffffff-0/48/centos.png
Alain Reguera Delgado 8ea9a9
Identity/Images/Brands/Logos/ffffff/ffffff-0/48/centos.xpm
Alain Reguera Delgado 8ea9a9
Identity/Images/Brands/Logos/ffffff/ffffff-0/48/centos-artwork.png
Alain Reguera Delgado 8ea9a9
Identity/Images/Brands/Logos/ffffff/ffffff-0/48/centos-artwork.jpg
Alain Reguera Delgado 8ea9a9
Identity/Images/Brands/Logos/ffffff/ffffff-0/48/centos-artwork.xmp
Alain Reguera Delgado 8ea9a9
Identity/Images/Brands/Logos/ffffff/ffffff-0/78/centos.jpg
Alain Reguera Delgado 8ea9a9
Identity/Images/Brands/Logos/ffffff/ffffff-0/78/centos.png
Alain Reguera Delgado 8ea9a9
Identity/Images/Brands/Logos/ffffff/ffffff-0/78/centos.xpm
Alain Reguera Delgado 8ea9a9
Identity/Images/Brands/Logos/ffffff/ffffff-0/78/centos-artwork.png
Alain Reguera Delgado 8ea9a9
Identity/Images/Brands/Logos/ffffff/ffffff-0/78/centos-artwork.jpg
Alain Reguera Delgado 8ea9a9
Identity/Images/Brands/Logos/ffffff/ffffff-0/78/centos-artwork.xmp
Alain Reguera Delgado 8ea9a9
----------------------------------------------------------------------
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
The final location for storing images output inside the repository is
Alain Reguera Delgado 8ea9a9
determined by using the design model directory provided as argument.
Alain Reguera Delgado 8ea9a9
Basically, the *centos-art.sh* script changes the
Alain Reguera Delgado 8ea9a9
path components from Models to Images and adds foreground color,
Alain Reguera Delgado 8ea9a9
background color, height value and image name to it to differentiate
Alain Reguera Delgado 8ea9a9
rendered images.
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
In case you need to restrict the amount of files you want to produce
Alain Reguera Delgado 8ea9a9
including their formats, heights, colors and commands, you need to
Alain Reguera Delgado 8ea9a9
modify the content of the related +render.conf+ configuration file.
Alain Reguera Delgado 8ea9a9
There is not any command-line option available for such tasks. The
Alain Reguera Delgado 8ea9a9
most *render* command-line options can do for you is when there are
Alain Reguera Delgado 8ea9a9
more than one configuration file inside the same design model
Alain Reguera Delgado 8ea9a9
directory and you need to specify which one of them will be used as
Alain Reguera Delgado 8ea9a9
reference. In such case you can use the
Alain Reguera Delgado 8ea9a9
<option>--filter="REGEX"</option> option.  
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
When images are produced through configuration files, the
Alain Reguera Delgado 8ea9a9
*centos-art.sh* script takes the order provided in
Alain Reguera Delgado 8ea9a9
the list of design models to build the list of images you will work
Alain Reguera Delgado 8ea9a9
with through the command specified. For example, the order in which
Alain Reguera Delgado 8ea9a9
images will be appended or overlapped.  
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
Localization of logo images will not be and must not be supported in
Alain Reguera Delgado 8ea9a9
any way. That would bring disastrous confusion in the area of visual
Alain Reguera Delgado 8ea9a9
recognition.
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
=== 2013
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
Development of CentOS Artwork Repository was eventually stopped at
Alain Reguera Delgado 8ea9a9
November, 2012, when I moved myself from Cienfuegos to Havana city for
Alain Reguera Delgado 8ea9a9
working. I returned on May 14th of 2013 and continued developing The
Alain Reguera Delgado 8ea9a9
CentOS Artwork Repository at home.  Considered a
Alain Reguera Delgado 8ea9a9
Git+Gitolite+Gitweb+MantisBT infrastructure for CentOS Artwork
Alain Reguera Delgado 8ea9a9
Repository and started working on it in my workstation.  This, in
Alain Reguera Delgado 8ea9a9
order to implement a distributed work flow for The CentOS Artwork
Alain Reguera Delgado 8ea9a9
Repository based on Git version control system.
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
[[repository-history-2013-UpdateRepositoryLayout]]
Alain Reguera Delgado 8ea9a9
==== Update Repository Directories Structure
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
I face the following situation: I am working on a documentation
Alain Reguera Delgado 8ea9a9
project named ``solinfo-network''.  While I was organizing it, I found
Alain Reguera Delgado 8ea9a9
that the directory structure of The CentOS Artwork Repository fits
Alain Reguera Delgado 8ea9a9
quite well the needs of ``solinfo-network'' documentation project.
Alain Reguera Delgado 8ea9a9
However, I don't want to duplicate automation scripts in two separate
Alain Reguera Delgado 8ea9a9
projects, but share them between themselves (i.e., changes committed
Alain Reguera Delgado 8ea9a9
to automation scripts are pushed to one single place, not two.).
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
When we use Subversion repositories, it is possible to checkout
Alain Reguera Delgado 8ea9a9
specific parts of different repositories into a new repository. This
Alain Reguera Delgado 8ea9a9
is very useful if we need to create several projects that share the
Alain Reguera Delgado 8ea9a9
same component and we don't want to duplicate the common component in
Alain Reguera Delgado 8ea9a9
two or more different projects but ``share'' it between them.
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
When we use Git repository, it is not possible to checkout specific
Alain Reguera Delgado 8ea9a9
parts of a repository but the complete tree. So, in order to share
Alain Reguera Delgado 8ea9a9
common components of a repository we need to create one repository for
Alain Reguera Delgado 8ea9a9
each common component we want to share and then use Git
Alain Reguera Delgado 8ea9a9
submodules<citation>see progit-book, page 152.</citation>  This
Alain Reguera Delgado 8ea9a9
requires that brand new repositories be created for each component we
Alain Reguera Delgado 8ea9a9
want to share.
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
In both situations, including Git and Subversion repositories, it is
Alain Reguera Delgado 8ea9a9
necessary that we define very well the structure of each component we
Alain Reguera Delgado 8ea9a9
want to share, so it can be ``plugged'' nicely into other projects.
Alain Reguera Delgado 8ea9a9
Likewise, other projects must have the same directory structure the
Alain Reguera Delgado 8ea9a9
pluggable component was design to fit in. If these two conditions can
Alain Reguera Delgado 8ea9a9
be reached, it would be possible to reuse repositories components and
Alain Reguera Delgado 8ea9a9
concentrate efforts.  The current directory structure The CentOS
Alain Reguera Delgado 8ea9a9
Artwork Repository is set in allows components inside Subversion
Alain Reguera Delgado 8ea9a9
repositories to be reused by related working copies.  However, we
Alain Reguera Delgado 8ea9a9
cannot do the same if it is stored in a Git repository.  In order for
Alain Reguera Delgado 8ea9a9
Git repositories to be able to share components with other Git
Alain Reguera Delgado 8ea9a9
repositories, The CentOS Artwork Repository directory structure needs
Alain Reguera Delgado 8ea9a9
to be reorganized to better delineate each component the repository is
Alain Reguera Delgado 8ea9a9
made of.
Alain Reguera Delgado 8ea9a9
Alain Reguera Delgado 8ea9a9
// vim: set syntax=asciidoc: