Remove deterministic filesystem and make it non-deterministic instead

parent 50cb03c0
Pipeline #3341 passed with stages
in 10 minutes and 1 second
...@@ -30,7 +30,7 @@ test_success: ...@@ -30,7 +30,7 @@ test_success:
script: script:
# Consider adding the cap and the device directly to the CI config # Consider adding the cap and the device directly to the CI config
# https://docs.gitlab.com/runner/configuration/advanced-configuration.html#the-runners-docker-section # https://docs.gitlab.com/runner/configuration/advanced-configuration.html#the-runners-docker-section
- docker run --cap-add SYS_ADMIN --device /dev/fuse ${TEST_IMAGE} ./reproduce.py release-1.0.12 - docker run --cap-add SYS_ADMIN --device /dev/fuse ${TEST_IMAGE} ./reproduce.py release-1.1.7
except: except:
- triggers - triggers
......
...@@ -88,6 +88,12 @@ You can find a list of tags in Briar's ...@@ -88,6 +88,12 @@ You can find a list of tags in Briar's
[source code repository](https://code.briarproject.org/akwizgran/briar/tags). [source code repository](https://code.briarproject.org/akwizgran/briar/tags).
The `SYS_ADMIN` capability and the `fuse` device are required, The `SYS_ADMIN` capability and the `fuse` device are required,
so the container can build the app inside a `disorderfs`. so the container can build the app inside a `disorderfs` which shuffles the filesystem.
We hope to be able to drop this requirement
once this [upstream issue](https://issuetracker.google.com/issues/110237303) is fixed. ## Historical Changes
\ No newline at end of file
* Before version `1.1.7`, Briar needed a deterministic files system
to work around an [Android build system bug](https://issuetracker.google.com/issues/110237303)
which broke reproducibility.
An [old version of briar-reproducer](https://code.briarproject.org/briar/briar-reproducer/tags/pre-1.1.7)
can be used to verify these releases.
...@@ -27,10 +27,10 @@ def main(): ...@@ -27,10 +27,10 @@ def main():
reference_apk = "briar-%s.apk" % version reference_apk = "briar-%s.apk" % version
check_call(['wget', '--no-verbose', url, '-O', reference_apk]) 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): if not os.path.exists(BUILD_DIR):
os.makedirs(BUILD_DIR) os.makedirs(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 # build the app
check_call(["./gradlew", "--no-daemon", GRADLE_TASK], cwd=BUILD_DIR) check_call(["./gradlew", "--no-daemon", GRADLE_TASK], cwd=BUILD_DIR)
......
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