1 how, why, and when open source works dr. orion sky lawlor u. alaska fairbanks cs dept....

52
1 How, Why, and When Open Source Works Dr. Orion Sky Lawlor U. Alaska Fairbanks CS Dept. lawlor.cs.uaf.edu/~olawlor/ 2003/12/17

Upload: leon-johnston

Post on 10-Jan-2016

218 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: 1 How, Why, and When Open Source Works Dr. Orion Sky Lawlor U. Alaska Fairbanks CS Dept. lawlor.cs.uaf.edu/~olawlor/ 2003/12/17

1

How, Why, and When Open Source Works

Dr. Orion Sky LawlorU. Alaska Fairbanks CS Dept.lawlor.cs.uaf.edu/~olawlor/

2003/12/17

Page 2: 1 How, Why, and When Open Source Works Dr. Orion Sky Lawlor U. Alaska Fairbanks CS Dept. lawlor.cs.uaf.edu/~olawlor/ 2003/12/17

2

Introduction● Imagine a world where you can

read and change the source code for all your programs

● Where you can actually email bugs/suggestions to the author

● Where you can legally give your buddy a copy of your software

● Where arguments are solved with code, not lawyers or $$$

● That world really does exist!

Page 3: 1 How, Why, and When Open Source Works Dr. Orion Sky Lawlor U. Alaska Fairbanks CS Dept. lawlor.cs.uaf.edu/~olawlor/ 2003/12/17

3

How Open Source Works

Page 4: 1 How, Why, and When Open Source Works Dr. Orion Sky Lawlor U. Alaska Fairbanks CS Dept. lawlor.cs.uaf.edu/~olawlor/ 2003/12/17

4

● I write some code● It took me just two days● I post version 0.1 to my website,

saying “Here it is! Have at it!”● You download the code● It sucks--it's like somebody

cranked it out in two days!● You fix a few parts of it, and

email me the changes● I post version 0.2 to my site...

How Open Source Works

Page 5: 1 How, Why, and When Open Source Works Dr. Orion Sky Lawlor U. Alaska Fairbanks CS Dept. lawlor.cs.uaf.edu/~olawlor/ 2003/12/17

5

Wait! Nobody's paying for it!?

● I wrote it using a free compiler and text editor

● All this cost me was some time● I posted it to my website (cheap)● You downloaded it (cheap)● You compiled it, ran it, read it,

fixed it, and emailed me changes● All this cost you was some time

● So given a source of time, nobody needs to pay for software

● Warning: paradigm shift ahead!

Page 6: 1 How, Why, and When Open Source Works Dr. Orion Sky Lawlor U. Alaska Fairbanks CS Dept. lawlor.cs.uaf.edu/~olawlor/ 2003/12/17

6

How do you get people to donate?

● People will give up time for greed, altruism, egotism, hatred, etc:

● Pure public spirit (long-hairs love it!)● “For the good of all mankind”

● Pure self-aggrandizement● “I made this” is a kind of bragging rights● Crucial to the world's shunned nerds

● As a way to strike at the hated other● “It sucks, but Microsoft sucks worse”

● There are 6 gigapeople on Earth● Somebody's got a free weekend!● All you need is a few good coders!

Page 7: 1 How, Why, and When Open Source Works Dr. Orion Sky Lawlor U. Alaska Fairbanks CS Dept. lawlor.cs.uaf.edu/~olawlor/ 2003/12/17

7

Software ain't Bagels● Software

● Raw materials● Binary 1s & 0s● Free

● Labor in design● Zero labor per

copy● Public good

● My software is your software!

● Socialism works

● Bagel● Raw materials

● Bread, eggs, sugar, yeast

● Valuable● Labor in design● Labor per bagel● Exclusive good

● My bagel is not your bagel!

● Socialism works like crap

Page 8: 1 How, Why, and When Open Source Works Dr. Orion Sky Lawlor U. Alaska Fairbanks CS Dept. lawlor.cs.uaf.edu/~olawlor/ 2003/12/17

8

Open Source in Practice

Page 9: 1 How, Why, and When Open Source Works Dr. Orion Sky Lawlor U. Alaska Fairbanks CS Dept. lawlor.cs.uaf.edu/~olawlor/ 2003/12/17

