I contacted the publisher of the Fever theme to tell them that they violate the GPL license by using code published under GPL, removing the original copyright statements and adding their own copyright statements.

I told the publisher that it is fine to claim copyright under GPL for parts the publisher has changed in the original code, but that it is not allowed under GPL to remove copyright statements of the copyright holder.

The publisher changed the theme and says now the parts of the theme don't look like the original code anymore, so the publisher can remove the original copyright and add their own. (still most of the code is the same as in the original, only stripped)

The publisher told me he will not change the theme anymore, only when drupal.org will request him to do so.

Hereby I want to request the drupal.org maintainers to point out to the publisher that the GPL license is violated so they will change it in the theme published on drupal.org.

http://drupal.org/project/fever

Comments

gerhard killesreiter’s picture

So, what would be the original statement?

The statement in template.php is

/*
+----------------------------------------------------------------+
| Fever for Dupal 6.x - Version 1.0 |
| Copyright (C) 2010 Antsin.com All Rights Reserved. |
| @license - GNU GENERAL PUBLIC LICENSE |
|----------------------------------------------------------------|
| Theme Name: Fever |
| Description: Fever by Antsin |
| Author: Antsin.com |
| Date: 5th August 2010 |
| Website: http://www.antsin.com/ |
|----------------------------------------------------------------+
*/

ppblaauw’s picture

This is about the views_slideshow_ddblock part of the fever theme, but most files of their theme have their copyright statement.

My views_slideshow_ddblock themes have the following copyright statement.
In the example below its for the vsd-upright40 slideshow theme.

/*!
* Dynamic display block module template: vsd-upright40 - Cascading Style Sheet
* (c) Copyright Phelsa Information Technology, 2009 - 2010. All rights reserved.
* Version 1.2 (21-JUN-2010)
* Licenced under GPL license
* http://www.gnu.org/licenses/gpl.html
*/

antsin’s picture

I'm the Fever theme publisher. After ddblock author contact us, we changed the part of Fever theme that specifically design for ddblock. After new release ddblock author still think two files violate GPL which is views-slideshow-ddblock-cycle-block-content-fever.tpl.php & views-slideshow-ddblock-cycle-pager-content-fever.tpl.php.

We put our copy right information there is because we designed our own, not because it doesn't look like. it certainly not simple strip the code. It is different from structure to style. However in order to make ddblock works and without touching core code, some variables even the css class name need to be the same. If that call as "same as in the original", I sure don't understand. Simply because ddblock author didn't even give any users a chance to create something of their own.

I don't think this is the case of GPL Violation but that is not for me to judge. Thank you for your time.

ppblaauw’s picture

I will react first on the post of Antsin

Simply because ddblock author didn't even give any users a chance to create something of their own.

