diff --git a/kiwixbuild/dependencies/zlib.py b/kiwixbuild/dependencies/zlib.py index cf6c546..e58b176 100644 --- a/kiwixbuild/dependencies/zlib.py +++ b/kiwixbuild/dependencies/zlib.py @@ -3,7 +3,7 @@ import shutil from .base import ( Dependency, ReleaseDownload, - MakeBuilder) + MesonBuilder) from kiwixbuild.utils import Remotefile, pj, SkipCommand @@ -13,39 +13,10 @@ class zlib(Dependency): name = 'zlib' class Source(ReleaseDownload): - archive = Remotefile('zlib-1.2.8.tar.gz', - '36658cb768a54c1d4dec43c3116c27ed893e88b02ecfcb44f2166f9c0b7f2a0d') - patches = ['zlib_std_libname.patch'] + archive = Remotefile('zlib-1.2.11.tar.gz', + 'c3e5e9fdd5004dcb542feda5ee4f0ff0744628baf8ed2dd5d66f8ca1197cb1a1', + 'http://zlib.net/fossils/zlib-1.2.11.tar.gz') + patches = ['zlib_meson.patch'] - class Builder(MakeBuilder): - dynamic_configure_options = ["--shared"] - static_configure_options = ["--static"] - - def _pre_build_script(self, context): - context.try_skip(self.build_path) - shutil.copytree(self.source_path, self.build_path) - - - def _configure(self, context): - if self.buildEnv.platformInfo.build == 'win32': - raise SkipCommand() - return super()._configure(context) - - @property - def all_configure_options(self): - yield from self.configure_options - yield from self.static_configure_options if self.buildEnv.platformInfo.static else self.dynamic_configure_options - yield from ('--prefix', self.buildEnv.install_dir) - yield from ('--libdir', pj(self.buildEnv.install_dir, self.buildEnv.libprefix)) - - @property - def make_options(self): - if self.buildEnv.platformInfo.build == 'win32': - return - yield "--makefile" - yield "{}/Makefile.gcc".format(self.buildEnv.platformInfo.build) - yield "PREFIX={}-".format(self.buildEnv.platformInfo.arch_full) - yield "SHARED_MODE={}".format("0" if self.buildEnv.platformInfo.static else "1") - yield "INCLUDE_PATH={}".format(pj(self.buildEnv.install_dir, 'include')) - yield "LIBRARY_PATH={}".format(pj(self.buildEnv.install_dir, self.buildEnv.libprefix)) - yield "BINARY_PATH={}".format(pj(self.buildEnv.install_dir, 'bin')) + class Builder(MesonBuilder): + pass diff --git a/kiwixbuild/patches/zlib_meson.patch b/kiwixbuild/patches/zlib_meson.patch new file mode 100644 index 0000000..97f30d5 --- /dev/null +++ b/kiwixbuild/patches/zlib_meson.patch @@ -0,0 +1,103 @@ +diff -uNr zlib-1.2.11/LICENSE.build zlib-1.2.11.meson/LICENSE.build +--- zlib-1.2.11/LICENSE.build 1970-01-01 01:00:00.000000000 +0100 ++++ zlib-1.2.11.meson/LICENSE.build 2018-05-29 15:10:02.000000000 +0200 +@@ -0,0 +1,19 @@ ++Copyright (c) 2018 The Meson development team ++ ++Permission is hereby granted, free of charge, to any person obtaining a copy ++of this software and associated documentation files (the "Software"), to deal ++in the Software without restriction, including without limitation the rights ++to use, copy, modify, merge, publish, distribute, sublicense, and/or sell ++copies of the Software, and to permit persons to whom the Software is ++furnished to do so, subject to the following conditions: ++ ++The above copyright notice and this permission notice shall be included in all ++copies or substantial portions of the Software. ++ ++THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ++IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ++FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE ++AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ++LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, ++OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE ++SOFTWARE. +diff -uNr zlib-1.2.11/meson.build zlib-1.2.11.meson/meson.build +--- zlib-1.2.11/meson.build 1970-01-01 01:00:00.000000000 +0100 ++++ zlib-1.2.11.meson/meson.build 2018-06-20 18:09:04.498957829 +0200 +@@ -0,0 +1,71 @@ ++project('zlib', 'c', version : '1.2.11', license : 'zlib') ++ ++cc = meson.get_compiler('c') ++ ++link_args = [] ++compile_args = [] ++if cc.get_id() == 'msvc' ++ add_project_arguments('-D_CRT_SECURE_NO_DEPRECATE', ++ '-D_CRT_NONSTDC_NO_DEPRECATE', language : 'c') ++else ++ # Don't spam consumers of this wrap with these warnings ++ compile_args += cc.get_supported_arguments(['-Wno-implicit-fallthrough', ++ '-Wno-implicit-function-declaration']) ++ if cc.get_id() == 'gcc' and host_machine.system() != 'windows' ++ vflag = '-Wl,--version-script,@0@/zlib.map'.format(meson.current_source_dir()) ++ link_args += [vflag] ++ endif ++endif ++ ++src = files([ ++ 'adler32.c', ++ 'crc32.c', ++ 'deflate.c', ++ 'infback.c', ++ 'inffast.c', ++ 'inflate.c', ++ 'inftrees.c', ++ 'trees.c', ++ 'zutil.c', ++ 'compress.c', ++ 'uncompr.c', ++ 'gzclose.c', ++ 'gzlib.c', ++ 'gzread.c', ++ 'gzwrite.c']) ++ ++headers = files(['zconf.h', 'zlib.h']) ++ ++if host_machine.system() == 'windows' ++ win = import('windows') ++ win_args = [] ++ if cc.get_id() != 'msvc' ++ win_args += '-DGCC_WINDRES' ++ endif ++ src += win.compile_resources('win32/zlib1.rc', args : win_args) ++endif ++ ++if get_option('solo') ++ compile_args += ['-DZ_SOLO'] ++endif ++ ++zlib = library('z', src, ++ c_args : compile_args, ++ link_args : link_args, ++ vs_module_defs : 'win32/zlib.def', ++ install : true) ++ ++incdir = include_directories('.') ++ ++zlib_dep = declare_dependency( ++ link_with : zlib, ++ include_directories : incdir) ++ ++install_headers(headers) ++ ++pkg = import('pkgconfig') ++ ++pkg.generate(name: 'zlib', ++ description: 'zlib compression library', ++ version: '1.2.11', ++ libraries: zlib) +diff -uNr zlib-1.2.11/meson_options.txt zlib-1.2.11.meson/meson_options.txt +--- zlib-1.2.11/meson_options.txt 1970-01-01 01:00:00.000000000 +0100 ++++ zlib-1.2.11.meson/meson_options.txt 2018-05-29 15:10:02.000000000 +0200 +@@ -0,0 +1 @@ ++option('solo', type: 'boolean', value: false, description: 'Build a minimal zlib without file I/O API') diff --git a/kiwixbuild/versions.py b/kiwixbuild/versions.py index be70b60..7c29682 100644 --- a/kiwixbuild/versions.py +++ b/kiwixbuild/versions.py @@ -10,11 +10,11 @@ main_project_versions = { # This is the "version" of the whole base_deps_versions dict. # Change this when you change base_deps_versions. -base_deps_meta_version = '8' +base_deps_meta_version = '9' base_deps_versions = { - 'zlib' : '1.2.8', + 'zlib' : '1.2.11', 'lzma' : '5.2.3', 'uuid' : '1.43.4', 'xapian-core' : '1.4.5',