9

How to Contribute to Open Source

● Find a program with a bug● Grab the source code for program● Change the source code locally● Test your local fixes● Summarize your changes in a

“patch”● Send the patch in to the program

author/maintainer● Hope the author/maintainer

accepts your patch

Page 10: 1 How, Why, and When Open Source Works Dr. Orion Sky Lawlor U. Alaska Fairbanks CS Dept. lawlor.cs.uaf.edu/~olawlor/ 2003/12/17

10

How to Improve Open-Source Code

● Find the “right” source code● You probably want to work on the

latest copy● For small projects, this is the latest

one listed on the project web page● For big projects, usually CVS or SVN

● Figure out how to build it● Usually just “configure; make”● Sometimes “autoreconf; configure;

make”, or just “make”, and sometimes swear-at-crap-Makefiles!

Page 11: 1 How, Why, and When Open Source Works Dr. Orion Sky Lawlor U. Alaska Fairbanks CS Dept. lawlor.cs.uaf.edu/~olawlor/ 2003/12/17

11

Improving Open-Source: part 2

● Figure out what's wrong, and the “right” way to fix it

● This is the hardest part. Take notes!● Think hard about the design of the

code, look at related projects, etc.● Fix it. This is usually pretty easy.● Test it

● Make sure you fixed your problem● Make sure you didn't introduce new

problems● Make sure you won't look like a fool!

Page 12: 1 How, Why, and When Open Source Works Dr. Orion Sky Lawlor U. Alaska Fairbanks CS Dept. lawlor.cs.uaf.edu/~olawlor/ 2003/12/17

12

Patches● Say “diff -u old new > my.patch”

● Be sure to keep the old source code directory around for diffing!

● Attach “my.patch” to email or bug report

● Then the author can apply the patch:cp -r hislatest newpatch -d new < my.patch

● This usually works even if his code already has other patches!

● Called “merging”

Page 13: 1 How, Why, and When Open Source Works Dr. Orion Sky Lawlor U. Alaska Fairbanks CS Dept. lawlor.cs.uaf.edu/~olawlor/ 2003/12/17

13

How to get your patches accepted

● Send them to the “right” spot● Email them to the right author● Or to the right mailing list● Or fill out a “bug report” in some

(hideous) “bug database”● Be extremely clear what you've fixed

● Say “foo(17,3) currently segfaults”● Not “foo() sucks; this is way better”

● Use the format the authors want● patch or CVS or just a big source file

● You should get an email response!

Page 14: 1 How, Why, and When Open Source Works Dr. Orion Sky Lawlor U. Alaska Fairbanks CS Dept. lawlor.cs.uaf.edu/~olawlor/ 2003/12/17

14

Examples I've Contributed● Patch to Mesa3D

arb_fragment_program● Parser hung on “0.3000000000” and

parsed wrong value for “0.1”● Reported as bug 2520

https://bugs.freedesktop.org/show_bug.cgi?id=2520

● Accepted, incorporated into Mesa 6.3● Patch to Tcl/Tk “tkImgPhoto”

● I made photo display about 2x faster● They didn't like my (quite different)

coding style; patch ignored● http://lawlor.cs.uaf.edu/~olawlor/tmp/tkImgPhoto.patch

Page 15: 1 How, Why, and When Open Source Works Dr. Orion Sky Lawlor U. Alaska Fairbanks CS Dept. lawlor.cs.uaf.edu/~olawlor/ 2003/12/17

15

Projects I've Started● usb_pickit

● A little program to talk to the Microchip “PICKit” device programmer over USB

● A weekend project, during which I learned a lot about USB devices

● Spawned a google groups mailing list and three derived projects

● min00● Konica Minolta 2400W driver● Another weekend project● Almost totally unused!

Page 16: 1 How, Why, and When Open Source Works Dr. Orion Sky Lawlor U. Alaska Fairbanks CS Dept. lawlor.cs.uaf.edu/~olawlor/ 2003/12/17

16

Why Open Source Works Well

Page 17: 1 How, Why, and When Open Source Works Dr. Orion Sky Lawlor U. Alaska Fairbanks CS Dept. lawlor.cs.uaf.edu/~olawlor/ 2003/12/17

17

