SlideShare a Scribd company logo
The Lives of Others
Open-Source Development Practices Elsewhere


              Peter Eisentraut

             Senior Software Engineer
                Lab Development
              F-Secure Corporation


                PGCon 2009
Ground Rules




               I don’t know
               everything.
               If you are involved
               in other projects,
               chime in.
               Discussion
               welcome
Whom To Learn From?

    Look at the biggest
    open-source projects
    Metric: installation
    footprint, installation
    count
    Where to find those
    numbers?
         the Universal Debian
         Database
         doesn’t count OS
         distributions such as
         Debian, Fedora,
         FreeBSD,
         OpenSolaris
         Java also
         underrepresented
Sidetrack: The Universal Debian Database


  Example: query for packages with largest install footprint and
  popularity

  SELECT rank() OVER (ORDER BY score DESC),
         source,
         sum(installed_size::numeric * insts) AS score
  FROM packages JOIN popcon_src USING (source)
  WHERE distribution = 'debian'
    AND release = 'lenny'
    AND component = 'main'
    AND architecture IN ('all', 'i386')
  GROUP BY source
  ORDER BY score DESC
  LIMIT 100;
The Biggest Projects




  OpenOffice.org, Linux, GCC, GCJ, Qt, Mesa, KDE, Glibc,
  Firefox, MySQL, Boost, Perl, Samba, LDP, Vim, Gtk+, FFmpeg,
  OPAL, Evolution, OpenJDK, Gtk−−, wxWidgets, PyQt, Gimp, TeX Live,
  X.org, SCOWL, OpenSSL, Thunderbird, Xalan, Berkeley DB, ncurses,
  Foomatic, SELinux, Gutenprint, PHP, GNU binutils, Python, KOffice, Wine, Ruby, ICU,
  LAPACK, Webkit, PostgreSQL, glib, libsigc++, Inkscape, PWLib, GNOME, Apache, HPLIP, Xerces,
  Libxml, GNU Gettext, CUPS, SANE, Net-SNMP, Ghostscript, Mono, Eclipse, Pidgin
PostgreSQL — A Role Model?




  Things to keep in mind:
   1. Process details are hard to gather for outsiders.
   2. Other projects are not without problems.
   3. Many of them have worse problems than we do.
   4. Others look at the PostgreSQL project for advice and
      inspiration.
   5. It’s amazing that anything gets done. :-)
Version Control




     In the lead: Git, Subversion
     Also-rans: CVS, Mercurial, Bazaar
     Commercial systems phased out
     Automatic conversion services in use
Build Tools




     Autotools continue to rule!
     CMake might be challenger
         well-known usage: KDE, MySQL (for Windows only)
         uptake still slow (88 of 12000 packages in Debian)
     That’s it, for C programs.
Documentation Tools



     DocBook emerged as the standard.
         XML vs. SGML
     Texinfo (only at GNU)
     man pages
     HTML
     some specialized solutions:
         Python: reStructuredText
         Perl: Perldoc
         Qt: qdoc
Discussion Forums




     Mailing lists are clearly the standard.
     But don’t argue about Reply-To!
     Usenet is dead. :-)
     Web-forums serve support requests and newbies better.
     . . . and then there are bug-tracking systems.
Bug Tracking




     Bugzilla is king (often heavily themed and customized).
     contenders: Roundup, Jira, *forge
     marginal: RT
Coding Styles




     Coding style appears to be an issue specific to C/C++.
     Besides the GNU style, various random styles can be
     found.
     CVS $Keywords$ are pretty much gone.
     Patch styles (-c vs. -u) are an unsettled issue.
Wikis




        About 1/3 of projects have active wikis.
        MediaWiki is most popular.
The Foundries

     Project-specific *forge services are rare.
     More popular: Common repo and Bugzilla for everyone.
     This has implications for management of sub-/sister
     projects.
Write Your Own Tools



  Some tools are side-products of other projects:
      ccache
      tmalloc
      distcc
      Bugzilla
      PatchTracker
      Contributions to build tools (autoconf, cmake, etc.) are
      welcome.
Release Scheduling


  Trend is toward time-based releases:
      OpenBSD (6 months)
      GNOME (6 months)
      Ubuntu (6 months)
      Debian (18 months)
      OpenOffice.org (6 months)
      PostgreSQL (12 months)
      Linux kernel (3 months)
      (MySQL)
      ...
  Note: The upgrade issue is fairly unique to PostgreSQL.
Minor Releases




     Stable + development branch is standard.
     Some maintain more than one stable, e.g., Samba.
     PostgreSQL’s 5+ back branches have got to be a record.
     MySQL might come close.
     Minor releases can also have a fixed schedule.
     (OpenOffice.org: 3 months)
The Rewrite Trap




  Major reengineering efforts usually have schedule and/or
  quality problems. Recall:
      Samba 4
      Perl 6
      KDE 4
Pre-Releases




     Beta, RC are standard.
     Even/odd model (Linux, Perl) is obsolescent.
     Alpha/milestone releases are rare.
Release Manager




     Some projects appoint rotating release managers.
     In other projects, these roles fall into place by tradition.
Downstream Packaging

  Various approaches:
      Tight integration, e.g.: PostgreSQL, KDE, Samba
      Laissez-faire, e.g.: Linux, GCC, MySQL
      Conflict-prone, e.g.: OpenOffice.org, Mozilla
Security Handling




                    Most sizeable projects have
                    special security
                    contacs/teams.
                    CVE numbers are
                    standard.
                    Note: Non-database
                    projects have a
                    skewed/different view of
                    “security”.
