Package Details: hdrview-git 1.8.0.r319.20230316.4b02bbd-1

Git Clone URL: https://aur.archlinux.org/hdrview-git.git (read-only, click to copy)
Package Base: hdrview-git
Description: High dynamic range (HDR) image viewer and comparison tool
Upstream URL: https://github.com/wkjarosz/hdrview
Keywords: exr hdr image viewer
Licenses: BSD-3-Clause
Conflicts: hdrview
Provides: hdrview
Submitter: afnan
Maintainer: afnan (dreieck)
Last Packager: dreieck
Votes: 0
Popularity: 0.000000
First Submitted: 2019-03-29 04:28 (UTC)
Last Updated: 2024-03-24 15:09 (UTC)

Latest Comments

1 2 Next › Last »

1ace commented on 2023-03-01 13:21 (UTC)

@dreieck: about upstream not being good with version numbers and going "back in time": that's what epoch is for, and we'll just bump it every time upstream does something like that :)

about putting the initial cmake call in prepare(), I don't remember why I didn't do that before, but your argument is valid so I just made that change :)

dreieck commented on 2023-01-13 16:46 (UTC) (edited on 2023-01-13 16:46 (UTC) by dreieck)

I see that your current PKGBUILD fetches some stuff during build(). I think that build() and package() must not assume internet connection to be present, that's why I have moved the cmake call to prepare(), to have all download be finished after prepare() and then the sources are properly set up for package building.

What was your objection against putting the cmake call into prepare()?

Regards!

==> Starting build()...
[...]
[1/9] Performing download step (download, verify and extract) for 'nlohmann_json-populate'
-- Downloading...
   dst='/home/[...]/.cache/yay/hdrview-git/src/build/_deps/nlohmann_json-subbuild/nlohmann_json-populate-prefix/src/include.zip'
   timeout='none'
   inactivity timeout='none'
-- Using src='https://github.com/nlohmann/json/releases/download/v3.9.1/include.zip'
-- [download 1% complete]
-- [download 2% complete]
-- [download 3% complete]
-- [download 4% complete]
[...]

dreieck commented on 2023-01-09 22:15 (UTC) (edited on 2023-01-09 22:17 (UTC) by dreieck)

Ahoj,

I usually add people who contribute in the comments [...]

*Check*.

And just a note, to learn: describe --tags --abbrev=10 as pkgver() is not enough, since $pkgver must be increasing with every upstream commit in -git packages, which your variant does not guarantee. Thats why appending something like r<commit_count> to the version number is one variant to make that work.

I don't see how the value could somehow not increase; do you have an example of a situation where that could happen?

Hm, if I remember correctly when I was writing my comment the pkgver() was still simpler, or I was just simply "blind". OK, now the part which leads to the current +1 in the $pkgver should guarantee an increase after every upstream commit, as long as upstream stays strict with tagging each commit according to the current tagging scheme. (I have seen packages where upstream did not live up to that, though.)

Also note that according to the VCS packaging guidelines, a leading v or V before the upstream version number should be stripped off.

Note the sed after git describe :)

Same as above: Maybe it was missing at first, or I was blind.

Now that looks fine to me.

Regards!

1ace commented on 2023-01-09 20:24 (UTC)

@dreieck: oh sorry, I just realized that while I was writing my comment yesterday you posted some of your own ^^'

You now made me co-maintainer, are you OK when I just upload my PKGBUILD, or do you want to do what you fint suiting?

I usually add people who contribute in the comments as I believe in group maintainership, and if someone tries to do something bad it's easy enough to remove them and revert the changes ^^
Please don't simply overwrite the PKGBUILD with yours, but if you want to make targetted changes (adding missing deps, build options, etc.) that's fine; for anything bigger than that it's best to discuss here first :)

And just a note, to learn: describe --tags --abbrev=10 as pkgver() is not enough, since $pkgver must be increasing with every upstream commit in -git packages, which your variant does not guarantee. Thats why appending something like r<commit_count> to the version number is one variant to make that work.

I don't see how the value could somehow not increase; do you have an example of a situation where that could happen?

Also note that according to the VCS packaging guidelines, a leading v or V before the upstream version number should be stripped off.

Note the sed after git describe :)

1ace commented on 2023-01-07 23:26 (UTC)

@dreieck: actually, I decided to do it tonight ^^
I disagreed with a few of your suggestions so I didn't integrate them, but I'm open to discuss them if you want.
Let me know if there's anything more that you think should be done :)

dreieck commented on 2023-01-07 23:21 (UTC) (edited on 2023-01-07 23:21 (UTC) by dreieck)

