{"id":20640132,"url":"https://github.com/maresb/docker-build-veracrypt","last_synced_at":"2025-04-15T22:57:05.883Z","repository":{"id":107327031,"uuid":"247484918","full_name":"maresb/docker-build-veracrypt","owner":"maresb","description":"Reproducible VeraCrypt build for Ubuntu 20.04 with Docker","archived":false,"fork":false,"pushed_at":"2021-12-04T10:24:32.000Z","size":6952,"stargazers_count":4,"open_issues_count":0,"forks_count":2,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-04-15T22:56:55.998Z","etag":null,"topics":["build","docker","idrix","ubuntu","ubuntu2004","veracrypt","wxwidgets"],"latest_commit_sha":null,"homepage":"","language":"Dockerfile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/maresb.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-03-15T14:41:17.000Z","updated_at":"2022-03-10T07:15:40.000Z","dependencies_parsed_at":null,"dependency_job_id":"b6023bb3-ae15-4561-af7d-0d68ab3837b3","html_url":"https://github.com/maresb/docker-build-veracrypt","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maresb%2Fdocker-build-veracrypt","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maresb%2Fdocker-build-veracrypt/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maresb%2Fdocker-build-veracrypt/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maresb%2Fdocker-build-veracrypt/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/maresb","download_url":"https://codeload.github.com/maresb/docker-build-veracrypt/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249167439,"owners_count":21223505,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["build","docker","idrix","ubuntu","ubuntu2004","veracrypt","wxwidgets"],"created_at":"2024-11-16T15:28:03.973Z","updated_at":"2025-04-15T22:57:05.874Z","avatar_url":"https://github.com/maresb.png","language":"Dockerfile","funding_links":[],"categories":[],"sub_categories":[],"readme":"# docker-build-s3fs\n\n## This repository is obsolete\n\nThere are now [official downloads](https://veracrypt.fr/en/Downloads.html) for recent versions of Ubuntu provided by VeraCrypt. Please use those instead!\n\n#### Reproducible VeraCrypt build for Ubuntu 20.04 with Docker\n\n## Downloads\n\nIt's best to always check the [VeraCrypt official downloads](https://www.veracrypt.fr/en/Downloads.html) in case a more recent version has been released.\n\n### [Download the resulting binary and applicable licenses](builds/VeraCrypt_1.24-Update7) (rendered from [VeraCrypt_1.24-Update7](https://github.com/veracrypt/VeraCrypt/tree/VeraCrypt_1.24-Update7) release).\n\nIt's also recommended that you verify [your preferred checksum](#checksums).\n\n## Links\n\n- GitHub: https://github.com/maresb/docker-build-veracrypt\n- Docker Hub: https://hub.docker.com/repository/docker/maresb/docker-build-veracrypt\n- VeraCrypt GitHub: https://github.com/veracrypt/VeraCrypt\n- VeraCrypt official downloads: https://www.veracrypt.fr/en/Downloads.html\n\n## Legal\n\nThis Dockerfile is copyright © 2020 Ben Mares.  (For details, see [LICENSE](LICENSE).)  It builds VeraCrypt from source code. I am in no way affiliated with VeraCrypt, IDRIX or wxWidgets.\n\nBy using this Dockerfile, you agree to the terms of the following licenses.\n\nVeracrypt is copyright © 2013-2019 IDRIX, with contributions from several others.  For details, see the [VeraCrypt License](VeraCrypt_License.txt).\n\nVeraCrypt uses the wxWidgets library, which is copyright © 1998-2011 Julian Smart, Robert Roebling et al.  For details, see the [wxWindows Library License](wxWindows_Library_License.txt).\n\n\n## Introduction\n\nSince there is no official VeraCrypt binary for Ubuntu 20.04, users must either find a binary which they trust, or compile from source.  Trust is a touchy subject when it comes to encryption software (see [Motivation](#motivation)). Compiling from source is time-consuming and disk-consuming.  But thanks to Docker, you can easily verify my build by reproducing it yourself.\n\n## Motivation\n\nWhen it comes to encryption software, it's difficult to be too careful. (For example, I'd recommend reading about both Crypto AG and the suspicious end of TrueCrypt.)  Even for the official VeraCrypt downloads, there doesn't seem to be a good way to verify that those binaries actually correspond to the source code available on GitHub.  I find it more reassuring to compile from publicly available source code.  (Even if the source code is fine, that is no guarantee that the compiled binary is safe; for example, see \"Reflections on Trusting Trust\" by Ken Thompson.)\n\n## Challenge\n\nThere is only one real subtlety to achieving a reproducible build for VeraCrypt.  That is, that the wxWidgets 3.0 dependency uses the `__DATE__` and `__TIME__` preprocessor macros to store the compile time.  Version 3.1.1 of wxWidgets [introduced a reproducible build mode](https://github.com/wxWidgets/wxWidgets/commit/2f8a343b225e68d62f53c0908560f92b194a49c9), however VeraCrypt is only compatible with 3.0.  As a simple workaround, I replace all occurrences of `__DATE__` and `__TIME__` with a fixed value before preprocessing.\n\nNote: Perhaps it's possible to compile VeraCrypt against some `libwx` package from Ubuntu?  (I tried briefly but was unsuccessful.)\n\n## Build VeraCrypt with Docker\n\n### 1. Compile under Docker.\n\nComplete either a) or b) below.\n\n**a) Either compile locally**\n\nDownload `Dockerfile` and change to the corresponding directory.\n\n```\ngit clone https://github.com/maresb/docker-build-veracrypt.git \u0026\u0026 cd docker-build-veracrypt\n```\n\nThen build VeraCrypt.\n\n```\ndocker build -t build-veracrypt .\n```\n\n**b) Or grab a premade image from Docker Hub**\n\nPull the image from Docker Hub and retag:\n```\ndocker pull maresb/docker-build-veracrypt\ndocker image tag maresb/docker-build-veracrypt build-veracrypt\ndocker rmi maresb/docker-build-veracrypt\n```\n\n### 2. Copy the licenses and executables from the image via a temporary container.\n```\nid=$(docker create build-veracrypt)\ndocker cp $id:veracrypt .\ndocker cp $id:veracrypt_nogui .\ndocker cp $id:VeraCrypt_License.txt .\ndocker cp $id:wxWindows_Library_License.txt .\ndocker rm -v $id\n```\n\n### 3. Clean up (optional).\n\n```\ndocker rmi build-veracrypt\ndocker purge\n```\n\n### For debugging,\n\nIf the image successfully builds, you can tag the build stage and look inside with\n```\ndocker build -t build-veracrypt:build --target build .\ndocker run --rm -it build-veracrypt:build /bin/bash\n```\nOtherwise, in the output of a partial build, look for a line with an arrow directly followed by a hash such as\n```\n ---\u003e df7f92f1a162\n```\nThen you can look inside the image at the corresponding point with\n```\ndocker run --rm -it df7f92f1a162 /bin/bash\n```\n\n## Install any missing Ubuntu libraries\n\nIn case you are missing any libraries, the following command should install them.\n\nNormal version:\n```\nsudo apt-get install --no-install-recommends libfuse2 libgtk2.0-0 libsm6\n```\n\nNo-GUI version:\n```\nsudo apt-get install --no-install-recommends libfuse2\n```\n\n## Give it a try\n\nBy running VeraCrypt, you [agree to the licenses](#legal).\n\nYou should now be able to run `./veracrypt`, but you should\nverify the checksums below.\n\n## Install\n\nYou can install VeraCrypt with\n\n```\nsudo chmod a+x veracrypt\nsudo mv veracrypt /usr/bin/veracrypt\n```\n\nTo download and install the shortcut and icon,\n```\nsudo wget -O /usr/share/applications/veracrypt.desktop https://raw.githubusercontent.com/veracrypt/VeraCrypt/master/src/Setup/Linux/veracrypt.desktop\nsudo wget -O /usr/share/pixmaps/veracrypt.xpm https://raw.githubusercontent.com/veracrypt/VeraCrypt/master/src/Resources/Icons/VeraCrypt-256x256.xpm\n```\n\n# Checksums\n\n### `veracrypt` size and checksum\n\n    $ stat --printf=\"%s bytes\\n\" veracrypt\n    8046656 bytes\n\n    $ md5sum veracrypt\n    705c2c0cb9bc33e212c2a181eb91127f  veracrypt\n\n    $ sha256sum veracrypt\n    e762fddc32ca9575a53be39699f3825b8c490704acba650a9b687c841e708305  veracrypt\n\n    $ b2sum veracrypt\n    b7ef803ee2c46a8ccbea96813a6e97b097aa7114c556b39c2c70f4e85e84786c5d8b9dbefaafc45a2e209f15d306e670ab1dc484c30b387f750a3a1e1d8ec2fd  veracrypt\n\n### `veracrypt_nogui` size and checksum\n\n    $ stat --printf=\"%s bytes\\n\" veracrypt_nogui\n    3228416 bytes\n\n    $ md5sum veracrypt_nogui\n    761981c7bb5c7c1b3d2faece7d01e50b  veracrypt_nogui\n\n    $ sha256sum veracrypt_nogui\n    4cbf6245ee8f362fa438fcf4d88f116ce3db01be9783c6988c3d5c7b934be65f  veracrypt_nogui\n\n    $ b2sum veracrypt_nogui\n    deb447b78fc859733ea5922f578d2b37617e850851c0eab9b8f7e5bcfebf974a9cb6b0d3cf887d9bcbefa1d9277bf129739763a74985b5b00c8aa6dd36c0f497  veracrypt_nogui\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaresb%2Fdocker-build-veracrypt","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmaresb%2Fdocker-build-veracrypt","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaresb%2Fdocker-build-veracrypt/lists"}