summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTimo Teräs <timo.teras@iki.fi>2023-04-17 14:19:09 +0300
committerTimo Teräs <timo.teras@iki.fi>2023-04-17 14:19:09 +0300
commit551f4683df801e63286f0c5b5eed40e2bb349578 (patch)
treeca9b09f77ba46b3559532afdc348e6420034d57c
parenteffc3f45b4a9ed2614af624bbc0135e1d0fafb15 (diff)
downloadapk-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
-rw-r--r--src/database.c16
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));