From 783118944874d559e30eea1600352e3feb5263a7 Mon Sep 17 00:00:00 2001
From: Andreas Wacknitz <A.Wacknitz@gmx.de>
Date: Sun, 31 Mar 2024 09:35:05 +0200
Subject: [PATCH] libcares: update to 1.28.0

---
 tools/userland-component |   52 ++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 48 insertions(+), 4 deletions(-)

diff --git a/tools/userland-component b/tools/userland-component
index 23e2de6..3d1afa6 100755
--- a/tools/userland-component
+++ b/tools/userland-component
@@ -1,4 +1,4 @@
-#!/usr/bin/python3.5
+#!/usr/bin/python3.9
 
 #
 # This file and its contents are supplied under the terms of the
@@ -51,6 +51,7 @@
             print("000: Fix include " + i.value())
             i.set_value(os.path.join(MK.directory_variable(subdir), mkfile+".mk"))
             mk.contents[i.line()] = i.include_line()
+    mk.update()
 
 
 #-----------------------------------------------------------------------------
@@ -112,13 +113,12 @@
                     new_targets[t] = u
                 break
         if not found:
-            # Some Python/Perl makefiles actually use NO_ARCH target with MK_BITS=32
-            if mk_bits == '32':
+            # Some Python/Perl makefiles actually use NO_ARCH target with MK_BITS=32, or BITS was not set
+            if mk_bits == '32' or mk_bits == '64':
                 ok_bits = ( 'NO_ARCH', '64', '32_and_64', '64_and_32' )
                 for b in ok_bits:
                     if u.value() == MK.target_value(t, b):
                         if not new_mk_bits:
-                            print("001: Changing make bits from '32' to '"+b+"'")
                             new_mk_bits = b
                         elif b != new_mk_bits:
                             raise ValueError("001: Inconsistent target '"+t+"': "+u.value())
@@ -126,6 +126,9 @@
                         break
             else:
                 raise ValueError("001: Unknown target '"+t+"' bitness: "+u.value())
+    if new_mk_bits:
+        print("001: Changing make bits from "+mk_bits+" to '"+new_mk_bits+"'")
+        mk_bits = new_mk_bits
     # Collect items
     rem_lines = set()
     rem_includes = [ MK.makefile_path("prep"), MK.makefile_path("ips")]
@@ -188,6 +191,44 @@
     mk.update()
 
 
+# Update rules
+#-----------------------------------------------------------------------------
+# U000: Update to default OpenSSL
+#       If openssl is a dependency and the openssl package version is not set
+#           1. update the dependency to the next openssl X.Y
+#           2. add macros USE_OPENSSLXY to the makefile 
+def update000(mk):
+    curr_version = '1.0'
+    next_version = '1.1'
+    curr_macro = 'USE_OPENSSL'+curr_version.replace('.','')
+    next_macro = 'USE_OPENSSL'+next_version.replace('.','')
+    curr_openssl_pkg = 'library/security/openssl'
+    next_openssl_pkg = 'library/security/openssl-11'
+    reqs = mk.required_packages()
+    has_openssl_deps=False
+    for p in reqs.split():
+        if p == curr_openssl_pkg:
+            has_openssl_deps=True
+    if not has_openssl_deps:
+        return
+    # Check whether current version is enforced
+    for line in iter(mk.contents):
+        if re.match("^"+curr_macro+"[\s]*=[\s]*yes", line):
+            return
+    print("U000: update to next openssl")
+    # Replace dependency
+    for idx, line in enumerate(mk.contents):
+        if re.match(r"REQUIRED_PACKAGES(.*)"+curr_openssl_pkg+"[\s]*$", line):
+            mk.contents[idx] = line.replace(curr_openssl_pkg, next_openssl_pkg)
+            break
+    # Add macro before shared-macros
+    include_shared_macros_mk = mk.get_mk_include('shared-macros')
+    if not include_shared_macros_mk:
+        raise ValueError('include shared_macros.mk not found')
+    mk.set_variable(next_macro, 'yes', include_shared_macros_mk.line())
+    mk.update()
+
+
 #-----------------------------------------------------------------------------
 # Update component makefile for revision or version bump 
 def update_component(path, version, verbose):
@@ -196,6 +237,9 @@
     if version is None:
         return
     mk = MK(path)
+    # Apply default update rules
+    update000(mk)
+    # Check current version
     if not mk.has_variable('COMPONENT_VERSION'):
         raise ValueError('COMPONENT_VERSION not found')
     newvers = str(version) 

--
Gitblit v1.9.3