butcherg / rawproc

Raw camera and general image processor
GNU General Public License v2.0
60 stars 11 forks source link

[macOS] Some issues with the build #25

Closed barracuda156 closed 5 months ago

barracuda156 commented 1 year ago

Also, is there anything x86-only? I am interested to build it for PowerPC.

butcherg commented 1 year ago

Never tried it, don't have a machine to do so. Also, have not heard from any of the dozen-or so user base...

The long pole in the tent, wxWidgets, has a macOS build, so that shouldn't be tough. The rest, libraw, littlecms2, exiv2, lensfun are all unix-buildable, and libjpeg, libtiff, and libpng should be available in the macOS package repository. Definitely a build-by-hand sort of thing; if you try it, bring your error messages here and I'll help you work through them.

No architecture-specific code in the rawproc tree. Closest I got was when I was poking around with half-floats, but I don't even think that touched hardware stuff.

barracuda156 commented 1 year ago

@butcherg Thank you! Sounds good. (As I recall, wxWidgets 3.2 won’t build for any PPC system as-is, but I think I had a dirty hack for it. wxWidgets 3.0 builds normally.)

I will verify tonight other dependencies, but from look of things, all should be good. If so, then I can try building and update you.

butcherg commented 1 year ago

I'm currently using wxWidgets 3.1.4, if that helps...

barracuda156 commented 1 year ago

@butcherg All dependencies build fine. However, for whatever reason we have no wxWidgets 3.1 in Macports. So I do not yet know if it builds. I will try.

In the meanwhile, is it possible to add a configure option to specify location of wxWidgets installation? Something like --with-wx-prefix.

P. S. wxWidgets 3.0 cannot work, right?

barracuda156 commented 1 year ago

UPD. Hmm, perhaps I had some work on wxWidgets 3.2, but either did not succeed or postponed it. wxWidgets 3.1 seems to be a development branch, and its requirements for SDK are no better: 10.11+ (!): https://raw.githubusercontent.com/wxWidgets/wxWidgets/v3.1.7/docs/changes.txt

If it is possible to support wxWidgets 3.0, that would be awesome.

barracuda156 commented 1 year ago

@butcherg It wants wxWidgets even when they are disabled (header uses unprotected include of wx.h):

--->  Configuring rawproc
Executing:  cd "/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_graphics_rawproc/rawproc/work/rawproc-1.3" && autoreconf --install --verbose 
autoreconf: export WARNINGS=
autoreconf: Entering directory '.'
autoreconf: configure.ac: not using Gettext
autoreconf: running: /opt/local/bin/aclocal 
autoreconf: configure.ac: tracing
autoreconf: configure.ac: not using Libtool
autoreconf: configure.ac: not using Intltool
autoreconf: configure.ac: not using Gtkdoc
autoreconf: running: /opt/local/bin/autoconf
autoreconf: configure.ac: not using Autoheader
autoreconf: running: /opt/local/bin/automake --add-missing --copy --no-force
configure.ac:15: installing './compile'
configure.ac:6: installing './install-sh'
configure.ac:6: installing './missing'
src/Makefile.am: installing './depcomp'
autoreconf: Leaving directory '.'
Executing:  cd "/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_graphics_rawproc/rawproc/work/rawproc-1.3" && ./configure --prefix=/opt/local --enable-dcraw=no --enable-lensfun=yes --enable-lensfunupdate=no --enable-librtprocess --enable-wxwidgets=no 
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a race-free mkdir -p... /opt/local/bin/gmkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking for gcc... /opt/local/bin/gcc-mp-12
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether the compiler supports GNU C... yes
checking whether /opt/local/bin/gcc-mp-12 accepts -g... yes
checking for /opt/local/bin/gcc-mp-12 option to enable C11 features... none needed
checking whether /opt/local/bin/gcc-mp-12 understands -c and -o together... yes
checking whether make supports the include directive... yes (GNU style)
checking dependency style of /opt/local/bin/gcc-mp-12... gcc3
checking whether the compiler supports GNU C++... yes
checking whether /opt/local/bin/g++-mp-12 accepts -g... yes
checking for /opt/local/bin/g++-mp-12 option to enable C++11 features... none needed
checking dependency style of /opt/local/bin/g++-mp-12... gcc3
checking for /opt/local/bin/g++-mp-12 option to support OpenMP... -fopenmp
checking whether we are building for a Win32 host... no
checking for pkg-config... /opt/local/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for libjpeg... yes
checking for libtiff-4... yes
checking for libpng... yes
checking for lcms2... yes
checking for exiv2... yes
checking for libraw... yes
checking for lensfun... yes
checking for rtprocess... yes
checking for stdio.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for strings.h... yes
checking for sys/stat.h... yes
checking for sys/types.h... yes
checking for unistd.h... yes
checking for arpa/inet.h... yes
checking for locale.h... yes
checking for stdint.h... (cached) yes
checking for stdlib.h... (cached) yes
checking for string.h... (cached) yes
checking for sys/time.h... yes
checking for unistd.h... (cached) yes
checking for _Bool... no
checking for stdbool.h that conforms to C99... yes
checking for inline... inline
checking for size_t... yes
checking for uint32_t... yes
checking for uint64_t... yes
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating src/Makefile
config.status: executing depfiles commands
--->  Building rawproc
Executing:  cd "/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_graphics_rawproc/rawproc/work/rawproc-1.3" && /usr/bin/make -j6 -w all 
make: Entering directory `/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_graphics_rawproc/rawproc/work/rawproc-1.3'
Making all in src
make[1]: Entering directory `/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_graphics_rawproc/rawproc/work/rawproc-1.3/src'
/opt/local/bin/g++-mp-12 -DPACKAGE_NAME=\"rawproc\" -DPACKAGE_TARNAME=\"rawproc\" -DPACKAGE_VERSION=\"1.3\" -DPACKAGE_STRING=\"rawproc\ 1.3\" -DPACKAGE_BUGREPORT=\"glenn.butcher@gmail.com\" -DPACKAGE_URL=\"\" -DPACKAGE=\"rawproc\" -DVERSION=\"1.3\" -DHAVE_STDIO_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_STRINGS_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_UNISTD_H=1 -DSTDC_HEADERS=1 -DHAVE_ARPA_INET_H=1 -DHAVE_LOCALE_H=1 -DHAVE_STDINT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_SYS_TIME_H=1 -DHAVE_UNISTD_H=1 -I.  -DBUILDDATE='"Thu Jun 15 01:44:38 CST 2023"' -I/opt/local/include/lensfun -I/opt/local/include/glib-2.0 -I/opt/local/lib/glib-2.0/include -I/opt/local/include/libraw   -I/opt/local/include/libpng16   -isystem/opt/local/include/LegacySupport -I/opt/local/include   -fopenmp -pipe -Os -D_GLIBCXX_USE_CXX11_ABI=0 -arch ppc -DUSE_LENSFUN -DUSE_LIBRTPROCESS  -MT curve.o -MD -MP -MF .deps/curve.Tpo -c -o curve.o curve.cpp
/opt/local/bin/g++-mp-12 -DPACKAGE_NAME=\"rawproc\" -DPACKAGE_TARNAME=\"rawproc\" -DPACKAGE_VERSION=\"1.3\" -DPACKAGE_STRING=\"rawproc\ 1.3\" -DPACKAGE_BUGREPORT=\"glenn.butcher@gmail.com\" -DPACKAGE_URL=\"\" -DPACKAGE=\"rawproc\" -DVERSION=\"1.3\" -DHAVE_STDIO_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_STRINGS_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_UNISTD_H=1 -DSTDC_HEADERS=1 -DHAVE_ARPA_INET_H=1 -DHAVE_LOCALE_H=1 -DHAVE_STDINT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_SYS_TIME_H=1 -DHAVE_UNISTD_H=1 -I.  -DBUILDDATE='"Thu Jun 15 01:44:38 CST 2023"' -I/opt/local/include/lensfun -I/opt/local/include/glib-2.0 -I/opt/local/lib/glib-2.0/include -I/opt/local/include/libraw   -I/opt/local/include/libpng16   -isystem/opt/local/include/LegacySupport -I/opt/local/include   -fopenmp -pipe -Os -D_GLIBCXX_USE_CXX11_ABI=0 -arch ppc -DUSE_LENSFUN -DUSE_LIBRTPROCESS  -MT CurvePane.o -MD -MP -MF .deps/CurvePane.Tpo -c -o CurvePane.o CurvePane.cpp
/opt/local/bin/g++-mp-12 -DPACKAGE_NAME=\"rawproc\" -DPACKAGE_TARNAME=\"rawproc\" -DPACKAGE_VERSION=\"1.3\" -DPACKAGE_STRING=\"rawproc\ 1.3\" -DPACKAGE_BUGREPORT=\"glenn.butcher@gmail.com\" -DPACKAGE_URL=\"\" -DPACKAGE=\"rawproc\" -DVERSION=\"1.3\" -DHAVE_STDIO_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_STRINGS_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_UNISTD_H=1 -DSTDC_HEADERS=1 -DHAVE_ARPA_INET_H=1 -DHAVE_LOCALE_H=1 -DHAVE_STDINT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_SYS_TIME_H=1 -DHAVE_UNISTD_H=1 -I.  -DBUILDDATE='"Thu Jun 15 01:44:38 CST 2023"' -I/opt/local/include/lensfun -I/opt/local/include/glib-2.0 -I/opt/local/lib/glib-2.0/include -I/opt/local/include/libraw   -I/opt/local/include/libpng16   -isystem/opt/local/include/LegacySupport -I/opt/local/include   -fopenmp -pipe -Os -D_GLIBCXX_USE_CXX11_ABI=0 -arch ppc -DUSE_LENSFUN -DUSE_LIBRTPROCESS  -MT CameraData.o -MD -MP -MF .deps/CameraData.Tpo -c -o CameraData.o CameraData.cpp
/opt/local/bin/g++-mp-12 -DPACKAGE_NAME=\"rawproc\" -DPACKAGE_TARNAME=\"rawproc\" -DPACKAGE_VERSION=\"1.3\" -DPACKAGE_STRING=\"rawproc\ 1.3\" -DPACKAGE_BUGREPORT=\"glenn.butcher@gmail.com\" -DPACKAGE_URL=\"\" -DPACKAGE=\"rawproc\" -DVERSION=\"1.3\" -DHAVE_STDIO_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_STRINGS_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_UNISTD_H=1 -DSTDC_HEADERS=1 -DHAVE_ARPA_INET_H=1 -DHAVE_LOCALE_H=1 -DHAVE_STDINT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_SYS_TIME_H=1 -DHAVE_UNISTD_H=1 -I.  -DBUILDDATE='"Thu Jun 15 01:44:38 CST 2023"' -I/opt/local/include/lensfun -I/opt/local/include/glib-2.0 -I/opt/local/lib/glib-2.0/include -I/opt/local/include/libraw   -I/opt/local/include/libpng16   -isystem/opt/local/include/LegacySupport -I/opt/local/include   -fopenmp -pipe -Os -D_GLIBCXX_USE_CXX11_ABI=0 -arch ppc -DUSE_LENSFUN -DUSE_LIBRTPROCESS  -MT elapsedtime.o -MD -MP -MF .deps/elapsedtime.Tpo -c -o elapsedtime.o elapsedtime.cpp
In file included from CurvePane.cpp:1:
CurvePane.h:5:10: fatal error: wx/wx.h: No such file or directory
    5 | #include "wx/wx.h"
      |          ^~~~~~~~~
