Skip to content

Commit ff8e0e7

Browse files
authored
Merge pull request #1189 from fastfetch-cli/dev
Release v2.21.3
2 parents c0774b8 + 63971fd commit ff8e0e7

File tree

8 files changed

+73
-61
lines changed

8 files changed

+73
-61
lines changed

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1+
# 2.21.3
2+
3+
Bugfixes:
4+
* Fix bad Intel Arc GPU name detection, which was supposed to be fixed in the last version but the change was reverted accidentally (#1177, GPU, Linux)
5+
* Fix arm32 CPU name detection no longer work. Regression of 2.21.2 (CPU, Linux)
6+
17
# 2.21.2
28

39
Features:

CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
cmake_minimum_required(VERSION 3.12.0) # target_link_libraries with OBJECT libs & project homepage url
22

33
project(fastfetch
4-
VERSION 2.21.2
4+
VERSION 2.21.3
55
LANGUAGES C
66
DESCRIPTION "Fast neofetch-like system information tool"
77
HOMEPAGE_URL "https://github.com/fastfetch-cli/fastfetch"

debian/changelog

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1+
fastfetch (2.21.2) jammy; urgency=medium
2+
3+
* Update to 2.21.2
4+
5+
-- Carter Li <[email protected]> Wed, 14 Aug 2024 14:42:07 +0800
6+
17
fastfetch (2.21.1) jammy; urgency=medium
28

39
* Update to 2.21.1

debian/files

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
fastfetch_2.21.1_source.buildinfo universe/utils optional
1+
fastfetch_2.21.2_source.buildinfo universe/utils optional

src/detection/cpu/cpu_arm.h

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ static const char* hwImplId2Vendor(uint32_t implId)
2828
case 0x6D: return "Microsoft";
2929
case 0x70: return "Phytium";
3030
case 0xc0: return "Ampere";
31-
default: return 0;
31+
default: return "Unknown";
3232
}
3333
}
3434

@@ -106,7 +106,7 @@ static const char* armPartId2name(uint32_t partId)
106106
case 0xd80: return "Cortex-A520";
107107
case 0xd81: return "Cortex-A720";
108108
case 0xd82: return "Cortex-X4";
109-
default: return "Unknown";
109+
default: return NULL;
110110
}
111111
}
112112

@@ -117,7 +117,7 @@ static const char* brcmPartId2name(uint32_t partId)
117117
case 0x0f: return "Brahma-B15";
118118
case 0x100: return "Brahma-B53";
119119
case 0x516: return "ThunderX2";
120-
default: return "Unknown";
120+
default: return NULL;
121121
}
122122
}
123123

@@ -127,7 +127,7 @@ static const char* decPartId2name(uint32_t partId)
127127
{
128128
case 0xa10: return "SA110";
129129
case 0xa11: return "SA1100";
130-
default: return "Unknown";
130+
default: return NULL;
131131
}
132132
}
133133

@@ -148,7 +148,7 @@ static const char* caviumPartId2name(uint32_t partId)
148148
case 0x0b5: return "OcteonTX2-95XXMM";
149149
case 0x0b6: return "OcteonTX2-95XXO";
150150
case 0x0b8: return "ThunderX3-T110";
151-
default: return "Unknown";
151+
default: return NULL;
152152
}
153153
}
154154

@@ -157,7 +157,7 @@ static const char* apmPartId2name(uint32_t partId)
157157
switch (partId)
158158
{
159159
case 0x000: return "X-Gene";
160-
default: return "Unknown";
160+
default: return NULL;
161161
}
162162
}
163163

@@ -181,19 +181,19 @@ static const char* qcomPartId2name(uint32_t partId)
181181
case 0x805: return "Kryo-4XX-Silver";
182182
case 0xc00: return "Falkor";
183183
case 0xc01: return "Saphira";
184-
default: return "Unknown";
184+
default: return NULL;
185185
}
186186
}
187187

188188
static const char* samsungPartId2name(uint32_t partId)
189189
{
190190
switch (partId)
191191
{
192-
case 0x001: return "exynos-m1";
193-
case 0x002: return "exynos-m3";
194-
case 0x003: return "exynos-m4";
195-
case 0x004: return "exynos-m5";
196-
default: return "Unknown";
192+
case 0x001: return "Exynos-M1";
193+
case 0x002: return "Exynos-M3";
194+
case 0x003: return "Exynos-M4";
195+
case 0x004: return "Exynos-M5";
196+
default: return NULL;
197197
}
198198
}
199199

@@ -204,7 +204,7 @@ static const char* nvidiaPartId2name(uint32_t partId)
204204
case 0x000: return "Denver";
205205
case 0x003: return "Denver 2";
206206
case 0x004: return "Carmel";
207-
default: return "Unknown";
207+
default: return NULL;
208208
}
209209
}
210210

@@ -215,7 +215,7 @@ static const char* marvellPartId2name(uint32_t partId)
215215
case 0x131: return "Feroceon-88FR131";
216216
case 0x581: return "PJ4/PJ4b";
217217
case 0x584: return "PJ4B-MP";
218-
default: return "Unknown";
218+
default: return NULL;
219219
}
220220
}
221221