Committers



     Surprisingly, many projects seem to do with very few
     committers.
     Some projects have very large amounts of committers.
     I think this is strongly related to the software architecture
     and project layout. Compare:
         KDE has everything in one repo; hundreds of committers.
         PostgreSQL has PgFoundry etc.
         Linux kernel uses a very different model.
     Managing external committers tends to be a problem for
     company-run projects.
Project Steering




      Company-run projects have a clear direction (usually).
      In principle, the developers create their own destiny
      everywhere else.
      Some projects have elected boards etc., but these don’t
      have technical influence.
      Most projects are steered by the “old farts”.
Forking



     Forking continues to happen.
     Contemporary cases: Go-OO.org, eglibc, OurDelta,
     Iceweasel
     Reasons:
          Faster/different feature advancement
          Licensing or trademark conflicts
          Company vs. community barrier
          Personal problems
     Many commercial forks of open-source DBMS:
     EnterpriseDB, Greenplum, Truviso, Kickfire, Infobright
Licensing




     Distributors are incredibly picky.
     So are legal departments.
     Well-known licenses are important.
     Consistent and uniform licensing helps.
     Weird licensing can kill projects.
     Many projects have had their share of problems: KDE (Qt),
     Linux (SCO, firmware), XFree86, Mambo, Apache vs.
     OpenBSD, PostgreSQL (GPL), OpenSSL vs. Debian
Copyright Notices


     Amateur legal opinion: Copyright notices are more or less
     meaningless. But they could help if you plan to go to court.
     Most company-sponsored code has standard copyright
     headers.
     FSF and Apache use copyright assignments and careful
     changelog tracking.
     Most other projects are pretty random.
         Initial author: Perl, Samba
         Various authors: KDE, Vim
         “Fake” organizations: OpenSSL, (PHP), PostgreSQL,
         wxWidgets
         nothing: Python
     Many (smaller) projects apply the GPL wrongly.
Legal and Funds Management




  Four models:
      Run and owned by a single company: OpenOffice.org,
      MySQL, Qt, Berkeley DB, CUPS, (PHP)
      Run and controlled by a non-profit association: GCC, KDE,
      Mozilla, GNOME, Apache, (Fedora)
      Loosely organized but someone in the background: Linux,
      PostgreSQL, Debian, OpenBSD
      Unorganized: Vim
Standards Organizations




  OSS participation is possible, e. g.:
      OpenOffice.org
      Linux/glibc
      KDE/GNOME/X.org/Freedesktop
      MySQL, PostgreSQL, . . . ?
The Average Sizeable Open-Source Project
2010/2011




     Written in C (or Java)
     GPL
     Source in Git
     Bugs in Bugzilla
     Built with Autoconf (or Maven)
     Released every 6 months
Open Issues for PostgreSQL



     Version control
     system
     Web forum
     Bug tracking
     system
     CMake?
     DocBook XML
     Release cycle
     length
     Upgradability
Rights and Attributions



  This presentation “The Lives of Others: Open-Source Development Practices Elsewhere” was authored by Peter
  Eisentraut and is licensed under the Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported
  license.

         The image on page 2 is “Comiskey Park (US Celluar Field)” by Flickr user Zol87, available under the
         Creative Commons Attribution-Noncommercial 2.0 Generic license.
         The image on page 3 is “Apples and oranges” by Flickr user Jeff Tabaco, available under the Creative
         Commons Attribution-Noncommercial-Share Alike 2.0 Generic license.
         The image on page 14 is “Valimon asema Helsinki” from Wikipedia and is in the public domain.
         The image on page 21 is “Watersfalls, Mesa Arts Center” by Flickr user cobalt123, available under the
         Creative Commons Attribution-Noncommercial-Share Alike 2.0 Generic license.
         The image on page 22 is “Suomenlinna” by Flickr user Anosmia, available under the Creative Commons
         Attribution 2.0 Generic license.
         The image on page 31 is “Committee meeting” by Flickr user Matt and Kim Rudge, available under the
         Creative Commons Attribution-Noncommercial 2.0 Generic license.

More Related Content

What's hot

Packaging for the Maemo Platform
Packaging for the Maemo PlatformPackaging for the Maemo Platform
Packaging for the Maemo Platform
Jeremiah Foster
 
Poky meets Debian: Understanding how to make an embedded Linux by using an ex...
Poky meets Debian: Understanding how to make an embedded Linux by using an ex...Poky meets Debian: Understanding how to make an embedded Linux by using an ex...
Poky meets Debian: Understanding how to make an embedded Linux by using an ex...
Yoshitake Kobayashi
 
ABCs of docker
ABCs of dockerABCs of docker
ABCs of docker
Sabyrzhan Tynybayev
 
Generating Linked Data descriptions of Debian packages in the Debian PTS
Generating Linked Data descriptions of Debian packages in the Debian PTSGenerating Linked Data descriptions of Debian packages in the Debian PTS
Generating Linked Data descriptions of Debian packages in the Debian PTS
olberger
 
Debian packaging
Debian packagingDebian packaging
Debian packaging
Dimitris Tsompanidis
 
How%20to%20install%20PHP%20on%20Linux%20_%20laffers
How%20to%20install%20PHP%20on%20Linux%20_%20laffersHow%20to%20install%20PHP%20on%20Linux%20_%20laffers
How%20to%20install%20PHP%20on%20Linux%20_%20laffers
tutorialsruby
 
Distributions and package management in the containers era
Distributions and package management in the containers eraDistributions and package management in the containers era
Distributions and package management in the containers era
nussbauml
 
PuppetConf 2016: Puppet on Windows – Nicolas Corrarello, Puppet
PuppetConf 2016: Puppet on Windows – Nicolas Corrarello, PuppetPuppetConf 2016: Puppet on Windows – Nicolas Corrarello, Puppet
PuppetConf 2016: Puppet on Windows – Nicolas Corrarello, Puppet
Puppet
 
