Skip to content

Commit f76981c

Browse files
committed
Packages (SunOS): fix building
1 parent 85050f7 commit f76981c

File tree

6 files changed

+25
-37
lines changed

6 files changed

+25
-37
lines changed

src/detection/packages/packages.c

+4-16
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ bool ffPackagesWriteCache(FFstrbuf* cacheDir, FFstrbuf* cacheContent, uint32_t n
8787
}
8888

8989
#ifndef _WIN32
90-
uint32_t ffPackagesGetNumElements(const char* dirname, uint8_t type)
90+
uint32_t ffPackagesGetNumElements(const char* dirname, bool isdir)
9191
{
9292
FF_AUTO_CLOSE_DIR DIR* dirp = opendir(dirname);
9393
if(dirp == NULL)
@@ -102,31 +102,19 @@ uint32_t ffPackagesGetNumElements(const char* dirname, uint8_t type)
102102

103103
#ifndef __sun
104104
if(entry->d_type != DT_UNKNOWN && entry->d_type != DT_LNK)
105-
ok = entry->d_type == type;
105+
ok = entry->d_type == isdir ? DT_DIR : DT_REG;
106106
else
107107
#endif
108108
{
109109
struct stat stbuf;
110110
if (fstatat(dirfd(dirp), entry->d_name, &stbuf, 0) == 0)
111-
{
112-
switch (stbuf.st_mode & S_IFMT)
113-
{
114-
case S_IFDIR: ok = type == DT_DIR; break;
115-
case S_IFREG: ok = type == DT_REG; break;
116-
case S_IFLNK: ok = type == DT_LNK; break;
117-
case S_IFSOCK: ok = type == DT_SOCK; break;
118-
case S_IFBLK: ok = type == DT_BLK; break;
119-
case S_IFCHR: ok = type == DT_CHR; break;
120-
case S_IFIFO: ok = type == DT_FIFO; break;
121-
default: break;
122-
}
123-
}
111+
ok = isdir ? S_ISDIR(stbuf.st_mode) : S_ISREG(stbuf.st_mode);
124112
}
125113

126114
if(ok) ++num_elements;
127115
}
128116

129-
if(type == DT_DIR && num_elements >= 2)
117+
if(isdir && num_elements >= 2)
130118
num_elements -= 2; // accounting for . and ..
131119

132120
return num_elements;

src/detection/packages/packages.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -51,5 +51,5 @@ bool ffPackagesReadCache(FFstrbuf* cacheDir, FFstrbuf* cacheContent, const char*
5151
bool ffPackagesWriteCache(FFstrbuf* cacheDir, FFstrbuf* cacheContent, uint32_t num_elements);
5252

5353
#ifndef _WIN32
54-
uint32_t ffPackagesGetNumElements(const char* dirname, uint8_t type);
54+
uint32_t ffPackagesGetNumElements(const char* dirname, bool isdir);
5555
#endif

src/detection/packages/packages_apple.c

+3-3
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,11 @@ static void countBrewPackages(const char* dirname, FFPackagesResult* result)
1111
uint32_t baseDirLength = baseDir.length;
1212

1313
ffStrbufAppendS(&baseDir, "/Caskroom");
14-
result->brewCask += ffPackagesGetNumElements(baseDir.chars, DT_DIR);
14+
result->brewCask += ffPackagesGetNumElements(baseDir.chars, true);
1515
ffStrbufSubstrBefore(&baseDir, baseDirLength);
1616

1717
ffStrbufAppendS(&baseDir, "/Cellar");
18-
result->brew += ffPackagesGetNumElements(baseDir.chars, DT_DIR);
18+
result->brew += ffPackagesGetNumElements(baseDir.chars, true);
1919
ffStrbufSubstrBefore(&baseDir, baseDirLength);
2020
}
2121

@@ -34,7 +34,7 @@ static uint32_t countMacPortsPackages(const char* dirname)
3434
FF_STRBUF_AUTO_DESTROY baseDir = ffStrbufCreateS(dirname);
3535
ffStrbufAppendS(&baseDir, "/var/macports/software");
3636

37-
return ffPackagesGetNumElements(baseDir.chars, DT_DIR);
37+
return ffPackagesGetNumElements(baseDir.chars, true);
3838
}
3939

4040
static uint32_t getMacPortsPackages()

src/detection/packages/packages_linux.c

+14-14
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,11 @@
77
#include "detection/os/os.h"
88
#include "util/stringUtils.h"
99

10-
static uint32_t getNumElements(FFstrbuf* baseDir, const char* dirname, unsigned char type)
10+
static uint32_t getNumElements(FFstrbuf* baseDir, const char* dirname, bool isdir)
1111
{
1212
uint32_t baseDirLength = baseDir->length;
1313
ffStrbufAppendS(baseDir, dirname);
14-
uint32_t num_elements = ffPackagesGetNumElements(baseDir->chars, type);
14+
uint32_t num_elements = ffPackagesGetNumElements(baseDir->chars, isdir);
1515
ffStrbufSubstrBefore(baseDir, baseDirLength);
1616
return num_elements;
1717
}
@@ -310,10 +310,10 @@ static uint32_t getXBPS(FFstrbuf* baseDir, const char* dirname)
310310

