Exemplo n.º 1
0
def get_debconf():
    debconf.runFrontEnd()
    db = debconf.Debconf()
    try:
        yield db
    finally:
        db.stop()
Exemplo n.º 2
0
    def __init__(self, template, title=None, priority='high', subst='CHOICES'):
        debconf.runFrontEnd()
        self.template = template
        self.db = debconf.Debconf(title)

        self.db.capb('backup')
        self.priority = priority
        self.subst = subst
Exemplo n.º 3
0
    def __init__(self, template, title=None, priority='high', subst='CHOICES'):
        debconf.runFrontEnd()
        self.template = template
        self.db = debconf.Debconf(title)

        self.db.capb('backup')
        self.priority = priority
        self.subst = subst
Exemplo n.º 4
0
def target_mounted(target="/target"):
    if not os.path.exists(target) or not is_mounted(target):
        debconf.runFrontEnd()
        db = debconf.Debconf()

        db.capb("backup")
        db.input(debconf.CRITICAL, "base-installer/no_target_mounted")
        db.go()
        return False

    return True
Exemplo n.º 5
0
def preset_debconf(resets=None, preseeds=None, seen=None):
    debconf.runFrontEnd()
    db = debconf.Debconf()

    if resets:
        for template in resets:
            db.reset(template)

    if preseeds:
        for template, value in preseeds:
            db.set(template, value)

    if seen:
        for template, value in seen:
            db.fset(template, "seen", value)
Exemplo n.º 6
0
def start_debconf():
    """debconf_ui needs to run within a debconf frontend."""
    if 'DEBIAN_HAS_FRONTEND' in os.environ:
        # debconf already started, so just clean up the configuration file
        # if any (debconf has already read it by now).
        if 'DEBCONF_SYSTEMRC' in os.environ:
            osextras.unlink_force(os.environ['DEBCONF_SYSTEMRC'])
        return

    print("debconf_ui selected; starting debconf frontend", file=sys.stderr)

    if 'UBIQUITY_AUTOMATIC' in os.environ:
        # In automatic mode, we don't want debconf to reshow seen questions,
        # since that defeats the purpose of preseeding.
        pass
    elif 'DEBCONF_USE_CDEBCONF' not in os.environ:
        # This is rather unsatisfactory. Perhaps it would be better to
        # have a custom debconf program, a bit like dpkg-reconfigure.
        import tempfile
        debconfrc_fd, debconfrc = tempfile.mkstemp()
        os.chmod(debconfrc, 0o644)
        debconfrc_file = os.fdopen(debconfrc_fd, 'w')
        orig_debconfrc = open('/etc/debconf.conf')
        state = 0
        for line in orig_debconfrc:
            if (state == 0 and
                    line.rstrip('\n') and not line.startswith('#')):
                state = 1
            elif state == 1 and not line.rstrip('\n'):
                print('Reshow: true', file=debconfrc_file)
                state = 2
            print(line, end="", file=debconfrc_file)
        orig_debconfrc.close()
        debconfrc_file.close()
        os.environ['DEBCONF_SYSTEMRC'] = debconfrc
    else:
        os.environ['DEBCONF_SHOWOLD'] = 'true'

    if 'DEBCONF_USE_CDEBCONF' not in os.environ:
        os.environ['DEBCONF_PACKAGE'] = 'ubiquity'
    # TODO: need to set owner somehow for the cdebconf case

    import debconf
    debconf.runFrontEnd()  # re-execs this program
Exemplo n.º 7
0
  def get_locales(self):
    """set timezone and keymap attributes from debconf. It uses the same values
    the user have selected on live system.

    get_locales() -> timezone, keymap, locales"""

    debconf.runFrontEnd()
    db = debconf.Debconf()

    try:
      self.timezone = db.get('express/timezone')
      if self.timezone == '':
          self.timezone = db.get('tzconfig/choose_country_zone_multiple')
    except:
      self.timezone = open('/etc/timezone').readline().strip()
    self.keymap = db.get('debian-installer/keymap')

    self.locales = db.get('locales/default_environment_locale')
    return True
Exemplo n.º 8
0
def start_debconf():
    """debconf_ui needs to run within a debconf frontend."""
    if 'DEBIAN_HAS_FRONTEND' in os.environ:
        # debconf already started, so just clean up the configuration file
        # if any (debconf has already read it by now).
        if 'DEBCONF_SYSTEMRC' in os.environ:
            osextras.unlink_force(os.environ['DEBCONF_SYSTEMRC'])
        return

    print("debconf_ui selected; starting debconf frontend", file=sys.stderr)

    if 'UBIQUITY_AUTOMATIC' in os.environ:
        # In automatic mode, we don't want debconf to reshow seen questions,
        # since that defeats the purpose of preseeding.
        pass
    elif 'DEBCONF_USE_CDEBCONF' not in os.environ:
        # This is rather unsatisfactory. Perhaps it would be better to
        # have a custom debconf program, a bit like dpkg-reconfigure.
        import tempfile
        debconfrc_fd, debconfrc = tempfile.mkstemp()
        os.chmod(debconfrc, 0o644)
        debconfrc_file = os.fdopen(debconfrc_fd, 'w')
        orig_debconfrc = open('/etc/debconf.conf')
        state = 0
        for line in orig_debconfrc:
            if (state == 0 and line.rstrip('\n') and not line.startswith('#')):
                state = 1
            elif state == 1 and not line.rstrip('\n'):
                print('Reshow: true', file=debconfrc_file)
                state = 2
            print(line, end="", file=debconfrc_file)
        orig_debconfrc.close()
        debconfrc_file.close()
        os.environ['DEBCONF_SYSTEMRC'] = debconfrc
    else:
        os.environ['DEBCONF_SHOWOLD'] = 'true'

    if 'DEBCONF_USE_CDEBCONF' not in os.environ:
        os.environ['DEBCONF_PACKAGE'] = 'ubiquity'
    # TODO: need to set owner somehow for the cdebconf case

    import debconf
    debconf.runFrontEnd()  # re-execs this program
Exemplo n.º 9
0
    def get_locales(self):
        '''get_locales() -> timezone, keymap, locales
      
      Get the timezone, keymap and locales from the
      Debconf database and return them.
      '''
        debconf.runFrontEnd()
        db = debconf.Debconf()

        try:
            self.timezone = db.get('express/timezone')
            if self.timezone == '':
                self.timezone = db.get('tzconfig/choose_country_zone_multiple')
        except:
            self.timezone = open('/etc/timezone').readline().strip()
        self.keymap = db.get('debian-installer/keymap')

        self.locales = db.get('locales/default_environment_locale')
        return True
Exemplo n.º 10
0
 def get_locales(self):
     '''get_locales() -> timezone, keymap, locales
     
     Get the timezone, keymap and locales from the
     Debconf database and return them.
     '''
     debconf.runFrontEnd()
     db = debconf.Debconf()
     
     try:
       self.timezone = db.get('express/timezone')
       if self.timezone == '':
           self.timezone = db.get('tzconfig/choose_country_zone_multiple')
     except:
       self.timezone = open('/etc/timezone').readline().strip()
     self.keymap = db.get('debian-installer/keymap')
       
     self.locales = db.get('locales/default_environment_locale')
     return True
Exemplo n.º 11
0
 def __init__(self):
     debconf.runFrontEnd()
     self.db = debconf.Debconf()
Exemplo n.º 12
0
 def __init__(self):
     debconf.runFrontEnd()
     self.db = debconf.Debconf()
Exemplo n.º 13
0
 def __init__(self):
     debconf.runFrontEnd()
     self.db = debconf.Debconf()
     self.db.capb("backup")