provides software and services that enable enterprises
Live Chat 1-888-673-6564
The Enterprise Open Source Blog
  • Home
  • Search
  • Contact Us
  • Products and Support
  • Services
  • Enterprise OSS Blog
  • Wazi Technical Blog
  • Resources Library
  • Cloud Services
  • Partners
  • Customers
  • Community
  • Company
  • Careers
  • News and Events

Subscribe by Email

Your email:

Most Popular Posts

  • Enterprise Apache Tomcat 7 Clustering - Designing an Efficient, Reliable and Productive Application Server Cluster
  • Open Source Virtual Whiteboards and Dimdim Review
  • An Enterprise Apache Tomcat Clustering Guide
  • Supporting CentOS In The Cloud With Windows Azure
  • VLC License Change: A lesson in perseverance
  • An In-Depth Look at Tomcat’s Clustering Mechanisms
  • Apache HTTP Server: New Features for Version 2.4
  • Why Closed Source is Better Than Open Source
  • Access Serial Ports through Ruby
  • JBoss AS7 Clustering Using mod_cluster and http 2.4 (Part 1)

Connect With Us!

Current Articles | RSS Feed RSS Feed

Open Source Management: Words of Advice from One Open Source Auditor to Another

Posted by Nathan Knowles on Fri, Oct 19, 2012
  
Email This Email Article  
Tweet  
  

As an open source auditor at Openlogic I have had my fair share of challenges when conducting a source code audit. Tackling your first few audits can seem cumbersome and intimidating; from identifying different open source package versions to being given incorrect information from developers. To help with these issues consider the following.

Three things you should always consider:

  1. Confirm package and license: Sometimes different package versions have different licenses, and just knowing that a certain package is there isn't enough.  The way I tackle this issue is by visiting the project website, and if necessary, I download and compare my source code to that of the open source package. This tactic is also helpful when you come across potential bundled dependencies that you are calling into question.

  2. Review all matches, even if they appear to be false positives:  This step is crucial.  This is especially so when you are working with an unfamiliar code base because you have no way of knowing what open source software was intentionally or unintentionally added by developers. When scanning source code from time to time the scanner will find false positives; a false positive does not necessarily mean the scanner was wrong. Because open source projects use code from other projects fairly often, this can lead to a scanner finding several matches where there should only be one correct match.

    1. For example, you are working on an audit and you see a file that appears to belong to two different projects, one licensed under the MIT License, the other under the GPL License.  You do not know which license it should be, and you cannot contact the developer for clarification. Now what? You might do the following:

      1. Manually review the source code to check for any copyright notices, author names, or other hints that will shed light on the origin.

      2. If that doesn't help review the files it matched to on the open source side to help you find the answer.  Check for other hints such as matching comments or URLs that lead to more information and ideally the correct answer.

  3. Document your findings: This is especially important if your findings require manual investigation.

    1. In time, one of your resolutions will be called into question and you will NOT remember why you made that decision. You probably won't even remember what research you did, even though it was quite memorable seeming at the time! If there was one thing I could tell new auditors this would be it. Being organized is key; organization will speed the process up, increase efficiency, and will lower your chance of mistakes, which in return lowers the chance of compliance failure. I find that keeping all my information (notes, resolutions, a list of identified packages and licenses) centrally located in OLEX has helped in reducing my errors. In the future you may find yourself conducting an audit on projects that contain 2,000 to 500,000 files. Do you really expect to remember how you identified every file? Having all the correct notes will either remind you why you made that decision, or provide you with the road map to find that answer again.

Three things you should never do:

    1. Assume the information you have been given is correct. When open source is being downloaded from all over the Internet you never know what you're getting is from a credible source. It has happened more than once when I was looking at a projects website and it listed a different version of a license than what was in the projects code.

    2. Skip files that have no matches.  At a minimum "eyeball" file names and path names for common open source projects before assuming the code is in-house. While auditing if I come across a directory with no matches and it seems to be in-house code I might still spot check a few files to see if there is anything that might make me suspicious of open source. Open source is produced at such a fast rate that nobody can keep up with tracking it yet we still have to make sure we are complying.  

    3. Assume that because a directory is mostly one package that all files in the directory belong to that package. As stated earlier, many different open source projects use code from already existing open source projects, sometimes under different or conflicting licenses.  Sometimes it might be a few lines of code in a file that are different or even a comment in the header. OLEX is one option to help identify when these issues occur. 

This is what I have done when conducting an audit.  What is your method?

