CINXE.COM
Roundcube Licensing
<!DOCTYPE html> <html lang="en" class="h-100" data-bs-theme="light"> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <title>Roundcube Licensing</title> <meta name="keywords" content="round,cube,roundcube,webmail,email,mail,client,software,solution,application,imap,php,open source,free,github,development"> <meta name="description" content="Free and open source webmail software for the masses, written in PHP"> <meta name="author" content="hello [at] roundcube dot net"> <meta name="copyright" content="Roundcube Webmail Dev Team"> <meta name="robots" content="index,follow"> <meta name="revisit-after" content="7 days"> <meta name="theme-color" content="#343a40"> <meta name="msapplication-navbutton-color" content="#343a40"> <link rel="canonical" href="https://roundcube.net/license/"> <link href="https://fonts.googleapis.com/css?family=Roboto&display=swap" rel="stylesheet"> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" integrity="sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH" crossorigin="anonymous"> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@6.6.0/css/all.min.css" integrity="sha384-h/hnnw1Bi4nbpD6kE7nYfCXzovi622sY5WBxww8ARKwpdLj5kUWjRuyiXaD1U2JT" crossorigin="anonymous"> <link rel="stylesheet" href="/styles/styles.min.css?v=2024021800"> <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon"> <link rel="alternate" type="application/rss+xml" title="Roundcube News Feed" href="/feeds/atom.xml"> <script> var host = 'roundcube.net'; if ((host == window.location.host) && (window.location.protocol != 'https:')) { window.location.protocol = 'https'; } </script> </head> <body class="d-flex flex-column h-100"> <nav class="navbar navbar-expand-md bg-navbar fixed-top flex-wrap flex-md-nowrap" data-bs-theme="dark"> <div class="container-xxl"> <a class="navbar-brand" href="/"><img src="/images/roundcube_logo_icon.svg" width="40" height="40" alt="Roundcube - open source webmail software"></a> <button class="navbar-toggler" type="button" data-bs-toggle="offcanvas" data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation"> <span class="navbar-toggler-icon"></span> </button> <div class="offcanvas offcanvas-end" id="navbarSupportedContent"> <div class="offcanvas-header p-4 pb-0"> <h5 class="offcanvas-title" id="offcanvasNavbarLabel">Roundcube</h5> <button type="button" class="btn-close" data-bs-dismiss="offcanvas" aria-label="Close"></button> </div> <div class="offcanvas-body p-4 pt-0 p-md-0"> <hr class="d-md-none text-white-50 my-3"> <ul class="navbar-nav me-auto flex-row flex-wrap"> <li class="nav-item col-6 col-md-auto"><a href="/about/" class="nav-link ">About</a></li> <li class="nav-item col-6 col-md-auto"><a href="/news/" class="nav-link ">News</a></li> <li class="nav-item col-6 col-md-auto"><a href="/screens/" class="nav-link ">Screenshots</a></li> <li class="nav-item col-6 col-md-auto"><a href="/download/" class="nav-link ">Download</a></li> <li class="nav-item col-6 col-md-auto"><a href="https://plugins.roundcube.net" class="nav-link" target="_blank">Plugins</a></li> <li class="nav-item col-6 col-md-auto"><a href="/support/" class="nav-link ">Support</a></li> <li class="nav-item col-6 col-md-auto"><a href="/contribute/" class="nav-link ">Contribute</a></li> </ul> <hr class="d-md-none text-white-50 my-3"> <ul class="navbar-nav flex-row flex-wrap ms-md-auto float-md-end"> <li class="nav-item col-6 col-md-auto"><a class="nav-link p-md-2" aria-label="GitHub" href="https://github.com/roundcube/roundcubemail" target="_blank" rel="noopener"><span class="fa-brands fa-github"></span><span class="d-md-none ps-2">GitHub</span></a></li> <li class="nav-item col-6 col-md-auto"><a class="nav-link p-md-2" aria-label="DockerHub" href="https://hub.docker.com/r/roundcube/roundcubemail/" target="_blank" rel="noopener"><span class="fa-brands fa-docker"></span><span class="d-md-none ps-2">Docker</span></a></li> <li class="nav-item col-6 col-md-auto"><a class="nav-link p-md-2" aria-label="X" href="https://x.com/roundcube" target="_blank" rel="noopener"><span class="fa-brands fa-x-twitter"></span><span class="d-md-none ps-2">X</span></a></li> </ul> </div> </div> </div> </nav> <main class="flex-shrink-0 container pb-5"> <h1>Roundcube Licensing</h1> <p>As of January 2012 Roundcube is licensed under the <a href="https://www.gnu.org/licenses/gpl.html" class="rc-icon external-link" target="_blank">GNU General Public License</a> (GPL) Version 3 or later (with exceptions for skins & plugins) while it was licensed under GPL (v2) before that change. Actually the license situation wasn't absolutely clear before because some parts of the Roundcube code didn't specify a version number of the GPL while others did. Those parts not specifying a version number could, according to the GPL license text, be considered as either version 2 or any later version.</p> <h2 id="clarification">Clarification and Preparation for the Future <a class="anchor" href="#clarification" aria-label="Link to this section: Clarification and Preparation for the Future"></a></h2> <p>Because of the incorporated numerous other components, the only options for licenses are in the GNU GPL family, namely GNU GPLv2, GNU GPLv3, GNU AGPLv3.</p> <p>In order to become license compatible with some of the newer technologies we would like to be able to use and to be well prepared for future development and integration we decided to officially change to GNU GPL "version 3 or any later version".</p> <p>Together with the change to GPLv3+ we also added the following exception to the Roundcube license agreement which explicitly <b>excludes skins & plugins</b> from the terms of the GPL:</p> <div class="bg-quote p-3 mb-3 font-monospace"> <p>This file forms part of the Roundcube Webmail Software for which the following exception is added: Plug-ins and Skins which merely make function calls to the Roundcube Webmail Software, and for that purpose include it by reference shall not be considered modifications of the software.</p> <p class="mb-0">If you wish to use this file in another project or create a modified version that will not be part of the Roundcube Webmail Software, you may remove the exception above and use this source code under the original version of the license.</p> </div> <p>This shall give a maximum flexibility to skin designers and plugin developers to choose any other license for their work or even to create commercial or proprietary components without being forced to publish them according to the strong copy-left requirements of the GPL.</p> <p>The proposal and the following discussion about this license clarification can be read in our <a href="https://lists.roundcube.net/hyperkitty/list/dev@lists.roundcube.net/thread/EZTGUKDDQE2MG5L7WKRPWAYZYUOBGBCR/" class="rc-icon external-link" target="_blank">mailing list archive</a>.</p> <h2 id="request">Request for Agreement <a class="anchor" href="#request" aria-label="Link to this section: Request for Agreement"></a></h2> <p>Because the copyright in Roundcube is not consolidated, making these updates requires the agreement of all contributors to Roundcube.</p> <p>So if you have in the past contributed to Roundcube, we would very much like to ask for your explicit agreement with this path forward. We believe this primarily represents a clarification and an adjustment to what we practiced over the past years.</p> <p>But of course we cannot force anyone to agree, so for those who do not agree to this license update we still offer the choice to have their code removed from Roundcube.</p> <p>Please <a href="/contact">contact us</a> in case you have serious objections against the GPLv3+ with exceptions for skins & plugins and you want your contributed code to be removed.</p> <h2 id="background">License Background Information <a class="anchor" href="#background" aria-label="Link to this section: License Background Information"></a></h2> <ul> <li><a href="https://www.gnu.org/licenses/gpl-3.0.html" class="rc-icon external-link" target="_blank">GNU General Public License v3</a></li> <li><a href="https://www.gnu.org/licenses/quick-guide-gplv3.html" class="rc-icon external-link" target="_blank">A Quick Guide to GPLv3</a></li> <li><a href="https://www.gnu.org/licenses/gpl-faq.html" class="rc-icon external-link" target="_blank">FAQs about the GNU Licenses</a></li> </ul> </main> <footer class="text-body-secondary w-100 mt-auto pt-3 small bg-body-tertiary"> <div class="container"> <div class="row"> <div class="col-12 col-sm-6"> <ul class="m-0 p-0"> <li><a href="/support">Support</a></li> <li><a href="/contact">Contact</a></li> <li><a href="https://github.com/roundcube/roundcubemail/wiki/Howto-Report-Issues" class="rc-icon external-link" target="_blank" rel="noopener">Found a bug?</a></li> <li><a href="/license">License</a></li> <li class="mt-3"> <div class="color-modes dropend"> <a class="dropdown-toggle" href="#" data-bs-toggle="dropdown" aria-expanded="false"> <span class="fa-solid fa-palette me-1"></span> Switch theme </a> <ul class="dropdown-menu py-1"> <li><a class="dropdown-item px-2 pe-3 py-1 rc-icon light-mode" href="#" onclick="switch_color_mode('light'); return false;">Light theme</a></li> <li><a class="dropdown-item px-2 pe-3 py-1 rc-icon dark-mode" href="#" onclick="switch_color_mode('dark'); return false;">Dark theme</a></li> <li><a class="dropdown-item px-2 pe-3 py-1 rc-icon auto-mode current-theme" href="#" onclick="switch_color_mode('auto'); return false;">Auto detect</a></li> </ul> </div> </li> </ul> </div> <div class="col-12 col-sm-6 mt-4 mt-sm-0 text-sm-end"> <ul class="m-0 p-0"> <li><a aria-label="GitHub" href="https://github.com/roundcube/roundcubemail" target="_blank" rel="noopener"><img src="https://img.shields.io/github/stars/roundcube/roundcubemail?color=%23066da5&label=stars&logo=github&logoColor=%23fff&style=flat-square" alt="GitHub Stars"></a></li> <li><a aria-label="GitHub Contributors" href="https://github.com/roundcube/roundcubemail/graphs/contributors" target="_blank" rel="noopener"><img src="https://img.shields.io/github/contributors/roundcube/roundcubemail?color=%23066da5&label=contributors&logo=github&logoColor=%23fff&style=flat-square" alt="GitHub Contributors"></a></li> <li><a aria-label="DockerHub" href="https://hub.docker.com/r/roundcube/roundcubemail/" target="_blank" rel="noopener"><img src="https://img.shields.io/docker/pulls/roundcube/roundcubemail?color=%23066da5&label=pulls&logo=docker&logoColor=%23fff&style=flat-square" alt="Docker Downloads"></a></li> </ul> </div> </div> <div class="row mt-5"> <div class="col"> <p>Hosted by <a href="https://github.com"><span class="fa-brands fa-github"></span> GitHub</a></p> <p>© Roundcube.net, all rights reserved.</p> </div> </div> </div> </footer> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-YvpcrYf0tY3lHB60NNkmXc5s9fDVZLESaAA55NDzOxhy9GkcIdslK1eN7N6jIeHz" crossorigin="anonymous"></script> <script> var color_mode = 'auto'; if (typeof(Storage) !== "undefined" && window.localStorage.getItem("color-mode") !== null) { color_mode = window.localStorage.getItem("color-mode"); } switch_color_mode(color_mode, true); function switch_color_mode(mode, onload) { var color_mode = mode; if (mode == 'auto') { color_mode = window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light'; } document.getElementsByTagName('html')[0].setAttribute('data-bs-theme', color_mode) document.querySelector('div.color-modes > ul.dropdown-menu a.current-theme').classList.remove('current-theme'); document.querySelector('div.color-modes > ul.dropdown-menu a.' + mode + '-mode').classList.add('current-theme'); if (!onload && typeof(Storage) !== "undefined") { if (mode == 'auto') { window.localStorage.removeItem('color-mode'); } else { window.localStorage.setItem('color-mode', mode); } } var event = new Event('switch-color-mode'); document.dispatchEvent(event); } var copytext = "Copy to clipboard"; var copycomplete = "Copied"; var copyerror = "Copy failed"; document.querySelectorAll('a.copy-popover-link').forEach((sumbtn) => { var popover = new bootstrap.Popover(sumbtn, { content: sumbtn.closest('td').querySelector('.copy-popover-target').innerHTML, html: true, customClass: 'copy-popover' }); sumbtn.addEventListener('shown.bs.popover', () => { document.querySelectorAll('div.popover a.copy-link').forEach((copybtn) => { var tooltipInstance = new bootstrap.Tooltip(copybtn, {'title': copytext}); copybtn.addEventListener("click", function(e) { clipboard(this, tooltipInstance, e); }, false); }); }); }); if (document.querySelectorAll('a.copy-popover-link').length > 0) { document.addEventListener("click", function(e) { document.querySelectorAll('a.copy-popover-link').forEach((sumbtn) => { var popover = bootstrap.Popover.getInstance(sumbtn); if (popover.tip && event.target.closest('.popover.show') == null && popover.tip.classList.contains('show')) { popover.hide(); } }); }, false); } document.querySelectorAll('a.copy-link').forEach((copybtn) => { var tooltipInstance = new bootstrap.Tooltip(copybtn, {'title': copytext}); copybtn.addEventListener("click", function(e) { clipboard(this, tooltipInstance, e); }, false); }); async function clipboard(copybtn, tooltipInstance, e) { e.preventDefault(); var payload = copybtn.closest('p,td,div').querySelector('.copy-target').textContent.trimEnd(); try { await navigator.clipboard.writeText(payload); copybuttonupdate(copybtn, tooltipInstance, 'complete', copycomplete); } catch (err) { copybuttonupdate(copybtn, tooltipInstance, 'error', copyerror); } } function copybuttonupdate(copybtn, tooltipInstance, css, text) { tooltipInstance.setContent({'.tooltip-inner': text}); copybtn.classList.add(css); window.setTimeout(function() { tooltipInstance.setContent({'.tooltip-inner': copytext}); copybtn.classList.remove(css); }, 2500); } </script> </body> </html>