From d8bd2b22a77ebd4913b1612c851b9ffa6f349db9 Mon Sep 17 00:00:00 2001 From: Philip Date: Thu, 26 Jan 2017 11:31:38 +0100 Subject: [PATCH] [netinstall] corrected packages module features so that they are up to date --- src/modules/netinstall/NetInstallViewStep.cpp | 2 +- src/modules/packages/main.py | 32 ++++++++++++++----- 2 files changed, 25 insertions(+), 9 deletions(-) diff --git a/src/modules/netinstall/NetInstallViewStep.cpp b/src/modules/netinstall/NetInstallViewStep.cpp index 348a46e52..c714418df 100644 --- a/src/modules/netinstall/NetInstallViewStep.cpp +++ b/src/modules/netinstall/NetInstallViewStep.cpp @@ -147,7 +147,7 @@ NetInstallViewStep::onLeave() if ( !installPackages.empty() ) packagesWithOperation.insert( "install", QVariant( installPackages ) ); if ( !tryInstallPackages.empty() ) - packagesWithOperation.insert( "try-install", QVariant( tryInstallPackages ) ); + packagesWithOperation.insert( "try_install", QVariant( tryInstallPackages ) ); if ( !packagesWithOperation.isEmpty() ) { diff --git a/src/modules/packages/main.py b/src/modules/packages/main.py index a20833797..ed5fb782d 100644 --- a/src/modules/packages/main.py +++ b/src/modules/packages/main.py @@ -4,6 +4,7 @@ # === This file is part of Calamares - === # # Copyright 2014, Pier Luigi Fiorini +# Copyright 2016, Kyle Robbertze # # Calamares is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -21,7 +22,7 @@ import subprocess import libcalamares from libcalamares.utils import check_target_env_call, target_env_call - +from string import Template class PackageManager: """ Package manager class. @@ -98,9 +99,7 @@ class PackageManager: elif self.backend == "zypp": check_target_env_call(["zypper", "update"]) elif self.backend == "urpmi": - check_target_env_call(["urpmi.update", "-a"]) - elif self.backend == "apt": - check_target_env_call(["apt-get", "update"]) + check_target_env_call(["urpmi.update", "-a"]) elif self.backend == "apt": check_target_env_call(["apt-get", "update"]) elif self.backend == "pacman": check_target_env_call(["pacman", "-Sy"]) elif self.backend == "portage": @@ -108,10 +107,20 @@ class PackageManager: elif self.backend == "entropy": check_target_env_call(["equo", "update"]) - def run(self, script): - if script != "": - check_target_env_call(script.split(" ")) +def subst_locale(list): + ret = [] + locale = libcalamares.globalstorage.value("locale") + if locale: + for e in list: + if locale != "en": + entry = Template(e) + ret.append(entry.safe_substitute(LOCALE=locale)) + elif 'LOCALE' not in e: + ret.append(e) + else: + ret = list + return ret def run_operations(pkgman, entry): """ Call package manager with given parameters. @@ -120,8 +129,15 @@ def run_operations(pkgman, entry): :param entry: """ for key in entry.keys(): + entry[key] = subst_locale(entry[key]) if key == "install": - pkgman.install(entry[key]) + if isinstance(entry[key], list): + for package in entry[key]: + pkgman.run(package["pre-script"]) + pkgman.install([package["package"]]) + pkgman.run(package["post-script"]) + else: + pkgman.install(entry[key]) elif key == "try_install": if isinstance(entry[key], list): for package in entry[key]: