]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
Fix compilation without libcryptsetup (#17071)
authormasmullin2000 <masmullin@gmail.com>
Thu, 17 Sep 2020 07:07:03 +0000 (03:07 -0400)
committerGitHub <noreply@github.com>
Thu, 17 Sep 2020 07:07:03 +0000 (09:07 +0200)
src/partition/repart.c

index 83582b46910bc9b352bace4b5480b5625fae8cd6..b30a6894fb62cfd66dc51d8e4346879d92f1dfbc 100644 (file)
 /* LUKS2 takes off 16M of the partition size with its metadata by default */
 #define LUKS2_METADATA_SIZE (16*1024*1024)
 
+#if !HAVE_LIBCRYPTSETUP
+struct crypt_device;
+static inline void sym_crypt_free(struct crypt_device* cd) {}
+static inline void sym_crypt_freep(struct crypt_device** cd) {}
+#endif
+
 /* Note: When growing and placing new partitions we always align to 4K sector size. It's how newer hard disks
  * are designed, and if everything is aligned to that performance is best. And for older hard disks with 512B
  * sector size devices were generally assumed to have an even number of sectors, hence at the worst we'll
@@ -2369,7 +2375,7 @@ static int partition_encrypt(
                 struct crypt_device **ret_cd,
                 char **ret_volume,
                 int *ret_fd) {
-
+#if HAVE_LIBCRYPTSETUP
         _cleanup_(sym_crypt_freep) struct crypt_device *cd = NULL;
         _cleanup_(erase_and_freep) void *volume_key = NULL;
         _cleanup_free_ char *dm_name = NULL, *vol = NULL;
@@ -2465,9 +2471,13 @@ static int partition_encrypt(
                 *ret_volume = TAKE_PTR(vol);
 
         return 0;
+#else
+        return log_error_errno(SYNTHETIC_ERRNO(EOPNOTSUPP), "libcryptsetup is not supported, cannot encrypt: %m");
+#endif
 }
 
 static int deactivate_luks(struct crypt_device *cd, const char *node) {
+#if HAVE_LIBCRYPTSETUP
         int r;
 
         if (!cd)
@@ -2483,6 +2493,9 @@ static int deactivate_luks(struct crypt_device *cd, const char *node) {
                 return log_error_errno(r, "Failed to deactivate LUKS device: %m");
 
         return 1;
+#else
+        return 0;
+#endif
 }
 
 static int context_copy_blocks(Context *context) {