media-gfx/rawtherapee: drop 5.8-r4

Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
This commit is contained in:
Andreas Sturmlechner
2023-02-09 14:35:35 +01:00
parent 54e88b2ea1
commit bb7aef31bd
4 changed files with 0 additions and 990 deletions

View File

@@ -1,2 +1 @@
DIST rawtherapee-5.8.tar.xz 12653148 BLAKE2B f6d4b9b177ad3b6a32b460ecfc7caf5d42a01b5dd4f24da29739f5a2e5936a8d36f9857c0e24bca11f077ab0626f08bbad59ef756792d12f93ef9516427cd2c4 SHA512 bc79586cd937dcaefc053e65faa2162de887d514e44980956d937c157c6d55c4f6e6a7a9b8f91f2d657ed2054814737b96d5d741674c1e5a961d7177433efe4e
DIST rawtherapee-5.9.tar.xz 16219076 BLAKE2B 32039d6927eb4a4efbb49f3ad2bd019bd9f73c92a5e7125b7c560aaf7b6a42a5f1a2f67b24a713e4b255867539eda2bf63ea4e988453ec9634c917a11432a7fb SHA512 0d848a36293eb5cac3212910eaf1d011315269c6bbe780c4c2e5f91719721e25a7d1678a7e4453fa4a9694618978b04828612dc03e1d50cb9c11ad4d238e7ca8

View File