@@ -259,7 +259,7 @@ static const char* applePartId2name(uint32_t partId)
259259
case 0x037: return "Everest-A16";
260260
case 0x038: return "Blizzard-M2-Max";
261261
case 0x039: return "Avalanche-M2-Max";
262-
default: return "Unknown";
262+
default: return NULL;
263263
}
264264
}
265265

@@ -269,7 +269,7 @@ static const char* faradayPartId2name(uint32_t partId)
269269
{
270270
case 0x526: return "FA526";
271271
case 0x626: return "FA626";
272-
default: return "Unknown";
272+
default: return NULL;
273273
}
274274
}
275275

@@ -298,7 +298,7 @@ static const char* intelPartId2name(uint32_t partId)
298298
case 0x689: return "PXA31x";
299299
case 0xb11: return "SA1110";
300300
case 0xc12: return "IPX1200";
301-
default: return "Unknown";
301+
default: return NULL;
302302
}
303303
}
304304

@@ -307,7 +307,7 @@ static const char* fujitsuPartId2name(uint32_t partId)
307307
switch (partId)
308308
{
309309
case 0x001: return "A64FX";
310-
default: return "Unknown";
310+
default: return NULL;
311311
}
312312
}
313313

@@ -319,7 +319,7 @@ static const char* hisiPartId2name(uint32_t partId)
319319
case 0xd02: return "TaiShan-v120"; /* used in Kirin 990A and 9000S SoCs */
320320
case 0xd40: return "Cortex-A76"; /* HiSilicon uses this ID though advertises A76 */
321321
case 0xd41: return "Cortex-A77"; /* HiSilicon uses this ID though advertises A77 */
322-
default: return "Unknown";
322+
default: return NULL;
323323
}
324324
}
325325

@@ -329,7 +329,7 @@ static const char* amperePartId2name(uint32_t partId)
329329
{
330330
case 0xac3: return "Ampere-1";
331331
case 0xac4: return "Ampere-1a";
332-
default: return "Unknown";
332+
default: return NULL;
333333
}
334334
}
335335

@@ -344,7 +344,7 @@ static const char* ftPartId2name(uint32_t partId)
344344
case 0x663: return "FTC663";
345345
case 0x664: return "FTC664";
346346
case 0x862: return "FTC862";
347-
default: return "Unknown";
347+
default: return NULL;
348348
}
349349
}
350350

@@ -353,6 +353,6 @@ static const char* msPartId2name(uint32_t partId)
353353
switch (partId)
354354
{
355355
case 0xd49: return "Azure-Cobalt-100";
356-
default: return "Unknown";
356+
default: return NULL;
357357
}
358358
}

src/detection/cpu/cpu_linux.c

Lines changed: 36 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -74,52 +74,59 @@ static void detectAndroid(FFCPUResult* cpu)
7474
}
7575
#endif
7676

77-
#ifdef __aarch64__
77+
#if __arm__ || __aarch64__
7878
#include "cpu_arm.h"
7979

