diff --git a/meson.build b/meson.build index 80e7035..9c9d8fc 100644 --- a/meson.build +++ b/meson.build @@ -175,19 +175,22 @@ endforeach foreach header : cagebreak_header_strings cagebreak_headers += files(header) endforeach +# Dependencies marked with "true" are required to have +# the version specified below in order for the build +# to be reproducible. cagebreak_dependencies_dict = { - 'server_protos': server_protos, - 'wayland_server': wayland_server, - 'wayland_client': wayland_client, - 'wayland_cursor': wayland_cursor, - 'wlroots': wlroots, - 'xkbcommon': xkbcommon, - 'fontconfig': fontconfig, - 'pixman': pixman, - 'pango': pango, - 'cairo': cairo, - 'pangocairo': pangocairo, - 'math': math + 'server_protos': [server_protos,true], + 'wayland_server': [wayland_server,false], + 'wayland_client': [wayland_client,true], + 'wayland_cursor': [wayland_cursor,true], + 'wlroots': [wlroots,true], + 'xkbcommon': [xkbcommon,true], + 'fontconfig': [fontconfig,true], + 'pixman': [pixman,true], + 'pango': [pango,true], + 'cairo': [cairo,true], + 'pangocairo': [pangocairo,true], + 'math': [math,true], } reproducible_build_versions = { @@ -208,14 +211,21 @@ reproducible_build_versions = { cagebreak_dependencies = [] foreach name, dep : cagebreak_dependencies_dict - cagebreak_dependencies += dep + cagebreak_dependencies += dep[0] endforeach foreach name, dep : cagebreak_dependencies_dict - if reproducible_build_versions[name] != '-1' and reproducible_build_versions[name] != dep.version() - warning('The installed version of "' + name + '" on your machine (' + dep.version() + ') differs from the one used to generate the binary specified in the README section "Reproducible Builds" (' + reproducible_build_versions[name] + '). Cagebreak does not guarantee a reproducible build for this configuration.' - ) - break + if reproducible_build_versions[name] != '-1' + if dep[1] == false + if dep[0].version() < reproducible_build_versions[name] + warning('The installed version of "' + name + '" on your machine (' + dep[0].version() + ') is older than the one used to generate the binary specified in the README section "Reproducible Builds" (' + reproducible_build_versions[name] + '). It is recommended to use an up-to-date version for compiling cagebreak.' + ) + endif + elif reproducible_build_versions[name] != dep[0].version() + warning('The installed version of "' + name + '" on your machine (' + dep[0].version() + ') differs from the one used to generate the binary specified in the README section "Reproducible Builds" (' + reproducible_build_versions[name] + '). Cagebreak does not guarantee a reproducible build for this configuration.' + ) + break + endif endif endforeach