diff options
author | Mario Haustein <mario.haustein@hrz.tu-chemnitz.de> | 2024-04-28 14:31:39 +0200 |
---|---|---|
committer | Joonas Niilola <juippis@gentoo.org> | 2024-06-02 11:28:03 +0300 |
commit | 15f91123ccce8cb1dd2953c18d13edf22c034164 (patch) | |
tree | b2a02e44d97c5b901475c100cee57c0ba8392a85 /sci-astronomy | |
parent | gui-wm/gamescope: Enforce libliftoff version for DEPEND, not RDEPEND (diff) | |
download | gentoo-15f91123ccce8cb1dd2953c18d13edf22c034164.tar.gz gentoo-15f91123ccce8cb1dd2953c18d13edf22c034164.tar.bz2 gentoo-15f91123ccce8cb1dd2953c18d13edf22c034164.zip |
sci-astronomy/siril: fix one definition rule violation
Closes: https://bugs.gentoo.org/927345
Signed-off-by: Mario Haustein <mario.haustein@hrz.tu-chemnitz.de>
Closes: https://github.com/gentoo/gentoo/pull/36467
Signed-off-by: Joonas Niilola <juippis@gentoo.org>
Diffstat (limited to 'sci-astronomy')
-rw-r--r-- | sci-astronomy/siril/files/siril-1.2.1-options.patch | 101 | ||||
-rw-r--r-- | sci-astronomy/siril/siril-1.2.1-r1.ebuild | 93 |
2 files changed, 194 insertions, 0 deletions
diff --git a/sci-astronomy/siril/files/siril-1.2.1-options.patch b/sci-astronomy/siril/files/siril-1.2.1-options.patch new file mode 100644 index 000000000000..11a8bdeeef0c --- /dev/null +++ b/sci-astronomy/siril/files/siril-1.2.1-options.patch @@ -0,0 +1,101 @@ +From 241b4b17d83285eb4bf4151dd77198427ac9fde4 Mon Sep 17 00:00:00 2001 +From: Mario Haustein <mario.haustein@hrz.tu-chemnitz.de> +Date: Sun, 28 Apr 2024 14:09:19 +0200 +Subject: [PATCH] Fix multiple definition of struct options +Upstream: https://gitlab.com/free-astro/siril/-/merge_requests/668 +Bug: https://bugs.gentoo.org/927345 + +--- a/src/filters/deconvolution/estimate_kernel.cpp ++++ b/src/filters/deconvolution/estimate_kernel.cpp +@@ -33,7 +33,7 @@ extern "C" float *estimate_kernel(estk_data *args, int max_threads) { + if (!cppfftwmultithreaded) + max_threads = 1; + img_t<float>::use_threading(max_threads); +- options opts; ++ estimate_kernel_options opts; + opts.ks = args->ks; + opts.lambda = args->lambda; + opts.lambda_ratio = args->lambda_ratio; +--- a/src/filters/deconvolution/estimate_kernel.hpp ++++ b/src/filters/deconvolution/estimate_kernel.hpp +@@ -56,7 +56,7 @@ void gaussian_downsample(img_t<float>& out, const img_t<float>& _in, float facto + } + } + +-struct options { ++struct estimate_kernel_options { + bool verbose; + int ks; + float lambda; +@@ -81,7 +81,7 @@ template <typename T> + class ImagePredictor { + public: + virtual void solve(img_t<T>& u, const img_t<T>& K, T lambda, T beta_init, T beta_rate, T beta_max, +- const options& opts) = 0; ++ const estimate_kernel_options& opts) = 0; + virtual ~ImagePredictor() {} + }; + +@@ -114,7 +114,7 @@ public: + } + + void solve(img_t<T>& u, const img_t<T>& K, +- T lambda, T beta_init, T beta_rate, T beta_max, const options& opts) { ++ T lambda, T beta_init, T beta_rate, T beta_max, const estimate_kernel_options& opts) { + assert(K.w % 2); + assert(K.h % 2); + +@@ -177,7 +177,7 @@ public: + template <typename T> + class KernelEstimator { + public: +- virtual void solve(img_t<T>& k, const img_t<T>& u, const struct options& opts) = 0; ++ virtual void solve(img_t<T>& k, const img_t<T>& u, const struct estimate_kernel_options& opts) = 0; + virtual ~KernelEstimator() {} + }; + +@@ -198,7 +198,7 @@ public: + } + + // implements Algorithm 3 +- void solve(img_t<T>& k, const img_t<T>& u, const struct options& opts) { ++ void solve(img_t<T>& k, const img_t<T>& u, const struct estimate_kernel_options& opts) { + k.resize(ks, ks); + + // solves the Equation (28) +@@ -313,7 +313,7 @@ public: + fv = fft::r2c(v); + } + +- void solve(img_t<T>& k, const img_t<T>& u, const struct options& opts) { ++ void solve(img_t<T>& k, const img_t<T>& u, const struct estimate_kernel_options& opts) { + if (k.w != ks || k.h != ks) + k.resize(ks, ks); + +@@ -407,7 +407,7 @@ public: + // estimates the sharp image and the kernel from a blurry image and an initialization of u + template <typename T> + void l0_kernel_estimation(img_t<T>& k, img_t<T>& u, const img_t<T>& v, +- const img_t<T>& initu, struct options& opts) { ++ const img_t<T>& initu, struct estimate_kernel_options& opts) { + // static int it = 0; + ImagePredictor<T>* sharp_predictor = nullptr; + sharp_predictor = new L0ImagePredictor<T>(v); +@@ -463,7 +463,7 @@ void l0_kernel_estimation(img_t<T>& k, img_t<T>& u, const img_t<T>& v, + // it assumes that the image was previously processed by preprocess_image + // the inner loop is implemented in l0_kernel_estimation + template <typename T> +-void multiscale_l0_kernel_estimation(img_t<T>& k, img_t<T>& u, const img_t<T>& v, struct options& opts) { ++void multiscale_l0_kernel_estimation(img_t<T>& k, img_t<T>& u, const img_t<T>& v, struct estimate_kernel_options& opts) { + std::vector<img_t<T>> vs; + std::vector<int> kernelSizes; + printf("Multiscale kernel estimation...\n"); +@@ -511,7 +511,7 @@ void multiscale_l0_kernel_estimation(img_t<T>& k, img_t<T>& u, const img_t<T>& v + + // preprocess the input blurry image as describe in Section 2.1 + template <typename T> +-void preprocess_image(img_t<T>& out, const img_t<T>& _v, struct options& opts) { ++void preprocess_image(img_t<T>& out, const img_t<T>& _v, struct estimate_kernel_options& opts) { + img_t<T> v(_v.w, _v.h); + + // convert to grayscale diff --git a/sci-astronomy/siril/siril-1.2.1-r1.ebuild b/sci-astronomy/siril/siril-1.2.1-r1.ebuild new file mode 100644 index 000000000000..8b3fc3865d24 --- /dev/null +++ b/sci-astronomy/siril/siril-1.2.1-r1.ebuild @@ -0,0 +1,93 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit meson optfeature 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 heif jpeg libconfig openmp png raw tiff wcs" + +DEPEND=" + >=dev-libs/glib-2.56.0:2 + >=dev-libs/json-glib-1.2.6 + media-libs/librtprocess + >=media-libs/opencv-4.4.0:= + 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.20.0:3 + curl? ( net-misc/curl ) + exif? ( >=media-gfx/exiv2-0.25:= ) + ffmpeg? ( media-video/ffmpeg:= ) + heif? ( media-libs/libheif:= ) + jpeg? ( media-libs/libjpeg-turbo:= ) + libconfig? ( >=dev-libs/libconfig-1.4:=[cxx] ) + png? ( >=media-libs/libpng-1.6.0:= ) + raw? ( media-libs/libraw:= ) + tiff? ( media-libs/tiff:= ) + wcs? ( >=sci-astronomy/wcslib-7.7:= ) +" +RDEPEND=" + ${DEPEND} +" +BDEPEND="dev-build/cmake + x11-base/xorg-proto" + +PATCHES=( + "${FILESDIR}/${PN}-docfiles.patch" + "${FILESDIR}/${PN}-1.2-fseek64-musl.patch" + "${FILESDIR}/${PN}-1.2.1-options.patch" +) + +DOCS=( README.md NEWS 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=( + -Dffms2=false + -Dcriterion=false + $(meson_use exif exiv2) + $(meson_use ffmpeg) + $(meson_use heif libheif) + $(meson_use jpeg libjpeg) + $(meson_use libconfig) + $(meson_use openmp) + $(meson_use png libpng) + $(meson_use raw libraw) + $(meson_use tiff libtiff) + $(meson_use wcs wcslib) + $(usex curl -Denable-libcurl=yes -Denable-libcurl=no) + ) + meson_src_configure +} + +pkg_postinst() { + xdg_desktop_database_update + xdg_icon_cache_update + xdg_mimeinfo_database_update + optfeature "gnuplot support" sci-visualization/gnuplot +} |