From fca59bea770346cf1c1f9b0e00cb48a61b44a8f3 Mon Sep 17 00:00:00 2001 From: Harald Welte Date: Sun, 25 Oct 2015 21:00:20 +0100 Subject: import of old now defunct presentation slides svn repo --- .../intf_kommerz_community.mgp | 397 +++++++++++++++++++++ 1 file changed, 397 insertions(+) create mode 100644 2006/intf_kommerz_community-oscon2006/intf_kommerz_community.mgp (limited to '2006/intf_kommerz_community-oscon2006/intf_kommerz_community.mgp') diff --git a/2006/intf_kommerz_community-oscon2006/intf_kommerz_community.mgp b/2006/intf_kommerz_community-oscon2006/intf_kommerz_community.mgp new file mode 100644 index 0000000..17c99a1 --- /dev/null +++ b/2006/intf_kommerz_community-oscon2006/intf_kommerz_community.mgp @@ -0,0 +1,397 @@ +%include "default.mgp" +%default 1 bgrad +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%page +%nodefault +%back "blue" + +%center +%size 7 + +The Interface between +Free Software Community +and +Corporate World + +%center +%size 4 +by + +Harald Welte + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%page +Interface: FOSS community / corporate world +Introduction + +Who is speaking to you? + + an independent Free Software developer, consultant and trainer + who is a member of the Free Software community for 11 years + who has a background in both the community and experience with the corporate crowd + woh still is a die-hard technical guy + who will therefore not have fancy animated slides ;) + +Why is he speaking to you? + + because every working day he suffers the lack of understanding between the community and the business world + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%page +Interface: FOSS community / corporate world +What is Free Software? + + Software that is + available in source code + is licensed in a way to allow unlimited distribution + allows modifications, and distribution of modifications + is not freeware, but copyrighted work + subject to license conditions, like any proprietary software + READ THE LICENSE + +What is Open Source? + Practically speaking, not much difference + Remainder of this presentation will use the term FOSS (Free and Open Source Software) + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%page +Interface: FOSS community / corporate world +Ideas and Goals of the GNU GPL + + Free Software + Software that has fundamental freedoms: + to use it for any purpose + to "help your neighbour" (i.e. make copies) + to study it's functionality (reading source code) + to fix it myself (make modifications and run them) + + Copyleft + Is the legal idea to + exercising copyright to grant the above freedoms + assure that nobody can take away the freedom + + The GNU General Public License + Is a legal instrument to apply they copyleft idea on software + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%page +Interface: FOSS community / corporate world +The GNU GPL revisited + +Revisiting the GNU General Public License + + Regulates distribution of copyrighted code, not usage + Allows distribution of source code and modified source code + The license itself is mentioned + A copy of the license accompanies every copy + Allows distribution of binaries or modified binaries, if + The license itself is mentioned + A copy of the license accompanies every copy + The complete source code is either included with the copy (alternatively a written offer to send the source code on request to any 3rd party) + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%page +Interface: FOSS community / corporate world +What is the FOSS Community? + + Diverse + any individual can contribute + no formal membership required + every project has it's own culture, rules, ... + International + the internet boosted FOSS development + very common to have developers from all continents closely working together + Evolutionary + developers come and go, as their time permits + projects evolve over time, based on individual contributions + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%page +Interface: FOSS community / corporate world +People / Groups involved + + Really depends on size of projects + Small projects often a one-man show + Bigger project have groups / subgroups + Common Terms / Definitions + Maintainer + The person who formally maintains a project + Core Team / Steering Committee + A group of skilled developers who make important decisions + Subsystem Maintainer + Somebody who is responsible for a particular sub-project + Developer Community + All developers involved with a project + User Community + Users of the software who often share their experience with others + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%page +Interface: FOSS community / corporate world +Development Process + + "Rough concensus and running code" + Decisions made by technically most skilled people + Reputaion based hierarchy + Direct Communication between developers + Not driven by size of a target market + Release early, release often + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%page +Interface: FOSS community / corporate world +Motivations + + gaining reputation (like in the scientific community) + gaining development experience with real-world software + solving problems that the author encounters on his computer + fighting for free software as ideology + work in creative environment with skilled people and no managers ;) + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%page +Interface: FOSS community / corporate world +FOSS Community likes + + generic solutions + portable code + vendor-independent architecture + clean code (coding style!) + open standards + good technical documentation + raw hardware, no bundle of hardware and software sold as solution + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%page +Interface: FOSS community / corporate world +FOSS Community dislikes + + monopolistic structures + e.g. intel-centrism + closed 'industry forums' with rediculous fees + e.g. Infiniband, SD Card Association + standard documents that cost rediculous fees + NDA's, if they prevent development of FOSS + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%page +Interface: FOSS community / corporate world +Weak Ponts of FOSS + + often way behind schedule (if there is any) + already too late when projects start + started when there already is a real need + often a lack of (good) documentation + programmers write code, not enduser docs... + strong in infrastructure, weak in applications + traditionally developers interested in very technical stuff + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%page +Interface: FOSS community / corporate world +Why good relations? + + Let's presume you're using FOSS in your products. + Why would I want to have good relations with the FOSS community? + You're using their code in your products. + You're interested in their new developments. + You probably want to continue product delvelopment on their code + Thus, You're interested in cooperative development + You want their codebase to better fit for your application + Esp. in Security areas, you need to trust the community. Would you trust somebody that you're upsetting deliberately, or which you're fighting battles with? + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%page +Interface: FOSS community / corporate world +Practical Rules + + In the end, it's just like environmental protection: + FOSS community is like an ecosystem + If you behave friendly to the environment, there is sustainable development + If you just consume and abuse the FOSS ecosystem, you damage it + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%page +Interface: FOSS community / corporate world +Practical Rules + + 1. Much more communication + It's not a consumer/producer model, but cooperative! + Before you start implementation, talk to project maintainers + It's likely that someone has tried a similar thing before + It's likely that project maintainers have already an idea how to proceed with implementation + Avoid later hazzles when you want your code merged upstream + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%page +Interface: FOSS community / corporate world +Practical Rules + + 2. Interfaces + If there is a standard interface, use it + Don't invent new interfaces, try to extend existing ones + If there is an existing interface in a later (e.g. development) release upstream, backport that interface + Don't be afraid to touch API's if they're inefficient + Remember, you have the source and _can_ change them + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%page +Interface: FOSS community / corporate world +Practical Rules + + 3. Merge your code upstream + Initially you basically create a fork + Development of upstream project continues sometimes at high speed + If you keep it out of tree for too long time, conflicts arise + Submissions might get rejected in the first round + Cleanups needed, in coordination with upstream project + Code will eventually get merged + No further maintainance needed for synchronization between your contribution and the ongoing upstream development + Don't be surprised if your code won't be accepted if you didn't discuss it with maintainers upfront and they don't like your implementation + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%page +Interface: FOSS community / corporate world +Practical Rules + + 4. Write portable code + don't assume you're on 32bit cpu + don't assume you're on little endian + if you use assembly optimized code, put it in a plugin + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%page +Interface: FOSS community / corporate world +Practical Rules + + 5. Write clean code + as opposed to closed-source software, people actually read it + it will be noticed if coding style is bad + lots of projects have official CodingStyle rules + if you comment, do it only in english! + don't clutter hardware/product specific hacks over common code + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%page +Interface: FOSS community / corporate world +Practical Rules + + 6. Binary-only software will not be accepted + yes, there are corner cases like FTC regulation on softradios + but as a general rule of thumb, the community will not consider object code as a solution to any problem + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%page +Interface: FOSS community / corporate world +Practical Rules + + 7. Avoid fancy business models + If you ship the same hardware with two different drivers (half featured and full-featured), any free software will likely make full features available on that hardware. + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%page +Interface: FOSS community / corporate world +Practical Rules + + 8. Show your support for the Community + By visibly contributing to the project + discussions + code + equipment + By funding developer meetings + By making cheap hardware offers to developers + By contracting / sponsoring / hiring developers from the community + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%page +Interface: FOSS community / corporate world +Licensing under GPL + + The GPL is a legal instrument to approximate the goals of Free Software and the 'moral code of conduct' of many FOSS projects by using copyright law + Always remember: The goal is to give the user (incl. your customer) fundamental freedoms + GPL is just a tool to force distributors to give those freedoms to users + It is a legally binding license agreement, since nothing else grants you permission for modification and redistribution + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%page +Interface: FOSS community / corporate world +Enforcing the GNU GPL + + Enforcing the GNU GPL + has always been done quietly by the FSF in the USA + used to only happen out of court + results were never published + As number of cases started to increase in 2003, Harald Welte couldn't stand it any longer and started his own enforcement. Some time later, gpl-violtions.org was born. + Difference: Publicize enforcement, create awareness within corporate crowd + gpl-violations.org has + enforced close to 100 cases so far + most of them out of court + obtained five preliminary injunctions + sustained one appeals case against an injunction + is currently filing the first regular lawsuit + some examples: D-Link, Sitecom, Linksys/Cisco, Sun, Siemens, Fujitsu-Siemens, Telekom, Samsung, Hitachi, Motorola, Kenwood, Maxtor, Western Digital, ... + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%page +Interface: FOSS community / corporate world +The biggest myths about the GPL + +The biggest myths about the GPL + The GPL is not enforcible + Software licensed under GPL has no copyright + Unmodified distribution does not require source code availability + The vendor can wait for a source code request (without offering it) + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%page +Interface: FOSS community / corporate world +The most common mistakes + +The most common mistakes + not including the "scripts to control installation" + only providing off-site hyperlinks to license and/ore source code + not responding to support requests for source code + charging rediculously high fees for physical shipping of source code + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%page +Interface: FOSS community / corporate world +The most common mistakes + +The most common mistakes + not even once reading the GPL text and/or the FAQ from the FSF + not including the GPL license text with the product + not including a written offer with the product + not considering that the GPL also applies to software updates + only providing original source code (e.g. vanilla kernel.org kernel) + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%page +Interface: FOSS community / corporate world +Thanks + + Thanks to + Alan Cox, Alexey Kuznetsov, David Miller, Andi Kleen + for implementing (one of?) the world's best TCP/IP stacks + Paul 'Rusty' Russell + for starting the netfilter/iptables project + for trusting me to maintain it today + Astaro AG + for sponsoring parts of my netfilter work + Free Software Foundation + for the GNU Project + for the GNU General Public License + LinBit + for inviting me to speak at OSCON + +%size 3 + The slides of this presentation are available at http://svn.gnumonks.org/ + + -- cgit v1.2.3