From 7d381d8d19131e93a4b2d38d951be362b95a9fc9 Mon Sep 17 00:00:00 2001 From: stsdc <6031763+stsdc@users.noreply.github.com> Date: Fri, 9 Jan 2026 22:36:27 +0100 Subject: [PATCH 1/7] Remove nVidia support when building on aarch64 Alpine --- README.md | 2 +- meson.build | 16 +++++++++++++--- meson_options.txt | 3 ++- src/Resources/GPU/GPUNvidia.vala | 2 ++ 4 files changed, 18 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index d872decbf..a7c07ff5a 100644 --- a/README.md +++ b/README.md @@ -58,7 +58,7 @@ sudo apt install build-essential cmake sassc valac libgtk-3-dev libgee-0.8-dev l 2. To build with the wingpanel indicator: ```bash - meson setup -Dindicator-wingpanel=enabled build + meson setup -Dindicator-wingpanel=enabled -Daarch64=disabled build ``` Alternatively, to build without the wingpanel indicator: ```bash diff --git a/meson.build b/meson.build index 1d1f7f0d1..170ad8eeb 100644 --- a/meson.build +++ b/meson.build @@ -14,7 +14,13 @@ vapidir = meson.current_source_dir() / 'vapi/' add_global_arguments('-DGETTEXT_PACKAGE="@0@"'.format(meson.project_name()), language: 'c') -add_project_arguments(['--vapidir', vapidir], language: 'vala') +vala_flags = ['--vapidir', vapidir] + +if get_option('aarch64').enabled() + vala_flags += ['--define', 'AARCH64'] +endif + +add_project_arguments(vala_flags, language: 'vala') # subprojects should be skipped: https://mesonbuild.com/Release-notes-for-0-58-0.html#skip-subprojects-installation # needs meson 0.58.0 @@ -48,10 +54,14 @@ app_dependencies = [ meson.get_compiler('c').find_library('pci'), meson.get_compiler('vala').find_library('pci', dirs: vapidir), - meson.get_compiler('c').find_library('XNVCtrl'), - meson.get_compiler('vala').find_library('libxnvctrl', dirs: vapidir), + # Disable nvidia libs on aarch64 builds + meson.get_compiler('c').find_library('XNVCtrl', required: get_option('aarch64').disabled()), + meson.get_compiler('vala').find_library('libxnvctrl', dirs: vapidir, required: get_option('aarch64').disabled()), ] + + + config_data = configuration_data() config_data.set('GETTEXT_PACKAGE', meson.project_name()) diff --git a/meson_options.txt b/meson_options.txt index d0fedb3b0..0411f4259 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -1 +1,2 @@ -option('indicator-wingpanel', type : 'feature', value : 'disabled', description : 'Enables the Indicator for Wingpanel.') \ No newline at end of file +option('indicator-wingpanel', type : 'feature', value : 'disabled', description : 'Enables the Indicator for Wingpanel.') +option('aarch64', type : 'feature', value : 'disabled', description : 'Build for aarch64 architecture.') \ No newline at end of file diff --git a/src/Resources/GPU/GPUNvidia.vala b/src/Resources/GPU/GPUNvidia.vala index 6515afc71..66d93b41f 100644 --- a/src/Resources/GPU/GPUNvidia.vala +++ b/src/Resources/GPU/GPUNvidia.vala @@ -64,6 +64,7 @@ public class Monitor.GPUNvidia : IGPU, Object { } private void update_nv_resources () { + #if !AARCH64 nvidia_resources_temperature = NVCtrl.XNVCTRLQueryAttribute ( nvidia_display, 0, @@ -119,6 +120,7 @@ public class Monitor.GPUNvidia : IGPU, Object { nvidia_fb_percentage = int.parse (((string) nvidia_used).split_set ("=,")[3]); debug ("USED_GRAPHICS: %d%\n", nvidia_percentage); debug ("USED_FB_MEMORY: %d%\n", nvidia_fb_percentage); + #endif if (!nvidia_resources_used) { warning ("Could not query NV_CTRL_STRING_GPU_UTILIZATION attribute!\n"); From 609336894809fdf293cdcefe8963b5277b35dd8c Mon Sep 17 00:00:00 2001 From: stsdc <6031763+stsdc@users.noreply.github.com> Date: Sun, 18 Jan 2026 21:12:39 +0100 Subject: [PATCH 2/7] Rename option to "nvidia support" --- meson.build | 8 ++++---- meson_options.txt | 2 +- src/Resources/GPU/GPUNvidia.vala | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/meson.build b/meson.build index 170ad8eeb..0e3bdbc57 100644 --- a/meson.build +++ b/meson.build @@ -16,8 +16,8 @@ add_global_arguments('-DGETTEXT_PACKAGE="@0@"'.format(meson.project_name()), lan vala_flags = ['--vapidir', vapidir] -if get_option('aarch64').enabled() - vala_flags += ['--define', 'AARCH64'] +if get_option('nvidia').enabled() + vala_flags += ['--define', 'NVIDIA_SUPPORT'] endif add_project_arguments(vala_flags, language: 'vala') @@ -55,8 +55,8 @@ app_dependencies = [ meson.get_compiler('vala').find_library('pci', dirs: vapidir), # Disable nvidia libs on aarch64 builds - meson.get_compiler('c').find_library('XNVCtrl', required: get_option('aarch64').disabled()), - meson.get_compiler('vala').find_library('libxnvctrl', dirs: vapidir, required: get_option('aarch64').disabled()), + meson.get_compiler('c').find_library('XNVCtrl', required: get_option('nvidia').enabled()), + meson.get_compiler('vala').find_library('libxnvctrl', dirs: vapidir, required: get_option('nvidia').enabled()), ] diff --git a/meson_options.txt b/meson_options.txt index 0411f4259..6dc700aa8 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -1,2 +1,2 @@ option('indicator-wingpanel', type : 'feature', value : 'disabled', description : 'Enables the Indicator for Wingpanel.') -option('aarch64', type : 'feature', value : 'disabled', description : 'Build for aarch64 architecture.') \ No newline at end of file +option('nvidia', type : 'feature', value : 'enabled', description : 'Build with NVIDIA support.') \ No newline at end of file diff --git a/src/Resources/GPU/GPUNvidia.vala b/src/Resources/GPU/GPUNvidia.vala index 66d93b41f..499847106 100644 --- a/src/Resources/GPU/GPUNvidia.vala +++ b/src/Resources/GPU/GPUNvidia.vala @@ -64,7 +64,7 @@ public class Monitor.GPUNvidia : IGPU, Object { } private void update_nv_resources () { - #if !AARCH64 + #if NVIDIA_SUPPORT nvidia_resources_temperature = NVCtrl.XNVCTRLQueryAttribute ( nvidia_display, 0, From 9ecd619a1910a24c31974d62e1bde19f6072b826 Mon Sep 17 00:00:00 2001 From: stsdc <6031763+stsdc@users.noreply.github.com> Date: Sun, 18 Jan 2026 21:24:45 +0100 Subject: [PATCH 3/7] Update readme --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index a7c07ff5a..d872decbf 100644 --- a/README.md +++ b/README.md @@ -58,7 +58,7 @@ sudo apt install build-essential cmake sassc valac libgtk-3-dev libgee-0.8-dev l 2. To build with the wingpanel indicator: ```bash - meson setup -Dindicator-wingpanel=enabled -Daarch64=disabled build + meson setup -Dindicator-wingpanel=enabled build ``` Alternatively, to build without the wingpanel indicator: ```bash From 9863fd421bcdabe4f0478e1bea61ad9ace89947f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stanis=C5=82aw?= <6031763+stsdc@users.noreply.github.com> Date: Mon, 19 Jan 2026 11:00:07 +0100 Subject: [PATCH 4/7] Update src/Resources/GPU/GPUNvidia.vala Co-authored-by: Ryo Nakano --- src/Resources/GPU/GPUNvidia.vala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Resources/GPU/GPUNvidia.vala b/src/Resources/GPU/GPUNvidia.vala index 499847106..6a62e1149 100644 --- a/src/Resources/GPU/GPUNvidia.vala +++ b/src/Resources/GPU/GPUNvidia.vala @@ -64,7 +64,7 @@ public class Monitor.GPUNvidia : IGPU, Object { } private void update_nv_resources () { - #if NVIDIA_SUPPORT +#if NVIDIA_SUPPORT nvidia_resources_temperature = NVCtrl.XNVCTRLQueryAttribute ( nvidia_display, 0, From 5b99a52f9a33f522de9d6867f50ebdf47646ddf6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stanis=C5=82aw?= <6031763+stsdc@users.noreply.github.com> Date: Mon, 19 Jan 2026 11:00:18 +0100 Subject: [PATCH 5/7] Update src/Resources/GPU/GPUNvidia.vala Co-authored-by: Ryo Nakano --- src/Resources/GPU/GPUNvidia.vala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Resources/GPU/GPUNvidia.vala b/src/Resources/GPU/GPUNvidia.vala index 6a62e1149..980a69d27 100644 --- a/src/Resources/GPU/GPUNvidia.vala +++ b/src/Resources/GPU/GPUNvidia.vala @@ -120,7 +120,7 @@ public class Monitor.GPUNvidia : IGPU, Object { nvidia_fb_percentage = int.parse (((string) nvidia_used).split_set ("=,")[3]); debug ("USED_GRAPHICS: %d%\n", nvidia_percentage); debug ("USED_FB_MEMORY: %d%\n", nvidia_fb_percentage); - #endif +#endif if (!nvidia_resources_used) { warning ("Could not query NV_CTRL_STRING_GPU_UTILIZATION attribute!\n"); From 0209927c5cfbe49fbdd3feda6a277312f2a335e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stanis=C5=82aw?= <6031763+stsdc@users.noreply.github.com> Date: Mon, 19 Jan 2026 20:14:49 +0100 Subject: [PATCH 6/7] Fix comment; remove newlines --- meson.build | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/meson.build b/meson.build index 0e3bdbc57..8ad023305 100644 --- a/meson.build +++ b/meson.build @@ -54,14 +54,11 @@ app_dependencies = [ meson.get_compiler('c').find_library('pci'), meson.get_compiler('vala').find_library('pci', dirs: vapidir), - # Disable nvidia libs on aarch64 builds + # Disable nvidia libs. Useful for Alpine which uses musl, instead of glibc meson.get_compiler('c').find_library('XNVCtrl', required: get_option('nvidia').enabled()), meson.get_compiler('vala').find_library('libxnvctrl', dirs: vapidir, required: get_option('nvidia').enabled()), ] - - - config_data = configuration_data() config_data.set('GETTEXT_PACKAGE', meson.project_name()) From 48a55acd9ce692c9cd694142cde37cc81c119abb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stanis=C5=82aw?= <6031763+stsdc@users.noreply.github.com> Date: Thu, 22 Jan 2026 14:13:30 +0100 Subject: [PATCH 7/7] Comment update --- meson.build | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/meson.build b/meson.build index 8ad023305..b7f25bb03 100644 --- a/meson.build +++ b/meson.build @@ -54,7 +54,8 @@ app_dependencies = [ meson.get_compiler('c').find_library('pci'), meson.get_compiler('vala').find_library('pci', dirs: vapidir), - # Disable nvidia libs. Useful for Alpine which uses musl, instead of glibc + # Allow building without nvidia libraries because they're not packaged or does not run + # on some distros due to incompatibility with muslc. Also they're not needed on ARM architecture meson.get_compiler('c').find_library('XNVCtrl', required: get_option('nvidia').enabled()), meson.get_compiler('vala').find_library('libxnvctrl', dirs: vapidir, required: get_option('nvidia').enabled()), ]