Commit 22d47c01 authored by akwizgran's avatar akwizgran

Merge branch 'shuffle-fs' into 'master'

Make deterministic filesystem non-deterministic

See merge request !2
parents 50cb03c0 2eae1e69
Pipeline #3881 passed with stage
in 6 minutes and 9 seconds
......@@ -30,7 +30,7 @@ test_success:
# Consider adding the cap and the device directly to the CI config
- docker run --cap-add SYS_ADMIN --device /dev/fuse ${TEST_IMAGE} ./ release-1.0.12
- docker run --cap-add SYS_ADMIN --device /dev/fuse ${TEST_IMAGE} ./ release-1.1.7
- triggers
......@@ -3,7 +3,7 @@ FROM debian:stretch
ENV DEBIAN_FRONTEND=noninteractive
ENV ANDROID_HOME=/opt/android-sdk
WORKDIR /opt/briar-reproducer
......@@ -88,6 +88,12 @@ You can find a list of tags in Briar's
[source code repository](
The `SYS_ADMIN` capability and the `fuse` device are required,
so the container can build the app inside a `disorderfs`.
We hope to be able to drop this requirement
once this [upstream issue]( is fixed.
\ No newline at end of file
so the container can build the app inside a `disorderfs` which shuffles the filesystem.
## Historical Changes
* Before version `1.1.7`, Briar needed a deterministic files system
to work around an [Android build system bug](
which broke reproducibility.
An [old version of briar-reproducer](
can be used to verify these releases.
#!/usr/bin/env python3
import os
from subprocess import call, check_call, check_output
import sys
from subprocess import call, check_call, check_output
REPO_DIR = "briar"
......@@ -27,10 +27,10 @@ def main():
reference_apk = "briar-%s.apk" % version
check_call(['wget', '--no-verbose', url, '-O', reference_apk])
# use deterministic file system for building the app
# use non-deterministic file system for building the app to detect issues
if not os.path.exists(BUILD_DIR):
check_call(['disorderfs', '--sort-dirents=yes', '--reverse-dirents=no', REPO_DIR, BUILD_DIR])
check_call(['disorderfs', '--shuffle-dirents=yes', REPO_DIR, BUILD_DIR])
# build the app
check_call(["./gradlew", "--no-daemon", GRADLE_TASK], cwd=BUILD_DIR)
......@@ -82,4 +82,4 @@ def fail(msg=""):
if __name__ == "__main__":
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment