Page 217 -
P. 217

200   Chapter 7   Design and implementation


                                    products have been platform products rather than application systems. There are a
                                    limited number of developers who might be interested in specialized application sys-
                                    tems. As such, making a software system open source does not guarantee commu-
                                    nity involvement.



                             7.4.1 Open source licensing
                                    Although a fundamental principle of open-source development is that source code
                                    should be freely available, this does not mean that anyone can do as they wish with
                                    that code. Legally, the developer of the code (either a company or an individual) still
                                    owns the code. They can place restrictions on how it is used by including legally
                                    binding conditions in an open source software license (St. Laurent, 2004). Some
                                    open source developers believe that if an open source component is used to develop
                                    a new system, then that system should also be open source. Others are willing to
                                    allow their code to be used without this restriction. The developed systems may be
                                    proprietary and sold as closed source systems.
                                       Most open source licenses are derived from one of three general models:


                                    1.  The GNU General Public License (GPL). This is a so-called ‘reciprocal’ license
                                        that, simplistically, means that if you use open source software that is licensed
                                        under the GPL license, then you must make that software open source.
                                    2.  The GNU Lesser General Public License (LGPL). This is a variant of the GPL
                                        license where you can write components that link to open source code without
                                        having to publish the source of these components. However, if you change the
                                        licensed component, then you must publish this as open source.
                                    3.  The Berkley Standard Distribution (BSD) License. This is a non-reciprocal
                                        license, which means you are not obliged to republish any changes or modifica-
                                        tions made to open source code. You can include the code in proprietary systems
                                        that are sold. If you use open source components, you must acknowledge the
                                        original creator of the code.


                                       Licensing issues are important because if you use open-source software as part of
                                    a software product, then you may be obliged by the terms of the license to make your
                                    own product open source. If you are trying to sell your software, you may wish to
                                    keep it secret. This means that you may wish to avoid using GPL-licensed open
                                    source software in its development.
                                       If you are building software that runs on an open source platform, such as Linux,
                                    then licenses are not a problem. However, as soon as you start including open source
                                    components in your software you need to set up processes and databases to keep
                                    track of what’s been used and their license conditions. Bayersdorfer (2007) suggests
                                    that companies managing projects that use open source should:
                                    1.  Establish a system for maintaining information about open source components
                                        that are downloaded and used. You have to keep a copy of the license for each
   212   213   214   215   216   217   218   219   220   221   222