From: masmullin2000 Date: Thu, 17 Sep 2020 07:07:03 +0000 (-0400) Subject: Fix compilation without libcryptsetup (#17071) X-Git-Tag: v247-rc1~220 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3dd8ae5c70aaf5d6d70079b1b14f1a66cb6b633a;p=thirdparty%2Fsystemd.git Fix compilation without libcryptsetup (#17071) --- diff --git a/src/partition/repart.c b/src/partition/repart.c index 83582b46910..b30a6894fb6 100644 --- a/src/partition/repart.c +++ b/src/partition/repart.c @@ -72,6 +72,12 @@ /* 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) {