How to build Debian packages
How to build Debian packages How to build Debian packages
How to build Debian packages
Priyank Kapadia
 
Version Control & Git
Version Control & GitVersion Control & Git
Version Control & Git
Craig Smith
 
Php Dependency Management with Composer ZendCon 2016
Php Dependency Management with Composer ZendCon 2016Php Dependency Management with Composer ZendCon 2016
Php Dependency Management with Composer ZendCon 2016
Clark Everetts
 
hw1a
hw1ahw1a
How to deploy PHP projects with docker
How to deploy PHP projects with dockerHow to deploy PHP projects with docker
How to deploy PHP projects with docker
Ruoshi Ling
 
Глеб Смирнов: Что нового в FreeBSD 10.0
Глеб Смирнов: Что нового в FreeBSD 10.0Глеб Смирнов: Что нового в FreeBSD 10.0
Глеб Смирнов: Что нового в FreeBSD 10.0
Yandex
 
Corwin on Containers
Corwin on ContainersCorwin on Containers
Corwin on Containers
Corwin Brown
 
Virtual Bolt Workshop - 6 May
Virtual Bolt Workshop - 6 MayVirtual Bolt Workshop - 6 May
Virtual Bolt Workshop - 6 May
Puppet
 
Linux server world
Linux server worldLinux server world
Linux server world
Akshat Singh
 
Modulesync- How vox pupuli manages 133 modules, Tim Meusel
Modulesync- How vox pupuli manages 133 modules, Tim MeuselModulesync- How vox pupuli manages 133 modules, Tim Meusel
Modulesync- How vox pupuli manages 133 modules, Tim Meusel
Puppet
 
Writing Services with ZF2
Writing Services with ZF2Writing Services with ZF2
Writing Services with ZF2
Mike Willbanks
 
Linux Kernel Introduction
Linux Kernel IntroductionLinux Kernel Introduction
Linux Kernel Introduction
Sage Sharp
 

What's hot (20)

Packaging for the Maemo Platform
Packaging for the Maemo PlatformPackaging for the Maemo Platform
Packaging for the Maemo Platform
 
Poky meets Debian: Understanding how to make an embedded Linux by using an ex...
Poky meets Debian: Understanding how to make an embedded Linux by using an ex...Poky meets Debian: Understanding how to make an embedded Linux by using an ex...
Poky meets Debian: Understanding how to make an embedded Linux by using an ex...
 
ABCs of docker
ABCs of dockerABCs of docker
ABCs of docker
 
Generating Linked Data descriptions of Debian packages in the Debian PTS
Generating Linked Data descriptions of Debian packages in the Debian PTSGenerating Linked Data descriptions of Debian packages in the Debian PTS
Generating Linked Data descriptions of Debian packages in the Debian PTS
 
Debian packaging
Debian packagingDebian packaging
Debian packaging
 
How%20to%20install%20PHP%20on%20Linux%20_%20laffers
How%20to%20install%20PHP%20on%20Linux%20_%20laffersHow%20to%20install%20PHP%20on%20Linux%20_%20laffers
How%20to%20install%20PHP%20on%20Linux%20_%20laffers
 
Distributions and package management in the containers era
Distributions and package management in the containers eraDistributions and package management in the containers era
Distributions and package management in the containers era
 
PuppetConf 2016: Puppet on Windows – Nicolas Corrarello, Puppet
PuppetConf 2016: Puppet on Windows – Nicolas Corrarello, PuppetPuppetConf 2016: Puppet on Windows – Nicolas Corrarello, Puppet
PuppetConf 2016: Puppet on Windows – Nicolas Corrarello, Puppet
 
How to build Debian packages
How to build Debian packages How to build Debian packages
How to build Debian packages
 
Version Control & Git
Version Control & GitVersion Control & Git
Version Control & Git
 
Php Dependency Management with Composer ZendCon 2016
Php Dependency Management with Composer ZendCon 2016Php Dependency Management with Composer ZendCon 2016
Php Dependency Management with Composer ZendCon 2016
 
hw1a
hw1ahw1a
hw1a
 
How to deploy PHP projects with docker
How to deploy PHP projects with dockerHow to deploy PHP projects with docker
How to deploy PHP projects with docker
 
Глеб Смирнов: Что нового в FreeBSD 10.0
Глеб Смирнов: Что нового в FreeBSD 10.0Глеб Смирнов: Что нового в FreeBSD 10.0
Глеб Смирнов: Что нового в FreeBSD 10.0
 
Corwin on Containers
Corwin on ContainersCorwin on Containers
Corwin on Containers
 
Virtual Bolt Workshop - 6 May
Virtual Bolt Workshop - 6 MayVirtual Bolt Workshop - 6 May
Virtual Bolt Workshop - 6 May
 
Linux server world
Linux server worldLinux server world
Linux server world
 
Modulesync- How vox pupuli manages 133 modules, Tim Meusel
Modulesync- How vox pupuli manages 133 modules, Tim MeuselModulesync- How vox pupuli manages 133 modules, Tim Meusel
Modulesync- How vox pupuli manages 133 modules, Tim Meusel
 
Writing Services with ZF2
Writing Services with ZF2Writing Services with ZF2
Writing Services with ZF2
 
Linux Kernel Introduction
Linux Kernel IntroductionLinux Kernel Introduction
Linux Kernel Introduction
 

Viewers also liked

Das leben der anderen: The lives of others.
Das leben der anderen: The lives of others. Das leben der anderen: The lives of others.
Das leben der anderen: The lives of others.
Eccentric Monika
 
