From: Takuto Ikuta <tikuta@chromium.org>
Date: Mon, 24 May 2021 17:09:21 +0900
Subject: [PATCH] jinja2: make compiled template deterministic for python3

set() doesn't have deterministic iteration order, so need this to
have deterministic output from jinja2.

Bug: 1194274

diff -Naur a/compiler.py b/compiler.py
--- a/compiler.py	2021-10-05 23:41:45.774333282 +0900
+++ b/compiler.py	2021-10-06 16:46:08.082078686 +0900
@@ -468,7 +468,7 @@
             visitor.visit(node)
         for dependency in "filters", "tests":
             mapping = getattr(self, dependency)
-            for name in getattr(visitor, dependency):
+            for name in sorted(getattr(visitor, dependency)):
                 if name not in mapping:
                     mapping[name] = self.temporary_identifier()
                 self.writeline(
@@ -612,7 +612,7 @@
     def dump_local_context(self, frame):
         return "{%s}" % ", ".join(
             "%r: %s" % (name, target)
-            for name, target in iteritems(frame.symbols.dump_stores())
+            for name, target in sorted(iteritems(frame.symbols.dump_stores()))
         )
 
     def write_commons(self):
