diff --git a/kiwixbuild/builder.py b/kiwixbuild/builder.py index 7b7adc3..2f0f315 100644 --- a/kiwixbuild/builder.py +++ b/kiwixbuild/builder.py @@ -124,51 +124,33 @@ class Builder: def _get_packages(self): packages_list = [] - for config in ConfigInfo.all_running_configs.values(): - # get {host}_{config} packages - mapper_name = "{host}_{config}".format( - host=neutralEnv("distname"), config=config - ) - package_name_mapper = PACKAGE_NAME_MAPPERS.get(mapper_name, {}) - packages_list += package_name_mapper.get("COMMON", []) - # get {host}_{codename}_{config} packages - mapper_name = "{host}_{codename}_{config}".format( - host=neutralEnv("distname"), codename=neutralEnv("codename"), config=config - ) - package_name_mapper = PACKAGE_NAME_MAPPERS.get(mapper_name, {}) - packages_list += package_name_mapper.get("COMMON", []) + for runningConfig in ConfigInfo.all_running_configs.values(): + for mapper_name in self._get_mapper_names_for_config(runningConfig): + package_name_mapper = PACKAGE_NAME_MAPPERS.get(mapper_name, {}) + packages_list += package_name_mapper.get("COMMON", []) to_drop = [] for builderDef in self._targets: - configName, builderName = builderDef - # get {host}_{config} packages - mapper_name = "{host}_{config}".format( - host=neutralEnv("distname"), config=configName - ) - package_name_mapper = PACKAGE_NAME_MAPPERS.get(mapper_name, {}) - packages = package_name_mapper.get(builderName) - if packages: - to_drop.append(builderDef) - if packages is not True: - # True means "assume the dependency is install but do not try to install anything for it" - packages_list += packages + builderConfig, builderName = builderDef - # get {host}_{codename}_{config} packages - mapper_name = "{host}_{codename}_{config}".format( - host=neutralEnv("distname"), codename=neutralEnv("codename"), config=configName - ) - package_name_mapper = PACKAGE_NAME_MAPPERS.get(mapper_name, {}) - packages = package_name_mapper.get(builderName) - if packages: - to_drop.append(builderDef) - if packages is not True: - # True means "assume the dependency is install but do not try to install anything for it" - packages_list += packages + for mapper_name in self._get_mapper_names_for_config(builderConfig): + package_name_mapper = PACKAGE_NAME_MAPPERS.get(mapper_name, {}) + packages = package_name_mapper.get(builderName) + if packages: + to_drop.append(builderDef) + if packages is not True: + # True means "assume the dependency is install but do not try to install anything for it" + packages_list += packages for dep in to_drop: del self._targets[dep] return packages_list + def _get_mapper_names_for_config(self, config): + host = neutralEnv("distname") + codename = neutralEnv("codename") + return ( f"{host}_{config}", f"{host}_{codename}_{config}" ) + def install_packages(self): packages_to_have = self._get_packages() packages_to_have = remove_duplicates(packages_to_have) diff --git a/kiwixbuild/packages.py b/kiwixbuild/packages.py index 4565c93..db4fd07 100644 --- a/kiwixbuild/packages.py +++ b/kiwixbuild/packages.py @@ -96,8 +96,8 @@ PACKAGE_NAME_MAPPERS = { "zlib": ["zlib1g-dev"], "uuid": ["uuid-dev"], "libmicrohttpd": ["libmicrohttpd-dev", "ccache"], - "qt": ["libqt5gui5", "qtbase5-dev", "libqt5svg5-dev", "qt5-image-formats-plugins"], - "qtwebengine": ["qtwebengine5-dev"], + "qt": ["qt6-base-dev", "qt6-base-dev-tools", "libqt6webenginecore6-bin", "libqt6svg6", "qtchooser"], + "qtwebengine": ["qt6-webengine-dev"], "aria2": ["aria2"], }, "ubuntu_noble_native_dyn": {