SlideShare a Scribd company logo
1 of 41
Download to read offline
DrupalMAD
April May 2011
What
1. Protecting our code
1
What
1. Protecting our code
2. So our work is “safe”
2
What
1. Protecting our code
2. So our work is “safe”
3. And we can be paid, no matter what
3
Why
1. Because we are freelancers
1
Why
1. Because we are freelancers
2. Or small feeble companies
2
Why
1. Because we are freelancers
2. Or small feeble companies
3. Because there is a jungle out there
3
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
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
How
1. Know the software license in use
1
How
1. Know the software license in use
2. Educate the client about it
1
How
1. Know the software license in use
2. Educate the client about it
3. Be protected: lawyer + contract
1
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
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…
Drupal license
• Drupal and all contributed files hosted
on Drupal.org are licensed under the
GNU General Public License, version 2
or later.
1
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
Drupal license
• …and to run Drupal in combination
with any code with any license that is
compatible with either versions 2 or 3,
…
3
Drupal license
• http://drupal.org/licensing/faq/
• http://www.gnu.org/licenses/old-
licenses/gpl-2.0.html
4
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).
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.
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.
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.
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
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
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
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
Contracts
• Educate the client: let him know about
the GPL license and code ownership
1
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
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
Contracts
• Never, never give our code to the
client before it is finished and paid
2
Contracts
• Never ever give our code to the client
before it is finished and paid
1. Host it ourselves
2
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
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
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
Protect our code
• Release encripted code until the
project is finished.
• Then release the source code.
1
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
Protect our code
• http://www.sourceguardian.com/ ($199)
• http://www.ioncube.com/ ($199+)
• http://www.zend.com/en/products/guard/
($600)
• http://www.phpcipher.com/ (free)
• http://www.nusphere.com/products/nucod
er.htm ($299)
• http://phplockit.com/ ($29.99)
2
Protect our code
• http://csskillswitch.com/
• http://ajaxkillswitch.com/
• http://www.billda.com/php-remote-kill-
switch
3
Sponsor
Give away niceties
Let’s fight!
:)
Thank you
http://groups.drupal.org/madrid
Jorge López-Lago
(aka kurkuma)
April May 2011

More Related Content

Similar to DrupalMAD 2011-04

Code Camp NYC 2017 - How to deal with everything... | Chris Ozog - Codesushi
Code Camp NYC 2017 - How to deal with everything... | Chris Ozog - Codesushi Code Camp NYC 2017 - How to deal with everything... | Chris Ozog - Codesushi
Code Camp NYC 2017 - How to deal with everything... | Chris Ozog - Codesushi Krzysztof (Chris) Ozog
 
Playing with fuzz bunch and danderspritz
Playing with fuzz bunch and danderspritzPlaying with fuzz bunch and danderspritz
Playing with fuzz bunch and danderspritzDeepanshu Gajbhiye
 
Green Code Lab Challenge 2015 Subject Details
Green Code Lab Challenge 2015 Subject DetailsGreen Code Lab Challenge 2015 Subject Details
Green Code Lab Challenge 2015 Subject DetailsOlivier Philippot
 
Kernel Recipes 2019 - Kernel hacking behind closed doors
Kernel Recipes 2019 - Kernel hacking behind closed doorsKernel Recipes 2019 - Kernel hacking behind closed doors
Kernel Recipes 2019 - Kernel hacking behind closed doorsAnne Nicolas
 
