Producing Open Source Software How to Run a Successful Free Software Project

Total Page:16

File Type:pdf, Size:1020Kb

Producing Open Source Software How to Run a Successful Free Software Project Producing Open Source Software How to Run a Successful Free Software Project Karl Fogel Producing Open Source Software: How to Run a Successful Free Software Project by Karl Fogel Copyright © 2005-2013 Karl Fogel, under a CreativeCommons Attribution-ShareAlike (3.0) license [http:// creativecommons.org/licenses/by/3.0/]. Dedication This book is dedicated to two dear friends without whom it would not have been possible: Karen Under- hill and Jim Blandy. i Table of Contents Preface ............................................................................................................................. vi Why Write This Book? ............................................................................................... vi Who Should Read This Book? ..................................................................................... vi Sources .................................................................................................................... vii Acknowledgments .................................................................................................... viii Disclaimer ................................................................................................................. ix 1. Introduction .................................................................................................................... 1 History ...................................................................................................................... 3 The Rise of Proprietary Software and Free Software ................................................. 4 "Free" Versus "Open Source" ................................................................................ 7 The Situation Today .................................................................................................... 9 2. Getting Started .............................................................................................................. 11 Starting From What You Have .................................................................................... 12 Choose a Good Name ........................................................................................ 13 Have a Clear Mission Statement .......................................................................... 15 State That the Project is Free .............................................................................. 15 Features and Requirements List ........................................................................... 16 Development Status ........................................................................................... 16 Downloads ....................................................................................................... 17 Version Control and Bug Tracker Access .............................................................. 18 Communications Channels .................................................................................. 19 Developer Guidelines ......................................................................................... 19 Documentation .................................................................................................. 20 Demos, Screenshots, Videos, and Example Output .................................................. 22 Hosting ............................................................................................................ 23 Choosing a License and Applying It ............................................................................. 24 The "Do Anything" Licenses ............................................................................... 24 The GPL .......................................................................................................... 25 How to Apply a License to Your Software ............................................................ 25 Setting the Tone ........................................................................................................ 26 Avoid Private Discussions ................................................................................... 27 Nip Rudeness in the Bud .................................................................................... 28 Practice Conspicuous Code Review ...................................................................... 29 Be Open From Day One ..................................................................................... 30 When Opening a Formerly Closed Project, be Sensitive to the Magnitude of the Change ............................................................................................................ 32 Announcing .............................................................................................................. 33 3. Technical Infrastructure .................................................................................................. 36 What a Project Needs ................................................................................................. 37 Web Site .................................................................................................................. 38 Canned Hosting ................................................................................................. 39 Mailing Lists / Message Forums ................................................................................... 41 Choosing the Right Forum Management Software ................................................... 42 Version Control ......................................................................................................... 50 Version Control Vocabulary ................................................................................ 51 Choosing a Version Control System ..................................................................... 54 Using the Version Control System ........................................................................ 54 Tools for commit review .................................................................................... 58 Bug Tracker ............................................................................................................. 59 Interaction with Mailing Lists .............................................................................. 61 Pre-Filtering the Bug Tracker .............................................................................. 62 ii Producing Open Source Software IRC / Real-Time Chat Systems .................................................................................... 63 Bots ................................................................................................................ 64 Archiving IRC .................................................................................................. 65 RSS Feeds ................................................................................................................ 66 Wikis ....................................................................................................................... 66 Social Networking Services ......................................................................................... 67 4. Social and Political Infrastructure ..................................................................................... 69 Benevolent Dictators .................................................................................................. 70 Who Can Be a Good Benevolent Dictator? ............................................................ 70 Consensus-based Democracy ....................................................................................... 71 Version Control Means You Can Relax ................................................................. 72 When Consensus Cannot Be Reached, Vote ........................................................... 72 When To Vote .................................................................................................. 73 Who Votes? ...................................................................................................... 74 Polls Versus Votes ............................................................................................ 74 Vetoes ............................................................................................................. 75 Writing It All Down .................................................................................................. 75 Joining or Creating a Non-Profit Organization ................................................................ 76 5. Money ......................................................................................................................... 77 Crowdfunding: Kickstarter, etc .................................................................................... 78 Types of Corporate Involvement .................................................................................. 78 Hire for the Long Term .............................................................................................. 79 Appear as Many, Not as One ...................................................................................... 80 Be Open About Your Motivations ................................................................................ 81 Money Can't Buy You Love ........................................................................................ 82 Contracting ............................................................................................................... 83 Review and Acceptance of Changes ..................................................................... 85 Funding
Recommended publications
  • Pragmatic Version Control Using Subversion
    What readers are saying about Pragmatic Version Control using Subversion I expected a lot, but you surprised me with even more. Hav- ing used CVS for years I hesitated to try Subversion until now, although I knew it would solve many of the shortcom- ings of CVS. After reading your book, my excuses to stay with CVS disappeared. Oh, and coming from the Pragmatic Bookshelf this book is fun to read too. Thanks Mike. Steffen Gemkow Managing Director, ObjectFab GmbH I’m a long-time user of CVS and I’ve been skeptical of Sub- version, wondering if it would ever be “ready for prime time.” Until now. Thanks to Mike Mason for writing a clear, con- cise, gentle introduction to this new tool. After reading this book, I’m actually excited about the possibilities for version control that Subversion brings to the table. David Rupp Senior Software Engineer, Great-West Life & Annuity This was exactly the Subversion book I was waiting for. As a long-time Perforce and CVS user and administrator, and in my role as an agile tools coach, I wanted a compact book that told me just what I needed to know. This is it. Within a couple of hours I was up and running against remote Subversion servers, and setting up my own local servers too. Mike uses a lot of command-line examples to guide the reader, and as a Windows user I was worried at first. My fears were unfounded though—Mike’s examples were so clear that I think I’ll stick to using the command line from now on! I thoroughly recommend this book to anyone getting started using or administering Subversion.
    [Show full text]
  • Debian Developer's Reference Version 12.0, Released on 2021-09-01
    Debian Developer’s Reference Release 12.0 Developer’s Reference Team 2021-09-01 CONTENTS 1 Scope of This Document 3 2 Applying to Become a Member5 2.1 Getting started..............................................5 2.2 Debian mentors and sponsors......................................6 2.3 Registering as a Debian member.....................................6 3 Debian Developer's Duties 9 3.1 Package Maintainer's Duties.......................................9 3.1.1 Work towards the next stable release............................9 3.1.2 Maintain packages in stable .................................9 3.1.3 Manage release-critical bugs.................................. 10 3.1.4 Coordination with upstream developers............................ 10 3.2 Administrative Duties.......................................... 10 3.2.1 Maintaining your Debian information............................. 11 3.2.2 Maintaining your public key.................................. 11 3.2.3 Voting.............................................. 11 3.2.4 Going on vacation gracefully.................................. 12 3.2.5 Retiring............................................. 12 3.2.6 Returning after retirement................................... 13 4 Resources for Debian Members 15 4.1 Mailing lists............................................... 15 4.1.1 Basic rules for use....................................... 15 4.1.2 Core development mailing lists................................. 15 4.1.3 Special lists........................................... 16 4.1.4 Requesting new
    [Show full text]
  • Tinn-R Team Has a New Member Working on the Source Code: Wel- Come Huashan Chen
    Editus eBook Series Editus eBooks is a series of electronic books aimed at students and re- searchers of arts and sciences in general. Tinn-R Editor (2010 1. ed. Rmetrics) Tinn-R Editor - GUI forR Language and Environment (2014 2. ed. Editus) José Cláudio Faria Philippe Grosjean Enio Galinkin Jelihovschi Ricardo Pietrobon Philipe Silva Farias Universidade Estadual de Santa Cruz GOVERNO DO ESTADO DA BAHIA JAQUES WAGNER - GOVERNADOR SECRETARIA DE EDUCAÇÃO OSVALDO BARRETO FILHO - SECRETÁRIO UNIVERSIDADE ESTADUAL DE SANTA CRUZ ADÉLIA MARIA CARVALHO DE MELO PINHEIRO - REITORA EVANDRO SENA FREIRE - VICE-REITOR DIRETORA DA EDITUS RITA VIRGINIA ALVES SANTOS ARGOLLO Conselho Editorial: Rita Virginia Alves Santos Argollo – Presidente Andréa de Azevedo Morégula André Luiz Rosa Ribeiro Adriana dos Santos Reis Lemos Dorival de Freitas Evandro Sena Freire Francisco Mendes Costa José Montival Alencar Junior Lurdes Bertol Rocha Maria Laura de Oliveira Gomes Marileide dos Santos de Oliveira Raimunda Alves Moreira de Assis Roseanne Montargil Rocha Silvia Maria Santos Carvalho Copyright©2015 by JOSÉ CLÁUDIO FARIA PHILIPPE GROSJEAN ENIO GALINKIN JELIHOVSCHI RICARDO PIETROBON PHILIPE SILVA FARIAS Direitos desta edição reservados à EDITUS - EDITORA DA UESC A reprodução não autorizada desta publicação, por qualquer meio, seja total ou parcial, constitui violação da Lei nº 9.610/98. Depósito legal na Biblioteca Nacional, conforme Lei nº 10.994, de 14 de dezembro de 2004. CAPA Carolina Sartório Faria REVISÃO Amek Traduções Dados Internacionais de Catalogação na Publicação (CIP) T591 Tinn-R Editor – GUI for R Language and Environment / José Cláudio Faria [et al.]. – 2. ed. – Ilhéus, BA : Editus, 2015. xvii, 279 p. ; pdf Texto em inglês.
    [Show full text]
  • Tuto Documentation Release 0.1.0
    Tuto Documentation Release 0.1.0 DevOps people 2020-05-09 09H16 CONTENTS 1 Documentation news 3 1.1 Documentation news 2020........................................3 1.1.1 New features of sphinx.ext.autodoc (typing) in sphinx 2.4.0 (2020-02-09)..........3 1.1.2 Hypermodern Python Chapter 5: Documentation (2020-01-29) by https://twitter.com/cjolowicz/..................................3 1.2 Documentation news 2018........................................4 1.2.1 Pratical sphinx (2018-05-12, pycon2018)...........................4 1.2.2 Markdown Descriptions on PyPI (2018-03-16)........................4 1.2.3 Bringing interactive examples to MDN.............................5 1.3 Documentation news 2017........................................5 1.3.1 Autodoc-style extraction into Sphinx for your JS project...................5 1.4 Documentation news 2016........................................5 1.4.1 La documentation linux utilise sphinx.............................5 2 Documentation Advices 7 2.1 You are what you document (Monday, May 5, 2014)..........................8 2.2 Rédaction technique...........................................8 2.2.1 Libérez vos informations de leurs silos.............................8 2.2.2 Intégrer la documentation aux processus de développement..................8 2.3 13 Things People Hate about Your Open Source Docs.........................9 2.4 Beautiful docs.............................................. 10 2.5 Designing Great API Docs (11 Jan 2012)................................ 10 2.6 Docness.................................................
    [Show full text]
  • Omea Pro Printed Documentation
    Omea Pro Printed Documentation Table Of Contents Welcome............................................................................................................................................ 1 Help Navigation Buttons.......................................................................................................... 1 Toolbars ..................................................................................................................................... 1 Adjusting the window and pane size.............................................................................. 1 Navigating topics.................................................................................................................... 1 About Local Video Tutorials ................................................................................................... 2 What’s Next?............................................................................................................................ 2 Introducing Omea Pro.................................................................................................................. 3 New in Omea Pro ........................................................................................................................... 5 General Improvements............................................................................................................ 5 Organizational Features Improvements............................................................................ 5 Browser Integration.................................................................................................................
    [Show full text]
  • Efficient Algorithms for Comparing, Storing, and Sharing
    EFFICIENT ALGORITHMS FOR COMPARING, STORING, AND SHARING LARGE COLLECTIONS OF EVOLUTIONARY TREES A Dissertation by SUZANNE JUDE MATTHEWS Submitted to the Office of Graduate Studies of Texas A&M University in partial fulfillment of the requirements for the degree of DOCTOR OF PHILOSOPHY May 2012 Major Subject: Computer Science EFFICIENT ALGORITHMS FOR COMPARING, STORING, AND SHARING LARGE COLLECTIONS OF EVOLUTIONARY TREES A Dissertation by SUZANNE JUDE MATTHEWS Submitted to the Office of Graduate Studies of Texas A&M University in partial fulfillment of the requirements for the degree of DOCTOR OF PHILOSOPHY Approved by: Chair of Committee, Tiffani L. Williams Committee Members, Nancy M. Amato Jennifer L. Welch James B. Woolley Head of Department, Hank W. Walker May 2012 Major Subject: Computer Science iii ABSTRACT Efficient Algorithms for Comparing, Storing, and Sharing Large Collections of Evolutionary Trees. (May 2012) Suzanne Jude Matthews, B.S.; M.S., Rensselaer Polytechnic Institute Chair of Advisory Committee: Dr. Tiffani L. Williams Evolutionary relationships between a group of organisms are commonly summarized in a phylogenetic (or evolutionary) tree. The goal of phylogenetic inference is to infer the best tree structure that represents the relationships between a group of organisms, given a set of observations (e.g. molecular sequences). However, popular heuristics for inferring phylogenies output tens to hundreds of thousands of equally weighted candidate trees. Biologists summarize these trees into a single structure called the consensus tree. The central assumption is that the information discarded has less value than the information retained. But, what if this assumption is not true? In this dissertation, we demonstrate the value of retaining and studying tree collections.
    [Show full text]
  • Automation to Save Your Bacon Elliot Jordan End-User Platform Security Nordstrom “I’M Not Really a Software Developer
    Linters Hooks Pipelines Automation to Save Your Bacon Elliot Jordan End-User Platform Security Nordstrom “I’m not really a software developer. I just think I’m a software developer because I develop software.” — Arjen van Bochoven ‣ Package sources ‣ Scripts and extension plist, yaml, json, shell, python attributes ‣ AutoPkg recipes/ shell, python overrides ‣ MDM profiles plist, shell, python plist ‣ Munki repos ‣ Documentation plist, python, shell text, markdown, reStructuredText Mac Software "Dev Ops" Admin Developer Reducing errors Streamlining development Automating tedious tasks Ground Rules Protected "master" branch Peer review Remote Git hosting Production code in Git Code standards Linters Linters Linters Linters Linters Linters Linters Atom + Shellcheck Linters Atom + Shellcheck Terminal $ brew install shellcheck ==> Downloading https://homebrew.bintray.com/bottles/ shellcheck-0.6.0_1.mojave.bottle.tar.gz ==> Pouring shellcheck-0.6.0_1.mojave.bottle.tar.gz ! /usr/local/Cellar/shellcheck/0.6.0_1: 8 files, 7.2MB $ which shellcheck /usr/local/bin/shellcheck ⌘C $ Linters Atom + Shellcheck Linters Atom + Shellcheck Linters Atom + Shellcheck Linters Atom + Shellcheck Linters Atom + Shellcheck Linters Atom + Shellcheck Linters Atom + Shellcheck ⌘V Linters Atom + Shellcheck Linters Atom + Shellcheck Linters Atom + Shellcheck Linters Atom + Shellcheck Click to learn more! Linters Atom + Shellcheck Linters Atom + Shellcheck Typo caught Linters Atom + Shellcheck Suggestions for improving resiliency Linters Atom + Shellcheck Deprecated syntax
    [Show full text]
  • Bluej Teamwork Repository Configuration
    BlueJ Teamwork Repository Configuration Version 2.0 for BlueJ Version 2.5.0 (and 2.2.x) Davin McCall School of Engineering & IT, Deakin University 1 Introduction This document gives a brief description of how you might set up a version control repository for use with BlueJ’s teamwork features. It is intended mainly as a “quick start” guide and not as a complete reference – for that you should refer to the version control software documentation (i.e. the CVS manual or the Subversion manual) – but it does explain some BlueJ-specific concepts (such as how BlueJ supports the notion of student groups or teams). Setting up a repository usually requires a server to which you have “root” or administrator access. This may mean that you need to ask a Systems Administrator to set up the repository for you. Since BlueJ version 2.5.0, both Subversion and CVS are supported version control systems. BlueJ version 2.2.x supports only CVS. BlueJ versions prior to 2.2.0 did not support teamwork features. Chapters 2 and 3 explain how to set up and test a repository using CVS. Chapter 4 then covers the equivalent steps for using Subversion. 2 Setting up a simple single user CVS repository for testing the BlueJ teamwork features 2.1 Setting up the repository server On Unix / Linux / MacOS X: You must have the CVS software installed on the machine you intend to use as a server. There is a good chance that it is already installed, but if not, your vendor or distribution provider will almost certainly provide packages that can be installed.
    [Show full text]
  • FAKULTÄT FÜR INFORMATIK Leveraging Traceability Between Code and Tasks for Code Reviews and Release Management
    FAKULTÄT FÜR INFORMATIK DER TECHNISCHEN UNIVERSITÄT MÜNCHEN Master’s Thesis in Informatics Leveraging Traceability between Code and Tasks for Code Reviews and Release Management Jan Finis FAKULTÄT FÜR INFORMATIK DER TECHNISCHEN UNIVERSITÄT MÜNCHEN Master’s Thesis in Informatics Leveraging Traceability between Code and Tasks for Code Reviews and Release Management Einsatz von Nachvollziehbarkeit zwischen Quellcode und Aufgaben für Code Reviews und Freigabemanagement Author: Jan Finis Supervisor: Prof. Bernd Brügge, Ph.D. Advisors: Maximilian Kögel, Nitesh Narayan Submission Date: May 18, 2011 I assure the single-handed composition of this master’s thesis only supported by declared resources. Sydney, May 10th, 2011 Jan Finis Acknowledgments First, I would like to thank my adviser Maximilian Kögel for actively supporting me with my thesis and being reachable for my frequent issues even at unusual times and even after he left the chair. Furthermore, I would like to thank him for his patience, as the surrounding conditions of my thesis, like me having an industrial internship and finishing my thesis abroad, were sometimes quite impedimental. Second, I want to thank my other adviser Nitesh Narayan for helping out after Max- imilian has left the chair. Since he did not advise me from the start, he had more effort working himself into my topic than any usual adviser being in charge of a thesis from the beginning on. Third, I want to thank the National ICT Australia for providing a workspace, Internet, and library access for me while I was finishing my thesis in Sydney. Finally, my thanks go to my supervisor Professor Bernd Brügge, Ph.D.
    [Show full text]
  • DVD-Libre 2007-09
    (continuación 2) DOSBox 0.72 - DosZip Commander 1.28 - Doxygen 1.5.3 - DrawPile 0.4.0.1 - Drupal 4.7.7 - Drupal 4.7.X Castellano - Drupal 4.7.X Catalán - Drupal 5.2 - Drupal 5.X Castellano - Drupal 5.X Catalán - DVD Flick 1.2.2.1 - DVDStyler 1.5.1 - DVDx 2.10 - EasyPHP 1.8 - Eclipse 3.2.1 Castellano - Eclipse 3.3 - Eclipse Graphical Editor Framework 3.3 - Eclipse Modeling Framework 2.3.0 - Eclipse UML2 DVD-Libre 2.1.0 - Eclipse Visual Editor 1.2.1 - Ekiga 2.0.9 beta - Elgg 0.8 - EQAlign 1.0.0. - Eraser 5.84 - Exodus 0.9.1.0 - Explore2fs 1.08 beta9 - ez Components 2007.1.1 - eZ Publish 3.9.3 - Fast Floating Fractal Fun cdlibre.org 3.2.3 - FileZilla 3.0.0 - FileZilla Server 0.9.23 - Firebird 2.0.1.12855 - Firefox 2.0.0.6 Castellano - Firefox 2.0.0.6 Català - FLAC 1.2.0a - FMSLogo 6.16.0 - Folder Size 2.3 - FractalForge 2.8.2 - Free Download 2007-09 Manager 2.5.712 - Free Pascal 2.2.0 - Free UCS Outline Fonts 2006.01.26 - Free1x2 0.70.1 - FreeCAD 0.6.476 - FreeDOS 1.0 Disquete de arranque - FreeDOS 1.0 Full CD 2007.05.02 - FreeMind 0.8.0 - FreePCB 1.2.0.0 - FreePCB 1.338 - Fyre 1.0.0 - Gaim 1.5.0 Català - Gambit 0.2007.01.30 - GanttProject DVD-Libre es una recopilación de programas libres para Windows. 2.0.4 - GanttPV 0.7 - GAP 4.4.9 - GAP paquetes 2007.09.08 - Gazpacho 0.7.2 - GCfilms 6.4 - GCompris 8.3.3 - Gencat RSS 1.0 - GenealogyJ 2.4.3 - GeoGebra 3.0.0 RC1 - GeoLabo 1.25 - Geonext 1.71 - GIMP 2.2.17 - GIMP 2.2.8 Català - GIMP Animation package 2.2.0 - GIMPShop 2.2.8 - gmorgan 0.24 - GnuCash En http://www.cdlibre.org puedes conseguir la versión más actual de este 2.2.1 - Gnumeric 1.6.3 - GnuWin32 Indent 2.2.9 - Gparted LiveCD 0.3.4.8 - Gpg4win 1.1.2 - Graph 4.3 - DVD, así como otros CDs y DVDs recopilatorios de programas y fuentes.
    [Show full text]
  • DVCS Or a New Way to Use Version Control Systems for Freebsd
    Brief history of VCS FreeBSD context & gures Is Arch/baz suited for FreeBSD? Mercurial to the rescue New processes & policies needed Conclusions DVCS or a new way to use Version Control Systems for FreeBSD Ollivier ROBERT <[email protected]> BSDCan 2006 Ottawa, Canada May, 12-13th, 2006 Ollivier ROBERT <[email protected]> DVCS or a new way to use Version Control Systems for FreeBSD Brief history of VCS FreeBSD context & gures Is Arch/baz suited for FreeBSD? Mercurial to the rescue New processes & policies needed Conclusions Agenda 1 Brief history of VCS 2 FreeBSD context & gures 3 Is Arch/baz suited for FreeBSD? 4 Mercurial to the rescue 5 New processes & policies needed 6 Conclusions Ollivier ROBERT <[email protected]> DVCS or a new way to use Version Control Systems for FreeBSD Brief history of VCS FreeBSD context & gures Is Arch/baz suited for FreeBSD? Mercurial to the rescue New processes & policies needed Conclusions The ancestors: SCCS, RCS File-oriented Use a subdirectory to store deltas and metadata Use lock-based architecture Support shared developments through NFS (fragile) SCCS is proprietary (System V), RCS is Open Source a SCCS clone exists: CSSC You can have a central repository with symlinks (RCS) Ollivier ROBERT <[email protected]> DVCS or a new way to use Version Control Systems for FreeBSD Brief history of VCS FreeBSD context & gures Is Arch/baz suited for FreeBSD? Mercurial to the rescue New processes & policies needed Conclusions CVS, the de facto VCS for the free world Initially written as shell wrappers over RCS then rewritten in C Centralised server Easy UI Use sandboxes to avoid locking Simple 3-way merges Can be replicated through CVSup or even rsync Extensive documentation (papers, websites, books) Free software and used everywhere (SourceForge for example) Ollivier ROBERT <[email protected]> DVCS or a new way to use Version Control Systems for FreeBSD Brief history of VCS FreeBSD context & gures Is Arch/baz suited for FreeBSD? Mercurial to the rescue New processes & policies needed Conclusions CVS annoyances and aws BUT..
    [Show full text]
  • Freebsd Handbook
    FreeBSD Handbook http://www.freebsd.org/doc/en_US.ISO8859-1/books/han... FreeBSD Handbook The FreeBSD Documentation Project Copyright © 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 The FreeBSD Documentation Project Welcome to FreeBSD! This handbook covers the installation and day to day use of FreeBSD 8.3-RELEASE and FreeBSD 9.1-RELEASE. This manual is a work in progress and is the work of many individuals. As such, some sections may become dated and require updating. If you are interested in helping out with this project, send email to the FreeBSD documentation project mailing list. The latest version of this document is always available from the FreeBSD web site (previous versions of this handbook can be obtained from http://docs.FreeBSD.org/doc/). It may also be downloaded in a variety of formats and compression options from the FreeBSD FTP server or one of the numerous mirror sites. If you would prefer to have a hard copy of the handbook, you can purchase one at the FreeBSD Mall. You may also want to search the handbook. REDISTRIBUTION AND USE IN SOURCE (XML DOCBOOK) AND 'COMPILED' FORMS (XML, HTML, PDF, POSTSCRIPT, RTF AND SO FORTH) WITH OR WITHOUT MODIFICATION, ARE PERMITTED PROVIDED THAT THE FOLLOWING CONDITIONS ARE MET: 1. REDISTRIBUTIONS OF SOURCE CODE (XML DOCBOOK) MUST RETAIN THE ABOVE COPYRIGHT NOTICE, THIS LIST OF CONDITIONS AND THE FOLLOWING DISCLAIMER AS THE FIRST LINES OF THIS FILE UNMODIFIED. 2. REDISTRIBUTIONS IN COMPILED FORM (TRANSFORMED TO OTHER DTDS, CONVERTED TO PDF, POSTSCRIPT, RTF AND OTHER FORMATS) MUST REPRODUCE THE ABOVE COPYRIGHT NOTICE, THIS LIST OF CONDITIONS AND THE FOLLOWING DISCLAIMER IN THE DOCUMENTATION AND/OR OTHER MATERIALS PROVIDED WITH THE DISTRIBUTION.
    [Show full text]