73 lines
3.9 KiB
Diff
73 lines
3.9 KiB
Diff
diff --git a/src/detection/packages/packages.h b/src/detection/packages/packages.h
|
|
index 12e98793..b1552761 100644
|
|
--- a/src/detection/packages/packages.h
|
|
+++ b/src/detection/packages/packages.h
|
|
@@ -22,6 +22,7 @@ typedef struct FFPackagesResult
|
|
uint32_t hpkgSystem;
|
|
uint32_t hpkgUser;
|
|
uint32_t kiss;
|
|
+ uint32_t leaf;
|
|
uint32_t linglong;
|
|
uint32_t lpkg;
|
|
uint32_t lpkgbuild;
|
|
diff --git a/src/detection/packages/packages_linux.c b/src/detection/packages/packages_linux.c
|
|
index fc5a0cf2..f4a3fca1 100644
|
|
--- a/src/detection/packages/packages_linux.c
|
|
+++ b/src/detection/packages/packages_linux.c
|
|
@@ -418,6 +418,7 @@ static void getPackageCounts(FFstrbuf* baseDir, FFPackagesResult* packageCounts,
|
|
if (!(options->disabled & FF_PACKAGES_FLAG_DPKG_BIT)) packageCounts->dpkg += getNumStrings(baseDir, "/var/lib/dpkg/status", "Status: install ok installed", "dpkg");
|
|
if (!(options->disabled & FF_PACKAGES_FLAG_LPKG_BIT)) packageCounts->lpkg += getNumStrings(baseDir, "/opt/Loc-OS-LPKG/installed-lpkg/Listinstalled-lpkg.list", "\n", "lpkg");
|
|
if (!(options->disabled & FF_PACKAGES_FLAG_EMERGE_BIT)) packageCounts->emerge += countFilesRecursive(baseDir, "/var/db/pkg", "SIZE");
|
|
+ if (!(options->disabled & FF_PACKAGES_FLAG_LEAF_BIT)) packageCounts->leaf += countFilesRecursive(baseDir, "/var/lib/leaf/trace", "FILES");
|
|
if (!(options->disabled & FF_PACKAGES_FLAG_EOPKG_BIT)) packageCounts->eopkg += getNumElements(baseDir, "/var/lib/eopkg/package", true);
|
|
if (!(options->disabled & FF_PACKAGES_FLAG_FLATPAK_BIT)) packageCounts->flatpakSystem += getFlatpakPackages(baseDir, "/var/lib");
|
|
if (!(options->disabled & FF_PACKAGES_FLAG_KISS_BIT)) packageCounts->kiss += getNumElements(baseDir, "/var/db/kiss/installed", true);
|
|
diff --git a/src/modules/packages/option.h b/src/modules/packages/option.h
|
|
index f3954138..a7a9991c 100644
|
|
--- a/src/modules/packages/option.h
|
|
+++ b/src/modules/packages/option.h
|
|
@@ -37,6 +37,7 @@ typedef enum __attribute__((__packed__)) FFPackagesFlags
|
|
FF_PACKAGES_FLAG_PISI_BIT = 1ULL << 29,
|
|
FF_PACKAGES_FLAG_SOAR_BIT = 1ULL << 30,
|
|
FF_PACKAGES_FLAG_KISS_BIT = 1ULL << 31,
|
|
+ FF_PACKAGES_FLAG_LEAF_BIT = 1ULL << 32,
|
|
FF_PACKAGES_FLAG_FORCE_UNSIGNED = UINT64_MAX,
|
|
} FFPackagesFlags;
|
|
static_assert(sizeof(FFPackagesFlags) == sizeof(uint64_t), "");
|
|
diff --git a/src/modules/packages/packages.c b/src/modules/packages/packages.c
|
|
index 5f78a052..5628edd9 100644
|
|
--- a/src/modules/packages/packages.c
|
|
+++ b/src/modules/packages/packages.c
|
|
@@ -147,6 +147,7 @@ bool ffPrintPackages(FFPackagesOptions* options)
|
|
FF_PRINT_PACKAGE(mport)
|
|
FF_PRINT_PACKAGE(pisi)
|
|
FF_PRINT_PACKAGE(soar)
|
|
+ FF_PRINT_PACKAGE(leaf)
|
|
|
|
putchar('\n');
|
|
}
|
|
@@ -196,6 +197,7 @@ bool ffPrintPackages(FFPackagesOptions* options)
|
|
FF_FORMAT_ARG(counts.pisi, "pisi"),
|
|
FF_FORMAT_ARG(counts.soar, "soar"),
|
|
FF_FORMAT_ARG(counts.kiss, "kiss"),
|
|
+ FF_FORMAT_ARG(counts.leaf, "leaf"),
|
|
FF_FORMAT_ARG(nixAll, "nix-all"),
|
|
FF_FORMAT_ARG(flatpakAll, "flatpak-all"),
|
|
FF_FORMAT_ARG(brewAll, "brew-all"),
|
|
@@ -435,6 +437,7 @@ bool ffGeneratePackagesJsonResult(FF_MAYBE_UNUSED FFPackagesOptions* options, yy
|
|
FF_APPEND_PACKAGE_COUNT(sorcery)
|
|
FF_APPEND_PACKAGE_COUNT(winget)
|
|
FF_APPEND_PACKAGE_COUNT(xbps)
|
|
+ FF_APPEND_PACKAGE_COUNT(leaf)
|
|
yyjson_mut_obj_add_strbuf(doc, obj, "pacmanBranch", &counts.pacmanBranch);
|
|
|
|
return true;
|
|
@@ -506,6 +509,7 @@ FFModuleBaseInfo ffPackagesModuleInfo = {
|
|
{"Number of pisi packages", "pisi"},
|
|
{"Number of soar packages", "soar"},
|
|
{"Number of kiss packages", "kiss"},
|
|
+ {"Number of leaf packages", "leaf"},
|
|
{"Total number of all nix packages", "nix-all"},
|
|
{"Total number of all flatpak app packages", "flatpak-all"},
|
|
{"Total number of all brew packages", "brew-all"},
|