compilation terminated.

That should either be fixed or, if building without wxWidgets makes no sense, then configure option should not be there, I guess.

butcherg commented 1 year ago

I'm pretty sure I use some file stuff from wxWidgets that is only in 3.1...

The instructions in the README to build without wxWidgets are only to build img, the command line program. That's why the next lines in the README are cd src; make img

It may be that you have to build wxWidgets yourself. It is really pretty easy to do, their build system handles a lot of stuff automatically. The relevant instructions to do so are in the README, here:

https://github.com/butcherg/rawproc/blob/master/README.md?plain=1#L140

To include such in a rawproc build you use the --with-wx-config parameter in the ../configure command to specify the path to the wxWidgets wx-config script, see this line in the README:

https://github.com/butcherg/rawproc/blob/master/README.md?plain=1#L163

barracuda156 commented 1 year ago

With 3.0 I run into missing SetDoubleBuffered in CurvePane and myHistogramPane.

P. S. --with-wx-config works as intended.

barracuda156 commented 7 months ago

@butcherg It took forever to return to this :)

I can confirm that img target builds for me on 10.6 PowerPC (where wxWidgets 3.2 do not build at the moment). I will add rawproc to Macports. Thank you!

barracuda156 commented 7 months ago

UPD. On Sonoma, however, it turns out that Clang is not happy with the code:

  1. Default build errs out on:

    In file included from gimage.cpp:21:
    In file included from /opt/local/include/exiv2/exiv2.hpp:27:
    /opt/local/include/exiv2/basicio.hpp:524:9: error: no template named 'auto_ptr' in namespace 'std'; did you mean simply 'auto_ptr'?
    524 |         std::auto_ptr<Impl> p_;
      |         ^~~~~~~~~~~~~
      |         auto_ptr
    /opt/local/include/exiv2/config.h:105:3: note: 'auto_ptr' declared here
    105 |   using auto_ptr = std::unique_ptr<T>;
      |   ^
    In file included from gimage.cpp:21:
    In file included from /opt/local/include/exiv2/exiv2.hpp:27:
    /opt/local/include/exiv2/basicio.hpp:724:9: error: no template named 'auto_ptr' in namespace 'std'; did you mean simply 'auto_ptr'?
    724 |         std::auto_ptr<Impl> p_;
      |         ^~~~~~~~~~~~~
      |         auto_ptr
    /opt/local/include/exiv2/config.h:105:3: note: 'auto_ptr' declared here
    105 |   using auto_ptr = std::unique_ptr<T>;
      |   ^
  2. Okay, I add -D_LIBCPP_ENABLE_CXX17_REMOVED_FEATURES and try again:

    gimage_parse.cpp:458:47: error: cannot pass object of non-trivial type 'mapped_type' (aka 'std::string') through variadic function; call will abort at runtime [-Wnon-pod-varargs]
    458 |                 pmap["cmdlabel"] = string_format("curve:%s",pmap["channel"]);
      |                                                             ^
    gimage_parse.cpp:1083:20: warning: equality comparison result unused [-Wunused-comparison]
    1083 |                         pmap["hmirror"] == "true";
      |                         ~~~~~~~~~~~~~~~~^~~~~~~~~
    gimage_parse.cpp:1083:20: note: use '=' to turn this equality comparison into an assignment
    1083 |                         pmap["hmirror"] == "true";
      |                                         ^~
      |                                         =
    gimage_parse.cpp:1086:20: warning: equality comparison result unused [-Wunused-comparison]
    1086 |                         pmap["vmirror"] == "true";
      |                         ~~~~~~~~~~~~~~~~^~~~~~~~~
    gimage_parse.cpp:1086:20: note: use '=' to turn this equality comparison into an assignment
    1086 |                         pmap["vmirror"] == "true";
      |                                         ^~
      |                                         =
    gimage_parse.cpp:1095:22: warning: equality comparison result unused [-Wunused-comparison]
    1095 |                                 pmap["autocrop"] == "true";
      |                                 ~~~~~~~~~~~~~~~~~^~~~~~~~~
    gimage_parse.cpp:1095:22: note: use '=' to turn this equality comparison into an assignment
    1095 |                                 pmap["autocrop"] == "true";
      |                                                  ^~
      |                                                  =
    3 warnings and 1 error generated.
    make[1]: *** [gimage_parse.o] Error 1
  3. Then, I pass also -Wno-non-pod-varargs, and it fails on:

In file included from rawimage.cpp:18:
./nikonlensid.h:731:10: error: expected ')'
  731 | uint64_t htonll(uint64_t value)
      |          ^
/Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk/usr/include/sys/_endian.h:142:25: note: expanded from macro 'htonll'
  142 | #define htonll(x)       __DARWIN_OSSwapInt64(x)
      |                         ^
/Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk/usr/include/libkern/_OSByteOrder.h:91:30: note: expanded from macro '__DARWIN_OSSwapInt64'
   91 |     (__builtin_constant_p(x) ? __DARWIN_OSSwapConstInt64(x) : _OSSwapInt64(x))
      |                              ^
./nikonlensid.h:731:10: note: to match this '('
/Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk/usr/include/sys/_endian.h:142:25: note: expanded from macro 'htonll'
  142 | #define htonll(x)       __DARWIN_OSSwapInt64(x)
      |                         ^
/Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk/usr/include/libkern/_OSByteOrder.h:91:5: note: expanded from macro '__DARWIN_OSSwapInt64'
   91 |     (__builtin_constant_p(x) ? __DARWIN_OSSwapConstInt64(x) : _OSSwapInt64(x))
      |     ^
In file included from rawimage.cpp:18:
./nikonlensid.h:731:10: error: cannot redeclare builtin function '__builtin_constant_p'
  731 | uint64_t htonll(uint64_t value)
      |          ^
/Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk/usr/include/sys/_endian.h:142:25: note: expanded from macro 'htonll'
  142 | #define htonll(x)       __DARWIN_OSSwapInt64(x)
      |                         ^
/Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk/usr/include/libkern/_OSByteOrder.h:91:6: note: expanded from macro '__DARWIN_OSSwapInt64'
   91 |     (__builtin_constant_p(x) ? __DARWIN_OSSwapConstInt64(x) : _OSSwapInt64(x))
      |      ^
/opt/local/libexec/llvm-17/bin/../include/c++/v1/__utility/is_pointer_in_range.h:42:10: note: '__builtin_constant_p' is a builtin with type 'int (...) noexcept'
   42 |     if (!__builtin_constant_p(__begin <= __ptr && __ptr < __end))
      |          ^
2 errors generated.
make: *** [rawimage.o] Error 1

P. S. This is with Clang-17, since Apple Clang fails already on missing OpenMP support (and --disable-openmp does not help).

barracuda156 commented 7 months ago

@butcherg The last issue looks like this, I guess? https://github.com/Qihoo360/logkafka/issues/26

butcherg commented 7 months ago

Okay, just pushed a commit to fix all of the above.

I just renamed htonll to something local; I'm not a network app so there.

gcc just ignores my horrid lack of discipline checking equality/assignment typos; if you find more of those let me know.

barracuda156 commented 7 months ago

@butcherg Thank you, I will try to build it again.

barracuda156 commented 7 months ago

@butcherg If I build from 8a2521b974d40005e7f1828ac51153e266fe7246 without extra flags passed, the build still fails on Sonoma:

