- PeterMoulding.com
- Author
- Trainer
- Speaker
- Business Coach
- How to write a How To book
- PHP Courses
- Speaking
- Web Architect
- Australia
- Books
- Authors
- Akkana Peck
- Alex Berenson
- Andrew Nugent
- Ben Sanders
- Brock Clarke
- Chris Simms
- David Mercer
- Dianna Mullet
- Don Winslow
- Dori Smith
- Harlan Coben
- Jack McDevitt
- James Wines
- Jerry Yudelson
- John Grisham
- Kevin Mullet
- L. E. Modesitt Jr.
- Laurell K. Hamilton
- Marshall Karp
- Martina Cole
- Michael Marshall Smith
- Michel Roux Jr
- Nadia Sawalha
- Philip Pullman
- Raymond Khoury
- Richard North Patterson
- Robert Masello
- Sally Roth
- Sarah Langan
- Stella Rimington
- Stephen King
- Stephen Leather
- T.C. Boyle
- Tom Negrino
- Tony Hillerman
- Urban Waite
- Val McDermid
- Valerio Massimo Manfredi
- Beginning GIMP
- Beginning Visual C++
- Culturalism
- Fiction
- A Drink Before The War
- A Talent for War
- Bag of Bones
- Blood and Ice
- Burn
- Dark Lady
- Dead Line
- Eclipse
- Empress of Eternity
- Exley
- Flipping Out
- Just One Look
- Nightfall
- Pet Sematary
- Savage Moon
- Skinwalkers
- Starvation Lake
- The Fallen
- The Gardens of the Dead
- The Jump
- The Last Templar
- The Mermaids Singing
- The Midnight Mayor
- The Secret Soldier
- The Summons
- The Terror of Living
- The Testament
- The Tower
- Under the Dome
- Virus
- AJAX and PHP
- Aging with Grace
- Food books
- Green Architecture
- Life Is So Good
- SQL: The Complete Reference
- The Backyard Bird Lover's Ultimate How-to Guide
- The Garden Gurus
- Authors
- Sustainability
- -18 hours left to decide the future of Australia
- Campbells vegetable stock or Massel vegetable stock?
- Carbon Sequestration
- Carbon tax for Australia is a fraud
- Copenhagen will fail
- Cost of living in Australia
- Dick Smith jumps on the population bandwagon
- Dry Run: Preventing the Next Urban Water Crisis
- Energy Saving Lights
- Garlic
- How many people can live in Australia?
- Julia Gillard offers 9.9 billion dollars bribe to Rob Oakeshott
- Laundry detergent
- Petrol or Diesel?
- Reflective foil batts kill
- RoHS
- Sea level to rise 3mm due to climate change
- Solar power
- Spring again in Sydney
- Sustainable fuels
- The CRUD Tax is back
- The people who make building regulations do not own houses
- Water efficiency
- Which insulation is safer, foil or wool?
- Will Australia reduce greenhouse gas emissions?
- Technology
- Android or Blackberry or iPhone or a flip phone?
- Apple versus Google 2011
- Cameras
- Cars
- Colour
- Burgundy
- Colour Blindness
- Colour Names
- Dulux colours
- Pantone colours
- Safe Colours
- Seculine ProDisk Mini colour balance card
- What Causes Colour Blindness?
- Hardware
- Batteries for the Digital Age
- Cables
- Cases
- Computer reliability
- Computrace
- Disks
- Astone ISO Gear 481E
- Best SSD for your notebook computer
- Disk block size
- Hitachi disk HDS722020ALA330
- LaCie USB 2.0 250 GB mobile hard drive design by F.A. Porsche
- SMART disk
- Samsung 2 TB HD204UI quiet low power disk for mass storage
- Seagate and Samsung merge disk business
- Select the right disk for your RAID array
- USB disk speed
- Western Digital WD20EARX 2 GB SATA 3 disk
- How long should computer hardware last?
- Keyboards
- Mainframe
- Memory cards
- Monitors
- Netbooks, notebooks, tablets, and xPads
- Network Attached Storage
- OLED Displays
- PC's are a thing of the past
- Printers
- Quiet
- Samsung Galaxy S
- Speed
- Television
- Tools
- USB
- Worst computer movies
- Xserve is dead. What next?
- Your backup will not work
- iPad or Acer Aspire One?
- IQ
- Its obsolete, throw it out!
- LG Intello Washing Machine
- Lack of a challenge
- NBN spends another $12 billion of our tax money on nothing
- Networks
- 802.11n wireless networking
- D-Link DIR-655 wireless router
- D-Link DWA-160 Xtreme N dual band USB adapter
- D-Link DWA-556 Xtreme N PCI Express desktop adapter
- MIMO
- National Broadband Network
- Netgear wireless modem router DGND3300 with 300 Mbps 802.11n
- Refrigerator kills wireless broadband
- Small Wireless Network
- TP-LINK TL-SG10005D 5 port gigabit switch
- TP-Link TL-WR1043N wireless N gigabit router
- Telstra Pre-paid Mobile Wi-Fi
- Where are the router plus proxy server combinations?
- Open Source documentation
- Software
- 7-zip
- Accounting
- Asterisk
- Audacity
- Backup software
- Bloat only in Windows
- CAD
- CDex
- Disk imaging software for copying and backup
- Exact Audio Copy
- Filezilla
- Firefox
- Java
- LibreOffice or OpenOffice?
- Linux
- 1 in 5 servers will ship with Linux
- Android phones outsell iPhone
- Another Move to Linux
- CentOS 5.5 installation on SSD and RAID 5
- Debian
- Debian 5.0.5 AMD64 installation
- Fedora
- Fedora or Ubuntu?
- Gnome or KDE?
- K9copy
- Linux 2.6.38
- Linux Gnome login settings lost
- Linux Mint
- Linux RAID, a rant
- Linux Speed
- Linux Time
- Linux reliability as demonstrated by Ubuntu 10.10
- Linux reliability as demonstrated by Ubuntu 11.4
- Linux still a struggle in 2011
- Linux workstation disk RAID 1
- Linux, NT, Windows, and SETI
- Linux, three years of progress
- London Stock Exchange switches to Linux
- Mandrake Linux 9.2
- The partition is misaligned by 48128 bytes - warning from Linux RAID
- Ubuntu
- How to fix the scroll bars in Ubuntu 11.4 Gnome
- Kubuntu 10.10 alternate installation on desktop with RAID 1
- POWbuntu
- Ubuntu 10.10 after 6 months use
- Ubuntu 10.10 alternate installation
- Ubuntu 10.10 desktop RAID 1
- Ubuntu 10.10 desktop RAID 5
- Ubuntu 10.10 desktop install on a netbook
- Ubuntu 10.10 desktop installation
- Ubuntu 10.10 netbook install on a netbook
- Ubuntu 10.10 server AMD64
- Ubuntu 10.10 upgrade to version 11.4 beta 2
- Ubuntu 10.4
- Ubuntu 11.10
- Ubuntu 11.10 first upgrade
- Ubuntu 11.4 after one month use
- Ubuntu One
- Ubuntu by Microsoft?
- Ubuntu desktop upgrade 10.4 to 10.10 failed because I did not check the media
- Ubuntu strikes again
- Yes, use Linux but not that distribution!
- Nero
- OpenOffice
- OpenOffice is now Apache Office
- Project management
- Scribus
- Software for Windows and Linux
- Time
- Todo applications
- Tomboy notes
- Top text editors
- Version control
- VideoLAN VLC media player
- Visio
- Webmin
- Webmin installation on CentOS for Web development
- Webmin installation on Ubuntu
- What is the most popular open source software today?
- Windows
- Another Windows person goes Linux
- BAD_POOL_CALLER
- Cygwin
- Microsoft Malicious Software Removal Tool cannot find a common virus
- One of the developers of Windows XP is criminally insane
- There are unused icons on your desktop
- W32time
- Which Windows version?
- Windows 7 Home Premium
- Windows XP Stop 0x0000007B during installation
- Windows XP is a disaster
- Windows processes
- XML
- Zip, bzip, gzip, or 7zip?
- configFree
- Technology Succession Planning
- VoIP
- Web Sites
- Drupal
- Do Drupal themes have to use the GPL?
- Drupal 7
- A better search facility for Drupal
- Drupal - performance or flexibility
- Drupal 7 new features
- Drupal 7 ships on January 5
- Drupal 7.4 hits PeterMoulding.com
- Drupal function sequence
- The evolution of a module
- Undefined index: headers in DefaultMailSystem->mail() (line 54 of /modules/system/system.mail.inc).
- Undefined index: to in DefaultMailSystem->mail() (line 83 of /modules/system/system.mail.inc).
- implode(): Invalid arguments passed in DefaultMailSystem->format() (line 23 of /modules/system/system.mail.inc).
- Drupal Code Load Cut
- Drupal How To
- Drupal Modules
- Backup and Migrate
- Browscap
- CKEditor with Drupal WYSIWYG
- Captcha
- Colorbox
- Content Construction Kit
- Content type
- Devel module for Drupal
- Drupal Rules as an automation language
- Drupal Spam add-on module
- IMCE
- IMCE Wysiwyg bridge
- ImageAPI
- Lightbox2
- Node Gallery Access
- Node_Gallery
- Path
- Path redirect
- Pathauto
- Pet
- Search
- Service links
- Session Variable
- Taxonomy
- Token
- Transliteration
- Trigger
- Variable module
- Other modules
- Drupal Training
- Drupal access controls need a major rewrite
- Drupal coding tricks
- Drupal performance
- Drupal themes for the future
- Drupal.org colours
- Import existing data into Drupal
- Multiple Web sites made easy using Drupal multisite and the right start
- drupal_lookup_path()
- Adobe PDF
- Apache
- Apache Mahout
- Audi.com
- Bleet
- CSS Strikes Again
- CSS or xCSS
- Can you believe Facebook or email?
- Content Management Systems
- Databases
- Facebook scam
- Font
- Fonts
- HTML
- Install Apache, MySQL, and PHP 5 in Ubuntu 11.4 using the Ubuntu Software Centre
- Language Codes
- Marketing
- Memcache
- Nginx
- Oscars
- PHP
- SPDY
- Search software
- Techoni.com.au
- Theme themes
- U.S. Patent No. 6,985,875
- Virtual Private Server
- Visible Improvement
- Web 4.0
- Web browser usage
- Web browsers
- Web site development
- Bluefish
- Eclipse and PHP
- Getting a Git client, a story of ancient technology and pain
- HTTrack
- MVC
- Netbeans
- Nvu
- PHP
- PHP or ..., CakePHP/Symfony/ZF versus ...
- Programming
- Superfish
- Web browser emulators for testing your Web site
- Web development frameworks
- Web site books
- Web site development on your own computer
- Webmin or phpMyAdmin or cPanel for creating databases?
- aiki framework
- jQuery
- Views development - Learn Fields first
- Views development - Learn Actions and Rules
- jQuery .each()
- jQuery .has()
- jQuery .is()
- jQuery and Firefox Firebug
- jQuery children
- jQuery for people not using Drupal - Installation and getting started
- jQuery hover
- jQuery hover de-duplication example
- jQuery or CSS?
- jQuery performance
- jQuery tests
- Web site hosting
- Westpac Web site still broken after two years and ten months
- Wordpress wins another CMS survey
- Drupal
Do Drupal themes have to use the GPL?
Submitted by Peter on Sat, 2010-08-14 13:05
Drupal:
The GPL is an open source licence. Drupal is an open source content management system that lets you use any compatible theme. The Drupal site, like Wordpress and many other open source projects, claims Drupal themes have to use the GPL because the themes are derivative works
. Is this true? If you are a theme developer, are you limited to the GPL?
Some claims for the GPL
There are lots of reasons why people claim a theme is a derivative work of the content management system using the theme. Here are some of the misused ideas and why, individually, they do not work.
They do not run separately
There is an idea that the theme must be a derivative work because the theme runs within the application. In our example, the application is Drupal and Drupal is running within PHP and PHP is running within Apache and Apache is running within Windows or Linux or Unix. The theme should therefore adopt the proprietary licence of Windows and the conflicting GPL of Linux and the conflicting BSD licence used for some Unixes. You cannot run Drupal without PHP but PHP has a special clause in the special PHP licence to exempt applications running under PHP from having to adopt the PHP license. Apache uses a special license instead of the GPL for the same reasons.
The GPL is not common among the major containing
applications because they might limit the scope of programs they can contain and limit their own future. Drupal will limit the future of Drupal if Drupal sets restrictions on what licence you can use for themes or modules used with Drupal.
They run as a cohesive unit
Cohesive is a useless word. Apache runs as a cohesive unit with Windows and does not adopt the license from Windows. Java runs as a cohesive unit with Windows and Java based applications still crash frequently because cohesion is not enough. Cohesion means they stick together, it does not mean an exact fit. It does not stop either side from sticking to something else.
The code in your theme or module can run within another content management system with minor adjustments. That happens all the time. The fact that you may not have created a version for another CMS does not mean you cannot. In the Drupal case, you see lots of modules under sites/all/modules that use code under sites/all/libraries. The libraries section is for external code. If Drupal jumped on you to license your code as GPL, you could place your code under libraries with your license and use only a thin GPL layer under modules. They would all be cohesive and Drupal could not lay claim to the library part without placing the same demand on a lot of other code, something that would kill the use of Drupal.
They do not run in a sequential order
There is a claim that two separate pieces of code must be one if the separate pieces of code have multiple interactions that are in in a sequence. Have the people making this claim ever looked at the connection between any other blocks of code? Their definition applies to the millions of interfaces between application modules all over the world and most are not GPL to GPL. The interface between a car and the computer controlling the engine ignition is the same but the computer does not have to be licensed the same way as the car.
If this claim was successful, your applications would have to adopt the license of your printer's software because your applications interact that way with printers. The examples are endless. You could never use any GPL code on Windows because they would all have to adopt the Windows license. Unix uses the only truly open license, a BSD style license, and the GPL could not be used by any software running on top of a BSD licensed Unix.
is loaded via the include() function
The Software Freedom Law Center claim code is a derivative work if it is loaded by the PHP include() function. The include function is the normal way of loading external code into PHP, the same as placing food in your mouth is the normal way to start eating or placing a DVD in your DVD player is a normal way to play movies. A movie is not subject to the copyright of the movie player. The commercial food you eat does not have to adopt your license for food. The examples are endless.
Drupal/Wordpress does not load the code. Drupal/Wordpress asks PHP to load the code. PHP does some checking then passes the request to Apache or the operating system. There may be other layers involved including virus checkers. If inclusion was a valid claim, your code would have to adopt the license from PHP or Apache or the operating system.
If the modules are included in the same executable file, they are definitely combined in one program.
The Software Freedom Law Center say modules are one program when combined in one executable file but PHP code is not combined in one executable, the PHP based modules remain as separate code even during execution, which means this statement does not apply to your PHP code in themes or modules.
If modules are designed to run linked together in a shared address space, that almost surely means combining them into one program.
Another Software Freedom Law Center claim. Not the use of almost
. Depending on your operating system, you shared address space also contains Apache, PHP, and lots of other code with lots of different licences. Apache is loaded first which means all the others should adopt the Apache license. Some operating systems use multiple address spaces under Apache then share part of the address space to share data. That makes multiple address spaces one shared space.
This is a useless claim. It is the equivalent to saying the paintings in a gallery share the same space and therefore have to have the same copyright owner.
Offer a theme under a split license
Some people suggest you license your theme code under the GPL and license everything else another way. The problem is the GPL proponents also claim that downloading something as a group makes the GPL infect the rest of the download. To comply with all interpretations of the GPL, you could have to offer separate downloads or bundle the two parts of your theme for separate installation then zip them together into one download. If there are two separate bundles and two separate installation steps, you bypass some of the other ugly arguments about the GPL.
GPL is required for distribution
Ok, you work for a company and develop proprietary code. The code is not distributed and does not need the GPL. This conflicts with all the claims that the GPL is based on how the code is used. So who develops code as an employee. Most code is developed by contractors and is distributed to customers, thus requiring a GPL license if you accept the distribution argument.
A contractor can be considered to be working as an employee if paid by the hour but not if paid a fixed price. A fixed price contact requires assignment of ownership. A fixed price contractor can distribute code to the customer even when working on the customer's computers. All the contractor has to do is copy code from a USB memory stick and the distribution happens.
Part of the GPL restricts the way you distribute GPL code by requiring the inclusion of source code and the GPL license. The act of distribution does not make the code require the GPL, people have to prove one of the other claims to make the GPL apply.
Protect yourself
Do you develop proprietary code? Do you use a content management system to contain the code? You might have to project yourself from time consuming and expensive legal action. One day there will be a lawyer who realise how profitable a useless copyright case could be. He/she will talk a content management system owner into suing somebody over the GPL issue. You could be the sucker used as the test case.
The argument at Drupal and other sites is about the code in modules and themes, not the images or CSS, or Javascript. Drupal cannot clamp the GPL on the Javascript because Drupal use jQuery to run most of the Javascript and jQuery would have to make the claim to extend the jQuery GPL to your Javascript. jQuery will not make thta claim because jQuery would be instantly dropped by most users.
You can isolate your proprietary module/theme code from Drupal/Wordpress/etc by creating a thin layer between the CMS and your code. Your thin isolation layer is the only bit that would need the GPL if the case was won by a GPL advocate. An isolation layer is easy for modules because many modules already do exactly that. Isolating the code in a htme is less practical because there is not a lot of code in a theme.








