Shopify / homebrew-shopify

47 stars 24 forks source link

Should we switch to mainline libvips? #826

Closed michaelherold closed 6 months ago

michaelherold commented 8 months ago

libvips v8.15.0 contains the commit that we required. Should we switch to using upstream now that that has been merged?

cc @dloebl since you're the progenitor of the patch

dloebl commented 8 months ago

Sound good! I've merged #815.

michaelherold commented 8 months ago

Great, that's good to hear!

I wonder if it's worth maintaining a shopify-vips now or if we should update the package definition in dev to use upstream. What do you think?

varoot commented 8 months ago

dev up has been failing for me on shop-server at installing shopify-vips step.

I also got the same error running brew install shopify-vips manually. It works fine for brew install vips, so not sure what happened here. From the logs, it seems related to having jpeg-xl version 0.9.

Logs from meson ``` 2024-01-08 14:21:02 +0000 meson install -C build ninja: Entering directory `/private/tmp/shopify-vips-20240108-24916-d5oz6c/vips-8.15.0/build' [1/400] Building translation po/de/LC_MESSAGES/vips8.15-de.mo [2/400] Building translation po/en_GB/LC_MESSAGES/vips8.15-en_GB.mo [3/400] Compiling C object fuzz/libstandalone_engine.a.p/StandaloneFuzzTargetMain.c.o [4/400] Compiling C object libvips/foreign/libnsgif/libnsgif.a.p/lzw.c.o [5/400] Linking static target fuzz/libstandalone_engine.a [6/400] Generating glib marshaller header libvips/iofuncs/vipsmarshal_h INFO: Reading ../libvips/iofuncs/vipsmarshal.list... [7/400] Compiling C object libvips/foreign/libnsgif/libnsgif.a.p/gif.c.o [8/400] Linking static target libvips/foreign/libnsgif/libnsgif.a [9/400] Generating GObject enum file libvips/include/vips/enumtypes.h (wrapped by meson to capture output) [10/400] Generating glib marshaller source libvips/iofuncs/vipsmarshal_c INFO: Reading ../libvips/iofuncs/vipsmarshal.list... [11/400] Compiling C object libvips/foreign/libforeign.a.p/fits.c.o [12/400] Compiling C object libvips/foreign/libforeign.a.p/analyze2vips.c.o [13/400] Compiling C object libvips/foreign/libforeign.a.p/archive.c.o [14/400] Compiling C object libvips/foreign/libforeign.a.p/dzsave.c.o [15/400] Compiling C object libvips/foreign/libforeign.a.p/analyzeload.c.o [16/400] Compiling C object libvips/foreign/libforeign.a.p/fitsload.c.o [17/400] Compiling C object libvips/foreign/libforeign.a.p/cairo.c.o [18/400] Compiling C object libvips/foreign/libforeign.a.p/csvload.c.o [19/400] Compiling C object libvips/foreign/libforeign.a.p/exif.c.o [20/400] Compiling C object libvips/foreign/libforeign.a.p/cgifsave.c.o [21/400] Compiling C object libvips/foreign/libforeign.a.p/csvsave.c.o [22/400] Compiling C object libvips/foreign/libforeign.a.p/fitssave.c.o [23/400] Generating GObject enum file libvips/include/vips/enumtypes.c (wrapped by meson to capture output) [24/400] Compiling C object libvips/foreign/libforeign.a.p/jp2kload.c.o [25/400] Compiling C object libvips/foreign/libforeign.a.p/jp2ksave.c.o [26/400] Compiling C object libvips/foreign/libforeign.a.p/magickload.c.o [27/400] Compiling C object libvips/foreign/libforeign.a.p/matlab.c.o [28/400] Compiling C object libvips/foreign/libforeign.a.p/jpegload.c.o [29/400] Compiling C object libvips/foreign/libforeign.a.p/magicksave.c.o [30/400] Compiling C object libvips/foreign/libforeign.a.p/foreign.c.o [31/400] Compiling C object libvips/foreign/libforeign.a.p/matload.c.o [32/400] Compiling C object libvips/foreign/libforeign.a.p/jpegsave.c.o [33/400] Compiling C object libvips/foreign/libforeign.a.p/openexr2vips.c.o [34/400] Compiling C object libvips/foreign/libforeign.a.p/niftiload.c.o [35/400] Compiling C object libvips/foreign/libforeign.a.p/jpeg2vips.c.o [36/400] Compiling C object libvips/foreign/libforeign.a.p/niftisave.c.o [37/400] Compiling C object libvips/foreign/libforeign.a.p/matrixsave.c.o [38/400] Compiling C object libvips/foreign/libforeign.a.p/openexrload.c.o [39/400] Compiling C object libvips/foreign/libforeign.a.p/pdfiumload.c.o [40/400] Compiling C object libvips/foreign/libforeign.a.p/matrixload.c.o [41/400] Compiling C object libvips/foreign/libforeign.a.p/nsgifload.c.o [42/400] Compiling C object libvips/foreign/libforeign.a.p/pngload.c.o [43/400] Compiling C object libvips/foreign/libforeign.a.p/ppmload.c.o [44/400] Compiling C object libvips/foreign/libforeign.a.p/radiance.c.o [45/400] Compiling C object libvips/foreign/libforeign.a.p/pngsave.c.o [46/400] Compiling C object libvips/foreign/libforeign.a.p/ppmsave.c.o [47/400] Compiling C object libvips/foreign/libforeign.a.p/quantise.c.o [48/400] Compiling C object libvips/foreign/libforeign.a.p/radload.c.o [49/400] Compiling C object libvips/foreign/libforeign.a.p/rawsave.c.o [50/400] Compiling C object libvips/foreign/libforeign.a.p/spngload.c.o [51/400] Compiling C object libvips/foreign/libforeign.a.p/radsave.c.o [52/400] Compiling C object libvips/foreign/libforeign.a.p/spngsave.c.o [53/400] Compiling C object libvips/foreign/libforeign.a.p/rawload.c.o [54/400] Compiling C object libvips/foreign/libforeign.a.p/tiffload.c.o [55/400] Compiling C object libvips/foreign/libforeign.a.p/tiff.c.o [56/400] Compiling C object libvips/foreign/libforeign.a.p/tiffsave.c.o [57/400] Compiling C object libvips/foreign/libforeign.a.p/svgload.c.o [58/400] Compiling C object libvips/foreign/libforeign.a.p/vipssave.c.o [59/400] Compiling C object libvips/foreign/libforeign.a.p/vipsload.c.o [60/400] Compiling C object libvips/foreign/libforeign.a.p/vips2jpeg.c.o [61/400] Compiling C object libvips/foreign/libforeign.a.p/webpload.c.o [62/400] Compiling C object libvips/foreign/libforeign.a.p/webp2vips.c.o [63/400] Compiling C object libvips/foreign/libforeign.a.p/vipspng.c.o [64/400] Compiling C object libvips/foreign/libforeign.a.p/tiff2vips.c.o [65/400] Compiling C object libvips/foreign/libforeign.a.p/magick7load.c.o [66/400] Compiling C object libvips/foreign/libforeign.a.p/magick.c.o [67/400] Compiling C object libvips/foreign/libforeign.a.p/magick6load.c.o [68/400] Compiling C object libvips/foreign/libforeign.a.p/webpsave.c.o [69/400] Compiling C object libvips/foreign/libforeign.a.p/magick2vips.c.o [70/400] Compiling C object libvips/foreign/libforeign.a.p/jxlload.c.o FAILED: libvips/foreign/libforeign.a.p/jxlload.c.o clang -Ilibvips/foreign/libforeign.a.p -Ilibvips/foreign -I../libvips/foreign -I. -I.. -Ilibvips/include -I../libvips/include -Ilibvips/include/vips -I/opt/homebrew/Cellar/pcre2/10.42/include -I/opt/homebrew/Cellar/glib/2.78.3/include/glib-2.0 -I/opt/homebrew/Cellar/glib/2.78.3/lib/glib-2.0/include -I/opt/homebrew/opt/gettext/include -I/opt/homebrew/Cellar/glib/2.78.3/include -I/Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk/usr/include/ffi -I/opt/homebrew/Cellar/graphicsmagick/1.3.42_1/include/GraphicsMagick -I/opt/homebrew/Cellar/libimagequant/4.2.2/include -I/opt/homebrew/Cellar/cgif/0.3.2/include -I/opt/homebrew/Cellar/libexif/0.6.24/include -I/opt/homebrew/Cellar/mozjpeg/4.1.5/include -I/opt/homebrew/opt/libpng/include/libpng16 -I/opt/homebrew/Cellar/webp/1.3.2/include -I/opt/homebrew/Cellar/webp/1.3.2/include/webp -I/opt/homebrew/Cellar/xz/5.4.5/include -I/opt/homebrew/opt/zstd/include -I/opt/homebrew/Cellar/libtiff/4.6.0/include -I/opt/homebrew/opt/freetype/include/freetype2 -I/opt/homebrew/Cellar/gdk-pixbuf/2.42.10_1/include/gdk-pixbuf-2.0 -I/opt/homebrew/Cellar/fontconfig/2.15.0/include -I/opt/homebrew/Cellar/libxau/1.0.11/include -I/opt/homebrew/Cellar/libxdmcp/1.1.4/include -I/opt/homebrew/Cellar/libxcb/1.16/include -I/opt/homebrew/Cellar/libx11/1.8.7/include -I/opt/homebrew/Cellar/libxext/1.3.5/include -I/opt/homebrew/Cellar/libxrender/0.9.11/include -I/opt/homebrew/Cellar/pixman/0.42.2/include/pixman-1 -I/opt/homebrew/Cellar/cairo/1.18.0/include/cairo -I/opt/homebrew/Cellar/librsvg/2.57.1/include/librsvg-2.0 -I/opt/homebrew/Cellar/xorgproto/2023.2/include -I/opt/homebrew/Cellar/little-cms2/2.16/include -I/opt/homebrew/Cellar/highway/1.0.7/include -I/opt/homebrew/Cellar/libvmaf/3.0.0/include -I/opt/homebrew/Cellar/libvmaf/3.0.0/include/libvmaf -I/opt/homebrew/Cellar/aom/3.8.0_2/include -I/opt/homebrew/Cellar/libde265/1.0.15/include -I/opt/homebrew/Cellar/x265/3.5/include -I/opt/homebrew/Cellar/libheif/1.17.6/include -I/opt/homebrew/Cellar/brotli/1.1.0/include -I/opt/homebrew/Cellar/jpeg-xl/0.9.0/include -fvisibility=hidden -fdiagnostics-color=always -DNDEBUG -Wall -Winvalid-pch -std=gnu99 -O3 -DG_DISABLE_CAST_CHECKS -DG_DISABLE_CHECKS -DG_DISABLE_ASSERT -Werror=pointer-arith -DHAVE_CONFIG_H=1 -DHWY_SHARED_DEFINE -MD -MQ libvips/foreign/libforeign.a.p/jxlload.c.o -MF libvips/foreign/libforeign.a.p/jxlload.c.o.d -o libvips/foreign/libforeign.a.p/jxlload.c.o -c ../libvips/foreign/jxlload.c ../libvips/foreign/jxlload.c:569:6: error: too many arguments to function call, expected 3, have 4 &jxl->icc_size)) { ^~~~~~~~~~~~~~ /opt/homebrew/Cellar/jpeg-xl/0.9.0/include/jxl/decode.h:775:29: note: 'JxlDecoderGetICCProfileSize' declared here JXL_EXPORT JxlDecoderStatus JxlDecoderGetICCProfileSize( ^ ../libvips/foreign/jxlload.c:588:21: error: too many arguments to function call, expected 4, have 5 jxl->icc_data, jxl->icc_size)) { ^~~~~~~~~~~~~ /opt/homebrew/Cellar/jpeg-xl/0.9.0/include/jxl/decode.h:793:29: note: 'JxlDecoderGetColorAsICCProfile' declared here JXL_EXPORT JxlDecoderStatus JxlDecoderGetColorAsICCProfile( ^ 2 errors generated. [71/400] Compiling C object libvips/foreign/libforeign.a.p/vips2magick.c.o [72/400] Compiling C object libvips/foreign/libforeign.a.p/openslideload.c.o [73/400] Compiling C object libvips/foreign/libforeign.a.p/jxlsave.c.o [74/400] Compiling C object libvips/foreign/libforeign.a.p/vips2tiff.c.o [75/400] Compiling C object libvips/foreign/libforeign.a.p/heifload.c.o [76/400] Compiling C object libvips/foreign/libforeign.a.p/popplerload.c.o [77/400] Compiling C object libvips/arithmetic/libarithmetic.a.p/find_trim.c.o [78/400] Compiling C object libvips/foreign/libforeign.a.p/heifsave.c.o [79/400] Compiling C object libvips/arithmetic/libarithmetic.a.p/sum.c.o [80/400] Compiling C object libvips/arithmetic/libarithmetic.a.p/hough_line.c.o [81/400] Compiling C object libvips/arithmetic/libarithmetic.a.p/hough.c.o ninja: build stopped: subcommand failed. Could not rebuild /private/tmp/shopify-vips-20240108-24916-d5oz6c/vips-8.15.0/build HOMEBREW_VERSION: 4.2.2 ORIGIN: https://github.com/Homebrew/brew HEAD: 705d2564ddfb9c915ee9425dd9ed408bfac61005 Last commit: 7 days ago Core tap HEAD: e1eff6ffc6219ad3ef9b3243752d80963d548e9b Core tap last commit: 48 minutes ago Core tap JSON: 08 Jan 14:20 UTC Core cask tap HEAD: 2a24dbf9571f1e4447f8e45c257216c67acfeded Core cask tap last commit: 45 minutes ago Core cask tap JSON: 08 Jan 14:20 UTC HOMEBREW_PREFIX: /opt/homebrew HOMEBREW_CASK_OPTS: [] HOMEBREW_MAKE_JOBS: 10 HOMEBREW_NO_BOOTSNAP: set Homebrew Ruby: 3.1.4 => /opt/homebrew/Library/Homebrew/vendor/portable-ruby/3.1.4/bin/ruby CPU: 10-core 64-bit arm_blizzard_avalanche Clang: 15.0.0 build 1500 Git: 2.42.0 => /opt/homebrew/bin/git Curl: 8.4.0 => /usr/bin/curl macOS: 14.2.1-arm64 CLT: 15.1.0.0.1.1700200546 Xcode: 15.0.1 Rosetta 2: false HOMEBREW_CC: clang HOMEBREW_CXX: clang++ MAKEFLAGS: -j10 CMAKE_PREFIX_PATH: /opt/homebrew/opt/icu4c:/opt/homebrew/opt/m4:/opt/homebrew/opt/readline:/opt/homebrew/opt/libxml2:/opt/homebrew/opt/mozjpeg:/opt/homebrew CMAKE_INCLUDE_PATH: /Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk/System/Library/Frameworks/OpenGL.framework/Versions/Current/Headers CMAKE_LIBRARY_PATH: /Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk/System/Library/Frameworks/OpenGL.framework/Versions/Current/Libraries PKG_CONFIG_PATH: /opt/homebrew/opt/mozjpeg/lib/pkgconfig:/opt/homebrew/opt/gobject-introspection/lib/pkgconfig:/opt/homebrew/opt/libpthread-stubs/lib/pkgconfig:/opt/homebrew/opt/cgif/lib/pkgconfig:/opt/homebrew/opt/gmp/lib/pkgconfig:/opt/homebrew/opt/isl/lib/pkgconfig:/opt/homebrew/opt/mpfr/lib/pkgconfig:/opt/homebrew/opt/lz4/lib/pkgconfig:/opt/homebrew/opt/xz/lib/pkgconfig:/opt/homebrew/opt/zstd/lib/pkgconfig:/opt/homebrew/opt/hwloc/lib/pkgconfig:/opt/homebrew/opt/openssl@3/lib/pkgconfig:/opt/homebrew/opt/libevent/lib/pkgconfig:/opt/homebrew/opt/pmix/lib/pkgconfig:/opt/homebrew/opt/open-mpi/lib/pkgconfig:/opt/homebrew/opt/fftw/lib/pkgconfig:/opt/homebrew/opt/libpng/lib/pkgconfig:/opt/homebrew/opt/freetype/lib/pkgconfig:/opt/homebrew/opt/pcre2/lib/pkgconfig:/opt/homebrew/opt/glib/lib/pkgconfig:/opt/homebrew/opt/jpeg-turbo/lib/pkgconfig:/opt/homebrew/opt/libtiff/lib/pkgconfig:/opt/homebrew/opt/gdk-pixbuf/lib/pkgconfig:/opt/homebrew/opt/fontconfig/lib/pkgconfig:/opt/homebrew/opt/libxau/lib/pkgconfig:/opt/homebrew/opt/libxdmcp/lib/pkgconfig:/opt/homebrew/opt/libxcb/lib/pkgconfig:/opt/homebrew/opt/libx11/lib/pkgconfig:/opt/homebrew/opt/libxext/lib/pkgconfig:/opt/homebrew/opt/libxrender/lib/pkgconfig:/opt/homebrew/opt/lzo/lib/pkgconfig:/opt/homebrew/opt/pixman/lib/pkgconfig:/opt/homebrew/opt/cairo/lib/pkgconfig:/opt/homebrew/opt/graphite2/lib/pkgconfig:/opt/homebrew/opt/icu4c/lib/pkgconfig:/opt/homebrew/opt/harfbuzz/lib/pkgconfig:/opt/homebrew/opt/jasper/lib/pkgconfig:/opt/homebrew/opt/brotli/lib/pkgconfig:/opt/homebrew/opt/highway/lib/pkgconfig:/opt/homebrew/opt/imath/lib/pkgconfig:/opt/homebrew/opt/little-cms2/lib/pkgconfig:/opt/homebrew/opt/openexr/lib/pkgconfig:/opt/homebrew/opt/webp/lib/pkgconfig:/opt/homebrew/opt/jpeg-xl/lib/pkgconfig:/opt/homebrew/opt/graphicsmagick/lib/pkgconfig:/opt/homebrew/opt/libexif/lib/pkgconfig:/opt/homebrew/opt/libvmaf/lib/pkgconfig:/opt/homebrew/opt/aom/lib/pkgconfig:/opt/homebrew/opt/libde265/lib/pkgconfig:/opt/homebrew/opt/x265/lib/pkgconfig:/opt/homebrew/opt/libheif/lib/pkgconfig:/opt/homebrew/opt/libimagequant/lib/pkgconfig:/opt/homebrew/opt/fribidi/lib/pkgconfig:/opt/homebrew/opt/pango/lib/pkgconfig:/opt/homebrew/opt/librsvg/lib/pkgconfig:/opt/homebrew/opt/readline/lib/pkgconfig:/opt/homebrew/opt/libxml2/lib/pkgconfig:/opt/homebrew/opt/xorgproto/share/pkgconfig:/opt/homebrew/opt/shared-mime-info/share/pkgconfig PKG_CONFIG_LIBDIR: /usr/lib/pkgconfig:/opt/homebrew/Library/Homebrew/os/mac/pkgconfig/14 HOMEBREW_GIT: git HOMEBREW_SDKROOT: /Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk ACLOCAL_PATH: /opt/homebrew/opt/libxml2/share/aclocal:/opt/homebrew/share/aclocal PATH: /opt/homebrew/Library/Homebrew/shims/mac/super:/opt/homebrew/opt/pkg-config/bin:/opt/homebrew/opt/meson/bin:/opt/homebrew/opt/ninja/bin:/opt/homebrew/opt/gobject-introspection/bin:/opt/homebrew/opt/lz4/bin:/opt/homebrew/opt/xz/bin:/opt/homebrew/opt/zstd/bin:/opt/homebrew/opt/gcc/bin:/opt/homebrew/opt/hwloc/bin:/opt/homebrew/opt/openssl@3/bin:/opt/homebrew/opt/libevent/bin:/opt/homebrew/opt/pmix/bin:/opt/homebrew/opt/open-mpi/bin:/opt/homebrew/opt/fftw/bin:/opt/homebrew/opt/libpng/bin:/opt/homebrew/opt/freetype/bin:/opt/homebrew/opt/pcre2/bin:/opt/homebrew/opt/gettext/bin:/opt/homebrew/opt/glib/bin:/opt/homebrew/opt/jpeg-turbo/bin:/opt/homebrew/opt/libtiff/bin:/opt/homebrew/opt/gdk-pixbuf/bin:/opt/homebrew/opt/fontconfig/bin:/opt/homebrew/opt/cairo/bin:/opt/homebrew/opt/graphite2/bin:/opt/homebrew/opt/icu4c/bin:/opt/homebrew/opt/harfbuzz/bin:/opt/homebrew/opt/hdf5/bin:/opt/homebrew/opt/jasper/bin:/opt/homebrew/opt/brotli/bin:/opt/homebrew/opt/giflib/bin:/opt/homebrew/opt/little-cms2/bin:/opt/homebrew/opt/openexr/bin:/opt/homebrew/opt/webp/bin:/opt/homebrew/opt/jpeg-xl/bin:/opt/homebrew/opt/m4/bin:/opt/homebrew/opt/libtool/bin:/opt/homebrew/opt/graphicsmagick/bin:/opt/homebrew/opt/libvmaf/bin:/opt/homebrew/opt/aom/bin:/opt/homebrew/opt/libde265/bin:/opt/homebrew/opt/shared-mime-info/bin:/opt/homebrew/opt/x265/bin:/opt/homebrew/opt/libheif/bin:/opt/homebrew/opt/fribidi/bin:/opt/homebrew/opt/pango/bin:/opt/homebrew/opt/librsvg/bin:/opt/homebrew/opt/libxml2/bin:/opt/homebrew/opt/mozjpeg/bin:/usr/bin:/bin:/usr/sbin:/sbin ```
MariuszMichalak commented 8 months ago

Faced with the same issue as mentioned by @varoot while building locally. Should we create separate issue for that?

hubb commented 7 months ago

@varoot / @MariuszMichalak after experiencing the same issue, I was able to fix it by disabling jpeg-xl support in vips:

dloebl commented 7 months ago

Compatibility with jpeg-xl v0.9 has been fixed in libvips v8.15.1: https://github.com/libvips/libvips/releases/tag/v8.15.1 - fix build with upcoming libjxl 0.9 [kleisauke]

Let's update to v8.15.1: #840

dloebl commented 7 months ago

@michaelherold

I wonder if it's worth maintaining a shopify-vips now or if we should update the package definition in dev to use upstream. What do you think?

We used to test release candidate (rc) versions and specific sets of configurations with shopify-vips, but it's no longer a priority. +1 on switching back to the Homebrew upstream version. I'll have a look.