You are on page 1of 34

IF3250 PROYEK PERANGKAT LUNAK

OPEN SOURCE SOFTWARE

Sem II 2013/2014

Free Software Foundation FSF


(www.fsf.org)
2

The Free Software Foundation (FSF) is a nonprofit


organization with a worldwide mission to promote
computer user freedom and to defend the rights of
all free software users
 founded

in 1985
 principal organizational sponsor of the GNU Project
 the FSF maintains historic articles covering free software
philosophy and maintains the Free Software Definition

IF3250-Proyek Perangkat Lunak (IF-ITB)

Free Software - FSF


3

Free software means software that respects users'


freedom and community.
Roughly, it means that the users have the freedom
to run, copy, distribute, study, change and
improve the software.
Thus, free software is a matter of liberty, not price
 free

as in free speech, not as in free beer

IF3250-Proyek Perangkat Lunak (IF-ITB)

Free Software - FSF


4

A program is free software if the program's users have the


four essential freedoms:



The freedom to run the program, for any purpose (freedom 0).
The freedom to study how the program works, and change it so it does
your computing as you wish (freedom 1). Access to the source code is a
precondition for this.
The freedom to redistribute copies so you can help your neighbor
(freedom 2).
The freedom to distribute copies of your modified versions to others
(freedom 3). By doing this you can give the whole community a chance
to benefit from your changes. Access to the source code is a precondition
for this.

IF3250-Proyek Perangkat Lunak (IF-ITB)

The GNU Licenses


5

The following licenses are published by the Free


Software Foundation:
 GNU

General Public License (GPL)


 GNU Lesser General Public License (LGPL)
 GNU Affero General Public License (AGPL)
 GNU Free Documentation License (FDL)

IF3250-Proyek Perangkat Lunak (IF-ITB)

Open Source Initiative OSI


(opensource.org)
6

The OSI is a global non-profit corporation that supports


and promotes the open source movement.
founded in 1998
 not a membership oragnization
 maintain the Open Source Definition, and a list of licenses
that comply with that definition


Open source software is software that can be freely


used, changed, and shared (in modified or unmodified
form) by anyone.
Open source software is made by many people, and
distributed under licenses that comply with the Open
Source Definition.
IF3250-Proyek Perangkat Lunak (IF-ITB)

OSI Open Source Definition


7

1. Free Redistribution
2. Source Code
3. Derived Works
4. Integrity of The Author's Source Code
5. No Discrimination Against Persons or Groups
6. No Discrimination Against Fields of Endeavor
7. Distribution of License
8. License Must Not Be Specific to a Product
9. License Must Not Restrict Other Software
10. License Must Be Technology-Neutral
IF3250-Proyek Perangkat Lunak (IF-ITB)

OSI Open Source Definition


8

1. Free Redistribution
The license shall not restrict any party from selling or giving away
the software as a component of an aggregate software distribution
containing programs from several different sources. The license shall
not require a royalty or other fee for such sale.
2. Source Code
The program must include source code, and must allow distribution in
source code as well as compiled form. Where some form of a
product is not distributed with source code, there must be a wellpublicized means of obtaining the source code for no more than a
reasonable reproduction cost preferably, downloading via the
Internet without charge. The source code must be the preferred form
in which a programmer would modify the program. Deliberately
obfuscated source code is not allowed. Intermediate forms such as
the output of a preprocessor or translator are not allowed.
IF3250-Proyek Perangkat Lunak (IF-ITB)

OSI Open Source Definition


9

3. Derived Works
The license must allow modifications and derived works, and must
allow them to be distributed under the same terms as the license of
the original software.
4. Integrity of The Author's Source Code
The license may restrict source-code from being distributed in
modified form only if the license allows the distribution of "patch
files" with the source code for the purpose of modifying the program
at build time. The license must explicitly permit distribution of
software built from modified source code. The license may require
derived works to carry a different name or version number from the
original software.

IF3250-Proyek Perangkat Lunak (IF-ITB)

OSI Open Source Definition


10

5. No Discrimination Against Persons or Groups


The license must not discriminate against any person or
group of persons.
6. No Discrimination Against Fields of Endeavor
The license must not restrict anyone from making use of the
program in a specific field of endeavor. For example, it may
not restrict the program from being used in a business, or
from being used for genetic research.
7. Distribution of License
The rights attached to the program must apply to all to
whom the program is redistributed without the need for
execution of an additional license by those parties.
IF3250-Proyek Perangkat Lunak (IF-ITB)

