Univention Bugzilla – Attachment 4935 Details for
Bug 29805
System Setup Memberserver wieder hinzufügen
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Add funtions to package_manager and fix apt options to enable system setup member server
010_bug29805_bug29239_bug29797.patch (text/plain), 4.52 KB, created by
Dirk Wiesenthal
on 2012-12-20 15:03:27 CET
(
hide
)
Description:
Add funtions to package_manager and fix apt options to enable system setup member server
Filename:
MIME Type:
Creator:
Dirk Wiesenthal
Created:
2012-12-20 15:03:27 CET
Size:
4.52 KB
patch
obsolete
>fixed markauto and setting config (Bug #29805), adding log (Bug #29239), checking signature (Bug #29797) >Index: python/de.po >=================================================================== >--- python/de.po (Revision 37793) >+++ python/de.po (Arbeitskopie) >@@ -21,6 +21,10 @@ > msgid "Deleting unneeded %s" > msgstr "Deinstalliere unbenutztes Paket %s" > >+#: python/package_manager.py:482 >+msgid "Untrusted origin" >+msgstr "Nicht vertrauenswürdige Quelle" >+ > #: python/package_manager.py:509 > msgid "Failed to install" > msgstr "Installation fehlgeschlagen" >Index: python/package_manager.py >=================================================================== >--- python/package_manager.py (Revision 37793) >+++ python/package_manager.py (Arbeitskopie) >@@ -35,7 +35,6 @@ > import os > import time > import subprocess >-import tempfile > from contextlib import contextmanager > > import apt_pkg >@@ -55,6 +54,8 @@ > CMD_DISABLE_EXEC = '/usr/share/univention-updater/disable-apache2-umc' > CMD_ENABLE_EXEC = ['/usr/share/univention-updater/enable-apache2-umc', '--no-restart'] > >+PACKAGE_MANAGER_LOG = open('/var/log/univention/package_manager.log', 'ab') >+ > class LockError(Exception): > '''Lock error for the package manager. > Not to be confused with LockFailedException (apt) >@@ -88,6 +89,7 @@ > if msg is None: > return > msg = '%s\n' % str(msg).strip() >+ PACKAGE_MANAGER_LOG.write(msg) > for log in self.logfiles.values(): > log.write(msg) > >@@ -185,8 +187,7 @@ > def fork(self): > # we better have a real file > # when using low-level routines >- tmp = tempfile.TemporaryFile() >- msg_writer = MessageWriter(self.progress_state, tmp) >+ msg_writer = MessageWriter(self.progress_state, PACKAGE_MANAGER_LOG) > p = os.fork() > if p == 0: > os.dup2(msg_writer.fileno(), sys.stdout.fileno()) >@@ -273,6 +274,9 @@ > finally: > self.progress_state.logfiles.pop(logfile.name) > >+ def log(self, msg): >+ self.progress_state.log(msg) >+ > @contextmanager > def locked(self, reset_status=False, set_finished=False): > self.lock() >@@ -309,11 +313,11 @@ > self.unlock() > > def _set_apt_pkg_config(self, options): >- revert_options = {} >- for option_name, option_value in options.iteritems(): >+ revert_options = [] >+ for option_name, option_value in options: > old_value = apt_pkg.config.get(option_name) > apt_pkg.config[option_name] = option_value >- revert_options[option_name] = old_value >+ revert_options.append((option_name, old_value)) > return revert_options > > def add_hundred_percent(self): >@@ -347,12 +351,13 @@ > @contextmanager > def brutal_noninteractive(self): > with self.noninteractive(): >- options = { >- 'DPkg::Options::': '--force-overwrite', >- 'DPkg::Options::': '--force-overwrite-dir', >- 'APT::Get::Trivial-Only': 'no', >- 'quiet': '1', >- } >+ options = [ >+ ('DPkg::Options::', '--force-overwrite'), >+ ('DPkg::Options::', '--force-overwrite-dir'), >+ ('APT::Get::AllowUnauthenticated', '1'), >+ ('APT::Get::Trivial-Only', 'no'), >+ ('quiet', '1'), >+ ] > revert_options = self._set_apt_pkg_config(options) > try: > yield >@@ -364,12 +369,11 @@ > ''' dont ever ask for user input ''' > old_debian_frontend = os.environ.get('DEBIAN_FRONTEND') > os.environ['DEBIAN_FRONTEND'] = 'noninteractive' >- options = { >- 'APT::Get::Assume-Yes': 'true', >- 'APT::Get::force-yes': 'true', >- 'APT::Get::AllowUnauthenticated': '1', >- 'DPkg::Options::': '--force-confold', >- } >+ options = [ >+ ('APT::Get::Assume-Yes', 'true'), >+ ('APT::Get::force-yes', 'true'), >+ ('DPkg::Options::', '--force-confold'), >+ ] > revert_options = self._set_apt_pkg_config(options) > try: > yield >@@ -440,6 +444,14 @@ > for pkg in self.cache: > yield pkg > >+ def mark_auto(self, auto, *pkgs): >+ '''Immediately sets packages to automatically >+ installed (or not). Calls commit()!''' >+ for pkg in self.get_packages(pkgs): >+ pkg.mark_auto(auto) >+ self.commit() >+ self.reopen_cache() >+ > def mark(self, install, remove, dry_run=False): > '''Marks packages, returns all > installed, removed or broken packages. >@@ -464,6 +476,13 @@ > for pkg in self.cache.get_changes(): > if pkg.marked_install or pkg.marked_upgrade: > to_be_installed.add(pkg.name) >+ if apt_pkg.config.get('APT::Get::AllowUnauthenticated') != '1': >+ authenticated = False >+ for origin in pkg.candidate.origins: >+ authenticated |= origin.trusted >+ if not authenticated: >+ self.progress_state.error('%s: %s' % (pkg.name, _('Untrusted origin'))) >+ broken.add(pkg.name) > if pkg.marked_delete: > to_be_removed.add(pkg.name) > if pkg.is_inst_broken:
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 29805
: 4935