7. Why
1. Because we are freelancers
2. Or small feeble companies
3. Because there is a jungle out there
3
8. Why
1. Because we are freelancers
2. Or small feeble companies
3. Because there is a jungle out there
4. … and there are nastier beasts than
us
4
9. Why
1. Because we are freelancers
2. Or small feeble companies
3. Because there is a jungle out there
4. … and there are nastier beasts than
us
5. Because we can not afford to work
for two months and not be paid now!
5
11. How
1. Know the software license in use
2. Educate the client about it
1
12. How
1. Know the software license in use
2. Educate the client about it
3. Be protected: lawyer + contract
1
13. How
1. Know the software license in use
2. Educate the client about it
3. Be protected: lawyer + contract
4. Protect your work, until it is finished
1
14. Disclaimer
• The practices recommended here are
applicable only to Spain, as far as my
experience goes.
• Hopefully this won’t be neccessary
beyond our frontiers…
15. Drupal license
• Drupal and all contributed files hosted
on Drupal.org are licensed under the
GNU General Public License, version 2
or later.
1
16. Drupal license
• That means you are free to download,
reuse, modify, and distribute any files
hosted in Drupal.org's Git repositories
under the terms of either the GPL
version 2 or version 3, …
2
17. Drupal license
• …and to run Drupal in combination
with any code with any license that is
compatible with either versions 2 or 3,
…
3
19. PHP and else...
• We require that all files (PHP,
JavaScript, images, Flash, etc.) hosted
on Drupal.org be under the GPL. If it's
in Git, then it is under the same
license (GPL version 2 or later).
20. Source code
• …the PHP file itself, without any
compression or obfuscation, is its own
source code. Note that for Drupal,
template files are PHP code.
• …the JavaScript file itself, without any
compression or obfuscation, is its own
source code.
• …the CSS file itself, without any
compression or obfuscation, is its own
source code.
21. Image files
• For images, the "source code" varies.
Depending on the image, that could
mean the production version of the file
as a PNG or GIF, or an original high-
resolution JPG, or a Photoshop,
Illustrator, or GIMP file. The "source
code" is whichever version is intended
to be edited by people.
22. Flash files
• For Flash files, the source code is the
editable FLA and AS files, and any
other files needed to build the final
SWF. The SWF file itself is the "object
code" version, not the source version.
23. My work
• If I write a module or theme, do I
have to license it under the GPL?
• Yes. Drupal modules and themes are a
derivative work of Drupal. If you
distribute them, you must do so under
the terms of the GPL version 2 or
later. You are not required to
distribute them at all, however.
1
24. My work
• If I write a module or theme,
do I have to give it away to
everyone?
• No. The GPL requires that if you make a
derivative work of Drupal and distribute
it to someone else, you must provide
that person with the source code under
the terms of the GPL so that they may
modify and redistribute it under the
terms of the GPL as well…
2
25. My work
• … However, you are under no
obligation to distribute the code to
anyone else. If you do not distribute
the code but use it only within your
organization, then you are not required
to distribute it to anyone at all.
3
26. My work
• Is it permitted for me to sell
Drupal or a Drupal module or a
Drupal theme?
• Yes. However, you must distribute it
under the GPL version 2 or later, so
those you sell it to must be allowed
to modify and redistribute it as well.
4
28. Contracts
• Educate the client: let him know about
the GPL license and code ownership
• Specially if we want to release code
programmed for him…
1
29. Contracts
• Educate the client: let him know about
the GPL license and code ownership
• Specially if we want to release code
programmed for him…
• Open source doesn’t mean free as in
free beer.
1
31. Contracts
• Never ever give our code to the client
before it is finished and paid
1. Host it ourselves
2
32. Contracts
• Never ever give our code to the client
before it is finished and paid
1. Host it ourselves
2. Host it in third company, paid by us
2
33. Contracts
• Never ever give our code to the client
before it is finished and paid
1. Host it ourselves
2. Host it in third company, paid by us
3. Never ever work in the client premises
(his castle, his rules)
2
34. Contracts
• Never ever give our code to the client
before it is finished and paid
1. Host it ourselves
2. Host it in third company, paid by us
3. Never ever work in the client premises
(his castle, his rules)
4. Release encripted code :-)
2
35. Protect our code
• Release encripted code until the
project is finished.
• Then release the source code.
1
36. Protect our code
• Release encripted code until the
project is finished.
• Then release the source code.
• That is the ONLY way to protect our
work and eventually be paid… or get
honest clients.
1