311311
static uint32_t getSnap(FFstrbuf* baseDir)
312312
{
313-
uint32_t result = getNumElements(baseDir, "/snap", DT_DIR);
313+
uint32_t result = getNumElements(baseDir, "/snap", true);
314314

315315
if (result == 0)
316-
result = getNumElements(baseDir, "/var/lib/snapd/snap", DT_DIR);
316+
result = getNumElements(baseDir, "/var/lib/snapd/snap", true);
317317

318318
//Accounting for the /snap/bin folder
319319
return result > 0 ? result - 1 : 0;
@@ -479,7 +479,7 @@ static inline uint32_t getFlatpakRuntimePackagesArch(FFstrbuf* baseDir)
479479
{
480480
if(entry->d_type == DT_DIR && entry->d_name[0] != '.')
481481
{
482-
num_elements += getNumElements(baseDir, entry->d_name, DT_DIR);
482+
num_elements += getNumElements(baseDir, entry->d_name, true);
483483
}
484484
}
485485

@@ -528,7 +528,7 @@ static uint32_t getFlatpakPackages(FFstrbuf* baseDir, const char* dirname)
528528
uint32_t flatpakDirLength = baseDir->length;
529529

530530
ffStrbufAppendS(baseDir, "app");
531-
num_elements += ffPackagesGetNumElements(baseDir->chars, DT_DIR);
531+
num_elements += ffPackagesGetNumElements(baseDir->chars, true);
532532
ffStrbufSubstrBefore(baseDir, flatpakDirLength);
533533

534534
num_elements += getFlatpakRuntimePackages(baseDir);
@@ -544,23 +544,23 @@ static void getPackageCounts(FFstrbuf* baseDir, FFPackagesResult* packageCounts,
544544
if (!(options->disabled & FF_PACKAGES_FLAG_DPKG_BIT)) packageCounts->dpkg += getNumStrings(baseDir, "/var/lib/dpkg/status", "Status: install ok installed", "dpkg");
545545
if (!(options->disabled & FF_PACKAGES_FLAG_LPKG_BIT)) packageCounts->lpkg += getNumStrings(baseDir, "/opt/Loc-OS-LPKG/installed-lpkg/Listinstalled-lpkg.list", "\n", "lpkg");
546546
if (!(options->disabled & FF_PACKAGES_FLAG_EMERGE_BIT)) packageCounts->emerge += countFilesRecursive(baseDir, "/var/db/pkg", "SIZE");
547-
if (!(options->disabled & FF_PACKAGES_FLAG_EOPKG_BIT)) packageCounts->eopkg += getNumElements(baseDir, "/var/lib/eopkg/package", DT_DIR);
547+
if (!(options->disabled & FF_PACKAGES_FLAG_EOPKG_BIT)) packageCounts->eopkg += getNumElements(baseDir, "/var/lib/eopkg/package", true);
548548
if (!(options->disabled & FF_PACKAGES_FLAG_FLATPAK_BIT)) packageCounts->flatpakSystem += getFlatpakPackages(baseDir, "/var/lib");
549549
if (!(options->disabled & FF_PACKAGES_FLAG_NIX_BIT))
550550
{
551551
packageCounts->nixDefault += getNixPackages(baseDir, "/nix/var/nix/profiles/default");
552552
packageCounts->nixSystem += getNixPackages(baseDir, "/run/current-system");
553553
}
554-
if (!(options->disabled & FF_PACKAGES_FLAG_PACMAN_BIT)) packageCounts->pacman += getNumElements(baseDir, "/var/lib/pacman/local", DT_DIR);
555-
if (!(options->disabled & FF_PACKAGES_FLAG_LPKGBUILD_BIT)) packageCounts->lpkgbuild += getNumElements(baseDir, "/opt/Loc-OS-LPKG/lpkgbuild/remove", DT_REG);
556-
if (!(options->disabled & FF_PACKAGES_FLAG_PKGTOOL_BIT)) packageCounts->pkgtool += getNumElements(baseDir, "/var/log/packages", DT_REG);
554+
if (!(options->disabled & FF_PACKAGES_FLAG_PACMAN_BIT)) packageCounts->pacman += getNumElements(baseDir, "/var/lib/pacman/local", true);
555+
if (!(options->disabled & FF_PACKAGES_FLAG_LPKGBUILD_BIT)) packageCounts->lpkgbuild += getNumElements(baseDir, "/opt/Loc-OS-LPKG/lpkgbuild/remove", false);
556+
if (!(options->disabled & FF_PACKAGES_FLAG_PKGTOOL_BIT)) packageCounts->pkgtool += getNumElements(baseDir, "/var/log/packages", false);
557557
if (!(options->disabled & FF_PACKAGES_FLAG_RPM_BIT)) packageCounts->rpm += getSQLite3Int(baseDir, "/var/lib/rpm/rpmdb.sqlite", "SELECT count(*) FROM Packages", "rpm");
558558
if (!(options->disabled & FF_PACKAGES_FLAG_SNAP_BIT)) packageCounts->snap += getSnap(baseDir);
559559
if (!(options->disabled & FF_PACKAGES_FLAG_XBPS_BIT)) packageCounts->xbps += getXBPS(baseDir, "/var/db/xbps");
560560
if (!(options->disabled & FF_PACKAGES_FLAG_BREW_BIT))
561561
{
562-
packageCounts->brewCask += getNumElements(baseDir, "/home/linuxbrew/.linuxbrew/Caskroom", DT_DIR);
563-
packageCounts->brew += getNumElements(baseDir, "/home/linuxbrew/.linuxbrew/Cellar", DT_DIR);
562+
packageCounts->brewCask += getNumElements(baseDir, "/home/linuxbrew/.linuxbrew/Caskroom", true);
563+
packageCounts->brew += getNumElements(baseDir, "/home/linuxbrew/.linuxbrew/Cellar", true);
564564
}
565565
if (!(options->disabled & FF_PACKAGES_FLAG_PALUDIS_BIT)) packageCounts->paludis += countFilesRecursive(baseDir, "/var/db/paludis/repositories", "environment.bz2");
566566
if (!(options->disabled & FF_PACKAGES_FLAG_OPKG_BIT)) packageCounts->opkg += getNumStrings(baseDir, "/usr/lib/opkg/status", "Package:", "opkg"); // openwrt
@@ -570,8 +570,8 @@ static void getPackageCounts(FFstrbuf* baseDir, FFPackagesResult* packageCounts,
570570
{
571571
packageCounts->guixSystem += getGuixPackages(baseDir, "/run/current-system/profile");
572572
}
573-
if (!(options->disabled & FF_PACKAGES_FLAG_LINGLONG_BIT)) packageCounts->linglong += getNumElements(baseDir, "/var/lib/linglong/repo/refs/heads/main", DT_DIR);
574-
if (!(options->disabled & FF_PACKAGES_FLAG_PACSTALL_BIT)) packageCounts->pacstall += getNumElements(baseDir, "/var/lib/pacstall/metadata", DT_REG);
573+
if (!(options->disabled & FF_PACKAGES_FLAG_LINGLONG_BIT)) packageCounts->linglong += getNumElements(baseDir, "/var/lib/linglong/repo/refs/heads/main", true);
574+
if (!(options->disabled & FF_PACKAGES_FLAG_PACSTALL_BIT)) packageCounts->pacstall += getNumElements(baseDir, "/var/lib/pacstall/metadata", false);
575575
if (!(options->disabled & FF_PACKAGES_FLAG_QI_BIT)) packageCounts->qi += getNumStrings(baseDir, "/var/qi/installed_packages.list", "\n", "qi");
576576
}
577577

src/detection/packages/packages_obsd.c

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@ void ffDetectPackagesImpl(FFPackagesResult* result, FFPackagesOptions* options)
66
{
77
#if __OpenBSD__
88
if (!(options->disabled & FF_PACKAGES_FLAG_PKG_BIT))
9-
result->pkg = ffPackagesGetNumElements(FASTFETCH_TARGET_DIR_ROOT "/var/db/pkg", DT_DIR);
9+
result->pkg = ffPackagesGetNumElements(FASTFETCH_TARGET_DIR_ROOT "/var/db/pkg", true);
1010
#elif __NetBSD__
1111
if (!(options->disabled & FF_PACKAGES_FLAG_PKGSRC_BIT))
12-
result->pkgsrc = ffPackagesGetNumElements(FASTFETCH_TARGET_DIR_ROOT "/usr/pkg/pkgdb", DT_DIR);
12+
result->pkgsrc = ffPackagesGetNumElements(FASTFETCH_TARGET_DIR_ROOT "/usr/pkg/pkgdb", true);
1313
#endif
1414
}

src/detection/packages/packages_sunos.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,5 +14,5 @@ void ffDetectPackagesImpl(FFPackagesResult* result, FFPackagesOptions* options)
1414
}
1515
}
1616
if (!(options->disabled & FF_PACKAGES_FLAG_PKGSRC_BIT))
17-
result->pkgsrc = ffPackagesGetNumElements(FASTFETCH_TARGET_DIR_ROOT "/usr/pkg/pkgdb", DT_DIR);
17+
result->pkgsrc = ffPackagesGetNumElements(FASTFETCH_TARGET_DIR_ROOT "/usr/pkg/pkgdb", true);
1818
}

0 commit comments

Comments
 (0)