[elbe-devel] [PATCH v2 22/28] Nuke ASCIIDocLog from hdimg

Torben Hohn torben.hohn at linutronix.de
Wed Jun 26 16:09:23 CEST 2019


On Fri, Jun 21, 2019 at 07:40:14PM +0200, dion at linutronix.de wrote:
> From: Olivier Dion <dion at linutronix.de>
> 
> Signed-off-by: Olivier Dion <dion at linutronix.de>

Reviewed-by: Torben Hohn <torben.hohn at linutronix.de>

this patch has a few style issues,
please fix them up in a subsequent patch.


> ---
>  elbepack/efilesystem.py |  12 ++-
>  elbepack/hdimg.py       | 201 +++++++++++++++++++++++-------------------------
>  2 files changed, 102 insertions(+), 111 deletions(-)
> 
> diff --git a/elbepack/efilesystem.py b/elbepack/efilesystem.py
> index 1f6428e0..3d2e3d6d 100644
> --- a/elbepack/efilesystem.py
> +++ b/elbepack/efilesystem.py
> @@ -307,13 +307,11 @@ class TargetFs(ChRootFilesystem):
>      def part_target(self, targetdir, grub_version, grub_fw_type=None):
>  
>          # create target images and copy the rfs into them
> -        self.images = do_hdimg(
> -            self.log,
> -            self.xml,
> -            targetdir,
> -            self,
> -            grub_version,
> -            grub_fw_type)
> +        self.images = do_hdimg(self.xml,
> +                               targetdir,
> +                               self,
> +                               grub_version,
> +                               grub_fw_type)
>  
>          for i in self.images:
>              self.image_packers[i] = default_packer
> diff --git a/elbepack/hdimg.py b/elbepack/hdimg.py
> index 771c9a35..b1c02449 100644
> --- a/elbepack/hdimg.py
> +++ b/elbepack/hdimg.py
> @@ -15,11 +15,11 @@ import parted
>  import _ped
>  
>  from elbepack.fstab import fstabentry, mountpoint_dict
> -from elbepack.asciidoclog import CommandError
>  from elbepack.filesystem import size_to_int
> +from elbepack.shellhelper import do, CommandError
>  
>  
> -def mkfs_mtd(outf, mtd, fslabel, target):
> +def mkfs_mtd(mtd, fslabel, target):
>  
>      # generated files
>      img_files = []
> @@ -43,7 +43,7 @@ def mkfs_mtd(outf, mtd, fslabel, target):
>              continue
>  
>          try:
> -            outf.do("mkfs.ubifs -r %s -o %s.ubifs -m %s -e %s -c %s %s" % (
> +            do("mkfs.ubifs -r %s -o %s.ubifs -m %s -e %s -c %s %s" % (
>                  os.path.join(target, "filesystems", fslabel[label].id),
>                  os.path.join(target, label),
>                  ubivg.text("miniosize"),
> @@ -59,7 +59,7 @@ def mkfs_mtd(outf, mtd, fslabel, target):
>      return img_files
>  
>  
> -def build_image_mtd(outf, mtd, target):
> +def build_image_mtd(mtd, target):
>  
>      # pylint: disable=too-many-branches
>  
> @@ -87,7 +87,7 @@ def build_image_mtd(outf, mtd, target):
>                      # copy from project directory
>                      else:
>                          tmp = target + "/" + vol.text("binary")
> -                    outf.do(
> +                    do(
>                          "cp %s %s/%s.ubibin" %
>                          (tmp, target, vol.text("label")))
>                      img_files.append(vol.text("label") + ".ubibin")
> @@ -125,7 +125,7 @@ def build_image_mtd(outf, mtd, target):
>          subp = ""
>  
>      try:
> -        outf.do("ubinize %s -o %s -p %s -m %s %s/%s_%s.cfg" % (
> +        do("ubinize %s -o %s -p %s -m %s %s/%s_%s.cfg" % (
>              subp,
>              os.path.join(target, mtd.text("name")),
>              ubivg.text("physicaleraseblocksize"),
> @@ -144,8 +144,7 @@ def build_image_mtd(outf, mtd, target):
>  
>  
>  class grubinstaller_base(object):
> -    def __init__(self, outf, fw_type=None):
> -        self.outf = outf
> +    def __init__(self, fw_type=None):
>          self.root = None
>          self.boot = None
>          self.boot_efi = None
> @@ -173,77 +172,77 @@ class grubinstaller202(grubinstaller_base):
>  
>          imagemnt = os.path.join(target, "imagemnt")
>          try:
> -            self.outf.do('cp -a /dev/loop0 /dev/poop0')
> +            do('cp -a /dev/loop0 /dev/poop0')
>  
> -            self.outf.do('losetup /dev/poop0 "%s"' % self.root.filename)
> -            self.outf.do('kpartx -as /dev/poop0')
> -            self.outf.do(
> +            do('losetup /dev/poop0 "%s"' % self.root.filename)
> +            do('kpartx -as /dev/poop0')
> +            do(
>                  'mount /dev/mapper/poop0p%d %s' %
>                  (self.root.partnum, imagemnt))
>  
>              if self.boot:
> -                self.outf.do(
> +                do(
>                      'mount /dev/mapper/poop0p%d %s' %
>                      (self.boot.partnum, os.path.join(
>                          imagemnt, "boot")))
>  
>              if self.boot_efi:
> -                self.outf.do(
> +                do(
>                      'mount /dev/mapper/poop0p%d %s' %
>                      (self.boot_efi.partnum, os.path.join(
>                          imagemnt, "boot/efi")))
>  
> -            self.outf.do(
> +            do(
>                  "mount --bind /dev %s" %
>                  os.path.join(
>                      imagemnt,
>                      "dev"))
> -            self.outf.do(
> +            do(
>                  "mount --bind /proc %s" %
>                  os.path.join(
>                      imagemnt,
>                      "proc"))
> -            self.outf.do(
> +            do(
>                  "mount --bind /sys %s" %
>                  os.path.join(
>                      imagemnt,
>                      "sys"))
>  
> -            self.outf.do('mkdir -p "%s"' % os.path.join(imagemnt, "boot/grub"))
> +            do('mkdir -p "%s"' % os.path.join(imagemnt, "boot/grub"))
>  
>              devmap = open(os.path.join(imagemnt, "boot/grub/device.map"), "w")
>              devmap.write("(hd0) /dev/poop0\n")
>              devmap.close()
>  
> -            self.outf.do("chroot %s  update-initramfs -u -k all" % imagemnt)
> -            self.outf.do("chroot %s  update-grub2" % imagemnt)
> +            do("chroot %s  update-initramfs -u -k all" % imagemnt)
> +            do("chroot %s  update-grub2" % imagemnt)
>  
>              if self.fw_type == "efi" or self.fw_type == "hybrid":
> -                self.outf.do(
> +                do(
>                      "chroot %s grub-install --target=x86_64-efi --removable "
>                      "--no-floppy /dev/poop0" %
>                      (imagemnt))
>              if self.fw_type == "hybrid" or self.fw_type is None:
>                  # when we are in hybrid mode, install grub also into MBR
> -                self.outf.do(
> +                do(
>                      "chroot %s grub-install --no-floppy /dev/poop0" %
>                      (imagemnt))
>  
>          finally:
>              os.unlink(os.path.join(imagemnt, "boot/grub/device.map"))
> -            self.outf.do(
> +            do(
>                  "umount %s" %
>                  os.path.join(
>                      imagemnt,
>                      "dev"),
>                  allow_fail=True)
> -            self.outf.do(
> +            do(
>                  "umount %s" %
>                  os.path.join(
>                      imagemnt,
>                      "proc"),
>                  allow_fail=True)
> -            self.outf.do(
> +            do(
>                  "umount %s" %
>                  os.path.join(
>                      imagemnt,
> @@ -251,21 +250,21 @@ class grubinstaller202(grubinstaller_base):
>                  allow_fail=True)
>  
>              if self.boot_efi:
> -                self.outf.do(
> +                do(
>                      'umount /dev/mapper/poop0p%d' %
>                      self.boot_efi.partnum, allow_fail=True)
>  
>              if self.boot:
> -                self.outf.do(
> +                do(
>                      'umount /dev/mapper/poop0p%d' %
>                      self.boot.partnum, allow_fail=True)
>  
> -            self.outf.do(
> +            do(
>                  'umount /dev/mapper/poop0p%d' %
>                  self.root.partnum, allow_fail=True)
>  
> -            self.outf.do('kpartx -d /dev/poop0', allow_fail=True)
> -            self.outf.do("losetup -d /dev/poop0", allow_fail=True)
> +            do('kpartx -d /dev/poop0', allow_fail=True)
> +            do("losetup -d /dev/poop0", allow_fail=True)
>  
>  
>  class grubinstaller199(grubinstaller_base):
> @@ -276,17 +275,17 @@ class grubinstaller199(grubinstaller_base):
>  
>          imagemnt = os.path.join(target, "imagemnt")
>          try:
> -            self.outf.do('cp -a /dev/loop0 /dev/poop0')
> -            self.outf.do('cp -a /dev/loop1 /dev/poop1')
> -            self.outf.do('cp -a /dev/loop2 /dev/poop2')
> +            do('cp -a /dev/loop0 /dev/poop0')
> +            do('cp -a /dev/loop1 /dev/poop1')
> +            do('cp -a /dev/loop2 /dev/poop2')
>  
> -            self.outf.do('losetup /dev/poop0 "%s"' % self.root.filename)
> -            self.root.losetup(self.outf, "poop1")
> -            self.outf.do('mount /dev/poop1 %s' % imagemnt)
> +            do('losetup /dev/poop0 "%s"' % self.root.filename)
> +            self.root.losetup("poop1")
> +            do('mount /dev/poop1 %s' % imagemnt)
>  
>              if self.boot:
> -                self.boot.losetup(self.outf, "poop2")
> -                self.outf.do('mount /dev/poop2 %s' %
> +                self.boot.losetup("poop2")
> +                do('mount /dev/poop2 %s' %
>                               (os.path.join(imagemnt, "boot")))
>  
>              devmap = open(os.path.join(imagemnt, "boot/grub/device.map"), "w")
> @@ -297,59 +296,59 @@ class grubinstaller199(grubinstaller_base):
>  
>              devmap.close()
>  
> -            self.outf.do(
> +            do(
>                  "mount --bind /dev %s" %
>                  os.path.join(
>                      imagemnt,
>                      "dev"))
> -            self.outf.do(
> +            do(
>                  "mount --bind /proc %s" %
>                  os.path.join(
>                      imagemnt,
>                      "proc"))
> -            self.outf.do(
> +            do(
>                  "mount --bind /sys %s" %
>                  os.path.join(
>                      imagemnt,
>                      "sys"))
>  
> -            self.outf.do("chroot %s  update-initramfs -u -k all" % imagemnt)
> -            self.outf.do("chroot %s  update-grub2" % imagemnt)
> +            do("chroot %s  update-initramfs -u -k all" % imagemnt)
> +            do("chroot %s  update-grub2" % imagemnt)
>  
> -            self.outf.do(
> +            do(
>                  "chroot %s  grub-install --no-floppy /dev/loop0" %
>                  imagemnt)
>  
>          finally:
>              os.unlink(os.path.join(imagemnt, "boot/grub/device.map"))
>  
> -            self.outf.do(
> +            do(
>                  "umount -l %s" %
>                  os.path.join(
>                      imagemnt,
>                      "dev"),
>                  allow_fail=True)
> -            self.outf.do(
> +            do(
>                  "umount -l %s" %
>                  os.path.join(
>                      imagemnt,
>                      "proc"),
>                  allow_fail=True)
> -            self.outf.do(
> +            do(
>                  "umount -l %s" %
>                  os.path.join(
>                      imagemnt,
>                      "sys"),
>                  allow_fail=True)
>  
> -            self.outf.do("losetup -d /dev/poop0", allow_fail=True)
> +            do("losetup -d /dev/poop0", allow_fail=True)
>  
>              if self.boot:
> -                self.outf.do('umount /dev/poop2', allow_fail=True)
> -                self.outf.do('losetup -d /dev/poop2', allow_fail=True)
> +                do('umount /dev/poop2', allow_fail=True)
> +                do('losetup -d /dev/poop2', allow_fail=True)
>  
> -            self.outf.do('umount /dev/poop1', allow_fail=True)
> -            self.outf.do('losetup -d /dev/poop1', allow_fail=True)
> +            do('umount /dev/poop1', allow_fail=True)
> +            do('losetup -d /dev/poop1', allow_fail=True)
>  
>  
>  class simple_fstype(object):
> @@ -399,7 +398,7 @@ def create_partition(
>      return ppart
>  
>  
> -def create_label(outf, disk, part, ppart, fslabel, target, grub):
> +def create_label(disk, part, ppart, fslabel, target, grub):
>  
>      # pylint: disable=too-many-arguments
>  
> @@ -413,33 +412,31 @@ def create_label(outf, disk, part, ppart, fslabel, target, grub):
>      elif entry.mountpoint == "/boot/efi":
>          grub.set_boot_efi_entry(entry)
>  
> -    entry.losetup(outf, "loop0")
> -    outf.do(
> +    entry.losetup("loop0")
> +    do(
>          'mkfs.%s %s %s /dev/loop0' %
>          (entry.fstype,
>           entry.mkfsopt,
>           entry.get_label_opt()))
>  
> -    outf.do('mount /dev/loop0 %s' % os.path.join(target, "imagemnt"))
> -    outf.do(
> +    do('mount /dev/loop0 %s' % os.path.join(target, "imagemnt"))
> +    do(
>          'cp -a "%s/." "%s/"' %
>          (os.path.join(
>              target, "filesystems", entry.id), os.path.join(
>              target, "imagemnt")), allow_fail=True)
> -    outf.do('umount /dev/loop0')
> -    outf.do('losetup -d /dev/loop0')
> +    do('umount /dev/loop0')
> +    do('losetup -d /dev/loop0')
>  
>      return ppart
>  
>  
> -def create_logical_partitions(
> -        outf,
> -        disk,
> -        extended,
> -        epart,
> -        fslabel,
> -        target,
> -        grub):
> +def create_logical_partitions(disk,
> +                              extended,
> +                              epart,
> +                              fslabel,
> +                              target,
> +                              grub):
>  
>      # pylint: disable=too-many-arguments
>  
> @@ -459,12 +456,12 @@ def create_logical_partitions(
>              size_in_sectors,
>              current_sector)
>          if logical.has("label") and logical.text("label") in fslabel:
> -            create_label(outf, disk, logical, lpart, fslabel, target, grub)
> +            create_label(disk, logical, lpart, fslabel, target, grub)
>  
>          current_sector += lpart.getLength()
>  
>  
> -def do_image_hd(outf, hd, fslabel, target, grub_version, grub_fw_type=None):
> +def do_image_hd(hd, fslabel, target, grub_version, grub_fw_type=None):
>  
>      # pylint: disable=too-many-arguments
>      # pylint: disable=too-many-locals
> @@ -475,7 +472,7 @@ def do_image_hd(outf, hd, fslabel, target, grub_version, grub_fw_type=None):
>      size_in_sectors = s / sector_size
>  
>      imagename = os.path.join(target, hd.text("name"))
> -    outf.do('rm -f "%s"' % imagename, allow_fail=True)
> +    do('rm -f "%s"' % imagename, allow_fail=True)
>      f = open(imagename, "wb")
>      f.truncate(size_in_sectors * sector_size)
>      f.close()
> @@ -487,15 +484,15 @@ def do_image_hd(outf, hd, fslabel, target, grub_version, grub_fw_type=None):
>          disk = parted.freshDisk(imag, "msdos")
>  
>      if grub_version == 199:
> -        grub = grubinstaller199(outf)
> +        grub = grubinstaller199()
>      elif grub_version == 202 and grub_fw_type == "efi":
> -        grub = grubinstaller202(outf, "efi")
> +        grub = grubinstaller202("efi")
>      elif grub_version == 202 and grub_fw_type == "hybrid":
> -        grub = grubinstaller202(outf, "hybrid")
> +        grub = grubinstaller202("hybrid")
>      elif grub_version == 202:
> -        grub = grubinstaller202(outf)
> +        grub = grubinstaller202()
>      else:
> -        grub = grubinstaller_base(outf)
> +        grub = grubinstaller_base()
>  
>      current_sector = 2048
>      for part in hd:
> @@ -509,7 +506,7 @@ def do_image_hd(outf, hd, fslabel, target, grub_version, grub_fw_type=None):
>                  size_in_sectors,
>                  current_sector)
>              if part.text("label") in fslabel:
> -                create_label(outf, disk, part, ppart, fslabel, target, grub)
> +                create_label(disk, part, ppart, fslabel, target, grub)
>          elif part.tag == "extended":
>              ppart = create_partition(
>                  disk,
> @@ -518,8 +515,8 @@ def do_image_hd(outf, hd, fslabel, target, grub_version, grub_fw_type=None):
>                  fslabel,
>                  size_in_sectors,
>                  current_sector)
> -            create_logical_partitions(
> -                outf, disk, part, ppart, fslabel, target, grub)
> +            create_logical_partitions(disk, part, ppart,
> +                                      fslabel, target, grub)
>          else:
>              continue
>  
> @@ -533,7 +530,7 @@ def do_image_hd(outf, hd, fslabel, target, grub_version, grub_fw_type=None):
>      return hd.text("name")
>  
>  
> -def add_binary_blob(outf, hd, target):
> +def add_binary_blob(hd, target):
>  
>      imagename = os.path.join(target, hd.text("name"))
>  
> @@ -559,14 +556,14 @@ def add_binary_blob(outf, hd, target):
>              # use file from /var/cache/elbe/<uuid> project dir
>              bf = os.path.join(target, binary.et.text)
>  
> -        outf.do('dd if="%s" of="%s" seek="%s" bs="%s" conv=notrunc' % (
> +        do('dd if="%s" of="%s" seek="%s" bs="%s" conv=notrunc' % (
>              bf,
>              imagename,
>              offset,
>              bs))
>  
>  
> -def do_hdimg(outf, xml, target, rfs, grub_version, grub_fw_type=None):
> +def do_hdimg(xml, target, rfs, grub_version, grub_fw_type=None):
>  
>      # pylint: disable=too-many-arguments
>      # pylint: disable=too-many-locals
> @@ -602,52 +599,48 @@ def do_hdimg(outf, xml, target, rfs, grub_version, grub_fw_type=None):
>      # create directories, where we want our
>      # filesystems later
>      fspath = os.path.join(target, "filesystems")
> -    outf.do('mkdir -p %s' % fspath)
> +    do('mkdir -p %s' % fspath)
>  
>      imagemnt = os.path.join(target, "imagemnt")
> -    outf.do('mkdir -p %s' % imagemnt)
> +    do('mkdir -p %s' % imagemnt)
>  
>      # now move all mountpoints into own directories
>      # begin from deepest mountpoints
>      for l in reversed(fslist):
> -        outf.do('mkdir -p "%s"' % os.path.join(fspath, l.id))
> -        outf.do('mkdir -p "%s"' % rfs.fname('') + l.mountpoint)
> +        do('mkdir -p "%s"' % os.path.join(fspath, l.id))
> +        do('mkdir -p "%s"' % rfs.fname('') + l.mountpoint)
>          if rfs.listdir(l.mountpoint):
> -            outf.do('mv "%s"/* "%s"' % (rfs.fname(l.mountpoint), os.path.join(
> +            do('mv "%s"/* "%s"' % (rfs.fname(l.mountpoint), os.path.join(
>                  fspath, l.id)), allow_fail=True)
>  
>      try:
>          # Now iterate over all images and create filesystems and partitions
>          for i in xml.tgt.node("images"):
>              if i.tag == "msdoshd":
> -                img = do_image_hd(
> -                    outf,
> -                    i,
> -                    fslabel,
> -                    target,
> -                    grub_version,
> -                    grub_fw_type)
> +                img = do_image_hd(i,
> +                                  fslabel,
> +                                  target,
> +                                  grub_version,
> +                                  grub_fw_type)
>                  img_files.append(img)
>  
>              if i.tag == "gpthd":
> -                img = do_image_hd(
> -                    outf,
> -                    i,
> -                    fslabel,
> -                    target,
> -                    grub_version,
> -                    grub_fw_type)
> +                img = do_image_hd(i,
> +                                  fslabel,
> +                                  target,
> +                                  grub_version,
> +                                  grub_fw_type)
>                  img_files.append(img)
>  
>              if i.tag == "mtd":
> -                imgs = mkfs_mtd(outf, i, fslabel, target)
> +                imgs = mkfs_mtd(i, fslabel, target)
>                  img_files.extend(imgs)
>      finally:
>          # Put back the filesystems into /target
>          # most shallow fs first...
>          for i in fslist:
>              if len(os.listdir(os.path.join(fspath, i.id))) > 0:
> -                outf.do(
> +                do(
>                      'mv "%s"/* "%s"' %
>                      (os.path.join(
>                          fspath, i.id), rfs.fname(
> @@ -656,13 +649,13 @@ def do_hdimg(outf, xml, target, rfs, grub_version, grub_fw_type=None):
>      # Files are now moved back. ubinize needs files in place, so we run it now.
>      for i in xml.tgt.node("images"):
>          if i.tag == "mtd":
> -            imgs = build_image_mtd(outf, i, target)
> +            imgs = build_image_mtd(i, target)
>              img_files.extend(imgs)
>  
>      # dd binary blobs onto images
>      for i in xml.tgt.node("images"):
>          if (i.tag == "msdoshd") or (i.tag == "gpthd"):
> -            add_binary_blob(outf, i, target)
> +            add_binary_blob(i, target)
>  
>      # use set() to remove duplicates, but
>      # return a list
> -- 
> 2.11.0
> 
> 
> _______________________________________________
> elbe-devel mailing list
> elbe-devel at linutronix.de
> https://lists.linutronix.de/mailman/listinfo/elbe-devel

-- 
Torben Hohn
Linutronix GmbH | Bahnhofstrasse 3 | D-88690 Uhldingen-Mühlhofen
Phone: +49 7556 25 999 18; Fax.: +49 7556 25 999 99

Hinweise zum Datenschutz finden Sie hier (Informations on data privacy 
can be found here): https://linutronix.de/kontakt/Datenschutz.php

Linutronix GmbH | Firmensitz (Registered Office): Uhldingen-Mühlhofen | 
Registergericht (Registration Court): Amtsgericht Freiburg i.Br., HRB700 
806 | Geschäftsführer (Managing Directors): Heinz Egger, Thomas Gleixner



More information about the elbe-devel mailing list