Patches as Software Engineering

● All open-source code is built from patches (e.g., Apache web server)

● Patches are written by person B, and accepted by person A. A doesn't know or trust B, and so checks his patch over carefully.

● Bad patches are rejected regularly by maintainers

● This is where open source's high quality comes from!

● Compare to commercial code...

Page 18: 1 How, Why, and When Open Source Works Dr. Orion Sky Lawlor U. Alaska Fairbanks CS Dept. lawlor.cs.uaf.edu/~olawlor/ 2003/12/17

18

Open Source Code is not Wikipedia

● Any idiot can write “George Washington is a Duck” in Wikipedia

● Their changes show up immediately, and in the best case are deleted after the fact

● Any idiot can send in a patch that won't even compile

● Their changes will be rejected by the maintainer/author

● With open-source, every change is pre-vetted by somebody

Page 19: 1 How, Why, and When Open Source Works Dr. Orion Sky Lawlor U. Alaska Fairbanks CS Dept. lawlor.cs.uaf.edu/~olawlor/ 2003/12/17

19

Open Source Legality & Licenses

Page 20: 1 How, Why, and When Open Source Works Dr. Orion Sky Lawlor U. Alaska Fairbanks CS Dept. lawlor.cs.uaf.edu/~olawlor/ 2003/12/17

20

Is Open Source Legal?● Moral argument: I made it. I get

to decide who can use it● Nobody, paying customers, my

friends, or everybody.● Legal answer: yes. There are

several factors at work● Copyright: preserves author's

interest in work● Contract law: allows conditions to be

attached to anything● By eating this apple, you agree that you

and all your descendents will know evil

Page 21: 1 How, Why, and When Open Source Works Dr. Orion Sky Lawlor U. Alaska Fairbanks CS Dept. lawlor.cs.uaf.edu/~olawlor/ 2003/12/17

21

Copyright's Legal Foundations

● “Thou Shalt Not Steal”● US Constitution, Article 1, Sect 8

● “To promote the Progress of Science and useful Arts, by securing for limited Times to Authors and Inventors the exclusive Right to their respective Writings and Discoveries;”

● Title 17 US Code● Concept of right to copy (copy right)● Concept of “Fair Use”● “Limited Times” = 70+ years

Page 22: 1 How, Why, and When Open Source Works Dr. Orion Sky Lawlor U. Alaska Fairbanks CS Dept. lawlor.cs.uaf.edu/~olawlor/ 2003/12/17

22

Copyright Limitations● If you create something, you hold

the legal right to copy that thing● No copyright notice or registration

is even needed (today)● Applies to “fixed” works that are:

● Written (since 1486/1789)● Sound and music (since 1910s)● Software (since 1980)

● Does not apply to:● Ideas (protected by patents)● Works not in “fixed” form (unrecorded,

code still inside your head)

Page 23: 1 How, Why, and When Open Source Works Dr. Orion Sky Lawlor U. Alaska Fairbanks CS Dept. lawlor.cs.uaf.edu/~olawlor/ 2003/12/17

23

Copyright “Terms and Conditions”

● As the copyright owner, you can license copies to people

● You pick the terms of that license● For example, the license might forbid

making additional copies● Or the license might allow copies,

but only unmodified copies● Or the license might allow anything● Or the licensee might have to give up

his immortal soul to use the software ● Copyright violations are criminal;

licensing is civil (contract/tort)

Page 24: 1 How, Why, and When Open Source Works Dr. Orion Sky Lawlor U. Alaska Fairbanks CS Dept. lawlor.cs.uaf.edu/~olawlor/ 2003/12/17

24

Example Copyright License (EULA)

● Commercial software almost always comes with a “EULA”

● End User License Agreement● BY INSTALLING THIS SOFTWARE, YOU ACCEPT ALL THE TERMS AND

CONDITIONS OF THIS AGREEMENT. IF YOU DO NOT AGREE TO THE TERMS OF THIS AGREEMENT, DO NOT USE THE SOFTWARE.

● This Agreement permits you ("Licensee") to use the enclosed copyrighted machine readable software program... ... ...

● This License grants you the right to use the Software on a single computer. It does not authorize network use of any kind. You may not decompile, disassemble, or use any method to discover the trade secrets contained in the Software. You may not modify, adapt, translate, rent, lease, timeshare, or loan the Software. You may copy elements of the Software onto the hard disk of your computer and load elements of the Software into RAM and the CPU of your computer.

● This License is effective until terminated. This License and your right to use the Software terminate automatically if you violate any part of this agreement. Should the Agreement be terminated, you agree to return all copies of the Software, Documentation, and Reproductions furnished to you, or made by you, and all copies to National Geographic Maps, including copies resident in the computer's memory.

Page 25: 1 How, Why, and When Open Source Works Dr. Orion Sky Lawlor U. Alaska Fairbanks CS Dept. lawlor.cs.uaf.edu/~olawlor/ 2003/12/17

25

But that's Crazy, Man!● You're typically agreeing to some

pretty insane stuff in an EULA:● You may not decompile, disassemble, or use any method to discover the

trade secrets contained in the Software.

● ndisasm -u libfoo.dll? A contract breach!● This License grants you the right to use the Software on a single computer

consisting of one central processing unit, one keyboard, and one display screen.

● Core Duo CPU? Dual monitors? Breach.● Should the Agreement be terminated, you agree to return all copies of the

Software... including copies resident in the computer's memory.

● Hand over your RAM, you felon!● EvilCo shall have the right to conduct an audit on your premises or by

electronic means to ensure that your use of the Software complies with your authorized use of the Software. You hereby consent to EvilCo performing such an audit by any means necessary, including: 2am raids by EvilCo's SWAT team; picking the lock on your front door and secretly installing webcams in your air ducts; or periodic random abductions and application of drugs and/or torture including sodium pentothal, breaking on the wheel, and other acts as allowed by the laws of a suitable country. You agree the Geneva Convention does not apply. You may be held until you prove to EvilCo's satisfaction that you have never considered copying the software. Confess now, heretic! You also agree to a bunch of stuff in French.

Page 26: 1 How, Why, and When Open Source Works Dr. Orion Sky Lawlor U. Alaska Fairbanks CS Dept. lawlor.cs.uaf.edu/~olawlor/ 2003/12/17

26

EULA: A New Hope

● Copyright is just a tool● You can use it for good or evil

Page 27: 1 How, Why, and When Open Source Works Dr. Orion Sky Lawlor U. Alaska Fairbanks CS Dept. lawlor.cs.uaf.edu/~olawlor/ 2003/12/17

27

Open Source Licenses Compared

● Public Domain: whatever you like● BSD: you can't claim it's yours;

you legally agree there is no warranty; but copy and modify OK

● GPL: you are legally required to give out source code and the ability to modify and distribute

● Freeware EULA: you can copy, but not modify-and-redistribute

● Commercial EULA: you can't copy, modify, examine, distribute, fold, spindle, mutilate, discuss, or even think about the software, ever.

Page 28: 1 How, Why, and When Open Source Works Dr. Orion Sky Lawlor U. Alaska Fairbanks CS Dept. lawlor.cs.uaf.edu/~olawlor/ 2003/12/17

28

Terms in an Open-Source EULA

● You can use the software● You can copy the software● You can modify and copy the

software● You can reverse-engineer,

forward-engineer, or reengineer the software

● And it's all 100% legal!

● Just, please don't sue us!

Page 29: 1 How, Why, and When Open Source Works Dr. Orion Sky Lawlor U. Alaska Fairbanks CS Dept. lawlor.cs.uaf.edu/~olawlor/ 2003/12/17

29

Public Domain● Here's my favorite EULA (mine!)● “Public Domain” == No copyrightENGLISHYou can do whatever you want.

LEGALESEI release the copyright to this work to the public domain. If your country does not have a concept of public domain, I recommend you get a better country.

This license ("License") grants you ("You") the non-exclusive right ("Right") to download, use, modify, and redistribute the covered images, text, and software ("Stuff") of Orion Sky Lawlor or related entities ("Me") without limitation or exclusion.

Of course, there is no warranty. If the Stuff causes You problems, sorry, I'm always glad to get bug reports.

Page 30: 1 How, Why, and When Open Source Works Dr. Orion Sky Lawlor U. Alaska Fairbanks CS Dept. lawlor.cs.uaf.edu/~olawlor/ 2003/12/17

