0% found this document useful (0 votes)
15 views64 pages

Final Ost

The document outlines the principles and benefits of Open Source Software (OSS), emphasizing user rights such as free upgrades, access to source code, and the ability to modify software. It differentiates OSS from proprietary software and details the criteria that define open source licenses, including the rights to redistribute, modify, and use software without restrictions. The document also highlights the importance of community contributions and the economic advantages of open source development.

Uploaded by

shraddha.kk22
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
15 views64 pages

Final Ost

The document outlines the principles and benefits of Open Source Software (OSS), emphasizing user rights such as free upgrades, access to source code, and the ability to modify software. It differentiates OSS from proprietary software and details the criteria that define open source licenses, including the rights to redistribute, modify, and use software without restrictions. The document also highlights the importance of community contributions and the economic advantages of open source development.

Uploaded by

shraddha.kk22
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 64

Open Source Tools

MODULE-I
Open Source Software

1.1WHY OPEN SOURCE?


The typical computer user owns lots of software that he bought years ago and
no longer uses today. He might have upgraded his computer or changed brands,
and then the program wouldn't work any longer. The software might have
become old. The program may simply not do what he needs. He may have
bought two or more computers, and doesn't want to pay for a second copy of
the software. Whatever the reason, the software that he paid for years ago is not
doing the task today. Does that really need to happen?

What if you had the right to get a free upgrade whenever your software
needed it? What if, when you switched from a Mac to a PC, you could switch
software versions for free? What if, when the software doesn't work or isn't
powerful enough, you can have it improved or even fix it yourself? What if the
software was still maintained even if the company that produced it went out of
business? What if you could use your software on your office workstation, and
your home desktop computer, and your portable laptop, instead of just one
computer? You'd probably still be using the software you paid for years ago.
These are some of the rights that Open Source gives you.

1.2WHAT IS OPEN SOURCE?

Confusion about the term freedom was the very reason the term Open source
was created. Open source or Open Source Software (OSS) is different from
proprietary software. In Open Source, the source code used in the software
is available to anyone to examine, evaluate, and adapt. Open source has an
important impact on the way many developers view and create software.
End users often use the term open source to cover a variety of free and open
source software.
Open source is a development method for software that harnesses the power
of distributed peer review and transparency of process. The Open Source

1
Open Source Tools

Initiative has this for a definition of open source software: The Open Source
Definition is a bill of rights for the computer user. It defines certain rights
that a software license must grant you to be certified as Open Source.

Example of open source software is:


• Linux
• Apache
• BSD
• Wikipedia
• Mozilla.

Programmers feel comfortable contributing to Open Source because they


are assured of these rights:

• The right to make copies of the program, and distribute those copies.
• The right to have access to the software's source code, a necessary
preliminary before you can change it.
• The right to make improvements to the program.

These rights are important to the software contributor because they keep all
contributors at the same level relative to each other. Everyone who wants to be
allowed to sell an Open Source program, so prices will be low and development to
reach new markets will be rapid. Anyone who invests the time to build knowledge
in an Open Source program can support it, and this provides users with the option
of providing their own support, or the economy of a number of competing support
providers. Any programmer can tailor an Open Source program to specific markets
in order to reach new customers. People who do these things are not compelled to
pay royalties or license fees.

The promises of open source are :

• Better Quality
• Higher Reliability
• More Flexible
• Lower Cost
• Transparent
2
Open Source Tools

Open source doesn't just mean to access the source code.

The Distribution Terms of open source software must comply with the
following criteria:

1.2.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.

Rationale: By constraining the license to require free redistribution, we


eliminate the temptation to throwaway many long-term gains in order to
make a few short-term sales dollars. If we didn't do this, there would be lots
of pressure for cooperators to defect.

1.2.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 well-publicized 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.

Rationale: We require access to un-obfuscated source code because you


can't evolve programs without modifying them. Since our purpose is to make
evolution easy, we require that modification be made easy.

1.2 .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.
3
Open Source Tools

Rationale: The mere ability to read source isn't enough to support


independent peer review and rapid evolutionary selection. For rapid
evolution people need to be able to experiment with and redistribute
modifications.

Software has little use if you can't maintain it (fix bugs, port to new systems,
make improvements), and modification is necessary for maintenance. The
intent here is for modification of any sort to be allowed. It must be allowed
for a modified work to be distributed under the same license terms as the
original work. However, it is not required that any producer of a derived
work must use the same license terms, only that the option to do so be open
to them. Variouslicenses speak differently on this subject-the BSD license
allows you to take modifications private, while the GPL does not.

A concern among some software authors is that this provision could allow
unscrupulous people to modify their software in ways that would embarrass
the original author. They fear someone deliberately making the software
perform incorrectly in a way that would make it look as if the author was a
poor programmer. Others are concerned that software could be modified for
criminal use, by the addition of Trojan horse functions or locally-banned
technologies such as cryptography. All of these actions, however, are
covered by criminal law. A common misunderstanding about software
licenses is that they must specify everything, including things like "don't use
this software to commit a crime." However, no license has any valid
existence outside of the body of civil and criminal law.

1.2.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.
4
Open Source Tools

Rationale: Encouraging lots of improvement is a good thing, but users have


a right to know who is responsible for the software they are using. Authors
and maintainers have reciprocal right to know what they're being asked to
support and protect their reputations.

Accordingly, an open source license must guarantee that source be readily


available, but may require that it be distributed as pristine base sources plus
patches. In this way, "unofficial" changes can be made available but readily
distinguished from the base source.

Some authors were afraid that others would distribute source code with
modifications that would be perceived as the work of the original author, and
would reflect poorly on that author. This gives them a way to enforce a
separation between modifications and their own work without prohibiting
modifications. Some consider it un-aesthetic that modifications might have
to be distributed in a separate "patch" file from the source code, even though
Linux distributions like Debian and Red Hat use this procedure for all of the
modifications they make to the programs they distribute. There are programs
that automatically merge patches into the main source, and one can have
these programs run automatically when extracting a source package. Thus,
this provision should cause little or no hardship.

Note also that this provision says that in the case of patch files, the
modification takes place at build-time. This loophole is employed in the Qt
Public License to mandate a different, though less restrictive, license for the
patch files, in contradiction of Section 3 of the Open Source Definition.
There is a proposal to clean up this loophole in the definition while keeping
Qt within Open Source.

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.

This means that Netscape, for example, can insist that only they can name a
version of the program Netscape Navigator(tm) while all free versions of the
program must be called Mozilla or something else.
5
Open Source Tools

1.2.5 No Discrimination

Against Persons or Groups The license must not discriminate against any
person or group of persons.

Rationale: In order to get the maximum benefit from the process, the
maximum diversity of persons and groups should be equally eligible to
contribute to open sources. Therefore we forbid any open source license
from locking anybody out of the process.

Some countries, including United States, have export restrictions for certain
types of software. An OSD-conformant license may warn licensees of
applicable restrictions and remind them that they are obliged to obey the
law; however, it may not incorporate such restrictions itself.

A license provided by the Regents of the University of California, Berkeley,


prohibited an electronic design program from being used by the police of
South Africa. While this was a laudable sentiment in the time of apartheid, it
makes little sense today. Some people are still stuck with software that they
acquired under that license, and their derived versions must carry the same
restriction. Open Source licenses may not contain such provisions, no matter
how laudable their intent.

1.2.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 for genetic research.

Rationale: The major intention of this clause is to prohibit license traps that
prevent open source from being used commercially. We want commercial
users to join our community, not feel excluded from it.

1.2.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.
6
Open Source Tools

Rationale: This clause is intended to forbid closing up software by indirect


means such as requiring a non-disclosure agreement.

The license must be automatic, no signature required. Unfortunately, there


has not been a good court test in the U.S. of the power of a no-signature-
required license when it is passed from a second party to the third. However,
this argument considers the license in the body of contract law, while some
argue that it should be considered as copyright law, where there is more
precedent for no-signature licenses.

1.2.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.

Rationale: This means you can’t restrict a product that is identified as


Open source to be free only if you use it with a particular brand of Linux
distribution, etc. It must remain free if you separate it from the software
distribution it came with.

1.2.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.

Rationale: Distributors of open source software have the right to make their
own choices about their own software.

The GPL is conformant with this requirement. Software linked with GPLed
libraries only inherits the GPL, if it forms a single work, not any software
with which they are merely distributed.

7
Open Source Tools

A version of Ghost Script (a Post Script-rendering program) requires that the


media on which it is distributed contain only free software programs. This
isn't permissible for Open Source licenses. Fortunately, the Ghost Script
author distributes another (somewhat older) version of the program with a
true Open Source license.

Note:There is a difference between derivation and aggregation.


Derivation is when a program actually incorporates part of another
program into itself. Aggregation is when you include two programs on the
same CD-ROM. This section of the Open Source Definition is concerned
with aggregation, not derivation.

1.2.10 license Must Be Technology-Neutral


No provision of the license may be predicated on any individual technology
or style of interface.

Rationale: This provision is aimed specifically at licenses, which require an


explicit gesture of assent in order to establish a contract between licensor
and licensee. Provisions mandating so-called "click-wrap" may conflict with
important methods of software distribution such as FTP download CD-ROM
anthologies, and web mirroring; such provisions may also hinder code re-
use. Conformant licenses must allow for the possibility that (a)
redistribution of the software will take place over non-Web channels
that do not support click-wrapping of the download, and that (b) the
covered code (or re-used portions of covered code) may run in a non-
GUI environment that cannot support popup dialogues.

Free software is open source software, but not all open source software's
are free.

1.3 OPEN SOURCE PRINCIPLES

Open Source is a term most commonly applied to software and it refers to


set of principles and practices where by the design and production information is
shared openly, without the normal restriction encountered when developing

8
Open Source Tools

software with in a commercial environment where intellectual property is closely


guarded.

The brief explanation of each principle is as follows:

1.3.1 Licensees are Free to Use Open Source Software for Any Purpose
Whatsoever

An open source license may not interfere in any way with the use of the
software by licensees. Restrictions on use, such as “for research and
noncommercial purposes only," are not allowed in open source licenses. The
phrase free to use is also intended to mean, "Without any conditions that
would impede use," such as a requirement for the licensee to report uses to
the licensor, or to disclose the means or manner of internal uses of the
software. Note also that the first word, licensees, means that open source
software is only available under the terms of a license to which each licensee
must agree.

1.3.2 Licensees are Free to Make Copies of Open Source Software and to
Distribute them without Payment of Royalties to a licensor
This principle does not mean that a licensor cannot sell open source
software. It merely says that a licensee need not pay the licensor for
additional copies he makes himself, even if those copies are distributed to
others. As a practical matter, this open source principle drives the price of
mere copies of open source software toward its marginal cost of production
and distribution.