@@ -1,221 +0,0 @@
From 15db8cdb57161d57af8307bf85aeda02ea69ddde Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fl=C3=B6ssie?= <floessie.mail@gmail.com>
Date: Sun, 5 Apr 2020 11:26:47 +0200
Subject: [PATCH] Guard accesses to `Crop::crop_ratios` (#5701)
---
rtgui/crop.cc | 125 +++++++++++++++++++++++++++++++++++---------------
rtgui/crop.h | 11 ++---
2 files changed, 92 insertions(+), 44 deletions(-)
diff --git a/rtgui/crop.cc b/rtgui/crop.cc
index d9d496523..f092f07a5 100644
--- a/rtgui/crop.cc
+++ b/rtgui/crop.cc
@@ -16,6 +16,8 @@
* You should have received a copy of the GNU General Public License
* along with RawTherapee. If not, see <https://www.gnu.org/licenses/>.
*/
+#include <vector>
+
#include "crop.h"
#include "options.h"
@@ -46,39 +48,82 @@ inline void get_custom_ratio(int w, int h, double &rw, double &rh)
} // namespace
+class Crop::CropRatios final
+{
+public:
+ CropRatios() :
+ ratios{
+ {M("GENERAL_ASIMAGE"), 0.0},
+ {M("GENERAL_CURRENT"), -1.0},
+ {"3:2", 3.0 / 2.0}, // L1.5, P0.666...
+ {"4:3", 4.0 / 3.0}, // L1.333..., P0.75
+ {"16:9", 16.0 / 9.0}, // L1.777..., P0.5625
+ {"16:10", 16.0 / 10.0}, // L1.6, P0.625
+ {"1:1", 1.0 / 1.0}, // L1, P1
+ {"2:1", 2.0 / 1.0}, // L2, P0.5
+ {"3:1", 3.0 / 1.0}, // L3, P0.333...
+ {"4:1", 4.0 / 1.0}, // L4, P0.25
+ {"5:1", 5.0 / 1.0}, // L5, P0.2
+ {"6:1", 6.0 / 1.0}, // L6, P0.1666...
+ {"7:1", 7.0 / 1.0}, // L7, P0.142...
+ {"4:5", 4.0 / 5.0}, // L1.25, P0.8
+ {"5:7", 5.0 / 7.0}, // L1.4, P0.714...
+ {"6:7", 6.0 / 7.0}, // L1.166..., P0.857...
+ {"6:17", 6.0 / 17.0}, // L2.833..., P0.352...
+ {"24:65 - XPAN", 24.0 / 65.0}, // L2.708..., P0.369...
+ {"1.414 - DIN EN ISO 216", 1.414}, // L1.414, P0.707...
+ {"3.5:5", 3.5 / 5.0}, // L1.428..., P0.7
+ {"8.5:11 - US Letter", 8.5 / 11.0}, // L1.294..., P0.772...
+ {"9.5:12", 9.5 / 12.0}, // L1.263..., P0.791...
+ {"10:12", 10.0 / 12.0}, // L1.2, P0.833...
+ {"11:14", 11.0 / 14.0}, // L1.272..., P0.785...
+ {"11:17 - Tabloid", 11.0 / 17.0}, // L1.545..., P0.647...
+ {"13:19", 13.0 / 19.0}, // L1.461..., P0.684...
+ {"17:22", 17.0 / 22.0}, // L1.294..., P0.772...
+ {"45:35 - ePassport", 45.0 / 35.0}, // L1.285,... P0.777...
+ {"64:27", 64.0 / 27.0}, // L2.370..., P0.421...
+ }
+ {
+ }
+
+ std::vector<Glib::ustring> getLabels() const
+ {
+ std::vector<Glib::ustring> res;
+
+ res.reserve(ratios.size());
+
+ for (const auto& ratio : ratios) {
+ res.push_back(ratio.label);
+ }
+
+ return res;
+ }
+
+ double getValue(std::size_t index) const
+ {
+ return
+ index < ratios.size()
+ ? ratios[index].value
+ : ratios[0].value;
+ }
+
+ void updateCurrentRatio(double value)
+ {
+ ratios[1].value = value;
+ }
+
+private:
+ struct CropRatio {
+ Glib::ustring label;
+ double value;
+ };
+
+ std::vector<CropRatio> ratios;
+};
+
Crop::Crop():
FoldableToolPanel(this, "crop", M("TP_CROP_LABEL"), false, true),
- crop_ratios{
- {M("GENERAL_ASIMAGE"), 0.0},
- {M("GENERAL_CURRENT"), -1.0},
- {"3:2", 3.0 / 2.0}, // L1.5, P0.666...
- {"4:3", 4.0 / 3.0}, // L1.333..., P0.75
- {"16:9", 16.0 / 9.0}, // L1.777..., P0.5625
- {"16:10", 16.0 / 10.0}, // L1.6, P0.625
- {"1:1", 1.0 / 1.0}, // L1, P1
- {"2:1", 2.0 / 1.0}, // L2, P0.5
- {"3:1", 3.0 / 1.0}, // L3, P0.333...
- {"4:1", 4.0 / 1.0}, // L4, P0.25
- {"5:1", 5.0 / 1.0}, // L5, P0.2
- {"6:1", 6.0 / 1.0}, // L6, P0.1666...
- {"7:1", 7.0 / 1.0}, // L7, P0.142...
- {"4:5", 4.0 / 5.0}, // L1.25, P0.8
- {"5:7", 5.0 / 7.0}, // L1.4, P0.714...
- {"6:7", 6.0 / 7.0}, // L1.166..., P0.857...
- {"6:17", 6.0 / 17.0}, // L2.833..., P0.352...
- {"24:65 - XPAN", 24.0 / 65.0}, // L2.708..., P0.369...
- {"1.414 - DIN EN ISO 216", 1.414}, // L1.414, P0.707...
- {"3.5:5", 3.5 / 5.0}, // L1.428..., P0.7
- {"8.5:11 - US Letter", 8.5 / 11.0}, // L1.294..., P0.772...
- {"9.5:12", 9.5 / 12.0}, // L1.263..., P0.791...
- {"10:12", 10.0 / 12.0}, // L1.2, P0.833...
- {"11:14", 11.0 / 14.0}, // L1.272..., P0.785...
- {"11:17 - Tabloid", 11.0 / 17.0}, // L1.545..., P0.647...
- {"13:19", 13.0 / 19.0}, // L1.461..., P0.684...
- {"17:22", 17.0 / 22.0}, // L1.294..., P0.772...
- {"45:35 - ePassport", 45.0 / 35.0}, // L1.285,... P0.777...
- {"64:27", 64.0 / 27.0}, // L2.370..., P0.421...
- },
+ crop_ratios(new CropRatios),
opt(0),
wDirty(true),
hDirty(true),
@@ -229,8 +274,8 @@ Crop::Crop():
// ppigrid END
// Populate the combobox
- for (const auto& crop_ratio : crop_ratios) {
- ratio->append (crop_ratio.label);
+ for (const auto& label : crop_ratios->getLabels()) {
+ ratio->append (label);
}
ratio->set_active (0);
@@ -354,7 +399,10 @@ void Crop::read (const ProcParams* pp, const ParamsEdited* pedited)
setDimensions (pp->crop.x + pp->crop.w, pp->crop.y + pp->crop.h);
}
- const bool flip_orientation = pp->crop.fixratio && crop_ratios[ratio->get_active_row_number()].value > 0 && crop_ratios[ratio->get_active_row_number()].value < 1.0;
+ const bool flip_orientation =
+ pp->crop.fixratio
+ && crop_ratios->getValue(ratio->get_active_row_number()) > 0
+ && crop_ratios->getValue(ratio->get_active_row_number()) < 1.0;
if (pp->crop.orientation == "Landscape") {
orientation->set_active (flip_orientation ? 1 : 0);
@@ -469,7 +517,10 @@ void Crop::write (ProcParams* pp, ParamsEdited* pedited)
}
// for historical reasons we store orientation different if ratio is written as 2:3 instead of 3:2, but in GUI 'landscape' is always long side horizontal regardless of the ratio is written short or long side first.
- const bool flip_orientation = fixr->get_active() && crop_ratios[ratio->get_active_row_number()].value > 0 && crop_ratios[ratio->get_active_row_number()].value < 1.0;
+ const bool flip_orientation =
+ fixr->get_active()
+ && crop_ratios->getValue(ratio->get_active_row_number()) > 0
+ && crop_ratios->getValue(ratio->get_active_row_number()) < 1.0;
if (orientation->get_active_row_number() == 0) {
pp->crop.orientation = flip_orientation ? "Portrait" : "Landscape";
@@ -1501,7 +1552,7 @@ double Crop::getRatio () const
return r;
}
- r = crop_ratios[ratio->get_active_row_number()].value;
+ r = crop_ratios->getValue(ratio->get_active_row_number());
if (!r) {
r = maxh <= maxw ? float(maxh)/float(maxw) : float(maxw)/float(maxh);
}
@@ -1539,5 +1590,5 @@ void Crop::updateCurrentRatio()
double rw, rh;
get_custom_ratio(w->get_value(), h->get_value(), rw, rh);
customRatioLabel->set_text(Glib::ustring::compose("%1:%2", rw, rh));
- crop_ratios[1].value = double(w->get_value())/double(h->get_value());
+ crop_ratios->updateCurrentRatio(static_cast<double>(w->get_value()) / static_cast<double>(h->get_value()));
}
diff --git a/rtgui/crop.h b/rtgui/crop.h
index b9221a803..c6636b917 100644
--- a/rtgui/crop.h
+++ b/rtgui/crop.h
@@ -18,7 +18,7 @@
*/
#pragma once
-#include <vector>
+#include <memory>
#include <gtkmm.h>
@@ -91,16 +91,13 @@ class Crop final :
void rotateCrop (int deg, bool hflip, bool vflip);
private:
- struct CropRatio {
- Glib::ustring label;
- double value;
- };
-
- std::vector<CropRatio> crop_ratios;
+ class CropRatios;
void adjustCropToRatio();
void updateCurrentRatio();
+ const std::unique_ptr<CropRatios> crop_ratios;
+
Gtk::CheckButton* fixr;
MyComboBoxText* ratio;
MyComboBoxText* orientation;

