From: Michael Tremer Date: Tue, 18 Oct 2022 18:44:50 +0000 (+0000) Subject: distro: Add a function that creates the tag X-Git-Tag: 0.9.28~246 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=c2ffd31982ea483dc07d965250a5a9481d76cccc;p=pakfire.git distro: Add a function that creates the tag Signed-off-by: Michael Tremer --- diff --git a/src/libpakfire/dist.c b/src/libpakfire/dist.c index b241617b8..b93e88607 100644 --- a/src/libpakfire/dist.c +++ b/src/libpakfire/dist.c @@ -85,11 +85,9 @@ static int pakfire_makefile_set_defaults(struct pakfire* pakfire, pakfire_parser_set(parser, NULL, "DISTRO_RELEASE", version_id, 0); // Set DISTRO_DISTTAG - if (id && version_id) { - pakfire_string_format(buffer, "%s%s", id, version_id); - - pakfire_parser_set(parser, NULL, "DISTRO_DISTTAG", buffer, 0); - } + const char* tag = pakfire_get_distro_tag(pakfire); + if (tag) + pakfire_parser_set(parser, NULL, "DISTRO_DISTTAG", tag, 0); // Set DISTRO_VENDOR const char* vendor = pakfire_get_distro_vendor(pakfire); diff --git a/src/libpakfire/include/pakfire/pakfire.h b/src/libpakfire/include/pakfire/pakfire.h index 5fdd850da..3147b95bb 100644 --- a/src/libpakfire/include/pakfire/pakfire.h +++ b/src/libpakfire/include/pakfire/pakfire.h @@ -151,6 +151,7 @@ const char* pakfire_get_distro_id(struct pakfire* pakfire); const char* pakfire_get_distro_vendor(struct pakfire* pakfire); const char* pakfire_get_distro_version(struct pakfire* pakfire); const char* pakfire_get_distro_version_id(struct pakfire* pakfire); +const char* pakfire_get_distro_tag(struct pakfire* pakfire); const char* pakfire_get_keystore_path(struct pakfire* pakfire); diff --git a/src/libpakfire/pakfire.c b/src/libpakfire/pakfire.c index 3555a8c32..e472396c4 100644 --- a/src/libpakfire/pakfire.c +++ b/src/libpakfire/pakfire.c @@ -115,6 +115,7 @@ struct pakfire { char version[64]; char version_codename[32]; char version_id[8]; + char tag[40]; } distro; // GPG Context @@ -485,6 +486,30 @@ const char* pakfire_get_distro_version_id(struct pakfire* pakfire) { return NULL; } +const char* pakfire_get_distro_tag(struct pakfire* pakfire) { + int r; + + if (*pakfire->distro.tag) + return pakfire->distro.tag; + + const char* id = pakfire_get_distro_id(pakfire); + const char* version_id = pakfire_get_distro_version_id(pakfire); + + // Break if the configuration is incomplete + if (!id || !version_id) { + errno = EINVAL; + return NULL; + } + + // Format string + r = pakfire_string_format(pakfire->distro.tag, "%s%s", id, version_id); + if (r) + return NULL; + + // Return the tag + return pakfire->distro.tag; +} + static int pakfire_config_import_distro(struct pakfire* pakfire) { // Nothing to do if there is no distro section if (!pakfire_config_has_section(pakfire->config, "distro"))