From: Michael Tremer Date: Tue, 31 Oct 2023 17:39:05 +0000 (+0000) Subject: cli: builder: Check if the requested arch is supported X-Git-Tag: 0.9.30~1366 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5301d9e19c56662c0ec721ba7ae98aead15d5a53;p=pakfire.git cli: builder: Check if the requested arch is supported Signed-off-by: Michael Tremer --- diff --git a/src/cli/pakfire-builder.c b/src/cli/pakfire-builder.c index 5c30678d2..bc5675429 100644 --- a/src/cli/pakfire-builder.c +++ b/src/cli/pakfire-builder.c @@ -25,6 +25,7 @@ #include #include +#include #include #include @@ -99,7 +100,10 @@ static error_t parse(int key, char* arg, struct argp_state* state, void* data) { switch (key) { case OPT_ARCH: - // XXX Check if the architecture is supported + // Check if the architecture is supported + if (!pakfire_arch_is_supported_by_host(arg)) + argp_failure(state, EXIT_FAILURE, 0, "Unsupported architecture: %s", arg); + config->arch = arg; break; diff --git a/src/libpakfire/arch.c b/src/libpakfire/arch.c index 4c714277b..03b1cf9ec 100644 --- a/src/libpakfire/arch.c +++ b/src/libpakfire/arch.c @@ -223,7 +223,7 @@ static const char* pakfire_arch_is_natively_supported_by_host(const char* name) return NULL; } -const char* pakfire_arch_is_supported_by_host(const char* name) { +PAKFIRE_EXPORT const char* pakfire_arch_is_supported_by_host(const char* name) { const char* arch = NULL; // Check if we natively support this architecture diff --git a/src/libpakfire/include/pakfire/arch.h b/src/libpakfire/include/pakfire/arch.h index 0fa67787b..ac7649cc0 100644 --- a/src/libpakfire/include/pakfire/arch.h +++ b/src/libpakfire/include/pakfire/arch.h @@ -25,6 +25,8 @@ int pakfire_arch_supported(const char* name); const char** pakfire_supported_arches(void); const char* pakfire_arch_native(void); +const char* pakfire_arch_is_supported_by_host(const char* name); + #ifdef PAKFIRE_PRIVATE unsigned long pakfire_arch_personality(const char* name); @@ -40,7 +42,6 @@ int __pakfire_arch_buildtarget(char* buffer, size_t length, const char* arch, co const char* pakfire_arch_platform(const char* name); int pakfire_arch_is_compatible(const char* name, const char* compatible_arch); -const char* pakfire_arch_is_supported_by_host(const char* name); char* pakfire_arch_find_interpreter(const char* name); #endif diff --git a/src/libpakfire/libpakfire.sym b/src/libpakfire/libpakfire.sym index 57ffb8295..fd416cd10 100644 --- a/src/libpakfire/libpakfire.sym +++ b/src/libpakfire/libpakfire.sym @@ -59,6 +59,7 @@ global: pakfire_arch_native; pakfire_arch_supported; pakfire_supported_arches; + pakfire_arch_is_supported_by_host; # archive pakfire_archive_extract;