add squashfsoptions_maxsize option for squashfs file system
authorbiao716.wang <biao716.wang@samsung.com>
Tue, 16 Aug 2022 08:13:01 +0000 (17:13 +0900)
committerbiao716.wang <biao716.wang@samsung.com>
Tue, 16 Aug 2022 08:13:01 +0000 (17:13 +0900)
Change-Id: I5abad6e41f85055399e5a1681734c64feb32071f
Signed-off-by: biao716.wang <biao716.wang@samsung.com>
mic/imager/loop.py
mic/kickstart/custom_commands/partition.py

index 27ac06a..ed0dced 100755 (executable)
@@ -16,6 +16,7 @@
 # Temple Place - Suite 330, Boston, MA 02111-1307, USA.
 
 import os
+import sys
 import glob
 import shutil
 
@@ -170,6 +171,7 @@ class LoopImageCreator(BaseImageCreator):
                     'f2fsopts': part.f2fsopts or None,
                     'vdfsopts': part.vdfsopts or None,
                     'squashfsopts': part.squashfsopts or None,
+                    'squashfsoptions_maxsize': part.squashfsoptions_maxsize or None,
                     'cpioopts': part.cpioopts or None,
                     'loop': None,  # to be created in _mount_instroot
                     'uuid': part.uuid or None,
@@ -455,6 +457,13 @@ class LoopImageCreator(BaseImageCreator):
                     else:
                         runner.show("%s " % args)
 
+                    if item['squashfsoptions_maxsize']:
+                        squashfsoptions_maxsize=int(item['squashfsoptions_maxsize']) * 1024 * 1024
+                        imgsize = os.stat(self._imgdir+"/"+item['label']+fs_suffix).st_size
+                        if imgsize > squashfsoptions_maxsize:
+                            msger.error("squashfs img size is too large (%d > %d)" % (imgsize, squashfsoptions_maxsize))
+                            sys.exit()
+
                 if item['aft_fstype'] == "vdfs":
                     ##FIXME temporary code - replace this with fs.mkvdfs()
                     if item['vdfsopts']:
index cf941d3..250875b 100755 (executable)
@@ -32,6 +32,7 @@ class Mic_PartData(FC4_PartData):
         self.exclude_image = kwargs.get("exclude_from_image", False)
         self.vdfsopts = kwargs.get("vdfsopts", None)
         self.squashfsopts = kwargs.get("squashfsopts", None)
+        self.squashfsoptions_maxsize = kwargs.get("squashfsoptions_maxsize", None)
         self.cpioopts = kwargs.get("cpioopts", None)
         self.no_shrink = kwargs.get("no_shrink", False)
         self.init_expand = kwargs.get("init_expand", False)
@@ -55,6 +56,8 @@ class Mic_PartData(FC4_PartData):
             retval += " --vdfsoptions=%s" % self.vdfsopts
         if self.squashfsopts:
             retval += " --squashfsoptions=%s" % self.squashfsopts
+        if self.squashfsoptions_maxsize:
+            retval += " --squashfsoptions_maxsize=%s" % self.squashfsoptions_maxsize
         if self.cpioopts:
             retval += " --cpiooptions=%s" % self.cpioopts
         if self.no_shrink:
@@ -86,6 +89,8 @@ class Mic_Partition(FC4_Partition):
                       default=None, version=FC4, help='vdfsoptions')
         op.add_argument("--squashfsoptions", type=str, action="store", dest="squashfsopts",
                       default=None, version=FC4, help='squashfsoptions')
+        op.add_argument("--squashfsoptions_maxsize", type=str, action="store", dest="squashfsoptions_maxsize",
+                       default=None, version=FC4, help='squashfsoptions_maxsiz')
         op.add_argument("--cpiooptions", type=str, action="store", dest="cpioopts",
                       default=None, version=FC4, help='cpiooptions')
         op.add_argument("--no-shrink", action="store_true", dest="no_shrink", default=False, version=FC4, help='no-shrink')