From 551f4683df801e63286f0c5b5eed40e2bb349578 Mon Sep 17 00:00:00 2001 From: Timo Teräs Date: Mon, 17 Apr 2023 14:19:09 +0300 Subject: db: suppress warning about missing checksum for special files fixes #10889 --- src/database.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/database.c b/src/database.c index da77b07..d7f197b 100644 --- a/src/database.c +++ b/src/database.c @@ -2448,6 +2448,19 @@ static int contains_control_character(const char *str) return 0; } +static int need_checksum(mode_t mode) +{ + switch (mode & S_IFMT) { + case S_IFSOCK: + case S_IFBLK: + case S_IFCHR: + case S_IFIFO: + return FALSE; + default: + return TRUE; + } +} + static int apk_db_install_archive_entry(void *_ctx, const struct apk_file_info *ae, struct apk_istream *is) @@ -2637,7 +2650,8 @@ static int apk_db_install_archive_entry(void *_ctx, else memcpy(&file->csum, &ae->csum, sizeof file->csum); /* only warn once per package */ - if (file->csum.type == APK_CHECKSUM_NONE && !ctx->missing_checksum) { + if (file->csum.type == APK_CHECKSUM_NONE && + need_checksum(ae->mode) && !ctx->missing_checksum) { apk_warning(PKG_VER_FMT": support for packages without embedded " "checksums will be dropped in apk-tools 3.", PKG_VER_PRINTF(pkg)); -- cgit v1.2.3-70-g09d2