Nathan Knowles | Open Source Auditor | OpenLogic, Inc.
View Nathan Knowles's profile on LinkedIn Follow @NKnowlesGIS

Follow @openlogic
Follow @OSCloudServices

This work is licensed under a Creative Commons Attribution 3.0 Unported License
Creative Commons License.
Tags: Legal & Compliance, Open Source Management, Scanning & Governance, Auditing

Comments

Currently, there are no comments. Be the first to post one!
Post Comment
Name
 *
Email
 *
Website (optional)
Comment
 *

Allowed tags: <a> link, <b> bold, <i> italics

Loading...
Error sending email
Email sent successfully

Email article
Email To : 
Your name : 
Message : (maximum 200 characters)

Enterprise OSS Blog Policy

If you read a post on The Enterprise OSS Blog, please leave a comment. Let us know what you think, even if it's just a few words. Comments do not require approval, but they are moderated.OpenLogic reserves the right to remove any comments it deems inappropriate.

 

click-to-chat-with-a-live-open-source-expert

get-a-quote-on-support

download-the-support-evaluation-kit

Browse by Tag

  • 2013 (2)
  • Agile (1)
  • Apache (2)
  • apache tomcat (1)
  • AS 7 (1)
  • as7 (1)
  • Auditing (5)
  • Azure (2)
  • Budget (1)
  • BusyBox (1)
  • CentOS (3)
  • Closed Source Software (1)
  • cloud (4)
  • clustering (1)
  • CMS (1)
  • Code Scanning (1)
  • commercial distribution (1)
  • Community (4)
  • compliance (40)
  • C-Suite (1)
  • Database (1)
  • developers (2)
  • DevOps (15)
  • diploma (1)
  • Drupal (1)
  • enterprise software (2)
  • foss (5)
  • Gitbhub (1)
  • GNU-Bash (1)
  • Governance (36)
  • guide (1)
  • Hadoop (2)
  • HBase (2)
  • http 2.4 (1)
  • httpd 2.4 (1)
  • Java (1)
  • javascript (1)
  • jboss (3)
  • JBoss Cluster (1)
  • Joomla (1)
  • Legal (21)
  • Legal & Compliance (62)
  • Legal and Compliance (2)
  • license compliance (1)
  • Licenses (12)
  • Linux (4)
  • lisp code (1)
  • martin fowler (1)
  • Mobile (3)
  • mod_cluster (2)
  • MySQL (1)
  • Neal Ford (1)
  • open source (19)
  • open source compliance (1)
  • open source components (1)
  • open source events (1)
  • Open Source Governance (2)
  • open source legal issues (1)
  • Open Source Licensing (3)
  • Open Source Management (38)
  • Open Source Policy (3)
  • open source software (15)
  • Open Source Software Adoption (4)
  • open source software policy (1)
  • Open Source Training (1)
  • Open Source Trends (337)
  • Open Source vs. Commercial Software (3)
  • OSS (5)
  • OSS Packages (2)
  • PaaS (1)
  • paredit (1)
  • picketlink (1)
  • Policy (4)
  • PostgreSQL (1)
  • Presentations (1)
  • Programming (2)
  • red hat (1)
  • RHEL (1)
  • Ruby (1)
  • Scanning (27)
  • Scanning & Governance (12)
  • Scanning & Provisioning (30)
  • Security (13)
  • Shibboleth (1)
  • software compliance (1)
  • Software Development (2)
  • Software Development Lifecycle (7)
  • software infrastructure (1)
  • Solr (1)
  • struts (1)
  • Support (48)
  • Support & Services (2)
  • SUSE (1)
  • Technical Governance (1)
  • The Cloud (35)
  • The C-Suite (2)
  • tomcat (4)
  • Training (10)
  • Ubuntu (1)
  • Uncategorized (69)
  • Windows (1)
  • Windows Azure (1)
  • Wordpress (1)
  • Zookeeper (1)
Home | Search | Contact Us | Products and Support | Services | Enterprise OSS Blog | Wazi Technical Blog | Resources Library | Cloud Services | Partners | Customers | Community | Company | Careers | News and Events
Products
OpenLogic Exchange (OLEX)
License Compliance Module
OSS Discovery
OSS Deep Discovery
OpenUpdate
Services
Open Source Support
CentOS Support
Scanning & Compliance
Open Source Training
Professional Services
Solutions
Support & Indemnification
Open Source Governance
Open Source Scanning
Open Source Provisioning
Consulting & Training
Contact Us
1-888-673-6564


© 2013 OpenLogic, Inc. All rights reserved.
Site Map  |  Privacy Policy