Skip to content
Snippets Groups Projects
Commit 8f29b18a authored by akwizgran's avatar akwizgran
Browse files

Merge branch 'macos' into 'master'

Build macOS artifacts

See merge request !12
parents 3cdbed55 82f2dc7b
No related branches found
No related tags found
1 merge request!12Build macOS artifacts
Pipeline #14560 passed
......@@ -40,6 +40,9 @@ def main():
build_windows(tool, versions)
package_windows(tool, versions)
build_macos(tool, versions)
package_macos(tool, versions)
def get_repo_dir(versions):
# This needs to be always the same path, otherwise it breaks reproducibility
......@@ -137,7 +140,13 @@ def build_windows(tool, versions):
build_desktop_arch(tool, versions, 'windows', 'x86_64', 'amd64')
def build_desktop_arch(tool, versions, platform, arch, goarch, goarm=None):
def build_macos(tool, versions):
os.mkdir(get_platform_output_dir(tool, 'macos'))
build_desktop_arch(tool, versions, 'darwin', 'x86_64', 'amd64', output_name = 'macos')
build_desktop_arch(tool, versions, 'darwin', 'aarch64', 'arm64', output_name = 'macos')
def build_desktop_arch(tool, versions, platform, arch, goarch, goarm=None, output_name=None):
env = os.environ.copy()
env['CGO_ENABLED'] = "0"
env['GOOS'] = platform
......@@ -145,8 +154,10 @@ def build_desktop_arch(tool, versions, platform, arch, goarch, goarm=None):
if goarm: env['GOARM'] = goarm
build_path = os.path.join('.', versions['build_path'])
print("Building %s for %s %s" % (tool, platform, arch))
output_dir = get_platform_output_dir(tool, platform)
if not output_name: output_name = platform
print("Building %s for %s %s" % (tool, output_name, arch))
output_dir = get_platform_output_dir(tool, output_name)
arch_dir = os.path.join(output_dir, arch)
os.mkdir(arch_dir)
extension = '.exe' if platform == 'windows' else ''
......@@ -186,6 +197,15 @@ def package_windows(tool, versions):
package(tool, versions, file_list, 'windows')
def package_macos(tool, versions):
output_dir = get_platform_output_dir(tool, 'macos')
file_list = [
os.path.join(output_dir, 'aarch64', tool),
os.path.join(output_dir, 'x86_64', tool),
]
package(tool, versions, file_list, 'macos')
def package(tool, versions, file_list, platform):
zip_file = get_final_file_path(tool, versions, platform)
zip_files(file_list, zip_file, versions)
......
......@@ -3,7 +3,7 @@ set -e
set -x
# use snapshot repos for deterministic package versions
DATE="20230209T000000Z"
DATE="20230509T000000Z"
cat << EOF > /etc/apt/sources.list
deb http://snapshot.debian.org/archive/debian/${DATE}/ bullseye main
deb http://snapshot.debian.org/archive/debian/${DATE}/ bullseye-updates main
......
<?xml version="1.0" encoding="UTF-8"?>
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>org.briarproject</groupId>
<artifactId>obfs4proxy-macos</artifactId>
<name>obfs4proxy-macos</name>
<version>VERSION</version>
<url>https://torproject.org</url>
<description>Repo for building obfs4proxy for macOS.</description>
<licenses>
<license>
<name>BSD-3-clause</name>
<url>https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/obfs4/-/blob/main/LICENSE</url>
</license>
</licenses>
<developers>
<developer>
<id>yawning</id>
<name>Yawning Angel</name>
<email>yawning at torproject dot org</email>
</developer>
<developer>
<id>torproject</id>
<name>Tor Project</name>
<email>frontdesk@rt.torproject.org</email>
</developer>
</developers>
<scm>
<connection>scm:https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/obfs4.git</connection>
<developerConnection>scm:git@gitlab.torproject.org:tpo/anti-censorship/pluggable-transports/obfs4.git</developerConnection>
<url>scm:https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/obfs4.git</url>
</scm>
</project>
<?xml version="1.0" encoding="UTF-8"?>
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>org.briarproject</groupId>
<artifactId>snowflake-macos</artifactId>
<name>snowflake-macos</name>
<version>VERSION</version>
<url>https://torproject.org</url>
<description>Repo for building snowflake for macOS.</description>
<licenses>
<license>
<name>BSD-3-clause</name>
<url>https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/blob/main/LICENSE</url>
</license>
</licenses>
<developers>
<developer>
<id>torproject</id>
<name>Tor Project</name>
<email>frontdesk@rt.torproject.org</email>
</developer>
</developers>
<scm>
<connection>scm:https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake.git</connection>
<developerConnection>scm:git@gitlab.torproject.org:tpo/anti-censorship/pluggable-transports/snowflake.git</developerConnection>
<url>scm:https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake.git</url>
</scm>
</project>
......@@ -14,7 +14,8 @@ def main():
verified_android = verify(tool, command_line_version, 'android')
verified_linux = verify(tool, command_line_version, 'linux')
verified_windows = verify(tool, command_line_version, 'windows')
if verified_android and verified_linux and verified_windows:
verified_macos = verify(tool, command_line_version, 'macos')
if verified_android and verified_linux and verified_windows and verified_macos:
sys.exit(0)
else:
sys.exit(1)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment