0:00:11.849,0:00:14.669 welcome everybody welcome to BSD v. GPL 0:00:14.669,0:00:19.259 first I'd like to thank the organizers and the volunteers 0:00:19.259,0:00:20.609 making the New York City BSDCon possible 0:00:20.609,0:00:23.579 and my employer OmniTI 0:00:23.579,0:00:24.830 for sponsoring my talk 0:00:24.830,0:00:26.789 I had to get that in 0:00:26.789,0:00:29.169 a couple years ago I was invited to give a talk here 0:00:29.169,0:00:31.990 that was quite a lot of fun to give and 0:00:31.990,0:00:33.990 seemed to be well received. Fortunately they were 0:00:33.990,0:00:37.110 fool hardy enough to invite me back again 0:00:37.110,0:00:41.860 but as we know sequels really measure up so the 0:00:41.860,0:00:44.890 official title of this is not the sequel to ""BSD is Dying"" 0:00:44.890,0:00:51.790 but don't worry it's just as short as the first one 0:00:51.790,0:00:54.530 BSD v. GPL the great debate 0:00:54.530,0:00:57.990 the ongoing conflict between users of the BSD 0:00:57.990,0:01:00.880 and GPL licenses 0:01:00.880,0:01:02.290 well what is the debate 0:01:02.290,0:01:03.430 do you mean like 0:01:03.430,0:01:04.799 gosh Jason 0:01:04.799,0:01:07.000 I didn't know there was a debate between 0:01:07.000,0:01:10.990 the BSD and GPL licenses 0:01:10.990,0:01:13.130 or like dull Jason 0:01:13.130,0:01:14.220 everyone knows that 0:01:14.220,0:01:15.869 BSD has already won 0:01:20.220,0:01:22.360 well for the sake of argument 0:01:22.360,0:01:25.250 let's assume that we're talking about the former 0:01:25.250,0:01:27.480 so back to the debate 0:01:27.480,0:01:30.680 which license is more free 0:01:30.680,0:01:33.430 it depends a lot on how you define freedom 0:01:33.430,0:01:37.000 is it a tool used to guarantee the freedom of the code 0:01:37.000,0:01:38.560 for everyone 0:01:38.560,0:01:39.900 or is it a mechanism 0:01:39.900,0:01:42.620 providing select freedoms 0:01:42.620,0:01:49.620 to a select group of users 0:01:52.420,0:01:56.980 I'll let you make that judgment for yourselves 0:01:56.980,0:01:59.540 but first let's step back in time a moment 0:01:59.540,0:02:01.570 look at the origins of the BSD 0:02:01.570,0:02:03.440 and GPL licenses 0:02:03.440,0:02:10.040 which should help us better understand 0:02:10.040,0:02:10.440 their goals and philosophies. 0:02:12.420,0:02:15.079 I know boo 0:02:15.079,0:02:20.049 Even though work on the ancestors of UNIX dates back to 1974 0:02:20.049,0:02:25.069 it took roughly fifteen years to get to a point 0:02:25.069,0:02:26.959 where these licenses became a necessity back in 1995 0:02:26.959,0:02:28.299 Richard Stallman 0:02:28.299,0:02:30.909 a member of the staff at MIT 0:02:30.909,0:02:31.840 had a dispute 0:02:31.840,0:02:34.769 with the company named UniPress 0:02:34.769,0:02:37.419 another developer named James Gosling 0:02:37.419,0:02:42.699 had developed the first version of Emacs written in C 0:02:43.759,0:02:47.809 After Stallman had incorporated parts of Goslings Emacs 0:02:47.809,0:02:48.809 into GNU Emacs 0:02:48.809,0:02:53.079 Gosling sold the rights to UniPress 0:02:53.079,0:02:55.719 UniPress threatened Stallman 0:02:55.719,0:02:58.569 against further redistribution of the Gosling 0:02:58.569,0:03:01.169 so he rewrote the effected portions 0:03:01.169,0:03:04.819 and released a new version under a copyleft license 0:03:04.819,0:03:08.449 call Emacs General Public License 0:03:08.449,0:03:10.220 the June 1988 issue 0:03:10.220,0:03:12.159 of the GNU bulletin 0:03:12.159,0:03:15.669 first mentioned that GNU general public license 0:03:15.669,0:03:18.449 but even then his earliest announcement foreshadowed 0:03:18.449,0:03:25.449 an underlying theme that forms the great debate 0:03:27.009,0:03:29.599 Switching gears 0:03:29.599,0:03:31.449 switching gears we find ourselves 0:03:31.449,0:03:33.609 in the summer of 1989 0:03:33.609,0:03:36.010 soaking up the summer rays in the computer lab 0:03:36.010,0:03:38.889 of CSRG of Cal Berkeley 0:03:38.889,0:03:41.019 The Berkeley Software Distribution 0:03:41.019,0:03:44.859 already had thousands of copies distributed to users 0:03:44.859,0:03:46.769 Because the releases included the source code 0:03:46.769,0:03:48.519 to AT&T Unix 0:03:48.519,0:03:50.799 as well as Berkeley's improvements 0:03:50.799,0:03:52.480 users were required to purchase 0:03:52.480,0:03:55.619 an AT&T source license 0:03:55.619,0:03:57.079 Demand had built up 0:03:57.079,0:03:59.139 for a version of BSD Unix 0:03:59.139,0:04:02.650 that didn't require an AT&T source license 0:04:02.650,0:04:05.269 So BSD developers were able to put together a release 0:04:05.269,0:04:07.039 free of AT&T code 0:04:07.039,0:04:10.609 that included the BSD originated TCP/IP networking 0:04:10.609,0:04:13.979 stack and supported utilities 0:04:13.979,0:04:17.339 This version was officially known as 0:04:17.339,0:04:18.339 Networking Release 1 or NET/1 0:04:18.339,0:04:20.359 and was released under a liberal license 0:04:20.359,0:04:22.839 where the user could redistribute the code 0:04:22.839,0:04:24.189 modified or unmodified 0:04:24.189,0:04:26.449 in source or binary form 0:04:26.449,0:04:30.169 with no accounting of royalties to Berkeley 0:04:30.169,0:04:32.069 Even with these liberal terms 0:04:32.069,0:04:35.470 hundreds of organizations step forward to pay the $1000 fee 0:04:35.470,0:04:41.590 for copies of the official NET/1 media 0:04:41.590,0:04:45.989 By 1991 the free software community had considerable 0:04:45.989,0:04:48.239 momentum with the success of the GNU 0:04:48.239,0:04:50.709 compiler collection in userland tools 0:04:50.709,0:04:53.059 Berkeley's own networking release 2 0:04:53.059,0:04:56.180 GPLv2 and the Lesser General Public License 0:04:56.180,0:04:58.419 and the Linux kernel 0:04:59.639,0:05:02.130 a fledgling knockoff of MINIX 0:05:02.130,0:05:03.400 created by a student 0:05:03.400,0:05:08.219 at the University of Helsinki 0:05:08.219,0:05:12.879 Come 1992 the BSD community was buckling up for a wild right 0:05:12.879,0:05:15.080 Unix Systems Laboratories 0:05:15.080,0:05:17.709 a subsidiary of AT&T 0:05:17.709,0:05:20.050 filed suit against BSDI 0:05:20.050,0:05:22.840 claiming that their derivative of Berkeley's NET/2 0:05:22.840,0:05:25.919 infringed on the official the AT&T copyrights 0:05:25.919,0:05:27.460 By 1994 0:05:27.460,0:05:28.920 the lawsuit was settled 0:05:28.920,0:05:32.520 largely in favor of BSDI and Cal Berkeley 0:05:32.520,0:05:38.819 But the impact of BSD adoption was substantial 0:05:38.819,0:05:41.149 Hello!! 0:05:41.149,0:05:45.660 New users gravitated to the Linux and GNU alternative 0:05:45.660,0:05:48.469 in droves resulting in increased acceptance 0:05:48.469,0:05:54.490 of Stallman's GPL license and GNU manifesto with 0:05:54.490,0:05:56.010 A little bit of history under our belt we can begin to take 0:05:56.010,0:05:59.180 a deeper look at the goals of each license 0:05:59.180,0:06:02.479 and the means it uses 0:06:02.479,0:06:06.699 and I means it uses to reach those ends 0:06:06.699,0:06:09.909 Certainly these two licenses share some common goals 0:06:09.909,0:06:12.250 they're both OSI approved licenses 0:06:12.250,0:06:13.310 and suitable 0:06:13.310,0:06:16.870 for a variety of software projects 0:06:16.870,0:06:20.459 Both licenses require attribution to remain intact 0:06:20.459,0:06:23.770 typically in the form of a copyright notice within the 0:06:23.770,0:06:26.560 license. Every developer reserves the right to point 0:06:26.560,0:06:29.509 a completed works and take credit for their efforts 0:06:29.509,0:06:33.529 admittedly some may choose not to 0:06:33.529,0:06:37.439 We don't have any MySQL developers in here. do we? 0:06:37.439,0:06:41.729 Both licenses 0:06:41.729,0:06:43.999 both licenses convey freedoms to the user 0:06:43.999,0:06:47.399 to use the code as he or she sees fit 0:06:47.399,0:06:50.059 to read and learn from the code 0:06:50.059,0:06:52.059 use the resulting binaries 0:06:52.059,0:06:54.470 to develop your own applications 0:06:54.470,0:06:59.960 and stick it to your favorite three letter agencies 0:06:59.960,0:07:02.619 both licenses allow users 0:07:02.619,0:07:04.500 to redistribute 0:07:04.500,0:07:06.979 source code in binary forms 0:07:06.979,0:07:08.930 provided certain conditions are met 0:07:08.930,0:07:11.949 We'll come back to this in a few moments 0:07:11.949,0:07:14.969 Both licenses provide some basic disclaimers 0:07:14.969,0:07:17.699 as a layer of protection for the developer 0:07:17.699,0:07:21.159 against claims of liability 0:07:21.159,0:07:22.949 for any direct 0:07:22.949,0:07:24.539 indirect 0:07:24.539,0:07:26.550 incidental 0:07:26.550,0:07:27.999 exemplary 0:07:27.999,0:07:30.659 That is a really hard one to get a picture of 0:07:30.659,0:07:37.289 or consequential damages 0:07:37.289,0:07:39.070 Including but not limited to 0:07:39.070,0:07:46.070 procurement of substitute goods and services 0:07:46.939,0:07:48.060 loss of use, 0:07:55.789,0:08:02.789 loss of data, 0:08:04.990,0:08:09.710 loss of profits, 0:08:09.710,0:08:16.710 or business interruption 0:08:17.119,0:08:20.519 I'd like to say that I did this slide before this week 0:08:20.519,0:08:24.449 anyone who knows me knows that's not true 0:08:24.449,0:08:27.799 As we've seen both BSD and GPL licenses share 0:08:27.799,0:08:28.599 some common freedoms 0:08:28.599,0:08:31.839 but as we know the devil's in the details 0:08:31.839,0:08:34.800 I'd actually like to ask for audience participation 0:08:34.800,0:08:35.600 in the following slides 0:08:35.600,0:08:36.719 this is my own experiment 0:08:36.719,0:08:41.110 to help gauge the communities familiarity with the licenses 0:08:41.110,0:08:42.870 I'm going to read off a phrase and I would like 0:08:42.870,0:08:45.990 you all to tell me which license it is applicable too 0:08:45.990,0:08:49.120 ok lets begin 0:08:49.120,0:08:50.029 freedom for everyone 0:08:50.029,0:08:51.619 even businesses 0:08:51.619,0:08:54.810 BSD 0:08:54.810,0:08:57.060 anti-capitalist socialism 0:08:57.060,0:09:00.560 GPL 0:09:00.560,0:09:02.210 thank you 0:09:02.210,0:09:04.540 that's correct 0:09:04.540,0:09:08.190 easy compliance BSD 0:09:08.190,0:09:09.529 force code 0:09:09.529,0:09:10.700 to remain open 0:09:10.700,0:09:13.190 GPL 0:09:13.190,0:09:15.230 world domination 0:09:15.230,0:09:18.180 BSD 0:09:18.180,0:09:19.690 perhaps FreeBSD 0:09:22.080,0:09:25.420 I'll give you half credit 0:09:25.420,0:09:29.960 shut up and hack. FreeBSD. thank you 0:09:29.960,0:09:31.220 brief and simple 0:09:31.220,0:09:33.620 BSD 0:09:33.620,0:09:40.190 complex and obtuse. FreeBSD 0:09:42.200,0:09:44.250 somebody hacked 0:09:44.390,0:09:47.300 This is not the ASP graph this is something 0:09:47.300,0:09:49.800 someone pointed to online it represents the word count 0:09:49.800,0:09:55.800 in each version of the BSD and GPL licenses 0:10:01.790,0:10:06.270 BSD actually goes to as you move the fourth and third classes 0:10:11.340,0:10:15.120 take that as you will 0:10:15.120,0:10:17.080 I mentioned previously that both include 0:10:17.080,0:10:19.260 some conditions regarding distribution 0:10:19.260,0:10:22.860 this in particular is where you see a real 0:10:22.860,0:10:23.370 diversion philosophies 0:10:23.370,0:10:26.439 The GPL license includes a number of terms and conditions 0:10:26.439,0:10:28.880 intent on restricting the sale, use 0:10:28.880,0:10:31.130 and redistribution of the effect it works 0:10:31.130,0:10:34.190 let's look at the examples 0:10:34.190,0:10:34.689 First 0:10:34.689,0:10:37.610 your allowed to copy and distribute the program source code 0:10:37.610,0:10:39.090 so long as you include 0:10:39.090,0:10:40.920 the copyright notice 0:10:40.920,0:10:43.040 the disclaimer of warranty 0:10:43.040,0:10:46.460 and any notices that refer to the license 0:10:46.460,0:10:52.230 I wasn't sure that anybody would get this 0:10:52.230,0:10:55.840 You may also charge a fee for packaging or 0:10:55.840,0:10:57.690 transferal of the work 0:10:57.690,0:11:02.750 or offer warranty protection for a fee 0:11:02.750,0:11:07.330 Which you may not sell the software 0:11:07.330,0:11:10.279 Second, you can copy or distribute any derivative works 0:11:10.279,0:11:13.010 providing you meet the following conditions 0:11:13.010,0:11:17.860 Any modified files most prominently displayed notice that 0:11:17.860,0:11:23.160 the files are changed it must be licensed as a whole and 0:11:23.160,0:11:26.740 no charge to any third parties and the program reads commands 0:11:26.740,0:11:28.800 interactively when run it must display an announcement 0:11:28.800,0:11:35.800 including a copyright notice and disclaimer of warrenty 0:11:37.570,0:11:40.860 Third, you may copy or distribute the code in binary form 0:11:40.860,0:11:43.140 provided you meet these conditions 0:11:43.140,0:11:46.190 you include the corresponding source code 0:11:46.190,0:11:49.860 and a written offer 0:11:49.860,0:11:52.380 valid for at least three years 0:11:52.380,0:11:57.720 to avoid any third party with a copy of the source code 0:11:57.720,0:12:04.720 For a fee not to exceed the cost of distributing the source code 0:12:06.120,0:12:08.820 there are other restrictions as well we have covered 0:12:08.820,0:12:09.690 the most intrusive ones 0:12:09.690,0:12:16.690 the other is man to the power of relevant gesturing 0:12:17.680,0:12:21.500 To be fair the BSD licenses and without its own restrictions 0:12:21.500,0:12:26.620 most of the mainstream BSD distributions such as FreeBSD, 0:12:26.620,0:12:30.620 NetBSD and DragonFly BSD 0:12:30.620,0:12:31.950 for further too cause BSD license when you code 0:12:31.950,0:12:34.420 the only BSD project goes one step further is using 0:12:34.420,0:12:38.600 the BSD like a modified ISC license with no extra causes 0:12:38.600,0:12:42.010 but again even these have a number restrictions 0:12:42.010,0:12:42.980 on users freedoms 0:12:42.980,0:12:44.500 Here's an exhaustive list 0:12:44.500,0:12:51.500 of these restrictions. 0:12:58.040,0:13:02.640 The more free licenses is the easier it is to comply with 0:13:02.640,0:13:05.190 Conversely the more complex a license becomes 0:13:05.190,0:13:10.240 the more likely it is that violations to occur 0:13:10.240,0:13:13.250 The software freedom law center 0:13:13.250,0:13:20.150 offers legal representation 0:13:20.150,0:13:23.220 the free and open source software projects 0:13:23.220,0:13:27.820 The web site will lead you to believe that they defend 0:13:27.820,0:13:28.590 the rights of all free software projects 0:13:28.590,0:13:30.830 But the quick review the press releases shows that every 0:13:30.830,0:13:35.560 single case that have accepted has been related to the GPL 0:13:35.560,0:13:38.040 In fact many of you may remember last year 0:13:38.040,0:13:41.570 when one of the Linux free licensed developers 0:13:41.570,0:13:43.519 realizes straight further Open BSD strive into the GPL 0:13:46.840,0:13:48.250 which is fine 0:13:48.250,0:13:52.860 But they also removed copyright license notification 0:13:52.860,0:13:55.020 The software freedom also stepped in 0:13:55.020,0:13:58.570 in convince Linux developers to correct their mistakes 0:13:58.570,0:14:02.570 But not until a storm of controversy was unleashed 0:14:02.570,0:14:06.700 causing hardship among the Linux and BSD communities 0:14:06.700,0:14:10.170 The press releases carefully worded 0:14:10.170,0:14:14.980 to make it sound 0:14:14.980,0:14:16.749 to make it sound like they were betting 0:14:16.749,0:14:20.360 the open FreeBSD license for compatibility 0:14:20.360,0:14:25.420 Rather than explaining how the Linux developers had infringed on its copyright 0:14:25.420,0:14:31.830 does anyone else smell something? fun? 0:14:31.830,0:14:35.030 Because copyrights and software laws are so complex 0:14:35.030,0:14:38.830 The number of mess cropped up regarding BSD and GPL licenses 0:14:38.830,0:14:40.640 I'd like to conclude my talk 0:14:40.640,0:14:43.740 by clearing up the theories 0:14:43.740,0:14:45.010 Myth #1 0:14:45.010,0:14:47.390 The GPL license is more free 0:14:47.390,0:14:49.610 Although places restrictions on users 0:14:49.610,0:14:51.540 the aggregate of freedom caused by 0:14:51.540,0:14:54.420 forcing users to publish their changes 0:14:54.420,0:14:59.390 results in a greater level of freedom 0:14:59.390,0:15:01.880 Fact: More restrictions always means less free 0:15:01.880,0:15:03.579 Whether you are original developer 0:15:03.579,0:15:04.620 or end user the GPL always places 0:15:04.620,0:15:08.710 additional restrictions on your copying, 0:15:08.710,0:15:09.910 modification or 0:15:09.910,0:15:12.950 redistribution of the effected works 0:15:12.950,0:15:14.520 Myth#2 0:15:14.520,0:15:16.830 BSD code can be stolen 0:15:16.830,0:15:20.350 GPL can claim because the company can take the code 0:15:20.350,0:15:22.110 and make their changes proprietary 0:15:22.110,0:15:23.439 that is somehow lessens 0:15:23.439,0:15:29.000 the freeness of the original code. 0:15:29.000,0:15:31.450 Fact: This is completing harder bullshit 0:15:31.450,0:15:34.450 The original code is always as free as original 0:15:34.450,0:15:35.060 developer chooses it to be 0:15:35.060,0:15:40.760 Not even corporations can subvert rights of other users 0:15:40.760,0:15:41.130 to the BSD license code 0:15:41.130,0:15:42.600 Myth#3 0:15:42.600,0:15:45.060 Sir Richard Stallman is a socialist 0:15:45.060,0:15:48.670 intent on destroying commercial software companies 0:15:48.670,0:15:49.830 Fact: 0:15:53.780,0:15:56.310 Richard Stallman is actually communist 0:15:56.310,0:16:00.380 intent on destroying commercial software companies 0:16:00.380,0:16:03.380 Socialism actually promotes state ownership of 0:16:03.380,0:16:03.920 means of production 0:16:03.920,0:16:05.090 rather 0:16:05.090,0:16:07.090 Stallman believes in the class of state 0:16:07.090,0:16:07.870 what he makes about the rules