Modernization Hub

GPL - General Public License

Enhanced Definition

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, and Curl, 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/OS USS and 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 GCC for 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.

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.

Best Practices:
  • 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 Tools provided 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.

Related Vendors

ASE

3 products

Broadcom

235 products

IBM

646 products

Related Categories

CASE/Code Generation

19 products

Operating System

154 products