Ericsson Mobility Report - The lives of others
Ericsson Mobility Report - The lives of othersEricsson Mobility Report - The lives of others
Ericsson Mobility Report - The lives of others
Ericsson
 
Most Wanted: Future PostgreSQL Features
Most Wanted: Future PostgreSQL FeaturesMost Wanted: Future PostgreSQL Features
Most Wanted: Future PostgreSQL Features
Peter Eisentraut
 
Porting Applications From Oracle To PostgreSQL
Porting Applications From Oracle To PostgreSQLPorting Applications From Oracle To PostgreSQL
Porting Applications From Oracle To PostgreSQL
Peter Eisentraut
 
Getting Started with PL/Proxy
Getting Started with PL/ProxyGetting Started with PL/Proxy
Getting Started with PL/Proxy
Peter Eisentraut
 
Programming with Python and PostgreSQL
Programming with Python and PostgreSQLProgramming with Python and PostgreSQL
Programming with Python and PostgreSQL
Peter Eisentraut
 

Viewers also liked (6)

Das leben der anderen: The lives of others.
Das leben der anderen: The lives of others. Das leben der anderen: The lives of others.
Das leben der anderen: The lives of others.
 
Ericsson Mobility Report - The lives of others
Ericsson Mobility Report - The lives of othersEricsson Mobility Report - The lives of others
Ericsson Mobility Report - The lives of others
 
Most Wanted: Future PostgreSQL Features
Most Wanted: Future PostgreSQL FeaturesMost Wanted: Future PostgreSQL Features
Most Wanted: Future PostgreSQL Features
 
Porting Applications From Oracle To PostgreSQL
Porting Applications From Oracle To PostgreSQLPorting Applications From Oracle To PostgreSQL
Porting Applications From Oracle To PostgreSQL
 
Getting Started with PL/Proxy
Getting Started with PL/ProxyGetting Started with PL/Proxy
Getting Started with PL/Proxy
 
Programming with Python and PostgreSQL
Programming with Python and PostgreSQLProgramming with Python and PostgreSQL
Programming with Python and PostgreSQL
 

Similar to The Lives of Others: Open-Source Development Practices Elsewhere

Some wonderful Linux softwares for daily use
Some wonderful Linux softwares for daily useSome wonderful Linux softwares for daily use
Some wonderful Linux softwares for daily use
arun.arwachin
 
An Introduction To Linux Development Environment
An Introduction To Linux Development EnvironmentAn Introduction To Linux Development Environment
An Introduction To Linux Development Environment
S. M. Hossein Hamidi
 
BUD17-104: Scripting Languages in IoT: Challenges and Approaches
BUD17-104: Scripting Languages in IoT: Challenges and ApproachesBUD17-104: Scripting Languages in IoT: Challenges and Approaches
BUD17-104: Scripting Languages in IoT: Challenges and Approaches
Linaro
 
Foss Presentation
Foss PresentationFoss Presentation
Foss Presentation
Ahmed Mekkawy
 
Containers for Science and High-Performance Computing
Containers for Science and High-Performance ComputingContainers for Science and High-Performance Computing
Containers for Science and High-Performance Computing
Dmitry Spodarets
 
You think you're not a target? A tale of three developers...
You think you're not a target? A tale of three developers...You think you're not a target? A tale of three developers...
You think you're not a target? A tale of three developers...
Speck&Tech
 
Open Source in the Enterprise
Open Source in the EnterpriseOpen Source in the Enterprise
Open Source in the Enterprise
Social Media Performance Group
 
Fedora Modularity
Fedora ModularityFedora Modularity
Fedora Modularity
Adam Šamalík
 
Alexander Kutsan: “C++ compilation boost”
Alexander Kutsan: “C++ compilation boost” Alexander Kutsan: “C++ compilation boost”
Alexander Kutsan: “C++ compilation boost”
LogeekNightUkraine
 
UniK - a unikernel compiler and runtime
UniK - a unikernel compiler and runtimeUniK - a unikernel compiler and runtime
UniK - a unikernel compiler and runtime
Lee Calcote
 
Collabograte
CollabograteCollabograte
Collabograte
Kartik Subbarao
 
Systemd: the modern Linux init system you will learn to love
Systemd: the modern Linux init system you will learn to loveSystemd: the modern Linux init system you will learn to love
Systemd: the modern Linux init system you will learn to love
Alison Chaiken
 
Managing Software Dependencies and the Supply Chain_ MIT EM.S20.pdf
Managing Software Dependencies and the Supply Chain_ MIT EM.S20.pdfManaging Software Dependencies and the Supply Chain_ MIT EM.S20.pdf
Managing Software Dependencies and the Supply Chain_ MIT EM.S20.pdf
Andrew Lamb
 
Dev environment for linux (Mainly KDE and python)
Dev environment for linux  (Mainly KDE and python)Dev environment for linux  (Mainly KDE and python)
Dev environment for linux (Mainly KDE and python)
Assem CHELLI
 
olibc: Another C Library optimized for Embedded Linux
olibc: Another C Library optimized for Embedded Linuxolibc: Another C Library optimized for Embedded Linux
olibc: Another C Library optimized for Embedded Linux
National Cheng Kung University
 
The adoption of FOSS workfows in commercial software development: the case of...
The adoption of FOSS workfows in commercial software development: the case of...The adoption of FOSS workfows in commercial software development: the case of...
The adoption of FOSS workfows in commercial software development: the case of...
dmgerman
 
Linux Distribution Collaboration …on a Mainframe!
Linux Distribution Collaboration …on a Mainframe!Linux Distribution Collaboration …on a Mainframe!
Linux Distribution Collaboration …on a Mainframe!
All Things Open
 
