From f1e9e510ed948e0fa3f628ffd309172bfdd68298 Mon Sep 17 00:00:00 2001 From: Brandon Conway Date: Sun, 19 Jun 2022 11:21:44 -0700 Subject: [PATCH 1/2] Save build configuration to file during build --- build.sh | 9 ++++- build/configurations/heroku-18.config.log | 41 +++++++++++++++++++++++ build/configurations/heroku-20.config.log | 41 +++++++++++++++++++++++ build/configurations/heroku-22.config.log | 41 +++++++++++++++++++++++ container/Dockerfile | 10 +++++- 5 files changed, 140 insertions(+), 2 deletions(-) create mode 100644 build/configurations/heroku-18.config.log create mode 100644 build/configurations/heroku-20.config.log create mode 100644 build/configurations/heroku-22.config.log diff --git a/build.sh b/build.sh index a559cc6..6a6ef9f 100755 --- a/build.sh +++ b/build.sh @@ -3,6 +3,13 @@ # set -x set -e +# Remove existing builds so that unsupported stacks are automatically removed +rm -rf ./build/*.tar.gz + +# Remove configuration logs so that unsupported stacks are automatically removed +mkdir -p ./build/configurations +rm -rf ./build/configurations/*.log + STACK_VERSIONS=(18 20 22) for stack_version in "${STACK_VERSIONS[@]}"; do @@ -16,5 +23,5 @@ for stack_version in "${STACK_VERSIONS[@]}"; do mkdir -p build - docker run --rm -t -v $PWD/build:/build $image_name sh -c 'cp -f /usr/local/vips/build/*.tar.gz /build' + docker run --rm -t -v $PWD/build:/build $image_name sh -c 'cp -f /usr/local/vips/build/*.tar.gz /build && cp -f /usr/local/vips/build/*.config.log /build/configurations' done diff --git a/build/configurations/heroku-18.config.log b/build/configurations/heroku-18.config.log new file mode 100644 index 0000000..1df5afc --- /dev/null +++ b/build/configurations/heroku-18.config.log @@ -0,0 +1,41 @@ +$ vips --vips-version +libvips 8.12.2-Tue Jan 25 09:34:32 UTC 2022 + +$ vips --vips-config +enable debug: no +enable deprecated library components: yes +enable modules: no +use fftw3 for FFT: yes +accelerate loops with orc: yes +ICC profile support with lcms: yes (lcms2) +zlib: yes +text rendering with pangocairo: no +font file support with fontconfig: +RAD load/save: yes +Analyze7 load/save: yes +PPM load/save: yes +GIF load: yes +GIF save with cgif: no +EXIF metadata support with libexif: yes +JPEG load/save with libjpeg: yes (pkg-config) +JXL load/save with libjxl: no (dynamic module: no) +JPEG2000 load/save with libopenjp2: no +PNG load with libspng: no +PNG load/save with libpng: yes (pkg-config libpng >= 1.2.9) +quantisation to 8 bit: no +TIFF load/save with libtiff: yes (pkg-config libtiff-4) +image pyramid save: yes +HEIC/AVIF load/save with libheif: yes (dynamic module: no) +WebP load/save with libwebp: yes +PDF load with PDFium: no +PDF load with poppler-glib: yes (dynamic module: no) +SVG load with librsvg-2.0: yes +EXR load with OpenEXR: yes +OpenSlide load: no (dynamic module: no) +Matlab load with matio: no +NIfTI load/save with niftiio: no +FITS load/save with cfitsio: no +Magick package: MagickCore (dynamic module: no) +Magick API version: magick6 +load with libMagickCore: yes +save with libMagickCore: yes diff --git a/build/configurations/heroku-20.config.log b/build/configurations/heroku-20.config.log new file mode 100644 index 0000000..1df5afc --- /dev/null +++ b/build/configurations/heroku-20.config.log @@ -0,0 +1,41 @@ +$ vips --vips-version +libvips 8.12.2-Tue Jan 25 09:34:32 UTC 2022 + +$ vips --vips-config +enable debug: no +enable deprecated library components: yes +enable modules: no +use fftw3 for FFT: yes +accelerate loops with orc: yes +ICC profile support with lcms: yes (lcms2) +zlib: yes +text rendering with pangocairo: no +font file support with fontconfig: +RAD load/save: yes +Analyze7 load/save: yes +PPM load/save: yes +GIF load: yes +GIF save with cgif: no +EXIF metadata support with libexif: yes +JPEG load/save with libjpeg: yes (pkg-config) +JXL load/save with libjxl: no (dynamic module: no) +JPEG2000 load/save with libopenjp2: no +PNG load with libspng: no +PNG load/save with libpng: yes (pkg-config libpng >= 1.2.9) +quantisation to 8 bit: no +TIFF load/save with libtiff: yes (pkg-config libtiff-4) +image pyramid save: yes +HEIC/AVIF load/save with libheif: yes (dynamic module: no) +WebP load/save with libwebp: yes +PDF load with PDFium: no +PDF load with poppler-glib: yes (dynamic module: no) +SVG load with librsvg-2.0: yes +EXR load with OpenEXR: yes +OpenSlide load: no (dynamic module: no) +Matlab load with matio: no +NIfTI load/save with niftiio: no +FITS load/save with cfitsio: no +Magick package: MagickCore (dynamic module: no) +Magick API version: magick6 +load with libMagickCore: yes +save with libMagickCore: yes diff --git a/build/configurations/heroku-22.config.log b/build/configurations/heroku-22.config.log new file mode 100644 index 0000000..5804b7b --- /dev/null +++ b/build/configurations/heroku-22.config.log @@ -0,0 +1,41 @@ +$ vips --vips-version +libvips 8.12.2-Tue Jan 25 09:34:32 UTC 2022 + +$ vips --vips-config +enable debug: no +enable deprecated library components: yes +enable modules: no +use fftw3 for FFT: yes +accelerate loops with orc: yes +ICC profile support with lcms: yes (lcms2) +zlib: yes +text rendering with pangocairo: no +font file support with fontconfig: +RAD load/save: yes +Analyze7 load/save: yes +PPM load/save: yes +GIF load: yes +GIF save with cgif: no +EXIF metadata support with libexif: yes +JPEG load/save with libjpeg: yes (pkg-config) +JXL load/save with libjxl: no (dynamic module: no) +JPEG2000 load/save with libopenjp2: yes +PNG load with libspng: no +PNG load/save with libpng: yes (pkg-config libpng >= 1.2.9) +quantisation to 8 bit: no +TIFF load/save with libtiff: yes (pkg-config libtiff-4) +image pyramid save: yes +HEIC/AVIF load/save with libheif: yes (dynamic module: no) +WebP load/save with libwebp: yes +PDF load with PDFium: no +PDF load with poppler-glib: yes (dynamic module: no) +SVG load with librsvg-2.0: yes +EXR load with OpenEXR: yes +OpenSlide load: no (dynamic module: no) +Matlab load with matio: no +NIfTI load/save with niftiio: no +FITS load/save with cfitsio: no +Magick package: MagickCore (dynamic module: no) +Magick API version: magick6 +load with libMagickCore: yes +save with libMagickCore: yes diff --git a/container/Dockerfile b/container/Dockerfile index 9665ec5..cdf48a2 100644 --- a/container/Dockerfile +++ b/container/Dockerfile @@ -120,9 +120,17 @@ RUN cd $VIPS_PREFIX \ && rm -rf share/man \ && rm -rf share/thumbnailers -# I don't know why, but I have to bring this in again. Maybe "FROM" resets it? ARG STACK_VERSION RUN cd $VIPS_PREFIX \ && rm -rf build \ && mkdir build \ && tar czf "build/heroku-${STACK_VERSION}.tar.gz" bin include lib + +# Store configuration for easy viewing in the repo +ARG STACK_VERSION +RUN cd $VIPS_PREFIX \ + && echo "$ vips --vips-version" > "build/heroku-${STACK_VERSION}.config.log" \ + && ./bin/vips --vips-version >> "build/heroku-${STACK_VERSION}.config.log" \ + && echo "" >> "build/heroku-${STACK_VERSION}.config.log" \ + && echo "$ vips --vips-config" >> "build/heroku-${STACK_VERSION}.config.log" \ + && ./bin/vips --vips-config >> "build/heroku-${STACK_VERSION}.config.log" From d9ef3355e797d1673fa1bc788ce2a7bad002da3f Mon Sep 17 00:00:00 2001 From: Brandon Conway Date: Sun, 19 Jun 2022 11:32:56 -0700 Subject: [PATCH 2/2] Link build/configurations in the readme --- README.md | 137 +----------------------------------------------------- 1 file changed, 2 insertions(+), 135 deletions(-) diff --git a/README.md b/README.md index caf9082..d1b358a 100644 --- a/README.md +++ b/README.md @@ -80,140 +80,7 @@ VIPS_VERSION=x.y.z ./build.sh After building a tar file, it will be copied to the `build` directory. Then you should commit this changes to git. -## Build configuration (heroku-18) +## Build configurations -``` -~ $ vips --vips-version -libvips 8.12.2-Tue Jan 25 09:34:32 UTC 2022 - -~ $ vips --vips-config -enable debug: no -enable deprecated library components: yes -enable modules: no -use fftw3 for FFT: yes -accelerate loops with orc: yes -ICC profile support with lcms: yes (lcms2) -zlib: yes -text rendering with pangocairo: no -font file support with fontconfig: -RAD load/save: yes -Analyze7 load/save: yes -PPM load/save: yes -GIF load: yes -GIF save with cgif: no -EXIF metadata support with libexif: yes -JPEG load/save with libjpeg: yes (pkg-config) -JXL load/save with libjxl: no (dynamic module: no) -JPEG2000 load/save with libopenjp2: no -PNG load with libspng: no -PNG load/save with libpng: yes (pkg-config libpng >= 1.2.9) -quantisation to 8 bit: no -TIFF load/save with libtiff: yes (pkg-config libtiff-4) -image pyramid save: yes -HEIC/AVIF load/save with libheif: yes (dynamic module: no) -WebP load/save with libwebp: yes -PDF load with PDFium: no -PDF load with poppler-glib: yes (dynamic module: no) -SVG load with librsvg-2.0: yes -EXR load with OpenEXR: yes -OpenSlide load: no (dynamic module: no) -Matlab load with matio: no -NIfTI load/save with niftiio: no -FITS load/save with cfitsio: no -Magick package: MagickCore (dynamic module: no) -Magick API version: magick6 -load with libMagickCore: yes -save with libMagickCore: yes -``` - -## Build configuration (heroku-20) +If you would like to see the output of `vips --vips-version` or `vips --vips-config`, both can be found for each stack in the [build/configurations](build/configurations) directory. These configuration logs are generated automatically during the build process, so they should always be up-to-date. -``` -~ $ vips --vips-version -libvips 8.12.2-Tue Jan 25 09:34:32 UTC 2022 - -~ $ vips --vips-config -enable debug: no -enable deprecated library components: yes -enable modules: no -use fftw3 for FFT: yes -accelerate loops with orc: yes -ICC profile support with lcms: yes (lcms2) -zlib: yes -text rendering with pangocairo: no -font file support with fontconfig: -RAD load/save: yes -Analyze7 load/save: yes -PPM load/save: yes -GIF load: yes -GIF save with cgif: no -EXIF metadata support with libexif: yes -JPEG load/save with libjpeg: yes (pkg-config) -JXL load/save with libjxl: no (dynamic module: no) -JPEG2000 load/save with libopenjp2: no -PNG load with libspng: no -PNG load/save with libpng: yes (pkg-config libpng >= 1.2.9) -quantisation to 8 bit: no -TIFF load/save with libtiff: yes (pkg-config libtiff-4) -image pyramid save: yes -HEIC/AVIF load/save with libheif: yes (dynamic module: no) -WebP load/save with libwebp: yes -PDF load with PDFium: no -PDF load with poppler-glib: yes (dynamic module: no) -SVG load with librsvg-2.0: yes -EXR load with OpenEXR: yes -OpenSlide load: no (dynamic module: no) -Matlab load with matio: no -NIfTI load/save with niftiio: no -FITS load/save with cfitsio: no -Magick package: MagickCore (dynamic module: no) -Magick API version: magick6 -load with libMagickCore: yes -save with libMagickCore: yes -``` - -## Build configuration (heroku-22) - -``` -~ $ vips --vips-version -libvips 8.12.2-Tue Jan 25 09:34:32 UTC 2022 - -~ $ vips --vips-config -enable debug: no -enable deprecated library components: yes -enable modules: no -use fftw3 for FFT: yes -accelerate loops with orc: yes -ICC profile support with lcms: yes (lcms2) -zlib: yes -text rendering with pangocairo: no -font file support with fontconfig: -RAD load/save: yes -Analyze7 load/save: yes -PPM load/save: yes -GIF load: yes -GIF save with cgif: no -EXIF metadata support with libexif: yes -JPEG load/save with libjpeg: yes (pkg-config) -JXL load/save with libjxl: no (dynamic module: no) -JPEG2000 load/save with libopenjp2: yes -PNG load with libspng: no -PNG load/save with libpng: yes (pkg-config libpng >= 1.2.9) -quantisation to 8 bit: no -TIFF load/save with libtiff: yes (pkg-config libtiff-4) -image pyramid save: yes -HEIC/AVIF load/save with libheif: yes (dynamic module: no) -WebP load/save with libwebp: yes -PDF load with PDFium: no -PDF load with poppler-glib: yes (dynamic module: no) -SVG load with librsvg-2.0: yes -EXR load with OpenEXR: yes -OpenSlide load: no (dynamic module: no) -Matlab load with matio: no -NIfTI load/save with niftiio: no -FITS load/save with cfitsio: no -Magick package: MagickCore (dynamic module: no) -Magick API version: magick6 -load with libMagickCore: yes -save with libMagickCore: yes -```