30

BSD: Berkeley Standard Distribution

Copy & modify OK; lie & sue not OKCopyright (c) <YEAR>, University of Alaska. All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

- Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

- Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

- Neither the name of the University of Alaska at Fairbanks nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Page 31: 1 How, Why, and When Open Source Works Dr. Orion Sky Lawlor U. Alaska Fairbanks CS Dept. lawlor.cs.uaf.edu/~olawlor/ 2003/12/17

31

BSD: Berkeley Standard Distribution

Copy & modify OK; lie & sue not OKCopyright (c) <YEAR>, University of Alaska. All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

- Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

- Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

- Neither the name of the University of Alaska at Fairbanks nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

You can't sue us, even if it breaks,

it kills you, and we're not sorry

You can't say we support your copy

You can't say you wrote it

You CAN copy and modify it

Page 32: 1 How, Why, and When Open Source Works Dr. Orion Sky Lawlor U. Alaska Fairbanks CS Dept. lawlor.cs.uaf.edu/~olawlor/ 2003/12/17

32

GPL: You MUST give away source!

Preamble

The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too.

When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things.

To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it.

For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights.

We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software.

Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations.

Page 33: 1 How, Why, and When Open Source Works Dr. Orion Sky Lawlor U. Alaska Fairbanks CS Dept. lawlor.cs.uaf.edu/~olawlor/ 2003/12/17

33

GPL: Basic Idea● GPL software is copyrighted● The copyright owner allows you to

use, modify, and redistribute● The copyright owner REQUIRES

you (via the GPL terms) to give away source code and distribution rights along with binaries.

● If you don't comply with the GPL, you're violating the software's copyright

● “Copyleft” or “Copyright Jujitsu”

Page 34: 1 How, Why, and When Open Source Works Dr. Orion Sky Lawlor U. Alaska Fairbanks CS Dept. lawlor.cs.uaf.edu/~olawlor/ 2003/12/17

34

GPL: Freedom is Slavery● Proponents of slavery in the 1800's would

phrase their support in terms of “freedom of contract”

● E.g., you sign away 7 years as an indentured servant under terms

● The bogus “freedom” to own and become a slave is now unenforceable by contract

● GPL folks want to remove your contractual ability (under public domain or BSD) to later sign away your natural right to source code. GPL software can never be thus enslaved, it is “free” as in “source code available”

● Richard Stallman is force behind GPL

Page 35: 1 How, Why, and When Open Source Works Dr. Orion Sky Lawlor U. Alaska Fairbanks CS Dept. lawlor.cs.uaf.edu/~olawlor/ 2003/12/17

35

When Open Source Fails

Page 36: 1 How, Why, and When Open Source Works Dr. Orion Sky Lawlor U. Alaska Fairbanks CS Dept. lawlor.cs.uaf.edu/~olawlor/ 2003/12/17

36

Why does the GPL exist?● GPL exists because people get

greedy with BSD & public domain:● FooCode starts out in public domain● GreedyCo improves FooCode slightly,

and sells it in a box (with a EULA)● FooCode's original author has to pay

money to get the right to see what GreedyCo has done with his code! And he can't even see the source code! Or merge those changes!

● The GPL prevents the “evil” of proprietary code from contaminating the original open-source code. GPL code is always open.

Page 37: 1 How, Why, and When Open Source Works Dr. Orion Sky Lawlor U. Alaska Fairbanks CS Dept. lawlor.cs.uaf.edu/~olawlor/ 2003/12/17

37

Forking is bad● “forking” is when a common

codebase splits into incompatible versions

● When merging patches becomes too hard or is made illegal

● The original BSD-licensed BSD UNIX fragmented into Irix, HP-UX, Solaris, Xenix, AIX, ...

● None of these were open source● Led to tons of duplicated effort● Silly avoidable inconsistencies

Page 38: 1 How, Why, and When Open Source Works Dr. Orion Sky Lawlor U. Alaska Fairbanks CS Dept. lawlor.cs.uaf.edu/~olawlor/ 2003/12/17

38

GPL helps deter “forking”● With GPL code, there are never

legal reasons to fork● Nobody can have a private copy● Anybody can legally merge

incompatible source code versions● There are still technical / political /