1.3.3 Licensees are Free to Create Derivative Works of Open Source Software
and to distribute them without Payment of Royalties to a licensor
Quality software is built upon the foundations of earlier software. Many
advocates of free and open source software contend that the requirement for
open source licenses to permit the unhindered creation and distribution of
derivative works is essential to meet the goal of the intellectual property
laws as stated in the U.S. Constitution, "to promote the progress of science
and the useful arts." Under this open source principle, a licensor cannot
9
Open Source Tools

charge a royalty for the privilege to create and distribute derivative works, or
require a licensee to pay a royalty for copies of a derivative work that are
distributed, or impose any restrictions on the type or character of those
derivative works.

1.3.4Licensees are Free to Access and use the Source Code of Open Source
Software

Source code is written in a human language to instruct a computer how to


perform certain functions. Since the source code must be changed in order to
instruct the computer to perform different functions, access to the source
code is essential to make the third open source principle-the freedom to
create derivative works of open source software-a practical reality, Source
code is a means to an end, not the end itself. The phrase free to access
merely requires the licensor to make source code available to licensees upon
request at zero prices, not necessarily to distribute the source code to
everyone.

1.3.5 Licenses are Free to Combine Open Source and Other Software

Open source licenses may not impose conditions or restrictions on other


software with which t he licensed software is merely combined or
distributed. This prevents restrictions regarding what other software can be
placed on computer storage media or in computer memory. Open source is
one of many possible business and licensing models for software
distribution, and customers must be free to select and use those software
alternative open source principle does not mean that licensors cannot impose
reciprocal upon licensees who create and distribute derivative works, for the
activity of creating derivative works is not the same as merely combining
software on media or on computers.

1.4 OPEN STANDARDS REQUIREMENTS FOR SOFTWARE

The Requirement. An "Open Standard" must not prohibit conforming


implementation in open source software.

10
Open Source Tools

1.4.1 The Criteria

To comply with the Open Standards Requirement, an "Open Standard" must satisfy
the following criteria. If an "Open Standard" does not meet the e criteria, it will be
discriminating against open source developers.

1.4.1.1 No Intentional Secrets

The standards MUST NOT withhold any detail necessary for interoperable
implementation. As flows are inevitable, the standard MUST define a
process for fixing flaws identified during implementation and
interoperability testing and to incorporate said changes into a revised version
or super sending version of the standards to release under terms that do not
violate the OSR.

1.4.1.2 Availability
The standard MUST be freely and publicity available (ex. From a stable
web site) under royalty-free terms at reasonable and non-discriminatory cost.

1.4.1.3 Patents

All patents essential to implementation of the standards Must:

1. Be licensed under royalty-free terms for unrestricted use, or


2. Be covered by a promise of non-assertion when practiced by open source
software.

1.4.1.4 No Agreements

There MUST NOT any requirement for execution of a license agreement,


NDA, grant, click-through or any other form of paperwork to deploy
conforming implementation of the standard.

1.4.1.5 No OSR-Incomplete Dependencies

Implementation of the standard MUST NOT require any other technology


that fails to meet the criteria of this requirement.

11
Open Source Tools

1.5 WHERE OSS HAS SUCCEEDED

There are many open source projects.

 SourceForge.net, a leading site for open source development, lists nearly


80,000.
 A small number of open source projects are highly successful.
 Provide widely used alternative to traditional commercial or "closed
source" software.
 Many more projects are used by small communities of experts.
 The most successful projects tend to be infrastructure software, not
applications.

1.6 OPEN SOURCE SUCCESSES

 More on server than client side


- More expert users of servers
- Server operating systems
 Linux
- Certain server software
 Web
 Mail
 DNS - So far less so with other server software
 Database (MySQL rising, less easy to measure)
 Software for technical users.

1.7 FREE SOFTWARE

Free software is a software that can be used, studied, and modified


without restriction, a d which can be copied and redistributed in modified or
unmodified form either without restriction, or with restrictions only to ensure
that further recipients can also do these things. Tomake these acts possible,
the human readable form of the program (called the source code) must be
made available. The source code may be either accompanied by a software
license saying that the copyright holder permits these acts (a free software

12
Open Source Tools

license), or be released into public domain, so that these rights can be


automatically hold.

Alternative terms for free software have been coined in an attempt to make
the use of "free" less ambiguous. The most common is "open source software",
which has since evolved to refer to a subtly different sense of freedom. Free
software is also, known as "software libre", "free, libre and open source
software" ("FLOSS"), and "free and open source software" ("FOSS").

Free software is distinct from freeware; freeware is proprietary


software made available free of charge. One can use, but not study, modify or
redistribute freeware.
Since free software may be freely redistributed and generally available at very little
cost. Free software business models are usually based on adding value such as
support, training, customization, integration, or certification. At the same time,
some business models which work with non-free software are not compatible with
free software, such as those that depend on a user having no choice but to pay for a
license in order to lawfully use a software product.

The free software movement was launched in 1983 to make these freedoms
available to every computer user. Software that does not provide these freedoms is
referred to as proprietary software or non-free software.

Free software is software that may be modified and redistributed freely by


anyone, with no significant restrictions on how the code may be changed, the uses
to which it may be put, or the parties with whom it may be shared.

Today, free software is a large body of high-quality code on which much of


the Internet depends for critical functions, and it constitutes the core operating
system for an increasing number of desktop machines as well.

1.8 WHAT IS FREE SOFTWARE?

 Free software is a matter of liberty, not price. To understand the concept,


you should think of free as in free speech, not as in free beer.

13
Open Source Tools

 Free software is a matter of the users' freedom to run, copy, distribute, study,
change and improve the software.
 Free in Free Software is referring to freedom, not price. Having been used in
this meaning since the 80s, the first documented complete definition appears
to be the GNU's Bulletin, vol. 1 no. 1 [I], published February 1986.
In particular, four freedoms define Free Software as

1.8.1 The Freedom to Run the Program, for any Purpose

