Learn how to a build a cloud-first strategyRegister Now


Source Code Management System for GPL code

Posted on 2011-10-10
Medium Priority
Last Modified: 2013-11-13

I am looking for a system, preferably open source, that will help us manage code that is GPL and code that isn't. We are designing a fairly exhaustive hardware product that will rely heavily on open source code, but will also contain proprietary non-open source code.

We want a system to help keep track of the two, preventing us, for example, from putting proprietary code in GPL files. We want to maintain a clear delineation between the two. This will also help so when we receive a GPL request, we can easily furnish everything that is needed in a timely fashion without pulling our our hair trying to navigate hundreds of thousands of files to determine what we should and shouldn't provide.

Is there any sort of a code versioning tool that can maintain a separation between GPL and non-GPL code?

Joseph Irvine
Question by:jkeagle13
LVL 24

Expert Comment

ID: 36946776
git e.g: http://git-scm.com/ ?

Any SCM will help you. I'd try them and see what I'd like most.
On Windows I've used successvully TortoiseSVN, TortoiseHG etc. I'd not so good experiences with the RCS from Microsoft....


Expert Comment

ID: 36946814
Versioning tools don't look at the license details of individual files.
So, you will have to write a script, which can read the license information, identify the GPL license and take necessary action.
LVL 40

Expert Comment

ID: 36947072
Why not just have more than one repo? One containing the open source and the other your code?
Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!


Expert Comment

ID: 36947212
Are you using GPL code or another licence similar to GPL?  If you're using the GPL licence, then you have to be careful.  If you are building any GPL code into your final executable, then all your proprietary code becomes GPL as well.  The only way you could use GPL code and maintain some proprietary code would be if the GPL code was a seperate executable and not linked in any way to your proprietary code.

Extract from the GNU GPL FAQ explaining how you can use GPLed code in a proprietary system:


However, in many cases you can distribute the GPL-covered software alongside your proprietary system. To do this validly, you must make sure that the free and non-free programs communicate at arms length, that they are not combined in a way that would make them effectively a single program.

Accepted Solution

eager earned 2000 total points
ID: 36950265
Any SCM can be used to manage both proprietary and open source files. With git, which I recommend, it is very easy to create multiple repositories, as @evilrix says.  As @ssnkumar says, an SCM, out of the box, will not prevent you from putting code in the wrong place.

Some SCM's will allow you to write scripts which can scan the source before it is checked in.  You can add one of these scripts to the repo containing your proprietary source and have the source look for copyright notices or other indications that it contains open source.  This will catch adding open source code which contains copyright or license notices, but will not catch cut-and-paste of open source code into proprietary software, which seems to happen pretty frequently.  

To catch this, you can run an audit program (such as the one that Black Duck Software sells http://www.blackducksoftware.com/) to insure that your proprietary code does not contain any open source code.  
LVL 27

Expert Comment

ID: 36952778
Plastic SCM is very flexible

Featured Post

Concerto's Cloud Advisory Services

Want to avoid the missteps to gaining all the benefits of the cloud? Learn more about the different assessment options from our Cloud Advisory team.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

If you are a mobile app developer and especially develop hybrid mobile apps then these 4 mistakes you must avoid for hybrid app development to be the more genuine app developer.
When you discover the power of the R programming language, you are going to wonder how you ever lived without it! Learn why the language merits a place in your programming arsenal.
Video by: Grant
The goal of this video is to provide viewers with basic examples to understand and use while-loops in the C programming language.
Simple Linear Regression

810 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question