mirror of
https://github.com/cryptomator/cryptomator.git
synced 2026-09-01 05:37:13 +00:00
Added about dialog and use license-maven-plugin to generate list of third party licenses
This commit is contained in:
@@ -0,0 +1 @@
|
||||
com.github.serceman--jnr-fuse--0.5.3=MIT License
|
||||
@@ -0,0 +1,32 @@
|
||||
<#function artifactFormat p>
|
||||
<#if p.name?index_of('Unnamed') > -1>
|
||||
<#return p.artifactId + " (" + p.groupId + ":" + p.artifactId + ":" + p.version + " - " + (p.url!"no url defined") + ")">
|
||||
<#else>
|
||||
<#return p.name + " (" + p.groupId + ":" + p.artifactId + ":" + p.version + " - " + (p.url!"no url defined") + ")">
|
||||
</#if>
|
||||
</#function>
|
||||
|
||||
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 Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see http://www.gnu.org/licenses/.
|
||||
|
||||
Cryptomator uses ${dependencyMap?size} third-party dependencies under the following licenses:
|
||||
<#list licenseMap as e>
|
||||
<#assign license = e.getKey()/>
|
||||
<#assign projects = e.getValue()/>
|
||||
<#if projects?size > 0>
|
||||
${license}:
|
||||
<#list projects as project>
|
||||
• ${artifactFormat(project)}
|
||||
</#list>
|
||||
</#if>
|
||||
</#list>
|
||||
@@ -22,6 +22,7 @@ public enum FontAwesome5Icon {
|
||||
HAND_HOLDING_HEART("\uF4BE"), //
|
||||
HEART("\uF004"), //
|
||||
HDD("\uF0A0"), //
|
||||
INFO_CIRCLE("\uF05A"), //
|
||||
KEY("\uF084"), //
|
||||
LINK("\uF0C1"), //
|
||||
LOCK("\uF023"), //
|
||||
|
||||
@@ -16,6 +16,7 @@ import javax.inject.Named;
|
||||
import javax.inject.Singleton;
|
||||
import java.awt.Desktop;
|
||||
import java.awt.EventQueue;
|
||||
import java.awt.desktop.AboutEvent;
|
||||
import java.awt.desktop.QuitResponse;
|
||||
import java.util.EnumSet;
|
||||
import java.util.EventObject;
|
||||
@@ -47,6 +48,11 @@ public class AppLifecycleListener {
|
||||
Desktop.getDesktop().setPreferencesHandler(this::showPreferencesWindow);
|
||||
}
|
||||
|
||||
// register preferences shortcut
|
||||
if (Desktop.getDesktop().isSupported(Desktop.Action.APP_ABOUT)) {
|
||||
Desktop.getDesktop().setAboutHandler(this::showAboutWindow);
|
||||
}
|
||||
|
||||
// register quit handler
|
||||
if (Desktop.getDesktop().isSupported(Desktop.Action.APP_QUIT_HANDLER)) {
|
||||
Desktop.getDesktop().setQuitHandler(this::handleQuitRequest);
|
||||
@@ -110,6 +116,10 @@ public class AppLifecycleListener {
|
||||
fxApplicationStarter.get(true).thenAccept(app -> app.showPreferencesWindow(SelectedPreferencesTab.ANY));
|
||||
}
|
||||
|
||||
private void showAboutWindow(@SuppressWarnings("unused") AboutEvent aboutEvent) {
|
||||
fxApplicationStarter.get(true).thenAccept(app -> app.showPreferencesWindow(SelectedPreferencesTab.ABOUT));
|
||||
}
|
||||
|
||||
private void forceUnmountRemainingVaults() {
|
||||
for (Vault vault : vaults) {
|
||||
if (vault.isUnlocked()) {
|
||||
|
||||
@@ -9,6 +9,7 @@ import org.cryptomator.ui.traymenu.TrayMenuComponent;
|
||||
|
||||
import javax.inject.Named;
|
||||
import javax.inject.Singleton;
|
||||
import java.util.Locale;
|
||||
import java.util.ResourceBundle;
|
||||
import java.util.concurrent.ArrayBlockingQueue;
|
||||
import java.util.concurrent.BlockingQueue;
|
||||
|
||||
@@ -0,0 +1,46 @@
|
||||
package org.cryptomator.ui.preferences;
|
||||
|
||||
import com.google.common.io.CharStreams;
|
||||
import org.cryptomator.ui.common.FxController;
|
||||
import org.cryptomator.ui.fxapp.UpdateChecker;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.InputStreamReader;
|
||||
|
||||
@PreferencesScoped
|
||||
public class AboutController implements FxController {
|
||||
|
||||
private static final Logger LOG = LoggerFactory.getLogger(AboutController.class);
|
||||
|
||||
private final String thirdPartyLicenseText;
|
||||
private final String applicationVersion;
|
||||
|
||||
@Inject
|
||||
AboutController(UpdateChecker updateChecker) {
|
||||
this.thirdPartyLicenseText = loadThirdPartyLicenseFile();
|
||||
this.applicationVersion = updateChecker.currentVersionProperty().get();
|
||||
}
|
||||
|
||||
private static String loadThirdPartyLicenseFile() {
|
||||
try (InputStream in = AboutController.class.getResourceAsStream("/license/THIRD-PARTY.txt")) {
|
||||
return CharStreams.toString(new InputStreamReader(in));
|
||||
} catch (IOException | NullPointerException e) {
|
||||
LOG.error("Failed to load /license/THIRD-PARTY.txt", e);
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
/* Getter */
|
||||
|
||||
public String getThirdPartyLicenseText() {
|
||||
return thirdPartyLicenseText;
|
||||
}
|
||||
|
||||
public String getApplicationVersion() {
|
||||
return applicationVersion;
|
||||
}
|
||||
}
|
||||
@@ -27,6 +27,7 @@ public class PreferencesController implements FxController {
|
||||
public Tab volumeTab;
|
||||
public Tab updatesTab;
|
||||
public Tab donationKeyTab;
|
||||
public Tab aboutTab;
|
||||
|
||||
@Inject
|
||||
public PreferencesController(@PreferencesWindow Stage window, ObjectProperty<SelectedPreferencesTab> selectedTabProperty, UpdateChecker updateChecker) {
|
||||
@@ -57,6 +58,8 @@ public class PreferencesController implements FxController {
|
||||
return donationKeyTab;
|
||||
case GENERAL:
|
||||
return generalTab;
|
||||
case ABOUT:
|
||||
return aboutTab;
|
||||
case ANY:
|
||||
default:
|
||||
return updateAvailable.get() ? updatesTab : generalTab;
|
||||
|
||||
@@ -83,4 +83,9 @@ abstract class PreferencesModule {
|
||||
@FxControllerKey(DonationKeyPreferencesController.class)
|
||||
abstract FxController bindDonationKeyPreferencesController(DonationKeyPreferencesController controller);
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FxControllerKey(AboutController.class)
|
||||
abstract FxController bindAboutController(AboutController controller);
|
||||
|
||||
}
|
||||
|
||||
@@ -25,4 +25,9 @@ public enum SelectedPreferencesTab {
|
||||
* Show donation key tab
|
||||
*/
|
||||
DONATION_KEY,
|
||||
|
||||
/**
|
||||
* Show about tab
|
||||
*/
|
||||
ABOUT,
|
||||
}
|
||||
|
||||
@@ -46,5 +46,13 @@
|
||||
<fx:include source="/fxml/preferences_donationkey.fxml"/>
|
||||
</content>
|
||||
</Tab>
|
||||
<Tab fx:id="aboutTab" id="ABOUT" text="%preferences.about">
|
||||
<graphic>
|
||||
<FontAwesome5IconView glyph="INFO_CIRCLE"/>
|
||||
</graphic>
|
||||
<content>
|
||||
<fx:include source="/fxml/preferences_about.fxml"/>
|
||||
</content>
|
||||
</Tab>
|
||||
</tabs>
|
||||
</TabPane>
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<?import javafx.geometry.Insets?>
|
||||
<?import javafx.scene.control.Label?>
|
||||
<?import javafx.scene.control.TextArea?>
|
||||
<?import javafx.scene.image.Image?>
|
||||
<?import javafx.scene.image.ImageView?>
|
||||
<?import javafx.scene.layout.HBox?>
|
||||
<?import javafx.scene.layout.VBox?>
|
||||
<?import org.cryptomator.ui.controls.FormattedLabel?>
|
||||
<VBox xmlns="http://javafx.com/javafx"
|
||||
xmlns:fx="http://javafx.com/fxml"
|
||||
fx:controller="org.cryptomator.ui.preferences.AboutController"
|
||||
spacing="12"
|
||||
alignment="TOP_CENTER">
|
||||
<padding>
|
||||
<Insets topRightBottomLeft="12"/>
|
||||
</padding>
|
||||
<children>
|
||||
<HBox spacing="12" VBox.vgrow="NEVER" alignment="TOP_LEFT">
|
||||
<ImageView VBox.vgrow="ALWAYS" fitHeight="64" preserveRatio="true" smooth="true" cache="true">
|
||||
<Image url="/bot.png"/>
|
||||
</ImageView>
|
||||
<VBox HBox.hgrow="ALWAYS">
|
||||
<FormattedLabel styleClass="label-large" format="Cryptomator %s" arg1="${controller.applicationVersion}"/>
|
||||
<Label text="© 2016 - 2020 Skymatic GmbH"/>
|
||||
</VBox>
|
||||
</HBox>
|
||||
|
||||
<TextArea text="${controller.thirdPartyLicenseText}" editable="false" />
|
||||
</children>
|
||||
</VBox>
|
||||
@@ -144,6 +144,8 @@ preferences.donationKey=Donation
|
||||
preferences.donationKey.registeredFor=Registered for %s
|
||||
preferences.donationKey.noDonationKey=No valid donation key found. It's like a license key but for awesome people using free software. ;-)
|
||||
preferences.donationKey.getDonationKey=Get a donation key
|
||||
## About
|
||||
preferences.about=About
|
||||
|
||||
# Main Window
|
||||
main.closeBtn.tooltip=Close
|
||||
|
||||
@@ -0,0 +1,85 @@
|
||||
|
||||
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 Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see http://www.gnu.org/licenses/.
|
||||
|
||||
Cryptomator uses 49 third-party dependencies under the following licenses:
|
||||
Apache License v2.0:
|
||||
• HKDF-RFC5869 (at.favre.lib:hkdf:1.0.2 - https://github.com/patrickfav/hkdf)
|
||||
• jffi (com.github.jnr:jffi:1.2.16 - http://github.com/jnr/jffi)
|
||||
• jnr-constants (com.github.jnr:jnr-constants:0.9.9 - http://github.com/jnr/jnr-constants)
|
||||
• jnr-ffi (com.github.jnr:jnr-ffi:2.1.7 - http://github.com/jnr/jnr-ffi)
|
||||
• FindBugs-jsr305 (com.google.code.findbugs:jsr305:3.0.2 - http://findbugs.sourceforge.net/)
|
||||
• Gson (com.google.code.gson:gson:2.8.6 - https://github.com/google/gson/gson)
|
||||
• Dagger (com.google.dagger:dagger:2.26 - https://github.com/google/dagger)
|
||||
• error-prone annotations (com.google.errorprone:error_prone_annotations:2.3.2 - http://nexus.sonatype.org/oss-repository-hosting.html/error_prone_parent/error_prone_annotations)
|
||||
• Guava InternalFutureFailureAccess and InternalFutures (com.google.guava:failureaccess:1.0.1 - https://github.com/google/guava/failureaccess)
|
||||
• Guava: Google Core Libraries for Java (com.google.guava:guava:28.1-jre - https://github.com/google/guava/guava)
|
||||
• Guava ListenableFuture only (com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava - https://github.com/google/guava/listenablefuture)
|
||||
• J2ObjC Annotations (com.google.j2objc:j2objc-annotations:1.3 - https://github.com/google/j2objc/)
|
||||
• Apache Commons CLI (commons-cli:commons-cli:1.4 - http://commons.apache.org/proper/commons-cli/)
|
||||
• Apache Commons IO (commons-io:commons-io:2.6 - http://commons.apache.org/proper/commons-io/)
|
||||
• javax.inject (javax.inject:javax.inject:1 - http://code.google.com/p/atinject/)
|
||||
• Java Native Access (net.java.dev.jna:jna:5.1.0 - https://github.com/java-native-access/jna)
|
||||
• Java Native Access Platform (net.java.dev.jna:jna-platform:5.1.0 - https://github.com/java-native-access/jna)
|
||||
• Apache Commons Lang (org.apache.commons:commons-lang3:3.9 - http://commons.apache.org/proper/commons-lang/)
|
||||
• Jackrabbit WebDAV Library (org.apache.jackrabbit:jackrabbit-webdav:2.19.0 - http://jackrabbit.apache.org/jackrabbit-webdav/)
|
||||
• Jetty :: Http Utility (org.eclipse.jetty:jetty-http:9.4.17.v20190418 - http://www.eclipse.org/jetty)
|
||||
• Jetty :: IO Utility (org.eclipse.jetty:jetty-io:9.4.17.v20190418 - http://www.eclipse.org/jetty)
|
||||
• Jetty :: Security (org.eclipse.jetty:jetty-security:9.4.17.v20190418 - http://www.eclipse.org/jetty)
|
||||
• Jetty :: Server Core (org.eclipse.jetty:jetty-server:9.4.17.v20190418 - http://www.eclipse.org/jetty)
|
||||
• Jetty :: Servlet Handling (org.eclipse.jetty:jetty-servlet:9.4.17.v20190418 - http://www.eclipse.org/jetty)
|
||||
• Jetty :: Utilities (org.eclipse.jetty:jetty-util:9.4.17.v20190418 - http://www.eclipse.org/jetty)
|
||||
• Jetty :: Webapp Application Support (org.eclipse.jetty:jetty-webapp:9.4.17.v20190418 - http://www.eclipse.org/jetty)
|
||||
• Jetty :: XML utilities (org.eclipse.jetty:jetty-xml:9.4.17.v20190418 - http://www.eclipse.org/jetty)
|
||||
BSD:
|
||||
• ASM Core (org.ow2.asm:asm:5.0.3 - http://asm.objectweb.org/asm/)
|
||||
• ASM Analysis (org.ow2.asm:asm-analysis:5.0.3 - http://asm.objectweb.org/asm-analysis/)
|
||||
• ASM Commons (org.ow2.asm:asm-commons:5.0.3 - http://asm.objectweb.org/asm-commons/)
|
||||
• ASM Tree (org.ow2.asm:asm-tree:5.0.3 - http://asm.objectweb.org/asm-tree/)
|
||||
• ASM Util (org.ow2.asm:asm-util:5.0.3 - http://asm.objectweb.org/asm-util/)
|
||||
Common Public License - v 1.0:
|
||||
• jnr-posix (com.github.jnr:jnr-posix:3.0.44 - http://nexus.sonatype.org/oss-repository-hosting.html/jnr-posix)
|
||||
Eclipse Public License - Version 1.0:
|
||||
• Jetty :: Http Utility (org.eclipse.jetty:jetty-http:9.4.17.v20190418 - http://www.eclipse.org/jetty)
|
||||
• Jetty :: IO Utility (org.eclipse.jetty:jetty-io:9.4.17.v20190418 - http://www.eclipse.org/jetty)
|
||||
• Jetty :: Security (org.eclipse.jetty:jetty-security:9.4.17.v20190418 - http://www.eclipse.org/jetty)
|
||||
• Jetty :: Server Core (org.eclipse.jetty:jetty-server:9.4.17.v20190418 - http://www.eclipse.org/jetty)
|
||||
• Jetty :: Servlet Handling (org.eclipse.jetty:jetty-servlet:9.4.17.v20190418 - http://www.eclipse.org/jetty)
|
||||
• Jetty :: Utilities (org.eclipse.jetty:jetty-util:9.4.17.v20190418 - http://www.eclipse.org/jetty)
|
||||
• Jetty :: Webapp Application Support (org.eclipse.jetty:jetty-webapp:9.4.17.v20190418 - http://www.eclipse.org/jetty)
|
||||
• Jetty :: XML utilities (org.eclipse.jetty:jetty-xml:9.4.17.v20190418 - http://www.eclipse.org/jetty)
|
||||
GPLv2:
|
||||
• jnr-posix (com.github.jnr:jnr-posix:3.0.44 - http://nexus.sonatype.org/oss-repository-hosting.html/jnr-posix)
|
||||
GPLv2+CE:
|
||||
• Java Servlet API (javax.servlet:javax.servlet-api:3.1.0 - http://servlet-spec.java.net)
|
||||
• javafx-base (org.openjfx:javafx-base:14-ea+8 - https://openjdk.java.net/projects/openjfx/javafx-base/)
|
||||
• javafx-controls (org.openjfx:javafx-controls:14-ea+8 - https://openjdk.java.net/projects/openjfx/javafx-controls/)
|
||||
• javafx-fxml (org.openjfx:javafx-fxml:14-ea+8 - https://openjdk.java.net/projects/openjfx/javafx-fxml/)
|
||||
• javafx-graphics (org.openjfx:javafx-graphics:14-ea+8 - https://openjdk.java.net/projects/openjfx/javafx-graphics/)
|
||||
LGPL 2.1:
|
||||
• dbus-java (com.github.hypfvieh:dbus-java:3.0.2 - https://github.com/hypfvieh/dbus-java/dbus-java)
|
||||
• jnr-posix (com.github.jnr:jnr-posix:3.0.44 - http://nexus.sonatype.org/oss-repository-hosting.html/jnr-posix)
|
||||
• Java Native Access (net.java.dev.jna:jna:5.1.0 - https://github.com/java-native-access/jna)
|
||||
• Java Native Access Platform (net.java.dev.jna:jna-platform:5.1.0 - https://github.com/java-native-access/jna)
|
||||
MIT License:
|
||||
• java jwt (com.auth0:java-jwt:3.8.3 - https://github.com/auth0/java-jwt)
|
||||
• java-utils (com.github.hypfvieh:java-utils:1.0.5 - https://github.com/hypfvieh/java-utils)
|
||||
• jnr-x86asm (com.github.jnr:jnr-x86asm:1.0.2 - http://github.com/jnr/jnr-x86asm)
|
||||
• jnr-fuse (com.github.serceman:jnr-fuse:0.5.3 - no url defined)
|
||||
• zxcvbn4j (com.nulab-inc:zxcvbn:1.3.0 - https://github.com/nulab/zxcvbn4j)
|
||||
• secret-service (de.swiesend:secret-service:1.0.0-RC.3 - https://github.com/swiesend/secret-service)
|
||||
• Checker Qual (org.checkerframework:checker-qual:2.8.1 - https://checkerframework.org)
|
||||
• Animal Sniffer Annotations (org.codehaus.mojo:animal-sniffer-annotations:1.18 - http://www.mojohaus.org/animal-sniffer/animal-sniffer-annotations)
|
||||
• SLF4J API Module (org.slf4j:slf4j-api:1.7.29 - http://www.slf4j.org)
|
||||
The BSD 2-Clause License:
|
||||
• EasyBind (org.fxmisc.easybind:easybind:1.0.3 - http://www.fxmisc.org/easybind/)
|
||||
Reference in New Issue
Block a user