Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 732274 Details for
Bug 807658
media-gfx/rawtherapee-5.8 - /.../wchar.h: error: malloc attribute argument 1 is ambiguous
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
RT-bug807658.patch
RT-bug807658.patch (text/x-diff), 32.46 KB, created by
Francesco Riosa
on 2021-08-11 14:21:33 UTC
(
hide
)
Description:
RT-bug807658.patch
Filename:
MIME Type:
Creator:
Francesco Riosa
Created:
2021-08-11 14:21:33 UTC
Size:
32.46 KB
patch
obsolete
>diff --git a/media-gfx/rawtherapee/Manifest b/media-gfx/rawtherapee/Manifest >index a0fd431..56e471b 100644 >--- a/media-gfx/rawtherapee/Manifest >+++ b/media-gfx/rawtherapee/Manifest >@@ -1 +1 @@ >-DIST rawtherapee-5.8.tar.xz 12653148 BLAKE2B f6d4b9b177ad3b6a32b460ecfc7caf5d42a01b5dd4f24da29739f5a2e5936a8d36f9857c0e24bca11f077ab0626f08bbad59ef756792d12f93ef9516427cd2c4 SHA512 bc79586cd937dcaefc053e65faa2162de887d514e44980956d937c157c6d55c4f6e6a7a9b8f91f2d657ed2054814737b96d5d741674c1e5a961d7177433efe4e >+DIST rawtherapee-5.8.tar.xz 12653148 SHA256 360528a0aae922eb5af8742f415475fb91b6d62a739da5f2804828f04ec40853 >diff --git a/media-gfx/rawtherapee/files/RT_5.8_fix_crop.patch b/media-gfx/rawtherapee/files/RT_5.8_fix_crop.patch >new file mode 100644 >index 0000000..24cbfdc >--- /dev/null >+++ b/media-gfx/rawtherapee/files/RT_5.8_fix_crop.patch >@@ -0,0 +1,221 @@ >+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; >diff --git a/media-gfx/rawtherapee/files/RT_5.8_glibc234.patch b/media-gfx/rawtherapee/files/RT_5.8_glibc234.patch >new file mode 100644 >index 0000000..791183e >--- /dev/null >+++ b/media-gfx/rawtherapee/files/RT_5.8_glibc234.patch >@@ -0,0 +1,683 @@ >+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 ℴ >++- 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 ℴ >+- 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); >diff --git a/media-gfx/rawtherapee/rawtherapee-5.8-r1.ebuild b/media-gfx/rawtherapee/rawtherapee-5.8-r1.ebuild >new file mode 100644 >index 0000000..8d30e2b >--- /dev/null >+++ b/media-gfx/rawtherapee/rawtherapee-5.8-r1.ebuild >@@ -0,0 +1,78 @@ >+# Copyright 1999-2020 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 x86" >+IUSE="openmp tcmalloc" >+ >+RDEPEND=" >+ dev-libs/expat >+ dev-libs/libsigc++:2 >+ media-libs/lcms:2 >+ media-libs/lensfun >+ media-libs/libcanberra[gtk3] >+ media-libs/libiptcdata >+ media-libs/libpng:0= >+ media-libs/tiff:0 >+ sci-libs/fftw:3.0= >+ sys-libs/zlib >+ virtual/jpeg:0 >+ x11-libs/gtk+:3 >+ tcmalloc? ( dev-util/google-perftools )" >+DEPEND="${RDEPEND} >+ dev-cpp/gtkmm:3.0 >+ gnome-base/librsvg" >+BDEPEND="virtual/pkgconfig" >+ >+S="${WORKDIR}/${MY_P}" >+ >+PATCHES=( >+ "${FILESDIR}/RT_5.8_fix_crop.patch" >+ "${FILESDIR}/RT_5.8_glibc234.patch" >+) >+ >+pkg_pretend() { >+ if use openmp ; then >+ tc-has-openmp || die "Please switch to an openmp compatible compiler" >+ fi >+} >+ >+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 >+}
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 807658
:
732100
|
732103
|
732106
|
732109
|
732112
|
732115
|
732118
| 732274