diff --git a/pkgs/by-name/cr/cryptomator/package.nix b/pkgs/by-name/cr/cryptomator/package.nix
index 1ebc237936f7..1badd7aee2ff 100644
--- a/pkgs/by-name/cr/cryptomator/package.nix
+++ b/pkgs/by-name/cr/cryptomator/package.nix
@@ -9,6 +9,7 @@
makeShellWrapper,
maven,
wrapGAppsHook3,
+ nix-update-script,
}:
let
@@ -16,23 +17,18 @@ let
in
maven.buildMavenPackage rec {
pname = "cryptomator";
- version = "1.14.2";
+ version = "1.15.0";
src = fetchFromGitHub {
owner = "cryptomator";
repo = "cryptomator";
- rev = version;
- hash = "sha256-TSE83QYFry8O6MKAoggJBjqonYiGax5GG/a7sm7aHf8=";
+ tag = version;
+ hash = "sha256-fGn8jsPHwGHSiXgIfkMtSYut6pVg8p9+N/uDUlj2Wwc=";
};
- patches = [
- # https://github.com/cryptomator/cryptomator/pull/3621
- ./string-template-removal-and-jdk23.patch
- ];
-
mvnJdk = jdk;
mvnParameters = "-Dmaven.test.skip=true -Plinux";
- mvnHash = "sha256-LFD150cGW6OdwkK28GYI9j44GtVE0pwFMaQ8dQqArLo=";
+ mvnHash = "sha256-w0mIeSFRSGl3EorrGcxqnXF6C0SowjWUMYT/NN1erwM=";
preBuild = ''
VERSION=${version}
@@ -114,9 +110,12 @@ maven.buildMavenPackage rec {
libayatana-appindicator
];
+ passthru.updateScript = nix-update-script { };
+
meta = {
description = "Free client-side encryption for your cloud files";
homepage = "https://cryptomator.org";
+ changelog = "https://github.com/cryptomator/cryptomator/releases/tag/${version}";
license = lib.licenses.gpl3Plus;
mainProgram = "cryptomator";
maintainers = with lib.maintainers; [
diff --git a/pkgs/by-name/cr/cryptomator/string-template-removal-and-jdk23.patch b/pkgs/by-name/cr/cryptomator/string-template-removal-and-jdk23.patch
deleted file mode 100644
index 10ec8aa4ff57..000000000000
--- a/pkgs/by-name/cr/cryptomator/string-template-removal-and-jdk23.patch
+++ /dev/null
@@ -1,135 +0,0 @@
-diff --git a/src/main/java/org/cryptomator/common/mount/Mounter.java b/src/main/java/org/cryptomator/common/mount/Mounter.java
-index 6ca067305b..89f8fb7822 100644
---- a/src/main/java/org/cryptomator/common/mount/Mounter.java
-+++ b/src/main/java/org/cryptomator/common/mount/Mounter.java
-@@ -160,7 +160,7 @@ public MountHandle mount(VaultSettings vaultSettings, Path cryptoFsRoot) throws
- var mountService = mountProviders.stream().filter(s -> s.getClass().getName().equals(vaultSettings.mountService.getValue())).findFirst().orElse(defaultMountService.getValue());
-
- if (isConflictingMountService(mountService)) {
-- var msg = STR."\{mountService.getClass()} unavailable due to conflict with either of \{CONFLICTING_MOUNT_SERVICES.get(mountService.getClass().getName())}";
-+ var msg = mountService.getClass() + " unavailable due to conflict with either of " + CONFLICTING_MOUNT_SERVICES.get(mountService.getClass().getName());
- throw new ConflictingMountServiceException(msg);
- }
-
-diff --git a/src/main/java/org/cryptomator/ui/keyloading/hub/HubConfig.java b/src/main/java/org/cryptomator/ui/keyloading/hub/HubConfig.java
-index eefad55a2f..0e7a6cc3ab 100644
---- a/src/main/java/org/cryptomator/ui/keyloading/hub/HubConfig.java
-+++ b/src/main/java/org/cryptomator/ui/keyloading/hub/HubConfig.java
-@@ -20,7 +20,7 @@ public class HubConfig {
- public String devicesResourceUrl;
-
- /**
-- * A collection of String template processors to construct URIs related to this Hub instance.
-+ * A collection of functions to construct URIs related to this Hub instance.
- */
- @JsonIgnore
- public final URIProcessors URIs = new URIProcessors();
-@@ -52,8 +52,7 @@ public class URIProcessors {
- /**
- * Resolves paths relative to the /api/ endpoint of this Hub instance.
- */
-- public final StringTemplate.Processor API = template -> {
-- var path = template.interpolate();
-+ public URI getApi(String path) {
- var relPath = path.startsWith("/") ? path.substring(1) : path;
- return getApiBaseUrl().resolve(relPath);
- };
-diff --git a/src/main/java/org/cryptomator/ui/keyloading/hub/ReceiveKeyController.java b/src/main/java/org/cryptomator/ui/keyloading/hub/ReceiveKeyController.java
-index 3bfb4ec8ea..3353d78dd6 100644
---- a/src/main/java/org/cryptomator/ui/keyloading/hub/ReceiveKeyController.java
-+++ b/src/main/java/org/cryptomator/ui/keyloading/hub/ReceiveKeyController.java
-@@ -88,7 +88,7 @@ public void receiveKey() {
- * STEP 0 (Request): GET /api/config
- */
- private void requestApiConfig() {
-- var configUri = hubConfig.URIs.API."config";
-+ var configUri = hubConfig.URIs.getApi("config");
- var request = HttpRequest.newBuilder(configUri) //
- .GET() //
- .timeout(REQ_TIMEOUT) //
-@@ -122,7 +122,7 @@ private void receivedApiConfig(HttpResponse response) {
- * STEP 1 (Request): GET user key for this device
- */
- private void requestDeviceData() {
-- var deviceUri = hubConfig.URIs.API."devices/\{deviceId}";
-+ var deviceUri = hubConfig.URIs.getApi("devices/" + deviceId);
- var request = HttpRequest.newBuilder(deviceUri) //
- .header("Authorization", "Bearer " + bearerToken) //
- .GET() //
-@@ -162,7 +162,7 @@ private void needsDeviceRegistration() {
- * STEP 2 (Request): GET vault key for this user
- */
- private void requestVaultMasterkey(String encryptedUserKey) {
-- var vaultKeyUri = hubConfig.URIs.API."vaults/\{vaultId}/access-token";
-+ var vaultKeyUri = hubConfig.URIs.getApi("vaults/" + vaultId + "/access-token");
- var request = HttpRequest.newBuilder(vaultKeyUri) //
- .header("Authorization", "Bearer " + bearerToken) //
- .GET() //
-@@ -205,7 +205,7 @@ private void receivedBothEncryptedKeys(String encryptedVaultKey, String encrypte
- */
- @Deprecated
- private void requestLegacyAccessToken() {
-- var legacyAccessTokenUri = hubConfig.URIs.API."vaults/\{vaultId}/keys/\{deviceId}";
-+ var legacyAccessTokenUri = hubConfig.URIs.getApi("vaults/" + vaultId + "/keys/" + deviceId);
- var request = HttpRequest.newBuilder(legacyAccessTokenUri) //
- .header("Authorization", "Bearer " + bearerToken) //
- .GET() //
-diff --git a/src/main/java/org/cryptomator/ui/keyloading/hub/RegisterDeviceController.java b/src/main/java/org/cryptomator/ui/keyloading/hub/RegisterDeviceController.java
-index b00d49874e..d711ff86ef 100644
---- a/src/main/java/org/cryptomator/ui/keyloading/hub/RegisterDeviceController.java
-+++ b/src/main/java/org/cryptomator/ui/keyloading/hub/RegisterDeviceController.java
-@@ -115,7 +115,7 @@ public void register() {
- workInProgress.set(true);
-
-
-- var userReq = HttpRequest.newBuilder(hubConfig.URIs.API."users/me") //
-+ var userReq = HttpRequest.newBuilder(hubConfig.URIs.getApi("users/me")) //
- .GET() //
- .timeout(REQ_TIMEOUT) //
- .header("Authorization", "Bearer " + bearerToken) //
-@@ -143,7 +143,7 @@ public void register() {
- var now = Instant.now().toString();
- var dto = new CreateDeviceDto(deviceId, deviceNameField.getText(), BaseEncoding.base64().encode(deviceKeyPair.getPublic().getEncoded()), "DESKTOP", jwe.serialize(), now);
- var json = toJson(dto);
-- var deviceUri = hubConfig.URIs.API."devices/\{deviceId}";
-+ var deviceUri = hubConfig.URIs.getApi("devices/" + deviceId);
- var putDeviceReq = HttpRequest.newBuilder(deviceUri) //
- .PUT(HttpRequest.BodyPublishers.ofString(json, StandardCharsets.UTF_8)) //
- .timeout(REQ_TIMEOUT) //
-@@ -164,7 +164,7 @@ public void register() {
- private void migrateLegacyDevices(ECPublicKey userPublicKey) {
- try {
- // GET legacy access tokens
-- var getUri = hubConfig.URIs.API."devices/\{deviceId}/legacy-access-tokens";
-+ var getUri = hubConfig.URIs.getApi("devices/" + deviceId + "/legacy-access-tokens");
- var getReq = HttpRequest.newBuilder(getUri).GET().timeout(REQ_TIMEOUT).header("Authorization", "Bearer " + bearerToken).build();
- var getRes = httpClient.send(getReq, HttpResponse.BodyHandlers.ofString(StandardCharsets.UTF_8));
- if (getRes.statusCode() != 200) {
-@@ -185,12 +185,12 @@ private void migrateLegacyDevices(ECPublicKey userPublicKey) {
- LOG.warn("Failed to decrypt legacy access token for vault {}. Skipping migration.", entry.getKey());
- }
- }).collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
-- var postUri = hubConfig.URIs.API."users/me/access-tokens";
-+ var postUri = hubConfig.URIs.getApi("users/me/access-tokens");
- var postBody = JSON.writer().writeValueAsString(newAccessTokens);
- var postReq = HttpRequest.newBuilder(postUri).POST(HttpRequest.BodyPublishers.ofString(postBody)).timeout(REQ_TIMEOUT).header("Authorization", "Bearer " + bearerToken).build();
- var postRes = httpClient.send(postReq, HttpResponse.BodyHandlers.ofString(StandardCharsets.UTF_8));
- if (postRes.statusCode() != 200) {
-- throw new IOException(STR."Unexpected response from POST \{postUri}: \{postRes.statusCode()}");
-+ throw new IOException("Unexpected response from POST " + postUri + ": " + postRes.statusCode());
- }
- } catch (IOException e) {
- // log and ignore: this is merely a best-effort attempt of migrating legacy devices. Failure is uncritical as this is merely a convenience feature.
-diff --git a/pom.xml b/pom.xml
-index 3290b3121d..0812419af1 100644
---- a/pom.xml
-+++ b/pom.xml
-@@ -26,7 +26,7 @@
-
-
- UTF-8
-- 22
-+ 23
-
-
-