Changeset 260747 in webkit


Ignore:
Timestamp:
Apr 27, 2020 3:00:24 AM (4 years ago)
Author:
commit-queue@webkit.org
Message:

[Flatpak SDK] Regenerate toolchains only if new updates were downloaded
https://bugs.webkit.org/show_bug.cgi?id=210804

Patch by Philippe Normand <pnormand@igalia.com> on 2020-04-27
Reviewed by Žan Doberšek.

The SDK toolchain archives are now regenerated only if an actual
update was downloaded from the Flatpak repository. Some redundant
flatpak calls were removed as well, such as the GL extension and
Debug reinstalls that were happening during webkit-flatpak
updates.

  • flatpak/flatpakutils.py:

(FlatpakObject.flatpak):
(FlatpakRepo.init):
(WebkitFlatpak.main):
(WebkitFlatpak.setup_dev_env):

Location:
trunk/Tools
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Tools/ChangeLog

    r260746 r260747  
     12020-04-27  Philippe Normand  <pnormand@igalia.com>
     2
     3        [Flatpak SDK] Regenerate toolchains only if new updates were downloaded
     4        https://bugs.webkit.org/show_bug.cgi?id=210804
     5
     6        Reviewed by Žan Doberšek.
     7
     8        The SDK toolchain archives are now regenerated only if an actual
     9        update was downloaded from the Flatpak repository. Some redundant
     10        flatpak calls were removed as well, such as the GL extension and
     11        Debug reinstalls that were happening during webkit-flatpak
     12        updates.
     13
     14        * flatpak/flatpakutils.py:
     15        (FlatpakObject.flatpak):
     16        (FlatpakRepo.__init__):
     17        (WebkitFlatpak.main):
     18        (WebkitFlatpak.setup_dev_env):
     19
    1202020-04-27  Philippe Normand  <pnormand@igalia.com>
    221
  • trunk/Tools/flatpak/flatpakutils.py

    r260746 r260747  
    157157        show_output = kwargs.pop("show_output", False)
    158158        comment = kwargs.pop("comment", None)
     159        gather_output = kwargs.get("gather_output", False)
    159160        if comment:
    160161            Console.message(comment)
    161162
    162163        command = ["flatpak", command]
    163         res = subprocess.check_output(command + ["--help"]).decode("utf-8")
    164         if self.user and "--user" in res:
     164        help_output = subprocess.check_output(command + ["--help"]).decode("utf-8")
     165        if self.user and "--user" in help_output:
    165166            command.append("--user")
    166         if "--assumeyes" in res:
     167        if "--assumeyes" in help_output:
    167168            command.append("--assumeyes")
     169        if "--noninteractive" and gather_output:
     170            command.append("--noninteractive")
     171
    168172        command.extend(args)
    169173
     
    172176            return subprocess.check_output(command).decode("utf-8")
    173177
    174         return subprocess.check_call(command)
     178        if not gather_output:
     179            return subprocess.check_call(command)
     180        else:
     181            p = subprocess.Popen(command, stdout=subprocess.PIPE)
     182            output = p.communicate()
     183            return output
    175184
    176185
     
    273282
    274283        self._app_registry = {}
    275         output = self.flatpak("list", "--columns=application,branch,origin")
     284        output = self.flatpak("list", "--columns=application,branch", "-a")
    276285        for line in output.splitlines():
    277             name, branch, origin = line.split("\t")
    278             if origin != self.name:
    279                 continue
     286            name, branch = line.split("\t")
    280287            self._app_registry[name] = branch
    281288
     
    762769        if self.update:
    763770            repo = self.sdk_repo
    764             repo.flatpak("update", show_output=True, comment="Updating Flatpak %s environment" % self.build_type)
     771            update_output = repo.flatpak("update", gather_output=True, comment="Updating Flatpak %s environment" % self.build_type)
     772            regenerate_toolchains = update_output.find("Nothing to do") == -1
     773
    765774            for package in self._get_packages():
    766775                if package.name.startswith("org.webkit") and repo.is_app_installed(package.name) \
     
    769778                    shutil.rmtree(self.flatpak_build_path)
    770779                    self._reset_repository()
     780                    regenerate_toolchains = True
    771781                    break
    772782                elif not repo.is_app_installed(package.name):
    773783                    package.install()
     784                    regenerate_toolchains = True
     785        else:
     786            regenerate_toolchains = self.regenerate_toolchains
     787
     788        if regenerate_toolchains:
     789            self.icc_version = {}
     790            self.setup_icecc("gcc")
     791            self.setup_icecc("clang")
     792            self.save_config()
    774793
    775794        return self.setup_dev_env()
     
    810829        if not os.path.exists(os.path.join(self.flatpak_build_path, "runtime", "org.webkit.Sdk")) or self.update:
    811830            self.install_all()
    812             regenerate_toolchains = True
    813         else:
    814             regenerate_toolchains = self.regenerate_toolchains
    815 
    816         if regenerate_toolchains:
    817             self.icc_version = {}
    818             self.setup_icecc("gcc")
    819             self.setup_icecc("clang")
    820             self.save_config()
    821831
    822832        if not self.update:
     
    834844
    835845            return self.run_in_sandbox(*self.user_command)
    836         elif not self.update and not self.build_gst:
     846        elif not self.update and not self.build_gst and not self.regenerate_toolchains:
    837847            return self.run_in_sandbox()
    838848
Note: See TracChangeset for help on using the changeset viewer.