And just a note, to learn: describe --tags --abbrev=10 as pkgver() is not enough, since $pkgver must be increasing with every upstream commit in -git packages, which your variant does not guarantee. Thats why appending something like r<commit_count> to the version number is one variant to make that work.

Also note that according to the VCS packaging guidelines, a leading v or V before the upstream version number should be stripped off.

Regards!

dreieck commented on 2023-01-07 23:16 (UTC)

@1ace: You now made me co-maintainer, are you OK when I just upload my PKGBUILD, or do you want to do what you fint suiting?

1ace commented on 2023-01-07 22:29 (UTC)

@dreieck: thanks for the notes! I just did the minimal update to get things to work, but I'll have a look at your suggestions when I have some time (hopefully tomorrow) and integrate them

dreieck commented on 2023-01-05 20:47 (UTC)

Upstream has moved. New location:

See → this comment

Also, the license must be installed since it is not a common Arch Linux license, and libglvnd and hicolor-icon-theme are missing dependencies.

Please update your PKGBUILD.

Also, you miss conflicts=('hdrview').

I have also done some → other modifications to the PKGBUILD, feel free to adopt whatever you like from → this new one:

# Maintainer: Afnan Enayet <afnan at afnan.io>

_pkgname=hdrview
pkgname="${_pkgname}-git"
pkgver=1.7.1.r312.20230104.b6f0ce5
pkgrel=1
pkgdesc='A simple research-oriented high-dynamic range image viewer with an emphasis on examining and comparing images, and including minimalistic tonemapping capabilities'
url='https://github.com/wkjarosz/hdrview'
arch=(
  'x86_64'
  'i686'
)
license=('BSD')
provides=(
  "${_pkgname}=${pkgver}"
)
conflicts=(
  "${_pkgname}"
)
makedepends=(
  'cmake'
  'git'
)
depends=(
  'hicolor-icon-theme'
  'libglvnd'
  'zlib'
)
source=(
  "${_pkgname}::git+${url}.git"
)
sha256sums=(
  'SKIP'
)

prepare() {
    cd "${srcdir}/${_pkgname}"

    # The preferred method of working with submodules in the AUR guidelines
    # doesn't seem to work recursively, so we use the "naive" method instead
    git submodule update --init --recursive

    mkdir -p build
    cd build
    # Run cmake in `prepare()` since it will download stuff.
    cmake \
      -DCMAKE_INSTALL_PREFIX=/usr \
      -DCMAKE_BUILD_TYPE=Release \
      -DDOCS=ON \
      -DFETCHCONTENT_QUIET=OFF \
      -DIMATH_ENABLE_LARGE_STACK=ON \
      -DIMATH_HALF_USE_LOOKUP_TABLE=ON \
      -DIMATH_INSTALL_PKG_CONFIG=OFF \
      -DIMATH_INSTALL_SYM_LINK=OFF \
      -DNANOGUI_BUILD_GLFW=ON \
      -DOPENEXR_INSTALL=OFF \
      -DOPENEXR_INSTALL_PKG_CONFIG=OFF \
      -DOPENEXR_INSTALL_TOOLS=OFF \
      ..
}

pkgver() {
    cd "${srcdir}/${_pkgname}"

    _ver="$(git describe  --tags | sed -E 's|-g[0-9a-fA-F]*$||' | sed -E 's|^[vV]||' | tr '-' '+')"
    _rev="$(git rev-list --count HEAD)"
    _date="$(git log -1 --date=format:"%Y%m%d" --format="%ad")"
    _hash="$(git rev-parse --short HEAD)"

    if [ -z "${_ver}" ]; then
        error "Version could not be determined."
    return 1
    else
        printf '%s' "${_ver}.r${_rev}.${_date}.${_hash}"
    fi
}

build() {
    cd "${srcdir}/${_pkgname}/build"

    make -j"$(nproc)"
}