View File

@@ -1,683 +0,0 @@
diff -udHrN -- a/RT_5.8_glibc234.patch b/RT_5.8_glibc234.patch
--- a/RT_5.8_glibc234.patch 1970-01-01 01:00:00.000000000 +0100
+++ b/RT_5.8_glibc234.patch 2021-08-04 18:50:22.142646367 +0200
@@ -0,0 +1,334 @@
+diff --git a/rtengine/canon_cr3_decoder.cc b/rtengine/canon_cr3_decoder.cc
+index ddd4b6172..1132b4e01 100644
+--- a/rtengine/canon_cr3_decoder.cc
++++ b/rtengine/canon_cr3_decoder.cc
+@@ -670,7 +670,7 @@ std::uint32_t _byteswap_ulong(std::uint32_t x)
+ #endif
+
+ struct LibRaw_abstract_datastream {
+- IMFILE* ifp;
++ rtengine::IMFILE* ifp;
+
+ void lock()
+ {
+diff --git a/rtengine/dcraw.cc b/rtengine/dcraw.cc
+index ef0b4e8dc..13a6b054a 100644
+--- a/rtengine/dcraw.cc
++++ b/rtengine/dcraw.cc
+@@ -1963,7 +1963,7 @@ void CLASS phase_one_load_raw_c()
+ #endif
+ {
+ int len[2], pred[2];
+- IMFILE ifpthr = *ifp;
++ rtengine::IMFILE ifpthr = *ifp;
+ ifpthr.plistener = nullptr;
+
+ #ifdef _OPENMP
+@@ -3317,7 +3317,7 @@ void CLASS sony_arw2_load_raw()
+ {
+ uchar *data = new (std::nothrow) uchar[raw_width + 1];
+ merror(data, "sony_arw2_load_raw()");
+- IMFILE ifpthr = *ifp;
++ rtengine::IMFILE ifpthr = *ifp;
+ int pos = ifpthr.pos;
+ ushort pix[16];
+
+@@ -6331,7 +6331,7 @@ int CLASS parse_tiff_ifd (int base)
+ unsigned sony_curve[] = { 0,0,0,0,0,4095 };
+ unsigned *buf, sony_offset=0, sony_length=0, sony_key=0;
+ struct jhead jh;
+-/*RT*/ IMFILE *sfp;
++/*RT*/ rtengine::IMFILE *sfp;
+ /*RT*/ int pana_raw = 0;
+
+ if (tiff_nifds >= sizeof tiff_ifd / sizeof tiff_ifd[0])
+@@ -6895,7 +6895,7 @@ it under the terms of the one of two licenses as you choose:
+ fread (buf, sony_length, 1, ifp);
+ sony_decrypt (buf, sony_length/4, 1, sony_key);
+ sfp = ifp;
+-/*RT*/ ifp = fopen (buf, sony_length);
++/*RT*/ ifp = rtengine::fopen (buf, sony_length);
+ // if ((ifp = tmpfile())) {
+ // fwrite (buf, sony_length, 1, ifp);
+ // fseek (ifp, 0, SEEK_SET);
+@@ -7203,7 +7203,7 @@ void CLASS parse_external_jpeg()
+ {
+ const char *file, *ext;
+ char *jname, *jfile, *jext;
+-/*RT*/ IMFILE *save=ifp;
++/*RT*/ rtengine::IMFILE *save=ifp;
+
+ ext = strrchr (ifname, '.');
+ file = strrchr (ifname, '/');
+@@ -7231,7 +7231,7 @@ void CLASS parse_external_jpeg()
+ *jext = '0';
+ }
+ if (strcmp (jname, ifname)) {
+-/*RT*/ if ((ifp = fopen (jname))) {
++/*RT*/ if ((ifp = rtengine::fopen (jname))) {
+ // if ((ifp = fopen (jname, "rb"))) {
+ if (verbose)
+ fprintf (stderr,_("Reading metadata from %s ...\n"), jname);
+diff --git a/rtengine/dcraw.h b/rtengine/dcraw.h
+index 10c7b9ba6..bc009e67c 100644
+--- a/rtengine/dcraw.h
++++ b/rtengine/dcraw.h
+@@ -73,7 +73,7 @@ public:
+
+ protected:
+ int exif_base, ciff_base, ciff_len;
+- IMFILE *ifp;
++ rtengine::IMFILE *ifp;
+ FILE *ofp;
+ short order;
+ const char *ifname;
+@@ -125,7 +125,7 @@ protected:
+ int cur_buf_size; // buffer size
+ uchar *cur_buf; // currently read block
+ int fillbytes; // Counter to add extra byte for block size N*16
+- IMFILE *input;
++ rtengine::IMFILE *input;
+ struct int_pair grad_even[3][41]; // tables of gradients
+ struct int_pair grad_odd[3][41];
+ ushort *linealloc;
+@@ -278,7 +278,7 @@ void parse_redcine();
+ class getbithuff_t
+ {
+ public:
+- getbithuff_t(DCraw *p,IMFILE *&i, unsigned &z):parent(p),bitbuf(0),vbits(0),reset(0),ifp(i),zero_after_ff(z){}
++ getbithuff_t(DCraw *p,rtengine::IMFILE *&i, unsigned &z):parent(p),bitbuf(0),vbits(0),reset(0),ifp(i),zero_after_ff(z){}
+ unsigned operator()(int nbits, ushort *huff);
+
+ private:
+@@ -288,7 +288,7 @@ private:
+ DCraw *parent;
+ unsigned bitbuf;
+ int vbits, reset;
+- IMFILE *&ifp;
++ rtengine::IMFILE *&ifp;
+ unsigned &zero_after_ff;
+ };
+ getbithuff_t getbithuff;
+@@ -296,7 +296,7 @@ getbithuff_t getbithuff;
+ class nikbithuff_t
+ {
+ public:
+- explicit nikbithuff_t(IMFILE *&i):bitbuf(0),errors(0),vbits(0),ifp(i){}
++ explicit nikbithuff_t(rtengine::IMFILE *&i):bitbuf(0),errors(0),vbits(0),ifp(i){}
+ void operator()() {bitbuf = vbits = 0;};
+ unsigned operator()(int nbits, ushort *huff);
+ unsigned errorCount() { return errors; }
+@@ -309,7 +309,7 @@ private:
+ }
+ unsigned bitbuf, errors;
+ int vbits;
+- IMFILE *&ifp;
++ rtengine::IMFILE *&ifp;
+ };
+ nikbithuff_t nikbithuff;
+
+@@ -377,7 +377,7 @@ void parse_qt (int end);
+ // ph1_bithuff(int nbits, ushort *huff);
+ class ph1_bithuff_t {
+ public:
+- ph1_bithuff_t(DCraw *p, IMFILE *i, short &o):order(o),ifp(i),bitbuf(0),vbits(0){}
++ ph1_bithuff_t(DCraw *p, rtengine::IMFILE *i, short &o):order(o),ifp(i),bitbuf(0),vbits(0){}
+ unsigned operator()(int nbits, ushort *huff);
+ unsigned operator()(int nbits);
+ unsigned operator()();
+@@ -411,7 +411,7 @@ private:
+ }
+
+ short &order;
+- IMFILE* const ifp;
++ rtengine::IMFILE* const ifp;
+ UINT64 bitbuf;
+ int vbits;
+ };
+@@ -429,11 +429,11 @@ void nokia_load_raw();
+
+ class pana_bits_t{
+ public:
+- pana_bits_t(IMFILE *i, unsigned &u, unsigned enc):
++ pana_bits_t(rtengine::IMFILE *i, unsigned &u, unsigned enc):
+ ifp(i), load_flags(u), vbits(0), encoding(enc) {}
+ unsigned operator()(int nbits, unsigned *bytes=nullptr);
+ private:
+- IMFILE *ifp;
++ rtengine::IMFILE *ifp;
+ unsigned &load_flags;
+ uchar buf[0x4000];
+ int vbits;
+diff --git a/rtengine/dfmanager.cc b/rtengine/dfmanager.cc
+index 7dde668eb..e551c9aad 100644
+--- a/rtengine/dfmanager.cc
++++ b/rtengine/dfmanager.cc
+@@ -540,7 +540,7 @@ std::vector<badPix> *DFManager::getHotPixels ( const std::string &mak, const std
+
+ int DFManager::scanBadPixelsFile( Glib::ustring filename )
+ {
+- FILE *file = fopen( filename.c_str(), "r" );
++ FILE *file = ::fopen( filename.c_str(), "r" );
+
+ if( !file ) {
+ return false;
+diff --git a/rtengine/myfile.cc b/rtengine/myfile.cc
+index 842766dcf..2321d18bb 100644
+--- a/rtengine/myfile.cc
++++ b/rtengine/myfile.cc
+@@ -70,7 +70,7 @@ int munmap(void *start, size_t length)
+
+ #ifdef MYFILE_MMAP
+
+-IMFILE* fopen (const char* fname)
++rtengine::IMFILE* rtengine::fopen (const char* fname)
+ {
+ int fd;
+
+@@ -123,13 +123,13 @@ IMFILE* fopen (const char* fname)
+ return mf;
+ }
+
+-IMFILE* gfopen (const char* fname)
++rtengine::IMFILE* rtengine::gfopen (const char* fname)
+ {
+ return fopen(fname);
+ }
+ #else
+
+-IMFILE* fopen (const char* fname)
++rtengine::IMFILE* rtengine::fopen (const char* fname)
+ {
+
+ FILE* f = g_fopen (fname, "rb");
+@@ -152,7 +152,7 @@ IMFILE* fopen (const char* fname)
+ return mf;
+ }
+
+-IMFILE* gfopen (const char* fname)
++rtengine::IMFILE* rtengine::gfopen (const char* fname)
+ {
+
+ FILE* f = g_fopen (fname, "rb");
+@@ -176,7 +176,7 @@ IMFILE* gfopen (const char* fname)
+ }
+ #endif //MYFILE_MMAP
+
+-IMFILE* fopen (unsigned* buf, int size)
++rtengine::IMFILE* rtengine::fopen (unsigned* buf, int size)
+ {
+
+ IMFILE* mf = new IMFILE;
+@@ -190,7 +190,7 @@ IMFILE* fopen (unsigned* buf, int size)
+ return mf;
+ }
+
+-void fclose (IMFILE* f)
++void rtengine::fclose (IMFILE* f)
+ {
+ #ifdef MYFILE_MMAP
+
+@@ -207,7 +207,7 @@ void fclose (IMFILE* f)
+ delete f;
+ }
+
+-int fscanf (IMFILE* f, const char* s ...)
++int rtengine::fscanf (IMFILE* f, const char* s ...)
+ {
+ // fscanf not easily wrapped since we have no terminating \0 at end
+ // of file data and vsscanf() won't tell us how many characters that
+@@ -253,7 +253,7 @@ int fscanf (IMFILE* f, const char* s ...)
+ }
+
+
+-char* fgets (char* s, int n, IMFILE* f)
++char* rtengine::fgets (char* s, int n, IMFILE* f)
+ {
+
+ if (f->pos >= f->size) {
+@@ -270,7 +270,7 @@ char* fgets (char* s, int n, IMFILE* f)
+ return s;
+ }
+
+-void imfile_set_plistener(IMFILE *f, rtengine::ProgressListener *plistener, double progress_range)
++void rtengine::imfile_set_plistener(IMFILE *f, rtengine::ProgressListener *plistener, double progress_range)
+ {
+ f->plistener = plistener;
+ f->progress_range = progress_range;
+@@ -278,7 +278,7 @@ void imfile_set_plistener(IMFILE *f, rtengine::ProgressListener *plistener, doub
+ f->progress_current = 0;
+ }
+
+-void imfile_update_progress(IMFILE *f)
++void rtengine::imfile_update_progress(IMFILE *f)
+ {
+ if (!f->plistener || f->progress_current < f->progress_next) {
+ return;
+diff --git a/rtengine/myfile.h b/rtengine/myfile.h
+index 34b90c525..ae14ce31a 100644
+--- a/rtengine/myfile.h
++++ b/rtengine/myfile.h
+@@ -30,8 +30,6 @@ namespace rtengine
+
+ class ProgressListener;
+
+-}
+-
+ struct IMFILE {
+ int fd;
+ ssize_t pos;
+@@ -141,3 +139,5 @@ inline unsigned char* fdata(int offset, IMFILE* f)
+
+ int fscanf (IMFILE* f, const char* s ...);
+ char* fgets (char* s, int n, IMFILE* f);
++
++}
+diff --git a/rtengine/rtthumbnail.cc b/rtengine/rtthumbnail.cc
+index 8dc998862..cf500474f 100644
+--- a/rtengine/rtthumbnail.cc
++++ b/rtengine/rtthumbnail.cc
+@@ -1965,7 +1965,7 @@ bool Thumbnail::writeImage (const Glib::ustring& fname)
+
+ Glib::ustring fullFName = fname + ".rtti";
+
+- FILE* f = g_fopen (fullFName.c_str (), "wb");
++ FILE* f = ::g_fopen (fullFName.c_str (), "wb");
+
+ if (!f) {
+ return false;
+@@ -2008,7 +2008,7 @@ bool Thumbnail::readImage (const Glib::ustring& fname)
+ return false;
+ }
+
+- FILE* f = g_fopen(fullFName.c_str (), "rb");
++ FILE* f = ::g_fopen(fullFName.c_str (), "rb");
+
+ if (!f) {
+ return false;
+@@ -2239,7 +2239,7 @@ bool Thumbnail::writeData (const Glib::ustring& fname)
+ return false;
+ }
+
+- FILE *f = g_fopen (fname.c_str (), "wt");
++ FILE *f = ::g_fopen (fname.c_str (), "wt");
+
+ if (!f) {
+ if (settings->verbose) {
+@@ -2262,7 +2262,7 @@ bool Thumbnail::readEmbProfile (const Glib::ustring& fname)
+ embProfile = nullptr;
+ embProfileLength = 0;
+
+- FILE* f = g_fopen (fname.c_str (), "rb");
++ FILE* f = ::g_fopen (fname.c_str (), "rb");
+
+ if (f) {
+ if (!fseek (f, 0, SEEK_END)) {
+@@ -2290,7 +2290,7 @@ bool Thumbnail::writeEmbProfile (const Glib::ustring& fname)
+ {
+
+ if (embProfileData) {
+- FILE* f = g_fopen (fname.c_str (), "wb");
++ FILE* f = ::g_fopen (fname.c_str (), "wb");
+
+ if (f) {
+ fwrite (embProfileData, 1, embProfileLength, f);
diff -udHrN -- a/rtengine/canon_cr3_decoder.cc b/rtengine/canon_cr3_decoder.cc
--- a/rtengine/canon_cr3_decoder.cc 2020-02-04 07:39:52.000000000 +0100
+++ b/rtengine/canon_cr3_decoder.cc 2021-08-07 11:43:50.725202017 +0200
@@ -662,7 +662,7 @@
#endif
struct LibRaw_abstract_datastream {
- IMFILE* ifp;
+ rtengine::IMFILE* ifp;
void lock()
{
diff -udHrN -- a/rtengine/dcraw.cc b/rtengine/dcraw.cc
--- a/rtengine/dcraw.cc 2020-02-04 07:39:52.000000000 +0100
+++ b/rtengine/dcraw.cc 2021-08-07 11:43:50.736202141 +0200
@@ -2025,7 +2025,7 @@
#endif
{
int len[2], pred[2];
- IMFILE ifpthr = *ifp;
+ rtengine::IMFILE ifpthr = *ifp;
ifpthr.plistener = nullptr;
#ifdef _OPENMP
@@ -3380,7 +3380,7 @@
{
uchar *data = new (std::nothrow) uchar[raw_width + 1];
merror(data, "sony_arw2_load_raw()");
- IMFILE ifpthr = *ifp;
+ rtengine::IMFILE ifpthr = *ifp;
int pos = ifpthr.pos;
ushort pix[16];
@@ -6394,7 +6394,7 @@
unsigned sony_curve[] = { 0,0,0,0,0,4095 };
unsigned *buf, sony_offset=0, sony_length=0, sony_key=0;
struct jhead jh;
-/*RT*/ IMFILE *sfp;
+/*RT*/ rtengine::IMFILE *sfp;
/*RT*/ int pana_raw = 0;
if (tiff_nifds >= sizeof tiff_ifd / sizeof tiff_ifd[0])
@@ -6958,7 +6958,7 @@
fread (buf, sony_length, 1, ifp);
sony_decrypt (buf, sony_length/4, 1, sony_key);
sfp = ifp;
-/*RT*/ ifp = fopen (buf, sony_length);
+/*RT*/ ifp = rtengine::fopen (buf, sony_length);
// if ((ifp = tmpfile())) {
// fwrite (buf, sony_length, 1, ifp);
// fseek (ifp, 0, SEEK_SET);
@@ -7264,7 +7264,7 @@
{
const char *file, *ext;
char *jname, *jfile, *jext;
-/*RT*/ IMFILE *save=ifp;
+/*RT*/ rtengine::IMFILE *save=ifp;
ext = strrchr (ifname, '.');
file = strrchr (ifname, '/');
@@ -7292,7 +7292,7 @@
*jext = '0';
}
if (strcmp (jname, ifname)) {
-/*RT*/ if ((ifp = fopen (jname))) {
+/*RT*/ if ((ifp = rtengine::fopen (jname))) {
// if ((ifp = fopen (jname, "rb"))) {
if (verbose)
fprintf (stderr,_("Reading metadata from %s ...\n"), jname);
diff -udHrN -- a/rtengine/dcraw.h b/rtengine/dcraw.h
--- a/rtengine/dcraw.h 2020-02-04 07:39:52.000000000 +0100
+++ b/rtengine/dcraw.h 2021-08-07 11:43:50.737202152 +0200
@@ -73,7 +73,7 @@
protected:
int exif_base, ciff_base, ciff_len;
- IMFILE *ifp;
+ rtengine::IMFILE *ifp;
FILE *ofp;
short order;
const char *ifname;
@@ -125,7 +125,7 @@
int cur_buf_size; // buffer size
uchar *cur_buf; // currently read block
int fillbytes; // Counter to add extra byte for block size N*16
- IMFILE *input;
+ rtengine::IMFILE *input;
struct int_pair grad_even[3][41]; // tables of gradients
struct int_pair grad_odd[3][41];
ushort *linealloc;
@@ -278,7 +278,7 @@
class getbithuff_t
{
public:
- getbithuff_t(DCraw *p,IMFILE *&i, unsigned &z):parent(p),bitbuf(0),vbits(0),reset(0),ifp(i),zero_after_ff(z){}
+ getbithuff_t(DCraw *p,rtengine::IMFILE *&i, unsigned &z):parent(p),bitbuf(0),vbits(0),reset(0),ifp(i),zero_after_ff(z){}
unsigned operator()(int nbits, ushort *huff);
private:
@@ -288,7 +288,7 @@
DCraw *parent;
unsigned bitbuf;
int vbits, reset;
- IMFILE *&ifp;
+ rtengine::IMFILE *&ifp;
unsigned &zero_after_ff;
};
getbithuff_t getbithuff;
@@ -296,7 +296,7 @@
class nikbithuff_t
{
public:
- explicit nikbithuff_t(IMFILE *&i):bitbuf(0),errors(0),vbits(0),ifp(i){}
+ explicit nikbithuff_t(rtengine::IMFILE *&i):bitbuf(0),errors(0),vbits(0),ifp(i){}
void operator()() {bitbuf = vbits = 0;};
unsigned operator()(int nbits, ushort *huff);
unsigned errorCount() { return errors; }
@@ -309,7 +309,7 @@
}
unsigned bitbuf, errors;
int vbits;
- IMFILE *&ifp;
+ rtengine::IMFILE *&ifp;
};
nikbithuff_t nikbithuff;
@@ -378,7 +378,7 @@
// ph1_bithuff(int nbits, ushort *huff);
class ph1_bithuff_t {
public:
- ph1_bithuff_t(DCraw *p, IMFILE *i, short &o):order(o),ifp(i),bitbuf(0),vbits(0){}
+ ph1_bithuff_t(DCraw *p, rtengine::IMFILE *i, short &o):order(o),ifp(i),bitbuf(0),vbits(0){}
unsigned operator()(int nbits, ushort *huff);
unsigned operator()(int nbits);
unsigned operator()();
@@ -412,7 +412,7 @@
}
short &order;
- IMFILE* const ifp;
+ rtengine::IMFILE* const ifp;
UINT64 bitbuf;
int vbits;
};
@@ -430,11 +430,11 @@
class pana_bits_t{
public:
- pana_bits_t(IMFILE *i, unsigned &u, unsigned enc):
+ pana_bits_t(rtengine::IMFILE *i, unsigned &u, unsigned enc):
ifp(i), load_flags(u), vbits(0), encoding(enc) {}
unsigned operator()(int nbits, unsigned *bytes=nullptr);
private:
- IMFILE *ifp;
+ rtengine::IMFILE *ifp;
unsigned &load_flags;
uchar buf[0x4000];
int vbits;
diff -udHrN -- a/rtengine/dfmanager.cc b/rtengine/dfmanager.cc
--- a/rtengine/dfmanager.cc 2020-02-04 07:39:52.000000000 +0100
+++ b/rtengine/dfmanager.cc 2021-08-07 11:43:50.738202163 +0200
@@ -540,7 +540,7 @@
int DFManager::scanBadPixelsFile( Glib::ustring filename )
{
- FILE *file = fopen( filename.c_str(), "r" );
+ FILE *file = ::fopen( filename.c_str(), "r" );
if( !file ) {
return false;
diff -udHrN -- a/rtengine/myfile.cc b/rtengine/myfile.cc
--- a/rtengine/myfile.cc 2020-02-04 07:39:52.000000000 +0100
+++ b/rtengine/myfile.cc 2021-08-07 11:43:50.738202163 +0200
@@ -70,7 +70,7 @@
#ifdef MYFILE_MMAP
-IMFILE* fopen (const char* fname)
+rtengine::IMFILE* rtengine::fopen (const char* fname)
{
int fd;
@@ -123,13 +123,13 @@
return mf;
}
-IMFILE* gfopen (const char* fname)
+rtengine::IMFILE* rtengine::gfopen (const char* fname)
{
return fopen(fname);
}
#else
-IMFILE* fopen (const char* fname)
+rtengine::IMFILE* rtengine::fopen (const char* fname)
{
FILE* f = g_fopen (fname, "rb");
@@ -152,7 +152,7 @@
return mf;
}
-IMFILE* gfopen (const char* fname)
+rtengine::IMFILE* rtengine::gfopen (const char* fname)
{
FILE* f = g_fopen (fname, "rb");
@@ -176,7 +176,7 @@
}
#endif //MYFILE_MMAP
-IMFILE* fopen (unsigned* buf, int size)
+rtengine::IMFILE* rtengine::fopen (unsigned* buf, int size)
{
IMFILE* mf = new IMFILE;
@@ -190,7 +190,7 @@
return mf;
}
-void fclose (IMFILE* f)
+void rtengine::fclose (IMFILE* f)
{
#ifdef MYFILE_MMAP
@@ -207,7 +207,7 @@
delete f;
}
-int fscanf (IMFILE* f, const char* s ...)
+int rtengine::fscanf (IMFILE* f, const char* s ...)
{
// fscanf not easily wrapped since we have no terminating \0 at end
// of file data and vsscanf() won't tell us how many characters that
@@ -253,7 +253,7 @@
}
-char* fgets (char* s, int n, IMFILE* f)
+char* rtengine::fgets (char* s, int n, IMFILE* f)
{
if (f->pos >= f->size) {
@@ -270,7 +270,7 @@
return s;
}
-void imfile_set_plistener(IMFILE *f, rtengine::ProgressListener *plistener, double progress_range)
+void rtengine::imfile_set_plistener(IMFILE *f, rtengine::ProgressListener *plistener, double progress_range)
{
f->plistener = plistener;
f->progress_range = progress_range;
@@ -278,7 +278,7 @@
f->progress_current = 0;
}
-void imfile_update_progress(IMFILE *f)
+void rtengine::imfile_update_progress(IMFILE *f)
{
if (!f->plistener || f->progress_current < f->progress_next) {
return;
diff -udHrN -- a/rtengine/myfile.h b/rtengine/myfile.h
--- a/rtengine/myfile.h 2020-02-04 07:39:52.000000000 +0100
+++ b/rtengine/myfile.h 2021-08-07 11:43:50.739202175 +0200
@@ -30,8 +30,6 @@
class ProgressListener;
-}
-
struct IMFILE {
int fd;
ssize_t pos;
@@ -141,3 +139,5 @@
int fscanf (IMFILE* f, const char* s ...);
char* fgets (char* s, int n, IMFILE* f);
+
+}
diff -udHrN -- a/rtengine/rtthumbnail.cc b/rtengine/rtthumbnail.cc
--- a/rtengine/rtthumbnail.cc 2020-02-04 07:39:52.000000000 +0100
+++ b/rtengine/rtthumbnail.cc 2021-08-07 12:02:02.091503230 +0200
@@ -1922,7 +1922,7 @@
Glib::ustring fullFName = fname + ".rtti";
- FILE* f = g_fopen (fullFName.c_str (), "wb");
+ FILE* f = ::g_fopen (fullFName.c_str (), "wb");
if (!f) {
return false;
@@ -1965,7 +1965,7 @@
return false;
}
- FILE* f = g_fopen(fullFName.c_str (), "rb");
+ FILE* f = ::g_fopen(fullFName.c_str (), "rb");
if (!f) {
return false;
@@ -2191,7 +2191,7 @@
return false;
}
- FILE *f = g_fopen (fname.c_str (), "wt");
+ FILE *f = ::g_fopen (fname.c_str (), "wt");
if (!f) {
if (settings->verbose) {
@@ -2214,7 +2214,7 @@
embProfile = nullptr;
embProfileLength = 0;
- FILE* f = g_fopen (fname.c_str (), "rb");
+ FILE* f = ::g_fopen (fname.c_str (), "rb");
if (f) {
if (!fseek (f, 0, SEEK_END)) {
@@ -2242,7 +2242,7 @@
{
if (embProfileData) {
- FILE* f = g_fopen (fname.c_str (), "wb");
+ FILE* f = ::g_fopen (fname.c_str (), "wb");
if (f) {
fwrite (embProfileData, 1, embProfileLength, f);
@@ -2257,7 +2257,7 @@
bool Thumbnail::readAEHistogram (const Glib::ustring& fname)
{
- FILE* f = g_fopen(fname.c_str(), "rb");
+ FILE* f = ::g_fopen(fname.c_str(), "rb");
if (!f) {
aeHistogram.reset();
@@ -2280,7 +2280,7 @@
{
if (aeHistogram) {
- FILE* f = g_fopen (fname.c_str (), "wb");
+ FILE* f = ::g_fopen (fname.c_str (), "wb");
if (f) {
fwrite (&aeHistogram[0], 1, (65536 >> aeHistCompression)*sizeof (aeHistogram[0]), f);

View File

@@ -1,85 +0,0 @@
# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
MY_P=${P/_rc/-rc}
inherit cmake flag-o-matic toolchain-funcs xdg-utils
DESCRIPTION="A powerful cross-platform raw image processing program"
HOMEPAGE="https://www.rawtherapee.com/"
SRC_URI="https://rawtherapee.com/shared/source/${MY_P}.tar.xz"
LICENSE="GPL-3"
SLOT="0"
KEYWORDS="amd64 ~riscv x86"
IUSE="openmp tcmalloc"
RDEPEND="
dev-cpp/atkmm:0
dev-cpp/cairomm:=
dev-cpp/glibmm:=
dev-cpp/gtkmm:3.0
dev-cpp/pangomm:=
dev-libs/expat
dev-libs/glib:=
dev-libs/libsigc++:2
gnome-base/librsvg
media-libs/lcms:2
media-libs/lensfun
media-libs/libcanberra[gtk3]
media-libs/libiptcdata
media-libs/libjpeg-turbo:=
media-libs/libpng:0=
media-libs/tiff:=
sci-libs/fftw:3.0=
sys-libs/zlib
x11-libs/gtk+:3
tcmalloc? ( dev-util/google-perftools )"
DEPEND="${RDEPEND}"
BDEPEND="virtual/pkgconfig"
S="${WORKDIR}/${MY_P}"
PATCHES=(
"${FILESDIR}/RT_5.8_fix_crop.patch"
"${FILESDIR}/RT_5.8_glibc234.patch"
)
pkg_pretend() {
[[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
}
pkg_setup() {
[[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
}
src_configure() {
# upstream tested that "fast-math" give wrong results, so filter it
# https://bugs.gentoo.org/show_bug.cgi?id=606896#c2
filter-flags -ffast-math
# -Ofast enable "fast-math" both in gcc and clang
replace-flags -Ofast -O3
# In case we add an ebuild for klt we can (i)use that one,
# see http://cecas.clemson.edu/~stb/klt/
local mycmakeargs=(
-DOPTION_OMP=$(usex openmp)
-DDOCDIR=/usr/share/doc/${PF}
-DCREDITSDIR=/usr/share/${PN}
-DLICENCEDIR=/usr/share/${PN}
-DCACHE_NAME_SUFFIX=""
-DWITH_SYSTEM_KLT="off"
-DENABLE_TCMALLOC=$(usex tcmalloc)
)
cmake_src_configure
}
pkg_postinst() {
xdg_icon_cache_update
xdg_desktop_database_update
}
pkg_postrm() {
xdg_icon_cache_update
xdg_desktop_database_update
}