From: Michael Tremer Date: Tue, 1 Jul 2025 08:07:16 +0000 (+0000) Subject: builder: Submit our architecture when opening the control socket X-Git-Url: http://git.ipfire.org/gitweb/gitweb.cgi?a=commitdiff_plain;h=2868666199517ef2aa8542d826f0f734c39e11d1;p=pakfire.git builder: Submit our architecture when opening the control socket Signed-off-by: Michael Tremer --- diff --git a/src/pakfire/builder.c b/src/pakfire/builder.c index 7a5fd1da..bbb98e74 100644 --- a/src/pakfire/builder.c +++ b/src/pakfire/builder.c @@ -23,6 +23,7 @@ // systemd #include +#include #include #include #include @@ -60,6 +61,9 @@ struct pakfire_builder { sd_event_source* reconnect_timer; uint64_t reconnect_holdoff; + // Arch + const char* arch; + // Jobs pakfire_job* jobs[MAX_JOBS]; unsigned int running_jobs; @@ -105,6 +109,11 @@ int pakfire_builder_create(pakfire_builder** builder, // Store a reference to the client self->client = pakfire_client_ref(client); + // Determine the builder's architecture + r = pakfire_arch_native(&self->arch); + if (r < 0) + goto ERROR; + // Return the pointer *builder = self; return 0; @@ -128,6 +137,12 @@ pakfire_builder* pakfire_builder_unref(pakfire_builder* self) { return NULL; } +// Arch + +const char* pakfire_builder_get_arch(pakfire_builder* self) { + return self->arch; +} + int pakfire_builder_connect(pakfire_builder* self) { // Bail if we are already connected if (self->control) @@ -492,8 +507,6 @@ int pakfire_builder_terminate_jobs(pakfire_builder* self) { Called after a job has exited */ int pakfire_builder_job_finished(pakfire_builder* self, pakfire_job* job) { - int r; - DEBUG(self->ctx, "Removing job %p\n", job); for (unsigned int i = 0; i < MAX_JOBS; i++) { diff --git a/src/pakfire/builder.h b/src/pakfire/builder.h index 45e239d1..bbe2743d 100644 --- a/src/pakfire/builder.h +++ b/src/pakfire/builder.h @@ -37,6 +37,9 @@ int pakfire_builder_create(pakfire_builder** builder, pakfire_builder* pakfire_builder_ref(pakfire_builder* self); pakfire_builder* pakfire_builder_unref(pakfire_builder* self); +// Arch +const char* pakfire_builder_get_arch(pakfire_builder* self); + // Connect int pakfire_builder_connect(pakfire_builder* self); diff --git a/src/pakfire/client.c b/src/pakfire/client.c index f4c7aca1..97716bbe 100644 --- a/src/pakfire/client.c +++ b/src/pakfire/client.c @@ -804,6 +804,7 @@ ERROR: int pakfire_client_builder_connect(pakfire_client* self, pakfire_builder* builder) { pakfire_xfer* xfer = NULL; + const char* arch = NULL; int r; // Create a new xfer @@ -811,6 +812,16 @@ int pakfire_client_builder_connect(pakfire_client* self, pakfire_builder* builde if (r < 0) goto ERROR; + // Fetch the builder's architecture + arch = pakfire_builder_get_arch(builder); + + // Send the architecture + if (arch) { + r = pakfire_xfer_add_query(xfer, "arch", "%s", arch); + if (r < 0) + goto ERROR; + } + // Enable authentication r = pakfire_client_xfer_auth(self, xfer); if (r < 0)