OSI Open Source Definition


11

8. License Must Not Be Specific to a Product


The rights attached to the program must not depend on the program's
being part of a particular software distribution. If the program is extracted
from that distribution and used or distributed within the terms of the
program's license, all parties to whom the program is redistributed should
have the same rights as those that are granted in conjunction with the
original software distribution.
9. License Must Not Restrict Other Software
The license must not place restrictions on other software that is distributed
along with the licensed software. For example, the license must not insist that
all other programs distributed on the same medium must be open-source
software.
10. License Must Be Technology-Neutral
No provision of the license may be predicated on any individual technology
or style of interface.
IF3250-Proyek Perangkat Lunak (IF-ITB)

OSI Popular Licenses


12











Apache License 2.0


BSD 3-Clause "New" or "Revised" license
BSD 2-Clause "Simplified" or "FreeBSD" license
GNU General Public License (GPL)
GNU Library or "Lesser" General Public License (LGPL)
MIT license
Mozilla Public License 2.0
Common Development and Distribution License
Eclipse Public License
IF3250-Proyek Perangkat Lunak (IF-ITB)

GNU GPL
13

This license has two versions that are actively used in


many open source communities:
GNU General Public License, version 2.0 (GPLv2)
 GNU General Public License, version 3.0 (GPLv3)


If you have licensed software you've written under the


GPL version 2.0, you may wish to relicense your
software using GPL version 3.0.
Version 1.0 of the GNU General Public License is
generally seen as deprecated.
the Perl community still uses GPL version 1.0 or later,
 the GPL version 1.0 should not be used for new projects
outside of this community


IF3250-Proyek Perangkat Lunak (IF-ITB)

GNU GPL
14

GNU General Public License v3

Created by Richard Stallman

Fundamental example of an open-source license.

Highly restrictive.

Jonathan Hood
CSE 4000
Practical Issues in Software Engineering

IF3250-Proyek Perangkat Lunak (IF-ITB)

GNU GPL
15

if( use_gpl_code ) {
distribute_changes_as_gpl();
distribute_linked_apps_as_gpl_compatible();
}

Jonathan Hood
CSE 4000
Practical Issues in Software Engineering

IF3250-Proyek Perangkat Lunak (IF-ITB)

GNU LGPL
16

GNU Lesser General Public License

Can be linked to by non-GPL compatible software.

Can be distributed with your software...

Jonathan Hood
CSE 4000
Practical Issues in Software Engineering

IF3250-Proyek Perangkat Lunak (IF-ITB)

GNU LGPL
17

if( modify_lgpl_program ) {
distribute_changes_as_lgpl();
} else {
distribute_however_you_like();
}

Jonathan Hood
CSE 4000
Practical Issues in Software Engineering

IF3250-Proyek Perangkat Lunak (IF-ITB)

Applying GNU GPL


18


Attach the following notices to the program. It is safest to attach them to the start of
each source file to most effectively convey the exclusion of warranty; and each file
should have at least the "copyright" line and a pointer to where the full notice is
found.
One line to give the program's name and a brief idea of what it does.
Copyright (C) <year> <name of author>
This program is free software; you can redistribute it and/or modify it under the terms
of the GNU General Public License as published by the Free Software Foundation;
either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this
program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite
330, Boston, MA 02111-1307 USA

IF3250-Proyek Perangkat Lunak (IF-ITB)

Copyleft
19

"Copyleft" refers to licenses that allow derivative


works but require them to use the same license as
the original work.
 For

example, if you write some software and release it


under the GNU General Public License (a widely-used
copyleft license), and then someone else modifies that
software and distributes their modified version, the
modified version must be licensed under the GNU GPL
too including any new code written specifically to go
into the modified version
IF3250-Proyek Perangkat Lunak (IF-ITB)

Non-Copyleft
20

Most copyleft licenses are Open Source, but not all


Open Source licenses are copyleft.
When an Open Source license is not copyleft, that
means software released under that license can be
used as part of programs distributed under other
licenses, including proprietary (non-open-source)
licenses.
 For

example, the BSD license is a non-copyleft Open


Source license. Such licenses are usually called either
"non-copyleft" or "permissive" open source licenses
IF3250-Proyek Perangkat Lunak (IF-ITB)

