diff options
author | Timo Teräs <timo.teras@iki.fi> | 2023-04-17 14:19:09 +0300 |
---|---|---|
committer | Timo Teräs <timo.teras@iki.fi> | 2023-04-17 14:19:09 +0300 |
commit | 551f4683df801e63286f0c5b5eed40e2bb349578 (patch) | |
tree | ca9b09f77ba46b3559532afdc348e6420034d57c /src/database.c | |
parent | effc3f45b4a9ed2614af624bbc0135e1d0fafb15 (diff) | |
download | apk-tools-551f4683df801e63286f0c5b5eed40e2bb349578.tar.gz apk-tools-551f4683df801e63286f0c5b5eed40e2bb349578.tar.bz2 apk-tools-551f4683df801e63286f0c5b5eed40e2bb349578.tar.xz apk-tools-551f4683df801e63286f0c5b5eed40e2bb349578.zip |
db: suppress warning about missing checksum for special files
fixes #10889
Diffstat (limited to 'src/database.c')
-rw-r--r-- | src/database.c | 16 |
1 files changed, 15 insertions, 1 deletions
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)); |