social reasons projects fork● E.g., GIMP developers have a fight

over floating-point pixels. One faction splits off and becomes “Film Gimp” (now CinePaint). Aw, fork it!

● E.g., Roman Catholic Church & Luther

Page 39: 1 How, Why, and When Open Source Works Dr. Orion Sky Lawlor U. Alaska Fairbanks CS Dept. lawlor.cs.uaf.edu/~olawlor/ 2003/12/17

39

When the Author Vanishes● It happens pretty frequently that

the author of an open-source package will vanish

● Maybe he was hit by a bus● Or he's busy with something else● Or he finally got a girlfriend / job● Or he's ticked off at person X● Or he's tired of the flood of email● Or his spamfilter goes Terminator● Or he's pulling a Thelma and Louise

● Anyway, he ain't answering email

Page 40: 1 How, Why, and When Open Source Works Dr. Orion Sky Lawlor U. Alaska Fairbanks CS Dept. lawlor.cs.uaf.edu/~olawlor/ 2003/12/17

40

No Author, No Merging● Without an author to merge

them, patches accumulate● People change code locally, or post

patches on their own websites● Distributions send out patches

● This is worse than a fork, because nobody's in charge. It's chaos!

● Invariably, somebody steps up.● Google for all the patches. Merge all

the good ones. Maybe rename the program, explain the situation at a new website

Page 41: 1 How, Why, and When Open Source Works Dr. Orion Sky Lawlor U. Alaska Fairbanks CS Dept. lawlor.cs.uaf.edu/~olawlor/ 2003/12/17

41

A New Author Arises● So a new self-selected person

annoints themselves maintainer● Google is the closest thing to the

true arbiter of maintainerhood● People send patches to this new

guy, merging happens, life is good● This is a very common process!

● Happens once every 2-10 years● Sometimes smooth hand-off (same

website), sometimes not● Often original coder isn't good at

email/political maintainance role.

Page 42: 1 How, Why, and When Open Source Works Dr. Orion Sky Lawlor U. Alaska Fairbanks CS Dept. lawlor.cs.uaf.edu/~olawlor/ 2003/12/17

42

Mailing List● Any reasonably big project has a

bunch of people (3+) interested in what's happening with the code

● So you have a mailing list● People send patches, bugs, etc to

the mailing list● Stupid requests are ignored● Good patches are quickly merged● Flamewars are rare, except

approaching a fork● True sign of a fork: separate

mailing lists

Page 43: 1 How, Why, and When Open Source Works Dr. Orion Sky Lawlor U. Alaska Fairbanks CS Dept. lawlor.cs.uaf.edu/~olawlor/ 2003/12/17

43

Email vs Tech Support● You can usually just email the guy

responsible for program X● Say X doesn't work with Y, and you

think you know why, or how to fix it● You can just email this to X's author

● You can't do this with Dell, Microsoft, etc● The smart programmers are protected

from the corrosive flood of moron-users by an insulating layer of moron-tech-support

● “You can't do that--X and Y are incompatible”

● Just *try* reporting a simple bug!

Page 44: 1 How, Why, and When Open Source Works Dr. Orion Sky Lawlor U. Alaska Fairbanks CS Dept. lawlor.cs.uaf.edu/~olawlor/ 2003/12/17

44

Emails for Big Projects● The maintainer of a popular

project faces a flood of emails● He probably spends most of his time

deleting email, not even reading or answering it!

● For big projects (e.g., Linux kernel), the maintainer (Linux Torvalds) usually has smart folks act as lieutenants to screen incoming patches (e.g., Alan Cox). Sometimes the lieutenants have lieutenants, and so on. Patches sent to the top are summarily deleted.

Page 45: 1 How, Why, and When Open Source Works Dr. Orion Sky Lawlor U. Alaska Fairbanks CS Dept. lawlor.cs.uaf.edu/~olawlor/ 2003/12/17

45

Conclusions

Page 46: 1 How, Why, and When Open Source Works Dr. Orion Sky Lawlor U. Alaska Fairbanks CS Dept. lawlor.cs.uaf.edu/~olawlor/ 2003/12/17

46

Open-Source Quality● With open source code, if you find a bug you