/opt/local/bin/clang++-mp-17 -DPACKAGE_NAME=\"rawproc\" -DPACKAGE_TARNAME=\"rawproc\" -DPACKAGE_VERSION=\"1.3\" -DPACKAGE_STRING=\"rawproc\ 1.3\" -DPACKAGE_BUGREPORT=\"glenn.butcher@gmail.com\" -DPACKAGE_URL=\"\" -DPACKAGE=\"rawproc\" -DVERSION=\"1.3\" -DHAVE_STDIO_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_STRINGS_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_UNISTD_H=1 -DSTDC_HEADERS=1 -DHAVE_ARPA_INET_H=1 -DHAVE_LOCALE_H=1 -DHAVE_STDINT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_SYS_TIME_H=1 -DHAVE_UNISTD_H=1 -I.  -DBUILDDATE='"Wed Mar 27 16:08:24 CST 2024"' -I/opt/local/include/lensfun -I/opt/local/include/glib-2.0 -I/opt/local/lib/glib-2.0/include -I/opt/local/include/libraw   -I/opt/local/include/libpng16   -I/opt/local/include -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk   -fopenmp -pipe -Os -stdlib=libc++ -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk -arch arm64 -DUSE_LENSFUN -DUSE_LIBRTPROCESS  -MT gimage.o -MD -MP -MF .deps/gimage.Tpo -c -o gimage.o gimage.cpp
img.cpp:298:10: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  298 |         if (pos = std::string::npos) return "";
      |             ~~~~^~~~~~~~~~~~~~~~~~~
img.cpp:298:10: note: place parentheses around the assignment to silence this warning
  298 |         if (pos = std::string::npos) return "";
      |                 ^                  
      |             (                      )
img.cpp:298:10: note: use '==' to turn this assignment into an equality comparison
  298 |         if (pos = std::string::npos) return "";
      |                 ^
      |                 ==
In file included from gimage.cpp:21:
In file included from /opt/local/include/exiv2/exiv2.hpp:26:
In file included from /opt/local/include/exiv2/datasets.hpp:33:
In file included from /opt/local/include/exiv2/metadatum.hpp:27:
/opt/local/include/exiv2/value.hpp:54:17: error: no template named 'auto_ptr' in namespace 'std'; did you mean simply 'auto_ptr'?
   54 |         typedef std::auto_ptr<Value> AutoPtr;
      |                 ^~~~~~~~~~~~~
      |                 auto_ptr
/opt/local/include/exiv2/config.h:105:3: note: 'auto_ptr' declared here
  105 |   using auto_ptr = std::unique_ptr<T>;
      |   ^
In file included from gimage.cpp:21:
In file included from /opt/local/include/exiv2/exiv2.hpp:26:
In file included from /opt/local/include/exiv2/datasets.hpp:33:
In file included from /opt/local/include/exiv2/metadatum.hpp:27:
/opt/local/include/exiv2/value.hpp:256:17: error: no template named 'auto_ptr' in namespace 'std'; did you mean simply 'auto_ptr'?
  256 |         typedef std::auto_ptr<DataValue> AutoPtr;
      |                 ^~~~~~~~~~~~~
      |                 auto_ptr
/opt/local/include/exiv2/config.h:105:3: note: 'auto_ptr' declared here
  105 |   using auto_ptr = std::unique_ptr<T>;
      |   ^
In file included from gimage.cpp:21:
In file included from /opt/local/include/exiv2/exiv2.hpp:26:
In file included from /opt/local/include/exiv2/datasets.hpp:33:
In file included from /opt/local/include/exiv2/metadatum.hpp:27:
/opt/local/include/exiv2/value.hpp:338:17: error: no template named 'auto_ptr' in namespace 'std'; did you mean simply 'auto_ptr'?
  338 |         typedef std::auto_ptr<StringValueBase> AutoPtr;
      |                 ^~~~~~~~~~~~~
      |                 auto_ptr
/opt/local/include/exiv2/config.h:105:3: note: 'auto_ptr' declared here
  105 |   using auto_ptr = std::unique_ptr<T>;
      |   ^
In file included from gimage.cpp:21:
In file included from /opt/local/include/exiv2/exiv2.hpp:26:
In file included from /opt/local/include/exiv2/datasets.hpp:33:
In file included from /opt/local/include/exiv2/metadatum.hpp:27:
/opt/local/include/exiv2/value.hpp:420:17: error: no template named 'auto_ptr' in namespace 'std'; did you mean simply 'auto_ptr'?
  420 |         typedef std::auto_ptr<StringValue> AutoPtr;
      |                 ^~~~~~~~~~~~~
      |                 auto_ptr
/opt/local/include/exiv2/config.h:105:3: note: 'auto_ptr' declared here
  105 |   using auto_ptr = std::unique_ptr<T>;
      |   ^
In file included from gimage.cpp:21:
In file included from /opt/local/include/exiv2/exiv2.hpp:26:
In file included from /opt/local/include/exiv2/datasets.hpp:33:
In file included from /opt/local/include/exiv2/metadatum.hpp:27:
/opt/local/include/exiv2/value.hpp:452:17: error: no template named 'auto_ptr' in namespace 'std'; did you mean simply 'auto_ptr'?
  452 |         typedef std::auto_ptr<AsciiValue> AutoPtr;
      |                 ^~~~~~~~~~~~~
      |                 auto_ptr
/opt/local/include/exiv2/config.h:105:3: note: 'auto_ptr' declared here
  105 |   using auto_ptr = std::unique_ptr<T>;
      |   ^
In file included from gimage.cpp:21:
In file included from /opt/local/include/exiv2/exiv2.hpp:26:
In file included from /opt/local/include/exiv2/datasets.hpp:33:
In file included from /opt/local/include/exiv2/metadatum.hpp:27:
/opt/local/include/exiv2/value.hpp:540:17: error: no template named 'auto_ptr' in namespace 'std'; did you mean simply 'auto_ptr'?
  540 |         typedef std::auto_ptr<CommentValue> AutoPtr;
      |                 ^~~~~~~~~~~~~
      |                 auto_ptr
/opt/local/include/exiv2/config.h:105:3: note: 'auto_ptr' declared here
  105 |   using auto_ptr = std::unique_ptr<T>;
      |   ^
In file included from gimage.cpp:21:
In file included from /opt/local/include/exiv2/exiv2.hpp:26:
In file included from /opt/local/include/exiv2/datasets.hpp:33:
In file included from /opt/local/include/exiv2/metadatum.hpp:27:
/opt/local/include/exiv2/value.hpp:627:17: error: no template named 'auto_ptr' in namespace 'std'; did you mean simply 'auto_ptr'?
  627 |         typedef std::auto_ptr<XmpValue> AutoPtr;
      |                 ^~~~~~~~~~~~~
      |                 auto_ptr
/opt/local/include/exiv2/config.h:105:3: note: 'auto_ptr' declared here
  105 |   using auto_ptr = std::unique_ptr<T>;
      |   ^
In file included from gimage.cpp:21:
In file included from /opt/local/include/exiv2/exiv2.hpp:26:
In file included from /opt/local/include/exiv2/datasets.hpp:33:
In file included from /opt/local/include/exiv2/metadatum.hpp:27:
/opt/local/include/exiv2/value.hpp:718:17: error: no template named 'auto_ptr' in namespace 'std'; did you mean simply 'auto_ptr'?
  718 |         typedef std::auto_ptr<XmpTextValue> AutoPtr;
      |                 ^~~~~~~~~~~~~
      |                 auto_ptr
/opt/local/include/exiv2/config.h:105:3: note: 'auto_ptr' declared here
  105 |   using auto_ptr = std::unique_ptr<T>;
      |   ^
In file included from gimage.cpp:21:
In file included from /opt/local/include/exiv2/exiv2.hpp:26:
In file included from /opt/local/include/exiv2/datasets.hpp:33:
In file included from /opt/local/include/exiv2/metadatum.hpp:27:
/opt/local/include/exiv2/value.hpp:800:17: error: no template named 'auto_ptr' in namespace 'std'; did you mean simply 'auto_ptr'?
  800 |         typedef std::auto_ptr<XmpArrayValue> AutoPtr;
      |                 ^~~~~~~~~~~~~
      |                 auto_ptr
/opt/local/include/exiv2/config.h:105:3: note: 'auto_ptr' declared here
  105 |   using auto_ptr = std::unique_ptr<T>;
      |   ^
In file included from gimage.cpp:21:
In file included from /opt/local/include/exiv2/exiv2.hpp:26:
In file included from /opt/local/include/exiv2/datasets.hpp:33:
In file included from /opt/local/include/exiv2/metadatum.hpp:27:
/opt/local/include/exiv2/value.hpp:893:17: error: no template named 'auto_ptr' in namespace 'std'; did you mean simply 'auto_ptr'?
  893 |         typedef std::auto_ptr<LangAltValue> AutoPtr;
      |                 ^~~~~~~~~~~~~
      |                 auto_ptr
/opt/local/include/exiv2/config.h:105:3: note: 'auto_ptr' declared here
  105 |   using auto_ptr = std::unique_ptr<T>;
      |   ^
In file included from gimage.cpp:21:
In file included from /opt/local/include/exiv2/exiv2.hpp:26:
In file included from /opt/local/include/exiv2/datasets.hpp:33:
In file included from /opt/local/include/exiv2/metadatum.hpp:27:
/opt/local/include/exiv2/value.hpp:981:17: error: no template named 'auto_ptr' in namespace 'std'; did you mean simply 'auto_ptr'?
  981 |         typedef std::auto_ptr<DateValue> AutoPtr;
      |                 ^~~~~~~~~~~~~
      |                 auto_ptr
/opt/local/include/exiv2/config.h:105:3: note: 'auto_ptr' declared here
  105 |   using auto_ptr = std::unique_ptr<T>;
      |   ^