Iz Pack
Iz PackIz Pack
Iz Pack
Inria
 
Systemd for developers
Systemd for developersSystemd for developers
Systemd for developers
Alison Chaiken
 
The Source Control Landscape
The Source Control LandscapeThe Source Control Landscape
The Source Control Landscape
Lorna Mitchell
 

Similar to The Lives of Others: Open-Source Development Practices Elsewhere (20)

Some wonderful Linux softwares for daily use
Some wonderful Linux softwares for daily useSome wonderful Linux softwares for daily use
Some wonderful Linux softwares for daily use
 
An Introduction To Linux Development Environment
An Introduction To Linux Development EnvironmentAn Introduction To Linux Development Environment
An Introduction To Linux Development Environment
 
BUD17-104: Scripting Languages in IoT: Challenges and Approaches
BUD17-104: Scripting Languages in IoT: Challenges and ApproachesBUD17-104: Scripting Languages in IoT: Challenges and Approaches
BUD17-104: Scripting Languages in IoT: Challenges and Approaches
 
Foss Presentation
Foss PresentationFoss Presentation
Foss Presentation
 
Containers for Science and High-Performance Computing
Containers for Science and High-Performance ComputingContainers for Science and High-Performance Computing
Containers for Science and High-Performance Computing
 
You think you're not a target? A tale of three developers...
You think you're not a target? A tale of three developers...You think you're not a target? A tale of three developers...
You think you're not a target? A tale of three developers...
 
Open Source in the Enterprise
Open Source in the EnterpriseOpen Source in the Enterprise
Open Source in the Enterprise
 
Fedora Modularity
Fedora ModularityFedora Modularity
Fedora Modularity
 
Alexander Kutsan: “C++ compilation boost”
Alexander Kutsan: “C++ compilation boost” Alexander Kutsan: “C++ compilation boost”
Alexander Kutsan: “C++ compilation boost”
 
UniK - a unikernel compiler and runtime
UniK - a unikernel compiler and runtimeUniK - a unikernel compiler and runtime
UniK - a unikernel compiler and runtime
 
Collabograte
CollabograteCollabograte
Collabograte
 
Systemd: the modern Linux init system you will learn to love
Systemd: the modern Linux init system you will learn to loveSystemd: the modern Linux init system you will learn to love
Systemd: the modern Linux init system you will learn to love
 
Managing Software Dependencies and the Supply Chain_ MIT EM.S20.pdf
Managing Software Dependencies and the Supply Chain_ MIT EM.S20.pdfManaging Software Dependencies and the Supply Chain_ MIT EM.S20.pdf
Managing Software Dependencies and the Supply Chain_ MIT EM.S20.pdf
 
Dev environment for linux (Mainly KDE and python)
Dev environment for linux  (Mainly KDE and python)Dev environment for linux  (Mainly KDE and python)
Dev environment for linux (Mainly KDE and python)
 
olibc: Another C Library optimized for Embedded Linux
olibc: Another C Library optimized for Embedded Linuxolibc: Another C Library optimized for Embedded Linux
olibc: Another C Library optimized for Embedded Linux
 
The adoption of FOSS workfows in commercial software development: the case of...
The adoption of FOSS workfows in commercial software development: the case of...The adoption of FOSS workfows in commercial software development: the case of...
The adoption of FOSS workfows in commercial software development: the case of...
 
Linux Distribution Collaboration …on a Mainframe!
Linux Distribution Collaboration …on a Mainframe!Linux Distribution Collaboration …on a Mainframe!
Linux Distribution Collaboration …on a Mainframe!
 
Iz Pack
Iz PackIz Pack
Iz Pack
 
Systemd for developers
Systemd for developersSystemd for developers
Systemd for developers
 
The Source Control Landscape
The Source Control LandscapeThe Source Control Landscape
The Source Control Landscape
 

More from Peter Eisentraut

Porting Oracle Applications to PostgreSQL
Porting Oracle Applications to PostgreSQLPorting Oracle Applications to PostgreSQL
Porting Oracle Applications to PostgreSQL
Peter Eisentraut
 
PostgreSQL and XML
PostgreSQL and XMLPostgreSQL and XML
PostgreSQL and XML
Peter Eisentraut
 
XML Support: Specifications and Development
XML Support: Specifications and DevelopmentXML Support: Specifications and Development
XML Support: Specifications and Development
Peter Eisentraut
 
PostgreSQL: Die Freie Datenbankalternative
PostgreSQL: Die Freie DatenbankalternativePostgreSQL: Die Freie Datenbankalternative
PostgreSQL: Die Freie Datenbankalternative
Peter Eisentraut
 
The Road to the XML Type: Current and Future Developments
The Road to the XML Type: Current and Future DevelopmentsThe Road to the XML Type: Current and Future Developments
The Road to the XML Type: Current and Future Developments
Peter Eisentraut
 
Access ohne Access: Freie Datenbank-Frontends
Access ohne Access: Freie Datenbank-FrontendsAccess ohne Access: Freie Datenbank-Frontends
Access ohne Access: Freie Datenbank-Frontends
Peter Eisentraut
 
PostgreSQL and PL/Java
PostgreSQL and PL/JavaPostgreSQL and PL/Java
PostgreSQL and PL/Java
Peter Eisentraut
 
Replication Solutions for PostgreSQL
Replication Solutions for PostgreSQLReplication Solutions for PostgreSQL
Replication Solutions for PostgreSQL
Peter Eisentraut
 
PostgreSQL News
PostgreSQL NewsPostgreSQL News
PostgreSQL News
Peter Eisentraut
 
PostgreSQL News
PostgreSQL NewsPostgreSQL News
PostgreSQL News
Peter Eisentraut
 
