|
|
41622d |
@subheading Goals
|
|
|
550745 |
|
|
|
550745 |
@itemize
|
|
|
550745 |
@item ...
|
|
|
550745 |
@end itemize
|
|
|
550745 |
|
|
|
41622d |
@subheading Description
|
|
|
550745 |
|
|
|
550745 |
The CentOS web environment is formed by a central web application
|
|
|
550745 |
---to cover base needs (e.g., per-major release information like
|
|
|
550745 |
release notes, lifetime, downloads, documentation, support, security
|
|
|
550745 |
advisories, bugs, etc.)--- and many different free web applications
|
|
|
550745 |
---to cover specific needs (e.g., wiki, mailing lists, etc.)---.
|
|
|
550745 |
|
|
|
550745 |
The CentOS web environment is addressed to solve the following issues:
|
|
|
550745 |
|
|
|
550745 |
@itemize
|
|
|
550745 |
@item One unique name and one unique visual style to all web
|
|
|
550745 |
applications used inside the web environment.
|
|
|
550745 |
|
|
|
550745 |
@item One-step navigation to web applications inside the environment.
|
|
|
550745 |
|
|
|
550745 |
@item High degree of customization to change the visual style of all
|
|
|
550745 |
web applications with few changes (e.g, updating just two or three
|
|
|
550745 |
images plus common style sheet [CSS] definitions).
|
|
|
550745 |
@end itemize
|
|
|
550745 |
|
|
|
550745 |
The CentOS project is attached to a monolithic corporate visual
|
|
|
550745 |
identity (@pxref{Directories trunk Identity}), where all visual manifestations
|
|
|
550745 |
have one unique name and one unique visual style. This way, the CentOS
|
|
|
550745 |
web environment has one unique name (the CentOS brand) and one unique
|
|
|
550745 |
visual style (the CentOS default theme) for all its visual
|
|
|
550745 |
manifestations, the web applications in this case.
|
|
|
550745 |
|
|
|
550745 |
Since a maintainance point of view, achiving the one unique visual
|
|
|
550745 |
style inside CentOS web environment is not a simple task. The CentOS
|
|
|
550745 |
web environment is built upon many different web applications which
|
|
|
550745 |
have different visual styles and different internal ways to customize
|
|
|
550745 |
their own visual styles. For example: MoinMoin, the web application
|
|
|
550745 |
used to support the CentOS wiki (@url{http://wiki.centos.org/}) is
|
|
|
550745 |
highly customizable but Mailman (in its 2.x.x serie), the web
|
|
|
550745 |
application used to support the CentOS mailing list, doesn't
|
|
|
550745 |
support@footnote{The theme support of Mailman may be introduced in
|
|
|
550745 |
mailman-3.x.x release.} a customization system that separates
|
|
|
550745 |
presentation from logic, similar to that used by MoinMoin.
|
|
|
550745 |
|
|
|
550745 |
This visual style diversity complicates our goal of one unique visual
|
|
|
550745 |
style for all web applications. So, if we want one unique visual style
|
|
|
550745 |
for all web applications used, it is innevitable to modify the web
|
|
|
550745 |
applications in order to implement the CentOS one unique visual style
|
|
|
550745 |
customization in them. Direct modification of upstream applications is
|
|
|
550745 |
not convenient because upstream applications come with their one
|
|
|
550745 |
visual style and administrators take the risk of loosing all
|
|
|
550745 |
customization changes the next time the application be updated (since
|
|
|
550745 |
not all upstream web applications, used in CentOS web environment,
|
|
|
550745 |
separate presentation from logic).
|
|
|
550745 |
|
|
|
550745 |
To solve the ``one unique visual style'' issue, installation and
|
|
|
550745 |
actualization of web applications ---used inside CentOS web
|
|
|
550745 |
environment--- need to be independent from upstream web applications
|
|
|
550745 |
development line; in a way that CentOS web environment administrators
|
|
|
550745 |
can install and update web applications freely without risk of loosing
|
|
|
550745 |
the one unique visual style customization changes.
|
|
|
550745 |
|
|
|
550745 |
At the surface of this issue we can see the need of one specific yum
|
|
|
550745 |
repository to store CentOS web environment customized web applications.
|
|
|
550745 |
|
|
|
41622d |
@subsubheading Design model (without ads)
|
|
|
550745 |
|
|
|
41622d |
@subsubheading Design model (with ads)
|
|
|
550745 |
|
|
|
41622d |
@subsubheading HTML definitions
|
|
|
550745 |
|
|
|
41622d |
@subsubheading Controlling visual style
|
|
|
550745 |
|
|
|
550745 |
Inside CentOS web environment, the visual style is controlled by the
|
|
|
550745 |
following compenents:
|
|
|
550745 |
|
|
|
550745 |
@table @strong
|
|
|
550745 |
@item Webenv header background
|
|
|
550745 |
@verbatim
|
|
|
78cdd2 |
trunk/Identity/Images/Themes/$THEME/Backgrounds/Img/1024x250.png
|
|
|
550745 |
@end verbatim
|
|
|
550745 |
|
|
|
550745 |
@item CSS definitions
|
|
|
550745 |
@verbatim
|
|
|
550745 |
trunk/Identity/Themes/Models/Default/Promo/Web/CSS/stylesheet.css
|
|
|
550745 |
@end verbatim
|
|
|
550745 |
@end table
|
|
|
550745 |
|
|
|
41622d |
@subsubheading Producing visual style
|
|
|
550745 |
|
|
|
550745 |
The visual style of CentOS web environment is defined in the following
|
|
|
550745 |
files:
|
|
|
550745 |
|
|
|
550745 |
@verbatim
|
|
|
78cdd2 |
trunk/Identity/Images/Themes/$THEME/Backgrounds/Xcf/1024x250.xcf
|
|
|
78cdd2 |
trunk/Identity/Images/Themes/$THEME/Backgrounds/Img/1024x250.png
|
|
|
78cdd2 |
trunk/Identity/Images/Themes/$THEME/Backgrounds/Img/1024x250-bg.png
|
|
|
78cdd2 |
trunk/Identity/Images/Themes/$THEME/Backgrounds/Tpl/1024x250.svg
|
|
|
550745 |
@end verbatim
|
|
|
550745 |
|
|
|
550745 |
As graphic designer you use @file{1024x250.xcf} file to produce
|
|
|
550745 |
@file{1024x250-bg.png} file. Later, inside @file{1024x250.svg} file,
|
|
|
550745 |
you use the @file{1024x250-bg.png} file as background layer to draw
|
|
|
550745 |
your vectorial design. When you consider you artwork ready, use the
|
|
|
550745 |
@command{centos-art.sh} script, as described below, to produce the
|
|
|
550745 |
visual style controller images of CentOS web environment.
|
|
|
550745 |
|
|
|
550745 |
@verbatim
|
|
|
78cdd2 |
centos-art render --entry=trunk/Identity/Images/Themes/$THEME/Backgrounds --filter='1024x250'
|
|
|
550745 |
@end verbatim
|
|
|
550745 |
|
|
|
550745 |
Once you have rendered required image files, changing the visual style
|
|
|
550745 |
of CentOS web environment is a matter of replacing old image files
|
|
|
550745 |
with new ones, inside webenv repository file system structure. The
|
|
|
550745 |
visual style changes will take effect the next time customization line
|
|
|
550745 |
of CentOS web applications be packaged, uploded, and installed from
|
|
|
550745 |
[webenv] or [webenv-test] repositories.
|
|
|
550745 |
|
|
|
41622d |
@subsubheading Navigation
|
|
|
550745 |
|
|
|
550745 |
Inside CentOS web environment, the one-step navegation between web
|
|
|
550745 |
applications is addressed using the web environment navigation bar.
|
|
|
550745 |
The web environment navigation bar contains links to main applications
|
|
|
550745 |
and is always visible no matter where you are inside the web
|
|
|
550745 |
environment.
|
|
|
550745 |
|
|
|
41622d |
@subsubheading Development and release cycle
|
|
|
550745 |
|
|
|
550745 |
The CentOS web environment development and relase cycle is described
|
|
|
550745 |
below:
|
|
|
550745 |
|
|
|
550745 |
@table @strong
|
|
|
550745 |
|
|
|
550745 |
@item Download
|
|
|
550745 |
|
|
|
550745 |
The first action is download the source code of web applications we
|
|
|
550745 |
want to use inside CentOS web environment.
|
|
|
550745 |
|
|
|
550745 |
@quotation
|
|
|
550745 |
@strong{Important} The source location from which web application are
|
|
|
550745 |
downloaded is very important. Use SRPMs from CentOS @strong{[base]}
|
|
|
550745 |
and @strong{[updates]} repositories as first choise, and third party
|
|
|
550745 |
repositories (e.g. RPMForge, EPEL, etc.) as last resource.
|
|
|
550745 |
@end quotation
|
|
|
550745 |
|
|
|
550745 |
@item Prepare
|
|
|
550745 |
|
|
|
550745 |
Once web application source code has been downloaded, our duty is
|
|
|
550745 |
organize its files inside @samp{webenv} version controlled repository.
|
|
|
550745 |
|
|
|
550745 |
When preparing the structure keep in mind that different web
|
|
|
550745 |
applications have different visual styles, and also different ways to
|
|
|
550745 |
implement it. A convenient way to organize the file system structure
|
|
|
550745 |
would be create one development line for each web application we use
|
|
|
550745 |
inside CentOS web environment. For example, consider the following
|
|
|
550745 |
file system structure:
|
|
|
550745 |
|
|
|
550745 |
@verbatim
|
|
|
550745 |
https://projects.centos.org/svn/webenv/trunk/
|
|
|
550745 |
|-- WebApp1/
|
|
|
550745 |
| |-- Sources/
|
|
|
550745 |
| | `-- webapp1-0.0.1/
|
|
|
550745 |
| |-- Rpms/
|
|
|
550745 |
| | `-- webapp1-0.0.1.rpm
|
|
|
550745 |
| |-- Srpms/
|
|
|
550745 |
| | `-- webapp1-0.0.1.srpm
|
|
|
550745 |
| `-- Specs/
|
|
|
550745 |
| `-- webapp1-0.0.1.spec
|
|
|
550745 |
|-- WebApp2/
|
|
|
550745 |
`-- WebAppN/
|
|
|
550745 |
@end verbatim
|
|
|
550745 |
|
|
|
550745 |
@item Customize
|
|
|
550745 |
|
|
|
550745 |
Once web applications have been organized inside the version
|
|
|
550745 |
controlled repository file system, use subversion to create the CentOS
|
|
|
550745 |
customization development line of web applications source code. For
|
|
|
550745 |
example, using the above file system structure, you can create the
|
|
|
550745 |
customization development line of @file{webapp1-0.0.1/} with the
|
|
|
550745 |
following command:
|
|
|
550745 |
|
|
|
550745 |
@verbatim
|
|
|
550745 |
svn cp trunk/WebApp1/Sources/webapp1-0.0.1 trunk/WebApp1/Sources/webapp1-0.0.1-webenv
|
|
|
550745 |
@end verbatim
|
|
|
550745 |
|
|
|
550745 |
The command above creates the following structure:
|
|
|
550745 |
|
|
|
550745 |
@verbatim
|
|
|
550745 |
https://projects.centos.org/svn/webenv/trunk/
|
|
|
550745 |
|-- WebApp1/
|
|
|
550745 |
| |-- Sources/
|
|
|
550745 |
| | |-- webapp1-0.0.1/
|
|
|
550745 |
| | `-- webapp1-0.0.1-webenv/
|
|
|
550745 |
| |-- Rpms/
|
|
|
550745 |
| | `-- webapp1-0.0.1.rpm
|
|
|
550745 |
| |-- Srpms/
|
|
|
550745 |
| | `-- webapp1-0.0.1.srpm
|
|
|
550745 |
| `-- Specs/
|
|
|
550745 |
| `-- webapp1-0.0.1.spec
|
|
|
550745 |
|-- WebApp2/
|
|
|
550745 |
`-- WebAppN/
|
|
|
550745 |
@end verbatim
|
|
|
550745 |
|
|
|
550745 |
In the above structure, the @file{webapp1-0.0.1-webenv/} directory is
|
|
|
550745 |
the place where you customize the visual style of
|
|
|
550745 |
@file{webapp1-0.0.1/} web application.
|
|
|
550745 |
|
|
|
550745 |
@quotation
|
|
|
550745 |
@strong{Tip} Use the @command{diff} command of Subversion between
|
|
|
550745 |
CentOS customization and upstream development lines to know what you
|
|
|
550745 |
are changing exactly.
|
|
|
550745 |
@end quotation
|
|
|
550745 |
|
|
|
550745 |
@item Build packages
|
|
|
550745 |
|
|
|
550745 |
When web application has been customized, build the web application
|
|
|
550745 |
RPM and SRPM using the source location with @samp{-webenv} prefix.
|
|
|
550745 |
|
|
|
550745 |
@verbatim
|
|
|
550745 |
https://projects.centos.org/svn/webenv/trunk/
|
|
|
550745 |
|-- WebApp1/
|
|
|
550745 |
| |-- Sources/
|
|
|
550745 |
| | |-- webapp1-0.0.1/
|
|
|
550745 |
| | `-- webapp1-0.0.1-webenv/
|
|
|
550745 |
| |-- Rpms/
|
|
|
550745 |
| | |-- webapp1-0.0.1.rpm
|
|
|
550745 |
| | `-- webapp1-0.0.1-webenv.rpm
|
|
|
550745 |
| |-- Srpms/
|
|
|
550745 |
| | |-- webapp1-0.0.1.srpm
|
|
|
550745 |
| | `-- webapp1-0.0.1-webenv.srpm
|
|
|
550745 |
| `-- Specs/
|
|
|
550745 |
| |-- webapp1-0.0.1.spec
|
|
|
550745 |
| `-- webapp1-0.0.1-webenv.spec
|
|
|
550745 |
|-- WebApp2/
|
|
|
550745 |
`-- WebAppN/
|
|
|
550745 |
@end verbatim
|
|
|
550745 |
|
|
|
550745 |
@item Release for testing
|
|
|
550745 |
|
|
|
550745 |
When the customized web application has been packaged, make packages
|
|
|
550745 |
available for testing and quality assurance. This can be achives using
|
|
|
550745 |
a [webenv-test] yum repository.
|
|
|
550745 |
|
|
|
550745 |
@quotation
|
|
|
550745 |
@strong{Note} The [webenv-test] repository is not shipped inside
|
|
|
550745 |
CentOS distribution default yum configuraiton. In order to use
|
|
|
550745 |
[webenv-test] repository you need to configure it first.
|
|
|
550745 |
@end quotation
|
|
|
550745 |
|
|
|
550745 |
If some problem is found to install/update/use the customized version
|
|
|
550745 |
of web application, the problem is notified somewhere (a bugtracker
|
|
|
550745 |
maybe) and the customization face is repated in order to fix the
|
|
|
550745 |
problem. To release the new package add a number after @samp{-webenv}
|
|
|
550745 |
prefix. For example, if some problem is found in
|
|
|
550745 |
@file{webapp1-0.0.1-webenv.rpm}, when it be fixed the new package will
|
|
|
550745 |
be named @file{webapp1-0.0.1-webenv-1.rpm}. If a problem is found in
|
|
|
550745 |
@file{webapp1-0.0.1-webenv-1.rpm}, when it be fixed the new package
|
|
|
550745 |
will be named @file{webapp1-0.0.1-webenv-2.rpm}, and so on.
|
|
|
550745 |
|
|
|
550745 |
The ``customization --- release for testing'' process is repeated
|
|
|
550745 |
until CentOS quality assurance team considers the package is ready for
|
|
|
550745 |
production.
|
|
|
550745 |
|
|
|
550745 |
@item Release for production
|
|
|
550745 |
|
|
|
550745 |
When customized web application packages are considered ready for
|
|
|
550745 |
production they are moved from [webenv-test] to [webenv] repository.
|
|
|
550745 |
This action is commited by CentOS quality assurance team.
|
|
|
550745 |
|
|
|
550745 |
@quotation
|
|
|
550745 |
@strong{Note} The [webenv] repository is not shipped inside CentOS
|
|
|
550745 |
distribution default yum configuraiton. In order to use [webenv]
|
|
|
550745 |
repository you need to configure it first.
|
|
|
550745 |
@end quotation
|
|
|
550745 |
@end table
|
|
|
550745 |
|
|
|
41622d |
@subsubheading The [webenv-test] repository
|
|
|
550745 |
|
|
|
550745 |
@verbatim
|
|
|
550745 |
/etc/yum.repos.d/CentOS-Webenv-test.repo
|
|
|
550745 |
@end verbatim
|
|
|
550745 |
|
|
|
550745 |
@verbatim
|
|
|
550745 |
[webenv-test]
|
|
|
550745 |
name=CentOS-$releasever - Webenv-test
|
|
|
550745 |
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=webenv-test
|
|
|
550745 |
#baseurl=http://mirror.centos.org/centos/$releasever/webenv-test/$basearch/
|
|
|
550745 |
gpgcheck=1
|
|
|
550745 |
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-$releasever
|
|
|
550745 |
enabled=1
|
|
|
550745 |
priority=10
|
|
|
550745 |
@end verbatim
|
|
|
550745 |
|
|
|
41622d |
@subsubheading The [webenv] repository
|
|
|
550745 |
|
|
|
550745 |
@verbatim
|
|
|
550745 |
/etc/yum.repos.d/CentOS-Webenv.repo
|
|
|
550745 |
@end verbatim
|
|
|
550745 |
|
|
|
550745 |
@verbatim
|
|
|
550745 |
[webenv]
|
|
|
550745 |
name=CentOS-$releasever - Webenv
|
|
|
550745 |
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=webenv
|
|
|
550745 |
#baseurl=http://mirror.centos.org/centos/$releasever/webenv/$basearch/
|
|
|
550745 |
gpgcheck=1
|
|
|
550745 |
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-$releasever
|
|
|
550745 |
enabled=1
|
|
|
550745 |
priority=10
|
|
|
550745 |
@end verbatim
|
|
|
550745 |
|
|
|
41622d |
@subsubheading Priority configuration
|
|
|
550745 |
|
|
|
550745 |
Both [webenv] and [webenv-test] repositories update packages inside
|
|
|
550745 |
CentOS [base] and CentOS [updates] repositories.
|
|
|
550745 |
|
|
|
41622d |
@subheading Usage
|
|
|
550745 |
|
|
|
550745 |
@itemize
|
|
|
550745 |
@item ...
|
|
|
550745 |
@end itemize
|
|
|
550745 |
|
|
|
41622d |
@subheading See also
|
|
|
550745 |
|
|
|
550745 |
@menu
|
|
|
550745 |
@end menu
|