commit: 2dcaff24c55fa7cfa1c4ca70e41ea0cc01afdaa7 Author: Mario Haustein <mario.haustein <AT> hrz <DOT> tu-chemnitz <DOT> de> AuthorDate: Mon Dec 8 20:21:11 2025 +0000 Commit: Sam James <sam <AT> gentoo <DOT> org> CommitDate: Wed Dec 24 17:16:22 2025 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2dcaff24
sci-astronomy/siril: add 1.4.0 Signed-off-by: Mario Haustein <mario.haustein <AT> hrz.tu-chemnitz.de> Part-of: https://github.com/gentoo/gentoo/pull/44960 Signed-off-by: Sam James <sam <AT> gentoo.org> sci-astronomy/siril/Manifest | 1 + sci-astronomy/siril/files/siril-1.4-docfiles.patch | 44 ++ .../siril/files/siril-1.4.0-libcurl.patch | 503 +++++++++++++++++++++ .../siril/files/siril-1.4.0-libgit2.patch | 33 ++ .../siril/files/siril-1.4.0-libjpeg.patch | 45 ++ .../siril/files/siril-9999-docfiles.patch | 2 - sci-astronomy/siril/siril-1.4.0.ebuild | 110 +++++ 7 files changed, 736 insertions(+), 2 deletions(-) diff --git a/sci-astronomy/siril/Manifest b/sci-astronomy/siril/Manifest index 73e8dcf136bb..26a6b7eaac19 100644 --- a/sci-astronomy/siril/Manifest +++ b/sci-astronomy/siril/Manifest @@ -1 +1,2 @@ DIST siril-1.2.6.tar.bz2 4621526 BLAKE2B b0d2b69ac601a28f033c2b02eda8a418aba1bdbacb9f1abe52b69a4a133808e3c176274da5fb7e025aff558243e9a187d77dbecad302d4b437e4fc3b33483934 SHA512 bf1503a9759e08c2767dc267860d129be7ce345695db0c89a4bf199775c084f77e10f2675e9491074f21022dcbdd3fdb161be5d541405c18c25a758226703009 +DIST siril-1.4.0.tar.bz2 14754666 BLAKE2B 8893fcaceb4263ade09e3e0e9063750845fbebb53ad9c8aa64b0254e2233ff9936132ea2cdd1f050dd42857418a0278d03013e55a9defb2227a555738011b1c6 SHA512 79655cf6110793452efac30d3be2b620e5ae4ba4fa53c88855d162f930df3980284dff1c17895f26922f4213be5cfc860bef67bc799f3eece1be87a2a1c1960a diff --git a/sci-astronomy/siril/files/siril-1.4-docfiles.patch b/sci-astronomy/siril/files/siril-1.4-docfiles.patch new file mode 100644 index 000000000000..7767f0924eb9 --- /dev/null +++ b/sci-astronomy/siril/files/siril-1.4-docfiles.patch @@ -0,0 +1,44 @@ +--- a/meson.build ++++ b/meson.build +@@ -709,7 +709,6 @@ subdir('data') + subdir('po') + subdir('python_module') + subdir('scripts') +-subdir('3rdparty_licenses') + + ################################################################################ + # Install misc +@@ -728,12 +727,6 @@ man_files = [ + ] + + install_man(man_files) +-install_data(['AUTHORS', 'LICENSE.md'], +- rename : [ +- 'doc/siril/AUTHORS', +- 'doc/siril/LICENSE.md', +- ], +- install_dir : siril_share) + + + ################################################################################ +--- a/python_module/meson.build ++++ b/python_module/meson.build +@@ -9,16 +9,7 @@ install_data(python_files, + install_dir: siril_datadir + '/python_module' + ) + +-install_data(['README.md'], +- install_dir: siril_share + 'doc/siril/python_module' +-) +- +-# Create the locale directory in doc and install its README.md +-install_data(['locale/README.md'], +- install_dir: siril_share + 'doc/siril/python_module/locale' +-) +- + # Install the entire 'sirilpy' subdirectory (this will handle all .py files in sirilpy/) + install_subdir('sirilpy', + install_dir: siril_datadir + '/python_module' +-) +\ No newline at end of file ++) diff --git a/sci-astronomy/siril/files/siril-1.4.0-libcurl.patch b/sci-astronomy/siril/files/siril-1.4.0-libcurl.patch new file mode 100644 index 000000000000..924270267678 --- /dev/null +++ b/sci-astronomy/siril/files/siril-1.4.0-libcurl.patch @@ -0,0 +1,503 @@ +From 7ea2a86229acd35cb2e67d882ca4670afa9bd8eb Mon Sep 17 00:00:00 2001 +From: Cyril Richard <[email protected]> +Date: Sun, 7 Dec 2025 21:58:36 +0100 +Subject: [PATCH] Closes #1887 and #1888 +Upstream: https://gitlab.com/free-astro/siril/-/issues/1887 +Upstream: https://gitlab.com/free-astro/siril/-/issues/1888 + +(cherry picked from commit c5bcc5ae764813dc1a6d89af08d9d417f1288dda) +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,7 +1,7 @@ + siril-1.4.1 + --/--/-- + **Fixes** +-* Fixes build error when compiled without libgit2, libjpeg (#1886, #1889) ++* Fixes build error when compiled without libgit2, libjpeg and libcurl (#1886, #1887, #1888, #1889) + + siril-1.4.0 + 12/05/25 +--- a/src/core/siril_networking.c ++++ b/src/core/siril_networking.c +@@ -18,12 +18,6 @@ + * along with Siril. If not, see <http://www.gnu.org/licenses/>. + */ + +-#ifdef HAVE_CONFIG_H +-#include <config.h> +-#endif +-#if defined(HAVE_LIBCURL) +-#include <curl/curl.h> +- + #include <string.h> + + #include "core/siril.h" +@@ -35,6 +29,13 @@ + + static gboolean online_status = TRUE; + ++#ifdef HAVE_CONFIG_H ++#include <config.h> ++#endif ++#if defined(HAVE_LIBCURL) ++ ++#include <curl/curl.h> ++ + static size_t cbk_curl(void *buffer, size_t size, size_t nmemb, void *userp) { + size_t realsize = size * nmemb; + struct ucontent *mem = (struct ucontent *) userp; +@@ -193,6 +194,41 @@ gboolean siril_compiled_with_networking() { + + #else + ++// Stub functions when libcurl is not available ++// These return errors but allow the code to compile and link ++ ++gpointer fetch_url_async(gpointer p) { ++ fetch_url_async_data *args = (fetch_url_async_data *) p; ++ g_assert(args->idle_function != NULL); ++ ++ siril_log_color_message(_("Error: Siril was compiled without libcurl support. Network features are unavailable.\n"), "red"); ++ ++ // Clean up and call the idle function with NULL content to signal failure ++ g_free(args->url); ++ args->url = NULL; ++ args->length = 0; ++ args->content = NULL; ++ args->code = 0; ++ ++ siril_add_idle(args->idle_function, args); ++ return NULL; ++} ++ ++char* fetch_url(const gchar *url, gsize *length, int *error, gboolean quiet) { ++ if (!quiet) { ++ siril_log_color_message(_("Error: Siril was compiled without libcurl support. Cannot fetch URL: %s\n"), "red", url); ++ } ++ *error = 1; ++ *length = 0; ++ return NULL; ++} ++ ++int submit_post_request(const char *url, const char *post_data, char **post_response) { ++ siril_log_color_message(_("Error: Siril was compiled without libcurl support. Cannot submit POST request to: %s\n"), "red", url); ++ *post_response = NULL; ++ return 1; ++} ++ + gboolean siril_compiled_with_networking() { + return FALSE; + } +@@ -209,4 +245,4 @@ gboolean set_online_status(gboolean status) { + if (!siril_compiled_with_networking()) + return FALSE; + return online_status; +-} ++} +\ No newline at end of file +--- a/src/core/siril_networking.h ++++ b/src/core/siril_networking.h +@@ -21,12 +21,8 @@ gpointer fetch_url_async(gpointer p); + char *fetch_url(const gchar *url, gsize *length, int *error, gboolean quiet); + int submit_post_request(const char *url, const char *post_data, char **post_response); + +-// HAVE_LIBCURL +-//#endif +- + gboolean siril_compiled_with_networking(); + gboolean is_online(); + gboolean set_online_status(gboolean status); + +-// SIRIL_NETWORKING_H +-#endif ++#endif +\ No newline at end of file +--- a/src/core/siril_update.c ++++ b/src/core/siril_update.c +@@ -21,21 +21,21 @@ + #ifdef HAVE_CONFIG_H + #include <config.h> + #endif +-#if defined(HAVE_LIBCURL) +-#include "yyjson.h" + + #include <string.h> + + #include "core/siril.h" +-#include "core/siril_networking.h" + #include "core/proto.h" +-#include "core/processing.h" + #include "core/siril_log.h" + #include "gui/utils.h" +-#include "gui/message_dialog.h" +-#include "gui/progress_and_log.h" + #include "core/siril_update.h" + ++#if defined(HAVE_LIBCURL) ++#include "yyjson.h" ++#include "core/siril_networking.h" ++#include "core/processing.h" ++#include "gui/message_dialog.h" ++#include "gui/progress_and_log.h" + + #define SIRIL_DOMAIN "https://siril.org/" + #define SIRIL_VERSIONS SIRIL_DOMAIN"siril_versions.json" +@@ -43,6 +43,171 @@ + #define GITLAB_URL "https://gitlab.com/free-astro/siril/raw" + #define BRANCH "master" + #define SIRIL_NOTIFICATIONS "notifications/siril_notifications.json" ++#endif ++ ++// ============================================================================ ++// UTILITY FUNCTIONS - Independent of libcurl ++// These functions work with version numbers and strings, no network required ++// ============================================================================ ++ ++static void remove_alpha(gchar *str, gboolean *is_rc, gboolean *is_beta) { ++ unsigned long i = 0; ++ unsigned long j = 0; ++ char c; ++ ++ if (g_str_has_prefix(str, "beta")) { ++ *is_rc = FALSE; ++ *is_beta = TRUE; ++ } else if (g_str_has_prefix(str, "rc")) { ++ *is_rc = TRUE; ++ *is_beta = FALSE; ++ } else { ++ *is_rc = FALSE; ++ *is_beta = FALSE; ++ } ++ ++ while ((c = str[i++]) != '\0') { ++ if (g_ascii_isdigit(c)) { ++ str[j++] = c; ++ } ++ } ++ str[j] = '\0'; ++} ++ ++/** ++ * Check if the version is a patched version. ++ * patched version are named like that x.y.z.patch where patch only contains digits. ++ * if patch contains alpha char it is because that's a RC or beta version. Not a patched one. ++ * @param version version to be tested ++ * @return 0 if the version is not patched. The version of the patch is returned otherwise. ++ */ ++static guint check_for_patch(gchar *version, gboolean *is_rc, gboolean *is_beta) { ++ remove_alpha(version, is_rc, is_beta); ++ return (g_ascii_strtoull(version, NULL, 10)); ++} ++ ++version_number get_version_number_from_string(const gchar *input) { ++ version_number version = { 0 }; ++ gchar **version_string = NULL; ++ const gchar *string = find_first_numeric(input); ++ if (!string) ++ goto the_end; ++ version_string = g_strsplit_set(string, ".-", -1); ++ version.major_version = g_ascii_strtoull(version_string[0], NULL, 10); ++ if (version_string[1]) ++ version.minor_version = g_ascii_strtoull(version_string[1], NULL, 10); ++ else ++ goto the_end; ++ if (version_string[2]) ++ version.micro_version = g_ascii_strtoull(version_string[2], NULL, 10); ++ else ++ goto the_end; ++ if (version_string[3] == NULL) { ++ version.patched_version = 0; ++ version.rc_version = FALSE; ++ version.beta_version = FALSE; ++ } else { ++ version.patched_version = check_for_patch(version_string[3], &version.rc_version, &version.beta_version); ++ } ++the_end: ++ g_strfreev(version_string); ++ return version; ++} ++ ++version_number get_current_version_number() { ++ return get_version_number_from_string(PACKAGE_VERSION); ++} ++ ++/** ++ * This function compares two version numbers following the pattern x.y.z[-type#] ++ * where type can be beta, rc, or a stable patch number. ++ * Version ordering: beta < rc < stable < stable-patch ++ * Examples: 1.4.0-beta1 < 1.4.0-rc2 < 1.4.0 < 1.4.0-1 ++ * @param v1 First version number to be tested ++ * @param v2 Second version number to be tested ++ * @return -1 if v1 < v2, 1 if v1 > v2 and 0 if v1 is equal to v2 ++ */ ++int compare_version(version_number v1, version_number v2) { ++ if (v1.major_version < v2.major_version) ++ return -1; ++ else if (v1.major_version > v2.major_version) ++ return 1; ++ else { ++ if (v1.minor_version < v2.minor_version) ++ return -1; ++ else if (v1.minor_version > v2.minor_version) ++ return 1; ++ else { ++ if (v1.micro_version < v2.micro_version) ++ return -1; ++ else if (v1.micro_version > v2.micro_version) ++ return 1; ++ else { ++ // Determine version type ++ int v1_is_stable = !v1.rc_version && !v1.beta_version; ++ int v2_is_stable = !v2.rc_version && !v2.beta_version; ++ ++ // Order: beta < rc < stable ++ if (v1.beta_version && !v2.beta_version) return -1; // beta < (rc or stable) ++ if (v2.beta_version && !v1.beta_version) return 1; // (rc or stable) > beta ++ if (v1.rc_version && v2_is_stable) return -1; // rc < stable ++ if (v2.rc_version && v1_is_stable) return 1; // stable > rc ++ ++ // Same type: compare patched_version ++ if (v1.beta_version && v2.beta_version) { ++ // Both beta versions ++ if (v1.patched_version < v2.patched_version) ++ return -1; ++ else if (v1.patched_version > v2.patched_version) ++ return 1; ++ } ++ else if (v1.rc_version && v2.rc_version) { ++ // Both rc versions ++ if (v1.patched_version < v2.patched_version) ++ return -1; ++ else if (v1.patched_version > v2.patched_version) ++ return 1; ++ } ++ else if (v1_is_stable && v2_is_stable) { ++ // Both stable versions: compare patches ++ // 1.4.0 (patch=0) < 1.4.0-1 (patch=1) ++ if (v1.patched_version < v2.patched_version) ++ return -1; ++ else if (v1.patched_version > v2.patched_version) ++ return 1; ++ } ++ } ++ } ++ } ++ return 0; ++} ++ ++// ============================================================================ ++// NETWORK-DEPENDENT FUNCTIONS - Require libcurl ++// ============================================================================ ++ ++#if defined(HAVE_LIBCURL) ++ ++static version_number get_last_version_number(gchar *version_str) { ++ gchar **v; ++ version_number version = { 0 }; ++ ++ v = g_strsplit_set(version_str, ".-", -1); ++ ++ if (v[0]) ++ version.major_version = g_ascii_strtoull(v[0], NULL, 10); ++ if (v[0] && v[1]) ++ version.minor_version = g_ascii_strtoull(v[1], NULL, 10); ++ if (v[0] && v[1] && v[2]) ++ version.micro_version = g_ascii_strtoull(v[2], NULL, 10); ++ if (v[0] && v[1] && v[2] && v[3]) { ++ remove_alpha(v[3], &version.rc_version, &version.beta_version); ++ version.patched_version = g_ascii_strtoull(v[3], NULL, 10); ++ } ++ ++ g_strfreev(v); ++ return version; ++} + + static gboolean siril_update_get_highest(yyjson_doc *doc, + gchar **highest_version, gint64 *release_timestamp, +@@ -195,159 +360,6 @@ static gboolean siril_update_get_highest(yyjson_doc *doc, + return FALSE; + } + +-static void remove_alpha(gchar *str, gboolean *is_rc, gboolean *is_beta) { +- unsigned long i = 0; +- unsigned long j = 0; +- char c; +- +- if (g_str_has_prefix(str, "beta")) { +- *is_rc = FALSE; +- *is_beta = TRUE; +- } else if (g_str_has_prefix(str, "rc")) { +- *is_rc = TRUE; +- *is_beta = FALSE; +- } else { +- *is_rc = FALSE; +- *is_beta = FALSE; +- } +- +- while ((c = str[i++]) != '\0') { +- if (g_ascii_isdigit(c)) { +- str[j++] = c; +- } +- } +- str[j] = '\0'; +-} +- +-/** +- * Check if the version is a patched version. +- * patched version are named like that x.y.z.patch where patch only contains digits. +- * if patch contains alpha char it is because that's a RC or beta version. Not a patched one. +- * @param version version to be tested +- * @return 0 if the version is not patched. The version of the patch is returned otherwise. +- */ +-static guint check_for_patch(gchar *version, gboolean *is_rc, gboolean *is_beta) { +- remove_alpha(version, is_rc, is_beta); +- return (g_ascii_strtoull(version, NULL, 10)); +-} +- +-version_number get_version_number_from_string(const gchar *input) { +- version_number version = { 0 }; +- gchar **version_string = NULL; +- const gchar *string = find_first_numeric(input); +- if (!string) +- goto the_end; +- version_string = g_strsplit_set(string, ".-", -1); +- version.major_version = g_ascii_strtoull(version_string[0], NULL, 10); +- if (version_string[1]) +- version.minor_version = g_ascii_strtoull(version_string[1], NULL, 10); +- else +- goto the_end; +- if (version_string[2]) +- version.micro_version = g_ascii_strtoull(version_string[2], NULL, 10); +- else +- goto the_end; +- if (version_string[3] == NULL) { +- version.patched_version = 0; +- version.rc_version = FALSE; +- version.beta_version = FALSE; +- } else { +- version.patched_version = check_for_patch(version_string[3], &version.rc_version, &version.beta_version); +- } +-the_end: +- g_strfreev(version_string); +- return version; +-} +- +-version_number get_current_version_number() { +- return get_version_number_from_string(PACKAGE_VERSION); +-} +- +-static version_number get_last_version_number(gchar *version_str) { +- gchar **v; +- version_number version = { 0 }; +- +- v = g_strsplit_set(version_str, ".-", -1); +- +- if (v[0]) +- version.major_version = g_ascii_strtoull(v[0], NULL, 10); +- if (v[0] && v[1]) +- version.minor_version = g_ascii_strtoull(v[1], NULL, 10); +- if (v[0] && v[1] && v[2]) +- version.micro_version = g_ascii_strtoull(v[2], NULL, 10); +- if (v[0] && v[1] && v[2] && v[3]) { +- remove_alpha(v[3], &version.rc_version, &version.beta_version); +- version.patched_version = g_ascii_strtoull(v[3], NULL, 10); +- } +- +- g_strfreev(v); +- return version; +-} +- +-/** +- * This function compares two version numbers following the pattern x.y.z[-type#] +- * where type can be beta, rc, or a stable patch number. +- * Version ordering: beta < rc < stable < stable-patch +- * Examples: 1.4.0-beta1 < 1.4.0-rc2 < 1.4.0 < 1.4.0-1 +- * @param v1 First version number to be tested +- * @param v2 Second version number to be tested +- * @return -1 if v1 < v2, 1 if v1 > v2 and 0 if v1 is equal to v2 +- */ +-int compare_version(version_number v1, version_number v2) { +- if (v1.major_version < v2.major_version) +- return -1; +- else if (v1.major_version > v2.major_version) +- return 1; +- else { +- if (v1.minor_version < v2.minor_version) +- return -1; +- else if (v1.minor_version > v2.minor_version) +- return 1; +- else { +- if (v1.micro_version < v2.micro_version) +- return -1; +- else if (v1.micro_version > v2.micro_version) +- return 1; +- else { +- // Determine version type +- int v1_is_stable = !v1.rc_version && !v1.beta_version; +- int v2_is_stable = !v2.rc_version && !v2.beta_version; +- +- // Order: beta < rc < stable +- if (v1.beta_version && !v2.beta_version) return -1; // beta < (rc or stable) +- if (v2.beta_version && !v1.beta_version) return 1; // (rc or stable) > beta +- if (v1.rc_version && v2_is_stable) return -1; // rc < stable +- if (v2.rc_version && v1_is_stable) return 1; // stable > rc +- +- // Same type: compare patched_version +- if (v1.beta_version && v2.beta_version) { +- // Both beta versions +- if (v1.patched_version < v2.patched_version) +- return -1; +- else if (v1.patched_version > v2.patched_version) +- return 1; +- } +- else if (v1.rc_version && v2.rc_version) { +- // Both rc versions +- if (v1.patched_version < v2.patched_version) +- return -1; +- else if (v1.patched_version > v2.patched_version) +- return 1; +- } +- else if (v1_is_stable && v2_is_stable) { +- // Both stable versions: compare patches +- // 1.4.0 (patch=0) < 1.4.0-1 (patch=1) +- if (v1.patched_version < v2.patched_version) +- return -1; +- else if (v1.patched_version > v2.patched_version) +- return 1; +- } +- } +- } +- } +- return 0; +-} +- + static gchar *parse_changelog(gchar *changelog) { + gchar **token; + GString *strResult; +@@ -683,4 +695,4 @@ void siril_check_notifications(gboolean verbose) { + g_thread_new("siril-notifications", fetch_url_async, args); + } + +-#endif ++#endif // HAVE_LIBCURL +\ No newline at end of file +--- a/src/core/siril_update.h ++++ b/src/core/siril_update.h +@@ -20,11 +20,12 @@ + #ifndef SRC_CORE_SIRIL_UPDATE_H_ + #define SRC_CORE_SIRIL_UPDATE_H_ + +-#if ( defined(HAVE_LIBCURL) || defined(HAVE_LIBGIT2) ) +- + int compare_version(version_number v1, version_number v2); + version_number get_version_number_from_string(const gchar *string); + version_number get_current_version_number(); ++ ++#if ( defined(HAVE_LIBCURL) || defined(HAVE_LIBGIT2) ) ++ + void siril_check_updates(gboolean verbose); + void siril_check_notifications(gboolean verbose); + +-- +GitLab + diff --git a/sci-astronomy/siril/files/siril-1.4.0-libgit2.patch b/sci-astronomy/siril/files/siril-1.4.0-libgit2.patch new file mode 100644 index 000000000000..79cc9ed3aa3e --- /dev/null +++ b/sci-astronomy/siril/files/siril-1.4.0-libgit2.patch @@ -0,0 +1,33 @@ +From 0ea30faf4236432a43aa552f53447c9bcdb3a57c Mon Sep 17 00:00:00 2001 +From: Cyril Richard <[email protected]> +Date: Sun, 7 Dec 2025 21:09:34 +0100 +Subject: [PATCH] Closes #1886 +Upstream: https://gitlab.com/free-astro/siril/-/issues/1886 + +(cherry picked from commit 4b74c4de02e5341d82999837bc9d46e889780356) +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,3 +1,8 @@ ++siril-1.4.1 ++--/--/-- ++**Fixes** ++* Fixes build error when compiled without libgit2 (#1886) ++ + siril-1.4.0 + 12/05/25 + **Improvements** +--- a/src/io/siril_pythonmodule.c ++++ b/src/io/siril_pythonmodule.c +@@ -2153,7 +2153,9 @@ static PythonVenvInfo* prepare_venv_environment(const gchar *venv_path) { + // this repopulates gui.repo_scripts and updates the script menu + // the reason for doing it on completion of python installation is that pyscript_version_check + // cannot check python script versions until it knows what module version is installed ++#ifdef HAVE_LIBGIT2 + g_thread_unref(g_thread_new("update_scripts_list", update_repo_scripts_list_and_menu_in_thread, NULL)); ++#endif + } + g_free(module_path); + +-- +GitLab + diff --git a/sci-astronomy/siril/files/siril-1.4.0-libjpeg.patch b/sci-astronomy/siril/files/siril-1.4.0-libjpeg.patch new file mode 100644 index 000000000000..07578bf2a0eb --- /dev/null +++ b/sci-astronomy/siril/files/siril-1.4.0-libjpeg.patch @@ -0,0 +1,45 @@ +From 8a38018889873055e26490e77975f151e5f4137f Mon Sep 17 00:00:00 2001 +From: Cyril Richard <[email protected]> +Date: Sun, 7 Dec 2025 21:20:27 +0100 +Subject: [PATCH] Closes #1889 +Upstream: https://gitlab.com/free-astro/siril/-/issues/1889 + +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,7 +1,7 @@ + siril-1.4.1 + --/--/-- + **Fixes** +-* Fixes build error when compiled without libgit2 (#1886) ++* Fixes build error when compiled without libgit2, libjpeg (#1886, #1889) + + siril-1.4.0 + 12/05/25 +--- a/src/gui/save_dialog.c ++++ b/src/gui/save_dialog.c +@@ -532,6 +532,7 @@ static void initialize_data(gpointer p) { + args->checksum = gtk_toggle_button_get_active(checksum); + } + ++#ifdef HAVE_JPEG + static long calculate_jpeg_size(struct savedial_data *args) { + char const *tmp_dir = g_get_tmp_dir(); + gchar *tmp_filename; +@@ -596,6 +597,14 @@ static gpointer calculate_jpeg_size_thread(gpointer p) { + return NULL; + } + ++#else ++static gpointer calculate_jpeg_size_thread(gpointer p) { ++ printf("Should not happen\n"); ++ return NULL; ++} ++ ++#endif ++ + static gpointer mini_save_dialog(gpointer p) { + struct savedial_data *args = (struct savedial_data *) p; + #ifdef HAVE_LIBPNG +-- +GitLab + diff --git a/sci-astronomy/siril/files/siril-9999-docfiles.patch b/sci-astronomy/siril/files/siril-9999-docfiles.patch index 19a063e3d645..75c8714fe351 100644 --- a/sci-astronomy/siril/files/siril-9999-docfiles.patch +++ b/sci-astronomy/siril/files/siril-9999-docfiles.patch @@ -1,5 +1,3 @@ -diff --git a/meson.build b/meson.build -index 0bc3f0d8e..e08989aa9 100644 --- a/meson.build +++ b/meson.build @@ -710,12 +710,6 @@ man_files = [ diff --git a/sci-astronomy/siril/siril-1.4.0.ebuild b/sci-astronomy/siril/siril-1.4.0.ebuild new file mode 100644 index 000000000000..a688e728b19d --- /dev/null +++ b/sci-astronomy/siril/siril-1.4.0.ebuild @@ -0,0 +1,110 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{11..14} ) +PYTHON_REQ_USE="tk" + +inherit meson python-r1 toolchain-funcs xdg + +DESCRIPTION="A free astronomical image processing software" +HOMEPAGE="https://siril.org/" + +if [[ ${PV} == "9999" ]]; then + inherit git-r3 + EGIT_REPO_URI="https://gitlab.com/free-astro/${PN}.git" +else + SRC_URI="https://gitlab.com/free-astro/siril/-/archive/${PV/_/-}/${PN}-${PV/_/-}.tar.bz2" + KEYWORDS="~amd64 ~x86" + S="${WORKDIR}/${PN}-${PV/_/-}" +fi + +LICENSE="GPL-3+ Boost-1.0" +SLOT="0" +IUSE="curl exif ffmpeg git heif jpeg jpegxl openmp png raw tiff" + +# TODO: Siril depends optionally on gtksourceview-4, which is deprecated. Add +# gui-libs/gtksourceview if version 5 is supported by upstream. +DEPEND=" + >=dev-libs/glib-2.56.0:2 + >=dev-libs/yyjson-0.10.0:= + media-libs/lcms:= + media-libs/librtprocess + >=media-libs/opencv-4.2.0:=[features2d] + >=sci-astronomy/wcslib-7.12:= + sci-libs/cfitsio:= + sci-libs/fftw:3.0= + sci-libs/gsl:= + x11-libs/gdk-pixbuf:2 + x11-libs/cairo + x11-libs/pango + >=x11-libs/gtk+-3.22.0:3 + virtual/zlib:= + curl? ( net-misc/curl ) + exif? ( >=media-gfx/exiv2-0.25:= ) + ffmpeg? ( media-video/ffmpeg:= ) + git? ( dev-libs/libgit2:= ) + heif? ( media-libs/libheif:= ) + jpeg? ( media-libs/libjpeg-turbo:= ) + jpegxl? ( media-libs/libjxl:= ) + png? ( >=media-libs/libpng-1.6.0:= ) + raw? ( media-libs/libraw:= ) + tiff? ( media-libs/tiff:= ) +" + +REQUIRED_USE="${PYTHON_REQUIRED_USE}" + +RDEPEND=" + ${DEPEND} + ${PYTHON_DEPS} + dev-python/pip[${PYTHON_USEDEP}] + dev-python/virtualenv[${PYTHON_USEDEP}] +" +BDEPEND=" + dev-build/cmake + x11-base/xorg-proto +" + +PATCHES=( + "${FILESDIR}/${PN}-1.4-docfiles.patch" + "${FILESDIR}/${PN}-1.4.0-libgit2.patch" + "${FILESDIR}/${PN}-1.4.0-libjpeg.patch" + "${FILESDIR}/${PN}-1.4.0-libcurl.patch" +) + +DOCS=( README.md ChangeLog AUTHORS ) + +pkg_pretend() { + [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp +} + +pkg_setup() { + [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp +} + +src_configure() { + local emesonargs=( + -DlibXISF=false + -Dffms2=false + -Dcriterion=false + $(meson_use curl libcurl) + $(meson_use exif exiv2) + $(meson_use ffmpeg) + $(meson_use git libgit2) + $(meson_use heif libheif) + $(meson_use jpeg libjpeg) + $(meson_use jpegxl libjxl) + $(meson_use openmp) + $(meson_use png libpng) + $(meson_use raw libraw) + $(meson_use tiff libtiff) + ) + meson_src_configure +} + +pkg_postinst() { + xdg_desktop_database_update + xdg_icon_cache_update + xdg_mimeinfo_database_update +}