Access ohne Access: Freie Datenbank-Frontends
Access ohne Access: Freie Datenbank-FrontendsAccess ohne Access: Freie Datenbank-Frontends
Access ohne Access: Freie Datenbank-Frontends
Peter Eisentraut
 
Docbook: Textverarbeitung mit XML
Docbook: Textverarbeitung mit XMLDocbook: Textverarbeitung mit XML
Docbook: Textverarbeitung mit XML
Peter Eisentraut
 
Collateral Damage: Consequences of Spam and Virus Filtering for the E-Mail Sy...
Collateral Damage: Consequences of Spam and Virus Filtering for the E-Mail Sy...Collateral Damage: Consequences of Spam and Virus Filtering for the E-Mail Sy...
Collateral Damage: Consequences of Spam and Virus Filtering for the E-Mail Sy...
Peter Eisentraut
 
Collateral Damage: Consequences of Spam and Virus Filtering for the E-Mail S...
Collateral Damage:
Consequences of Spam and Virus Filtering for the E-Mail S...Collateral Damage:
Consequences of Spam and Virus Filtering for the E-Mail S...
Collateral Damage: Consequences of Spam and Virus Filtering for the E-Mail S...
Peter Eisentraut
 
Spaß mit PostgreSQL
Spaß mit PostgreSQLSpaß mit PostgreSQL
Spaß mit PostgreSQL
Peter Eisentraut
 
SQL/MED and PostgreSQL
SQL/MED and PostgreSQLSQL/MED and PostgreSQL
SQL/MED and PostgreSQL
Peter Eisentraut
 
SQL/MED: Doping for PostgreSQL
SQL/MED: Doping for PostgreSQLSQL/MED: Doping for PostgreSQL
SQL/MED: Doping for PostgreSQL
Peter Eisentraut
 

More from Peter Eisentraut (17)

Porting Oracle Applications to PostgreSQL
Porting Oracle Applications to PostgreSQLPorting Oracle Applications to PostgreSQL
Porting Oracle Applications to PostgreSQL
 
PostgreSQL and XML
PostgreSQL and XMLPostgreSQL and XML
PostgreSQL and XML
 
XML Support: Specifications and Development
XML Support: Specifications and DevelopmentXML Support: Specifications and Development
XML Support: Specifications and Development
 
PostgreSQL: Die Freie Datenbankalternative
PostgreSQL: Die Freie DatenbankalternativePostgreSQL: Die Freie Datenbankalternative
PostgreSQL: Die Freie Datenbankalternative
 
The Road to the XML Type: Current and Future Developments
The Road to the XML Type: Current and Future DevelopmentsThe Road to the XML Type: Current and Future Developments
The Road to the XML Type: Current and Future Developments
 
Access ohne Access: Freie Datenbank-Frontends
Access ohne Access: Freie Datenbank-FrontendsAccess ohne Access: Freie Datenbank-Frontends
Access ohne Access: Freie Datenbank-Frontends
 
PostgreSQL and PL/Java
PostgreSQL and PL/JavaPostgreSQL and PL/Java
PostgreSQL and PL/Java
 
Replication Solutions for PostgreSQL
Replication Solutions for PostgreSQLReplication Solutions for PostgreSQL
Replication Solutions for PostgreSQL
 
PostgreSQL News
PostgreSQL NewsPostgreSQL News
PostgreSQL News
 
PostgreSQL News
PostgreSQL NewsPostgreSQL News
PostgreSQL News
 
Access ohne Access: Freie Datenbank-Frontends
Access ohne Access: Freie Datenbank-FrontendsAccess ohne Access: Freie Datenbank-Frontends
Access ohne Access: Freie Datenbank-Frontends
 
Docbook: Textverarbeitung mit XML
Docbook: Textverarbeitung mit XMLDocbook: Textverarbeitung mit XML
Docbook: Textverarbeitung mit XML
 
Collateral Damage: Consequences of Spam and Virus Filtering for the E-Mail Sy...
Collateral Damage: Consequences of Spam and Virus Filtering for the E-Mail Sy...Collateral Damage: Consequences of Spam and Virus Filtering for the E-Mail Sy...
Collateral Damage: Consequences of Spam and Virus Filtering for the E-Mail Sy...
 
Collateral Damage: Consequences of Spam and Virus Filtering for the E-Mail S...
Collateral Damage:
Consequences of Spam and Virus Filtering for the E-Mail S...Collateral Damage:
Consequences of Spam and Virus Filtering for the E-Mail S...
Collateral Damage: Consequences of Spam and Virus Filtering for the E-Mail S...
 
Spaß mit PostgreSQL
Spaß mit PostgreSQLSpaß mit PostgreSQL
Spaß mit PostgreSQL
 
SQL/MED and PostgreSQL
SQL/MED and PostgreSQLSQL/MED and PostgreSQL
SQL/MED and PostgreSQL
 
SQL/MED: Doping for PostgreSQL
SQL/MED: Doping for PostgreSQLSQL/MED: Doping for PostgreSQL
SQL/MED: Doping for PostgreSQL
 

Recently uploaded

Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
ssuserfac0301
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Malak Abu Hammad
 
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying AheadDigital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Wask
 
A Comprehensive Guide to DeFi Development Services in 2024
A Comprehensive Guide to DeFi Development Services in 2024A Comprehensive Guide to DeFi Development Services in 2024
A Comprehensive Guide to DeFi Development Services in 2024
Intelisync
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
akankshawande
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
innovationoecd
 
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
alexjohnson7307
 
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Tatiana Kojar
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
tolgahangng
 