Software in the Public Domain


21

"Public domain" is a technical term in copyright law


that refers to works not under copyright
 either

because they were never in copyright to begin


with (for example, works authored by U.S. government
employees, on government time and as part of their
job, are automatically in the public domain),
 or because their copyright term has finally lapsed and
they have "fallen into" the public domain.

IF3250-Proyek Perangkat Lunak (IF-ITB)

Types of Open Source Software


( http://www.opensourcebc.com/open-source-software/types)
22





Community Based Open Source Software


Vendor Based Open Source Software
Hybrid Open Source Software

IF3250-Proyek Perangkat Lunak (IF-ITB)

Community Based Open Source Software


23

Community based Open Source Software is software


that is developed and managed by a community of
people.
Often times, there are key developers in the community,
but the community is open for anyone to join.
Examples of community-based Open Source Software
include: Apache, Netscape and GNU Compiler
Collection.

IF3250-Proyek Perangkat Lunak (IF-ITB)

Vendor Based Open Source Software


24

Vendor based, or Commercial, Open Source Software is


software that is primarily developed and released by a
company.
Typically, the vendor makes a version of the product
available in a community edition that is freely
downloadable.
The community edition does not come with support and
typically has less functionality than their commercial version
(often called a Professional or Enterprise version).
Examples of this type of Open Source software include
Talend, SugarCRM, and Jaspersoft.
IF3250-Proyek Perangkat Lunak (IF-ITB)

Hybrid Open Source Software


25

The Hybrid model of Open Source software often


evolves from a community based system. This occurs
when a company forms around the open source project.
The company typically sells pre-packaged releases of
the software and offers training, support and other
services.
In addition, the company often develops and offers
proprietary add-ons or customizations to the to Open
Source product.
Examples of this are Red Hat (selling Linux),
HortonWorks (selling Apache Hadoop), and
EnterpriseDB (selling PostgreSQL).
IF3250-Proyek Perangkat Lunak (IF-ITB)

Pros: Footprint
26

People all over the world look at the same code.

Potentially huge development teams.

Broader testing base.

Jonathan Hood
CSE 4000
Practical Issues in Software Engineering

IF3250-Proyek Perangkat Lunak (IF-ITB)

Pros: Cost
27

IF a component fits your system:

Save many development hours

Small customizations may be easy

A lot of testing is done for you

Jonathan Hood
CSE 4000
Practical Issues in Software Engineering

IF3250-Proyek Perangkat Lunak (IF-ITB)

Pros: Documentation
28

Open source projects have many developers.

For them, documentation is a must.

Bad documentation indicates a bad project.

Jonathan Hood
CSE 4000
Practical Issues in Software Engineering

IF3250-Proyek Perangkat Lunak (IF-ITB)

Cons: Cost
29

OSS may not fit your system!

Large modifications -> Time Consuming

Testing is hard -> You introduced bugs!

People with expertise are expensive.

Jonathan Hood
CSE 4000
Practical Issues in Software Engineering

IF3250-Proyek Perangkat Lunak (IF-ITB)

Cons: Licensing
30

In short, hire a lawyer!

GPL licenses are complex

FSF protects OSS with a vengeance.

A special case. You want to open source!

Jonathan Hood
CSE 4000
Practical Issues in Software Engineering

IF3250-Proyek Perangkat Lunak (IF-ITB)

Cons: Intellectual Property


31

You can still infringe on someones patents.

Patent trolls are real.

Again, hire a lawyer!

Jonathan Hood
CSE 4000
Practical Issues in Software Engineering

IF3250-Proyek Perangkat Lunak (IF-ITB)

Cons: Temperamental Commun


ity

32

Make sure you contribute back, at least a little

This community is full of 'early adopters

They influence people's opinions

Jonathan Hood
CSE 4000
Practical Issues in Software Engineering

IF3250-Proyek Perangkat Lunak (IF-ITB)

Conclusion
33

Open Source Software is a great tool

It's not a silver bullet!

Know the licenses, and when they are appropriate.

It won't always save you money

Jonathan Hood
CSE 4000
Practical Issues in Software Engineering

IF3250-Proyek Perangkat Lunak (IF-ITB)

References
34





www.fsf.org
opensource.org
http://www.opensourcebc.com/open-sourcesoftware/types

IF3250-Proyek Perangkat Lunak (IF-ITB)

You might also like