|
@@ -10,6 +10,7 @@ case ${PLATFORM} in
|
|
|
PACKAGE=/packaging
|
|
|
ROOT=/root
|
|
|
VIPS_CPP_DEP=libvips-cpp.so.42
|
|
|
+ SED_I="sed -i"
|
|
|
;;
|
|
|
darwin*)
|
|
|
DARWIN=true
|
|
@@ -18,11 +19,12 @@ case ${PLATFORM} in
|
|
|
PACKAGE=$PWD
|
|
|
ROOT=$PWD/darwin-x64
|
|
|
VIPS_CPP_DEP=libvips-cpp.42.dylib
|
|
|
+ SED_I="sed -i "
|
|
|
;;
|
|
|
esac
|
|
|
|
|
|
-mkdir ${DEPS}
|
|
|
-mkdir ${TARGET}
|
|
|
+rm -rf ${DEPS} && mkdir ${DEPS}
|
|
|
+mkdir -p ${TARGET}
|
|
|
|
|
|
# Common build paths and flags
|
|
|
export PKG_CONFIG_LIBDIR="${TARGET}/lib/pkgconfig"
|
|
@@ -69,32 +71,32 @@ CURL="curl --silent --location --retry 3 --retry-max-time 30"
|
|
|
# Dependency version numbers
|
|
|
VERSION_ZLIB=1.2.11
|
|
|
VERSION_FFI=3.3
|
|
|
-VERSION_GLIB=2.67.0
|
|
|
-VERSION_XML2=2.9.10
|
|
|
+VERSION_GLIB=2.68.2
|
|
|
+VERSION_XML2=2.9.12
|
|
|
VERSION_GSF=1.14.47
|
|
|
VERSION_EXIF=0.6.22
|
|
|
-VERSION_LCMS2=2.11
|
|
|
-VERSION_JPEG=2.0.90
|
|
|
+VERSION_LCMS2=2.12
|
|
|
+VERSION_JPEG=2.1.0
|
|
|
VERSION_PNG16=1.6.37
|
|
|
-VERSION_SPNG=0.6.1
|
|
|
-VERSION_WEBP=1.1.0
|
|
|
-VERSION_TIFF=4.1.0
|
|
|
+VERSION_SPNG=0.6.3
|
|
|
+VERSION_WEBP=1.2.0
|
|
|
+VERSION_TIFF=4.3.0
|
|
|
VERSION_ORC=0.4.32
|
|
|
VERSION_GETTEXT=0.21
|
|
|
-VERSION_GDKPIXBUF=2.42.0
|
|
|
+VERSION_GDKPIXBUF=2.42.6
|
|
|
VERSION_FREETYPE=2.10.4
|
|
|
-VERSION_EXPAT=2.2.10
|
|
|
-VERSION_FONTCONFIG=2.13.92
|
|
|
-VERSION_HARFBUZZ=2.7.2
|
|
|
+VERSION_EXPAT=2.3.0
|
|
|
+VERSION_FONTCONFIG=2.13.93
|
|
|
+VERSION_HARFBUZZ=2.8.1
|
|
|
VERSION_PIXMAN=0.40.0
|
|
|
VERSION_CAIRO=1.16.0
|
|
|
VERSION_FRIBIDI=1.0.10
|
|
|
-VERSION_PANGO=1.48.0
|
|
|
-VERSION_SVG=2.50.2
|
|
|
+VERSION_PANGO=1.48.4
|
|
|
+VERSION_SVG=2.51.1
|
|
|
VERSION_GIF=5.1.4
|
|
|
VERSION_AOM=2.0.0
|
|
|
-VERSION_HEIF=1.9.1
|
|
|
-VERSION_MOZJPEG=4.0.0
|
|
|
+VERSION_HEIF=1.12.0
|
|
|
+VERSION_MOZJPEG=4.0.2
|
|
|
|
|
|
# Remove patch version component
|
|
|
without_patch() {
|
|
@@ -107,7 +109,8 @@ version_latest() {
|
|
|
VERSION_LATEST=$($CURL https://release-monitoring.org/api/project/$3 | jq -r '.versions[]' | grep -E -m1 '^[0-9]+(.[0-9]+)*$')
|
|
|
if [ "$VERSION_LATEST" != "$2" ]; then
|
|
|
ALL_AT_VERSION_LATEST=false
|
|
|
- echo "$1 version $2 has been superseded by $VERSION_LATEST"
|
|
|
+ $SED_I'' "s/\\(VERSION_${1^^}=\\)$2/\\1$VERSION_LATEST/" "${0%/*}/build/lin.sh"
|
|
|
+ echo "$1 version $2 has been replaced by $VERSION_LATEST"
|
|
|
fi
|
|
|
}
|
|
|
version_latest "zlib" "$VERSION_ZLIB" "5303"
|
|
@@ -137,7 +140,7 @@ version_latest "svg" "$VERSION_SVG" "5420"
|
|
|
#version_latest "gif" "$VERSION_GIF" "1158" # v5.1.5+ provides a Makefile only so will require custom cross-compilation setup
|
|
|
#version_latest "aom" "$VERSION_AOM" "17628" # latest version in release monitoring does not exist
|
|
|
version_latest "heif" "$VERSION_HEIF" "64439"
|
|
|
-if [ "$ALL_AT_VERSION_LATEST" = "false" ]; then exit 1; fi
|
|
|
+if [ "$ALL_AT_VERSION_LATEST" = "false" ]; then echo "Please rerun script"; exit 1; fi
|
|
|
|
|
|
# Download and build dependencies from source
|
|
|
|
|
@@ -167,7 +170,7 @@ mkdir ${DEPS}/glib
|
|
|
$CURL https://download.gnome.org/sources/glib/$(without_patch $VERSION_GLIB)/glib-${VERSION_GLIB}.tar.xz | tar xJC ${DEPS}/glib --strip-components=1
|
|
|
cd ${DEPS}/glib
|
|
|
# Disable tests
|
|
|
-sed -i'.bak' "/build_tests =/ s/= .*/= false/" meson.build
|
|
|
+$SED_I'.bak' "/build_tests =/ s/= .*/= false/" meson.build
|
|
|
if [ "${PLATFORM%-*}" == "linuxmusl" ]; then
|
|
|
#$CURL https://git.alpinelinux.org/aports/plain/main/glib/musl-libintl.patch | patch -p1 # not compatible with glib 2.65.0
|
|
|
$CURL https://gist.github.com/kleisauke/f4bda6fc3030cf7b8a4fdb88e2ce8e13/raw/246ac97dfba72ad7607c69eed1810b2354cd2e86/musl-libintl.patch | patch -p1
|
|
@@ -222,7 +225,7 @@ $CURL https://github.com/strukturag/libheif/releases/download/v${VERSION_HEIF}/l
|
|
|
cd ${DEPS}/heif
|
|
|
./configure --host=${CHOST} --prefix=${TARGET} --enable-static --disable-shared --disable-dependency-tracking \
|
|
|
--disable-gdk-pixbuf --disable-go --disable-examples --disable-libde265 --disable-x265
|
|
|
-sed -i'.bak' -e '/^Requires:/a\'$'\n''Requires.private: aom' libheif.pc # https://github.com/strukturag/libheif/pull/354
|
|
|
+$SED_I'.bak' -e '/^Requires:/a\'$'\n''Requires.private: aom' libheif.pc # https://github.com/strukturag/libheif/pull/354
|
|
|
make install-strip
|
|
|
|
|
|
mkdir ${DEPS}/png16
|
|
@@ -282,20 +285,20 @@ mkdir ${DEPS}/gdkpixbuf
|
|
|
$CURL https://download.gnome.org/sources/gdk-pixbuf/$(without_patch $VERSION_GDKPIXBUF)/gdk-pixbuf-${VERSION_GDKPIXBUF}.tar.xz | tar xJC ${DEPS}/gdkpixbuf --strip-components=1
|
|
|
cd ${DEPS}/gdkpixbuf
|
|
|
# Disable tests and thumbnailer
|
|
|
-sed -i'.bak' "/subdir('tests')/{N;d;}" meson.build
|
|
|
+$SED_I'.bak' "/subdir('tests')/{N;d;}" meson.build
|
|
|
# Disable the built-in loaders for BMP, GIF, ICO, PNM, XPM, XBM, TGA, ICNS and QTIF
|
|
|
-sed -i'.bak' "/\[ 'bmp'/{N;N;N;d;}" gdk-pixbuf/meson.build
|
|
|
-sed -i'.bak' "/\[ 'pnm'/d" gdk-pixbuf/meson.build
|
|
|
-sed -i'.bak' "/\[ 'xpm'/{N;N;N;N;d;}" gdk-pixbuf/meson.build
|
|
|
+$SED_I'.bak' "/\[ 'bmp'/{N;N;N;d;}" gdk-pixbuf/meson.build
|
|
|
+$SED_I'.bak' "/\[ 'pnm'/d" gdk-pixbuf/meson.build
|
|
|
+$SED_I'.bak' "/\[ 'xpm'/{N;N;N;N;d;}" gdk-pixbuf/meson.build
|
|
|
# Ensure meson can find libjpeg when cross-compiling
|
|
|
-sed -i'.bak' "s/has_header('jpeglib.h')/has_header('jpeglib.h', args: '-I\/target\/include')/g" meson.build
|
|
|
-sed -i'.bak' "s/cc.find_library('jpeg'/dependency('libjpeg'/g" meson.build
|
|
|
+$SED_I'.bak' "s/has_header('jpeglib.h')/has_header('jpeglib.h', args: '-I\/target\/include')/g" meson.build
|
|
|
+$SED_I'.bak' "s/cc.find_library('jpeg'/dependency('libjpeg'/g" meson.build
|
|
|
LDFLAGS=${LDFLAGS/\$/} meson setup _build --default-library=static --buildtype=release --strip --prefix=${TARGET} ${MESON} \
|
|
|
-Dtiff=false -Dintrospection=disabled -Dinstalled_tests=false -Dgio_sniffing=false -Dman=false -Dbuiltin_loaders=png,jpeg
|
|
|
ninja -C _build
|
|
|
ninja -C _build install
|
|
|
# Include libjpeg and libpng as a dependency of gdk-pixbuf, see: https://gitlab.gnome.org/GNOME/gdk-pixbuf/merge_requests/50
|
|
|
-sed -i'.bak' "s/^\(Requires:.*\)/\1 libjpeg, libpng16/" ${TARGET}/lib/pkgconfig/gdk-pixbuf-2.0.pc
|
|
|
+$SED_I'.bak' "s/^\(Requires:.*\)/\1 libjpeg, libpng16/" ${TARGET}/lib/pkgconfig/gdk-pixbuf-2.0.pc
|
|
|
|
|
|
mkdir ${DEPS}/freetype
|
|
|
$CURL https://download.savannah.gnu.org/releases/freetype/freetype-${VERSION_FREETYPE}.tar.xz | tar xJC ${DEPS}/freetype --strip-components=1
|
|
@@ -323,7 +326,7 @@ mkdir ${DEPS}/harfbuzz
|
|
|
$CURL https://github.com/harfbuzz/harfbuzz/archive/${VERSION_HARFBUZZ}.tar.gz | tar xzC ${DEPS}/harfbuzz --strip-components=1
|
|
|
cd ${DEPS}/harfbuzz
|
|
|
# Disable utils
|
|
|
-sed -i'.bak' "/subdir('util')/d" meson.build
|
|
|
+$SED_I'.bak' "/subdir('util')/d" meson.build
|
|
|
LDFLAGS=${LDFLAGS/\$/} meson setup _build --default-library=static --buildtype=release --strip --prefix=${TARGET} ${MESON} \
|
|
|
-Dicu=disabled -Dtests=disabled -Dintrospection=disabled -Ddocs=disabled -Dbenchmark=disabled ${DARWIN:+-Dcoretext=enabled}
|
|
|
ninja -C _build
|
|
@@ -333,7 +336,7 @@ mkdir ${DEPS}/pixman
|
|
|
$CURL https://cairographics.org/releases/pixman-${VERSION_PIXMAN}.tar.gz | tar xzC ${DEPS}/pixman --strip-components=1
|
|
|
cd ${DEPS}/pixman
|
|
|
# Disable tests and demos
|
|
|
-sed -i'.bak' "/subdir('test')/{N;d;}" meson.build
|
|
|
+$SED_I'.bak' "/subdir('test')/{N;d;}" meson.build
|
|
|
LDFLAGS=${LDFLAGS/\$/} meson setup _build --default-library=static --buildtype=release --strip --prefix=${TARGET} ${MESON} \
|
|
|
-Dlibpng=disabled -Diwmmxt=disabled -Dgtk=disabled -Dopenmp=disabled
|
|
|
ninja -C _build
|
|
@@ -342,7 +345,7 @@ ninja -C _build install
|
|
|
mkdir ${DEPS}/cairo
|
|
|
$CURL https://cairographics.org/releases/cairo-${VERSION_CAIRO}.tar.xz | tar xJC ${DEPS}/cairo --strip-components=1
|
|
|
cd ${DEPS}/cairo
|
|
|
-sed -i'.bak' "s/^\(Libs:.*\)/\1 @CAIRO_NONPKGCONFIG_LIBS@/" src/cairo.pc.in
|
|
|
+$SED_I'.bak' "s/^\(Libs:.*\)/\1 @CAIRO_NONPKGCONFIG_LIBS@/" src/cairo.pc.in
|
|
|
./configure --host=${CHOST} --prefix=${TARGET} --enable-static --disable-shared --disable-dependency-tracking \
|
|
|
--disable-xlib --disable-xcb --disable-win32 --disable-egl --disable-glx --disable-wgl --disable-ps \
|
|
|
--disable-trace --disable-interpreter ${LINUX:+--disable-quartz} ${DARWIN:+--enable-quartz-image} \
|
|
@@ -353,7 +356,7 @@ mkdir ${DEPS}/fribidi
|
|
|
$CURL https://github.com/fribidi/fribidi/releases/download/v${VERSION_FRIBIDI}/fribidi-${VERSION_FRIBIDI}.tar.xz | tar xJC ${DEPS}/fribidi --strip-components=1
|
|
|
cd ${DEPS}/fribidi
|
|
|
# Disable tests
|
|
|
-sed -i'.bak' "/subdir('test')/d" meson.build
|
|
|
+$SED_I'.bak' "/subdir('test')/d" meson.build
|
|
|
LDFLAGS=${LDFLAGS/\$/} meson setup _build --default-library=static --buildtype=release --strip --prefix=${TARGET} ${MESON} \
|
|
|
-Ddocs=false
|
|
|
ninja -C _build
|
|
@@ -363,7 +366,7 @@ mkdir ${DEPS}/pango
|
|
|
$CURL https://download.gnome.org/sources/pango/$(without_patch $VERSION_PANGO)/pango-${VERSION_PANGO}.tar.xz | tar xJC ${DEPS}/pango --strip-components=1
|
|
|
cd ${DEPS}/pango
|
|
|
# Disable utils, examples, tests and tools
|
|
|
-sed -i'.bak' "/subdir('utils')/{N;N;N;d;}" meson.build
|
|
|
+$SED_I'.bak' "/subdir('utils')/{N;N;N;d;}" meson.build
|
|
|
LDFLAGS=${LDFLAGS/\$/} meson setup _build --default-library=static --buildtype=release --strip --prefix=${TARGET} ${MESON} \
|
|
|
-Dgtk_doc=false -Dintrospection=disabled -Dfontconfig=enabled
|
|
|
ninja -C _build
|
|
@@ -372,11 +375,11 @@ ninja -C _build install
|
|
|
mkdir ${DEPS}/svg
|
|
|
$CURL https://download.gnome.org/sources/librsvg/$(without_patch $VERSION_SVG)/librsvg-${VERSION_SVG}.tar.xz | tar xJC ${DEPS}/svg --strip-components=1
|
|
|
cd ${DEPS}/svg
|
|
|
-sed -i'.bak' "s/^\(Requires:.*\)/\1 cairo-gobject pangocairo/" librsvg.pc.in
|
|
|
+$SED_I'.bak' "s/^\(Requires:.*\)/\1 cairo-gobject pangocairo/" librsvg.pc.in
|
|
|
# Do not include debugging symbols
|
|
|
-sed -i'.bak' "/debug =/ s/= .*/= false/" Cargo.toml
|
|
|
+$SED_I'.bak' "/debug =/ s/= .*/= false/" Cargo.toml
|
|
|
# LTO optimization does not work for staticlib+rlib compilation
|
|
|
-sed -i'.bak' "s/, \"rlib\"//" librsvg/Cargo.toml
|
|
|
+$SED_I'.bak' "s/, \"rlib\"//" librsvg/Cargo.toml
|
|
|
./configure --host=${CHOST} --prefix=${TARGET} --enable-static --disable-shared --disable-dependency-tracking \
|
|
|
--disable-introspection --disable-tools --disable-pixbuf-loader ${DARWIN:+--disable-Bsymbolic}
|
|
|
make install-strip
|
|
@@ -396,7 +399,7 @@ PKG_CONFIG="pkg-config --static" ./configure --host=${CHOST} --prefix=${TARGET}
|
|
|
--without-openslide --without-pdfium --without-poppler --without-ppm --without-radiance \
|
|
|
${LINUX:+LDFLAGS="$LDFLAGS -Wl,-Bsymbolic-functions"}
|
|
|
# https://docs.fedoraproject.org/en-US/packaging-guidelines/#_removing_rpath
|
|
|
-sed -i'.bak' 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool
|
|
|
+$SED_I'.bak' 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool
|
|
|
make install-strip
|
|
|
|
|
|
# Cleanup
|