chore: import verified syly2 maintenance baseline without embedded credentials
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
#!/usr/bin/env python3
|
||||
"""Apply only the three verified compilation fixes to an isolated source copy."""
|
||||
import difflib
|
||||
import hashlib
|
||||
import json
|
||||
import os
|
||||
from pathlib import Path
|
||||
import re
|
||||
import sys
|
||||
|
||||
os.umask(0o077)
|
||||
run = Path(sys.argv[1]).resolve()
|
||||
source = run / 'source'
|
||||
manifest = json.loads((run / 'source-manifest.json').read_text())
|
||||
changes = {
|
||||
'pom.xml': (
|
||||
b'${java.home}/lib/rt.jar;${java.home}/lib/jce.jar',
|
||||
b'${java.home}/lib/rt.jar${path.separator}${java.home}/lib/jce.jar',
|
||||
),
|
||||
'src/main/java/com/zzc/web/htoal/controller/HotelQuarterStatisticController.java': (
|
||||
b'import com.sun.org.apache.regexp.internal.recompile;\r\n', b'',
|
||||
),
|
||||
'src/main/java/com/zzc/web/travel/controller/InlandStatisticPageController.java': (
|
||||
b'import com.sun.org.apache.regexp.internal.recompile;\r\n', b'',
|
||||
),
|
||||
}
|
||||
patches = []
|
||||
for relative, (before, after) in changes.items():
|
||||
path = source / relative
|
||||
data = path.read_bytes()
|
||||
backup = run / 'artifacts/original-build-files' / relative
|
||||
if hashlib.sha256(data).hexdigest() == manifest[relative]:
|
||||
assert data.count(before) == 1, relative
|
||||
if relative.endswith('.java'):
|
||||
assert len(re.findall(rb'\brecompile\b', data)) == 1, relative
|
||||
backup.parent.mkdir(parents=True, exist_ok=True)
|
||||
backup.write_bytes(data)
|
||||
path.write_bytes(data.replace(before, after, 1))
|
||||
elif relative == 'pom.xml' and (run / 'artifacts/pom-original.xml').exists():
|
||||
original = (run / 'artifacts/pom-original.xml').read_bytes()
|
||||
assert hashlib.sha256(original).hexdigest() == manifest[relative]
|
||||
assert data == original.replace(before, after, 1)
|
||||
backup.parent.mkdir(parents=True, exist_ok=True)
|
||||
backup.write_bytes(original)
|
||||
else:
|
||||
assert backup.exists(), 'Unexpected source change: ' + relative
|
||||
assert hashlib.sha256(backup.read_bytes()).hexdigest() == manifest[relative]
|
||||
assert data == backup.read_bytes().replace(before, after, 1)
|
||||
patches.extend(difflib.unified_diff(
|
||||
backup.read_text().splitlines(keepends=True), path.read_text().splitlines(keepends=True),
|
||||
fromfile='a/' + relative, tofile='b/' + relative,
|
||||
))
|
||||
print('Compatibility fix verified:', relative)
|
||||
(run / 'artifacts/compatibility.patch').write_text(''.join(patches))
|
||||
Reference in New Issue
Block a user