123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275 |
- #!/usr/bin/env python3
- import datetime
- import hashlib
- import json
- import os
- from subprocess import Popen
- OPENMPT_VERSION_MAJORMAJOR = os.environ['OPENMPT_VERSION_MAJORMAJOR']
- OPENMPT_VERSION_MAJOR = os.environ['OPENMPT_VERSION_MAJOR']
- OPENMPT_VERSION_MINOR = os.environ['OPENMPT_VERSION_MINOR']
- OPENMPT_VERSION_MINORMINOR = os.environ['OPENMPT_VERSION_MINORMINOR']
- SVNVERSION = os.environ['SVNVERSION']
- IS_RELEASE = True if OPENMPT_VERSION_MINORMINOR == "00" else False
- if IS_RELEASE:
- download_base_url = "https://download.openmpt.org/archive/openmpt/"
- announcement_url = "https://openmpt.org/openmpt-" + OPENMPT_VERSION_MAJORMAJOR + "-" + OPENMPT_VERSION_MAJOR + "-" + OPENMPT_VERSION_MINOR + "-" + OPENMPT_VERSION_MINORMINOR + "-released"
- changelog_url = "https://openmpt.org/release_notes/History.txt"
- else:
- download_base_url = "https://builds.openmpt.org/builds/auto/openmpt/pkg.win/"
- announcement_url = "https://builds.openmpt.org/builds/auto/openmpt/pkg.win/"
- changelog_url = "https://source.openmpt.org/browse/openmpt/?op=revision&rev=" + SVNVERSION
- os.chdir(os.path.dirname(os.path.abspath(__file__)))
- os.chdir("..")
- plainversion = OPENMPT_VERSION_MAJORMAJOR + "." + OPENMPT_VERSION_MAJOR + "." + OPENMPT_VERSION_MINOR + "." + OPENMPT_VERSION_MINORMINOR
- version = OPENMPT_VERSION_MAJORMAJOR + "." + OPENMPT_VERSION_MAJOR + "." + OPENMPT_VERSION_MINOR + "." + OPENMPT_VERSION_MINORMINOR if IS_RELEASE else OPENMPT_VERSION_MAJORMAJOR + "." + OPENMPT_VERSION_MAJOR + "." + OPENMPT_VERSION_MINOR + "." + OPENMPT_VERSION_MINORMINOR + "-" + SVNVERSION
- def hash_file_sha512(filename):
- sha512 = hashlib.sha512()
- with open(filename, "rb") as f:
- sha512.update(f.read())
- return sha512.hexdigest()
- def hash_file_sha3_512(filename):
- sha3_512 = hashlib.sha3_512()
- with open(filename, "rb") as f:
- sha3_512.update(f.read())
- return sha3_512.hexdigest()
- update = {
- "url": download_base_url + OPENMPT_VERSION_MAJORMAJOR + "." + OPENMPT_VERSION_MAJOR + "/OpenMPT-" + version + "-Setup.exe",
- "checksums": {
- "SHA-512": hash_file_sha512("installer/OpenMPT-" + plainversion + "-Setup.exe"),
- "SHA3-512": hash_file_sha3_512("installer/OpenMPT-" + plainversion + "-Setup.exe"),
- },
- "filename": "OpenMPT-" + version + "-Setup.exe",
- "autoupdate_installer": {
- "arguments": [ "/SP-", "/SILENT", "/NOCANCEL", "/AUTOUPDATE=yes" ]
- },
- "autoupdate_archive": None
- }
- with open("installer/" + "OpenMPT-" + OPENMPT_VERSION_MAJORMAJOR + "." + OPENMPT_VERSION_MAJOR + "." + OPENMPT_VERSION_MINOR + "." + OPENMPT_VERSION_MINORMINOR + "-Setup.update.json", "wb") as f:
- f.write((json.dumps(update, ensure_ascii=False, indent=1)).encode('utf-8'))
- f.close()
- update = {
- "url": download_base_url + OPENMPT_VERSION_MAJORMAJOR + "." + OPENMPT_VERSION_MAJOR + "/OpenMPT-" + version + "-portable-x86.zip",
- "checksums": {
- "SHA-512": hash_file_sha512("installer/OpenMPT-" + plainversion + "-portable-x86.zip"),
- "SHA3-512": hash_file_sha3_512("installer/OpenMPT-" + plainversion + "-portable-x86.zip"),
- },
- "filename": "OpenMPT-" + version + "-portable-x86.zip",
- "autoupdate_installer": None,
- "autoupdate_archive": {
- "subfolder": "",
- "restartbinary": "OpenMPT.exe"
- }
- }
- with open("installer/" + "OpenMPT-" + OPENMPT_VERSION_MAJORMAJOR + "." + OPENMPT_VERSION_MAJOR + "." + OPENMPT_VERSION_MINOR + "." + OPENMPT_VERSION_MINORMINOR + "-portable-x86.update.json", "wb") as f:
- f.write((json.dumps(update, ensure_ascii=False, indent=1)).encode('utf-8'))
- f.close()
- update = {
- "url": download_base_url + OPENMPT_VERSION_MAJORMAJOR + "." + OPENMPT_VERSION_MAJOR + "/OpenMPT-" + version + "-portable-x86-legacy.zip",
- "checksums": {
- "SHA-512": hash_file_sha512("installer/OpenMPT-" + plainversion + "-portable-x86-legacy.zip"),
- "SHA3-512": hash_file_sha3_512("installer/OpenMPT-" + plainversion + "-portable-x86-legacy.zip"),
- },
- "filename": "OpenMPT-" + version + "-portable-x86-legacy.zip",
- "autoupdate_installer": None,
- "autoupdate_archive": {
- "subfolder": "",
- "restartbinary": "OpenMPT.exe"
- }
- }
- with open("installer/" + "OpenMPT-" + OPENMPT_VERSION_MAJORMAJOR + "." + OPENMPT_VERSION_MAJOR + "." + OPENMPT_VERSION_MINOR + "." + OPENMPT_VERSION_MINORMINOR + "-portable-x86-legacy.update.json", "wb") as f:
- f.write((json.dumps(update, ensure_ascii=False, indent=1)).encode('utf-8'))
- f.close()
- update = {
- "url": download_base_url + OPENMPT_VERSION_MAJORMAJOR + "." + OPENMPT_VERSION_MAJOR + "/OpenMPT-" + version + "-portable-amd64.zip",
- "checksums": {
- "SHA-512": hash_file_sha512("installer/OpenMPT-" + plainversion + "-portable-amd64.zip"),
- "SHA3-512": hash_file_sha3_512("installer/OpenMPT-" + plainversion + "-portable-amd64.zip"),
- },
- "filename": "OpenMPT-" + version + "-portable-amd64.zip",
- "autoupdate_installer": None,
- "autoupdate_archive": {
- "subfolder": "",
- "restartbinary": "OpenMPT.exe"
- }
- }
- with open("installer/" + "OpenMPT-" + OPENMPT_VERSION_MAJORMAJOR + "." + OPENMPT_VERSION_MAJOR + "." + OPENMPT_VERSION_MINOR + "." + OPENMPT_VERSION_MINORMINOR + "-portable-amd64.update.json", "wb") as f:
- f.write((json.dumps(update, ensure_ascii=False, indent=1)).encode('utf-8'))
- f.close()
- update = {
- "url": download_base_url + OPENMPT_VERSION_MAJORMAJOR + "." + OPENMPT_VERSION_MAJOR + "/OpenMPT-" + version + "-portable-amd64-legacy.zip",
- "checksums": {
- "SHA-512": hash_file_sha512("installer/OpenMPT-" + plainversion + "-portable-amd64-legacy.zip"),
- "SHA3-512": hash_file_sha3_512("installer/OpenMPT-" + plainversion + "-portable-amd64-legacy.zip"),
- },
- "filename": "OpenMPT-" + version + "-portable-amd64-legacy.zip",
- "autoupdate_installer": None,
- "autoupdate_archive": {
- "subfolder": "",
- "restartbinary": "OpenMPT.exe"
- }
- }
- with open("installer/" + "OpenMPT-" + OPENMPT_VERSION_MAJORMAJOR + "." + OPENMPT_VERSION_MAJOR + "." + OPENMPT_VERSION_MINOR + "." + OPENMPT_VERSION_MINORMINOR + "-portable-amd64-legacy.update.json", "wb") as f:
- f.write((json.dumps(update, ensure_ascii=False, indent=1)).encode('utf-8'))
- f.close()
- update = {
- "url": download_base_url + OPENMPT_VERSION_MAJORMAJOR + "." + OPENMPT_VERSION_MAJOR + "/OpenMPT-" + version + "-portable-arm.zip",
- "checksums": {
- "SHA-512": hash_file_sha512("installer/OpenMPT-" + plainversion + "-portable-arm.zip"),
- "SHA3-512": hash_file_sha3_512("installer/OpenMPT-" + plainversion + "-portable-arm.zip"),
- },
- "filename": "OpenMPT-" + version + "-portable-arm.zip",
- "autoupdate_installer": None,
- "autoupdate_archive": {
- "subfolder": "",
- "restartbinary": "OpenMPT.exe"
- }
- }
- with open("installer/" + "OpenMPT-" + OPENMPT_VERSION_MAJORMAJOR + "." + OPENMPT_VERSION_MAJOR + "." + OPENMPT_VERSION_MINOR + "." + OPENMPT_VERSION_MINORMINOR + "-portable-arm.update.json", "wb") as f:
- f.write((json.dumps(update, ensure_ascii=False, indent=1)).encode('utf-8'))
- f.close()
- update = {
- "url": download_base_url + OPENMPT_VERSION_MAJORMAJOR + "." + OPENMPT_VERSION_MAJOR + "/OpenMPT-" + version + "-portable-arm64.zip",
- "checksums": {
- "SHA-512": hash_file_sha512("installer/OpenMPT-" + plainversion + "-portable-arm64.zip"),
- "SHA3-512": hash_file_sha3_512("installer/OpenMPT-" + plainversion + "-portable-arm64.zip"),
- },
- "filename": "OpenMPT-" + version + "-portable-arm64.zip",
- "autoupdate_installer": None,
- "autoupdate_archive": {
- "subfolder": "",
- "restartbinary": "OpenMPT.exe"
- }
- }
- with open("installer/" + "OpenMPT-" + OPENMPT_VERSION_MAJORMAJOR + "." + OPENMPT_VERSION_MAJOR + "." + OPENMPT_VERSION_MINOR + "." + OPENMPT_VERSION_MINORMINOR + "-portable-arm64.update.json", "wb") as f:
- f.write((json.dumps(update, ensure_ascii=False, indent=1)).encode('utf-8'))
- f.close()
- update = {
- "OpenMPT " + OPENMPT_VERSION_MAJORMAJOR + "." + OPENMPT_VERSION_MAJOR: {
- "version": version,
- "date": datetime.datetime.utcnow().isoformat(),
- "announcement_url": announcement_url,
- "changelog_url": changelog_url,
- "downloads": {
- "installer": {
- "url": download_base_url + OPENMPT_VERSION_MAJORMAJOR + "." + OPENMPT_VERSION_MAJOR + "/OpenMPT-" + version + "-Setup.update.json",
- "download_url": download_base_url + OPENMPT_VERSION_MAJORMAJOR + "." + OPENMPT_VERSION_MAJOR + "/OpenMPT-" + version + "-Setup.exe",
- "type": "installer",
- "can_autoupdate": True,
- "autoupdate_minversion": "1.30.00.08",
- "os": "windows",
- "required_windows_version": { "version_major":6, "version_minor":1, "servicepack_major":1, "servicepack_minor":0, "build":0, "wine_major":1, "wine_minor":8, "wine_update":0 },
- "required_architectures": { "x86":True },
- "supported_architectures": { "x86":True,"amd64":True,"arm":True,"arm64":True },
- "required_processor_features": { "x86":{"sse2":True}, "amd64":{"sse2":True} }
- },
- "portable-x86": {
- "url": download_base_url + OPENMPT_VERSION_MAJORMAJOR + "." + OPENMPT_VERSION_MAJOR + "/OpenMPT-" + version + "-portable-x86.update.json",
- "download_url": download_base_url + OPENMPT_VERSION_MAJORMAJOR + "." + OPENMPT_VERSION_MAJOR + "/OpenMPT-" + version + "-portable-x86.zip",
- "type": "archive",
- "can_autoupdate": True,
- "autoupdate_minversion": "1.30.00.08",
- "os": "windows",
- "required_windows_version": { "version_major":10, "version_minor":0, "servicepack_major":0, "servicepack_minor":0, "build":0, "wine_major":1, "wine_minor":8, "wine_update":0 },
- "required_architectures": {},
- "supported_architectures": { "x86":True },
- "required_processor_features": { "x86":{"sse2":True} }
- },
- "portable-x86-legacy": {
- "url": download_base_url + OPENMPT_VERSION_MAJORMAJOR + "." + OPENMPT_VERSION_MAJOR + "/OpenMPT-" + version + "-portable-x86-legacy.update.json",
- "download_url": download_base_url + OPENMPT_VERSION_MAJORMAJOR + "." + OPENMPT_VERSION_MAJOR + "/OpenMPT-" + version + "-portable-x86-legacy.zip",
- "type": "archive",
- "can_autoupdate": True,
- "autoupdate_minversion": "1.30.00.08",
- "os": "windows",
- "required_windows_version": { "version_major":6, "version_minor":1, "servicepack_major":0, "servicepack_minor":0, "build":0, "wine_major":1, "wine_minor":8, "wine_update":0 },
- "required_architectures": {},
- "supported_architectures": { "x86":True },
- "required_processor_features": { "x86":{"sse2":True} }
- },
- "portable-amd64": {
- "url": download_base_url + OPENMPT_VERSION_MAJORMAJOR + "." + OPENMPT_VERSION_MAJOR + "/OpenMPT-" + version + "-portable-amd64.update.json",
- "download_url": download_base_url + OPENMPT_VERSION_MAJORMAJOR + "." + OPENMPT_VERSION_MAJOR + "/OpenMPT-" + version + "-portable-amd64.zip",
- "type": "archive",
- "can_autoupdate": True,
- "autoupdate_minversion": "1.30.00.08",
- "os": "windows",
- "required_windows_version": { "version_major":10, "version_minor":0, "servicepack_major":0, "servicepack_minor":0, "build":0, "wine_major":1, "wine_minor":8, "wine_update":0 },
- "required_architectures": {},
- "supported_architectures": { "amd64":True },
- "required_processor_features": { "amd64":{"sse2":True} }
- },
- "portable-amd64-legacy": {
- "url": download_base_url + OPENMPT_VERSION_MAJORMAJOR + "." + OPENMPT_VERSION_MAJOR + "/OpenMPT-" + version + "-portable-amd64-legacy.update.json",
- "download_url": download_base_url + OPENMPT_VERSION_MAJORMAJOR + "." + OPENMPT_VERSION_MAJOR + "/OpenMPT-" + version + "-portable-amd64-legacy.zip",
- "type": "archive",
- "can_autoupdate": True,
- "autoupdate_minversion": "1.30.00.08",
- "os": "windows",
- "required_windows_version": { "version_major":6, "version_minor":1, "servicepack_major":0, "servicepack_minor":0, "build":0, "wine_major":1, "wine_minor":8, "wine_update":0 },
- "required_architectures": {},
- "supported_architectures": { "amd64":True },
- "required_processor_features": { "amd64":{"sse2":True} }
- },
- "portable-arm": {
- "url": download_base_url + OPENMPT_VERSION_MAJORMAJOR + "." + OPENMPT_VERSION_MAJOR + "/OpenMPT-" + version + "-portable-arm.update.json",
- "download_url": download_base_url + OPENMPT_VERSION_MAJORMAJOR + "." + OPENMPT_VERSION_MAJOR + "/OpenMPT-" + version + "-portable-arm.zip",
- "type": "archive",
- "can_autoupdate": True,
- "autoupdate_minversion": "1.30.00.08",
- "os": "windows",
- "required_windows_version": { "version_major":10, "version_minor":0, "servicepack_major":0, "servicepack_minor":0, "build":0, "wine_major":1, "wine_minor":8, "wine_update":0 },
- "required_architectures": {},
- "supported_architectures": { "arm":True },
- "required_processor_features": { "arm":{} }
- },
- "portable-arm64": {
- "url": download_base_url + OPENMPT_VERSION_MAJORMAJOR + "." + OPENMPT_VERSION_MAJOR + "/OpenMPT-" + version + "-portable-arm64.update.json",
- "download_url": download_base_url + OPENMPT_VERSION_MAJORMAJOR + "." + OPENMPT_VERSION_MAJOR + "/OpenMPT-" + version + "-portable-arm64.zip",
- "type": "archive",
- "can_autoupdate": True,
- "autoupdate_minversion": "1.30.00.08",
- "os": "windows",
- "required_windows_version": { "version_major":10, "version_minor":0, "servicepack_major":0, "servicepack_minor":0, "build":0, "wine_major":1, "wine_minor":8, "wine_update":0 },
- "required_architectures": {},
- "supported_architectures": { "arm64":True },
- "required_processor_features": { "arm64":{} }
- }
- }
- }
- }
- with open("installer/" + "OpenMPT-" + OPENMPT_VERSION_MAJORMAJOR + "." + OPENMPT_VERSION_MAJOR + "." + OPENMPT_VERSION_MINOR + "." + OPENMPT_VERSION_MINORMINOR + "-update.json", "wb") as f:
- f.write((json.dumps(update, ensure_ascii=False, indent=1)).encode('utf-8'))
- f.close()
- def sign_file(filename):
- p = Popen(["bin/release/vs2019-win7-static/amd64/updatesigntool.exe", "sign", "jws", "auto", filename, filename + ".jws.json"])
- p.communicate()
- sign_file("installer/" + "OpenMPT-" + OPENMPT_VERSION_MAJORMAJOR + "." + OPENMPT_VERSION_MAJOR + "." + OPENMPT_VERSION_MINOR + "." + OPENMPT_VERSION_MINORMINOR + "-Setup.update.json")
- sign_file("installer/" + "OpenMPT-" + OPENMPT_VERSION_MAJORMAJOR + "." + OPENMPT_VERSION_MAJOR + "." + OPENMPT_VERSION_MINOR + "." + OPENMPT_VERSION_MINORMINOR + "-portable-x86.update.json")
- sign_file("installer/" + "OpenMPT-" + OPENMPT_VERSION_MAJORMAJOR + "." + OPENMPT_VERSION_MAJOR + "." + OPENMPT_VERSION_MINOR + "." + OPENMPT_VERSION_MINORMINOR + "-portable-x86-legacy.update.json")
- sign_file("installer/" + "OpenMPT-" + OPENMPT_VERSION_MAJORMAJOR + "." + OPENMPT_VERSION_MAJOR + "." + OPENMPT_VERSION_MINOR + "." + OPENMPT_VERSION_MINORMINOR + "-portable-amd64.update.json")
- sign_file("installer/" + "OpenMPT-" + OPENMPT_VERSION_MAJORMAJOR + "." + OPENMPT_VERSION_MAJOR + "." + OPENMPT_VERSION_MINOR + "." + OPENMPT_VERSION_MINORMINOR + "-portable-amd64-legacy.update.json")
- sign_file("installer/" + "OpenMPT-" + OPENMPT_VERSION_MAJORMAJOR + "." + OPENMPT_VERSION_MAJOR + "." + OPENMPT_VERSION_MINOR + "." + OPENMPT_VERSION_MINORMINOR + "-portable-arm.update.json")
- sign_file("installer/" + "OpenMPT-" + OPENMPT_VERSION_MAJORMAJOR + "." + OPENMPT_VERSION_MAJOR + "." + OPENMPT_VERSION_MINOR + "." + OPENMPT_VERSION_MINORMINOR + "-portable-arm64.update.json")
- pdumpkey = Popen(["bin/release/vs2019-win7-static/amd64/updatesigntool.exe", "dumpkey", "auto", "installer/" + "OpenMPT-" + OPENMPT_VERSION_MAJORMAJOR + "." + OPENMPT_VERSION_MAJOR + "." + OPENMPT_VERSION_MINOR + "." + OPENMPT_VERSION_MINORMINOR + "-update-publickey.jwk.json"])
- pdumpkey.communicate()
|