When you create something of your own, I will not complain at all. If you use my code please preserve the copyright statement, which is a requirement when you use/adjust GPL code. (I don't understand why this is a big problem for you. In my opinion you are trying to bend the rules in your own advantage.)

The same code is also used in the blogbuzz theme published on drupal.org
--

To make it more easy for the drupal.org maintainers to understand what my complaint is:

Hereby the files to show that my original code is used and that the GPL copyright statement should be preserved.

I will go file by file

First, the original
Second, the version of the fever theme I called attention for
Third, the current version of the fever theme

file: views-slideshow-ddblock-cycle-block-content-vsd-upright60.tpl.php

Original

<?php
// $Id$

/*!
 * Dynamic display block module template: vsd-upright60 - content template
 * Copyright (c) 2008 - 2009 P. Blaauw All rights reserved.
 * Version 1.1 (01-SEP-2009)
 * Licenced under GPL license
 * http://www.gnu.org/licenses/gpl.html
 */

/**
 * @file
 * Dynamic display block module template: vsd-upright60 - content template
 *
 * Available variables:
 * - $views_slideshow_ddblock_slider_settings['origin']: From which module comes the block.
 * - $views_slideshow_ddblock_slider_settings['delta']: Block number of the block.
 *
 * - $views_slideshow_ddblock_slider_settings['template']: template name
 * - $views_slideshow_ddblock_slider_settings['output_type']: type of content
 *
 * - $views_slideshow_ddblock_slider_items: array with slidecontent
 * - $views_slideshow_ddblock_slider_settings['slide_text_position']: of the text in the slider (top | right | bottom | left)
 * - $views_slideshow_ddblock_slider_settings['slide_direction']: direction of the text in the slider (horizontal | vertical )
 * - 
 * - $views_slideshow_ddblock_pager_content: Themed pager content
 * - $views_slideshow_ddblock_slider_settings['pager_position']: position of the pager (top | bottom)
 *
 * notes: don't change the ID names, they are used by the jQuery script.
 */
$settings = $views_slideshow_ddblock_slider_settings;
// add Cascading style sheet
drupal_add_css($directory .'/custom/modules/views_slideshow_ddblock/' . $settings['template'] . '/views-slideshow-ddblock-cycle-'. $settings['template'] . '.css', 'template', 'all', FALSE);
?>
<!-- dynamic display block slideshow -->
<div id="views-slideshow-ddblock-<?php print $settings['delta'] ?>" class="views-slideshow-ddblock-cycle-<?php print $settings['template'] ?> clear-block">
 <div class="container clear-block border">
  <div class="container-inner clear-block border">
   <?php if ($settings['pager_position'] == "top") : ?>
    <!-- custom pager images --> 
    <?php print $views_slideshow_ddblock_pager_content ?>
   <?php else : ?>
    <?php if ($settings['pager2'] == 1 && $settings['pager2_position']['pager'] === 'pager'): ?>  
     <!-- prev next pager. -->
     <div id="views-slideshow-ddblock-prev-next-pager-<?php print $settings['delta'] ?>" class="prev-next-pager views-slideshow-ddblock-pager clear-block">
      <a class="prev" href="#"><?php print $settings['pager2_pager_prev']?></a>
      <a class="count"></a>
      <a class="next" href="#"><?php print $settings['pager2_pager_next']?></a>
     </div>
    <?php endif; ?>  
   <?php endif; ?> 
   <!-- slider content -->
   <div class="slider clear-block border">
    <div class="slider-inner clear-block border">
     <?php if ($settings['output_type'] == 'view_fields') : ?>
      <?php foreach ($views_slideshow_ddblock_slider_items as $slider_item): ?>
       <div class="slide clear-block border">
        <div class="slide-inner clear-block border">
         <?php print $slider_item['slide_image']; ?>
          <div class="slide-text slide-text-<?php print $settings['slide_direction'] ?> slide-text-<?php print $settings['slide_text_position'] ?> clear-block border">
           <div class="slide-text-inner clear-block border">
           <?php if ($settings['slide_text'] == 1) :?>
            <div class="slide-title slide-title-<?php print $settings['slide_direction'] ?> clear-block border">
             <div class="slide-title-inner clear-block border">
              <h2><?php print $slider_item['slide_title'] ?></h2>
             </div> <!-- slide-title-inner-->
            </div>  <!-- slide-title-->
            <div class="slide-body-<?php print $settings['slide_direction'] ?> clear-block border">
             <div class="slide-body-inner clear-block border">
              <p><?php print $slider_item['slide_text'] ?></p>
             </div> <!-- slide-body-inner-->
            </div>  <!-- slide-body-->
           <?php endif; ?>
           <div class="slide-read-more slide-read-more-<?php print $settings['slide_direction'] ?> clear-block border">
            <p><?php print $slider_item['slide_read_more'] ?></p>
	         </div><!-- slide-read-more-->
          </div> <!-- slide-text-inner-->
         </div>  <!-- slide-text-->
        </div> <!-- slide-inner-->
       </div>  <!-- slide-->
      <?php endforeach; ?>
     <?php endif; ?>
    </div> <!-- slider-inner-->
   </div>  <!-- slider-->
   <?php if ($settings['pager_position'] == "bottom") : ?>
    <!-- custom pager images--> 
    <?php print $views_slideshow_ddblock_pager_content ?>
   <?php else : ?>
    <?php if ($settings['pager2'] == 1 && $settings['pager2_position']['pager'] === 'pager'): ?>  
     <!-- prev next pager. -->
     <div id="views-slideshow-ddblock-prev-next-pager-<?php print $settings['delta'] ?>" class="prev-next-pager views-slideshow-ddblock-pager clear-block">
      <a class="prev" href="#"><?php print $settings['pager2_pager_prev']?></a>
      <a class="count"></a>
      <a class="next" href="#"><?php print $settings['pager2_pager_next']?></a>
     </div>
    <?php endif; ?>  
   <?php endif; ?> 
  </div> <!-- container-inner-->
 </div> <!--container-->
</div> <!--  template -->

Second version:

<?php
// $Id: views-slideshow-ddblock-cycle-block-content-fever.tpl.php,v 1.1 2010/08/05 07:52:03 antsin Exp $

/*
+----------------------------------------------------------------+
|   Fever for Dupal 6.x - Version 1.0                            |
|   Copyright (C) 2010 Antsin.com All Rights Reserved.           |
|   @license - GNU GENERAL PUBLIC LICENSE                        |
|----------------------------------------------------------------|
|   Theme Name: Fever                                            |
|   Description: Fever by Antsin                                 |
|   Author: Antsin.com                                           |
|   Date: 5th August 2010                                        |
|   Website: http://www.antsin.com/                              |
|----------------------------------------------------------------+
*/ 

$settings = $views_slideshow_ddblock_slider_settings;
// add Cascading style sheet
drupal_add_css($directory .'/custom/modules/views_slideshow_ddblock/'.$settings['custom_template']. '/views-slideshow-ddblock-cycle-'.$settings['custom_template']. '.css', 'template', 'all', FALSE);
?>
<!-- dynamic display block slideshow -->
<div id="views-slideshow-ddblock-<?php print $settings['delta'] ?>" class="views-slideshow-ddblock-cycle-<?php print $settings['custom_template'] ?> clear-block">
 <div class="container clear-block border">
  <div class="container-inner clear-block border"> 
   <!-- slider content -->
   <div class="slider clear-block border">
    <div class="slider-inner clear-block border">
     <?php if ($settings['output_type'] == 'view_fields') : ?>
      <?php foreach ($views_slideshow_ddblock_slider_items as $slider_item): ?>
       <div class="slide clear-block border">
        <div class="slide-inner clear-block border">
         <?php print $slider_item['slide_image']; ?>
          <div class="slide-text slide-text-<?php print $settings['slide_direction'] ?> slide-text-<?php print $settings['slide_text_position'] ?> clear-block border">
           <div class="slide-text-inner clear-block border">
           <?php if ($settings['slide_text'] == 1) :?>
            <div class="slide-body-<?php print $settings['slide_direction'] ?> clear-block border">
             <div class="slide-body-inner clear-block border">
              <h2><?php print $slider_item['slide_title'] ?></h2>
              <p><?php print strip_tags($slider_item['slide_text'], '<a>');?><span class="read-more"><?php print $slider_item['slide_read_more'] ?></span></p>
             </div> <!-- slide-body-inner-->
            </div>  <!-- slide-body-->
           <?php endif; ?>
          </div> <!-- slide-text-inner-->
         </div>  <!-- slide-text-->
        </div> <!-- slide-inner-->
       </div>  <!-- slide-->
      <?php endforeach; ?>
     <?php endif; ?>
    </div> <!-- slider-inner-->
   </div>  <!-- slider-->
    <!-- custom pager images--> 
    <?php print $views_slideshow_ddblock_pager_content ?>
  </div> <!-- container-inner-->
 </div> <!--container-->
</div> <!--  template -->

Third version:

<?php
// $Id: views-slideshow-ddblock-cycle-block-content-fever.tpl.php,v 1.2 2010/11/27 07:16:37 antsin Exp $

/*
+----------------------------------------------------------------+
|   Fever for Dupal 6.x - Version 1.0                            |
|   Copyright (C) 2010 Antsin.com All Rights Reserved.           |
|   @license - GNU GENERAL PUBLIC LICENSE                        |
|----------------------------------------------------------------|
|   Theme Name: Fever                                            |
|   Description: Fever by Antsin                                 |
|   Author: Antsin.com                                           |
|   Date: 5th August 2010                                        |
|   Website: http://www.antsin.com/                              |
|----------------------------------------------------------------+
*/ 

$settings = $views_slideshow_ddblock_slider_settings;
drupal_add_css($directory .'/custom/modules/views_slideshow_ddblock/fever/fever.css', 'template', 'all', FALSE);
?>

<div id="views-slideshow-ddblock-<?php print $settings['delta'] ?>" class="showcase-container">
  <div class="slider">
    <?php if ($settings['output_type'] == 'view_fields') : ?>
      <?php foreach ($views_slideshow_ddblock_slider_items as $slider_item): ?>
        <div class="slide">
          <?php print $slider_item['slide_image']; ?>
          <div class="slide-text slide-text-bottom">
            <h2><?php print $slider_item['slide_title'] ?></h2>
            <p><?php print strip_tags($slider_item['slide_text'], '<a>');?><span class="read-more"><?php print $slider_item['slide_read_more'] ?></span></p>
          </div> 
        </div>
      <?php endforeach; ?>
    <?php endif; ?>
  </div>
  <!-- showcase pager --> 
  <?php print $views_slideshow_ddblock_pager_content ?>
</div> 

File: views-slideshow-ddblock-cycle-pager-content-vsd-upright60.tpl.php

Original:

<?php
// $Id$ 

/*!
 * Dynamic display block module template: vsd-upright60 - pager template
 * Copyright (c) 2008 - 2009 P. Blaauw All rights reserved.
 * Version 1.0 (19-AUG-2009)
 * Licenced under GPL license
 * http://www.gnu.org/licenses/gpl.html
 */

/**
 * @file
 * Dynamic display block module template: vsd-upright60 - pager template
 * - Scrollable pager with images
 *
 * Available variables:
 * - $views_slideshow_ddblock_pager_settings['delta']: Block number of the block.
 * - $views_slideshow_ddblock_pager_settings['pager']: Type of pager to add
 * - $views_slideshow_ddblock_pager_settings['pager2']: Add prev/next pager
 * - $views_slideshow_ddblock_pager_settings['pager_position']: position of the slider (top | bottom) 
 * - $views_slideshow_ddblock_pager_items: array with pager_items
 *
 * notes: don't change the ID names, they are used by the jQuery script.
 */
 $settings = $views_slideshow_ddblock_pager_settings;
 
// jquery_plugin_add('scrollable');
 $base = drupal_get_path('module', 'views_slideshow_ddblock');
 drupal_add_js($base . '/js/tools.scrollable-1.0.5.min.js', 'theme');
?>

<?php if ($settings['pager_position'] == 'bottom'): ?>
 <div class="spacer-horizontal"><b></b></div>
<?php endif; ?>

<!-- navigator --> 
<div class="navi"></div> 

<!-- custom "prev" link --> 
<div class="prev"></div> 

<!-- scrollable pager -->
<div id="views-slideshow-ddblock-scrollable-pager-<?php print $settings['delta'] ?>" class="<?php print $settings['pager'] ?> vsd-scrollable-pager clear-block border">
 <div class="items <?php print $settings['pager'] ?>-inner clear-block border">
  <?php if ($views_slideshow_ddblock_pager_items): ?>
   <?php $item_counter=1; ?>
   <?php foreach ($views_slideshow_ddblock_pager_items as $pager_item): ?>
    <div class="<?php print $settings['pager'] ?>-item <?php print $settings['pager'] ?>-item-<?php print $item_counter ?>">
      <a href="#" title="navigate to topic" class="pager-link"><?php print $pager_item['image'];?></a>
    </div> <!-- /custom-pager-item -->
    <?php $item_counter++; ?>
   <?php endforeach; ?>
  <?php endif; ?>
 </div> <!-- /pager-inner-->
</div>  <!-- /scrollable pager-->

<!-- custom "next" link --> 
<div class="next"></div>

<!-- prev/next page on slide -->
<?php if ($settings['pager2'] == 1 && $settings['pager2_position']['slide'] === 'slide'): ?>
 <div class="views-slideshow-ddblock-prev-next-slide">
  <div class="prev-container">
   <a class="prev" href="#"><?php print $settings['pager2_slide_prev']?></a>
  </div>
  <div class="next-container">
   <a class="next" href="#"><?php print $settings['pager2_slide_next'] ?></a>
  </div>
 </div>
<?php endif; ?> 

<?php if ($settings['pager_position'] == 'top'): ?>
 <div class="spacer-horizontal"><b></b></div>
<?php endif; ?>

second version:

<?php
// $Id: views-slideshow-ddblock-cycle-pager-content-fever.tpl.php,v 1.1 2010/08/05 07:52:03 antsin Exp $

/*
+----------------------------------------------------------------+
|   Fever for Dupal 6.x - Version 1.0                            |
|   Copyright (C) 2010 Antsin.com All Rights Reserved.           |
|   @license - GNU GENERAL PUBLIC LICENSE                        |
|----------------------------------------------------------------|
|   Theme Name: Fever                                            |
|   Description: Fever by Antsin                                 |
|   Author: Antsin.com                                           |
|   Date: 5th August 2010                                        |
|   Website: http://www.antsin.com/                              |
|----------------------------------------------------------------+
*/ 

 $settings = $views_slideshow_ddblock_pager_settings;
 
// jquery_plugin_add('scrollable');
 $base = drupal_get_path('module', 'views_slideshow_ddblock');
 drupal_add_js($base . '/js/tools.scrollable-1.0.5.min.js', 'theme');
?>

<!-- scrollable pager -->
<div id="views-slideshow-ddblock-scrollable-pager-<?php print $settings['delta'] ?>" class="<?php print $settings['pager'] ?> vsd-scrollable-pager clear-block border">
 <div class="items <?php print $settings['pager'] ?>-inner clear-block border">
  <?php if ($views_slideshow_ddblock_pager_items): ?>
   <?php $item_counter=1; ?>
   <?php foreach ($views_slideshow_ddblock_pager_items as $pager_item): ?>
    <div class="<?php print $settings['pager'] ?>-item <?php print $settings['pager'] ?>-item-<?php print $item_counter ?>">
      <a href="#" title="navigate to topic" class="pager-link"><?php print $pager_item['image'];?><span class="slide-title"><?php print $pager_item['slide_title']; ?></span><br/><?php print $pager_item['text']; ?></a>
    </div> <!-- /custom-pager-item -->
    <?php $item_counter++; ?>
   <?php endforeach; ?>
  <?php endif; ?>
 </div> <!-- /pager-inner-->
</div>  <!-- /scrollable pager-->

<!-- prev/next page on slide -->
<?php if ($settings['pager2'] == 1 && $settings['pager2_position']['slide'] === 'slide'): ?>
 <div class="views-slideshow-ddblock-prev-next-slide">
  <div class="prev-container">
   <a class="prev" href="#"><?php print $settings['pager2_slide_prev']?></a>
  </div>
  <div class="next-container">
   <a class="next" href="#"><?php print $settings['pager2_slide_next'] ?></a>
  </div>
 </div>
<?php endif; ?> 

third version: (scrollable pager is not used anymore, but a pager with text and images)

<?php
// $Id: views-slideshow-ddblock-cycle-pager-content-fever.tpl.php,v 1.2 2010/11/27 07:16:53 antsin Exp $

/*
+----------------------------------------------------------------+
|   Fever for Dupal 6.x - Version 1.0                            |
|   Copyright (C) 2010 Antsin.com All Rights Reserved.           |
|   @license - GNU GENERAL PUBLIC LICENSE                        |
|----------------------------------------------------------------|
|   Theme Name: Fever                                            |
|   Description: Fever by Antsin                                 |
|   Author: Antsin.com                                           |
|   Date: 5th August 2010                                        |
|   Website: http://www.antsin.com/                              |
|----------------------------------------------------------------+
*/ 
  $settings = $views_slideshow_ddblock_pager_settings;
?>

<div id="views-slideshow-ddblock-custom-pager-<?php print $settings['delta'] ?>" class="showcase-pager">
  <?php if ($views_slideshow_ddblock_pager_items): ?>
    <?php foreach ($views_slideshow_ddblock_pager_items as $pager_item): ?>
      <div class="<?php print $settings['pager'] ?>-item">
        <a href="#" class="pager-link"><?php print $pager_item['image'];?><span class="slide-title"><?php print $pager_item['slide_title']; ?></span><br/><?php print $pager_item['text']; ?></a>
      </div>
    <?php endforeach; ?>
  <?php endif; ?>
</div>

<div class="showcase-navigator">
 <a class="prev" href="#"></a>
 <a class="next" href="#"></a>
</div>

file: views-slideshow-ddblock-cycle-vsd-upright60.css
Original:

/*!
 * Dynamic display block module template: vsd-upright60 - Cascading Style Sheet
 * (c) Copyright Phelsa Information Technology, 2009 - 2010. All rights reserved.
 * Version 1.2 (21-JUN-2010)
 * Licenced under GPL license
 * http://www.gnu.org/licenses/gpl.html
 */
div.views-slideshow-ddblock-cycle-vsd-upright60 div.container{background-color:#fff;width:475px;}
div.views-slideshow-ddblock-cycle-vsd-upright60 div.container-inner{height:358px;position:relative;z-index:0;}
div.views-slideshow-ddblock-cycle-vsd-upright60 div.slider{float:left;width:475px;}
div.views-slideshow-ddblock-cycle-vsd-upright60 div.slider-inner{background:transparent url(../images/transparent_bg.png) repeat scroll 0 0!important;height:303px;overflow:hidden;position:relative;visibility:hidden;}
div.views-slideshow-ddblock-cycle-vsd-upright60 div.slide{display:none;height:100%;left:0;position:absolute;top:0;}
div.views-slideshow-ddblock-cycle-vsd-upright60 div.slide-inner img{height:303px;margin:0 !important;padding:0 !important;width:475px;}
div.views-slideshow-ddblock-cycle-vsd-upright60 div.slide-text{background:transparent url(../images/transparent_bg.png) repeat scroll 0 0!important;position:absolute;}
div.views-slideshow-ddblock-cycle-vsd-upright60 div.slide-text-horizontal{height:85px;left:0;width:475px;}
div.views-slideshow-ddblock-cycle-vsd-upright60 div.slide-text-vertical{height:303px;width:140px;}
div.views-slideshow-ddblock-cycle-vsd-upright60 div.slide-text-top{top:7px;}
div.views-slideshow-ddblock-cycle-vsd-upright60 div.slide-text-right{bottom:0;right:30px;}
div.views-slideshow-ddblock-cycle-vsd-upright60 div.slide-text-bottom{bottom:7px;}
div.views-slideshow-ddblock-cycle-vsd-upright60 div.slide-text-left{bottom:0;left:30px;}
div.views-slideshow-ddblock-cycle-vsd-upright60 div.slide-text-inner{padding:10px;}
div.views-slideshow-ddblock-cycle-vsd-upright60 div.slide-title{float:left;}
div.views-slideshow-ddblock-cycle-vsd-upright60 div.slide-title-vertical{width:130px;}
div.views-slideshow-ddblock-cycle-vsd-upright60 div.slide-title-horizontal{float:left;width:158px;}
div.views-slideshow-ddblock-cycle-vsd-upright60 div.slide-title h2{margin:-5px 0 0 0;padding:0;}
div.views-slideshow-ddblock-cycle-vsd-upright60 div.slide-title-inner{color:white;font-weight:bold;}
div.views-slideshow-ddblock-cycle-vsd-upright60 div.slide-body-vertical{width:132px;}
div.views-slideshow-ddblock-cycle-vsd-upright60 div.slide-body-horizontal{float:left;width:290px;}
div.views-slideshow-ddblock-cycle-vsd-upright60 div.slide-body-inner{color:white;}
div.views-slideshow-ddblock-cycle-vsd-upright60 div.slide-body-inner p{margin:0 8px 0 0;padding:0;}

/* Slide read more button */
div.views-slideshow-ddblock-cycle-vsd-upright60 div.slide-read-more{width:110px;}
div.views-slideshow-ddblock-cycle-vsd-upright60 div.slide-read-more p{padding:0;margin:0;}
div.views-slideshow-ddblock-cycle-vsd-upright60 div.slide-read-more a{background:url(../images/readmore.png) no-repeat;border:none;bottom:5px;color:#fff;font-size:14px;font-family:times New Roman;margin:0;padding:4px 0 4px 19px;position:absolute;text-decoration:none !important;text-align:left;width:100px;}
div.views-slideshow-ddblock-cycle-vsd-upright60 div.slide-read-more-horizontal a{right:-17px;}
div.views-slideshow-ddblock-cycle-vsd-upright60 div.slide-read-more-vertical a{right:5px;}
div.views-slideshow-ddblock-cycle-vsd-upright60 div.slide-read-more a:hover{background:url(../images/readmore-hover.png) no-repeat !important;text-decoration:underline;}
div.views-slideshow-ddblock-cycle-vsd-upright60 div.slide-read-more-horizontal a:hover{right:-17px;}
div.views-slideshow-ddblock-cycle-vsd-upright60 div.slide-read-more-vertical a:hover{right:5px;}

/* scrollable pager */
/* Root element for the scrollable. When scrolling occurs this element stays still. */
div.views-slideshow-ddblock-cycle-vsd-upright60 div.vsd-scrollable-pager {
  /* required settings */
  height:40px;
  overflow:hidden;
  position:relative;
  width: 380px;
  /* this makes it possible to add next button beside scrollable */
  float:left;
  /* custom decorations*/
	/*background-color:#ccc;*/
	border:1px solid #999;
	padding:5px 0;
}
div.views-slideshow-ddblock-cycle-vsd-upright60 div.vsd-scrollable-pager-inner{
}

/*root element for scrollable items. Must be absolutely positioned
    and it should have a super large width to accomodate scrollable items.
    it's enough that you set width and height for the root element and
    not for this element.
*/
div.views-slideshow-ddblock-cycle-vsd-upright60 div.vsd-scrollable-pager div.items {
  clear:both;
  position:absolute;
  /* this cannot be too large */
  width:20000em;
  /* decoration */
	margin-left:7px;
}

/*a single item. must be floated on horizontal scrolling
    typically this element is the one that *you* will style
    the most.
*/
div.views-slideshow-ddblock-cycle-vsd-upright60 div.vsd-scrollable-pager div.items div {
    float:left;
}

/* you may want to setup some decorations to active item */
div.views-slideshow-ddblock-cycle-vsd-upright60 div.vsd-scrollable-pager div.items div.active {
}

div.views-slideshow-ddblock-cycle-vsd-upright60 div.vsd-scrollable-pager div.items div a{
  background-color:#ccc;
	border:1px solid #999;
  color:#000;
  display:block;
	font-size:20px;
	font-family: 'bitstream vera sans';
  height:40px;
  line-height:36px;
  margin-right:10px;
  opacity:0.7;
  text-align:center;
  text-decoration:none !important;
  width:63px;
}
div.views-slideshow-ddblock-cycle-vsd-upright60 div.vsd-scrollable-pager div.items div a.activeSlide{border:1px solid #666;color:#fff;opacity:1;}
div.views-slideshow-ddblock-cycle-vsd-upright60 div.vsd-scrollable-pager div.items div a:hover{border:1px solid #666;
color:#f00;opacity:1;}
div.views-slideshow-ddblock-cycle-vsd-upright60 div.vsd-scrollable-pager div.items div a:focus{outline:none;}
div.views-slideshow-ddblock-cycle-vsd-upright60 div.vsd-scrollable-pager div.items img{border:none;height:38px;margin:0 !important;padding:0 !important;vertical-align:middle;width:61px;}

/* prev, next, prevPage and nextPage buttons */
div.views-slideshow-ddblock-cycle-vsd-upright60 div.prev,
div.views-slideshow-ddblock-cycle-vsd-upright60 div.next,
div.views-slideshow-ddblock-cycle-vsd-upright60 div.prevPage,
div.views-slideshow-ddblock-cycle-vsd-upright60 div.nextPage {
	display:block;
	width:18px;
	height:18px;
	background:url(arrow/left.png) no-repeat;
	float:left;
	margin:20px 10px;
	cursor:pointer;
	font-size:1px;
}

/* mouseover state */
div.views-slideshow-ddblock-cycle-vsd-upright60 div.prev:hover,
div.views-slideshow-ddblock-cycle-vsd-upright60 div.next:hover,
div.views-slideshow-ddblock-cycle-vsd-upright60 div.prevPage:hover,
div.views-slideshow-ddblock-cycle-vsd-upright60 div.nextPage:hover {
	background-position:0px -18px;
}

/* disabled navigational button */
div.views-slideshow-ddblock-cycle-vsd-upright60 div.disabled {
	visibility:hidden !important;
}

/* next button uses another background image */
div.views-slideshow-ddblock-cycle-vsd-upright60 div.next,
div.views-slideshow-ddblock-cycle-vsd-upright60 div.nextPage {
	background-image:url(arrow/right.png);
	clear:right;
}

/*********** navigator ***********/
/* position and dimensions of the navigator */
div.navi {margin-left:228px;width:200px;height:20px;}
/* items inside navigator */
div.navi a {width:8px;height:8px;float:left;margin:3px;background:url(arrow/navigator.png) 0 0 no-repeat;display:block;font-size:1px;
}
/* mouseover state */
div.navi a:hover {background-position:0 -8px;}

/* active state (current page state) */
div.navi a.active {
	background-position:0 -16px;
}

/*previous next pager */
div.views-slideshow-ddblock-cycle-vsd-upright60 div.prev-next-pager{background:#000;clear:both;display:block;height:17px;left:0;position:relative;width:475px;}
div.views-slideshow-ddblock-cycle-vsd-upright60 div.prev-next-pager a{background:#000;border:none;color:#fff;display:block;float:left;font-family:Tahoma,Arial,sans-serif;font-size:.8em;font-weight:bold;height:13px;line-height:13px;margin:0 2px 0 0;text-align:center;text-decoration:none !important;width:90px;}
div.views-slideshow-ddblock-cycle-vsd-upright60 div.prev-next-pager a.prev{left:0;position:absolute;}
div.views-slideshow-ddblock-cycle-vsd-upright60 div.prev-next-pager a.count{left:178px;position:absolute;}
div.views-slideshow-ddblock-cycle-vsd-upright60 div.prev-next-pager a.next{position:absolute;right:0;}
div.views-slideshow-ddblock-cycle-vsd-upright60 div.prev-next-pager a.activeSlide{background:#000;}
div.views-slideshow-ddblock-cycle-vsd-upright60 div.prev-next-pager a:hover{background:#000 !important;outline:none;}
div.views-slideshow-ddblock-cycle-vsd-upright60 div.prev-next-pager a:focus{outline:none;}

/*previous next pager on the slide*/
div.views-slideshow-ddblock-cycle-vsd-upright60 div.views-slideshow-ddblock-prev-next-slide {left:0;position: absolute;top:110px;width:475px;z-index: 50;}
div.views-slideshow-ddblock-cycle-vsd-upright60 div.views-slideshow-ddblock-prev-next-slide a {color:#fff;display:block;height:50px;margin:0;padding:0;width:50px;}
div.views-slideshow-ddblock-cycle-vsd-upright60 div.views-slideshow-ddblock-prev-next-slide a:focus{outline:none;}
div.views-slideshow-ddblock-cycle-vsd-upright60 div.next-container{float: right;height: 50px;opacity: 0.7;position: relative;width: 50px;}
div.views-slideshow-ddblock-cycle-vsd-upright60 div.prev-container{float: left;height: 50px;opacity: 0.7;position: relative;width: 50px;}
div.views-slideshow-ddblock-cycle-vsd-upright60 div.views-slideshow-ddblock-prev-next-slide a.next{background: url(../images/next.png) no-repeat;margin-left:-10px;}
div.views-slideshow-ddblock-cycle-vsd-upright60 div.views-slideshow-ddblock-prev-next-slide a.prev{background: url(../images/prev.png) no-repeat;margin-left:10px;}

div.views-slideshow-ddblock-cycle-vsd-upright60 div.spacer-vertical{display:block;float:left;height:50px;width:5px;background-color:#ccc;}
div.views-slideshow-ddblock-cycle-vsd-upright60 div.spacer-horizontal{clear:both;height:5px;}

second version:

/* $Id: views-slideshow-ddblock-cycle-fever.css,v 1.1 2010/08/05 07:52:20 antsin Exp $ */

/*
+----------------------------------------------------------------+
|   Fever for Dupal 6.x - Version 1.0                            |
|   Copyright (C) 2010 Antsin.com All Rights Reserved.           |
|   @license - GNU GENERAL PUBLIC LICENSE                        |
|----------------------------------------------------------------|
|   Theme Name: Fever                                            |
|   Description: Fever by Antsin                                 |
|   Author: Antsin.com                                           |
|   Date: 5th August 2010                                        |
|   Website: http://www.antsin.com/                              |
|----------------------------------------------------------------+
*/ 

div.views-slideshow-ddblock-cycle-fever div.container {
  width: 100%;
}
div.views-slideshow-ddblock-cycle-fever div.container-inner {
  height: 300px;
  position: relative;
  z-index: 0;
}

div.views-slideshow-ddblock-cycle-fever div.slider {
  float:left;
  width:658px;
  border: 1px solid #fff;
}

div.views-slideshow-ddblock-cycle-fever div.slider-inner {
  background: transparent url("../images/transparent_bg.png") repeat scroll 0 0!important;
  height: 300px;
  overflow: hidden;
  position: relative;
  visibility: hidden;
}

div.views-slideshow-ddblock-cycle-fever div.slide {
  display: none;
  height: 100%;
  left: 0;
  position: absolute;
  top: 0;
}

div.views-slideshow-ddblock-cycle-fever div.slide-inner img {
  width: 660px;
  height: 300px;
}

div.views-slideshow-ddblock-cycle-fever div.slide-text {
  background: transparent url("../images/transparent_bg.png") repeat scroll 0 0!important;
  position: absolute;
}

div.views-slideshow-ddblock-cycle-fever div.slide-text-horizontal {
  left: 0;
  bottom: 0;
  height: 80px;
  width: 660px;
}

div.views-slideshow-ddblock-cycle-fever div.slide-text-inner {
  color: white;
  padding: 10px;
}

div.views-slideshow-ddblock-cycle-fever div.slide-body-horizontal {
  width: 640px;
}

div.views-slideshow-ddblock-cycle-fever div.slide-body-inner p {
  margin: 0;
  padding: 0;
}

div.views-slideshow-ddblock-cycle-fever div.vsd-scrollable-pager {
  height: 260px;
  width: 275px;
  overflow: hidden;
  position: relative;
  float: left;
  padding: 40px 0 0 15px;
}

div.views-slideshow-ddblock-cycle-fever span.slide-title {
  font-size: 100%;
  font-weight: bold;
}

div.views-slideshow-ddblock-cycle-fever div.vsd-scrollable-pager div.items div {
  height: 68px;
}

div.views-slideshow-ddblock-cycle-fever div.vsd-scrollable-pager div.items div a {
  color: #787878;
  display: block;
  height: 58px;
  text-decoration: none !important;
}

div.views-slideshow-ddblock-cycle-fever div.vsd-scrollable-pager div.items div a.activeSlide,
div.views-slideshow-ddblock-cycle-fever div.vsd-scrollable-pager div.items div a:hover {
  color: #222222;
}

div.views-slideshow-ddblock-cycle-fever div.vsd-scrollable-pager div.items div a.activeSlide .slide-title,
div.views-slideshow-ddblock-cycle-fever div.vsd-scrollable-pager div.items div a:hover .slide-title {
  color: #222222;  
}

div.views-slideshow-ddblock-cycle-fever div.vsd-scrollable-pager div.items div a.activeSlide img,
div.views-slideshow-ddblock-cycle-fever div.vsd-scrollable-pager div.items div a:hover img {
  background: #212121;
  border: 1px solid #2E2E2E;
}

div.views-slideshow-ddblock-cycle-fever div.vsd-scrollable-pager div.items div a:focus {
  outline: none;
}

div.views-slideshow-ddblock-cycle-fever div.vsd-scrollable-pager div.items img {
  float: left;
  border: none;
  height: 45px;
  padding: 5px;
  margin-right: 10px;
  background: #BBBBBB;
  border: 1px solid #fff;
  vertical-align: middle;
  width: 99px;
}

/*previous next pager on the slide*/
div.views-slideshow-ddblock-cycle-fever div.views-slideshow-ddblock-prev-next-slide a  {
  color: #fff;
  display: block;
  height: 28px;
  margin: 0;
  padding: 0;
  width: 28px;
}

div.views-slideshow-ddblock-cycle-fever div.views-slideshow-ddblock-prev-next-slide a:focus {
  outline: none;
}

div.views-slideshow-ddblock-cycle-fever div.next-container {
  top: 2px;
  right: 28px;
  width: 28px;
  height: 28px;
  position: absolute;
}

div.views-slideshow-ddblock-cycle-fever div.prev-container {
  top: 2px;
  right: -1px;
  width: 29px;
  height: 28px;
  position: absolute;
}

div.views-slideshow-ddblock-cycle-fever div.views-slideshow-ddblock-prev-next-slide a.next {
  background: url("../images/button_next_previous.png") no-repeat top left;
}

div.views-slideshow-ddblock-cycle-fever div.views-slideshow-ddblock-prev-next-slide a.prev {
  background: url("../images/button_next_previous.png") no-repeat -28px top;
}

div.views-slideshow-ddblock-cycle-fever div.views-slideshow-ddblock-prev-next-slide a.next:hover {
  background: url("../images/button_next_previous.png") no-repeat bottom left;
}

div.views-slideshow-ddblock-cycle-fever div.views-slideshow-ddblock-prev-next-slide a.prev:hover {
  background: url("../images/button_next_previous.png") no-repeat -28px bottom;
}

third version (scrollable pager is not used anymore)

/* $Id: fever.css,v 1.1 2010/11/27 07:17:27 antsin Exp $ */

/*
+----------------------------------------------------------------+
|   Fever for Dupal 6.x - Version 1.0                            |
|   Copyright (C) 2010 Antsin.com All Rights Reserved.           |
|   @license - GNU GENERAL PUBLIC LICENSE                        |
|----------------------------------------------------------------|
|   Theme Name: Fever                                            |
|   Description: Fever by Antsin                                 |
|   Author: Antsin.com                                           |
|   Date: 5th August 2010                                        |
|   Website: http://www.antsin.com/                              |
|----------------------------------------------------------------+
*/ 

div.showcase-container {
  width: 100%;
  height: 300px;
  position: relative;
  z-index: 0;
}

div.showcase-container div.slider {
  float:left;
  width:658px;
  height: 300px;
  overflow: hidden;
  position: relative;
  visibility: hidden;
  border: 1px solid #fff;
}

div.showcase-container div.slide {
  display: none;
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
}

div.showcase-container div.slide img {
  width: 660px;
  height: 300px;
}

div.showcase-container div.slide-text {
  position: absolute;
  left: 0;
  bottom: 0;
  height: 60px;
  width: 640px;
  color: #fff;
  padding: 10px;
  background: transparent url("../images/transparent_bg.png") repeat scroll 0 0!important;
}

div.showcase-container div.slide-text p {
  margin: 0;
  padding: 0;
}

/** showcase-pager **/
div.showcase-pager {
  height: 260px;
  width: 275px;
  overflow: hidden;
  position: relative;
  float: left;
  padding: 40px 0 0 15px;
}

div.showcase-pager span.slide-title {
  font-size: 100%;
  font-weight: bold;
}

div.showcase-pager div.custom-pager-item {
  height: 68px;
}

div.showcase-pager div.custom-pager-item a {
  color: #787878;
  display: block;
  height: 58px;
  outline: none;
  text-decoration: none !important;
}

div.showcase-pager div.custom-pager-item a.activeSlide,
div.showcase-pager div.custom-pager-item a:hover,
div.showcase-pager div.custom-pager-item a.activeSlide .slide-title,
div.showcase-pager div.custom-pager-item a:hover .slide-title {
  color: #222222;
}

div.showcase-pager div.custom-pager-item img {
  float: left;
  border: none;
  height: 45px;
  padding: 5px;
  margin-right: 10px;
  background: #BBBBBB;
  border: 1px solid #fff;
  vertical-align: middle;
  width: 99px;
}

div.showcase-pager div.custom-pager-item a.activeSlide img,
div.showcase-pager div.custom-pager-item a:hover img {
  background: #212121;
  border: 1px solid #2E2E2E;
}

/** showcase-navigator **/
div.showcase-navigator a {
  color: #fff;
  display: block;
  height: 28px;
  margin: 0;
  padding: 0;
  outline: none;
  width: 28px;
}

div.showcase-navigator a.next {
  top: 2px;
  right: 28px;
  width: 28px;
  height: 28px;
  position: absolute;
  background: url("../images/button_next_previous.png") no-repeat top left;
}

div.showcase-navigator a.prev {
  top: 2px;
  right: -1px;
  width: 29px;
  height: 28px;
  position: absolute;
  background: url("../images/button_next_previous.png") no-repeat -28px top;
}

div.showcase-navigator a.next:hover {
  background: url("../images/button_next_previous.png") no-repeat bottom left;
}

div.showcase-navigator a.prev:hover {
  background: url("../images/button_next_previous.png") no-repeat -28px bottom;
}
ppblaauw’s picture

To make it complete also added the part in the template.php file for the slideshow:

Original: (see now I have to make it GPL compliant and add a good copyright line)

<?/*!
 * Views Slideshow Dynamic display block preprocess functions
 * Author P.P. Blaauw
 * Version 1.3 (07-SEP-2009)
 * Licenced under GPL license
 * http://www.gnu.org/licenses/gpl.html
 */

 /**
 * Override or insert variables into the views_slideshow_ddblock_cycle_block_content templates.
 *   Used to convert variables from view_fields to slider_items template variables
 *
 * @param $vars
 *   An array of variables to pass to the theme template.
 * 
 */
function [***THEME_NAME***]_preprocess_views_slideshow_ddblock(&$vars) {
  drupal_rebuild_theme_registry();
  $settings = $vars['views_slideshow_ddblock_slider_settings'];
  // for showing debug info
  views_slideshow_ddblock_show_content_debug_info($vars);
  if ($settings['output_type'] == 'view_fields') {
    if ($settings['view_name'] == 'news_items' && $settings['view_display_id'] == 'block_1') {
      if (!empty($vars['views_slideshow_ddblock_content'])) {
        foreach ($vars['views_slideshow_ddblock_content'] as $key1 => $result) {
          // add slide image variable
          $slider_items[$key1]['slide_image'] = views_slideshow_ddblock_add_image(
            $vars,
            // determines which imagcache preset to use, leave to 'slider_item_image'
            'slider_item_image',
            // name of CCK generated image field, change if needed.
            $result->node_data_field_pager_item_text_field_image_fid,
            // alt attribute of image or NULL
            $result->node_title,
            // cck content type for default image or NULL, change if needed
            NULL, //'ddblock_news_item',
            // cck fieldname for default image or NULL, change if needed
            NULL, //'field_image',
            // to link the image to or NULL, change if needed
            NULL // base_path() . 'node/' . $result->nid
          );
          // add slide_text variable
          if (isset($result->node_data_field_pager_item_text_field_slide_text_value)) {
            $slider_items[$key1]['slide_text'] =  check_markup($result->node_data_field_pager_item_text_field_slide_text_value);
          }
          // add slide_title variable
          if (isset($result->node_title)) {
            $slider_items[$key1]['slide_title'] =  check_plain($result->node_title);
          }
          // add slide_read_more variable and slide_node variable
          if (isset($result->nid)) {
            $slider_items[$key1]['slide_read_more'] = '<a href="' . base_path() . 'node/' .  $result->nid . '">' . t('Read more') . '</a>';
            $slider_items[$key1]['slide_node'] = base_path() . 'node/' . $result->nid;
          }
        }
      }
    }    
    $vars['views_slideshow_ddblock_slider_items'] = $slider_items;
  }
}  
/**
 * Override or insert variables into the views_slideshow_ddblock_cycle_pager_content templates.
 *   Used to convert variables from view_fields  to pager_items template variables
 *  Only used for custom pager items
 *
 * @param $vars
 *   An array of variables to pass to the theme template.
 *
 */
function [***THEME_NAME***]_preprocess_views_slideshow_ddblock_pager_content(&$vars) {
  $settings = $vars['views_slideshow_ddblock_pager_settings'];
  // for showing debug info
  views_slideshow_ddblock_show_pager_debug_info($vars);
  if (($settings['output_type'] == 'view_fields') && 
      ($settings['pager'] == 'number-pager' || 
      $settings['pager'] == 'custom-pager' ||
      $settings['pager'] == 'scrollable-pager' )) {
    if ($settings['view_name'] == 'news_items' && $settings['view_display_id'] == 'block_1') {
      if (!empty($vars['views_slideshow_ddblock_content'])) {
        foreach ($vars['views_slideshow_ddblock_content'] as $key1 => $result) {
          // add pager_item_image variable
          $pager_items[$key1]['image'] = views_slideshow_ddblock_add_image(
            $vars,
            // determines which imagcache preset to use, leave to 'pager_item_image'
            'pager_item_image',
            // name of CCK generated image field, change if needed.
            $result->node_data_field_pager_item_text_field_image_fid,
            // alt attribute of image or NULL
            $result->node_data_field_pager_item_text_field_pager_item_text_value,
            // cck content type for default image or NULL, change if needed
            NULL, //'ddblock_news_item',
            // cck fieldname for default image or NULL, change if needed
            NULL, //'field_image',
            // to link the image to or NULL, change if needed
            NULL // base_path() . 'node/' . $result->nid
          );
          // add pager_item _text variable
          if (isset($result->node_data_field_pager_item_text_field_pager_item_text_value)) {
            $pager_items[$key1]['text'] =  check_plain($result->node_data_field_pager_item_text_field_pager_item_text_value);
          }
        }
      }
    }
    $vars['views_slideshow_ddblock_pager_items'] = $pager_items;
  }    
}

second version: (statement removed)


/**
 * Override or insert variables into the views_slideshow_ddblock_cycle_block_content templates.
 *   Used to convert variables from view_fields to slider_items template variables
 *
 * @param $vars
 *   An array of variables to pass to the theme template.
 * 
 */
function fever_preprocess_views_slideshow_ddblock(&$vars) {
  drupal_rebuild_theme_registry();
  $settings = $vars['views_slideshow_ddblock_slider_settings'];
  // for showing debug info
  views_slideshow_ddblock_show_content_debug_info($vars);
  if ($settings['output_type'] == 'view_fields') {
    if ($settings['view_name'] == 'showcase_with_image' && $settings['view_display_id'] == 'block_1') {
      if (!empty($vars['views_slideshow_ddblock_content'])) {
        foreach ($vars['views_slideshow_ddblock_content'] as $key1 => $result) {
          // add slide image variable
          $slider_items[$key1]['slide_image'] = views_slideshow_ddblock_add_image(
            $vars,
            // determines which imagcache preset to use, leave to 'slider_item_image'
            'slider_item_image',
            // name of CCK generated image field, change if needed.
            $result->node_data_field_pager_item_text_field_image_fid,
            // alt attribute of image or NULL
            $result->node_title,
            // cck content type for default image or NULL, change if needed
            NULL, //'ddblock_news_item',
            // cck fieldname for default image or NULL, change if needed
            NULL, //'field_image',
            // to link the image to or NULL, change if needed
            NULL // base_path() . 'node/' . $result->nid
          );
          // add slide_text variable
          if (isset($result->node_data_field_pager_item_text_field_slide_text_value)) {
            $slider_items[$key1]['slide_text'] =  check_markup($result->node_data_field_pager_item_text_field_slide_text_value);
          }
          // add slide_title variable
          if (isset($result->node_title)) {
            $slider_items[$key1]['slide_title'] =  check_plain($result->node_title);
          }
          // add slide_read_more variable and slide_node variable
          if (isset($result->nid)) {
            $slider_items[$key1]['slide_read_more'] = '<a href="' . base_path() . 'node/' .  $result->nid . '">' . t('more &raquo;') . '</a>';
            $slider_items[$key1]['slide_node'] = base_path() . 'node/' . $result->nid;
          }
        }
      }
    }    
    $vars['views_slideshow_ddblock_slider_items'] = $slider_items;
  }
}

/**
 * Override or insert variables into the views_slideshow_ddblock_cycle_pager_content templates.
 *   Used to convert variables from view_fields  to pager_items template variables
 *  Only used for custom pager items
 *
 * @param $vars
 *   An array of variables to pass to the theme template.
 *
 */
function fever_preprocess_views_slideshow_ddblock_pager_content(&$vars) {
  $settings = $vars['views_slideshow_ddblock_pager_settings'];
  // for showing debug info
  views_slideshow_ddblock_show_pager_debug_info($vars);
  if (($settings['output_type'] == 'view_fields') && 
      ($settings['pager'] == 'number-pager' || 
      $settings['pager'] == 'custom-pager' ||
      $settings['pager'] == 'scrollable-pager' )) {
    if ($settings['view_name'] == 'showcase_with_image' && $settings['view_display_id'] == 'block_1') {
      if (!empty($vars['views_slideshow_ddblock_content'])) {
        foreach ($vars['views_slideshow_ddblock_content'] as $key1 => $result) {
          // add pager_item_image variable
          $pager_items[$key1]['image'] = views_slideshow_ddblock_add_image(
            $vars,
            // determines which imagcache preset to use, leave to 'pager_item_image'
            'pager_item_image',
            // name of CCK generated image field, change if needed.
            $result->node_data_field_pager_item_text_field_image_fid,
            // alt attribute of image or NULL
            $result->node_data_field_pager_item_text_field_pager_item_text_value,
            // cck content type for default image or NULL, change if needed
            NULL, //'ddblock_news_item',
            // cck fieldname for default image or NULL, change if needed
            NULL, //'field_image',
            // to link the image to or NULL, change if needed
            NULL // base_path() . 'node/' . $result->nid
          );
          // add pager_item _text variable
          if (isset($result->node_data_field_pager_item_text_field_pager_item_text_value)) {
            $pager_items[$key1]['text'] =  check_plain($result->node_data_field_pager_item_text_field_pager_item_text_value);
          }
		  // add slide_title variable
          if (isset($result->node_title)) {
            $pager_items[$key1]['slide_title'] =  check_plain($result->node_title);
          }
        }
      }
    }
    $vars['views_slideshow_ddblock_pager_items'] = $pager_items;
  }    
}

Third version: (statement removed)


/**
 * Override or insert variables into the views_slideshow_ddblock_cycle_block_content templates.
 *   Used to convert variables from view_fields to slider_items template variables
 *
 * @param $vars
 *   An array of variables to pass to the theme template.
 * 
 */
function fever_preprocess_views_slideshow_ddblock(&$vars) {
  drupal_rebuild_theme_registry();
  $settings = $vars['views_slideshow_ddblock_slider_settings'];
  // for showing debug info
  views_slideshow_ddblock_show_content_debug_info($vars);
  if ($settings['output_type'] == 'view_fields') {
    if ($settings['view_name'] == 'showcase_with_image' && $settings['view_display_id'] == 'block_1') {
      if (!empty($vars['views_slideshow_ddblock_content'])) {
        foreach ($vars['views_slideshow_ddblock_content'] as $key1 => $result) {
          // add slide image variable
          $slider_items[$key1]['slide_image'] = views_slideshow_ddblock_add_image(
            $vars,
            // determines which imagcache preset to use, leave to 'slider_item_image'
            'slider_item_image',
            // name of CCK generated image field, change if needed.
            $result->node_data_field_pager_item_text_field_image_fid,
            // alt attribute of image or NULL
            $result->node_title,
            // cck content type for default image or NULL, change if needed
            NULL, //'ddblock_news_item',
            // cck fieldname for default image or NULL, change if needed
            NULL, //'field_image',
            // to link the image to or NULL, change if needed
            NULL // base_path() . 'node/' . $result->nid
          );
          // add slide_text variable
          if (isset($result->node_data_field_pager_item_text_field_slide_text_value)) {
            $slider_items[$key1]['slide_text'] =  check_markup($result->node_data_field_pager_item_text_field_slide_text_value);
          }
          // add slide_title variable
          if (isset($result->node_title)) {
            $slider_items[$key1]['slide_title'] =  check_plain($result->node_title);
          }
          // add slide_read_more variable and slide_node variable
          if (isset($result->nid)) {
            $slider_items[$key1]['slide_read_more'] = '<a href="' . base_path() . 'node/' .  $result->nid . '">' . t('more &raquo;') . '</a>';
            $slider_items[$key1]['slide_node'] = base_path() . 'node/' . $result->nid;
          }
        }
      }
    }    
    $vars['views_slideshow_ddblock_slider_items'] = $slider_items;
  }
}

/**
 * Override or insert variables into the views_slideshow_ddblock_cycle_pager_content templates.
 *   Used to convert variables from view_fields  to pager_items template variables
 *  Only used for custom pager items
 *
 * @param $vars
 *   An array of variables to pass to the theme template.
 *
 */
function fever_preprocess_views_slideshow_ddblock_pager_content(&$vars) {
  $settings = $vars['views_slideshow_ddblock_pager_settings'];
  // for showing debug info
  views_slideshow_ddblock_show_pager_debug_info($vars);
  if (($settings['output_type'] == 'view_fields') && 
      ($settings['pager'] == 'number-pager' || 
      $settings['pager'] == 'custom-pager' ||
      $settings['pager'] == 'scrollable-pager' )) {
    if ($settings['view_name'] == 'showcase_with_image' && $settings['view_display_id'] == 'block_1') {
      if (!empty($vars['views_slideshow_ddblock_content'])) {
        foreach ($vars['views_slideshow_ddblock_content'] as $key1 => $result) {
          // add pager_item_image variable
          $pager_items[$key1]['image'] = views_slideshow_ddblock_add_image(
            $vars,
            // determines which imagcache preset to use, leave to 'pager_item_image'
            'pager_item_image',
            // name of CCK generated image field, change if needed.
            $result->node_data_field_pager_item_text_field_image_fid,
            // alt attribute of image or NULL
            $result->node_data_field_pager_item_text_field_pager_item_text_value,
            // cck content type for default image or NULL, change if needed
            NULL, //'ddblock_news_item',
            // cck fieldname for default image or NULL, change if needed
            NULL, //'field_image',
            // to link the image to or NULL, change if needed
            NULL // base_path() . 'node/' . $result->nid
          );
          // add pager_item _text variable
          if (isset($result->node_data_field_pager_item_text_field_pager_item_text_value)) {
            $pager_items[$key1]['text'] =  check_plain($result->node_data_field_pager_item_text_field_pager_item_text_value);
          }
		  // add slide_title variable
          if (isset($result->node_title)) {
            $pager_items[$key1]['slide_title'] =  check_plain($result->node_title);
          }
        }
      }
    }
    $vars['views_slideshow_ddblock_pager_items'] = $pager_items;
  }    
}
antsin’s picture

Don't want to start a war of words here. But I said

Simply because ddblock author didn't even give any users a chance to create something of their own.

is absolute truth. By using hard coded variable & css class of ddblock and you call it copying then how can someone to

create something of your own?

The way you tell user to create custom theme of them self, basically you are saying not matter how much you worked & custom the theme it is still going to be my work and not yours and this is my big problem. I don't understand why this is a big problem for you either. In my opinion you are trying to put your name on everyone who ever worked on ddblock. What is spirit of GPL in that?

ppblaauw’s picture

Title: Fever theme - GPL Violation » Fever, Blogbuzz theme - GPL Violation

It is totally "in the spirit of" GPL, that users can adjust GPL code, but they have to preserve the copyright notices.
You can add you own copyright statement.

You can preserve copy right notices e.g. as follows:

/*
* Copyright (C) 2010 Antsin.com All Rights Reserved.
* @license - GNU GENERAL PUBLIC LICENSE
*
* This file incorporates work covered by the following copyright and
* permission notice:
*
* Dynamic display block module template: vsd-upright60 - content template
* Copyright (c) 2008 - 2009 P. Blaauw All rights reserved.
* Version 1.1 (01-SEP-2009)
* Licenced under GPL license
* http://www.gnu.org/licenses/gpl.html
*/

Clearly advise from drupal.org maintainers is required in this case how to handle this.

Changed issue title.

antsin’s picture

Well now it start to make a little bit sense to me and all future ddblock users. I don't agree with new or old title. It is misleading. I suggest change it to "GPL Suggestion" Or "Advice for GPL statement". I will update those theme files again with copy right info you suggested if we agree on the title. Then no maintainers needed to save all our times.

ppblaauw’s picture

Title: Fever, Blogbuzz theme - GPL Violation » Advice for GPL statement

Changed title to Advice for GPL statement since antsin has agreed to add the original copyright statements in his themes.

antsin’s picture

The change will be made within two weeks. Thanks all

coderintherye’s picture

Just wanted to add here that I respect how you two handled this respectfully and came to an agreeable resolution.

Drupal.org really needs more documentation on Licensing.

ppblaauw’s picture

Due to the update on this topic I had a look at the fever theme.

To Antsin:

I see that two file have the exact copyright example added like I gave.
Maybe the example brought you on a wrong idea that this is enough just to copy it.

1.) You need to add the original copyright to all 4 files mentioned above:

2.) You need to change the copyright statement to make it GPL compliant.

Here again the points I send you earlier by email (24-NOV-2010):

You can not claim copyright on work of others which is already copyrighted under GPL.

GPL is a copyright license.

The original author needs to add a copyright notice.
When you change code under GPL, you are not allowed to remove copyright notices.
When you change code under GPL and release it you need to do that as GPL.
When you change code under GPL and release it you need to add a notice what you changed to protect the original copyright holder.
If you adjust code under GPL you can claim copyright for your additional code by adding a copyright notice and explaining for which part you claim copyright . (this is optional though for changed code, even without your copyright notice changes will fall under your copyright)

Hope this clears up what part of GPL is violated here.

Hope you understand, add my copyright notices and remove your copyright claims from my copyrighted code.

This is the copyright statements I find in one of your commercial themes:

/* $Id$ */

/*
+----------------------------------------------------------------+
|   iPlay for Dupal 6.x - Version 1.0                            |
|   Copyright (C) 2010 Antsin.com All Rights Reserved.           |
|   @license - Copyrighted Commercial Software                   |
|----------------------------------------------------------------|
|   Theme Name: iPlay                                            |
|   Description: iPlay by Antsin                                 |
|   Author: Antsin.com                                           |
|   Date: 1st December 2010                                      |
|   Website: http://www.antsin.com/                              |
|----------------------------------------------------------------+
|   This file may not be redistributed in whole or               |
|   significant part.                                            |
+----------------------------------------------------------------+
*/ 

div.showcase-container {
  height: 300px;
  width: 660px;
  position: relative;
  z-index: 0;
}

div.showcase-container div.slider {
  float: left;
  width: 660px;
  height: 303px;
  overflow: hidden;
  position: relative;
  visibility: hidden;
}

div.showcase-container div.slide {
  position: absolute;
  display: none;
  top: 0;
  left: 0;
  height: 100%;
}

div.showcase-container div.slide img {
  height: 303px;
  margin: 0 !important;
  padding: 0 !important;
  width: 660px;
}

div.showcase-container div.slide-text {
  position: absolute;
  top: 100px;
  left: 30px;
  width: 360px;
  height: 100px;
  background: transparent url("../images/transparent_bg.png") repeat scroll 0 0!important;
}

div.showcase-container div.slide-text.slide-text-top {
  top: 30px;
  left: 30px;
}

div.showcase-container div.slide-text.slide-text-bottom {
  top: 100px;
  left: 30px;
}

div.showcase-container div.slide-text-inner {
  color: #fff;
  padding: 10px;
}

/** pager **/
div.showcase-container #pager  {  
  position: absolute;  
  bottom: -3px;  
  left: 0;  
  z-index: 99;
  background: url("../images/bg_pager.png") repeat-x left top;
}

div.showcase-container div.scrollable-pager  {  
  overflow: hidden;  
  position: relative;  
  width: 660px;
  height: 70px;
}

div.showcase-container div.scrollable-pager div.items {  
  clear: both;  
  position: absolute;  
  width: 20000em;  
}

div.showcase-container div.scrollable-pager div.items div {  
  float: left;
  background: url("../images/divider.png") no-repeat right 1px;
}

div.showcase-container div.scrollable-pager div.items div a {  
  display: block;  
  height: 50px;  
  width: 200px;
  color: #fff;
  padding: 10px;  
  outline: none;
}

div.showcase-container div.scrollable-pager div.items div .pager-text {
  color: #888;
}

div.showcase-container div.scrollable-pager div.items div a:hover .pager-text,
div.showcase-container div.scrollable-pager div.items div a.activeSlide .pager-text {
  color: #fff;
}

div.showcase-container div.scrollable-pager div.items span.pager-text {  
  display: block;  
}

div.showcase-container div.scrollable-pager div.items img {
  float: left;
  width: 90px;
  height: 45px;
  margin-right: 10px;
  border: 3px solid #4C4C4C;
  vertical-align: middle;
}

/** prev & next **/
div.showcase-container div.prev {
  position: absolute;
  left: 261px;
  bottom: -26px;
  display: block;
  cursor: pointer;  
  width: 14px;  
  height: 15px;  
}

div.showcase-container div.next {
  position: absolute;
  left: 385px;
  bottom: -26px;
  display: block;
  cursor: pointer;  
  width: 14px;  
  height: 15px;  
}

div.showcase-container div.prev.disabled {
  background-position: left -30px;
}

div.showcase-container div.next.disabled {
  background-position: left -45px;
}

/** dot pager **/
div.navi {
  position: absolute;
  bottom: -40px;
  left: 275px;
  width: 110px;
  height: 35px;
  text-align: center;
}

div.navi a {
  display: inline-block;
  width: 27px;
  height: 27px;
}

div.navi a:hover, div.navi a.active {
  background-position: left bottom;
}

Hopefully you will pay some attention to reading the GPL license.

To the drupal.org webmasters

Please drupal.org webmasters, can you give advise about the GPL license and my complains.
If this issue is not clear the GPL license would be void.

ppblaauw’s picture

Probably this falls under point 16 of the faq:

If you have a question about your specific case, please consult with a copyright attorney in your area. We cannot and will not offer legal advice.

-

I know for the majority of the developers and users of drupal modules it is clear that you can not remove copyright statements from the original copyright holder of code licensed under GPL and add your own when you make adjustments and redistribute the code.

Maybe this could be added to the FAQ at http://drupal.org/licensing/faq.

tvn’s picture

Status: Active » Closed (won't fix)

Closing old issues. Please re-open if needed.

avpaderno’s picture

Project: Drupal.org site moderators » Drupal Licensing Working Group
Component: Licensing » Violation
Issue summary: View changes