Finale of the Year: Apply for Next One!
Finale of the Year: Apply for Next One!Finale of the Year: Apply for Next One!
Finale of the Year: Apply for Next One!
GDSC PJATK
 
Nunit vs XUnit vs MSTest Differences Between These Unit Testing Frameworks.pdf
Nunit vs XUnit vs MSTest Differences Between These Unit Testing Frameworks.pdfNunit vs XUnit vs MSTest Differences Between These Unit Testing Frameworks.pdf
Nunit vs XUnit vs MSTest Differences Between These Unit Testing Frameworks.pdf
flufftailshop
 
Azure API Management to expose backend services securely
Azure API Management to expose backend services securelyAzure API Management to expose backend services securely
Azure API Management to expose backend services securely
Dinusha Kumarasiri
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
Zilliz
 
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
Jeffrey Haguewood
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
Pixlogix Infotech
 
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
saastr
 
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Jeffrey Haguewood
 
Trusted Execution Environment for Decentralized Process Mining
Trusted Execution Environment for Decentralized Process MiningTrusted Execution Environment for Decentralized Process Mining
Trusted Execution Environment for Decentralized Process Mining
LucaBarbaro3
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
Zilliz
 

Recently uploaded (20)

Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
 
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying AheadDigital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying Ahead
 
A Comprehensive Guide to DeFi Development Services in 2024
A Comprehensive Guide to DeFi Development Services in 2024A Comprehensive Guide to DeFi Development Services in 2024
A Comprehensive Guide to DeFi Development Services in 2024
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
 
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
 
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
 
Finale of the Year: Apply for Next One!
Finale of the Year: Apply for Next One!Finale of the Year: Apply for Next One!
Finale of the Year: Apply for Next One!
 
Nunit vs XUnit vs MSTest Differences Between These Unit Testing Frameworks.pdf
Nunit vs XUnit vs MSTest Differences Between These Unit Testing Frameworks.pdfNunit vs XUnit vs MSTest Differences Between These Unit Testing Frameworks.pdf
Nunit vs XUnit vs MSTest Differences Between These Unit Testing Frameworks.pdf
 
Azure API Management to expose backend services securely
Azure API Management to expose backend services securelyAzure API Management to expose backend services securely
Azure API Management to expose backend services securely
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
 
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
 
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
 
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
 
Trusted Execution Environment for Decentralized Process Mining
Trusted Execution Environment for Decentralized Process MiningTrusted Execution Environment for Decentralized Process Mining
Trusted Execution Environment for Decentralized Process Mining
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
 

