<head>
<title>OpenOffice.org Art Project</title>


<style type="text/css">
.galleriestable {
        border: 1px solid #0E72A4;
        background-color: #FFFFFF;
        margin-top: 1px;
        margin-bottom: 1px;
}

.tableh1 {
        background : #00315a ;
        color : #FFFFFF;
        padding-top: 3px;
        padding-right: 10px;
        padding-bottom: 3px;
        padding-left: 10px;
}

.tableh1_compact {
        background : #0E72A4 ;
        color : #FFFFFF;
        padding-top: 2px;
        padding-right: 5px;
        padding-bottom: 2px;
        padding-left: 5px;
}

.tableh2 {
        background: #d8dee3 ;
        color : #000000;
        padding-top: 3px;
        padding-right: 10px;
        padding-bottom: 3px;
        padding-left: 10px;
}

.tableh2_compact {
        background: #D1D7DC ;
        color : #000000;
        padding-top: 2px;
        padding-right: 5px;
        padding-bottom: 2px;
        padding-left: 5px;
}

.tableb {
        background: #EFEFEF ;
        padding-top: 3px;
        padding-right: 10px;
        padding-bottom: 3px;
        padding-left: 10px;
}

.tableb_compact {
        background: #EFEFEF ;
        padding-top: 2px;
        padding-right: 5px;
        padding-bottom: 2px;
        padding-left: 5px;
}

.tablef {
        background: #d8dee3;
        padding-top: 10px;
        padding-right: 10px;
        padding-bottom: 10px;
        padding-left: 10px;
}

</style>

</head>

<H2>The OpenOffice.org Art Project</H2>

<!-- Project menu -->
<div align="right">
    <a href="index.html">Index</a> 
 :: <a href="index.html#galleries">Galleries</a>
 :: <a href="to-do-artwork.html"><b>Artwork To-Do</b></a>    
 :: <a href="to-do-maintenance.html"><b>Project Maintenance To-Do</b></a>     
 <br>
 
 <a href="about-participation.html">How to participate</a>
  :: <a href="about-request-graphics.html">Request graphics</a>
  :: <a href="about-issuezilla.html">IssueZilla</a>
  :: <a href="about-issuezilla-uploading_files.html"><b>Sending us files</b></a>
  :: <a href="about-legal.html">Licenses</a>
  :: <a href="about-project.html">About the project</a>  
 <br><br>
</div>
<!-- end of project menu -->


<!-- Galleries entry table -->
<table style="border-style:solid; border-color:#06338b; border-width:5px"  cellpadding="2" cellspacing="3" width="100%" bgcolor="#9bc0f5">
	<tr>
		<td>
		<strong>The OpenOffice.org Art Project is updating its web site. </strong>
		<br />
		This page is outdated, but most of its content is being worked on at the <a href="http://wiki.services.openoffice.org/wiki/Art">OpenOffice.org wiki</a>:
		<br />
		Please follow <a href="http://wiki.services.openoffice.org/wiki/Art">this link</a> 
		and use the wiki subpages to find the information you're looking for.
		<br />
		If you can't find what you want to know, please contact our mailing list <a href="mailto:art&#64;marketing.openoffice.org">art@marketing.openoffice.org</a>.
		<br />
		<br />		
		Sorry for any inconvenience, we hope to finish the update as soon as possible. 
		<br />		
		- And you are welcome to help us in this area too... - 
		</td>
	</tr>
</table>
<br />


<TABLE border="0" cellpadding="1" cellspacing="0" width="100%" bgcolor="#ffffff">
<TR>
<TD valign="top"  width="85%">	<!-- Begin contents of page -->
	<TABLE class="galleriestable" width="100%">
	<TR>
	<td class="tableh1">
	<strong>Legal issues - project and artwork licensing:</strong>
	</TD>
	</TR>
	<TR>
	<TD class="tableb">

<p>
In order to protect your contributions and the Community's work from abuse,  
submitting artwork to the OpenOffice.org project must be done according to certain licensing
requirements.
<p>
<strong>OpenOffice.org accepted licenses:</strong><br>
For source code and binary distributions, OpenOffice.org uses the
<a
href="http://www.openoffice.org/licenses/lgpl_license.html">LGPL</a>/<a
href="http://www.openoffice.org/licenses/sissl_license.html">SISSL</a>; for documents, we
encourage the <a href="http://www.openoffice.org/licenses/PDL.html">PDL</a>.  
For details, see <a
href="http://www.openoffice.org/license.html">http://www.openoffice.org/license.html</a>.

<p>
<strong>Artwork licensing:</strong><br>
For artwork, graphics, icons, etc., we encourage the use of the
following licenses:
<ul>
<li><a href="http://www.openoffice.org/licenses/PDL.html">PDL</a> - Public Document License
<li><a
href="http://www.openoffice.org/licenses/lgpl_license.html">LGPL</a>/<a
href="http://www.openoffice.org/licenses/sissl_license.html">SISSL</a> - covered by the Joint
Copyright Assignment form (JCA)  [Note that the JCA is not in itself a license].
</ul>
In addition, non-essential graphics may be accepted also if they are
licensed under <a href="http://creativecommons.org/license/publicdomain-2?lang=en">Public Domain</a>
according to
the statement by <a href="http://www.creativecommons.org/">Creative Commons</a>.

<p>
<strong>Types of graphics and the accepted licenses:</strong><br>
There are two distinct types of graphics based on the licensing requirements:
<ol>
<li><strong>Graphics that define the Project's visual identity</strong> (e.g. logos, official
CD-Covers, etc) - this category requires you either to license the graphics under PDL or to submit a
JCA. The reasons for this requirement are stated above.
<li><strong>Aditional graphics</strong> that do not fit into the above category (e.g. wallpapers,
screenshots, etc.) - are accepted either with the above licensing or if you want, they can be
licensed unde Public Domain instead.
</ol>
<p>
<strong>In order to avoid any missunderstandings</strong>, each gallery inside the Art Project will
clearly specify the applicable licenses for that gallery so that you know from the beginning what licenses are needed
for the submitted artwork if you intend to contribute to a certain gallery.
<p>
You may address your further questions on the <a
href="mailto:art@marketing.openoffice.org">mailing list</a>.

<br><br><br><br>
	</TD>
	</TR>			
	</TABLE>
	<!-- end contents of page --></TD>
<TD width="150" valign="top">
		
		<!-- Help needed table -->
			<TABLE class="galleriestable" width="100%">
			<TR>
			<TD class="tableh2">
			<small>
			<b><font color="#7F7F7F">HELP NEEDED:</font></b><br>
			
			<script language="JavaScript"
			src="http://oosurvey.gratismania.ro/oooart/news/todo.php"></script>
			<br><!-- <a href="#">More...</a> -->
			</small>
			</TD>
			</TR>
			</table>
		
		<!-- news table -->
			<TABLE class="galleriestable" width="100%">
			<TR>
			<TD class="tableh2">
			<small>
			<b><font color="#7F7F7F">PROJECT NEWS:</font></b><br>
			<script language="JavaScript" 
			src="http://oosurvey.gratismania.ro/oooart/news/news.php"></script>
			<BR>
			<!-- http://oosurvey.gratismania.ro/oooart/news/news.php -->
			<!-- <a href="#">More...</a> -->
			</small>
			</TD>
			</TR>
			</table>


</TD>
</TR>
</TABLE>
<!-- end of galleries entry table -->
