diff options
author | Daniel Bermond | 2021-06-02 18:29:08 +0000 |
---|---|---|
committer | Daniel Bermond | 2021-06-02 18:29:08 +0000 |
commit | 1e185ba12de31af6e52cefd10607ea40a13706d3 (patch) | |
tree | b8cc46287828a2a2c532e083fcd99a47dd3b373e | |
download | aur-1e185ba12de31af6e52cefd10607ea40a13706d3.tar.gz |
Initial commit
Package libjpeg-xl renamed to libjxl to follow the upstream
name change.
-rw-r--r-- | .SRCINFO | 70 | ||||
-rw-r--r-- | 010-libjxl-openexr-fix.patch | 37 | ||||
-rw-r--r-- | PKGBUILD | 107 |
3 files changed, 214 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO new file mode 100644 index 000000000000..fd55246ae76c --- /dev/null +++ b/.SRCINFO @@ -0,0 +1,70 @@ +pkgbase = libjxl + pkgdesc = JPEG XL image format reference implementation + pkgver = 0.3.7 + pkgrel = 1 + url = https://jpeg.org/jpegxl/ + arch = x86_64 + license = Apache + makedepends = git + makedepends = cmake + makedepends = clang + makedepends = brotli + makedepends = gdk-pixbuf2 + makedepends = giflib + makedepends = gimp + makedepends = libjpeg-turbo + makedepends = libpng + makedepends = openexr + makedepends = zlib + makedepends = libgl + makedepends = freeglut + makedepends = gtest + makedepends = gmock + makedepends = python + makedepends = asciidoc + makedepends = doxygen + makedepends = graphviz + source = git+https://github.com/libjxl/libjxl.git#tag=v0.3.7 + source = git+https://github.com/google/brotli.git + source = git+https://github.com/lvandeve/lodepng.git + source = git+https://github.com/mm2/Little-CMS.git + source = git+https://github.com/google/googletest.git + source = git+https://github.com/webmproject/sjpeg.git + source = git+https://skia.googlesource.com/skcms.git + source = git+https://github.com/veluca93/IQA-optimization.git + source = git+https://github.com/Netflix/vmaf.git + source = git+https://github.com/thorfdbg/difftest_ng.git + source = git+https://github.com/google/highway.git + source = 010-libjxl-openexr-fix.patch + sha256sums = SKIP + sha256sums = SKIP + sha256sums = SKIP + sha256sums = SKIP + sha256sums = SKIP + sha256sums = SKIP + sha256sums = SKIP + sha256sums = SKIP + sha256sums = SKIP + sha256sums = SKIP + sha256sums = SKIP + sha256sums = 55e6c00fa8293d5cdcf205c88f21764bb89a2c8d2d252d059ec68091e3ee57ee + +pkgname = libjxl + depends = brotli + optdepends = gdk-pixbuf2: for gdk-pixbuf loader + optdepends = giflib: for CLI tools + optdepends = gimp: for gimp plugin + optdepends = libjpeg-turbo: for CLI tools + optdepends = libpng: for CLI tools + optdepends = openexr: for CLI tools + provides = libjpeg-xl + provides = libjxl.so + conflicts = libjpeg-xl + replaces = libjpeg-xl + +pkgname = libjxl-doc + pkgdesc = JPEG XL image format reference implementation (documentation) + arch = any + provides = libjeg-xl-doc + conflicts = libjpeg-xl-doc + replaces = libjpeg-xl-doc diff --git a/010-libjxl-openexr-fix.patch b/010-libjxl-openexr-fix.patch new file mode 100644 index 000000000000..a6d247958c1c --- /dev/null +++ b/010-libjxl-openexr-fix.patch @@ -0,0 +1,37 @@ +--- a/lib/extras/codec_exr.cc ++++ b/lib/extras/codec_exr.cc +@@ -32,6 +32,12 @@ namespace { + namespace OpenEXR = OPENEXR_IMF_NAMESPACE; + namespace Imath = IMATH_NAMESPACE; + ++// OpenEXR::Int64 is deprecated in favor of using uint64_t directly, but using ++// uint64_t as recommended causes build failures with previous OpenEXR versions ++// on macOS, where the definition for OpenEXR::Int64 was actually not equivalent ++// to uint64_t. This alternative should work in all cases. ++using ExrInt64 = decltype(std::declval<OpenEXR::IStream>().tellg()); ++ + constexpr int kExrBitsPerSample = 16; + constexpr int kExrAlphaBits = 16; + +@@ -90,8 +96,8 @@ class InMemoryIStream : public OpenEXR::IStream { + return pos_ < bytes_.size(); + } + +- OpenEXR::Int64 tellg() override { return pos_; } +- void seekg(const OpenEXR::Int64 pos) override { ++ ExrInt64 tellg() override { return pos_; } ++ void seekg(const ExrInt64 pos) override { + JXL_ASSERT(pos + 1 <= bytes_.size()); + pos_ = pos; + } +@@ -115,8 +121,8 @@ class InMemoryOStream : public OpenEXR::OStream { + pos_ += n; + } + +- OpenEXR::Int64 tellp() override { return pos_; } +- void seekp(const OpenEXR::Int64 pos) override { ++ ExrInt64 tellp() override { return pos_; } ++ void seekp(const ExrInt64 pos) override { + if (bytes_.size() + 1 < pos) { + bytes_.resize(pos - 1); + } diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 000000000000..5afadbb32dc7 --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,107 @@ +# Maintainer: Daniel Bermond <dbermond@archlinux.org> + +pkgbase=libjxl +pkgname=('libjxl' 'libjxl-doc') +pkgver=0.3.7 +pkgrel=1 +pkgdesc='JPEG XL image format reference implementation' +arch=('x86_64') +url='https://jpeg.org/jpegxl/' +#license=('BSD') # license will change on the next release +license=('Apache') +makedepends=('git' 'cmake' 'clang' 'brotli' 'gdk-pixbuf2' 'giflib' 'gimp' + 'libjpeg-turbo' 'libpng' 'openexr' 'zlib' 'libgl' 'freeglut' + 'gtest' 'gmock' 'python' 'asciidoc' 'doxygen' 'graphviz') +source=("git+https://github.com/libjxl/libjxl.git#tag=v${pkgver}" + 'git+https://github.com/google/brotli.git' + 'git+https://github.com/lvandeve/lodepng.git' + 'git+https://github.com/mm2/Little-CMS.git' + 'git+https://github.com/google/googletest.git' + 'git+https://github.com/webmproject/sjpeg.git' + 'git+https://skia.googlesource.com/skcms.git' + 'git+https://github.com/veluca93/IQA-optimization.git' + 'git+https://github.com/Netflix/vmaf.git' + 'git+https://github.com/thorfdbg/difftest_ng.git' + 'git+https://github.com/google/highway.git' + '010-libjxl-openexr-fix.patch') +sha256sums=('SKIP' + 'SKIP' + 'SKIP' + 'SKIP' + 'SKIP' + 'SKIP' + 'SKIP' + 'SKIP' + 'SKIP' + 'SKIP' + 'SKIP' + '55e6c00fa8293d5cdcf205c88f21764bb89a2c8d2d252d059ec68091e3ee57ee') + +prepare() { + git -C libjxl submodule init + git -C libjxl config --local submodule.third_party/brotli.url "${srcdir}/brotli" + git -C libjxl config --local submodule.third_party/lodepng.url "${srcdir}/lodepng" + git -C libjxl config --local submodule.third_party/lcms.url "${srcdir}/Little-CMS" + git -C libjxl config --local submodule.third_party/googletest.url "${srcdir}/googletest" + git -C libjxl config --local submodule.third_party/sjpeg.url "${srcdir}/sjpeg" + git -C libjxl config --local submodule.third_party/skcms.url "${srcdir}/skcms" + git -C libjxl config --local submodule.third_party/IQA-optimization.url "${srcdir}/IQA-optimization" + git -C libjxl config --local submodule.third_party/vmaf.url "${srcdir}/vmaf" + git -C libjxl config --local submodule.third_party/difftest_ng.url "${srcdir}/difftest_ng" + git -C libjxl config --local submodule.third_party/highway.url "${srcdir}/highway" + git -C libjxl submodule update + + # https://gitlab.com/wg1/jpeg-xl/-/issues/162 + # https://gitlab.com/wg1/jpeg-xl/-/issues/238 + # https://github.com/libjxl/libjxl/commit/9a8f5195e4d1c45112fd65f184ebe115f4163ba2#diff-5302e2eb1ae00d323a83e482b68cbcc96bd3d717f3414663a5fffd29428808b3 + patch -d libjxl -Np1 -i "${srcdir}/010-libjxl-openexr-fix.patch" +} + +build() { + export CC='clang' + export CXX='clang++' + cmake -B build -S libjxl \ + -DCMAKE_BUILD_TYPE:STRING='None' \ + -DCMAKE_INSTALL_PREFIX:PATH='/usr' \ + -DJPEGXL_ENABLE_BENCHMARK:BOOL='false' \ + -DJPEGXL_ENABLE_FUZZERS:BOOL='false' \ + -DJPEGXL_ENABLE_PLUGINS:BOOL='true' \ + -DJPEGXL_ENABLE_VIEWERS:BOOL='false' \ + -DJPEGXL_ENABLE_GIMP_SAVING:BOOL='ON' \ + -DJPEGXL_FORCE_SYSTEM_BROTLI:BOOL='true' \ + -DJPEGXL_FORCE_SYSTEM_GTEST:BOOL='true' \ + -DJPEGXL_FORCE_SYSTEM_HWY:BOOL='false' \ + -DJPEGXL_WARNINGS_AS_ERRORS:BOOL='false' \ + -Wno-dev + make -C build all doc +} + +check() { + make -C build test +} + +package_libjxl() { + depends=('brotli') + optdepends=('gdk-pixbuf2: for gdk-pixbuf loader' + 'giflib: for CLI tools' + 'gimp: for gimp plugin' + 'libjpeg-turbo: for CLI tools' + 'libpng: for CLI tools' + 'openexr: for CLI tools') + provides=('libjpeg-xl' 'libjxl.so') + conflicts=('libjpeg-xl') + replaces=('libjpeg-xl') + + make -C build DESTDIR="$pkgdir" install +} + +package_libjxl-doc() { + pkgdesc+=' (documentation)' + arch=('any') + provides=('libjeg-xl-doc') + conflicts=('libjpeg-xl-doc') + replaces=('libjpeg-xl-doc') + + install -d -m755 "${pkgdir}/usr/share/doc" + cp -dr --no-preserve='ownership' build/html "${pkgdir}/usr/share/doc/libjxl" +} |