package() {
    cd "${srcdir}/${_pkgname}"

    make -C "${srcdir}/${_pkgname}/build" DESTDIR="${pkgdir}/" install

    # Add a lowercase executable symlink
    ln -svr "${pkgdir}/usr/bin/HDRView" "${pkgdir}/usr/bin/hdrview"

    # Project installs a copy of its own deps as well. Fixup.
    for dep in Imath OpenEXR
    do
      rm -rf "$pkgdir/usr/include/$dep"/
      rm -rf "$pkgdir/usr/lib/cmake/$dep"/
      rm -f  "$pkgdir/usr/lib/pkgconfig/$dep.pc"
    done

    # These don't have a filename trivially derived from the dep name, but
    # the project doesn't have any static lib of its own so let's just
    # blindly remove any.
    rm -f "$pkgdir"/usr/lib/lib*.a

    # Raise an error in case there's every anything else added (either
    # a new dep, or the project starts shipping libs)
    if [ -d "$pkgdir"/usr/include/ ]; then
      rmdir "$pkgdir"/usr/include/
    fi
    if [ -d "$pkgdir"/usr/lib/cmake/ ]; then
      rmdir "$pkgdir"/usr/lib/cmake/
    fi
    if [ -d "$pkgdir"/usr/lib/pkgconfig/ ]; then
      rmdir "$pkgdir"/usr/lib/pkgconfig/
    fi
    if [ -d "$pkgdir"/usr/lib/ ]; then
      rmdir "$pkgdir"/usr/lib/
    fi

    for _docfile in README.md TODO.md; do
      install -D -m644 -v "${_docfile}" "${pkgdir}/usr/share/doc/${_pkgname}/${_docfile}"
    done
    install -D -m644 -v LICENSE.txt "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE.txt"
}

Thanks for maintaining!

dreieck commented on 2023-01-05 14:03 (UTC) (edited on 2023-01-05 14:31 (UTC) by dreieck)

Fails to build for me with some errors (also → reported upstream):

==> Starting build()...
[...]
[  1%] Building CXX object ext/openexr/IlmBase/Half/CMakeFiles/eLut.dir/eLut.cpp.o
[  2%] Building CXX object ext/openexr/IlmBase/Iex/CMakeFiles/Iex.dir/IexBaseExc.cpp.o
In file included from /home/[...]/.cache/yay/hdrview-git/src/hdrview/ext/docopt/docopt.h:12,
                 from /home/[...]/.cache/yay/hdrview-git/src/hdrview/ext/docopt/docopt.cpp:9:
/home/[...]/.cache/yay/hdrview-git/src/hdrview/ext/docopt/docopt_value.h: In member function ‘void docopt::value::throwIfNotKind(Kind) const’:
/home/[...]/.cache/yay/hdrview-git/src/hdrview/ext/docopt/docopt_value.h:98:36: error: ‘runtime_error’ is not a member of ‘std’
   98 |                         throw std::runtime_error(std::move(error));
      |                                    ^~~~~~~~~~~~~
/home/[...]/.cache/yay/hdrview-git/src/hdrview/ext/docopt/docopt_value.h: In member function ‘long int docopt::value::asLong() const’:
/home/[...]/.cache/yay/hdrview-git/src/hdrview/ext/docopt/docopt_value.h:286:44: error: ‘runtime_error’ is not a member of ‘std’
  286 |                                 throw std::runtime_error( str + " contains non-numeric characters.");
      |                                            ^~~~~~~~~~~~~
