refs #596 remove debconf_settings2, do chdir first

pull/1/head
Natalia Serrano 2024-08-16 13:22:34 +02:00
parent ffc24fb48b
commit 53310a8e5b
4 changed files with 16 additions and 34 deletions

View File

@ -251,9 +251,9 @@ def configure_schroot (btrootfsimg):
logger.info ('Finalizado: OK')
return 0
# SetfsBase: Genera el sistema root base con debootstrap
# debootstrap: Genera el sistema root base con debootstrap
# trabaja sobre un rootfs ya montado
def SetFsBase (btrootfsimg, btrootfsmnt, osarch, oscodename, oshttp):
def debootstrap (btrootfsimg, btrootfsmnt, osarch, oscodename, oshttp):
logger.info ('Iniciando la generación del sistema de archivos')
logger.info ('debootstrapping system')

View File

@ -14,7 +14,6 @@ config = utils.read_config ('mkoglive.cfg')
if config is None:
sys.exit (1)
debconf_settings = config['General'].get ('debconf_settings')
debconf_settings2 = config['General'].get ('debconf_settings2')
def _oghook_deactivate():
#Desactivamos el hook del oginitrd.img para evitar problemas, al final de este escripts se activará
@ -24,16 +23,6 @@ def _oghook_activate():
#Activamos el hook del oginitrd.img
os.rename ('/etc/initramfs-tools/oghooks', '/etc/initramfs-tools/hooks/oghooks')
#def _mock_mtab():
# # Preparamos el mtab necesario para la instalacion correcta de paquetes.
# #echo "/dev/sda1 / ext4 rw,errors=remount-ro 0 0" > /etc/mtab ## nati: falla porque es un symlink a ../proc/self/mounts
# pass
#def _restore_mtab():
# # Dejamos el mtab como al principio
# #echo " " > /etc/mtab
# pass
def boottoolsSoftwareInstall (osarch, osrelease):
os.environ['LANGUAGE'] = 'C'
os.environ['LC_ALL'] = 'C'
@ -51,18 +40,18 @@ def boottoolsSoftwareInstall (osarch, osrelease):
pkgs32 = 'lib32gcc-s1 lib32stdc++6 lib32z1 libc6-i386'.split (' ') ## he cambiado lib32gcc1 por lib32gcc-s1 pero como queramos crear un oglive viejo, esto va a petar
_oghook_deactivate()
#_mock_mtab()
apt.install ([f'linux-image-{osrelease}', f'linux-headers-{osrelease}', f'linux-modules-{osrelease}', f'linux-modules-extra-{osrelease}', 'dkms', 'shim-signed', 'openssl'])
subprocess.run (['debconf-set-selections'], input=debconf_settings, text=True)
apt.install (['sshfs', 'kexec-tools'] + pkgs32, opts={'DPkg::Options::': '--force-confdef'}) ## hace falta --force-confdef para evitar un tema interactivo del /etc/ssh/ssh_config
utils.run (['dpkg-reconfigure', '--frontend', 'noninteractive', 'console-setup', 'locales']) ## despues de esto, debconf-get-selections devuelve los valores antiguos, no se por que...
pkgs = []
for section in config.options('Packages'):
pkgs += re.split (r'[ \n]', config['Packages'].get(section).strip())
apt.install (pkgs)
apt.install (
[f'linux-image-{osrelease}', f'linux-headers-{osrelease}', f'linux-modules-{osrelease}', f'linux-modules-extra-{osrelease}', 'dkms', 'shim-signed', 'openssl', 'sshfs', 'kexec-tools'] + pkgs32 + pkgs,
opts={'DPkg::Options::': '--force-confdef'} ## hace falta --force-confdef para evitar un tema interactivo del /etc/ssh/ssh_config
)
# Instalar módulos que algunos paquetes puedan tener pendientes de compilar.
stdout, _ = utils.run (['dkms', 'status'])
@ -75,11 +64,13 @@ def boottoolsSoftwareInstall (osarch, osrelease):
utils.run (['dkms', 'install', '-m', mod.strip(), '-v', vers.strip()])
_oghook_activate()
#_restore_mtab()
apt.clean()
apt.autoremove()
def boottoolsSoftwareCompile():
env_language = os.environ['LANGUAGE']
env_lc_all = os.environ['LC_ALL']
env_lang = os.environ['LANG']
os.environ['LANGUAGE'] = os.environ['LC_ALL'] = os.environ['LANG'] = 'C'
os.chdir ('/tmp')
@ -111,15 +102,9 @@ def boottoolsSoftwareCompile():
os.chdir ('..')
apt.remove (['python3-dev', 'python3-setuptools'])
## TODO restore os.environ and pwd
os.environ['LANGUAGE'] = os.environ['LC_ALL'] = os.environ['LANG'] = 'C'
os.chdir ('/tmp')
def boottoolsFsLocales():
subprocess.run (['debconf-set-selections'], input=debconf_settings2, text=True)
## despues de esto, debconf-get-selections devuelve los valores antiguos, no se por que...
utils.run (['dpkg-reconfigure', '--frontend', 'noninteractive', 'console-setup', 'locales'])
os.environ['LANGUAGE'] = env_language
os.environ['LC_ALL'] = env_lc_all
os.environ['LANG'] = env_lang
def boottoolsInitrdGenerate (osrelease):
for f in glob.glob ('/usr/lib/initramfs-tools/bin/*'):
@ -137,5 +122,4 @@ if __name__ == '__main__':
args = parser.parse_args()
boottoolsSoftwareInstall (args.osarch, args.osrelease)
boottoolsSoftwareCompile()
boottoolsFsLocales()
boottoolsInitrdGenerate (args.osrelease)

View File

@ -6,8 +6,6 @@ debconf_settings =
kexec-tools kexec-tools/load_kexec boolean true
openssh-server openssh-server/permit-root-login boolean true
refind refind/install_to_esp boolean false
debconf_settings2 =
console-setup console-setup/charmap47 select UTF-8
console-setup console-setup/codeset47 select . Combined - Latin; Slavic Cyrillic; Greek
console-setup console-setup/fontface47 select VGA

View File

@ -12,6 +12,8 @@ curdir = os.path.dirname (__file__)
sys.path.insert (0, curdir)
from boottools import utils, apt, btog
os.chdir (curdir)
def _logging():
#logging.root.handlers = []
@ -141,8 +143,6 @@ if os.getuid():
logger.error ('ERROR: this program must run under root privileges!!')
sys.exit (1)
#os.chdir ('/tmp')
## this is convenient in case the previous run failed and we want to run this program again
try: utils.umount (btrootfsmnt)
except: pass