libgcrypt: Revert from 1.7.4 to 1.7.3
[termux-packages] / scripts / buildorder.py
index fa02f7a..ac20e19 100755 (executable)
@@ -2,6 +2,7 @@
 # buildorder.py - script to generate a build order respecting package dependencies
 
 import os
+import re
 import sys
 
 from itertools import filterfalse
@@ -52,8 +53,9 @@ class TermuxBuildFile(object):
                 comma_deps = line[len(prefix):].replace('"', '')
 
                 return set([
-                    dep.strip() for dep in comma_deps.split(',')
-                    if 'libandroid-support' not in dep
+                    # Replace parenthesis to handle version qualifiers, as in "gcc (>= 5.0)":
+                    re.sub(r'\(.*?\)', '', dep).strip() for dep in comma_deps.split(',')
+                    if 'libandroid-support-dev' not in dep
                 ])
 
         # no deps found
@@ -70,10 +72,13 @@ class TermuxPackage(object):
         # search package build.sh
         build_sh_path = os.path.join(self.dir, 'build.sh')
         if not os.path.isfile(build_sh_path):
-            raise Exception("build.sh not found")
+            raise Exception("build.sh not found for package '" + name + "'")
 
         self.buildfile = TermuxBuildFile(build_sh_path)
         self.deps = self.buildfile._get_dependencies()
+        if 'libandroid-support' not in self.deps and self.name != 'libandroid-support':
+            # Every package may depend on libandroid-support without declaring it:
+            self.deps.add('libandroid-support')
 
         # search subpackages
         self.subpkgs = []
@@ -163,9 +168,8 @@ def generate_full_buildorder():
     if not leaf_pkgs:
         die('No package without dependencies - where to start?')
 
-    # Sort alphabetically, but with libandroid-support first (since dependency on libandroid-support
-    # does not need to be declared explicitly, so anything might in theory depend on it to build):
-    pkg_queue = sorted(leaf_pkgs, key=lambda p: '' if p.name == 'libandroid-support' else p.name)
+    # Sort alphabetically:
+    pkg_queue = sorted(leaf_pkgs, key=lambda p: p.name)
 
     # Topological sorting
     visited = set()