/home/[...]/.cache/yay/hdrview-git/src/hdrview/ext/docopt/docopt.h: At global scope:
/home/[...]/.cache/yay/hdrview-git/src/hdrview/ext/docopt/docopt.h:46:57: error: expected class-name before ‘{’ token
   46 |         struct DocoptLanguageError : std::runtime_error { using runtime_error::runtime_error; };
      |                                                         ^
/home/[...]/.cache/yay/hdrview-git/src/hdrview/ext/docopt/docopt.h:46:65: error: ‘runtime_error’ has not been declared
   46 |         struct DocoptLanguageError : std::runtime_error { using runtime_error::runtime_error; };
      |                                                                 ^~~~~~~~~~~~~
/home/[...]/.cache/yay/hdrview-git/src/hdrview/ext/docopt/docopt.h:49:57: error: expected class-name before ‘{’ token
   49 |         struct DocoptArgumentError : std::runtime_error { using runtime_error::runtime_error; };
      |                                                         ^
/home/[...]/.cache/yay/hdrview-git/src/hdrview/ext/docopt/docopt.h:49:65: error: ‘runtime_error’ has not been declared
   49 |         struct DocoptArgumentError : std::runtime_error { using runtime_error::runtime_error; };
      |                                                                 ^~~~~~~~~~~~~
/home/[...]/.cache/yay/hdrview-git/src/hdrview/ext/docopt/docopt.h:52:52: error: expected class-name before ‘{’ token
   52 |         struct DocoptExitHelp : std::runtime_error { DocoptExitHelp() : std::runtime_error("Docopt --help argument encountered"){} };
      |                                                    ^
/home/[...]/.cache/yay/hdrview-git/src/hdrview/ext/docopt/docopt.h: In constructor ‘docopt::DocoptExitHelp::DocoptExitHelp()’:
/home/[...]/.cache/yay/hdrview-git/src/hdrview/ext/docopt/docopt.h:52:91: error: expected class-name before ‘(’ token
   52 |         struct DocoptExitHelp : std::runtime_error { DocoptExitHelp() : std::runtime_error("Docopt --help argument encountered"){} };
      |                                                                                           ^
/home/[...]/.cache/yay/hdrview-git/src/hdrview/ext/docopt/docopt.h:52:91: error: expected ‘{’ before ‘(’ token
/home/[...]/.cache/yay/hdrview-git/src/hdrview/ext/docopt/docopt.h: At global scope:
/home/[...]/.cache/yay/hdrview-git/src/hdrview/ext/docopt/docopt.h:55:55: error: expected class-name before ‘{’ token
   55 |         struct DocoptExitVersion : std::runtime_error { DocoptExitVersion() : std::runtime_error("Docopt --version argument encountered") {} };
      |                                                       ^
/home/[...]/.cache/yay/hdrview-git/src/hdrview/ext/docopt/docopt.h: In constructor ‘docopt::DocoptExitVersion::DocoptExitVersion()’:
/home/[...]/.cache/yay/hdrview-git/src/hdrview/ext/docopt/docopt.h:55:97: error: expected class-name before ‘(’ token
   55 |         struct DocoptExitVersion : std::runtime_error { DocoptExitVersion() : std::runtime_error("Docopt --version argument encountered") {} };
      |                                                                                                 ^
/home/[...]/.cache/yay/hdrview-git/src/hdrview/ext/docopt/docopt.h:55:97: error: expected ‘{’ before ‘(’ token
[  3%] Linking CXX executable eLut
[...]
[  5%] Building C object ext/nanogui/ext_build/glfw/src/CMakeFiles/glfw_objects.dir/init.c.o
/home/[...]/.cache/yay/hdrview-git/src/hdrview/ext/docopt/docopt.cpp: In function ‘docopt::PatternList parse_atom(Tokens&, std::vector<docopt::Option>&)’:
/home/[...]/.cache/yay/hdrview-git/src/hdrview/ext/docopt/docopt.cpp:366:67: error: no matching function for call to ‘docopt::DocoptLanguageError::DocoptLanguageError(const char [15])’
  366 |                         throw DocoptLanguageError("Mismatched '['");
      |                                                                   ^
/home/[...]/.cache/yay/hdrview-git/src/hdrview/ext/docopt/docopt.h:46:16: note: candidate: ‘constexpr docopt::DocoptLanguageError::DocoptLanguageError()’
   46 |         struct DocoptLanguageError : std::runtime_error { using runtime_error::runtime_error; };
      |                ^~~~~~~~~~~~~~~~~~~
/home/[...]/.cache/yay/hdrview-git/src/hdrview/ext/docopt/docopt.h:46:16: note:   candidate expects 0 arguments, 1 provided
/home/[...]/.cache/yay/hdrview-git/src/hdrview/ext/docopt/docopt.h:46:16: note: candidate: ‘constexpr docopt::DocoptLanguageError::DocoptLanguageError(const docopt::DocoptLanguageError&)’
/home/[...]/.cache/yay/hdrview-git/src/hdrview/ext/docopt/docopt.h:46:16: note:   no known conversion for argument 1 from ‘const char [15]’ to ‘const docopt::DocoptLanguageError&’
/home/[...]/.cache/yay/hdrview-git/src/hdrview/ext/docopt/docopt.h:46:16: note: candidate: ‘constexpr docopt::DocoptLanguageError::DocoptLanguageError(docopt::DocoptLanguageError&&)’
/home/[...]/.cache/yay/hdrview-git/src/hdrview/ext/docopt/docopt.h:46:16: note:   no known conversion for argument 1 from ‘const char [15]’ to ‘docopt::DocoptLanguageError&&’
/home/[...]/.cache/yay/hdrview-git/src/hdrview/ext/docopt/docopt.cpp:377:67: error: no matching function for call to ‘docopt::DocoptLanguageError::DocoptLanguageError(const char [15])’
  377 |                         throw DocoptLanguageError("Mismatched '('");
      |                                                                   ^
/home/[...]/.cache/yay/hdrview-git/src/hdrview/ext/docopt/docopt.h:46:16: note: candidate: ‘constexpr docopt::DocoptLanguageError::DocoptLanguageError()’
   46 |         struct DocoptLanguageError : std::runtime_error { using runtime_error::runtime_error; };
      |                ^~~~~~~~~~~~~~~~~~~
/home/[...]/.cache/yay/hdrview-git/src/hdrview/ext/docopt/docopt.h:46:16: note:   candidate expects 0 arguments, 1 provided
/home/[...]/.cache/yay/hdrview-git/src/hdrview/ext/docopt/docopt.h:46:16: note: candidate: ‘constexpr docopt::DocoptLanguageError::DocoptLanguageError(const docopt::DocoptLanguageError&)’
/home/[...]/.cache/yay/hdrview-git/src/hdrview/ext/docopt/docopt.h:46:16: note:   no known conversion for argument 1 from ‘const char [15]’ to ‘const docopt::DocoptLanguageError&’
/home/[...]/.cache/yay/hdrview-git/src/hdrview/ext/docopt/docopt.h:46:16: note: candidate: ‘constexpr docopt::DocoptLanguageError::DocoptLanguageError(docopt::DocoptLanguageError&&)’
/home/[...]/.cache/yay/hdrview-git/src/hdrview/ext/docopt/docopt.h:46:16: note:   no known conversion for argument 1 from ‘const char [15]’ to ‘docopt::DocoptLanguageError&&’
/home/[...]/.cache/yay/hdrview-git/src/hdrview/ext/docopt/docopt.cpp: In function ‘docopt::Required parse_pattern(const std::string&, std::vector<docopt::Option>&)’:
/home/[...]/.cache/yay/hdrview-git/src/hdrview/ext/docopt/docopt.cpp:464:91: error: no matching function for call to ‘docopt::DocoptLanguageError::DocoptLanguageError(std::__cxx11::basic_string<char>)’
  464 |                 throw DocoptLanguageError("Unexpected ending: '" + tokens.the_rest() + "'");
      |                                                                                           ^
/home/[...]/.cache/yay/hdrview-git/src/hdrview/ext/docopt/docopt.h:46:16: note: candidate: ‘constexpr docopt::DocoptLanguageError::DocoptLanguageError()’
   46 |         struct DocoptLanguageError : std::runtime_error { using runtime_error::runtime_error; };
      |                ^~~~~~~~~~~~~~~~~~~
/home/[...]/.cache/yay/hdrview-git/src/hdrview/ext/docopt/docopt.h:46:16: note:   candidate expects 0 arguments, 1 provided
/home/[...]/.cache/yay/hdrview-git/src/hdrview/ext/docopt/docopt.h:46:16: note: candidate: ‘constexpr docopt::DocoptLanguageError::DocoptLanguageError(const docopt::DocoptLanguageError&)’
/home/[...]/.cache/yay/hdrview-git/src/hdrview/ext/docopt/docopt.h:46:16: note:   no known conversion for argument 1 from ‘std::__cxx11::basic_string<char>’ to ‘const docopt::DocoptLanguageError&’
/home/[...]/.cache/yay/hdrview-git/src/hdrview/ext/docopt/docopt.h:46:16: note: candidate: ‘constexpr docopt::DocoptLanguageError::DocoptLanguageError(docopt::DocoptLanguageError&&)’
/home/[...]/.cache/yay/hdrview-git/src/hdrview/ext/docopt/docopt.h:46:16: note:   no known conversion for argument 1 from ‘std::__cxx11::basic_string<char>’ to ‘docopt::DocoptLanguageError&&’
/home/[...]/.cache/yay/hdrview-git/src/hdrview/ext/docopt/docopt.cpp: In function ‘std::pair<docopt::Required, std::vector<docopt::Option> > create_pattern_tree(const std::string&)’:
/home/[...]/.cache/yay/hdrview-git/src/hdrview/ext/docopt/docopt.cpp:573:83: error: no matching function for call to ‘docopt::DocoptLanguageError::DocoptLanguageError(const char [39])’
  573 |                 throw DocoptLanguageError("'usage:' (case-insensitive) not found.");
      |                                                                                   ^
/home/[...]/.cache/yay/hdrview-git/src/hdrview/ext/docopt/docopt.h:46:16: note: candidate: ‘constexpr docopt::DocoptLanguageError::DocoptLanguageError()’
   46 |         struct DocoptLanguageError : std::runtime_error { using runtime_error::runtime_error; };
      |                ^~~~~~~~~~~~~~~~~~~
/home/[...]/.cache/yay/hdrview-git/src/hdrview/ext/docopt/docopt.h:46:16: note:   candidate expects 0 arguments, 1 provided
/home/[...]/.cache/yay/hdrview-git/src/hdrview/ext/docopt/docopt.h:46:16: note: candidate: ‘constexpr docopt::DocoptLanguageError::DocoptLanguageError(const docopt::DocoptLanguageError&)’
/home/[...]/.cache/yay/hdrview-git/src/hdrview/ext/docopt/docopt.h:46:16: note:   no known conversion for argument 1 from ‘const char [39]’ to ‘const docopt::DocoptLanguageError&’
/home/[...]/.cache/yay/hdrview-git/src/hdrview/ext/docopt/docopt.h:46:16: note: candidate: ‘constexpr docopt::DocoptLanguageError::DocoptLanguageError(docopt::DocoptLanguageError&&)’
/home/[...]/.cache/yay/hdrview-git/src/hdrview/ext/docopt/docopt.h:46:16: note:   no known conversion for argument 1 from ‘const char [39]’ to ‘docopt::DocoptLanguageError&&’
/home/[...]/.cache/yay/hdrview-git/src/hdrview/ext/docopt/docopt.cpp:576:87: error: no matching function for call to ‘docopt::DocoptLanguageError::DocoptLanguageError(const char [43])’
  576 |                 throw DocoptLanguageError("More than one 'usage:' (case-insensitive).");
      |                                                                                       ^
/home/[...]/.cache/yay/hdrview-git/src/hdrview/ext/docopt/docopt.h:46:16: note: candidate: ‘constexpr docopt::DocoptLanguageError::DocoptLanguageError()’
   46 |         struct DocoptLanguageError : std::runtime_error { using runtime_error::runtime_error; };
      |                ^~~~~~~~~~~~~~~~~~~
/home/[...]/.cache/yay/hdrview-git/src/hdrview/ext/docopt/docopt.h:46:16: note:   candidate expects 0 arguments, 1 provided
/home/[...]/.cache/yay/hdrview-git/src/hdrview/ext/docopt/docopt.h:46:16: note: candidate: ‘constexpr docopt::DocoptLanguageError::DocoptLanguageError(const docopt::DocoptLanguageError&)’
/home/[...]/.cache/yay/hdrview-git/src/hdrview/ext/docopt/docopt.h:46:16: note:   no known conversion for argument 1 from ‘const char [43]’ to ‘const docopt::DocoptLanguageError&’
/home/[...]/.cache/yay/hdrview-git/src/hdrview/ext/docopt/docopt.h:46:16: note: candidate: ‘constexpr docopt::DocoptLanguageError::DocoptLanguageError(docopt::DocoptLanguageError&&)’
/home/[...]/.cache/yay/hdrview-git/src/hdrview/ext/docopt/docopt.h:46:16: note:   no known conversion for argument 1 from ‘const char [43]’ to ‘docopt::DocoptLanguageError&&’
/home/[...]/.cache/yay/hdrview-git/src/hdrview/ext/docopt/docopt.cpp: In function ‘std::map<std::__cxx11::basic_string<char>, docopt::value> docopt::docopt_parse(const std::string&, const std::vector<std::__cxx11::basic_string<char> >&, bool, bool, bool)’:
/home/[...]/.cache/yay/hdrview-git/src/hdrview/ext/docopt/docopt.cpp:624:55: error: no matching function for call to ‘docopt::DocoptLanguageError::DocoptLanguageError(const char*)’
  624 |                 throw DocoptLanguageError(error.what());
      |                                                       ^
/home/[...]/.cache/yay/hdrview-git/src/hdrview/ext/docopt/docopt.h:46:16: note: candidate: ‘constexpr docopt::DocoptLanguageError::DocoptLanguageError()’
   46 |         struct DocoptLanguageError : std::runtime_error { using runtime_error::runtime_error; };
      |                ^~~~~~~~~~~~~~~~~~~
/home/[...]/.cache/yay/hdrview-git/src/hdrview/ext/docopt/docopt.h:46:16: note:   candidate expects 0 arguments, 1 provided
/home/[...]/.cache/yay/hdrview-git/src/hdrview/ext/docopt/docopt.h:46:16: note: candidate: ‘constexpr docopt::DocoptLanguageError::DocoptLanguageError(const docopt::DocoptLanguageError&)’
/home/[...]/.cache/yay/hdrview-git/src/hdrview/ext/docopt/docopt.h:46:16: note:   no known conversion for argument 1 from ‘const char*’ to ‘const docopt::DocoptLanguageError&’
/home/[...]/.cache/yay/hdrview-git/src/hdrview/ext/docopt/docopt.h:46:16: note: candidate: ‘constexpr docopt::DocoptLanguageError::DocoptLanguageError(docopt::DocoptLanguageError&&)’
/home/[...]/.cache/yay/hdrview-git/src/hdrview/ext/docopt/docopt.h:46:16: note:   no known conversion for argument 1 from ‘const char*’ to ‘docopt::DocoptLanguageError&&’
/home/[...]/.cache/yay/hdrview-git/src/hdrview/ext/docopt/docopt.cpp:631:55: error: no matching function for call to ‘docopt::DocoptArgumentError::DocoptArgumentError(const char*)’
  631 |                 throw DocoptArgumentError(error.what());
      |                                                       ^
/home/[...]/.cache/yay/hdrview-git/src/hdrview/ext/docopt/docopt.h:49:16: note: candidate: ‘constexpr docopt::DocoptArgumentError::DocoptArgumentError()’
   49 |         struct DocoptArgumentError : std::runtime_error { using runtime_error::runtime_error; };
      |                ^~~~~~~~~~~~~~~~~~~
/home/[...]/.cache/yay/hdrview-git/src/hdrview/ext/docopt/docopt.h:49:16: note:   candidate expects 0 arguments, 1 provided
/home/[...]/.cache/yay/hdrview-git/src/hdrview/ext/docopt/docopt.h:49:16: note: candidate: ‘constexpr docopt::DocoptArgumentError::DocoptArgumentError(const docopt::DocoptArgumentError&)’
/home/[...]/.cache/yay/hdrview-git/src/hdrview/ext/docopt/docopt.h:49:16: note:   no known conversion for argument 1 from ‘const char*’ to ‘const docopt::DocoptArgumentError&’
/home/[...]/.cache/yay/hdrview-git/src/hdrview/ext/docopt/docopt.h:49:16: note: candidate: ‘constexpr docopt::DocoptArgumentError::DocoptArgumentError(docopt::DocoptArgumentError&&)’
/home/[...]/.cache/yay/hdrview-git/src/hdrview/ext/docopt/docopt.h:49:16: note:   no known conversion for argument 1 from ‘const char*’ to ‘docopt::DocoptArgumentError&&’
/home/[...]/.cache/yay/hdrview-git/src/hdrview/ext/docopt/docopt.cpp:655:77: error: no matching function for call to ‘docopt::DocoptArgumentError::DocoptArgumentError(std::__cxx11::basic_string<char>)’
  655 |                 throw DocoptArgumentError("Unexpected argument: " + leftover);
      |                                                                             ^
/home/[...]/.cache/yay/hdrview-git/src/hdrview/ext/docopt/docopt.h:49:16: note: candidate: ‘constexpr docopt::DocoptArgumentError::DocoptArgumentError()’
   49 |         struct DocoptArgumentError : std::runtime_error { using runtime_error::runtime_error; };
      |                ^~~~~~~~~~~~~~~~~~~
/home/[...]/.cache/yay/hdrview-git/src/hdrview/ext/docopt/docopt.h:49:16: note:   candidate expects 0 arguments, 1 provided
/home/[...]/.cache/yay/hdrview-git/src/hdrview/ext/docopt/docopt.h:49:16: note: candidate: ‘constexpr docopt::DocoptArgumentError::DocoptArgumentError(const docopt::DocoptArgumentError&)’
/home/[...]/.cache/yay/hdrview-git/src/hdrview/ext/docopt/docopt.h:49:16: note:   no known conversion for argument 1 from ‘std::__cxx11::basic_string<char>’ to ‘const docopt::DocoptArgumentError&’
/home/[...]/.cache/yay/hdrview-git/src/hdrview/ext/docopt/docopt.h:49:16: note: candidate: ‘constexpr docopt::DocoptArgumentError::DocoptArgumentError(docopt::DocoptArgumentError&&)’
/home/[...]/.cache/yay/hdrview-git/src/hdrview/ext/docopt/docopt.h:49:16: note:   no known conversion for argument 1 from ‘std::__cxx11::basic_string<char>’ to ‘docopt::DocoptArgumentError&&’
/home/[...]/.cache/yay/hdrview-git/src/hdrview/ext/docopt/docopt.cpp:658:78: error: no matching function for call to ‘docopt::DocoptArgumentError::DocoptArgumentError(const char [42])’
  658 |         throw DocoptArgumentError("Arguments did not match expected patterns"); // BLEH. Bad error.
      |                                                                              ^
/home/[...]/.cache/yay/hdrview-git/src/hdrview/ext/docopt/docopt.h:49:16: note: candidate: ‘constexpr docopt::DocoptArgumentError::DocoptArgumentError()’
   49 |         struct DocoptArgumentError : std::runtime_error { using runtime_error::runtime_error; };
      |                ^~~~~~~~~~~~~~~~~~~
/home/[...]/.cache/yay/hdrview-git/src/hdrview/ext/docopt/docopt.h:49:16: note:   candidate expects 0 arguments, 1 provided
/home/[...]/.cache/yay/hdrview-git/src/hdrview/ext/docopt/docopt.h:49:16: note: candidate: ‘constexpr docopt::DocoptArgumentError::DocoptArgumentError(const docopt::DocoptArgumentError&)’
/home/[...]/.cache/yay/hdrview-git/src/hdrview/ext/docopt/docopt.h:49:16: note:   no known conversion for argument 1 from ‘const char [42]’ to ‘const docopt::DocoptArgumentError&’
/home/[...]/.cache/yay/hdrview-git/src/hdrview/ext/docopt/docopt.h:49:16: note: candidate: ‘constexpr docopt::DocoptArgumentError::DocoptArgumentError(docopt::DocoptArgumentError&&)’
/home/[...]/.cache/yay/hdrview-git/src/hdrview/ext/docopt/docopt.h:49:16: note:   no known conversion for argument 1 from ‘const char [42]’ to ‘docopt::DocoptArgumentError&&’
/home/[...]/.cache/yay/hdrview-git/src/hdrview/ext/docopt/docopt.cpp: In function ‘std::map<std::__cxx11::basic_string<char>, docopt::value> docopt::docopt(const std::string&, const std::vector<std::__cxx11::basic_string<char> >&, bool, const std::string&, bool)’:
/home/[...]/.cache/yay/hdrview-git/src/hdrview/ext/docopt/docopt.cpp:679:36: error: ‘const struct docopt::DocoptLanguageError’ has no member named ‘what’
  679 |                 std::cerr << error.what() << std::endl;
      |                                    ^~~~
/home/[...]/.cache/yay/hdrview-git/src/hdrview/ext/docopt/docopt.cpp:682:36: error: ‘const struct docopt::DocoptArgumentError’ has no member named ‘what’
  682 |                 std::cerr << error.what();
      |                                    ^~~~
[  6%] Building C object ext/nanogui/ext_build/glfw/src/CMakeFiles/glfw_objects.dir/input.c.o
[  6%] Building C object ext/nanogui/ext_build/glfw/src/CMakeFiles/glfw_objects.dir/monitor.c.o
[  6%] Building CXX object ext/openexr/OpenEXR/IlmImf/CMakeFiles/IlmImf-obj.dir/ImfBoxAttribute.cpp.o
[  7%] Building C object ext/nanogui/ext_build/glfw/src/CMakeFiles/glfw_objects.dir/vulkan.c.o
[  7%] Building C object ext/nanogui/ext_build/glfw/src/CMakeFiles/glfw_objects.dir/window.c.o
[  8%] Building CXX object ext/openexr/OpenEXR/IlmImf/CMakeFiles/IlmImf-obj.dir/ImfCRgbaFile.cpp.o
[  9%] Linking CXX static library libIex.a
[  9%] Built target Iex
/home/[...]/.cache/yay/hdrview-git/src/hdrview/ext/docopt/docopt.cpp: In function ‘std::map<std::__cxx11::basic_string<char>, docopt::value> docopt::docopt_parse(const std::string&, const std::vector<std::__cxx11::basic_string<char> >&, bool, bool, bool)’:
/home/[...]/.cache/yay/hdrview-git/src/hdrview/ext/docopt/docopt.cpp:659:1: warning: control reaches end of non-void function [-Wreturn-type]
  659 | }
      | ^
[  9%] Building CXX object ext/openexr/OpenEXR/IlmImf/CMakeFiles/IlmImf-obj.dir/ImfChannelList.cpp.o
[ 10%] Building C object ext/nanogui/ext_build/glfw/src/CMakeFiles/glfw_objects.dir/x11_init.c.o
make[2]: *** [ext/docopt/CMakeFiles/docopt_o.dir/build.make:76: ext/docopt/CMakeFiles/docopt_o.dir/docopt.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:858: ext/docopt/CMakeFiles/docopt_o.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[ 10%] Building C object ext/nanogui/ext_build/glfw/src/CMakeFiles/glfw_objects.dir/x11_monitor.c.o
[...]
[ 52%] Built target IlmImf-obj
make: *** [Makefile:156: all] Error 2
==> ERROR: A failure occurred in build().

Regards!