re-adding member server to system roles, fixing problems when changing to that role (Bug #29759) Index: umc/python/setup/setup_script.py =================================================================== --- umc/python/setup/setup_script.py (Revision 37793) +++ umc/python/setup/setup_script.py (Arbeitskopie) @@ -361,9 +361,12 @@ def reopen_cache(self): self.package_manager.reopen_cache() + def mark_auto(self, auto, *pkgs): + self.package_manager.mark_auto(auto, *pkgs) + def commit(self, install=None, remove=None, msg_if_failed=''): with self.noninteractive(): - self.package_manager.commit(install, remove, msg_if_failed) + self.package_manager.commit(install, remove, msg_if_failed=msg_if_failed) def install(self, *pkg_names): with self.noninteractive(): @@ -383,7 +386,7 @@ return self.package_manager.cache[pkg_name] except KeyError: self.error(_('Failed to get package for Role %s') % role_name) - return False + return None def autoremove(self): with self.noninteractive(): Index: umc/js/setup/LanguagePage.js =================================================================== --- umc/js/setup/LanguagePage.js (Revision 37793) +++ umc/js/setup/LanguagePage.js (Arbeitskopie) @@ -126,7 +126,7 @@ return this._localesDeferred.then(function(locales) { return array.map(ids, function(id) { if (typeof id == "string") { - return { id: id, label :locales[id] }; + return { id: id, label: locales[id] }; } return id; }); Index: umc/js/setup/SystemRolePage.js =================================================================== --- umc/js/setup/SystemRolePage.js (Revision 37793) +++ umc/js/setup/SystemRolePage.js (Arbeitskopie) @@ -73,8 +73,7 @@ { id: 'domaincontroller_master', label: _('Domain controller master') }, { id: 'domaincontroller_backup', label: _('Domain controller backup') }, { id: 'domaincontroller_slave', label: _('Domain controller slave') }, - // Disable memberserver selection: Bug #29757 - // { id: 'memberserver', label: _('Member server') } + { id: 'memberserver', label: _('Member server') } // { id: 'basesystem', label: _('Base system') } ] }, { Index: usr/lib/univention-system-setup/scripts/role/10role =================================================================== --- usr/lib/univention-system-setup/scripts/role/10role (Revision 37793) +++ usr/lib/univention-system-setup/scripts/role/10role (Arbeitskopie) @@ -30,11 +30,9 @@ # License with the Debian GNU/Linux or Univention distribution in file # /usr/share/common-licenses/AGPL-3; if not, see # . -import sys import os.path import shutil import glob -import apt_pkg from univention.management.console.modules.setup.setup_script import AptScript, main, _ @@ -90,14 +88,14 @@ self.finish_task() if current_server_role_package: - self.commit(install=[wanted_server_role_package], remove=[current_server_role_package]) - else: - self.commit(install=[wanted_server_role_package]) + self.uninstall(current_server_role_package) + self.install(wanted_server_role_package) self.finish_task() # mark these packages as manually installed - self.install('univention-pam', 'univention-management-console') + self.mark_auto(False, 'univention-pam', 'univention-management-console') + self.reopen_cache() # apt-get autoremove self.autoremove() @@ -106,7 +104,6 @@ # reinstall listener on memberserver because the ldap-server package # will remove too much: # https://forge.univention.org/bugzilla/show_bug.cgi?id=26269 - apt_pkg.config['APT::Get::ReInstall'] = 'true' self.install('univention-directory-listener') self.finish_task()