Placing restrictions on the use of Free Software, such as time ("30


days trial period", "license expires January 1st, 2004") purpose
("permission granted for research and noncommercial use", "may not be
used for benchmarking") or geographic area ("must not be used in
country X") makes a program non-free.

1.8.2 The Freedom to Study How the Program Works, and Adapt it to
Your Needs
Placing legal or practical restrictions on the comprehension or
modification of a program, such as mandatory purchase of special licenses,
signing of a Non-Disclosure Agreement (NDA) or for programming
languages that have multiple forms or representation making the preferred
human way of comprehending and editing a program ("source code")
inaccessible also makes it proprietary (non-free). Without the freedom to
modify a program, people will remain at the mercy of a single vendor.

1.8.3 The Freedom to Redistribute Copies So You can Help Your


Neighbor

Software can be copied/distributed at virtually no cost. If you are not


allowed to give a program to a person in need, that makes a Program non-
free. This can be done for a charge, if you so choose.

1.8.4 The Freedom to Improve the Program, and Release Your


Improvements to the Public, so that the Whole Community Gets
Benefits

14
Open Source Tools

Not everyone is an equally good programmer in all fields. Some


people don't know how to program at all. This freedom allows those who
do not have the time or skills to solve a problem to indirectly access the
freedom to modify. This can be done for a charge.

 In particular, it should be understood that Free Software does not exclude


commercial use. If a program fails to allow commercial use and commercial
distribution, it is not Free Software.
 Often Free Software is referred as "free as in speech, not as in beer",
stressing the idea that the Free-software movement is concerned with
freedom, not with price.

1.9 WHAT ARE SOME EXAMPLES OF FREE SOFTWARE?

Some free software are:

1. Operating Systems: Linux, BSD, Darwin and Open Solaris


2. GCC Compiler, GDB debugger and C/C++ libraries.
3. Servers: BIND name server, Send mail transport, Apache web server and
Samba file server.
4. Relational Database systems:MySQL and PostgresSQL.
5. Programming language: Java, Perl, PHP, Python, Lua, Ruby and Tcl.
6. GUI Related: X Windows System, GNOME, KDE, and Xfce desktop
environments.
7. GRASS: Open Source Geography Information System (GIS).
8. OpenOffice.org office suite, Mozilla and Firefox web browser and GIMP
graphics editor.
9. Typesetting and document preparation system Tex and Latex.
10.OGG : Free Software multimedia file type that can function like an mp3
or mp4.
 The package released by the Mozilla Foundation, including the Firefox
Browser, and Thunderbird E-Mail client, is Free Software.
 Open Office, the Gamin IM application, the GIMP image manipulation
software, the Azures Bit Torrent Client, the VLC Media Player, and the
Audacity audio editing software. All of these are Free Software, and you can

15
Open Source Tools

download them for free right now, use them for as long as you like, and share
them with whomever you like.
 First, the Operating Systems: Linux, FreeBSD, and Open Solaris are all Free
Software Operating Systems. Each has several "flavors", often referred as
'distributions', or 'distros' for short.
 The most popular Web Server software, by a large margin, is the Apache Web
Server. One the most powerful and versatile Databases is MySQL. They both
are not only Free Software but also special hardware to try them out on your
local machine.
 The three most used scripting/interpreted Languages are the “P languages” -
Perl, PHP, and Python. All of them are Free. You can go to their respective
websites and download their interpreters, source codes, specifications, versions
documentation, mods, apps, etc., to your heart’s content.
 Even proprietary software has Free Software within it. These are commonly
librarian that are included within the program that provide some specific
function for the program

1.10FREESOFTWARELICENSEPROVIDER

Most Free Software is released fewer than one of the following license agreements:

1.10.1 GNU General Public License


The strict GPL license is the most common, and the most demanding of
users of software released under it. The Linux Kernel is released under (version 2
of) this license, as well as the GNU Compiler Collection (The GCC).

1.10.2 GNU Lesser General Public License

This license was originally released as a compromise between the strict GPL
license and the more permissive licenses such as the BSD license and the MIT
license. It does not carry the "inheritance" element that the GPL license does,
which means that commercial software may use software released under this
license without having to be released under the GPL, or the LGPL license itself.

16
Open Source Tools

1.10.3 BSD Licenses

Sometimes referred to as "BSD-Style" licenses, these licenses are more


permissive that the GNU licenses. The original was used for the Berkley Software
Distribution (BSD), a Unix-like operating system for which the license was named.

1.10.4 Mozilla License

The Mozilla Public License was developed for software released by the
Mozilla Foundation (it was actually developed prior to that, but today that is its
primary use). It is a "weak copy-left" license, that has since been adopted, in
modified versions, by several other companies and organizations. Mozilla Firefox,
Mozilla Thunderbird, and the Mozilla Application Suite are some of the software
programs released under this license.

1.10.5 MIT License


This license, which originated at the Massachusetts Institute of
Technology, is a public domain license. It is one of the most permissive types of
licenses, and is the license under which the X Windows System is released.

1.10.6 Apache License

Technically, this license is incompatible with the GPL, since it explicitly


allows modifications to the software itself to remain secret and said modifications
to be sold. This does not mean that software released under this license is not Free
Software, since it does require the party releasing the software to adhere to the 4
Freedoms. The Apache Web Serveris released under this license.

1.10.7 The "as-is" Release Model

This usually means that the released code is simply placed in the public
domain, with no restrictions whatsoever apart from not "claiming rights" to that
code, and not claiming that the user wrote it. There are actually quite a few
dedicated-purpose libraries released under this license, which do something very
specific, very efficiently.

17
Open Source Tools

1.11 FREE SOFTWARE VS. OPEN SOURCE SOFTWARE

The primary distinction of open source software is that it's not about
freedom; it's about what software do things better.

As a whole the movement is often called "Free and Open source Software"
(FOSS). While many people point to the differences between the two. For the
purposes of clarity the abbreviation FOSS will be used when describing issues that
apply to all open source software projects, whereas OSS will be used when
describing issues that apply only to software with open source licenses that allow
future developers to close the source code, and FSS will be used when talking
about issues that apply only to software with free licenses requiring future
developers maintain the previous style of licensing (if not the license itself)

Critics have said that the term "open source" fosters an ambiguity of a different
kind such that it confuses the mere availability of the source with the freedom to
use, modify, and redistribute it. Developers have used the alternative terms
Free/Open Source Software (FOSS), or Free/Libre/Open Source Software
(FLOSS), consequently, to describe open source software, which is also free
software.

The term "Open Source" was originally intended to be trademark able, however,
the term was deemed too descriptive, so no trademark exists. The OS! would prefer
that people treat Open Source as if it were a trademark, and use it only to describe
software licensed under an OS1 approved license.

There have been instances where software vendors have labeled proprietary
software as "open source" because it interfaces with popular OSS (such as Linux).
Open source advocates consider this to be both confusing and incorrect. OSI
certified is a trademark licensed only to people who are distributing software
licensed under a license listed on the Open Source Initiative's list.

Open source software and free software are different terms for software, which
comes with certain rights, or freedoms, for the user. They describe two approaches
and philosophies towards free software. Open source and free software (or
software libre) both describe software, which is free from onerous licensing

18
Open Source Tools

restrictions. It may be used, copied, studied, modified and redistributed without


restriction. Free software is not the same as freeware, software available at zero
prices.

The definition of open source software was written to be almost identical to the
free software definition. There are very few cases of software that is free software
but is not open source software, and vice versa. The difference in the terms is
where they place the emphasis. "Free software" is defined in terms of giving the
user freedom. This reflects the goal of the free software movement. "Open source"
highlights that the source code is viewable to all and proponents of the term
usually emphasize the quality of the software and how this is caused by the
development models which are possible and popular among free and open source
software projects.

Free software licenses are not written exclusively by the FSF. The FSF and the
OS1both list licenses, which meet their respective definitions of free software.
Open source software and free software share an almost identical set of licenses.
One exception is an early version of the Apple Public Source License, which was
accepted by the OS1 but rejected by the FSF because it did not allow private
modified versions; this restriction was removed in later version of the license.
There are now new versions that are approved by both the OS1 and the FSF.

The open Source Initiative believes that more people will be convinced by the
experience of freedom. The FSF believes that more people will be convinced by
the concept of freedom.

The FSF believes that knowledge of the concept is an essential requirement, insists
on the use of the term free, and separates itself from the open source movement.
The Open Source Initiative believes that free have three meanings: free as in beer,
free as in freedom, and free, as in untellable the problem with the term "open
source" is it says nothing about the freedom to modify and redistribute, so people
who think that source access without freedom is a sufficient definition use it. This
possibility for misuse is the case for most of the licenses that make up Microsoft's
"shared source" initiative.

19
Open Source Tools

1.12 PUBLIC DOMAIN

Public domain comprises the body of knowledge and innovation especially


creative works such as writing, art, music, and inventions) in relation to which no
person or other legal entity can establish or maintain proprietary interests within a
particular legal jurisdiction. This body of information and creativity is considered
to be part of a common cultural and intellectual heritage, which, in general, anyone
may use or exploit, whether for commercial or non-commercial purposes. About
15 percent of all books are in the Public domain, including 10 percent of all books
that are still in print.

If an item ("work") is not in the public domain, it


may be the result of a proprietary interest such as a
copyright, patent, or other Sui generics right. The extent to
which members of the public may use or exploitthe work is
limited to the extent of the proprietary interests in the
relevant legal jurisdiction. However, when the copyright,
patent or other proprietary restrictions expire, the work
enters the public domain and may be used by anyone for any purpose.

1.12.1 Public Domain Software

Another common form of open source software is software that has entered
into the public domain. This is software that is unrestricted by copyright or
licenses, and therefore free to use for any -'purpose. Before the rise of the open
source software movement a great deal of software written in academic circles was
released into the public domain for peer review. This practice has changed with the
rise of a more intentional open source movement, resulting in much software that
was once public domain, now being released as FOSS. The public domain is where
many resources used in open source projects come from but there are few (if any)
major projects that operate totally within the public domain.

DEFINITION: Programs that are uncopyrighted because their authors


intended to share them with everyone else are in the public domain. The
UNIX community has developed a number of such programs over the years.

20
Open Source Tools

Programs in the public domain can be used without restriction as components


of other programs.

1.3 FOSS DOESNOT MEAN ANY COST

This is a common misunderstanding about FOSS; in no small part because


nearly all FOSS programs are available free of charge. For example, when the text
editor Emacs was first released Richard Stallman charged from time to time to get
copies. Developers have the choice to charge under most FOSS licenses, although
they rarely choose to. The only requirement to be a truly FOSS project is that the
user provides the source code with licensing the program, and to allow the user to
edit that code.

On top of the initial cost of purchasing software, there are other ongoing
costs associated with all software. This can come in the form of support
agreements, the cost of customization, training costs support personnel and other
sources. This is true of both traditional commercial software and FOSS programs.
There is a large and active debate about which type of software is more expensive
over the long run for large corporations, for individual users there is little which to
no question that FOSS is cheaper by far.

1.14 HISTORY

In the beginning (1960's and 1970's) nearly all code was provided as a form
of open source. Since you had to get programs to run on many different machines,
companies that wanted customers to be able to run their software they had to
provide the source code to compile themselves. Frequently licensing agreements
did not encumber this code, or those licenses were never enforced. Often the users
would notice flaws in the programs, fix them and provide the improvements back
to the publisher at no charge. Unix user groups often shared code with each other
as well, creating an even larger body of code to work from the time most
companies believed that hardware would always generate far more profit than
software.

At the same time when academics wrote programs as part of their research, they
would often release the code into the public domain to others to learn from their

21
Open Source Tools

work. The first email server, ftp server, and web server were all public domain
projects that were created by academics and shared as public domain software.

Over time the hardware became more standardized. This allowed software
publishers to tighten up on what segments of code they would allow their users to
see and edit. This tightening started to frustrate users, especially academics; since
they could no longer fix the problem they found, and from time to time found that
they couldn't use the hardware or software they wanted to. This trend mostly
continued in mainstream software, strengthen by the rise of Microsoft.

During the late 1970's, many small businesses attempted to survive writing
software for the new microcomputers. None were able to rely on hardware sales or
after sale support contracts to subsidize software development. Few of these
people, whether from an academic tradition of freely distributed software or not,
were willing to make their products available without fee. Perhaps most famously,
Bill Gates (a co-founder of Microsoft) realized that software, not hardware, held
the prospect of being the greatest profit source in the new world of computing.
When IBM needed an operating system for their personal computers instead of
writing their own, Microsoft licensed an early version of DOS, but retained the
licensingrights for other hardware manufacturers.

In this sea of activity, the FOSS movement primarily grew out of two places
: the Berkeley Software Distribution licenses from the University of California and
Richard Stallman's Free Software Foundation Gnu Public License.

1.14.1 BSD
During the 1970s, after Ken Thompson of Bell Labs spent a year teaching at
the University of California at Berkeley, several research groups there began to
develop software for the UNIX operating system. And, as Bell Labs had no plans
to port the system to the hen new DEC VAX computer system, the Computer
Science Research Group at Berkeley undertook the port. That port became very
popular at other universities, and the CSRG began distribution of it, with their
modifications and additions, under the name Berkeley Software Distribution. The
researchers at Berkeley frequently found ways to improve or add to the existing
versions of UNIX. Bell Labs accepted some of the BSD changes, and passed on
22
Open Source Tools

others. Over time the CSRG found ways to improve the basic aspects of UNIX
(e.g., the file system). Concurrently, AT&T made improvements of their own,
causing the two versions to move in different (although similar) directions. As
development progressed on the Berkeley version of UNIX, it grew further and
further away from the work that AT&T was doing on their version (the last version
of which was System V). In the early 1990s there was a major legal skirmish over
the Berkeley Software Distribution (BSD) between AT&T, the University of
California at Berkeley, and the Unix System Laboratories (USL), to which AT&T
had turned over the marketing and development of UNIX. The suit resulted in most
of BSD being found to be unencumbered by copyright restrictions by those who
controlled the original Bell Labs code. By the mid-1990s, the CSRG released
4.4BSD-Lite, Release 2 as their final product as they were closed down by the
Regents of the University of California. The BSD releases were the root of the
various versions of BSD that are common today, most notably FreeBSD, Net BSD
and Open BSD. Throughout its development, BSD was distributed in an open
manner, resulting in contributions from many different contributors.

1.14.2 The Free Software Foundation and the GNU Project

In 1983, Richard Stallman (then of MIT) became frustrated with the


growing commercialization of the computer development work that had been done
at MIT, and with the increasing limitations imposed on software users. After a
time, he began to create software that gave control to users. His vision was to
create an entire operating system totally free of the restrictions being imposed by
proprietary licensing. His first major software development effort (even before he
became disenchanted with trends in the software industry free. To. was the text
editor, GNU Emacs. His next was a LISP system, a wick compiler, and finally the
GNU project.

In 1985 Stallman founded the Free Software Foundation (FSF) to help generate
support for the GNU Project. FSF has grown into one of the most important
organizations in the FOSS movement. While the primary FSF mission continues to
be the completion of the GNU operating system, FSF has also taken on the role of
"free-software evangelist" by protecting B and supporting free software. FSF also

23
Open Source Tools

holds the copyrights too much of the source code written for the GNU project,
ensuring that it always remains freely available to users.

Over the next 10 years Stallman gathered a group of people together who
essentially developed the entire core utilities found in UNIX and the Unix-like
operating systems. In the UNIX spirit, these consist of hundreds (perhaps
thousands) of small utility programs had share and tools. This project is still
operating and is known as the GNU Project. Many of these programs have become
standard on the BSD variants as well (see above). In 1994, Linux Torvalds released
the first version of the Linux kernel, and when combined with the GNU utilities
already available from the GNU Project, the Linux operating system came to be.
The Debian distribution of Linux is called GNU/Linux, in recognition of
Stallman's position that it is a joint production, to recognize that the GNU Project
provides most of the essential utilities. The GNU Project continues its slow
progress on its own operating system kernel, which will be known as Hurd. Hurd is
intended to be offered as the official GNU replacement -rom 4.4Bfor the UNIX
kernel, though it is currently at a beta development stage.

1.14.3 Free Software Foundation

The Free Software Foundation (FSF) is a non-profit corporation founded by


Richard Stallman on 4 October 1985 to support the free software movement, a
copy left-based movement which aims to promote the universal freedom to
distribute and modify computer software without restriction. The FSFis
incorporated in the Commonwealth of Massachusetts, United States of America.

From its founding until the mid-1990s, FSF's funds were mostly used to
employ software developers to write free software for the GNU Project. Since the
mid-1990s, the FSF'semployees and volunteers have mostly worked on legal and
structural issues for the freesoftware movement and the free software community.

Being consistent with its goals, only free software is used on all of the FSF's
computers.

1.14.4 GNU Project: The GNU Project is free software, mass collaboration
project, announced in 1983 by Richard Stallman. It initiated the GNU operating

24
Open Source Tools

system, software-development for which began in January 1984. GNU is a


recursive acronym that stands for "GNU's Not Unix".

The founding goal of the project was, in the words of its initial announcement, to
develop "a sufficient body of free software to get along without any software
that is not free."To make this happen, the GNU Project began working on an
operating system called GNU. This goal of making a free software operating
system was achieved in 1992 when the last gap in the GNU system, a kernel, was
filled by a third-party Unix-style kernel called "Linux" being released as free
software. Current work of the GNU Project includes software development,
awareness building, and political campaigning.

1.14.5 Berkeley Software Distribution


Berkeley Software Distribution (BSD), sometimes called Berkeley Unix, is
the UNIX derivative by the University of California Berkeley, starting in the
1970s.Historically, BSD has been considered as a branch of UNIX-'BSD UNIX',
because it had shared the initial code base and design with the original UNIX by
AT&T and collaborated on the development in the pioneer days of UNIX. It was
widely identified with the versions of UNIX available for workstation-class
systems, which can be attributed to the ease with whichit could be licensed and the
familiarity it found among the founders of many technology companies during the
1980s. The familiarity often came from using similar systems-notably DEC's
ULTRIX and Sun Microsystems SunOS-during their education. Though BSD itself
was largely superseded by the System V Release 4 and OSF/1 systems in the 1990s
(both of which incorporated BSD code), the modified code base as open source-
mostly derived from 4.4BSD-Lite have seen increasing use and development
recently.

Today, the term of "BSD" is often non-specifically used to refer to any of the BSD
descendants, e.g., FreeBSD, NetBSD or OpenBSD, which forms a branch of Unix-
like operating systems.

1.15 WHY "FREE SOFTWARE" IS BETTER THAN "OPEN SOURCE"


"Open Source" misses the point of Free Software is an updated version of
this article. While freesoftware by any other name would give you the same
25
Open Source Tools

freedom, it makes a big difference whichname we use: different words convey


different ideas. In 1998, some of the people in the free software community began
using the term "open source software" instead of "free software" to describe what
they do. The term" open source" quickly became associated with a different
approach, a different philosophy, different values, and even a different criterion for
which licenses are acceptable. The Free Software movement and. the Open Source
movement are today separate movements with different views and goals, although
we can and do work together on some practical projects.

The fundamental difference between the two movements is in their values their
ways of looking at the world. For the Open Source movement, the issue of
whether softwareshould be open source is a practical question, not an ethical one.
As one person put it, "Open source is a development methodology; free software is
a social movement." For the Open source-movement, non-free software is a
suboptimal solution. For the Free Software movement, non-free software is a social
problem and free software is the solution.

26
Open Source Tools

1.17 WHY SOME COMPANIES USE OPEN SOURCE SOFTWARE?

Some companies use open source software because:

• Cost savings
• Stability
• Access and broad rights to source code
• Access to skilled community of developers
• Ability to define and expedite new development.

1.18 WHY SOME COMPANIES DON'T USE OPEN SOURCE SOFTWARE

Some companies don't use open source software because

• "Free like a puppy”


• Migration costs
• Uncertainty about open development model
• Lack of IP warranties and indemnities
• Copy left provisions of GPL, LGPL and similar licenses.

MODULE 2

PROGRAMMING TOOLS AND TECHNIQUES

2.1 METHODOLOGIES

2.1.1 Software Engineering Methodology

"Given unlimited resources, the majority of software problems can


probably be solved but the challenge for software engineers is to produce
high-quality software with a finite amount of resources and to a predicted
schedule."

2.1.1.1 Engineering Software


Developing a software system is a complex and time-consuming process. In
order to control this process, reducing complexity and uncertainties surrounding
the to-be software system, we try to adhere some kind of framework that
27
Open Source Tools

introduces certain degrees of structure to the oven development process. Software


engineering methodologies are the framework that tells how we should go
about developing our software systems.These frameworks define different
phases of the development process, such as planning, requirements analysis,
design, test and maintenance. The choice of which methodology to use in a
development project closely related to the size of the software system and the
environment it is supposed function in. The environment in itself constitutes a
larger system-though most often computer software system, but rather some kind
of organization

2.1.1.2 The Life-Cycle Paradigm

The life-cycle paradigm of software engineering is sometimes called the


"water model", as it demands a sequential approach to the development
process. The work started at the system level and passes through phases of
analysis, design, coding, testing and maintenance. Six activities constitute the
overall development process.

28
Open Source Tools

 System engineering and analysis: This activity is characterized by system-


level requirements gathering for all system elements, which then is reduced
to a subset of requirements that are relevant to the software system being
developed. Overall design and analysis tasks are also executed in order to
understand the full system of which the software system being developed is
only a part.
 Software requirements analysis: This activity is usually executed together
will the customer, as the goal is to document all function, performance and
interfacing requirements for the software.

29
Open Source Tools

 Design: When creating the design of the software system the requirements al
transformed into a representation of software that can be assessed for quality
before the actual coding begins. Data structures, architecture, procedural
detail and interface characterization are outlined and documented in a design
specification.
 Coding: This activity is the transition of the design specification into a
software program.
 Testing: This activity is to be executed using documented test methods in
order to ensure that as many errors as possible is unveiled, and that the
software is in accordance with the requirements.
 Maintenance: Rather than being an atomic activity, maintenance reapplies
all other activities, as new requirements are defined in order to adapt the
software to the changes occurring in its environment and to correct errors
encountered after the software has been deployed.

2.1.1.3 The Prototyping Paradigm

Contrary to the static, procedural approach offered by the life-cycle


paradigm, the prototyping paradigm can be used. Similarly, to the life-cycle
paradigm, this process begins by gathering requirements of the system. The
developers meet with customers, determine, and the overall objectives of the
software and identify any known requirements. A quick design then occurs,
focusing on areas visible to the users, such as user interface and basic functionality.
The design model is then used to implement a first prototype, which may take one
of three forms:

• Interaction prototype: This is a paper or computer software prototype that


makes it possible for users to understand how to interact with the software system.

• Subset function prototype: This is a working software program that implements


a subset of the required functionality.

• Existing program: This is an existing program that implements most or all of the
required functionality, but has features that should be improved in a later
development effort.

30
Open Source Tools

• A throwaway prototype: This is may be usable software program, but is not


suitable as the final software product, for various reasons such as poor performance
maintainability or overall quality.

• A prototype to refine and deliver: This kind of prototype is enhanced and


possible reworked in various areas so that it is suitable to deliver as the final
software product.

When the prototype is created, the customer reviews it. Typically, this
review gives feedbackto the developers that help remove uncertainties in the
requirements of the software system,and starts an iteration of refinement in order to
further clarify requirements by improvingthe prototype, or by building new
prototypes.

2.1.1.4The Spiral Model Paradigm

In addition to some of the aspects of the life-cycle and prototyping


paradigms, the spiralmodel adds an element of risk analysis to the development
process. The model is presentedas a spiral, in which a circuit around four major
activities represents each iteration:

31
Open Source Tools

• Planning: Determine objectives and constraints of the project, and define the
alternatives.

• Risk analysis: Analysis of alternatives, and identification/resolution of risks.

• Engineering: Development of the "next-level" product.

• Customer evolution: Evaluation of the product engineered.

2.2 Open Source Software Development

 Open source software development is the process by which open source


software (or similar software whose source is publicly available) is

32
Open Source Tools

developed. These are software product "available with its source code and
under an open source license to study, change, an improve its design".
 Examples of popular Open source software product are Mozilla Firefox and
the OpenOffice.org Suite.
 The Open source software development method is very unstructured,
because no clear development tools, phases, etc., have been defined like with
development methods such as DSDM. Instead, every project has its own
phases.
 The second main branch of open source philosophy revolves around the
opportunity for a new software development model. Open source is also
about sharing ideas, and spreading the effort of creating software over a
large number of interested developers.
 This sharing can lead to better software in shorter development times. It also
allows for better feedback directly to the developers than is often present in
traditional development model.
 Open source software development can be divided into several phases.
A diagram( Fig 2.6) displaying the process-data structure of Open
source software development is placed on the right side.
 In this picture, the phases of Open source software development are
displays along with the corresponding data elements.
 This diagram is made using the Meta-Modeling and Meta-Process
Modeling techniques.
 The process starts with a choice between the adopting of an existing
project, or the starting of a new project.
 If a new project is started, the process goes to the Initiation phase. If an
existing project is adopted, the process goes directly to the Execution
phase

33
Open Source Tools

2.2.1 History

 In 1997, Eric S. Raymond wrote the Cathedral and the Bazaar.


 The first is the conventional closed source development. These kind of
development methods are, according to Raymond, like the building of a
cathedral; central planning, tight organization and one process from start to
finish.
 The second is the progressive open source development, which is more like
a "a great babbling bazaar of differing agendas and approaches out of which
a coherent and stable system could seemingly emerge only by a succession
of miracles."
 In some projects, anyone can submit suggestions and discuss them. Fact is
that the 'coherent and stable systems' do emerge from open source software
development projects.

34
Open Source Tools

 Differences between the two styles of development, are in general the


handling (and creation) of bug reports and feature requests, and the constrain
under which the programmers are working.
 In closed source software development, the programmers are often spending
a lot of time dealing with and creating bug reports, as well as handling
feature requests. This time is spent on prioritizing and creation of further
development plans. This leads to (part of) the development team spending a
lot of time on these issues, and not on the actual development.
 Also, in closed source projects, the development teams must often work
under management-related constraints (such as deadlines, budgets, etc.) that
interfere with technical issues of the software.
 In open source software development, these issues are solved by integrating
the users of the software in the development process, or even letting these.

2.2.2 Types of Open Source Projects

 One can distinguish several different types of open source projects.


 First, there is the garden variety of software programs and libraries. They
are standalone pieces of code. Some might even be dependent on other open
source projects. These projects serve a specified purpose and fill a definite
need. Examples of this type of project include the Linux kernel, the Firefox
web-browser and OpenOffice.org office suite of tools.
 Distributions are another type of open source project. Distributions are
collections of software that are published from the same source with a
common purpose. The most prominent example of a "distribution" is an
operating system. There are a large number of Linux distributions (such as
Debian, Fedora Core, Mandriva, Slackware, etc.) which ship the Linux
kernel along with many user-land components. There are also other
distributions, like ActivePerl, the Perl programming language for various
operating system, and even th OpenCD and cygwin distributions of open
source programs for Microsoft Windows.
 Other open source projects, like the BSD derivatives, maintain the source
code of an entire operating system, the kernel and all of its core components,
in one revision centre system; developing the entire system together as a

35
Open Source Tools

single team. These operating system development projects closely integrate


their tools: more so than in the other distribution based systems.
 Finally, there is the book or standalone document project. These items
usually do not shipped as part of an open source software package. The
Linux Documentation Project hosts many such projects that document
various aspects of the GNU /Linux operating system.

2.2.3 Starting an Open Source Project

There are several ways in which work on an open source project can start :

1. An individual who senses the need for a project announces the intent to
develop the project in public. The individual may receive offers of help from
others. The group may then proceed to work on the code.

2. A developer working on a limited but working codebase, releases it to the


public as the first version of an open source program. The developer continues
to work on improving it, and possibly is joined by other developers.

3. The source code of a mature project is released to the public, after being
developed as proprietary software or inhouse software.

4. A well-established open source project can be forked by an interested


outside party. Several developers can then start a new project, whose source
code then diverges from the original.

2.2.4 Participants in OSS Development Projects

Participants in OSS development projects fall into two broad


categories: The Core and the Peripheral. The Core or Inner Circle are
developers who modify the primary code that constitutesthe project. The
Peripheral usually consists of users of the software. They report bugs,submit
fixes, and suggest changes.

The participants can be divided into the following:

36
Open Source Tools

1. Project leaders who have the overall responsibility (Core). Most of


them might have been involved in coding the first release of the
software. They control the overall direction of individual projects.
2. Volunteer developers (Core/Periphery) who do actual coding for the
project. These include:
 Senior members with broader overall authority.
 Peripheral developers producing and submitting code fixes.
 Occasional contributors.
 Maintainers who work on different aspects of the project.
3. Everyday users (Periphery) who perform testing identify bugs;
deliver bug reports, etc.
4. Posters (Periphery) who participate frequently in newsgroups and
discussions, but do not do any coding.

2.2.5 Tools used for Open Source Development

1. Communication Channels

 Developers and users of an open source project are not all


necessarily working on the project in proximity.
 They require some electronic means of communications. E-mail is
one of the most common forms of communication among open
source developers and users.
 Electronic mailing lists are used to make sure e-mail messages are
delivered to interested parties at once. This ensures that at least one
of the members can reply to it (in
private or to the whole mailing list).
 In order to communicate in real time, many projects use an instant
messaging method such as IRC.
 Web forums have recently become a common way for users to get
help with problems they
encounter when using an open source product.

37
Open Source Tools

 Wikis have become common as a


communication medium for developers and users.

2. Software Engineering Tools

1. Version Control System

 In OSS development the participants, who are mostly


volunteers, are distributed amongstdifferent geographic regions
so there is need for tools to aid participants to collaborate inthe
development of source code.
 Concurrent Versions System (CVS) is a prominent example
of a source code collaborationtool being used in OSS projects.
 CVS helps manage the files and codes of a project when
several people are working on the project at the same time.
 CVS allows several people towork on the same file at the same
time,This is done by moving the file into the usersdirectories
and then merging the files when the users are done. CVS also
enables one toeasily retrieve a previous version of a file.
 The Subversion Revision Control System (SVN) was created
to replace CVS. It is quickly
gaining ground as an OSS project version control system.

38
Open Source Tools

Bug trackers and task lists

 Most large-scale projects require a bug tracker (usually web or


otherwise Internet based)to keep track of the status of various issues
in the e development of the project.
 A simpletext file is not sufficient, because they have many bugs and
because the wish to facilitatereporting and maintenance of bugs by
users and secondary developers. Some popular bug trackers include :
 Bugzilla-a sophisticated bug tracker from the Mozilla house. Web-
based.
 Mantis-a web-based PHP /MySQL bug tracker.
 Trac-integrating a bug tracker with a wiki, and an interface to the
Subversion version control system.
 Request tracker-written in Perl. Given as a default to CPAN
modules
 GNATS-The GNU Bugtracking system.
 SourceForge and its forks provide a bug tracker as part of its
services. As a result many projects hosted at SourceForge.net and
similar services default to using it.
 LibreSource.

3. Testing Tools

• Since OSS projects undergo frequent integration, tools that help


automate testing during system integration are used. An example of
such tool is Tinderbox, enables participants in an OSS project to
detect errors during system integration.
• Tinderbox runs a continuousbuild process and informs users about
the parts of source code that have issues and on which platform(s
these issues arise. , this tool identifies the author of theoffending code.
• The author is then held responsible for ensuring that error is resolved.
Mainlybecause normal testing tools are quite expensive, open source
testing tools are gaining popularity.
• A debugger is a computer program that is used to debug (and
sometimes test or optimize)other programs. GNU Debugger (GDB)
39
Open Source Tools

is an example of a debugger used in Open source software


development.
• Thisdebuggeroffers remote debugging, what makes it especially
applicable to open source. software development Also, some memory
leak detectors have been designed to work with GDB.
• A memory leak tool or memory debugger is a programming tool for
finding memory leaksand buffer overflows.
• A memory leak is a particular kind of unnecessary memory
consumption by a computer program, where the program fails to
release memory that is no longerneeded. Examples of memory leak
detection tools used by Mozilla are the XPCOM memoryLeak tools.
• Validationtools are used to check if pieces of cod conform to the
specified syntax. They are most often used in the context of
HTML/XML, but can also be usedwith programming languages. An
example of a validation tool is LCLint, now called splint.
4. Package Management
• A package management system is a collection of tools to automate
the process of installing, upgrading, configuring, and removing
software packages from a computer.
• The RedHat Package Manager (RPM) for .rpm and Advanced
Packaging Tool (APT) for .deb fileformat, are package management
systems used by a number of Linux distributions.
5. Automated Tests
• Software testing is an integral of open source development. While many
open source packages were known to be released with some glaring bugs
even in some stat releases, most open source software eventually
becomes very stable.
• Traditionally, in most of the open source there was a general lack of
awareness for automated tests, in which one writes automated test scripts
and programs that run software and try to find out if it behaves correctly.
• Recently, however, this awareness I been growing, possibly because of
influence from Extreme Programming, and because some high-profile
software packages that incorporated such test suites.

40
Open Source Tools

• Most open source software is either command line or alternatively APIs


and as such is very easy to test automatically.

2.3 LICENSES

2.3.1 What is License?

• A license is the permission or right granted to engage in some act


without which act might be otherwise unlawful. A person,
institution, must grant a license or governmentthat has the legal
authority to do so.
• The term "license" also refers to the document specifically
describes these permissions and rights.
• The license must be automatic, no signature required, however, this
argument considers the license in the body of contract law, while
some argue that it should be considered copyright law, where there is
one precedent for no-signature license.
• A good court test no doubt happen in the next few years, given the
popularity of this sort of license and booming nature of Open Source.
• Open source licenses define the privileges and restrictions a
licensor must folio order to use, modify or redistribute the open
source software. Open source software include software with source
code in the public domain and software distributed under an source
license. Examples of open source licenses include Apache License,
BSD license, GNU General Public License, GNU Lesser General
Public License, MIT License, Eclipse Public License, Mozilla Public
License.
• The proliferation of open source licenses is one of the few negative
aspects ofthe source movement because it is often difficult to
understand the legal implications differences between licenses.

To understand the Open Source Definition, we need to look at some


common license practices as they relate to Open Source.

• Public Domain

41
Open Source Tools

• A common misconception is that much free software is public


domain. Thishappens simply because the idea of free software
or Open Source is confusing to people, and they mistakenly
describe these programs as public-domain because that's the
closest concept that they understand. The programs, however,
are copyrighted and covered by a license, just a license that
gives people more than they are used to.
• A public-domain program is one upon which the author has
deliberately surrendered his copyright rights. It can't really be
said to come with a license; it's your personal property to use as
you see fit. Because you can treat it as your personal property,
you can do what you want with a public-domain program. You
can even re-license a public-domain program, removing that
version from the public domain, or you can remove the author's
name and treat it as your own work.
• If we are doing a lot of work on a public-domain program,
consider applying your own copyright to the program and re-
licensing it. For example, if you don't want a third party to
make their own modifications that they then keep private, apply
the GPL or a similar license to your version of the program.
The version that you started with will still be in the public
domain, but your version will be under a license that others
must need if they use it or derive from it.
• You can easily take a public-domain program private, by
declaring a copyright and applying your own license to it or
simply declaring "All Rights Reserved."

• Free Software Licenses in General

 If you have a free software collection like a Linux disk, you


may believe the programs on that disk are your property. That's

42
Open Source Tools

not entirely true. Copyrighted programs are the property of the


copyright holder, even when they have an Open Source license
like the GPL.
 The program's license grants you some rights, and you have
other rights under the definition of fair use in copyright law.
It's important to note that an author does not have to issue a
program with just one license. You can GPL a program, and
also sell a version of the same program with a commercial,
non-Open source license.
 Many people who want to make a program Open Source and
still make some money from it use this exact strategy. Those
who do not want an Open Source license may pay for the
privilege, providing a revenue stream for the author.
 All of the licenses we will examine have a common feature :
they each disclaim all warranties. The intent is to protect the
software owner from any liability connected with the program.
Since the program is often being given away at no cost, this is a
reasonable requirement-the author doesn't have a sufficient
revenue stream from the program to fund liability insurance
and legal fees.
 If free-software authors lose the right to disclaim all warranties
and find themselves getting sued over the performance of the
programs that they've written, they'll stop contributing free
software to the world. It's to our advantage as users to help the
author protect this right.

• The GNU General Public License

• The GPL is a political manifesto as well as a software license, and


much of its text is concerned with explaining the rationale behind the
license. This political dialogue has put some people off, and thus
provided some of the reason that people have written other free
software licenses.

43
Open Source Tools

• The GPL was assembled with the assistance of law professors, and is
much better written than most of its ilk. Its suggested to use the GPL,
or its library variant the LGPL, if you can.
• If you choose another license, or write your own, be sure about your
reasons. People who write their own license should consider that this
is not a step to be taken lightly. The unexpected complication of an
ill-considered license can create a decades-long burden for software
users.
• The text of the GPL is not itself under the GPL. Its license is simple :
Everyone permitted to copy and distribute verbatim copies of this
license document, but changing is not allowed.An important point
here is that the texts of the licenses of Open source software are
generally not themselves Open Source. Obviously, a license would
offer no protection if anyone could change it.
• The provisions of the GPL satisfy the Open Source Definition. The
GPL does not require any of the provisions permitted by the Open
Source Definition related to Integrity of the Author's Source Code.
• The GPL does not allow you to take modifications private. Your
modifications must distribute under the GPL. Thus, the author of a
GPL-ed program is likely to receive improvements from others,
including commercial companies who modify his software for their
own purposes.
• The GPL doesn't allow the incorporation of a GPL-ed program into a
proprietary program. The GPL's definition of a proprietary program is
any program with license that doesn't give you as many rights as the
GPL. There are a few loopholes in the GPL that allow it to be used in
programs that not entirely Open Source.
• Software libraries that are normally distributed with compiler or
operating system you are using may be linked with GPL-ed software
the result is a partially-free program.
• The copyright holder (generally the author the program) is the person
who places the GPL on the program and has the right to violate his
own license. This was used by the KDE authors.
• The GNU Library General Public License
44
Open Source Tools

• The LGPL is a derivative of the GPL that was designed for software
libraries. Unlike the GPL, an LGPL-ed program can be incorporated
into a proprietary program.
• The C-language library provided with Linux systems is an example of
LGPL-ed software it can be used to build proprietary programs,
otherwise Linux would only be use' for free software authors.
• An instance of an LGPL-ed program can be converted into a GPL-ed
one at any time. Once that happens, you can't convert that instance, or
anything derived from it, back into an LGPL-ed program.
• The rest of the provisions of the LGPL are similar to those in the
GPL-in fact includes the GPL by reference.

• The X, BSD, and Apache Licenses


• The X license and its relatives the BSD and Apache licenses are very
different from the GPL and LGPL. These licenses let you do nearly
anything with the software licensed under them. This is because the
software that the X and BSD licenses originally covered was funded
by monetary grants of the U.S. Government. Since the U.S. citizens
had already paid for the software with their taxes, they were granted
permission to make use of that software as they pleased.
• The most important permission, and one missing from the GPL, is that
you can take X-licensed modifications private. In other words, you
can get the source code for a X-licensed program, modify it, and then
sell binary versions of the program without distributing the source
code of your modifications, and without applying the X-license to
those modifications. This is still Open Source, however, as the Open
Source Definition does not require that modifications always carry the
original license.
• Many other developers have adopted the X-license and its variants,
including the BSD (Berkeley System Distribution) and the Apache
web server project.
• An annoying feature of the BSD license is a provision that requires
you to mention (generally in a footnote) that the software was

45
Open Source Tools

developed at the University of California any time you mention a


feature of a BSD-licensed program in advertising.
• Keeping track of which software is BSD-licensed in something huge
like a Linux distribution, and then remembering to mention the
University whenever any of those programs are mentioned in
advertising is somewhat of a headache for business people.
• At this writing, the Debian GNU/Linux distribution contains over
2,500 software packages, and if even a fraction of them were BSD-
licensed, advertising for a Linux system like Debian might contain
many pages of footnotes! However, the X Consortium license does
not have that advertising provision. If you are considering using a
BSD-style license, use the X-license instead.

• The Artistic License

• Although this license was originally developed for Perl, it's since been
used for other software.
• It is a sloppily-worded license, in that it makes requirements and then
gives you loopholes that make it easy to bypass the requirements.
• Perhaps that's why almost all Artistic-license software is now dual
licensed, offering the choice of the Artistic License or the GPL.
• Section5 of the Artistic License prohibits sale of the software, yet
allows an aggregate software distribution of more than one program to
be sold. So, if you bundle an Artistic-licensed program with a five-
line hello-world, you can sell the bundle. This feature of the Artistic
License was the sole cause of the "aggregate" loophole in paragraph 1
of the Open Source Definition.
• As use of the Artistic License wanes, we are considering removing
the loophole. That would make the Artistic a non-Open source license.
This isn't a step we would take lightly, and there will probably be
more than a year of consideration and debate before it happens.
• The Artistic License requires you to make modifications free, but then
gives you a loophole (in Section 7) that allows you to take

46
Open Source Tools

modifications private or even place parts of the Artistic-licensed


program in the public domain!

• The Netscape Public License (NPL) and the Mozilla Public License (MPL)

• Netscape developed NPL when they made their product Netscape


Navigator Open Source.
• Actually, the Open source version is called Mozilla; Netscape
reserves the trademark Navigator for their own product.
• An important feature of the NPL is that it contains special
privileges that apply It Netscape and nobody else.
• It gives Netscape the privilege of relicensing modification that you've
made to their software. They can take those modifications private,
improve them, and refuse to give you the result.
• This provision was necessary because when GPL Netscape decided to
go Open Source, it had contracts with other companies that
committed it to provide Navigator to them under a non-Open source
license.
• Netscape created the MPL, or Mozilla Public License, to address
this concern. The MPL is much like the NPL, but does not
contain the clause that allows Netscape to re-license your
modifications.
• The NPL and MPL allow you to take modifications private. Many
companies have adopted a variation of the MPL for their own
programs. This is unfortunate, because the NPL was designed for
the specific business situation that Netscape was in at the time it
was written, and is not necessarily appropriate for others to use.
It should remain the license of Netscape and Mozilla, and other
should use the GPL or the X licenses.

2.3.2 Choosing a license

47
Open Source Tools

The propagation of many different and incompatible licenses works to the


detriment of Open Source software because fragments of one program cannot be
used in another program with an incompatible license.

Make a few decisions while choosing licenses:

1. Do you want people to be able to take modifications private or not? If


you want to get the source code for modifications back from the people who
make them, apply a license that mandates this. The GPL and LGPL would
be good choices. If you don't mind people taking modifications private,
use the X or Apache license.
2. Do you want to allow someone to merge your program with his or her
own proprietary software? If so, use the LGPL, which explicitly allows
this with allowing people to make modifications to your own code
private, or use theX or Apache licenses, which do allow modifications to
be kept private.
3. Do you want some people to be able to buy commercial-licensed
versions of your program that are not Open Source? If so, dual-license
your software. Recommended the GPL as the Open Source license; you
can find a commercial license appropriate for you like Copyright Your
Software from Nolo Press.
4. Do you want everyone who uses your program to pay for the privilege ?
If perhaps Open Source isn't for you. If you're satisfied with having
only somepeople pay you, you can work that and keep your program
Open Source. Most of the Open Source authors consider their programs
to be contributions to the public good, and don't care if they are paid at
all.

The table below gives a comparison of licensing practices:

48
Open Source Tools

2.8.3. Some important Licenses

2.8.3.1Apache License
• The Apache License (Apache Software License previous to version 2.0) is a
free software license authored by the Apache Software Foundation (ASF).
• The Apache License (versions 1.0, 1.1, and 2.0) requires preservation of the
copyright notice and disclaimer, but it is not a Copyleft license - it allows
use of the source code for the development of free and open source software
as well as proprietary and closed source software.
• All software produced by the ASF or any of its projects or subjects is
licensed according to the terms of the Apache License. Some non-ASF
software is licensed using the Apache License as well: as of September
2007, over 2000 non-ASF projects located at SourceForge.net are available
under the terms of the Apache License.
• The Apache Software Foundation (ASF) is a non-profit corporation to
support Apache Software projects. Apache's projects are characterized by a
collaborative, consensus based development process, an open and pragmatic
software license. Among the ASF's objectives are to provide legal protection
to volunteers working on Apache projects, and to protect the Apache brand
name from being used by other organizations.
• There are currently two forms of the Apache in wide use today: versions 1.1
and 2.0. While 2.0 is consider d by ASF to be the current version and most
users have happily switched, a few large groups objected to new clauses
inserted into 2.0 regarding patents and have refused to use any software with
the new license (most notable the Open BSD project).

49
Open Source Tools

2.8.3.2 BSD Licenses

• BSD licenses represent a family of permissive free software licenses. The


original Was used for the Berkeley Software Distribution, an Unix-like
operating system for which the license is named.
• The original owners of BSD were the Regents of the University of
California because BSD was first written at the University of California,
Berkeley.
• The first version of the license was revised, and the resulting licenses are
more properly called modified BSD licenses. Permissive licenses,
sometimes with important differences pertaining to license compatibility, are
referred to as "BSD-style licenses". Several BSD-like licenses, including
the New BSD license, have been vetted by the Open Source Initiative as
meeting their definition of open source.

50
Open Source Tools

• The licenses have few restrictions compared to other free software licenses
such as the GNU General Public License or even the default restrictions
provided by copyright, putting it relatively closer to the public domain. The
BSD licenses have been referred to as copy center, as a comparison to
standard copyright and Copy left free software : "Take it do to the copy
center and make as many copies as you want."
• BSD is both a license, and a class of licenses (generally referred to as
BSD-like). The modified BSD license (in wide use today) is very similar
to the license originally used for the BSD version of Unix .
• The BSD license is a simple license that merely requires that all code
licensed under the BSD license be licensed under the BSD license IF
redistributed in source code format. BSD (unlike some other licenses) does
not require that source code be distributed at all.
• BSD is actually very close, though still distinct, from a public domain
license. Like works in the public domain, BSD-like licenses permit nearly
free modification and distribution of a work.
• There are only two significant ways in which BSD-like licenses differ
from public domain. First, the BSD license carries the requirement that
the license, along with its statement of copyright, is carried along with
the work, or modified copies. This does not however limit code under
different licenses from being combined with it. Second, the BSD-like
licenses have a standard disclaimer of guarantees, such as fitness for a
particular use and merchantability. This latter portion should not come
as any surprise, since practically all software packages carry a clause
nearly identical to this one.
• Some BSD licenses take this further, and require similar copyright
statements in advertising materials for a distributed software product. Most
however are simply limited this basic requirement. For those who are
opposed to the GPL for its limitations on modification and distribution, the

51
Open Source Tools

BSD license is often quite acceptable.

2.8.3.3 (GPL or (GNU)


• The GNU General Public License is a free software license, created by the
Free Software Foundation (FSF); version 2 was released in 1991. It is
usually abbreviated to GNU GPL, or, simply, GPL. FSF recently announced
that they have started work on version 3 of this license, and should be
releasing the new version in the spring of 2007.
• The motivations for these changes have not been articulated yet, but based
on a lecture by Richard Stallman held at New York's Cooper Union on
November 29, 2005, the changes are related to the World Intellectual
Property Organization's (WIPO) work on world copyright standardization.
• The GPL protects the 3 main articles of software freedom as defined in the
section on Software Freedom. The GPL also contains a clause requiring
publishers of GPL licensed programs that make modifications to the
software, to distribute that modification under the GPL. This clause, which
causes others to give the GPL the label "viral", since it apparently "infects"
any code, which it touches.
• In practice, this clause is not that invasive. If such a violation is found,
detaching the GPL code from the modified code by placing it in a different
file is generally sufficient to return to compliance with the license. It is
important to note that the GPL is not a contract, in the same way that End
User License Agreements are. It provides no restrictions on use aside from
those already set by copyright law.

52
Open Source Tools

• To utilize any rights, which are not explicitly given to you, you have to
accept the conditions of the GPL. For example, you cannot distribute a work
without the creator's consent. If the work is under the GPL, then the GPL
lists the conditions under which the creator has agreed to give you consent.
2.8.3.4 LGPL
• An important corner-case of the GPL requires that only GPL code can link
with GPL libraries, even if the library is contained in a separate file, and the
code, which uses it, contains no GPL code unto itself. Some as too strict sees
this, since such an action could be considered a "use" of the library, not as a
modification. In order to allow for such a distinction, the LGPL was created.
• The LGPL fixes precisely this problem : If someone uses an LGPL work as
a library which is symbolically linked with a project, the rest of the project
does not have to be put under the LGPL. On the other hand, if any
modifications are made to the LGPL'ed work, which are distributed along
with the software package as a whole, the changes must be made public,
similar to the rules of the GPl. The "L" in the LGPL stands for different
things for different people. Initially it was considered as a "Library" license,
since the clause specifically dealt with issues of linking.
• The GNU Foundation describes this as the "Lesser" GPL, since it gives
fewer protections to the work than the GPL does. While the GNU
Foundation does not frown upon the use of the LGPL, it encourages the use
of the GPL when possible.

2.9 COPYRIGHT
2.9.1 Why Do We Have Copyright ?
• The development of copyright regulation reflects the social
and technological transformation around human creative
activity and distribution of the resultant profits.
• While granting exclusive private rights to authors or
copyright holders has been considered as a way of
encouraging human creative activity, copyright law also
claims to recognize the larger public interest, particularly
with respect to education, research and access to information.
• Copyright law uses various means to balance public and private
interests. In the Statute of Anne (1710), the earliest modern copyright
law, authorities are allowed to limit and control the price of printed
books according to their best judgment.

53
Open Source Tools

• In the United States Constitution, authors are granted exclusive rights to


their writings within a limited time.
• In copyright law, fair use exceptions are specified to avoid the
drawbacks of excessive assertion of exclusive rights and to attain a
balance between conflicting interests.
2.9.2 What can be copyrighted?
Copyright applies to the expression of ideas in different forms, including
literary, dramatic, musical, artistic, and other intellectual works. The ideas
expressed in such works are themselves not copyrightable. Since the 1980s,
the copyright ability of software became internationally accepted.
2.9.3How do We Copyright Our Work?
• Now-a-days, copyright law does not require formalities. The author does not
need to publish, register, pay a registration fee of any kind, nor attach a
copyright notice to her work, for her copyright to take effect.
• Copyright is automatically applied to a work once it is created and the
creator of the work automatically becomes the copyright holder.
• Copyright is a legal concept enacted by most national governments, that
gives the creator of an original work exclusive rights to it, usually for a
limited period of time.
• At its most general, it is literally: "the right to copy", but also gives the
copyright holder the right to be credited for the work, to determine who (if
anyone) can perform it or adapt it to other forms, to benefit financially from
the work, and other related rights.
• It is one form of intellectual property (distinct from patents, trademarks, and
trade secrets), and applies to any particular expression of an idea or
information, which is substantial and self-contained in a fixed form. The
symbol for copyright is "©". (The letter C inside parentheses - "(c)" –
although a common practice, has never been legally recognized as a symbol
for copyright.)
2.9.4 Scope
• Copyright may apply to a wide range of creative, intellectual, or artistic
forms or "works". These include poems, theses, plays, and other literary
works, movies, choreographic works(dances, ballets, etc.), musical
compositions, audio recordings, paintings, drawings, sculptures,
photographs, software, radio and television broadcasts of live and other
performances, and, in some jurisdictions, industrial designs. Graphic designs
or industrial designs may have separate or overlapping laws applied to them
in some jurisdictions.

54
Open Source Tools

• Copyright does not cover ideas or information themselves, only the form or
manner in which they are expressed. For example, the copyright to a Mickey
Mouse cartoon restricts others from making copies of the cartoon or creating
derivative works based on Disney's Particular anthropomorphic mouse, but
doesn't prohibit the creation of other works about anthropomorphic mice in
general, so long as they're different enough to not be judged copies of
Disney's.
• Copyright laws are standardized somewhat through international
conventions such as the Berne Convention which have been ratified by most
countries, and are required by international organizations such as European
Union or World Trade Organization from their member states.
2.9.5 Exclusive Rights
Several exclusive rights typically attach to the holder of a copyright:
• To produce copies or reproductions of the work and to sell those copies
(including, typically, electronic copies).
• To import or export the work.
• To create derivative works (works that adapt the original work).
• To perform or display the work publicly
• To sell or assign these rights to others.
• To transmit or display by radio or video.
2.10 COPYLEFT
• The "reversed c in a full circle" is the copyleft symbol. It is the copyright
symbol mirrored. Unlike the copyright symbol, it has no legal meaning.
• Copy left is a play on the word copyright and is the practice of using
copyright law to remove restrictions on distributing copies and modified
versions of a work for others and requiring that the same freedoms be
preserved in modified versions.
• Copyleft is a form of licensing and may be used to modify copyrights for
works such as computer software, documents, music, and art. In general,
copyright law allows an author to prohibit others from reproducing,
adapting, or distributing copies of the author's work.
• In contrast, an author may, through a Copyleft licensing scheme, give every
person who receives a copy of a work permission to reproduce, adapt or
distribute the work as long as the same Copyleft Licensing scheme also
binds any resulting copies or adaptations.
• A widely used and originating Copyleft license is the GNU General
Public License. Similar licenses are available through Creative Commons-
called Share-alike.

55
Open Source Tools

• Copyleft may also be characterized as a copyright licensing scheme in


which an author surrenders some but not all rights under copyright
law.
• Instead of allowing a work to fall completely into the public domain (where
no copyright restrictions are imposed), Copyleft allows an author to impose
some but not all copyright restrictions on those who want to engage in
activities that would otherwise be considered copyright infringement.
• Under Copyleft, copyright infringement may be avoided if the would-be
infringe perpetuates the same Copyleft scheme. For this reason Copyleft
licenses are also known as viral or reciprocal licenses.

2.10.1 What is Copyleft ?


Copy left is a general method for making a program or other work free, and
requiring All modified and extended versions of the program to be free as
well. The simplest way to make program free software is to put it in the public
domain, uncopyrighted. This allows people to share the program and their
improvements, if they are so minded. But it also allows uncooperative people
to convert the program into proprietary software. They can make changes,
many or few, and distribute the result as a proprietary product. People who
receive the program in that modified form do not have the freedom that the
original author gave them; the middleman has stripped it away.
• In the GNU project, our aim is to give all users the freedom to redistribute
and change GNU software. If middlemen could strip off the freedom, we
might have many users, but those users would not have freedom. So instead
of putting GNU software in the public domain, we "Copyleft" it.
• Copyleft says that anyone who redistributes the software, with or without
changes, must pass along the freedom to further copy and change it.
• Copyleft guarantee that every user has freedom. Copyleft also provides an
incentive for other programmers to add to free software.
• Copyleft also helps programmers who want to contribute improvements to
free software get permission to do that. These programmers often work for
56
Open Source Tools

companies or universities that would do almost anything to get more money.


A programmer may want to contribute her changes to the community, but
her employer may want to turn the changes into a proprietary software
product.
• To Copyleft a program, we first state that it is copyrighted; then we add
distribution terms, which are a legal instrument that gives evelyone the
rights to use, modify, and redistribute the program's code or any program
derived from it but only if the distribution terms are unchanged. Thus, the
code and the freedoms become legally inseparable.
• Proprietary software developers use copyright to take away the users'
freedom; we use Copyright to guarantee their freedom That's why we
reverse the name, changing "copyright" into" Copyleft."
• Copyleft is a general concept; there are many ways to fill in the details. In
the GNU Project, the specific distribution terms that we use are contained in
the GNU General Public License(available in HTML, text, and Texinfo
format).
• The GNU General Public License is often called the GNU GPL for
short.
• An alternate form of Copyleft, the GNU Lesser General Public License
(LGPL) (available in HTML,text, and Texinfo format), applies to a few (but
not all) GNU libraries.
• All these licenses are designed so that you can easily apply them to your
own works, assuming you are the copyright holder. You don't have to
modify the license to do this, just include a copy of the license in the work,
and add notice in the source files that refer properly to the license.

2.11 PATENT
2.11.1 What is Patent?
A patent is a set of exclusive rights granted by a state to an inventor or
his assigns for a fixed period of time in exchange for a disclosure of an
invention. The procedure for granting patents, the requirements placed on the
patentee and the extent of the exclusive rights vary widely between countries
according to national laws and
International agreements. Typically, however, a patent application must include
one or more claims defining the invention which must be new, inventive, and
useful or industrially applicable. The exclusive right granted to a patentee in most
countries is the right to prevent or exclude others from making, using, selling,
offering to sell or importing the invention.

57
Open Source Tools

2.11.2 Definition
The term "patent" usually refers to a right granted to anyone who
invents or discover any new and useful process, machine, article of
manufacture, or composition of matter, any new and useful improvement
thereof. The additional qualification "utility patents" is used in countries such as
the United States to distinguish them from other types of patens but should not be
confused with utility models granted by other countries. Examples of particular
species of patents for inventions include biological patents, business method
patents, chemical patents and software patents.
Some other types of intellectual property rights are referred to as "patents"
in some jurisdictions: industrial design rights are called "design patents" in some
jurisdictions (they protect the visual design of objects that are not purely
utilitarian), plant breeders' rights are sometimes called "plant patents", and utility
models or Gebrauchsmuster are sometimes called "petty patents" or
"innovation patents". This article relates primarily to the patent for an invention,
although so-called petty patents and utility models may also be granted for
inventions. Certain grants made by the monarch in pursuance of the royal
prerogative were sometimes called "letters patent", which was a government
notice to the public of a grant of an exclusive right to ownership and possession.
2.11.3 law
1. Effects
• A patent is not a right to practice or use the invention. Rather, a patent
provides the right to exclude others from making, using, selling, offering for
sale, or importing the patented invention for the term of the patent, which is
usually 20 years from the filing date.
• A patent is, in effect, a limited property right that the government offers to
inventors in exchange for their agreement to share the details of their
inventions with the public. Like any other property right, it may be sold,
licensed, mortgaged, assigned or transferred, given away, or simply
abandoned.
• The rights conveyed by a patent vary country-by-country. For example, in
the United States,a patent covers research, except "purely philosophical"
inquiry. A U.S. patent is Infringed by any "making" of the invention, even a
making that goes toward development Of a new invention - this may itself
become subject of a patent. In contrast, Australian law permits others to
build on top of a patented invention, by carving out exceptions from
infringement for those who conduct research (e.g., for academic purposes)
on the invention.

58
Open Source Tools

• A patent being an exclusionary right does not, however, necessarily give the
owner of the patent the right to exploit the patent. For example, many
inventions are improvements of prior inventions which may still be covered
by someone else's patent.
• If an inventor takes an existing, patented mouse trap design, adds a new
feature to make an improved mouse trap, and obtains a patent on the
improvement, he or she can only legally build his or her improved mouse
trap with permission from the patent holder of the original mouse trap,
assuming the original patent is still in force.
• On the other hand, the owner of the improved mousetrap can exclude the
original patent owner from using the improvement.
• The patentee has the opportunity to challenge the revocation or license, but
is usually required to provide evidence that the reasonable requirements of
the public have been met by the working of invention.
2. Enforcement
• Patents can generally only be enforced through civil lawsuits (for example,
for a US patent, by an action for patent infringement in a United States
federal court), although some territories(such as France and Austria) have
criminal penalties for wanton infringement. Typically, the patent owner will
seek monetary compensation for past infringement, and will seek an
injunction prohibiting the defendant from engaging in future acts of
infringement.
• In order to prove infringement, the patent owner must establish that the
accused infringer practices all of the requirements of at least one of the
claims of the patent (noting that in Many jurisdictions the scope of the patent
may not be limited to what is literally stated in The claims, for example due
to the "doctrine of equivalents").
• An important limitation on the ability of a patent owner to successfully
assert the Patent in civil litigation is the accused infringer's right to challenge
the validity of that patent. Civil courts hearing patent cases can and often do
declare patents invalid. The grounds on which a patent can be found invalid
are set out in the relevant patent legislator and vary between countries.
Often, the grounds are a sub-set of the requirements for Patentability in the
relevant country.
3. Ownership
• In most countries, both natural persons and corporate entities may apply
for a patent.

59
Open Source Tools

• The entity or entities then become the owners of the patent when and if it
issues. However it is nearly always required that the inventor or inventors be
named and an indication be given on the public record as to how the owner
or owners acquired their rights to the invention" from the inventor or
inventors.
• In the United States, however, only the natural person(s) (i.e., the inventor/s)
may apply for a patent. If a patent issues, then each person listed as an
inventor owns the patent separately from the other. For example, if two
inventors are listed on a patent, then each one may grant licenses to the
patent independently of the other, absent an agreement to the contrary.
• It is common in the United States for inventors to assign their ownership
rights to a corporate entity. Inventors that work for a corporation, for
example, often are required to assign their ownership rights to their
corporation as a condition of their employment Independent inventors often
assign their ownership rights to a single entity so that only one entity has the
right to grant a license.
• The ability to assign ownership rights increases the liquidity of a patent as
property. Inventors can obtain patents and then sell them to third parties. The
third parties then own the patents as if they had originally made the
inventions themselves.
4. Governing Laws
• The grant and enforcement of patents are governed by national laws, and
also by international treaties, where those treaties have been given effect in
national laws.
• Patents are, therefore, territorial in nature. Commonly, a nation forms a
patent office with responsibility for operating that nation's patent system,
within the relevant patent laws.
• The patent office generally has responsible if for the grant of patents, with
infringement being the remit of national courts, There is a trend towards
global harmonization of patent laws, with the World Trade
Organization(WTO) being particularly active in this area.
• The TRIPs Agreement has been Largely successful in providing a forum for
nations to agree on an aligned set of patent laws.
• A key international convention relating to patents is the Paris Convention for
the Protection of Industrial Property, initially signed in 1883. The Paris
Convention sets out a range of basic rules relating to patents, and although
the convention does not have direct legal effect in all national jurisdictions,
the principles of the convention are incorporated into all notable current

60
Open Source Tools

patent systems. The most significant aspect of the convention is the


provision of the right to claim priority: filing an application in anyone
member state of the Paris Convention preserves the right for one year to file
in any other member state, and receive the benefit of the original filing date.
Because the right to a patent is intensely date drivent, his right is
fundamental to modern patent usage.
• The authority for patent statutes in different countries varies. In the United
States, the Constitution empowers Congress to make laws to "promote the
Progress of Science and useful Arts..." The laws Congress passed are
codified in title 35 of the United States Code and created the United States
Patent and Trademark Office. In the UK, substantive patent law is contained
in the Patents Act 1977 as amended.
• In addition, there are international treaty procedures, such as the procedures
under the European Patent Convention (EPC) [administered by the European
Patent Organization (EPOrg)a],nd the Patent Cooperation Treaty (PCT)
(administered by WIPO and covering 137 countries), that centralize some
portion of the filing and examination procedure. Similar arrangements exist
among the member states of ARIPO, OAPI, the analogous treaties among
African countries.
5. Application
A patent is requested by filing a written application at the relevant patent
office. The application contains a description of how to make and use the
invention and, under some legislations, if not self evident, the usefulness of the
invention. The patent application may or must also comprise "claims".
Claims define the invention and embodiments for which the applicant wants
patent rights.
• To obtain a patent, an applicant must provide a written description of the
invention in sufficient detail for a person skilled in the art (i.e., the relevant
area of technology) to make and use the invention. This written description
is provided in what is known as the patent Specification ,which is often
accompanied by illustrating drawings. Some countries, such as the United
States, further require that the specification disclose the "best mode" of the
invention (i.e., the most effective way, to the best of the inventor's
knowledge, to make or Practice the invention).
• In addition, at the end of the specification, the applicant must provide one or
more claims that define what the applicant regards as their invention. A
claim, unlike the ,body of the specification, is a description designed to
provide the public with notice of precisely what the patent owner has a right

61
Open Source Tools

to exclude others from making, using, or selling. Claims are often


analogized to a deed or other instrument that, in the context of real property,
sets the meets and bounds of an owner's right to exclude. Claims define what
a patent covers. A single patent may contain numerous claims, each which is
regarded as a distinct invention.
• For a patent to be granted, that is to take legal effect, the patent application
must the legal requirements related to patentability.
• Once a patent application has been filed, most patent offices examine the
application for compliance with the requirements of the relevant patent law.
If the application does comply, the objections are usually communicated to
the applicant or their patent agent attorney, who can respond to the
objections to attempt to overcome them and obtain grant of the patent.
• In most countries, there is no requirement that the inventor build a prototype
or otherwise reduce his or her invention to actual practice in order to obtain
a patent. The description of the invention, must be sufficiently complete so
that another person with ordinary skill in the art of the invention can make
and use the invention with undue experimentation6. Economics
I. Rationale
'There are four primary incentives embodied in the patent system: to invent in the
first
Place; to disclose the invention once made; to invest the sums necessary to
experiment,
produce and market the invention; and to design around and improve upon earlier
patents.
1. Patents provide incentives for economically efficient research and development
(R&D). Many large modern corporations have annual R&D budgets of hundreds of
millions or even billions of dollars. Without patents, R&D spending would be
significantly less or eliminated altogether, limiting the possibility of technological
advances or breakthroughs. Corporations would be much more conservative about
the R&D investments they made, as third parties would be free to exploit any
developments. This second justification is closely related to the basic ideas
underlying traditional property rights.
2. In accordance with the original definition of the term "patent," patents facilitate
and encourage disclosure of innovations into the public domain for the common
good. If inventors did not have the legal protection of patents, in many cases, they
would prefer or tend to keep their inventions secret. Awarding patents generally
makes the details of new technology publicly available, for exploitation by anyone
after the patent expires, or for further improvement by other inventors.

62
Open Source Tools

Furthermore, when a patent's term has expired, the public record ensures that the
patentee's idea is not lost to humanity.
3. In many industries (especially those with high fixed costs and either low
marginal costs or low reverse engineering costs - computer processors, software,
and pharmaceuticals for example), once an invention exists, the cost of
commercialization (testing, tooling up a factory, developing a market, etc.) is far
more than the initial conception cost. (For example, the internal "rule of thumb" at
several computer companies in the 1980s was that post-R&D costs were 7-to-1).
Unless there is someway to prevent copies from competing at the marginal cost of
production, companies will not make that productization investment.
4. Patent rights create an incentive for companies to develop workarounds to
patented inventions, thereby creating improved or alternative technologies that
might not otherwise be developed. One interesting side effect of modern patent
usage is that the smalltime inventor can use the exclusive right status to become a
licensor. This allows the inventor to accumulate capital quickly from licensing the
invention and may allow rapid innovation to occur because he or she may choose
to not manage a manufacturing buildup for the invention. Thus the inventor's time
and energy can be spent on pure innovation, allowing others to concentrate on
manufacturability.
II. Criticism
While each of the four incentives is achieved by the patent system in some
contexts, the patent system has countervailing costs, and those costs fall more
heavily in some contexts than others. There are many critics and criticisms of
patents and this has resulted in the formation of a large number of groups, who
oppose patents in general, or specific types of patents, and who lobby for their
abolishment.
Patents have always been criticized for being granted on already known inventions.
In
1938, for example, R. Buckminster Fuller, inventor of the geodesic dome wrote:
At present (1938), the (US patent) files, are so extraordinarily complex and the
items so multitudinous that a veritable army of governmental servants is required
to attend them and sort them into some order of distinguishable categories to which
reference may be made when corresponding with patent applicants for the purposes
of examiner citation of "prior art" disclosure. This complexity makes it inevitable
that the human-equation involved in government servants relative to carelessness
or mechanical limitations should occasion the granting of multitudes of "probably"
invalid patent claims."

63
Open Source Tools

Patents have also been criticized for conferring a "negative right" upon a
patent owner, permitting them to exclude competitors from using or
exploiting the invention, even if the competitor subsequently develops the
same invention independently. This may be subsequent to the date of invention,
or to the priority date, depending upon the relevant patent law (see First to file and
first to invent).
Patents may hinder innovation as well. A holding company, pejoratively
known as a "patent troll", owns a portfolio of patents, and sues others for
infringement of these patents while doing little to develop the technology itself.

7. History
Refer Software Engineering Methodology

64

You might also like