In file included from gimage.cpp:21:
In file included from /opt/local/include/exiv2/exiv2.hpp:26:
In file included from /opt/local/include/exiv2/datasets.hpp:33:
In file included from /opt/local/include/exiv2/metadatum.hpp:27:
/opt/local/include/exiv2/value.hpp:1082:17: error: no template named 'auto_ptr' in namespace 'std'; did you mean simply 'auto_ptr'?
 1082 |         typedef std::auto_ptr<TimeValue> AutoPtr;
      |                 ^~~~~~~~~~~~~
      |                 auto_ptr
/opt/local/include/exiv2/config.h:105:3: note: 'auto_ptr' declared here
  105 |   using auto_ptr = std::unique_ptr<T>;
      |   ^
In file included from gimage.cpp:21:
In file included from /opt/local/include/exiv2/exiv2.hpp:26:
In file included from /opt/local/include/exiv2/datasets.hpp:33:
In file included from /opt/local/include/exiv2/metadatum.hpp:27:
/opt/local/include/exiv2/value.hpp:1238:17: error: no template named 'auto_ptr' in namespace 'std'; did you mean simply 'auto_ptr'?
 1238 |         typedef std::auto_ptr<ValueType<T> > AutoPtr;
      |                 ^~~~~~~~~~~~~
      |                 auto_ptr
/opt/local/include/exiv2/config.h:105:3: note: 'auto_ptr' declared here
  105 |   using auto_ptr = std::unique_ptr<T>;
      |   ^
In file included from gimage.cpp:21:
In file included from /opt/local/include/exiv2/exiv2.hpp:26:
In file included from /opt/local/include/exiv2/datasets.hpp:33:
/opt/local/include/exiv2/metadatum.hpp:47:17: error: no template named 'auto_ptr' in namespace 'std'; did you mean simply 'auto_ptr'?
   47 |         typedef std::auto_ptr<Key> AutoPtr;
      |                 ^~~~~~~~~~~~~
      |                 auto_ptr
/opt/local/include/exiv2/config.h:105:3: note: 'auto_ptr' declared here
  105 |   using auto_ptr = std::unique_ptr<T>;
      |   ^
mv -f .deps/curve.Tpo .deps/curve.Po
/opt/local/bin/clang++-mp-17 -DPACKAGE_NAME=\"rawproc\" -DPACKAGE_TARNAME=\"rawproc\" -DPACKAGE_VERSION=\"1.3\" -DPACKAGE_STRING=\"rawproc\ 1.3\" -DPACKAGE_BUGREPORT=\"glenn.butcher@gmail.com\" -DPACKAGE_URL=\"\" -DPACKAGE=\"rawproc\" -DVERSION=\"1.3\" -DHAVE_STDIO_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_STRINGS_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_UNISTD_H=1 -DSTDC_HEADERS=1 -DHAVE_ARPA_INET_H=1 -DHAVE_LOCALE_H=1 -DHAVE_STDINT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_SYS_TIME_H=1 -DHAVE_UNISTD_H=1 -I.  -DBUILDDATE='"Wed Mar 27 16:08:24 CST 2024"' -I/opt/local/include/lensfun -I/opt/local/include/glib-2.0 -I/opt/local/lib/glib-2.0/include -I/opt/local/include/libraw   -I/opt/local/include/libpng16   -I/opt/local/include -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk   -fopenmp -pipe -Os -stdlib=libc++ -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk -arch arm64 -DUSE_LENSFUN -DUSE_LIBRTPROCESS  -MT gimage_cmd.o -MD -MP -MF .deps/gimage_cmd.Tpo -c -o gimage_cmd.o gimage_cmd.cpp
In file included from gimage.cpp:21:
In file included from /opt/local/include/exiv2/exiv2.hpp:26:
/opt/local/include/exiv2/datasets.hpp:278:17: error: no template named 'auto_ptr' in namespace 'std'; did you mean simply 'auto_ptr'?
  278 |         typedef std::auto_ptr<IptcKey> AutoPtr;
      |                 ^~~~~~~~~~~~~
      |                 auto_ptr
/opt/local/include/exiv2/config.h:105:3: note: 'auto_ptr' declared here
  105 |   using auto_ptr = std::unique_ptr<T>;
      |   ^
In file included from gimage.cpp:21:
In file included from /opt/local/include/exiv2/exiv2.hpp:27:
/opt/local/include/exiv2/basicio.hpp:58:17: error: no template named 'auto_ptr' in namespace 'std'; did you mean simply 'auto_ptr'?
   58 |         typedef std::auto_ptr<BasicIo> AutoPtr;
      |                 ^~~~~~~~~~~~~
      |                 auto_ptr
/opt/local/include/exiv2/config.h:105:3: note: 'auto_ptr' declared here
  105 |   using auto_ptr = std::unique_ptr<T>;
      |   ^
In file included from gimage.cpp:21:
In file included from /opt/local/include/exiv2/exiv2.hpp:27:
/opt/local/include/exiv2/basicio.hpp:524:9: error: no template named 'auto_ptr' in namespace 'std'; did you mean simply 'auto_ptr'?
  524 |         std::auto_ptr<Impl> p_;
      |         ^~~~~~~~~~~~~
      |         auto_ptr
/opt/local/include/exiv2/config.h:105:3: note: 'auto_ptr' declared here
  105 |   using auto_ptr = std::unique_ptr<T>;
      |   ^
In file included from gimage.cpp:21:
In file included from /opt/local/include/exiv2/exiv2.hpp:27:
/opt/local/include/exiv2/basicio.hpp:724:9: error: no template named 'auto_ptr' in namespace 'std'; did you mean simply 'auto_ptr'?
  724 |         std::auto_ptr<Impl> p_;
      |         ^~~~~~~~~~~~~
      |         auto_ptr
/opt/local/include/exiv2/config.h:105:3: note: 'auto_ptr' declared here
  105 |   using auto_ptr = std::unique_ptr<T>;
      |   ^
In file included from gimage.cpp:21:
In file included from /opt/local/include/exiv2/exiv2.hpp:28:
In file included from /opt/local/include/exiv2/bmffimage.hpp:27:
In file included from /opt/local/include/exiv2/image.hpp:28:
In file included from /opt/local/include/exiv2/exif.hpp:35:
/opt/local/include/exiv2/tags.hpp:143:17: error: no template named 'auto_ptr' in namespace 'std'; did you mean simply 'auto_ptr'?
  143 |         typedef std::auto_ptr<ExifKey> AutoPtr;
      |                 ^~~~~~~~~~~~~
      |                 auto_ptr
/opt/local/include/exiv2/config.h:105:3: note: 'auto_ptr' declared here
  105 |   using auto_ptr = std::unique_ptr<T>;
      |   ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