The Lives of Others: Open-Source Development Practices Elsewhere

  • 1. The Lives of Others Open-Source Development Practices Elsewhere Peter Eisentraut Senior Software Engineer Lab Development F-Secure Corporation PGCon 2009
  • 2. Ground Rules I don’t know everything. If you are involved in other projects, chime in. Discussion welcome
  • 3. Whom To Learn From? Look at the biggest open-source projects Metric: installation footprint, installation count Where to find those numbers? the Universal Debian Database doesn’t count OS distributions such as Debian, Fedora, FreeBSD, OpenSolaris Java also underrepresented
  • 4. Sidetrack: The Universal Debian Database Example: query for packages with largest install footprint and popularity SELECT rank() OVER (ORDER BY score DESC), source, sum(installed_size::numeric * insts) AS score FROM packages JOIN popcon_src USING (source) WHERE distribution = 'debian' AND release = 'lenny' AND component = 'main' AND architecture IN ('all', 'i386') GROUP BY source ORDER BY score DESC LIMIT 100;
  • 5. The Biggest Projects OpenOffice.org, Linux, GCC, GCJ, Qt, Mesa, KDE, Glibc, Firefox, MySQL, Boost, Perl, Samba, LDP, Vim, Gtk+, FFmpeg, OPAL, Evolution, OpenJDK, Gtk−−, wxWidgets, PyQt, Gimp, TeX Live, X.org, SCOWL, OpenSSL, Thunderbird, Xalan, Berkeley DB, ncurses, Foomatic, SELinux, Gutenprint, PHP, GNU binutils, Python, KOffice, Wine, Ruby, ICU, LAPACK, Webkit, PostgreSQL, glib, libsigc++, Inkscape, PWLib, GNOME, Apache, HPLIP, Xerces, Libxml, GNU Gettext, CUPS, SANE, Net-SNMP, Ghostscript, Mono, Eclipse, Pidgin
  • 6. PostgreSQL — A Role Model? Things to keep in mind: 1. Process details are hard to gather for outsiders. 2. Other projects are not without problems. 3. Many of them have worse problems than we do. 4. Others look at the PostgreSQL project for advice and inspiration. 5. It’s amazing that anything gets done. :-)
  • 7. Version Control In the lead: Git, Subversion Also-rans: CVS, Mercurial, Bazaar Commercial systems phased out Automatic conversion services in use
  • 8. Build Tools Autotools continue to rule! CMake might be challenger well-known usage: KDE, MySQL (for Windows only) uptake still slow (88 of 12000 packages in Debian) That’s it, for C programs.
  • 9. Documentation Tools DocBook emerged as the standard. XML vs. SGML Texinfo (only at GNU) man pages HTML some specialized solutions: Python: reStructuredText Perl: Perldoc Qt: qdoc
  • 10. Discussion Forums Mailing lists are clearly the standard. But don’t argue about Reply-To! Usenet is dead. :-) Web-forums serve support requests and newbies better. . . . and then there are bug-tracking systems.
  • 11. Bug Tracking Bugzilla is king (often heavily themed and customized). contenders: Roundup, Jira, *forge marginal: RT
  • 12. Coding Styles Coding style appears to be an issue specific to C/C++. Besides the GNU style, various random styles can be found. CVS $Keywords$ are pretty much gone. Patch styles (-c vs. -u) are an unsettled issue.
  • 13. Wikis About 1/3 of projects have active wikis. MediaWiki is most popular.
  • 14. The Foundries Project-specific *forge services are rare. More popular: Common repo and Bugzilla for everyone. This has implications for management of sub-/sister projects.
  • 15. Write Your Own Tools Some tools are side-products of other projects: ccache tmalloc distcc Bugzilla PatchTracker Contributions to build tools (autoconf, cmake, etc.) are welcome.
  • 16. Release Scheduling Trend is toward time-based releases: OpenBSD (6 months) GNOME (6 months) Ubuntu (6 months) Debian (18 months) OpenOffice.org (6 months) PostgreSQL (12 months) Linux kernel (3 months) (MySQL) ... Note: The upgrade issue is fairly unique to PostgreSQL.
  • 17. Minor Releases Stable + development branch is standard. Some maintain more than one stable, e.g., Samba. PostgreSQL’s 5+ back branches have got to be a record. MySQL might come close. Minor releases can also have a fixed schedule. (OpenOffice.org: 3 months)
  • 18. The Rewrite Trap Major reengineering efforts usually have schedule and/or quality problems. Recall: Samba 4 Perl 6 KDE 4
  • 19. Pre-Releases Beta, RC are standard. Even/odd model (Linux, Perl) is obsolescent. Alpha/milestone releases are rare.
  • 20. Release Manager Some projects appoint rotating release managers. In other projects, these roles fall into place by tradition.
  • 21. Downstream Packaging Various approaches: Tight integration, e.g.: PostgreSQL, KDE, Samba Laissez-faire, e.g.: Linux, GCC, MySQL Conflict-prone, e.g.: OpenOffice.org, Mozilla
  • 22. Security Handling Most sizeable projects have special security contacs/teams. CVE numbers are standard. Note: Non-database projects have a skewed/different view of “security”.
  • 23. Committers Surprisingly, many projects seem to do with very few committers. Some projects have very large amounts of committers. I think this is strongly related to the software architecture and project layout. Compare: KDE has everything in one repo; hundreds of committers. PostgreSQL has PgFoundry etc. Linux kernel uses a very different model. Managing external committers tends to be a problem for company-run projects.
  • 24. Project Steering Company-run projects have a clear direction (usually). In principle, the developers create their own destiny everywhere else. Some projects have elected boards etc., but these don’t have technical influence. Most projects are steered by the “old farts”.
  • 25. Forking Forking continues to happen. Contemporary cases: Go-OO.org, eglibc, OurDelta, Iceweasel Reasons: Faster/different feature advancement Licensing or trademark conflicts Company vs. community barrier Personal problems Many commercial forks of open-source DBMS: EnterpriseDB, Greenplum, Truviso, Kickfire, Infobright
  • 26. Licensing Distributors are incredibly picky. So are legal departments. Well-known licenses are important. Consistent and uniform licensing helps. Weird licensing can kill projects. Many projects have had their share of problems: KDE (Qt), Linux (SCO, firmware), XFree86, Mambo, Apache vs. OpenBSD, PostgreSQL (GPL), OpenSSL vs. Debian
  • 27. Copyright Notices Amateur legal opinion: Copyright notices are more or less meaningless. But they could help if you plan to go to court. Most company-sponsored code has standard copyright headers. FSF and Apache use copyright assignments and careful changelog tracking. Most other projects are pretty random. Initial author: Perl, Samba Various authors: KDE, Vim “Fake” organizations: OpenSSL, (PHP), PostgreSQL, wxWidgets nothing: Python Many (smaller) projects apply the GPL wrongly.
  • 28. Legal and Funds Management Four models: Run and owned by a single company: OpenOffice.org, MySQL, Qt, Berkeley DB, CUPS, (PHP) Run and controlled by a non-profit association: GCC, KDE, Mozilla, GNOME, Apache, (Fedora) Loosely organized but someone in the background: Linux, PostgreSQL, Debian, OpenBSD Unorganized: Vim
  • 29. Standards Organizations OSS participation is possible, e. g.: OpenOffice.org Linux/glibc KDE/GNOME/X.org/Freedesktop MySQL, PostgreSQL, . . . ?
  • 30. The Average Sizeable Open-Source Project 2010/2011 Written in C (or Java) GPL Source in Git Bugs in Bugzilla Built with Autoconf (or Maven) Released every 6 months
  • 31. Open Issues for PostgreSQL Version control system Web forum Bug tracking system CMake? DocBook XML Release cycle length Upgradability
  • 32. Rights and Attributions This presentation “The Lives of Others: Open-Source Development Practices Elsewhere” was authored by Peter Eisentraut and is licensed under the Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported license. The image on page 2 is “Comiskey Park (US Celluar Field)” by Flickr user Zol87, available under the Creative Commons Attribution-Noncommercial 2.0 Generic license. The image on page 3 is “Apples and oranges” by Flickr user Jeff Tabaco, available under the Creative Commons Attribution-Noncommercial-Share Alike 2.0 Generic license. The image on page 14 is “Valimon asema Helsinki” from Wikipedia and is in the public domain. The image on page 21 is “Watersfalls, Mesa Arts Center” by Flickr user cobalt123, available under the Creative Commons Attribution-Noncommercial-Share Alike 2.0 Generic license. The image on page 22 is “Suomenlinna” by Flickr user Anosmia, available under the Creative Commons Attribution 2.0 Generic license. The image on page 31 is “Committee meeting” by Flickr user Matt and Kim Rudge, available under the Creative Commons Attribution-Noncommercial 2.0 Generic license.