This commit is contained in:
Alex Spataru 2025-01-04 23:42:38 -05:00
commit cf2af5ad66
4 changed files with 94 additions and 55 deletions

View File

@ -1,52 +1,95 @@
Serial Studio License Serial Studio License
===================== =====================
This software is dual-licensed under the GNU General Public License v3 (GPLv3) This software is dual-licensed under the GNU General Public License v3 (GPLv3)
for open-source users and a Commercial License for business and professional for open-source users and a Commercial License for business and professional
users. See below for details. users. See below for details.
GNU General Public License v3 (GPLv3) GNU General Public License v3 (GPLv3)
===================================== =====================================
This program is free software: you can redistribute it and/or modify it under This program is free software: you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software the terms of the GNU General Public License as published by the Free Software
Foundation, either version 3 of the License, or (at your option) any later Foundation, either version 3 of the License, or (at your option) any later
version. version.
This program is distributed in the hope that it will be useful, but This program is distributed in the hope that it will be useful, but WITHOUT ANY
WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for PARTICULAR PURPOSE. See the GNU General Public License for more details.
more details.
You should have received a copy of the GNU General Public License along with You should have received a copy of the GNU General Public License along with
this program. If not, see <https://www.gnu.org/licenses/>. this program. If not, see <https://www.gnu.org/licenses/>.
### GPLv3 Limitations ### GPLv3 Features
- Users of the GPLv3 license may only use this software for personal or Under the GPLv3 license, you may:
open-source projects in compliance with the GPLv3 terms. - Use the software for personal, educational, or open-source projects, in
- Under the GPLv3 license, the software must be restarted every 30 minutes compliance with the GPLv3 terms.
to continue working. - Access the core functionality of Serial Studio without feature restrictions.
- The number of dashboard widgets may be limited for GPLv3 users.
- MQTT streaming is not available for GPLv3 users.
Commercial License #### Additional Notice for GPLv3 Users:
================== - **Session Continuity Beyond 30 Minutes:** Once the dashboard is displayed, the
For business or professional use, a Commercial License is required. software will prompt the user every 30 minutes to restart the application to
Commercial users benefit from: continue using it. This is a user notification to encourage consideration of
- Unlimited usage of the software without time restrictions. the Commercial License and does not impose technical restrictions.
- Access to MQTT streaming and unrestricted dashboard widgets. Users are free to modify the source code to remove this prompt in compliance
- Priority support, including email, GitHub, and video call assistance. with the GPLv3.
- **MQTT Functionality:** MQTT integration is available exclusively under the
Commercial License and is not included in the GPLv3 version.
### Commercial License Limitations **Value-Added Services**: These optional features are enhancements that go
beyond the core functionality of Serial Studio. They are offered as part of the
Commercial License to provide additional integrations, better user experience,
or specialized support.
Commercial License
==================
For business or professional use, purchasing a Commercial License is required.
#### Benefits for Commercial Users:
- Full access to **MQTT functionality**.
- Unlimited session continuity (no 30-minute restart reminders).
- Priority support via email, GitHub, and video calls.
#### Scope of Use:
Commercial users may use the software in business, enterprise, or proprietary
applications while complying with the restrictions outlined below.
#### Commercial License Limitations:
- Commercial users may not repackage, modify, rebrand, or redistribute the - Commercial users may not repackage, modify, rebrand, or redistribute the
software under a different name or identity without explicit, written software under a different name or identity without explicit, written
permission from the original author. permission from the original author.
- Commercial users may use the software in their business or enterprise - Modifications and redistributions under the Commercial License must respect
applications, provided they comply with the above restrictions. the original author's intellectual property and trademarks.
For details on the Commercial License or to purchase a license, visit the Additional Notes
official website (https://serial-studio.com). ================
Contact - **Trademark Notice:** The name "Serial Studio" and its logo are trademarks of
======= the author. Use of these trademarks in modified versions or derivative works
For questions, licensing inquiries, or support, contact: requires explicit permission.
alex@serial-studio.com. - **Technical Support:** Support is exclusively available for Commercial License
users. Open-source users are encouraged to consult the documentation,
and the community forums (issues & discussions) available in the GitHub
repository.
- **Modifications under GPLv3:** Users modifying the software under the GPLv3
license are responsible for ensuring compatibility with future updates or
feature stability.
Examples of Permitted and Prohibited Use
========================================
**Permitted under GPLv3:**
- Running Serial Studio for an university research project.
- Including it in an open-source IoT platform.
- Using it for personal and non-commercial projects.
**Prohibited without a Commercial License:**
- Using Serial Studio as part of a commercial product offered to customers.
- Deploying Serial Studio in an enterprise environment without purchasing the
Commercial License.
### For More Information
To learn more about the Commercial License or purchase a license, visit the
official website: <https://serial-studio.com>.
For questions, licensing inquiries, or support, email: <alex@serial-studio.com>

View File

@ -1,6 +1,6 @@
# Serial Studio # Serial Studio
<a href="#"> <a href="https://github.com/Serial-Studio/Serial-Studio/tree/master/doc/assets">
<img width="192px" height="192px" src="doc/icon.svg" align="right" /> <img width="192px" height="192px" src="doc/icon.svg" align="right" />
</a> </a>

View File

@ -207,27 +207,23 @@ static void setupAppImageIcon(const QString &appExecutableName,
const QString pixmapFile = pixmapPath + appExecutableName + ".png"; const QString pixmapFile = pixmapPath + appExecutableName + ".png";
// clang-format on // clang-format on
// Check if the icon file already exists to avoid redundant copying // Ensure the directory exists; create it if it doesn't
if (!QFileInfo::exists(pixmapFile)) QDir dir;
if (!dir.exists(pixmapPath) && !dir.mkpath(pixmapPath))
return;
// Copy the icon from resources to the destination
QFile resourceFile(iconResourcePath);
if (resourceFile.open(QIODevice::ReadOnly))
{ {
// Ensure the directory exists; create it if it doesn't QFile localFile(pixmapFile);
QDir dir; if (localFile.open(QIODevice::WriteOnly))
if (!dir.exists(pixmapPath) && !dir.mkpath(pixmapPath))
return;
// Copy the icon from resources to the destination
QFile resourceFile(iconResourcePath);
if (resourceFile.open(QIODevice::ReadOnly))
{ {
QFile localFile(pixmapFile); localFile.write(resourceFile.readAll());
if (localFile.open(QIODevice::WriteOnly)) localFile.close();
{
localFile.write(resourceFile.readAll());
localFile.close();
}
resourceFile.close();
} }
resourceFile.close();
} }
} }
#endif #endif

View File

@ -4,7 +4,7 @@ This folder contains design assets, including the featured `icon_scaled.svg` fil
## Icon Preview ## Icon Preview
![icon_scaled.svg preview](icon_scaled.svg) <img width="256px" height="256px" src="icon_scaled.svg"/>
## Credits & License ## Credits & License