The BlackBox Project: Safely store secrets in Git/Mercurial (originally for P...
The BlackBox Project: Safely store secrets in Git/Mercurial (originally for P...The BlackBox Project: Safely store secrets in Git/Mercurial (originally for P...
The BlackBox Project: Safely store secrets in Git/Mercurial (originally for P...Tom Limoncelli
 
"Open Source licensing and software quality" by Monty Michael Widenius @ eLib...
"Open Source licensing and software quality" by Monty Michael Widenius @ eLib..."Open Source licensing and software quality" by Monty Michael Widenius @ eLib...
"Open Source licensing and software quality" by Monty Michael Widenius @ eLib...eLiberatica
 
Run stuff, Deploy Stuff, Jax London 2017 Edition
Run stuff, Deploy Stuff, Jax London 2017 EditionRun stuff, Deploy Stuff, Jax London 2017 Edition
Run stuff, Deploy Stuff, Jax London 2017 EditionKris Buytaert
 
LCA14: LCA14-110: FLOSS Training
LCA14: LCA14-110: FLOSS TrainingLCA14: LCA14-110: FLOSS Training
LCA14: LCA14-110: FLOSS TrainingLinaro
 
Open Source Software Concepts
Open Source Software ConceptsOpen Source Software Concepts
Open Source Software ConceptsJITENDRA LENKA
 
Full Stack Squared 2022 - Power of Open Source
Full Stack Squared 2022   - Power of Open SourceFull Stack Squared 2022   - Power of Open Source
Full Stack Squared 2022 - Power of Open SourceChris Swan
 
Your money, your media a DRMtastic (reverse|re) eng. tutorial
Your money, your media a DRMtastic (reverse|re) eng. tutorialYour money, your media a DRMtastic (reverse|re) eng. tutorial
Your money, your media a DRMtastic (reverse|re) eng. tutorialSecurity BSides London
 
Levelling up in open source
Levelling up in open sourceLevelling up in open source
Levelling up in open sourceJon Spriggs
 
Olivier Cleynen: Overtaking Proprietary Software Without Writing Code [24c3]
Olivier Cleynen: Overtaking Proprietary Software Without Writing Code [24c3]Olivier Cleynen: Overtaking Proprietary Software Without Writing Code [24c3]
Olivier Cleynen: Overtaking Proprietary Software Without Writing Code [24c3]OpenSlidesArchive
 
Security Solution - Luckey Application on Crypto-currency and Personal Bankin...
Security Solution - Luckey Application on Crypto-currency and Personal Bankin...Security Solution - Luckey Application on Crypto-currency and Personal Bankin...
Security Solution - Luckey Application on Crypto-currency and Personal Bankin...Wan Leung Wong
 
Bitbucket Devops PPT.pptx
Bitbucket Devops PPT.pptxBitbucket Devops PPT.pptx
Bitbucket Devops PPT.pptxXIE2020Students
 
Scottish Ruby Conference 2014
Scottish Ruby Conference  2014Scottish Ruby Conference  2014
Scottish Ruby Conference 2014michaelag1971
 
Keep it out - How to keep Drupal Secure
Keep it out - How to keep Drupal SecureKeep it out - How to keep Drupal Secure
Keep it out - How to keep Drupal SecureAlex Burrows
 
BSidesLondon | Your Money, Your Media - A DRMtastic Android (reverse|re
BSidesLondon | Your Money, Your Media - A DRMtastic Android (reverse|reBSidesLondon | Your Money, Your Media - A DRMtastic Android (reverse|re
BSidesLondon | Your Money, Your Media - A DRMtastic Android (reverse|reChandra Pratap
 

Similar to DrupalMAD 2011-04 (20)

Code Camp NYC 2017 - How to deal with everything... | Chris Ozog - Codesushi
Code Camp NYC 2017 - How to deal with everything... | Chris Ozog - Codesushi Code Camp NYC 2017 - How to deal with everything... | Chris Ozog - Codesushi
Code Camp NYC 2017 - How to deal with everything... | Chris Ozog - Codesushi
 
Playing with fuzz bunch and danderspritz
Playing with fuzz bunch and danderspritzPlaying with fuzz bunch and danderspritz
Playing with fuzz bunch and danderspritz
 
Green Code Lab Challenge 2015 Subject Details
Green Code Lab Challenge 2015 Subject DetailsGreen Code Lab Challenge 2015 Subject Details
Green Code Lab Challenge 2015 Subject Details
 
Kernel Recipes 2019 - Kernel hacking behind closed doors
Kernel Recipes 2019 - Kernel hacking behind closed doorsKernel Recipes 2019 - Kernel hacking behind closed doors
Kernel Recipes 2019 - Kernel hacking behind closed doors
 
The BlackBox Project: Safely store secrets in Git/Mercurial (originally for P...
The BlackBox Project: Safely store secrets in Git/Mercurial (originally for P...The BlackBox Project: Safely store secrets in Git/Mercurial (originally for P...
The BlackBox Project: Safely store secrets in Git/Mercurial (originally for P...
 
5 (more) Ways To Destroy Your Community
5 (more) Ways To Destroy Your Community5 (more) Ways To Destroy Your Community
5 (more) Ways To Destroy Your Community
 
"Open Source licensing and software quality" by Monty Michael Widenius @ eLib...
"Open Source licensing and software quality" by Monty Michael Widenius @ eLib..."Open Source licensing and software quality" by Monty Michael Widenius @ eLib...
"Open Source licensing and software quality" by Monty Michael Widenius @ eLib...
 
Run stuff, Deploy Stuff, Jax London 2017 Edition
Run stuff, Deploy Stuff, Jax London 2017 EditionRun stuff, Deploy Stuff, Jax London 2017 Edition
Run stuff, Deploy Stuff, Jax London 2017 Edition
 
LCA14: LCA14-110: FLOSS Training
LCA14: LCA14-110: FLOSS TrainingLCA14: LCA14-110: FLOSS Training
LCA14: LCA14-110: FLOSS Training
 
Open Source Software Concepts
Open Source Software ConceptsOpen Source Software Concepts
Open Source Software Concepts
 
Full Stack Squared 2022 - Power of Open Source
Full Stack Squared 2022   - Power of Open SourceFull Stack Squared 2022   - Power of Open Source
Full Stack Squared 2022 - Power of Open Source
 
12 tricks to avoid hackers breaks your CI / CD
12 tricks to avoid hackers breaks your  CI / CD12 tricks to avoid hackers breaks your  CI / CD
12 tricks to avoid hackers breaks your CI / CD
 
Your money, your media a DRMtastic (reverse|re) eng. tutorial
Your money, your media a DRMtastic (reverse|re) eng. tutorialYour money, your media a DRMtastic (reverse|re) eng. tutorial
Your money, your media a DRMtastic (reverse|re) eng. tutorial
 
Levelling up in open source
Levelling up in open sourceLevelling up in open source
Levelling up in open source
 
Olivier Cleynen: Overtaking Proprietary Software Without Writing Code [24c3]
Olivier Cleynen: Overtaking Proprietary Software Without Writing Code [24c3]Olivier Cleynen: Overtaking Proprietary Software Without Writing Code [24c3]
Olivier Cleynen: Overtaking Proprietary Software Without Writing Code [24c3]
 
Security Solution - Luckey Application on Crypto-currency and Personal Bankin...
Security Solution - Luckey Application on Crypto-currency and Personal Bankin...Security Solution - Luckey Application on Crypto-currency and Personal Bankin...
Security Solution - Luckey Application on Crypto-currency and Personal Bankin...
 
Bitbucket Devops PPT.pptx
Bitbucket Devops PPT.pptxBitbucket Devops PPT.pptx
Bitbucket Devops PPT.pptx
 
Scottish Ruby Conference 2014
Scottish Ruby Conference  2014Scottish Ruby Conference  2014
Scottish Ruby Conference 2014
 
Keep it out - How to keep Drupal Secure
Keep it out - How to keep Drupal SecureKeep it out - How to keep Drupal Secure
Keep it out - How to keep Drupal Secure
 
BSidesLondon | Your Money, Your Media - A DRMtastic Android (reverse|re
BSidesLondon | Your Money, Your Media - A DRMtastic Android (reverse|reBSidesLondon | Your Money, Your Media - A DRMtastic Android (reverse|re
BSidesLondon | Your Money, Your Media - A DRMtastic Android (reverse|re
 

More from Jorge López-Lago

Open event (show&tell april 2016)
Open event (show&tell april 2016)Open event (show&tell april 2016)
Open event (show&tell april 2016)Jorge López-Lago
 
Big guns for small guys (reloaded)
Big guns for small guys (reloaded)Big guns for small guys (reloaded)
Big guns for small guys (reloaded)Jorge López-Lago
 
Open event (Drupalcamp Sunderland 2015)
Open event (Drupalcamp Sunderland 2015)Open event (Drupalcamp Sunderland 2015)
Open event (Drupalcamp Sunderland 2015)Jorge López-Lago
 
Drupal RAD - Drupalcamp Spain 2010
Drupal RAD - Drupalcamp Spain 2010Drupal RAD - Drupalcamp Spain 2010
Drupal RAD - Drupalcamp Spain 2010Jorge López-Lago
 
Módulos imprescindibles que desconoces
Módulos imprescindibles que desconocesMódulos imprescindibles que desconoces
Módulos imprescindibles que desconocesJorge López-Lago
 

More from Jorge López-Lago (6)

Open event (show&tell april 2016)
Open event (show&tell april 2016)Open event (show&tell april 2016)
Open event (show&tell april 2016)
 
Big guns for small guys (reloaded)
Big guns for small guys (reloaded)Big guns for small guys (reloaded)
Big guns for small guys (reloaded)
 
Open event (Drupalcamp Sunderland 2015)
Open event (Drupalcamp Sunderland 2015)Open event (Drupalcamp Sunderland 2015)
Open event (Drupalcamp Sunderland 2015)
 
Drupal RAD - Drupalcamp Spain 2010
Drupal RAD - Drupalcamp Spain 2010Drupal RAD - Drupalcamp Spain 2010
Drupal RAD - Drupalcamp Spain 2010
 
Open event presentation.3 2
Open event presentation.3 2Open event presentation.3 2
Open event presentation.3 2
 
Módulos imprescindibles que desconoces
Módulos imprescindibles que desconocesMódulos imprescindibles que desconoces
Módulos imprescindibles que desconoces
 

DrupalMAD 2011-04

  • 3. What 1. Protecting our code 2. So our work is “safe” 2
  • 4. What 1. Protecting our code 2. So our work is “safe” 3. And we can be paid, no matter what 3
  • 5. Why 1. Because we are freelancers 1
  • 6. Why 1. Because we are freelancers 2. Or small feeble companies 2
  • 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
  • 10. How 1. Know the software license in use 1
  • 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
  • 18. Drupal license • http://drupal.org/licensing/faq/ • http://www.gnu.org/licenses/old- licenses/gpl-2.0.html 4
  • 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
  • 27. Contracts • Educate the client: let him know about the GPL license and code ownership 1
  • 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
  • 30. Contracts • Never, never give our code to the client before it is finished and paid 2
  • 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
  • 37. Protect our code • http://www.sourceguardian.com/ ($199) • http://www.ioncube.com/ ($199+) • http://www.zend.com/en/products/guard/ ($600) • http://www.phpcipher.com/ (free) • http://www.nusphere.com/products/nucod er.htm ($299) • http://phplockit.com/ ($29.99) 2
  • 38. Protect our code • http://csskillswitch.com/ • http://ajaxkillswitch.com/ • http://www.billda.com/php-remote-kill- switch 3