mv -f .deps/CameraData.Tpo .deps/CameraData.Po
/opt/local/bin/clang++-mp-17 -DPACKAGE_NAME=\"rawproc\" -DPACKAGE_TARNAME=\"rawproc\" -DPACKAGE_VERSION=\"1.3\" -DPACKAGE_STRING=\"rawproc\ 1.3\" -DPACKAGE_BUGREPORT=\"glenn.butcher@gmail.com\" -DPACKAGE_URL=\"\" -DPACKAGE=\"rawproc\" -DVERSION=\"1.3\" -DHAVE_STDIO_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_STRINGS_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_UNISTD_H=1 -DSTDC_HEADERS=1 -DHAVE_ARPA_INET_H=1 -DHAVE_LOCALE_H=1 -DHAVE_STDINT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_SYS_TIME_H=1 -DHAVE_UNISTD_H=1 -I.  -DBUILDDATE='"Wed Mar 27 16:08:25 CST 2024"' -I/opt/local/include/lensfun -I/opt/local/include/glib-2.0 -I/opt/local/lib/glib-2.0/include -I/opt/local/include/libraw   -I/opt/local/include/libpng16   -I/opt/local/include -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk   -fopenmp -pipe -Os -stdlib=libc++ -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk -arch arm64 -DUSE_LENSFUN -DUSE_LIBRTPROCESS  -MT gimage_parse.o -MD -MP -MF .deps/gimage_parse.Tpo -c -o gimage_parse.o gimage_parse.cpp
20 errors generated.
make: *** [gimage.o] Error 1
make: *** Waiting for unfinished jobs....
1 warning generated.
mv -f .deps/img.Tpo .deps/img.Po
gimage_parse.cpp:909:20: warning: & has lower precedence than >=; >= will be evaluated first [-Wparentheses]
  909 |                 if (p.size() >=1 & p[0] == "ptlens") {
      |                     ~~~~~~~~~~~~~^
gimage_parse.cpp:909:20: note: place parentheses around the '>=' expression to silence this warning
  909 |                 if (p.size() >=1 & p[0] == "ptlens") {
      |                                  ^
      |                     (           )
gimage_parse.cpp:909:20: note: place parentheses around the & expression to evaluate it first
  909 |                 if (p.size() >=1 & p[0] == "ptlens") {
      |                                  ^                 
      |                                (                   )
gimage_parse.cpp:945:25: warning: & has lower precedence than >=; >= will be evaluated first [-Wparentheses]
  945 |                 else if (p.size() >=1 & p[0] == "adobe") {
      |                          ~~~~~~~~~~~~~^
gimage_parse.cpp:945:25: note: place parentheses around the '>=' expression to silence this warning
  945 |                 else if (p.size() >=1 & p[0] == "adobe") {
      |                                       ^
      |                          (           )
gimage_parse.cpp:945:25: note: place parentheses around the & expression to evaluate it first
  945 |                 else if (p.size() >=1 & p[0] == "adobe") {
      |                                       ^                
      |                                     (                  )
gimage_parse.cpp:1008:20: warning: & has lower precedence than >=; >= will be evaluated first [-Wparentheses]
 1008 |                 if (p.size() >=1 & p[0] == "pa") {
      |                     ~~~~~~~~~~~~~^
gimage_parse.cpp:1008:20: note: place parentheses around the '>=' expression to silence this warning
 1008 |                 if (p.size() >=1 & p[0] == "pa") {
      |                                  ^
      |                     (           )
gimage_parse.cpp:1008:20: note: place parentheses around the & expression to evaluate it first
 1008 |                 if (p.size() >=1 & p[0] == "pa") {
      |                                  ^             
      |                                (               )
gimage_parse.cpp:1035:25: warning: & has lower precedence than >=; >= will be evaluated first [-Wparentheses]
 1035 |                 else if (p.size() >=1 & p[0] == "adobe") {
      |                          ~~~~~~~~~~~~~^
gimage_parse.cpp:1035:25: note: place parentheses around the '>=' expression to silence this warning
 1035 |                 else if (p.size() >=1 & p[0] == "adobe") {
      |                                       ^
      |                          (           )
gimage_parse.cpp:1035:25: note: place parentheses around the & expression to evaluate it first
 1035 |                 else if (p.size() >=1 & p[0] == "adobe") {
      |                                       ^                
      |                                     (                  )
mv -f .deps/gimage_cmd.Tpo .deps/gimage_cmd.Po
4 warnings generated.

It does succeed if I pass -D_LIBCPP_ENABLE_CXX17_REMOVED_FEATURES -Wno-non-pod-varargs though.

butcherg commented 7 months ago

The exiv2 problems are associated with an API change they did between 27 and 28. My exiv2 code is pretty localized, so I'll try to figure it out for 1.4

But my first priority will be to correct my shit code, which seems to be the rest of them...

butcherg commented 7 months ago

Fixed the shit code, Made a local branch to figure out eviv2 28, that's going to take a bit. That, and msys2 and mxe still only package 27, so freaking conditionals...

barracuda156 commented 7 months ago

@butcherg Please ping me when to test

butcherg commented 7 months ago

Sorry, sidetracked by other projects and spring household chores. What's left are doc updates, then update the release build system and crank out the products. I'll try to get that done this week.

butcherg commented 5 months ago

Okay, took a little longer than a week, done.

barracuda156 commented 5 months ago

@butcherg Hmm, does not work for me on Sonoma:

/usr/bin/clang++ -DWXUSINGDLL -D_FILE_OFFSET_BITS=64 -D__WXMAC__ -D__WXOSX_COCOA__ -D__WXOSX__ -I/opt/local/include -I/opt/local/var/macports/build/_opt_svacchanda_SonomaPorts_graphics_rawproc/rawproc/work/rawproc-1.4.0/src/. -I/opt/local/var/macports/build/_opt_svacchanda_SonomaPorts_graphics_rawproc/rawproc/work/rawproc-1.4.0/src/gimage -isystem /opt/local/Library/Frameworks/wxWidgets.framework/Versions/wxWidgets/3.1/lib/wx/include/osx_cocoa-unicode-3.2 -isystem /opt/local/Library/Frameworks/wxWidgets.framework/Versions/wxWidgets/3.1/include/wx-3.2 -pipe -Os -DNDEBUG -I/opt/local/include -stdlib=libc++ -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk -arch arm64 -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk -mmacosx-version-min=14.0 -ggdb -DVERSION=\"1.4.0\" -DBUILDDATE=\"2024-06-06T00:21:34\" -MD -MT CMakeFiles/img.dir/src/img.cpp.o -MF CMakeFiles/img.dir/src/img.cpp.o.d -o CMakeFiles/img.dir/src/img.cpp.o -c /opt/local/var/macports/build/_opt_svacchanda_SonomaPorts_graphics_rawproc/rawproc/work/rawproc-1.4.0/src/img.cpp
In file included from /opt/local/var/macports/build/_opt_svacchanda_SonomaPorts_graphics_rawproc/rawproc/work/rawproc-1.4.0/src/exif.cpp:7:
/opt/local/var/macports/build/_opt_svacchanda_SonomaPorts_graphics_rawproc/rawproc/work/rawproc-1.4.0/src/gimage/gimage.h:355:90: error: a space is required between consecutive right angle brackets (use '> >')
                GIMAGE_ERROR ApplyDistortionCorrectionAdobeWarpRetilinear(std::vector<std::vector<float>> kr, std::vector<std::vector<float>> kt, float cpx, float cpy, int threadcount);  //full adobe opcode implementation, including distinct sets of k parameters for each plane of the image
                                                                                                       ^~
                                                                                                       > >
/opt/local/var/macports/build/_opt_svacchanda_SonomaPorts_graphics_rawproc/rawproc/work/rawproc-1.4.0/src/gimage/gimage.h:355:126: error: a space is required between consecutive right angle brackets (use '> >')
                GIMAGE_ERROR ApplyDistortionCorrectionAdobeWarpRetilinear(std::vector<std::vector<float>> kr, std::vector<std::vector<float>> kt, float cpx, float cpy, int threadcount);  //full adobe opcode implementation, including distinct sets of k parameters for each plane of the image
                                                                                                                                           ^~
                                                                                                                                           > >
In file included from /opt/local/var/macports/build/_opt_svacchanda_SonomaPorts_graphics_rawproc/rawproc/work/rawproc-1.4.0/src/img.cpp:18:
/opt/local/var/macports/build/_opt_svacchanda_SonomaPorts_graphics_rawproc/rawproc/work/rawproc-1.4.0/src/./gimage/gimage.h:355:90: error: a space is required between consecutive right angle brackets (use '> >')
                GIMAGE_ERROR ApplyDistortionCorrectionAdobeWarpRetilinear(std::vector<std::vector<float>> kr, std::vector<std::vector<float>> kt, float cpx, float cpy, int threadcount);  //full adobe opcode implementation, including distinct sets of k parameters for each plane of the image
                                                                                                       ^~
                                                                                                       > >
/opt/local/var/macports/build/_opt_svacchanda_SonomaPorts_graphics_rawproc/rawproc/work/rawproc-1.4.0/src/./gimage/gimage.h:355:126: error: a space is required between consecutive right angle brackets (use '> >')
                GIMAGE_ERROR ApplyDistortionCorrectionAdobeWarpRetilinear(std::vector<std::vector<float>> kr, std::vector<std::vector<float>> kt, float cpx, float cpy, int threadcount);  //full adobe opcode implementation, including distinct sets of k parameters for each plane of the image
                                                                                                                                           ^~
                                                                                                                                           > >
2 errors generated.
make[2]: *** [CMakeFiles/exif.dir/src/exif.cpp.o] Error 1
make[2]: Leaving directory `/opt/local/var/macports/build/_opt_svacchanda_SonomaPorts_graphics_rawproc/rawproc/work/build'
make[1]: *** [CMakeFiles/exif.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[  4%] Building CXX object CMakeFiles/rawproc.dir/src/rawprocFrm.cpp.o
/usr/bin/clang++ -DWXUSINGDLL -D_FILE_OFFSET_BITS=64 -D__WXMAC__ -D__WXOSX_COCOA__ -D__WXOSX__ -I/opt/local/include -I/opt/local/var/macports/build/_opt_svacchanda_SonomaPorts_graphics_rawproc/rawproc/work/rawproc-1.4.0/src/. -I/opt/local/var/macports/build/_opt_svacchanda_SonomaPorts_graphics_rawproc/rawproc/work/rawproc-1.4.0/src/gimage -isystem /opt/local/Library/Frameworks/wxWidgets.framework/Versions/wxWidgets/3.1/lib/wx/include/osx_cocoa-unicode-3.2 -isystem /opt/local/Library/Frameworks/wxWidgets.framework/Versions/wxWidgets/3.1/include/wx-3.2 -pipe -Os -DNDEBUG -I/opt/local/include -stdlib=libc++ -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk -arch arm64 -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk -mmacosx-version-min=14.0 -ggdb -DVERSION=\"1.4.0\" -DBUILDDATE=\"2024-06-06T00:21:34\" -MD -MT CMakeFiles/rawproc.dir/src/rawprocFrm.cpp.o -MF CMakeFiles/rawproc.dir/src/rawprocFrm.cpp.o.d -o CMakeFiles/rawproc.dir/src/rawprocFrm.cpp.o -c /opt/local/var/macports/build/_opt_svacchanda_SonomaPorts_graphics_rawproc/rawproc/work/rawproc-1.4.0/src/rawprocFrm.cpp
2 errors generated.
make[2]: *** [CMakeFiles/img.dir/src/img.cpp.o] Error 1
make[2]: Leaving directory `/opt/local/var/macports/build/_opt_svacchanda_SonomaPorts_graphics_rawproc/rawproc/work/build'
make[1]: *** [CMakeFiles/img.dir/all] Error 2
[  5%] Building CXX object CMakeFiles/rawproc.dir/src/CurvePane.cpp.o
/usr/bin/clang++ -DWXUSINGDLL -D_FILE_OFFSET_BITS=64 -D__WXMAC__ -D__WXOSX_COCOA__ -D__WXOSX__ -I/opt/local/include -I/opt/local/var/macports/build/_opt_svacchanda_SonomaPorts_graphics_rawproc/rawproc/work/rawproc-1.4.0/src/. -I/opt/local/var/macports/build/_opt_svacchanda_SonomaPorts_graphics_rawproc/rawproc/work/rawproc-1.4.0/src/gimage -isystem /opt/local/Library/Frameworks/wxWidgets.framework/Versions/wxWidgets/3.1/lib/wx/include/osx_cocoa-unicode-3.2 -isystem /opt/local/Library/Frameworks/wxWidgets.framework/Versions/wxWidgets/3.1/include/wx-3.2 -pipe -Os -DNDEBUG -I/opt/local/include -stdlib=libc++ -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk -arch arm64 -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk -mmacosx-version-min=14.0 -ggdb -DVERSION=\"1.4.0\" -DBUILDDATE=\"2024-06-06T00:21:34\" -MD -MT CMakeFiles/rawproc.dir/src/CurvePane.cpp.o -MF CMakeFiles/rawproc.dir/src/CurvePane.cpp.o.d -o CMakeFiles/rawproc.dir/src/CurvePane.cpp.o -c /opt/local/var/macports/build/_opt_svacchanda_SonomaPorts_graphics_rawproc/rawproc/work/rawproc-1.4.0/src/CurvePane.cpp
In file included from /opt/local/var/macports/build/_opt_svacchanda_SonomaPorts_graphics_rawproc/rawproc/work/rawproc-1.4.0/src/rawprocApp.cpp:10:
In file included from /opt/local/var/macports/build/_opt_svacchanda_SonomaPorts_graphics_rawproc/rawproc/work/rawproc-1.4.0/src/./rawprocApp.h:23:
In file included from /opt/local/var/macports/build/_opt_svacchanda_SonomaPorts_graphics_rawproc/rawproc/work/rawproc-1.4.0/src/./rawprocFrm.h:52:
/opt/local/var/macports/build/_opt_svacchanda_SonomaPorts_graphics_rawproc/rawproc/work/rawproc-1.4.0/src/./gimage/gimage.h:355:90: error: a space is required between consecutive right angle brackets (use '> >')
                GIMAGE_ERROR ApplyDistortionCorrectionAdobeWarpRetilinear(std::vector<std::vector<float>> kr, std::vector<std::vector<float>> kt, float cpx, float cpy, int threadcount);  //full adobe opcode implementation, including distinct sets of k parameters for each plane of the image
                                                                                                       ^~
                                                                                                       > >
/opt/local/var/macports/build/_opt_svacchanda_SonomaPorts_graphics_rawproc/rawproc/work/rawproc-1.4.0/src/./gimage/gimage.h:355:126: error: a space is required between consecutive right angle brackets (use '> >')
                GIMAGE_ERROR ApplyDistortionCorrectionAdobeWarpRetilinear(std::vector<std::vector<float>> kr, std::vector<std::vector<float>> kt, float cpx, float cpy, int threadcount);  //full adobe opcode implementation, including distinct sets of k parameters for each plane of the image
                                                                                                                                           ^~
                                                                                                                                           > >
2 errors generated.
make[2]: *** [CMakeFiles/rawproc.dir/src/rawprocApp.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
[  6%] Linking CXX executable wxcmd
/opt/local/bin/cmake -E cmake_link_script CMakeFiles/wxcmd.dir/link.txt --verbose=ON
In file included from /opt/local/var/macports/build/_opt_svacchanda_SonomaPorts_graphics_rawproc/rawproc/work/rawproc-1.4.0/src/CurvePane.cpp:8:
In file included from /opt/local/var/macports/build/_opt_svacchanda_SonomaPorts_graphics_rawproc/rawproc/work/rawproc-1.4.0/src/./util.h:11:
/opt/local/var/macports/build/_opt_svacchanda_SonomaPorts_graphics_rawproc/rawproc/work/rawproc-1.4.0/src/./gimage/gimage.h:355:90: error: a space is required between consecutive right angle brackets (use '> >')
                GIMAGE_ERROR ApplyDistortionCorrectionAdobeWarpRetilinear(std::vector<std::vector<float>> kr, std::vector<std::vector<float>> kt, float cpx, float cpy, int threadcount);  //full adobe opcode implementation, including distinct sets of k parameters for each plane of the image
                                                                                                       ^~
                                                                                                       > >
/opt/local/var/macports/build/_opt_svacchanda_SonomaPorts_graphics_rawproc/rawproc/work/rawproc-1.4.0/src/./gimage/gimage.h:355:126: error: a space is required between consecutive right angle brackets (use '> >')
                GIMAGE_ERROR ApplyDistortionCorrectionAdobeWarpRetilinear(std::vector<std::vector<float>> kr, std::vector<std::vector<float>> kt, float cpx, float cpy, int threadcount);  //full adobe opcode implementation, including distinct sets of k parameters for each plane of the image
                                                                                                                                           ^~
                                                                                                                                           > >
/usr/bin/clang++ -pipe -Os -DNDEBUG -I/opt/local/include -stdlib=libc++ -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk -arch arm64 -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk -mmacosx-version-min=14.0 -Wl,-search_paths_first -Wl,-headerpad_max_install_names -L/opt/local/lib -Wl,-headerpad_max_install_names -Wl,-syslibroot,/Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk CMakeFiles/wxcmd.dir/src/wxcmd.cpp.o -o wxcmd  -Wl,-rpath,/opt/local/lib -L/opt/local/Library/Frameworks/wxWidgets.framework/Versions/wxWidgets/3.1/lib -framework IOKit -framework Carbon -framework Cocoa -framework QuartzCore -framework AudioToolbox -framework System -framework OpenGL -lwx_osx_cocoau_aui-3.2 -lwx_osx_cocoau_propgrid-3.2 -lwx_osx_cocoau_xrc-3.2 -lwx_osx_cocoau_html-3.2 -lwx_osx_cocoau_qa-3.2 -lwx_osx_cocoau_core-3.2 -lwx_baseu_xml-3.2 -lwx_baseu_net-3.2 -lwx_baseu-3.2
In file included from /opt/local/var/macports/build/_opt_svacchanda_SonomaPorts_graphics_rawproc/rawproc/work/rawproc-1.4.0/src/rawprocFrm.cpp:11:
In file included from /opt/local/var/macports/build/_opt_svacchanda_SonomaPorts_graphics_rawproc/rawproc/work/rawproc-1.4.0/src/./rawprocFrm.h:52:
/opt/local/var/macports/build/_opt_svacchanda_SonomaPorts_graphics_rawproc/rawproc/work/rawproc-1.4.0/src/./gimage/gimage.h:355:90: error: a space is required between consecutive right angle brackets (use '> >')
                GIMAGE_ERROR ApplyDistortionCorrectionAdobeWarpRetilinear(std::vector<std::vector<float>> kr, std::vector<std::vector<float>> kt, float cpx, float cpy, int threadcount);  //full adobe opcode implementation, including distinct sets of k parameters for each plane of the image
                                                                                                       ^~
                                                                                                       > >
/opt/local/var/macports/build/_opt_svacchanda_SonomaPorts_graphics_rawproc/rawproc/work/rawproc-1.4.0/src/./gimage/gimage.h:355:126: error: a space is required between consecutive right angle brackets (use '> >')
                GIMAGE_ERROR ApplyDistortionCorrectionAdobeWarpRetilinear(std::vector<std::vector<float>> kr, std::vector<std::vector<float>> kt, float cpx, float cpy, int threadcount);  //full adobe opcode implementation, including distinct sets of k parameters for each plane of the image
                                                                                                                                           ^~
                                                                                                                                           > >
2 errors generated.
make[2]: *** [CMakeFiles/rawproc.dir/src/CurvePane.cpp.o] Error 1
In file included from /opt/local/var/macports/build/_opt_svacchanda_SonomaPorts_graphics_rawproc/rawproc/work/rawproc-1.4.0/src/rawprocFrm.cpp:37:
/opt/local/var/macports/build/_opt_svacchanda_SonomaPorts_graphics_rawproc/rawproc/work/rawproc-1.4.0/src/./PicProcessorTone.h:1:9: warning: '__PICPROCESSORTONE_H__' is used as a header guard here, followed by #define of a different macro [-Wheader-guard]
#ifndef __PICPROCESSORTONE_H__
        ^~~~~~~~~~~~~~~~~~~~~~
/opt/local/var/macports/build/_opt_svacchanda_SonomaPorts_graphics_rawproc/rawproc/work/rawproc-1.4.0/src/./PicProcessorTone.h:2:9: note: '__PICPROCESSORTone_H__' is defined here; did you mean '__PICPROCESSORTONE_H__'?
#define __PICPROCESSORTone_H__
        ^~~~~~~~~~~~~~~~~~~~~~
        __PICPROCESSORTONE_H__
/opt/local/var/macports/build/_opt_svacchanda_SonomaPorts_graphics_rawproc/rawproc/work/rawproc-1.4.0/src/rawprocFrm.cpp:74:10: fatal error: 'omp.h' file not found
#include <omp.h>
         ^~~~~~~
1 warning and 3 errors generated.
make[2]: *** [CMakeFiles/rawproc.dir/src/rawprocFrm.cpp.o] Error 1
make[2]: Leaving directory `/opt/local/var/macports/build/_opt_svacchanda_SonomaPorts_graphics_rawproc/rawproc/work/build'
make[1]: *** [CMakeFiles/rawproc.dir/all] Error 2
ld: warning: reexported library with install name '/opt/local/lib/libunwind.1.dylib' found at '/opt/local/lib/libunwind.1.dylib' couldn't be matched with any parent library and will be linked directly
make[2]: Leaving directory `/opt/local/var/macports/build/_opt_svacchanda_SonomaPorts_graphics_rawproc/rawproc/work/build'
[  6%] Built target wxcmd
make[1]: Leaving directory `/opt/local/var/macports/build/_opt_svacchanda_SonomaPorts_graphics_rawproc/rawproc/work/build'
make: *** [all] Error 2
make: Leaving directory `/opt/local/var/macports/build/_opt_svacchanda_SonomaPorts_graphics_rawproc/rawproc/work/build'
Command failed:  cd "/opt/local/var/macports/build/_opt_svacchanda_SonomaPorts_graphics_rawproc/rawproc/work/build" && /usr/bin/make -j4 -w all VERBOSE=ON 
Exit code: 2
butcherg commented 5 months ago

pushed commits to fix the syntax foo, not sure what to do about "fatal error: 'omp.h' file not found".

barracuda156 commented 5 months ago

pushed commits to fix the syntax foo, not sure what to do about "fatal error: 'omp.h' file not found".

Ah, that is because I used Apple Clang, which does not support OpenMP.

While this I can fix on my end, the right thing to do would be to have a configure check: it should fail already at configure if OpenMP support is not found (but required).

butcherg commented 5 months ago

I'll put in the cmake check, but I'll also look to see if the header is still needed.

On June 5, 2024 12:01:28 PM MDT, Sergey Fedorov @.***> wrote:

pushed commits to fix the syntax foo, not sure what to do about "fatal error: 'omp.h' file not found".

Ah, that is because I used Apple Clang, which does not support OpenMP.

While this I can fix on my end, the right thing to do would be to have a configure check: it should fail already at configure if OpenMP support is not found (but required).

-- Reply to this email directly or view it on GitHub: https://github.com/butcherg/rawproc/issues/25#issuecomment-2150645284 You are receiving this because you were mentioned.

Message ID: @.***> -- Sent from my Android device with K-9 Mail. Please excuse my brevity.

barracuda156 commented 5 months ago

@butcherg Ok, using LLVM Clang and passing flags to link to libomp, I was able to build it on Sonoma.

However, as before, I had to use

    configure.cxxflags-append \
                    -D_LIBCPP_ENABLE_CXX17_REMOVED_FEATURES \
                    -Wno-non-pod-varargs

Without these flags build is failing.

But that was an exiv2 issue, I guess. We can add flags locally for MacPorts.

barracuda156 commented 5 months ago

P. S. Looks like there is no install target?

barracuda156 commented 5 months ago

@butcherg How should I start the GUI btw? wxcmd opens a king of terminal where I can type in text and which has two buttons below: Kiss and Dismiss and Kill. rawproc just segfaults on launch:

-------------------------------------
Translated Report (Full Report Below)
-------------------------------------

Process:               rawproc [4522]
Path:                  /opt/local/bin/rawproc
Identifier:            rawproc
Version:               ???
Code Type:             ARM-64 (Native)
Parent Process:        zsh [4515]
Responsible:           Terminal [76267]
User ID:               501

Date/Time:             2024-06-06 03:04:46.3498 +0800
OS Version:            macOS 14.5 (23F79)
Report Version:        12
Anonymous UUID:        08288255-726E-11E3-9DE3-9407366F4C9A

Sleep/Wake UUID:       BF8A344A-2C32-47B2-A928-A055A6FE685D

Time Awake Since Boot: 220000 seconds
Time Since Wake:       1890 seconds

System Integrity Protection: enabled

Crashed Thread:        0  Dispatch queue: com.apple.main-thread

Exception Type:        EXC_BREAKPOINT (SIGTRAP)
Exception Codes:       0x0000000000000001, 0x000000018da30960

Termination Reason:    Namespace SIGNAL, Code 5 Trace/BPT trap: 5
Terminating Process:   exc handler [4522]

Thread 0 Crashed::  Dispatch queue: com.apple.main-thread
0   libunwind.dylib                        0x18da30960 _Unwind_GetIP + 244
1   libc++abi.dylib                        0x180da0aa4 __gxx_personality_v0 + 588
2   libunwind.1.dylib                      0x102e41144 unwind_phase2 + 140
3   libunwind.1.dylib                      0x102e411d0 _Unwind_Resume + 52
4   rawproc                                0x1025a920c getExeDir(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>) + 360
5   rawproc                                0x1025a9544 getRawprocConfPath(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>) + 60
6   rawproc                                0x102467e7c rawprocFrmApp::OnInit() + 300
7   libwx_osx_cocoau_core-3.2.0.2.2.dylib          0x1038b07a8 wxApp::CallOnInit() + 152
8   libwx_baseu-3.2.0.2.2.dylib            0x1034799e8 wxEntry(int&, wchar_t**) + 80
9   rawproc                                0x102469084 main + 52
10  dyld                                   0x180a5e0e0 start + 2360
barracuda156 commented 5 months ago

Rebuilding with wxGTK-3.0 instead of wxWidgets-3.2 produces the same result (with a difference that wxcmd launches X window).

butcherg commented 5 months ago

There is not. Ran out of steam...

If you need it, I'll work one up.

On June 5, 2024 12:51:05 PM MDT, Sergey Fedorov @.***> wrote:

P. S. Looks like there is no install target?

-- Reply to this email directly or view it on GitHub: https://github.com/butcherg/rawproc/issues/25#issuecomment-2150736889 You are receiving this because you were mentioned.

Message ID: @.***> -- Sent from my Android device with K-9 Mail. Please excuse my brevity.

butcherg commented 5 months ago

Wxcmd is a simple shell for running img from the batch dialog.

On June 5, 2024 1:07:58 PM MDT, Sergey Fedorov @.***> wrote:

@butcherg How should I start the GUI btw? wxcmd opens a king of terminal where I can type in text and which has two buttons below: Kiss and Dismiss and Kill. rawproc just segfaults on launch:

-------------------------------------
Translated Report (Full Report Below)
-------------------------------------

Process:               rawproc [4522]
Path:                  /opt/local/bin/rawproc
Identifier:            rawproc
Version:               ???
Code Type:             ARM-64 (Native)
Parent Process:        zsh [4515]
Responsible:           Terminal [76267]
User ID:               501

Date/Time:             2024-06-06 03:04:46.3498 +0800
OS Version:            macOS 14.5 (23F79)
Report Version:        12
Anonymous UUID:        08288255-726E-11E3-9DE3-9407366F4C9A

Sleep/Wake UUID:       BF8A344A-2C32-47B2-A928-A055A6FE685D

Time Awake Since Boot: 220000 seconds
Time Since Wake:       1890 seconds

System Integrity Protection: enabled

Crashed Thread:        0  Dispatch queue: com.apple.main-thread

Exception Type:        EXC_BREAKPOINT (SIGTRAP)
Exception Codes:       0x0000000000000001, 0x000000018da30960

Termination Reason:    Namespace SIGNAL, Code 5 Trace/BPT trap: 5
Terminating Process:   exc handler [4522]

Thread 0 Crashed::  Dispatch queue: com.apple.main-thread
0   libunwind.dylib                       0x18da30960 _Unwind_GetIP + 244
1   libc++abi.dylib                       0x180da0aa4 __gxx_personality_v0 + 588
2   libunwind.1.dylib                     0x102e41144 unwind_phase2 + 140
3   libunwind.1.dylib                     0x102e411d0 _Unwind_Resume + 52
4   rawproc                               0x1025a920c getExeDir(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>) + 360
5   rawproc                               0x1025a9544 getRawprocConfPath(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>) + 60
6   rawproc                               0x102467e7c rawprocFrmApp::OnInit() + 300
7   libwx_osx_cocoau_core-3.2.0.2.2.dylib         0x1038b07a8 wxApp::CallOnInit() + 152
8   libwx_baseu-3.2.0.2.2.dylib           0x1034799e8 wxEntry(int&, wchar_t**) + 80
9   rawproc                               0x102469084 main + 52
10  dyld                                  0x180a5e0e0 start + 2360

-- Reply to this email directly or view it on GitHub: https://github.com/butcherg/rawproc/issues/25#issuecomment-2150767579 You are receiving this because you were mentioned.

Message ID: @.***> -- Sent from my Android device with K-9 Mail. Please excuse my brevity.

barracuda156 commented 5 months ago

There is not. Ran out of steam... If you need it, I'll work one up.

I can do a manual install via portfile code, that is no big deal, but at the moment I am not sure binaries actually work as supposed. I will try building on PowerPC once the machine is done with building the new Octave.

Wxcmd is a simple shell for running img from the batch dialog.

Ok, then that is working, perhaps.

I'll have to inspect GetExe() to see what's up. Will do that tonight...

Please, since segfaulting on launch looks definitely wrong.

butcherg commented 5 months ago

I'll have to inspect GetExe() to see what's up. Will do that tonight...

On June 5, 2024 1:07:58 PM MDT, Sergey Fedorov @.***> wrote:

@butcherg How should I start the GUI btw? wxcmd opens a king of terminal where I can type in text and which has two buttons below: Kiss and Dismiss and Kill. rawproc just segfaults on launch:

-------------------------------------
Translated Report (Full Report Below)
-------------------------------------

Process:               rawproc [4522]
Path:                  /opt/local/bin/rawproc
Identifier:            rawproc
Version:               ???
Code Type:             ARM-64 (Native)
Parent Process:        zsh [4515]
Responsible:           Terminal [76267]
User ID:               501

Date/Time:             2024-06-06 03:04:46.3498 +0800
OS Version:            macOS 14.5 (23F79)
Report Version:        12
Anonymous UUID:        08288255-726E-11E3-9DE3-9407366F4C9A

Sleep/Wake UUID:       BF8A344A-2C32-47B2-A928-A055A6FE685D

Time Awake Since Boot: 220000 seconds
Time Since Wake:       1890 seconds

System Integrity Protection: enabled

Crashed Thread:        0  Dispatch queue: com.apple.main-thread

Exception Type:        EXC_BREAKPOINT (SIGTRAP)
Exception Codes:       0x0000000000000001, 0x000000018da30960

Termination Reason:    Namespace SIGNAL, Code 5 Trace/BPT trap: 5
Terminating Process:   exc handler [4522]

Thread 0 Crashed::  Dispatch queue: com.apple.main-thread
0   libunwind.dylib                       0x18da30960 _Unwind_GetIP + 244
1   libc++abi.dylib                       0x180da0aa4 __gxx_personality_v0 + 588
2   libunwind.1.dylib                     0x102e41144 unwind_phase2 + 140
3   libunwind.1.dylib                     0x102e411d0 _Unwind_Resume + 52
4   rawproc                               0x1025a920c getExeDir(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>) + 360
5   rawproc                               0x1025a9544 getRawprocConfPath(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>) + 60
6   rawproc                               0x102467e7c rawprocFrmApp::OnInit() + 300
7   libwx_osx_cocoau_core-3.2.0.2.2.dylib         0x1038b07a8 wxApp::CallOnInit() + 152
8   libwx_baseu-3.2.0.2.2.dylib           0x1034799e8 wxEntry(int&, wchar_t**) + 80
9   rawproc                               0x102469084 main + 52
10  dyld                                  0x180a5e0e0 start + 2360

-- Reply to this email directly or view it on GitHub: https://github.com/butcherg/rawproc/issues/25#issuecomment-2150767579 You are receiving this because you were mentioned.

Message ID: @.***> -- Sent from my Android device with K-9 Mail. Please excuse my brevity.

butcherg commented 5 months ago

Keep feeding me errors and backtraces and I'll work them...

On June 5, 2024 1:36:52 PM MDT, Sergey Fedorov @.***> wrote:

There is not. Ran out of steam... If you need it, I'll work one up.

I can do a manual install via portfile code, that is no big deal, but at the moment I cam not sure binaries actually work as supposed. I will try building on PowerPC once the machine is done with building the new Octave.

-- Reply to this email directly or view it on GitHub: https://github.com/butcherg/rawproc/issues/25#issuecomment-2150817071 You are receiving this because you were mentioned.

Message ID: @.***> -- Sent from my Android device with K-9 Mail. Please excuse my brevity.

barracuda156 commented 5 months ago

Pretty much the same on PowerPC: wxcmd launches X window, everything else crashes on launch. rawproc:

*** Caught unhandled unknown exception; terminating
Reading symbols for shared libraries .. done

Program exited with code 0377.
(gdb) bt
No stack.

img:

terminate called after throwing an instance of 'std::out_of_range'
  what():  basic_string::erase: __pos (which is 4294967295) > this->size() (which is 0)

Program received signal SIGABRT, Aborted.
0x013f1d48 in __kill ()
(gdb) bt
#0  0x013f1d48 in __kill ()
#1  0x0149580c in abort ()
#2  0x011129c8 in __gnu_cxx::__verbose_terminate_handler ()
#3  0x0110c85c in __cxa_get_globals ()
#4  0x0110c8b0 in std::terminate ()
#5  0x0110c9bc in __cxa_throw ()
#6  0x0110d07c in std::__throw_out_of_range_fmt ()
#7  0x00067f70 in getExeDir ()
#8  0x000681e8 in getRawprocConfPath ()
#9  0x0007c7d8 in main ()
(gdb) info registers
r0             0x25 37
r1             0xbfffebf0   3221220336
r2             0x266    614
r3             0x0  0
r4             0x0  0
r5             0x1  1
r6             0x80808080   2155905152
r7             0x1  1
r8             0xb8b1aabc   3098651324
r9             0x157cedc    22531804
r10            0x13bdbc4    20700100
r11            0x14f9   5369
r12            0x13f1d34    20913460
r13            0x0  0
r14            0x0  0
r15            0x0  0
r16            0x0  0
r17            0x0  0
r18            0x0  0
r19            0x0  0
r20            0x0  0
r21            0xbffff9e0   3221223904
r22            0x9c6a0  640672
r23            0xbffff628   3221222952
r24            0xbffffb24   3221224228
r25            0xbffff4c4   3221222596
r26            0xbffff4bc   3221222588
r27            0xbffff4b8   3221222584
r28            0x8a27bd0    144866256
r29            0x8a2648c    144860300
r30            0x1544840    22300736
r31            0x14957a0    21583776
pc             0x13f1d48    20913480
ps             0x100000000200f030   1152921504640462896
cr             0x22000442   570426434
lr             0x149580c    21583884
ctr            0x13f1d34    20913460
xer            0x0  0
mq             0x0  0
fpscr          0x82004000   2181054464
vscr           0x10000  65536
vrsave         0xfff    4095

(This is just when trying to run binaries with no args passed.)

butcherg commented 5 months ago

So, GetExeDir() has an #ifdef for WIN32, and the #else assumes Linux. Thanks to StackOverflow, I found macos code to do what's needed, just pushed, please test...

butcherg commented 5 months ago

oops, forgot include, another commit...

barracuda156 commented 5 months ago

@butcherg Now the app starts normally. But some menus appear wrong:

rawproc

rawproc2

butcherg commented 5 months ago

I think what's happening is the Perl script that builds rawproc.conf is spitting out UTF-16. Put this at the top of conffile.pl, just below the #!/user/bin/perl:

binmode(STDOUT, ":utf8");

and re-run make conf

barracuda156 commented 5 months ago

I rebuilt with that, but got the same result with Properties menu.

butcherg commented 5 months ago

Can you upload your rawproc.conf?

barracuda156 commented 5 months ago

Where is supposed to be? Home folder does not seem to have it. If it should be created manually – well, I did not do that, I just built the thing, moved 4 binaries to /opt/local/bin and added wrappers so that they pick the right libstdc++ (this is MacOS specifics on legacy systems).

Did I miss something with installation?

P. S. In Parameters square there apparently should be some text beside numbers? Otherwise it is unclear what is it.

barracuda156 commented 5 months ago

Not sure if relevant, but this was in terminal while running rawproc:

(rawproc-orig:67296): GLib-WARNING **: 10:54:37.950: poll(2) failed due to: Bad file descriptor.

(-orig is correct, it is the actual binary, just renamed, since rawproc is a wrapper script calling it.)

butcherg commented 5 months ago

Hmm, then it may be that rawproc doesn't see any rawproc.conf.

The README has build instructions, here: https://github.com/butcherg/rawproc#minimal-build, after you run make, next command is make conf, which runs conffile.pl, which scrapes all the .cpp files for //parm lines to build a rawproc.conf.

Move the generated rawproc.conf to /opt/local/bin and when you run rawproc it'll read it. A better location would be in your home directory, make a .rawproc directory and put it there.

'poll(2) failed'... could be the missing rawproc.conf.

barracuda156 commented 5 months ago

@butcherg Ok, I will try. I was using CMake btw, should I not use it? Or it is supposed to be identical up to installation stage?

butcherg commented 5 months ago

Definitely use cmake, I spent a lot of time hammering that into submission... :D

I just hid all my rawproc.conf files and I get a black background like you did, but it give me the error dialog when I try to open Properties. I think we're getting close...

barracuda156 commented 5 months ago

When I start the app, it complains about failing to add /opt/local/bin/rawprocdoc.zip (yeah, in /bin LOL), which is obviously not there and should not be.

On Sonoma Properties do not have broken characters, but the menu is distorted with endless empty sections.

barracuda156 commented 5 months ago

@butcherg Ok, I figured out how to add conf target. Will check how it works.

UPD. I think it works now. Will try on PowerPC.

barracuda156 commented 5 months ago

@butcherg I got a strange issue on PowerPC: adding a generated config fixes display of text (like it does on Sonoma too), but all raw images suddenly become extremely dark, almost black. Jpegs seem to be unaffected.

(The binary is fine, since when I trashed the config, I got normal raw images, but broken text.)

rawproc_new

butcherg commented 5 months ago

Ah, now you're into nominal rawproc behavior, even though it doesn't look like it...

Back when I first started coding rawproc, I used libraw's dcraw processing to get through the first steps of raw processing. Later, I came to the decision that I wanted every tool used from import to export represented in the toolchain, so I made a property, input.raw.libraw.rawdata, where i could control whether dcraw was or wasn't used. I also overloaded it to control border crop, not so sure that was a good decision, but oh well...

So, input.raw.libraw.rawdata has three possible settings: 0 = use dcraw processing to make a RGB image, 1 = present the raw data from the file, single-channel mosaic, and crop = same as 1, but also crop the black sensor borders. When you had no configuration file, the default for this property is 0, so you were seeing dcraw-processed RGB data.

So, the reason your image looks dark is that the raw loader is setting this property to 1 for a default, and there's no input.raw.libraw.rawdata property to override it. Set the following properties thusly:

input.raw.libraw.rawdata=crop
input.raw.default=group:colorspace:camera,assign;subtract:camera;whitebalance:camera;demosaic:proof blackwhitepoint:rgb,data

and now, when you open any raw image, it'll start with the unmodified file data and prompt you to use the toolchain in input.raw.default. The image will still be dark, but that's the nature of the linear data.

Two more settings to start with:

display.cms=1
display.cms.displayprofile=srgb-output

The first one turns display color management on and off, set this to 1.

The second one sets a display profile that's used to render the data to the display; set to srgb-output, which is a built-in default profile. Later, I'll show you how to set up a profiles directory so you can use profile files.

butcherg commented 5 months ago

Just tested, for color management all you need is display.cms=1. srgb-output is the default if no display profile is specified.

butcherg commented 5 months ago

I made the default background color for all such properties 128, so what you encountered without a rawproc.conf won't happen.