diff --git a/.github/renovate.json b/.github/renovate.json index 6bd1c080e..f5af3d05a 100644 --- a/.github/renovate.json +++ b/.github/renovate.json @@ -14,7 +14,7 @@ { "customType": "regex", "managerFilePatterns": ["/^\\.github/dependencies\\.json$/"], - "matchStrings": ["\"brotli\":\\s*\"(?\\d+[^\"]*?)\""], + "matchStrings": ["\"brotli\":\\s*\"(?\\d+[^\"]*)\""], "depNameTemplate": "brotli", "packageNameTemplate": "google/brotli", "datasourceTemplate": "github-releases", @@ -23,111 +23,16 @@ { "customType": "regex", "managerFilePatterns": ["/^\\.github/dependencies\\.json$/"], - "matchStrings": ["\"fribidi\":\\s*\"(?\\d+[^\"]*?)\""], - "depNameTemplate": "fribidi", - "packageNameTemplate": "fribidi/fribidi", - "datasourceTemplate": "github-releases", - "extractVersionTemplate": "^v(?.+)$" - }, - { - "customType": "regex", - "managerFilePatterns": ["/^\\.github/dependencies\\.json$/"], - "matchStrings": ["\"harfbuzz\":\\s*\"(?\\d+[^\"]*?)\""], - "depNameTemplate": "harfbuzz", - "packageNameTemplate": "harfbuzz/harfbuzz", - "datasourceTemplate": "github-releases" - }, - { - "customType": "regex", - "managerFilePatterns": ["/^\\.github/dependencies\\.json$/"], - "matchStrings": ["\"jpegturbo\":\\s*\"(?\\d+[^\"]*?)\""], - "depNameTemplate": "jpegturbo", - "packageNameTemplate": "libjpeg-turbo/libjpeg-turbo", - "datasourceTemplate": "github-releases" - }, - { - "customType": "regex", - "managerFilePatterns": ["/^\\.github/dependencies\\.json$/"], - "matchStrings": ["\"lcms2\":\\s*\"(?\\d+[^\"]*?)\""], - "depNameTemplate": "lcms2", - "packageNameTemplate": "mm2/Little-CMS", - "datasourceTemplate": "github-releases", - "extractVersionTemplate": "^lcms(?.+)$" - }, - { - "customType": "regex", - "managerFilePatterns": ["/^\\.github/dependencies\\.json$/"], - "matchStrings": ["\"libavif\":\\s*\"(?\\d+[^\"]*?)\""], - "depNameTemplate": "libavif", - "packageNameTemplate": "AOMediaCodec/libavif", - "datasourceTemplate": "github-releases", - "extractVersionTemplate": "^v(?.+)$" - }, - { - "customType": "regex", - "managerFilePatterns": ["/^\\.github/dependencies\\.json$/"], - "matchStrings": ["\"libimagequant\":\\s*\"(?\\d+[^\"]*?)\""], - "depNameTemplate": "libimagequant", - "packageNameTemplate": "ImageOptim/libimagequant", - "datasourceTemplate": "github-tags" - }, - { - "customType": "regex", - "managerFilePatterns": ["/^\\.github/dependencies\\.json$/"], - "matchStrings": ["\"libwebp\":\\s*\"(?\\d+[^\"]*?)\""], - "depNameTemplate": "libwebp", - "packageNameTemplate": "webmproject/libwebp", - "datasourceTemplate": "github-tags", - "extractVersionTemplate": "^v(?.+)$" - }, - { - "customType": "regex", - "managerFilePatterns": ["/^\\.github/dependencies\\.json$/"], - "matchStrings": ["\"openjpeg\":\\s*\"(?\\d+[^\"]*?)\""], - "depNameTemplate": "openjpeg", - "packageNameTemplate": "uclouvain/openjpeg", - "datasourceTemplate": "github-releases", - "extractVersionTemplate": "^v(?.+)$" - }, - { - "customType": "regex", - "managerFilePatterns": ["/^\\.github/dependencies\\.json$/"], - "matchStrings": ["\"tiff\":\\s*\"(?\\d+[^\"]*?)\""], - "depNameTemplate": "tiff", - "packageNameTemplate": "libtiff/libtiff", + "matchStrings": ["\"bzip2\":\\s*\"(?\\d+[^\"]*)\""], + "depNameTemplate": "bzip2", + "packageNameTemplate": "bzip2/bzip2", "datasourceTemplate": "gitlab-tags", - "extractVersionTemplate": "^v(?.+)$" + "extractVersionTemplate": "^bzip2-(?.+)$" }, { "customType": "regex", "managerFilePatterns": ["/^\\.github/dependencies\\.json$/"], - "matchStrings": ["\"xz\":\\s*\"(?\\d+[^\"]*?)\""], - "depNameTemplate": "xz", - "packageNameTemplate": "tukaani-project/xz", - "datasourceTemplate": "github-releases", - "extractVersionTemplate": "^v(?.+)$" - }, - { - "customType": "regex", - "managerFilePatterns": ["/^\\.github/dependencies\\.json$/"], - "matchStrings": ["\"zlib-ng\":\\s*\"(?\\d+[^\"]*?)\""], - "depNameTemplate": "zlib-ng", - "packageNameTemplate": "zlib-ng/zlib-ng", - "datasourceTemplate": "github-releases" - }, - { - "customType": "regex", - "managerFilePatterns": ["/^\\.github/dependencies\\.json$/"], - "matchStrings": ["\"zstd\":\\s*\"(?\\d+[^\"]*?)\""], - "depNameTemplate": "zstd", - "packageNameTemplate": "facebook/zstd", - "datasourceTemplate": "github-releases", - "extractVersionTemplate": "^v(?.+)$" - }, - { - "customType": "regex", - "managerFilePatterns": ["/^\\.github/dependencies\\.json$/"], - "matchStrings": ["\"freetype\":\\s*\"(?\\d+[^\"]*?)\""], + "matchStrings": ["\"freetype\":\\s*\"(?\\d+[^\"]*)\""], "depNameTemplate": "freetype", "packageNameTemplate": "freetype/freetype", "datasourceTemplate": "gitlab-tags", @@ -138,7 +43,58 @@ { "customType": "regex", "managerFilePatterns": ["/^\\.github/dependencies\\.json$/"], - "matchStrings": ["\"libpng\":\\s*\"(?\\d+[^\"]*?)\""], + "matchStrings": ["\"fribidi\":\\s*\"(?\\d+[^\"]*)\""], + "depNameTemplate": "fribidi", + "packageNameTemplate": "fribidi/fribidi", + "datasourceTemplate": "github-releases", + "extractVersionTemplate": "^v(?.+)$" + }, + { + "customType": "regex", + "managerFilePatterns": ["/^\\.github/dependencies\\.json$/"], + "matchStrings": ["\"harfbuzz\":\\s*\"(?\\d+[^\"]*)\""], + "depNameTemplate": "harfbuzz", + "packageNameTemplate": "harfbuzz/harfbuzz", + "datasourceTemplate": "github-releases" + }, + { + "customType": "regex", + "managerFilePatterns": ["/^\\.github/dependencies\\.json$/"], + "matchStrings": ["\"jpegturbo\":\\s*\"(?\\d+[^\"]*)\""], + "depNameTemplate": "jpegturbo", + "packageNameTemplate": "libjpeg-turbo/libjpeg-turbo", + "datasourceTemplate": "github-releases" + }, + { + "customType": "regex", + "managerFilePatterns": ["/^\\.github/dependencies\\.json$/"], + "matchStrings": ["\"lcms2\":\\s*\"(?\\d+[^\"]*)\""], + "depNameTemplate": "lcms2", + "packageNameTemplate": "mm2/Little-CMS", + "datasourceTemplate": "github-releases", + "extractVersionTemplate": "^lcms(?.+)$" + }, + { + "customType": "regex", + "managerFilePatterns": ["/^\\.github/dependencies\\.json$/"], + "matchStrings": ["\"libavif\":\\s*\"(?\\d+[^\"]*)\""], + "depNameTemplate": "libavif", + "packageNameTemplate": "AOMediaCodec/libavif", + "datasourceTemplate": "github-releases", + "extractVersionTemplate": "^v(?.+)$" + }, + { + "customType": "regex", + "managerFilePatterns": ["/^\\.github/dependencies\\.json$/"], + "matchStrings": ["\"libimagequant\":\\s*\"(?\\d+[^\"]*)\""], + "depNameTemplate": "libimagequant", + "packageNameTemplate": "ImageOptim/libimagequant", + "datasourceTemplate": "github-tags" + }, + { + "customType": "regex", + "managerFilePatterns": ["/^\\.github/dependencies\\.json$/"], + "matchStrings": ["\"libpng\":\\s*\"(?\\d+[^\"]*)\""], "depNameTemplate": "libpng", "packageNameTemplate": "pnggroup/libpng", "datasourceTemplate": "github-tags", @@ -147,7 +103,16 @@ { "customType": "regex", "managerFilePatterns": ["/^\\.github/dependencies\\.json$/"], - "matchStrings": ["\"libxcb\":\\s*\"(?\\d+[^\"]*?)\""], + "matchStrings": ["\"libwebp\":\\s*\"(?\\d+[^\"]*)\""], + "depNameTemplate": "libwebp", + "packageNameTemplate": "webmproject/libwebp", + "datasourceTemplate": "github-tags", + "extractVersionTemplate": "^v(?.+)$" + }, + { + "customType": "regex", + "managerFilePatterns": ["/^\\.github/dependencies\\.json$/"], + "matchStrings": ["\"libxcb\":\\s*\"(?\\d+[^\"]*)\""], "depNameTemplate": "libxcb", "packageNameTemplate": "xorg/lib/libxcb", "datasourceTemplate": "gitlab-tags", @@ -157,11 +122,46 @@ { "customType": "regex", "managerFilePatterns": ["/^\\.github/dependencies\\.json$/"], - "matchStrings": ["\"bzip2\":\\s*\"(?\\d+[^\"]*?)\""], - "depNameTemplate": "bzip2", - "packageNameTemplate": "bzip2/bzip2", + "matchStrings": ["\"openjpeg\":\\s*\"(?\\d+[^\"]*)\""], + "depNameTemplate": "openjpeg", + "packageNameTemplate": "uclouvain/openjpeg", + "datasourceTemplate": "github-releases", + "extractVersionTemplate": "^v(?.+)$" + }, + { + "customType": "regex", + "managerFilePatterns": ["/^\\.github/dependencies\\.json$/"], + "matchStrings": ["\"tiff\":\\s*\"(?\\d+[^\"]*)\""], + "depNameTemplate": "tiff", + "packageNameTemplate": "libtiff/libtiff", "datasourceTemplate": "gitlab-tags", - "extractVersionTemplate": "^bzip2-(?.+)$" + "extractVersionTemplate": "^v(?.+)$" + }, + { + "customType": "regex", + "managerFilePatterns": ["/^\\.github/dependencies\\.json$/"], + "matchStrings": ["\"xz\":\\s*\"(?\\d+[^\"]*)\""], + "depNameTemplate": "xz", + "packageNameTemplate": "tukaani-project/xz", + "datasourceTemplate": "github-releases", + "extractVersionTemplate": "^v(?.+)$" + }, + { + "customType": "regex", + "managerFilePatterns": ["/^\\.github/dependencies\\.json$/"], + "matchStrings": ["\"zlib-ng\":\\s*\"(?\\d+[^\"]*)\""], + "depNameTemplate": "zlib-ng", + "packageNameTemplate": "zlib-ng/zlib-ng", + "datasourceTemplate": "github-releases" + }, + { + "customType": "regex", + "managerFilePatterns": ["/^\\.github/dependencies\\.json$/"], + "matchStrings": ["\"zstd\":\\s*\"(?\\d+[^\"]*)\""], + "depNameTemplate": "zstd", + "packageNameTemplate": "facebook/zstd", + "datasourceTemplate": "github-releases", + "extractVersionTemplate": "^v(?.+)$" } ], "packageRules": [ diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index 415f7eb29..b5edfc461 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -13,7 +13,7 @@ on: paths: - ".ci/requirements-cibw.txt" - ".github/dependencies.json" - - ".github/workflows/wheel*" + - ".github/workflows/wheels*" - "pyproject.toml" - "setup.py" - "wheels/*" @@ -25,7 +25,7 @@ on: paths: - ".ci/requirements-cibw.txt" - ".github/dependencies.json" - - ".github/workflows/wheel*" + - ".github/workflows/wheels*" - "pyproject.toml" - "setup.py" - "wheels/*" diff --git a/winbuild/build_prepare.py b/winbuild/build_prepare.py index f659479e6..f55c82112 100644 --- a/winbuild/build_prepare.py +++ b/winbuild/build_prepare.py @@ -114,35 +114,17 @@ ARCHITECTURES = { "ARM64": {"vcvars_arch": "x86_arm64", "msbuild_arch": "ARM64"}, } -_versions = json.loads( +V = json.loads( (Path(__file__).parents[1] / ".github" / "dependencies.json").read_text() ) - - -V = { - "BROTLI": _versions["brotli"], - "FREETYPE": _versions["freetype"], - "FRIBIDI": _versions["fribidi"], - "HARFBUZZ": _versions["harfbuzz"], - "JPEGTURBO": _versions["jpegturbo"], - "LCMS2": _versions["lcms2"], - "LIBAVIF": _versions["libavif"], - "LIBIMAGEQUANT": _versions["libimagequant"], - "LIBPNG": _versions["libpng"], - "LIBWEBP": _versions["libwebp"], - "OPENJPEG": _versions["openjpeg"], - "TIFF": _versions["tiff"], - "XZ": _versions["xz"], - "ZLIBNG": _versions["zlib-ng"], -} -V["LIBPNG_XY"] = "".join(V["LIBPNG"].split(".")[:2]) +V["libpng-xy"] = "".join(V["libpng"].split(".")[:2]) # dependencies, listed in order of compilation DEPS: dict[str, dict[str, Any]] = { "libjpeg": { - "url": f"https://github.com/libjpeg-turbo/libjpeg-turbo/releases/download/{V['JPEGTURBO']}/libjpeg-turbo-{V['JPEGTURBO']}.tar.gz", - "filename": f"libjpeg-turbo-{V['JPEGTURBO']}.tar.gz", + "url": f"https://github.com/libjpeg-turbo/libjpeg-turbo/releases/download/{V['jpegturbo']}/libjpeg-turbo-{V['jpegturbo']}.tar.gz", + "filename": f"libjpeg-turbo-{V['jpegturbo']}.tar.gz", "license": ["README.ijg", "LICENSE.md"], "license_pattern": ( "(LEGAL ISSUES\n============\n\n.+?)\n\nREFERENCES\n==========" @@ -169,8 +151,8 @@ DEPS: dict[str, dict[str, Any]] = { "bins": ["djpeg.exe"], }, "zlib": { - "url": f"https://github.com/zlib-ng/zlib-ng/archive/refs/tags/{V['ZLIBNG']}.tar.gz", - "filename": f"zlib-ng-{V['ZLIBNG']}.tar.gz", + "url": f"https://github.com/zlib-ng/zlib-ng/archive/refs/tags/{V['zlib-ng']}.tar.gz", + "filename": f"zlib-ng-{V['zlib-ng']}.tar.gz", "license": "LICENSE.md", "patch": { r"CMakeLists.txt": { @@ -186,8 +168,8 @@ DEPS: dict[str, dict[str, Any]] = { "libs": [r"zlib.lib"], }, "xz": { - "url": f"https://github.com/tukaani-project/xz/releases/download/v{V['XZ']}/FILENAME", - "filename": f"xz-{V['XZ']}.tar.gz", + "url": f"https://github.com/tukaani-project/xz/releases/download/v{V['xz']}/FILENAME", + "filename": f"xz-{V['xz']}.tar.gz", "license": "COPYING", "build": [ *cmds_cmake("liblzma", "-DBUILD_SHARED_LIBS:BOOL=OFF"), @@ -199,7 +181,7 @@ DEPS: dict[str, dict[str, Any]] = { }, "libwebp": { "url": "http://downloads.webmproject.org/releases/webp/FILENAME", - "filename": f"libwebp-{V['LIBWEBP']}.tar.gz", + "filename": f"libwebp-{V['libwebp']}.tar.gz", "license": "COPYING", "patch": { r"src\enc\picture_csp_enc.c": { @@ -220,7 +202,7 @@ DEPS: dict[str, dict[str, Any]] = { }, "libtiff": { "url": "https://download.osgeo.org/libtiff/FILENAME", - "filename": f"tiff-{V['TIFF']}.tar.gz", + "filename": f"tiff-{V['tiff']}.tar.gz", "license": "LICENSE.md", "patch": { r"libtiff\tif_lzma.c": { @@ -244,22 +226,22 @@ DEPS: dict[str, dict[str, Any]] = { "libs": [r"libtiff\*.lib"], }, "libpng": { - "url": f"{SF_PROJECTS}/libpng/files/libpng{V['LIBPNG_XY']}/{V['LIBPNG']}/" + "url": f"{SF_PROJECTS}/libpng/files/libpng{V['libpng-xy']}/{V['libpng']}/" f"FILENAME/download", - "filename": f"libpng-{V['LIBPNG']}.tar.gz", + "filename": f"libpng-{V['libpng']}.tar.gz", "license": "LICENSE", "build": [ *cmds_cmake("png_static", "-DPNG_SHARED:BOOL=OFF", "-DPNG_TESTS:BOOL=OFF"), cmd_copy( - f"libpng{V['LIBPNG_XY']}_static.lib", f"libpng{V['LIBPNG_XY']}.lib" + f"libpng{V['libpng-xy']}_static.lib", f"libpng{V['libpng-xy']}.lib" ), ], "headers": [r"png*.h"], - "libs": [f"libpng{V['LIBPNG_XY']}.lib"], + "libs": [f"libpng{V['libpng-xy']}.lib"], }, "brotli": { - "url": f"https://github.com/google/brotli/archive/refs/tags/v{V['BROTLI']}.tar.gz", - "filename": f"brotli-{V['BROTLI']}.tar.gz", + "url": f"https://github.com/google/brotli/archive/refs/tags/v{V['brotli']}.tar.gz", + "filename": f"brotli-{V['brotli']}.tar.gz", "license": "LICENSE", "build": [ *cmds_cmake(("brotlicommon", "brotlidec"), "-DBUILD_SHARED_LIBS:BOOL=OFF"), @@ -269,7 +251,7 @@ DEPS: dict[str, dict[str, Any]] = { }, "freetype": { "url": "https://download.savannah.gnu.org/releases/freetype/FILENAME", - "filename": f"freetype-{V['FREETYPE']}.tar.gz", + "filename": f"freetype-{V['freetype']}.tar.gz", "license": ["LICENSE.TXT", r"docs\FTL.TXT", r"docs\GPLv2.TXT"], "patch": { r"builds\windows\vc2010\freetype.vcxproj": { @@ -282,7 +264,7 @@ DEPS: dict[str, dict[str, Any]] = { "": "FT_CONFIG_OPTION_SYSTEM_ZLIB;FT_CONFIG_OPTION_USE_PNG;FT_CONFIG_OPTION_USE_HARFBUZZ;FT_CONFIG_OPTION_USE_BROTLI", # noqa: E501 "": r"{dir_harfbuzz}\src;{inc_dir}", # noqa: E501 "": "{lib_dir}", # noqa: E501 - "": f"zlib.lib;libpng{V['LIBPNG_XY']}.lib;brotlicommon.lib;brotlidec.lib", # noqa: E501 + "": f"zlib.lib;libpng{V['libpng-xy']}.lib;brotlicommon.lib;brotlidec.lib", # noqa: E501 }, r"src/autofit/afshaper.c": { # link against harfbuzz.lib @@ -302,8 +284,8 @@ DEPS: dict[str, dict[str, Any]] = { "libs": [r"objs\{msbuild_arch}\Release Static\freetype.lib"], }, "lcms2": { - "url": f"{SF_PROJECTS}/lcms/files/lcms/{V['LCMS2']}/FILENAME/download", - "filename": f"lcms2-{V['LCMS2']}.tar.gz", + "url": f"{SF_PROJECTS}/lcms/files/lcms/{V['lcms2']}/FILENAME/download", + "filename": f"lcms2-{V['lcms2']}.tar.gz", "license": "LICENSE", "patch": { r"Projects\VC2022\lcms2_static\lcms2_static.vcxproj": { @@ -327,21 +309,21 @@ DEPS: dict[str, dict[str, Any]] = { "libs": [r"Lib\MS\*.lib"], }, "openjpeg": { - "url": f"https://github.com/uclouvain/openjpeg/archive/v{V['OPENJPEG']}.tar.gz", - "filename": f"openjpeg-{V['OPENJPEG']}.tar.gz", + "url": f"https://github.com/uclouvain/openjpeg/archive/v{V['openjpeg']}.tar.gz", + "filename": f"openjpeg-{V['openjpeg']}.tar.gz", "license": "LICENSE", "build": [ *cmds_cmake( "openjp2", "-DBUILD_CODEC:BOOL=OFF", "-DBUILD_SHARED_LIBS:BOOL=OFF" ), - cmd_mkdir(rf"{{inc_dir}}\openjpeg-{V['OPENJPEG']}"), - cmd_copy(r"src\lib\openjp2\*.h", rf"{{inc_dir}}\openjpeg-{V['OPENJPEG']}"), + cmd_mkdir(rf"{{inc_dir}}\openjpeg-{V['openjpeg']}"), + cmd_copy(r"src\lib\openjp2\*.h", rf"{{inc_dir}}\openjpeg-{V['openjpeg']}"), ], "libs": [r"bin\*.lib"], }, "libimagequant": { - "url": "https://github.com/ImageOptim/libimagequant/archive/{V['LIBIMAGEQUANT']}.tar.gz", - "filename": f"libimagequant-{V['LIBIMAGEQUANT']}.tar.gz", + "url": "https://github.com/ImageOptim/libimagequant/archive/{V['libimagequant']}.tar.gz", + "filename": f"libimagequant-{V['libimagequant']}.tar.gz", "license": "COPYRIGHT", "build": [ cmd_cd("imagequant-sys"), @@ -351,8 +333,8 @@ DEPS: dict[str, dict[str, Any]] = { "libs": [r"..\target\release\imagequant_sys.lib"], }, "harfbuzz": { - "url": f"https://github.com/harfbuzz/harfbuzz/releases/download/{V['HARFBUZZ']}/FILENAME", - "filename": f"harfbuzz-{V['HARFBUZZ']}.tar.xz", + "url": f"https://github.com/harfbuzz/harfbuzz/releases/download/{V['harfbuzz']}/FILENAME", + "filename": f"harfbuzz-{V['harfbuzz']}.tar.xz", "license": "COPYING", "build": [ *cmds_cmake( @@ -365,11 +347,11 @@ DEPS: dict[str, dict[str, Any]] = { "libs": [r"*.lib"], }, "fribidi": { - "url": f"https://github.com/fribidi/fribidi/archive/v{V['FRIBIDI']}.zip", - "filename": f"fribidi-{V['FRIBIDI']}.zip", + "url": f"https://github.com/fribidi/fribidi/archive/v{V['fribidi']}.zip", + "filename": f"fribidi-{V['fribidi']}.zip", "license": "COPYING", "build": [ - cmd_copy(r"COPYING", rf"{{bin_dir}}\fribidi-{V['FRIBIDI']}-COPYING"), + cmd_copy(r"COPYING", rf"{{bin_dir}}\fribidi-{V['fribidi']}-COPYING"), cmd_copy(r"{winbuild_dir}\fribidi.cmake", r"CMakeLists.txt"), # generated tab.i files cannot be cross-compiled " ^&^& ".join( @@ -383,8 +365,8 @@ DEPS: dict[str, dict[str, Any]] = { "bins": [r"*.dll"], }, "libavif": { - "url": f"https://github.com/AOMediaCodec/libavif/archive/v{V['LIBAVIF']}.tar.gz", - "filename": f"libavif-{V['LIBAVIF']}.tar.gz", + "url": f"https://github.com/AOMediaCodec/libavif/archive/v{V['libavif']}.tar.gz", + "filename": f"libavif-{V['libavif']}.tar.gz", "license": "LICENSE", "build": [ "rustup update",