8080
static void detectArmName(FILE* cpuinfo, FFCPUResult* cpu, uint32_t implId)
8181
{
8282
FF_AUTO_FREE char* line = NULL;
8383
rewind(cpuinfo);
8484
size_t len = 0;
85-
const char* lastName = NULL;
85+
uint32_t lastPartId = UINT32_MAX;
8686
uint32_t num = 0;
8787
while(getline(&line, &len, cpuinfo) != -1)
8888
{
8989
if (!ffStrStartsWith(line, "CPU part\t: ")) continue;
9090
uint32_t partId = (uint32_t) strtoul(line + strlen("CPU part\t: "), NULL, 16);
9191
const char* name = NULL;
92-
switch (implId)
92+
if (partId > 0) // Linux reports 0 for unknown CPUs
9393
{
94-
case 0x41: name = armPartId2name(partId); break;
95-
case 0x42: name = brcmPartId2name(partId); break;
96-
case 0x43: name = caviumPartId2name(partId); break;
97-
case 0x44: name = decPartId2name(partId); break;
98-
case 0x46: name = fujitsuPartId2name(partId); break;
99-
case 0x48: name = hisiPartId2name(partId); break;
100-
case 0x4e: name = nvidiaPartId2name(partId); break;
101-
case 0x50: name = apmPartId2name(partId); break;
102-
case 0x51: name = qcomPartId2name(partId); break;
103-
case 0x53: name = samsungPartId2name(partId); break;
104-
case 0x56: name = marvellPartId2name(partId); break;
105-
case 0x61: name = applePartId2name(partId); break;
106-
case 0x66: name = faradayPartId2name(partId); break;
107-
case 0x69: name = intelPartId2name(partId); break;
108-
case 0x6d: name = msPartId2name(partId); break;
109-
case 0x70: name = ftPartId2name(partId); break;
110-
case 0xc0: name = amperePartId2name(partId); break;
111-
default: name = "Unknown"; break;
94+
switch (implId)
95+
{
96+
case 0x41: name = armPartId2name(partId); break;
97+
case 0x42: name = brcmPartId2name(partId); break;
98+
case 0x43: name = caviumPartId2name(partId); break;
99+
case 0x44: name = decPartId2name(partId); break;
100+
case 0x46: name = fujitsuPartId2name(partId); break;
101+
case 0x48: name = hisiPartId2name(partId); break;
102+
case 0x4e: name = nvidiaPartId2name(partId); break;
103+
case 0x50: name = apmPartId2name(partId); break;
104+
case 0x51: name = qcomPartId2name(partId); break;
105+
case 0x53: name = samsungPartId2name(partId); break;
106+
case 0x56: name = marvellPartId2name(partId); break;
107+
case 0x61: name = applePartId2name(partId); break;
108+
case 0x66: name = faradayPartId2name(partId); break;
109+
case 0x69: name = intelPartId2name(partId); break;
110+
case 0x6d: name = msPartId2name(partId); break;
111+
case 0x70: name = ftPartId2name(partId); break;
112+
case 0xc0: name = amperePartId2name(partId); break;
113+
}
112114
}
113-
if (lastName != name)
115+
if (lastPartId != partId)
114116
{
115-
if (lastName)
117+
if (lastPartId != UINT32_MAX)
116118
{
117119
if (num > 1)
118120
ffStrbufAppendF(&cpu->name, "*%u", num);
119121
ffStrbufAppendS(&cpu->name, " + ");
120122
}
121-
ffStrbufAppendS(&cpu->name, name);
122-
lastName = name;
123+
if (name)
124+
ffStrbufAppendS(&cpu->name, name);
125+
else if (partId)
126+
ffStrbufAppendF(&cpu->name, "%s-%X", cpu->vendor.chars, partId);
127+
else
128+
ffStrbufAppend(&cpu->name, &cpu->vendor);
129+
lastPartId = partId;
123130
num = 1;
124131
}
125132
else
@@ -149,7 +156,7 @@ static const char* parseCpuInfo(FILE* cpuinfo, FFCPUResult* cpu, FFstrbuf* physi
149156
ffParsePropLine(line, "isa :", cpuIsa) ||
150157
ffParsePropLine(line, "uarch :", cpuUarch) ||
151158

152-
#if __aarch64__
159+
#if __arm__ || __aarch64__
153160
(cpu->vendor.length == 0 && ffParsePropLine(line, "CPU implementer :", cpuImplementer)) ||
154161
#endif
155162
#if __ANDROID__
@@ -351,20 +358,16 @@ const char* ffDetectCPUImpl(const FFCPUOptions* options, FFCPUResult* cpu)
351358
ffStrbufAppend(&cpu->name, &cpuIsa);
352359
}
353360

354-
#ifdef __aarch64__
361+
#if __arm__ || __aarch64__
355362
uint32_t cpuImplementer = (uint32_t) strtoul(cpuImplementerStr.chars, NULL, 16);
356363
ffStrbufSetStatic(&cpu->vendor, hwImplId2Vendor(cpuImplementer));
357-
#endif
358364

359-
#ifdef __ANDROID__
365+
#if __ANDROID__
360366
detectAndroid(cpu);
361-
#endif
362-
363-
#if defined(__linux__) && defined(__aarch64__) && !defined(__ANDROID__)
367+
#elif __aarch64__
364368
detectAsahi(cpu);
365369
#endif
366370

367-
#ifdef __aarch64__
368371
if (cpu->name.length == 0)
369372
detectArmName(cpuinfo, cpu, cpuImplementer);
370373
#endif

src/detection/gpu/gpu_linux.c

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -204,9 +204,6 @@ static void pciDetectIntelSpecific(FFGPUResult* gpu, FFstrbuf* pciDir, FFstrbuf*
204204
// Works for Intel GPUs
205205
// https://patchwork.kernel.org/project/intel-gfx/patch/[email protected]/
206206

207-
if (ffStrbufStartsWithS(&gpu->name, "Intel "))
208-
ffStrbufSubstrAfter(&gpu->name, (uint32_t) strlen("Intel "));
209-
210207
if ((coreName->chars[0] == 'D' || coreName->chars[0] == 'S') &&
211208
coreName->chars[1] == 'G' &&
212209
ffCharIsDigit(coreName->chars[2]))

src/modules/gpu/gpu.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ static void printGPUResult(FFGPUOptions* options, uint8_t index, const FFGPUResu
2626
{
2727
ffPrintLogoAndKey(FF_GPU_MODULE_NAME, index, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT);
2828

29-
FF_STRBUF_AUTO_DESTROY output = ffStrbufCreateA(gpu->vendor.length + 1 + gpu->name.length);
29+
FF_STRBUF_AUTO_DESTROY output = ffStrbufCreate();
3030

3131
if(gpu->vendor.length > 0 && !ffStrbufStartsWith(&gpu->name, &gpu->vendor))
3232
{

0 commit comments

Comments
 (0)