Introduction:
Packages Manipulation
This module provides API for packages that want software
proposal to select some resolvables for installation.
Clients of this module identify themselves by their own
unique ID, thus one client doesn't change other clients
requirements.
@example
// No packages selected initially
y2internal ("Packages to install: %1", PackagesProposal::GetAllResolvables (`package));
// Adding packages for ID_1
PackagesProposal::AddResolvables ("ID_1", `package, ["aa", "bb", "cc"]);
y2internal ("Packages to install: %1", PackagesProposal::GetAllResolvables (`package));
// Adding packages for ID_2
// 'cc' is shared with ID_1
PackagesProposal::AddResolvables ("ID_2", `package, ["cc", "dd", "ee"]);
y2internal ("Packages to install: %1", PackagesProposal::GetAllResolvables (`package));
// Get all packages required by ID_1
list required_packages = PackagesProposal::GetResolvables ("ID_1", `package);
y2internal ("Packages required by ID_1: %1", required_packages);
// Removing all packages required by ID_1
PackagesProposal::RemoveResolvables ("ID_1", `package, required_packages);
y2internal ("Packages to install: %1", PackagesProposal::GetAllResolvables (`package));
// Removing some packages required by ID_2
PackagesProposal::RemoveResolvables ("ID_2", `package, ["cc", "dd"]);
y2internal ("Packages to install: %1", PackagesProposal::GetAllResolvables (`package));