GPL - General Public License
The General Public License (GPL) is a widely used free software license that guarantees end users the freedom to run, study, share, and modify the software. In the mainframe context, it applies to open-source software (OSS) that has been ported to or developed for the z/OS platform, particularly within the `UNIX System Services (USS)` environment. It is a "copyleft" license, meaning that any derivative works must also be released under the GPL.
Key Characteristics
-
- Copyleft Principle: Requires that any software derived from or linked with GPL-licensed code must also be licensed under the GPL, ensuring the continued freedom of the software.
- Four Freedoms: Grants users the freedom to run the program for any purpose, study how it works, redistribute copies, and distribute copies of modified versions.
- Source Code Availability: Mandates that the complete corresponding source code must be made available to anyone who receives the compiled software.
- No Warranty: GPL-licensed software is typically provided "as is" without any warranty, either express or implied, regarding its functionality or fitness for a particular purpose.
- Pervasive on USS: Many open-source tools and utilities available for z/OS, such as
GCC,Perl,Python,OpenSSH,Git, andCurl, are licensed under various versions of the GPL.
Use Cases
-
- Porting Open-Source Utilities: Many common Linux/UNIX utilities and programming languages (e.g.,
bash,grep,awk,Python,Perl) are ported to z/OSUSSand are often distributed under the GPL. - Custom Application Development: Developers might use GPL-licensed libraries or frameworks within their custom applications running on z/OS, necessitating careful consideration of the copyleft implications for their own code.
- Providing Development Tools: IBM and the z/OS community provide various GPL-licensed development tools and compilers (like
GCCfor z/OS) that enable modern development practices on the mainframe. - Integrating with Distributed Systems: Mainframe applications might interact with or leverage components that are GPL-licensed, requiring an understanding of the license terms for seamless and compliant integration.
- Porting Open-Source Utilities: Many common Linux/UNIX utilities and programming languages (e.g.,
Related Concepts
The GPL is fundamental to the Open Source Software (OSS) ecosystem on z/OS. It directly relates to UNIX System Services (USS), which provides the POSIX-compliant environment where much of this OSS runs. It contrasts with traditional proprietary software licenses used by IBM for core z/OS components or commercial ISV products. The availability of GPL-licensed tools has significantly enhanced the capabilities and modernization efforts for z/OS development, allowing mainframe shops to leverage a broader range of familiar open-source technologies.
- Understand License Implications: Before integrating or modifying GPL-licensed software, thoroughly understand the copyleft requirements, especially if you intend to distribute your derivative work.
- Maintain Source Code Records: For any GPL-licensed components used or modified, ensure you retain access to the original source code and any modifications you've made, ready for distribution if required.
- Leverage IBM's Open Tools: Utilize the pre-packaged and supported
z/OS Open Toolsprovided by IBM, which often include GPL-licensed software, to ensure stability and compatibility. - Consult Legal Counsel: For complex scenarios involving the distribution of applications that link to or incorporate GPL-licensed libraries, consult legal experts to ensure full license compliance.
- Isolate GPL Components: If strict proprietary licensing is required for parts of your application, design your architecture to clearly separate GPL-licensed components from proprietary ones, using well-defined interfaces.