can fix it yourself today, email the author, and by this evening everybody in the world can be using the fixed version

● Legal barriers (EULAs, missing source code) and procedural barriers (tech support, nondisclosure agreements) prevent proprietary code from evolving at the same rate

● Open-source code has gone from totally unusable (1993) to barely useable (2000) to pretty darn good (2007). Where will it go next?

Page 47: 1 How, Why, and When Open Source Works Dr. Orion Sky Lawlor U. Alaska Fairbanks CS Dept. lawlor.cs.uaf.edu/~olawlor/ 2003/12/17

47

Open Source is a Social Experiment

● It seems possible that spammers and morons could destroy open source, and also Wikipedia

● But they have not done so yet!● Morons don't use open source

● It's usually too hard to use● This is emergent behavior:

● Good interfaces are hard to write● Good interfaces let morons use the code● Morons don't provide good patches;

you'd waste your life emailing morons● So don't provide a good interface.

Page 48: 1 How, Why, and When Open Source Works Dr. Orion Sky Lawlor U. Alaska Fairbanks CS Dept. lawlor.cs.uaf.edu/~olawlor/ 2003/12/17

48

Openness is Not Just for Code

● On my website I give away:● 10,000 photos of Alaska & elsewhere● 300 vector road sign images● Big projects and little code samples

● If it's free, and you don't have to think about who owns it, it wins

● It doesn't matter how good the expensive stuff is, if you'd get sued if you used it on your project...

● Public domain means “don't worry about that legal crap”!

● Open Source Movies, Music, CPU designs (Sun T1), Recipes? Why not?

Page 49: 1 How, Why, and When Open Source Works Dr. Orion Sky Lawlor U. Alaska Fairbanks CS Dept. lawlor.cs.uaf.edu/~olawlor/ 2003/12/17

49

Open-Source is a Social Contract

● Open source is a new economic model for organizing societies

● Capitalism harnesses the power of greed to achieve amazing things

● Open source harnesses the powers of altruism and egotism to achieve amazing things

● Collectively-owned open source can coexist peacefully with privately-owned goods

Page 50: 1 How, Why, and When Open Source Works Dr. Orion Sky Lawlor U. Alaska Fairbanks CS Dept. lawlor.cs.uaf.edu/~olawlor/ 2003/12/17

50

Open Source vs. Capitalism● Capitalism (private ownership, the profit

motive) works great in the physical world--nothing else even compares. But capitalism is based on the concept of money, an efficient way to ration access to scarce goods, which all physical products require.

● Open source is not based on money, because software is composed of bits plus human effort. Bits are free, and the world is big enough there is no scarcity of human effort. This means there is no more need to ration effort--people can freely spend their time doing wherever they like. The new scarce good is human attention, and the currency is publicity (search rankings/“googlejuice”).

Page 51: 1 How, Why, and When Open Source Works Dr. Orion Sky Lawlor U. Alaska Fairbanks CS Dept. lawlor.cs.uaf.edu/~olawlor/ 2003/12/17

51

Open Source Revolutionaries

● The old discredited social revolution, socialism, was implemented by nationalizing--stealing--the fruits of capitalism such as factories.

● Open Source is not about nationalizing or stealing the source code to existing commercial software. Instead, we are building new software from scratch. Microsoft is terrified of open source, but they're terrified because open source is a formidable competitor!

● Many large companies, seeing the benefits of open source development even inside their own organizations, have embraced open source (including IBM, Apple, Sun, etc)

Page 52: 1 How, Why, and When Open Source Works Dr. Orion Sky Lawlor U. Alaska Fairbanks CS Dept. lawlor.cs.uaf.edu/~olawlor/ 2003/12/17

52

Open-Source is the new Capitalism

● Free capitalist economies work better than command economies because smart people have the power to fix things themselves

● E.g., in America Henry Ford can just build a car factory “his way” around an assembly line. He doesn't have to convince the central committee that it's a good idea. He can just do it, and the market will decide who's right.

● Open source software works better than proprietary software because smart people have the power to fix things themselves

● E.g., if you've got a vision for “What Linux should be”, well, there's the source code--have at it! Your users will freely decide who is right. If you've got a vision for “What Windows should be”, you'll have to convince Microsoft's central planning committee before you can even begin.