From c2ef27af2c5790a34567df218d82692e3917ab17 Mon Sep 17 00:00:00 2001 From: Kunal Mehta Date: Mon, 26 Sep 2022 09:46:51 -0700 Subject: [PATCH 1/7] install-deps: Simplify refetching git-lfs assets Per , `git lfs pull` does exactly what we want. Tested by running the following in a bullseye container: > $ git clone https://github.com/freedomofpress/securedrop-debian-packaging > $ file bootstrap/build-0.3.0-py2.py3-none-any.whl > bootstrap/build-0.3.0-py2.py3-none-any.whl: ASCII text > # apt install git-lfs -y > $ git lfs install > Updated git hooks. > Git LFS initialized. > $ git lfs pull > $ file bootstrap/build-0.3.0-py2.py3-none-any.whl > bootstrap/build-0.3.0-py2.py3-none-any.whl: Zip archive data, at least > v2.0 to extract --- scripts/install-deps | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/scripts/install-deps b/scripts/install-deps index 4b71fcd9..3d172086 100755 --- a/scripts/install-deps +++ b/scripts/install-deps @@ -30,10 +30,7 @@ wheel_mime_types="$(find localwheels/ -type f -iname '*.whl' -exec file --mime-t if [[ "$wheel_mime_types" != "application/zip" ]]; then echo "Re-fetching git-lfs assets..." git lfs install - # Re-fetch assets to resolve pointers to actual files - rm -r bootstrap/ localwheels/ - git checkout bootstrap/ localwheels/ - git lfs fetch + git lfs pull fi # Support existing activated virtualenv, e.g. via virtualenvwrapper. From 2a633b7fb7830cd43890e7c8b139f8388396df62 Mon Sep 17 00:00:00 2001 From: Kunal Mehta Date: Mon, 26 Sep 2022 15:27:01 -0400 Subject: [PATCH 2/7] Update some README steps * Recommend people use `make install-deps` to configure the venv, it'll always do the right thing. * sha256sums are signed by individual keys, not the release key. * No need to run sdist after uploading wheels. --- README.md | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index 6089ce00..f6c375fe 100644 --- a/README.md +++ b/README.md @@ -73,9 +73,8 @@ to do the following (we are taking `securedrop-client` project as example): You can create a fresh virtualenv and install the build tools from our bootstrapped wheels. ``` -python3 -m venv .venv -source .venv/bin/activate -python3 -m pip install --require-hashes --no-index --no-deps --no-cache-dir -r build-requirements.txt --find-links ./bootstrap/ +rm -rf .venv +make install-deps ``` Remember that the following steps needs to be done from the same virtual environment. @@ -104,9 +103,8 @@ Also update the index HTML files accordingly commit your changes. After these steps, please rerun the command again. ``` -The next step is to build the wheels. To do this step, you will need an owner -of the SecureDrop release key to build the wheel and sign the updated sha256sums file -with the release key. If you're not sure who to ask, ping @redshiftzero for a pointer. +The next step is to build the wheels. To do this step, you will need a maintainer +to build the wheels and sign the updated sha256sums file with your individual key. ### 2. Build wheels @@ -120,12 +118,6 @@ This above command will let you know about any new wheels + sources. It will build/download sources from PyPI (by verifying it against the sha256sums from the `requirements.txt` of the project). -Then navigate back to the project's code directory and run the following command. - -```bash -python3 setup.py sdist -``` - ### 3. Commit changes to the localwheels directory (if only any update of wheels) Now add these built artifacts to version control: From 346b33280ac568a2ee322453d8643b35a0132aca Mon Sep 17 00:00:00 2001 From: Kunal Mehta Date: Mon, 26 Sep 2022 15:43:57 -0400 Subject: [PATCH 3/7] Reorganize how wheels are stored, stop special-casing bootstrap Each project, whether it's securedrop-client or the workstation-bootstrap, will now store wheels and associated metadata in the exact same way. Moving files around will happen in follow-up commits. securedrop-client/ debian/ sha256sums.txt sha256sums.txt.asc wheels/ The workstation-bootstrap is similar, except it also contains its requirements files. workstation-bootstrap/ build-requirements.txt requirements.in requirements.txt sha256sums.txt sha256sums.txt.asc wheels/ The main goal of this refactor is to make room for the new securedrop-app-code bootstrap and wheels. The main scripts now take a `--project` parameter, which is the path in this repository, and `--pkg-dir`, which is the path to the Git checkout of it (previously a PKG_DIR environment variable). In nearly all cases backwards-compat code has been added so it should do the right thing based on old documentation. Makefile: * Updates for how scripts are now invoked. * Drop misleading "clean" target, people can use git-clean(1) directly. scripts/build-debianpackage: * Validate $PKG_NAME before we use it. * Set $WHEELS_DIR to that package's wheel directory. * Only verify sha256sums.txt if it exists (securedrop-export and metapackages have no Python dependencies). scripts/build-sync-wheels: * Switch to --pkg-dir/--project args, with backwards-compat. * Allow specifying where requirements.txt lives. * Drop "cache" terminology since this is persistent storage. * Remove dead commented-out code. scripts/install-deps: * Debian 11 is our baseline now, fix typo. * Look for and install wheels from workstation-bootstrap now. scripts/sync-sha256sums: * Require a directory instead of looking for a BOOTSTRAP variable. scripts/update-requirements: * Switch to --pkg-dir/--project args, with backwards-compat. * Allow specifying where requirements.txt lives. * Use pathlib internally scripts/verify-sha256sum-signature: * Require a directory instead of looking for a BOOTSTRAP variable. Refs . --- Makefile | 19 +++-- README.md | 15 ++-- scripts/build-debianpackage | 31 ++++---- scripts/build-sync-wheels | 62 ++++++++-------- scripts/install-deps | 12 ++-- scripts/sync-sha256sums | 24 ++----- scripts/update-requirements | 110 ++++++++++++----------------- scripts/verify-sha256sum-signature | 24 ++----- 8 files changed, 130 insertions(+), 167 deletions(-) diff --git a/Makefile b/Makefile index 6f22b9b5..932d9f4e 100644 --- a/Makefile +++ b/Makefile @@ -1,12 +1,13 @@ DEFAULT_GOAL: help +SHELL := /bin/bash .PHONY: securedrop-proxy securedrop-proxy: ## Builds Debian package for securedrop-proxy code - WHEELS_DIR="$(PWD)/localwheels/" PKG_NAME="securedrop-proxy" ./scripts/build-debianpackage + PKG_NAME="securedrop-proxy" ./scripts/build-debianpackage .PHONY: securedrop-client securedrop-client: ## Builds Debian package for securedrop-client code - WHEELS_DIR="$(PWD)/localwheels/" PKG_NAME="securedrop-client" ./scripts/build-debianpackage + PKG_NAME="securedrop-client" ./scripts/build-debianpackage .PHONY: securedrop-workstation-config securedrop-workstation-config: ## Builds Debian metapackage for Qubes Workstation base dependencies @@ -22,11 +23,11 @@ securedrop-workstation-viewer: ## Builds Debian metapackage for Disposable VM de .PHONY: securedrop-export securedrop-export: ## Builds Debian package for Qubes Workstation export scripts - WHEELS_DIR="$(PWD)/localwheels/" PKG_NAME="securedrop-export" ./scripts/build-debianpackage + PKG_NAME="securedrop-export" ./scripts/build-debianpackage .PHONY: securedrop-log securedrop-log: ## Builds Debian package for Qubes Workstation securedrop-log scripts - WHEELS_DIR="$(PWD)/localwheels/" PKG_NAME="securedrop-log" ./scripts/build-debianpackage + PKG_NAME="securedrop-log" ./scripts/build-debianpackage .PHONY: securedrop-keyring securedrop-keyring: ## Builds Debian package containing the release key @@ -46,9 +47,9 @@ requirements: ## Creates requirements files for the Python projects .PHONY: build-wheels build-wheels: ## Builds the wheels and adds them to the localwheels directory - ./scripts/verify-sha256sum-signature - ./scripts/build-sync-wheels -p ${PKG_DIR} - ./scripts/sync-sha256sums + ./scripts/verify-sha256sum-signature $$(basename ${PKG_DIR}) + ./scripts/build-sync-wheels + ./scripts/sync-sha256sums $$(basename ${PKG_DIR}) @printf "Done! Now please follow the instructions in\n" @printf "https://github.com/freedomofpress/securedrop-debian-packaging-guide/" @printf "to push these changes to the FPF PyPI index\n" @@ -57,10 +58,6 @@ build-wheels: ## Builds the wheels and adds them to the localwheels directory test: ## Run simple test suite (skips reproducibility checks) pytest -v tests/test_update_requirements.py -.PHONY: clean -clean: ## Removes all non-version controlled packaging artifacts - rm -rf localwheels/* - .PHONY: reprotest reprotest: ## Runs only reproducibility tests, for .deb and .whl files pytest -vvs tests/test_reproducible_*.py diff --git a/README.md b/README.md index f6c375fe..5a75ed7f 100644 --- a/README.md +++ b/README.md @@ -40,20 +40,21 @@ If we have to update the tool, use the following steps rm -rf .venv && python3 -m venv .venv source .venv/bin/activate # Then install pip-tools, from pinned dependencies -python3 -m pip install -r requirements.txt +python3 -m pip install -r workstation-bootstrap/requirements.txt # Then update the requirements.in file as required -pip-compile --allow-unsafe --generate-hashes --output-file=requirements.txt requirements.in +pip-compile --allow-unsafe --generate-hashes \ + --output-file=workstation-bootstrap/requirements.txt workstation-bootstrap/requirements.in # Now we are ready for bootstrapping -./scripts/build-sync-wheels --cache ./bootstrap -p $PWD +./scripts/build-sync-wheels --project workstation-bootstrap --pkg-dir ./workstation-bootstrap --requirements . # Here we have the new wheels ready # Now let us recreate our new sha256sums for bootstrapping -BOOTSTRAP=true ./scripts/sync-sha256sums +./scripts/sync-sha256sums ./workstation-bootstrap # now let us sign the list of sha256sums -gpg --armor --output bootstrap-sha256sums.txt.asc --detach-sig bootstrap-sha256sums.txt +gpg --armor --output workstation-bootstrap/sha256sums.txt.asc --detach-sig workstation-bootstrap/sha256sums.txt # We can even verify if we want -BOOTSTRAP=true ./scripts/verify-sha256sum-signature +./scripts/verify-sha256sum-signature ./workstation-bootstrap/ # Update the build-requirements.txt file -PKG_DIR=$PWD BOOTSTRAP=true ./scripts/update-requirements +./scripts/update-requirements --pkg-dir ./workstation-bootstrap/ --project workstation-bootstrap --requirements . ``` Make sure that your GPG public key is stored in `pubkeys/`, so CI can verify the signatures. diff --git a/scripts/build-debianpackage b/scripts/build-debianpackage index 09d128c4..d7fba06b 100755 --- a/scripts/build-debianpackage +++ b/scripts/build-debianpackage @@ -12,15 +12,26 @@ set -e set -u set -o pipefail + +# Validate required args. +if [[ -z "${PKG_NAME:-}" ]]; then + echo "Set PKG_NAME of the build"; + exit 1 +fi + # Store root of repo, since we'll change dirs several times. CUR_DIR="$(git rev-parse --show-toplevel)" VERSION_CODENAME=$("${CUR_DIR}/scripts/codename") -# Verify sha256sums.txt in the git repo -"${CUR_DIR}/scripts/verify-sha256sum-signature" - # Disable use of pip cache during debhelper build actions. export DH_PIP_EXTRA_ARGS="--no-cache-dir --require-hashes" +# Point dh-virtualenv/pip to our prebuilt wheels +export WHEELS_DIR="${CUR_DIR}/${PKG_NAME}/wheels" + +if [[ -d "${WHEELS_DIR}" ]]; then + # Verify sha256sums.txt in the git repo if we have dependencies + "${CUR_DIR}/scripts/verify-sha256sum-signature" "${PKG_NAME}" +fi # Declare general packaging building workspace; subdirs will # be created within, to build specific packages. @@ -29,12 +40,6 @@ mkdir -p "$TOP_BUILDDIR" rm -rf "${TOP_BUILDDIR:?}/${PKG_NAME}" mkdir -p "${TOP_BUILDDIR}/${PKG_NAME}" -# Validate required args. -if [[ -z "${PKG_NAME:-}" ]]; then - echo "Set PKG_NAME of the build"; - exit 1 -fi - # Look up most recent release from GitHub repo function find_latest_version() { @@ -115,8 +120,10 @@ if [[ "${PKG_NAME}" =~ ^(securedrop-client|securedrop-proxy|securedrop-export|se # Hop into the package build dir, to run dpkg-buildpackage cd "$TOP_BUILDDIR/$PKG_NAME/" - # Verify all the hashes from the verified sha256sums.txt - "${CUR_DIR}/scripts/verify-hashes" "${CUR_DIR}/sha256sums.txt" + if [[ -d "${WHEELS_DIR}" ]]; then + # Verify all the hashes from the verified sha256sums.txt if we have dependencies + "${CUR_DIR}/scripts/verify-hashes" "${CUR_DIR}/${PKG_NAME}/sha256sums.txt" + fi echo "All hashes verified." else @@ -158,7 +165,7 @@ export SOURCE_DATE_EPOCH # Build the package dpkg-buildpackage -us -uc -# Tell the user the path of the files buillt +# Tell the user the path of the files built pkg_path="$(find "$TOP_BUILDDIR" -type f -iname "${PKG_NAME}_${PKG_VERSION}*.deb" | head -n1)" if [[ -f "$pkg_path" ]]; then echo "Package location: $pkg_path" diff --git a/scripts/build-sync-wheels b/scripts/build-sync-wheels index bce8aa97..4990a220 100755 --- a/scripts/build-sync-wheels +++ b/scripts/build-sync-wheels @@ -5,10 +5,8 @@ import sys import glob import subprocess import tempfile -import tarfile import shutil import argparse -from pprint import pprint if os.geteuid() == 0: @@ -35,38 +33,40 @@ WHEEL_BUILD_DIR = "/tmp/pip-wheel-build" def main(): + if "PKG_DIR" in os.environ and \ + not any(arg.startswith("--pkg-dir") for arg in sys.argv): + sys.argv.extend(["--pkg-dir", os.environ["PKG_DIR"]]) + sys.argv.extend(["--project", os.path.basename(os.environ["PKG_DIR"])]) + parser = argparse.ArgumentParser( - description="Builds and caches sources and wheels" - ) - parser.add_argument( - "-p", - help="Points to the project directory", - ) - parser.add_argument( - "--cache", default="./localwheels", help="Final cache dir" + description="Builds and stores sources and wheels" ) + parser.add_argument("--pkg-dir", help="Package directory", required=True) + parser.add_argument("--project", help="Project name to update", required=True) parser.add_argument( "--clobber", action="store_true", default=False, help="Whether to overwrite wheels and source tarballs", ) + parser.add_argument( + "--requirements", + default="requirements", + help="Directory that contains requirements.txt inside the package directory", + ) args = parser.parse_args() - if args.p.startswith("https://"): - git_clone_directory = tempfile.mkdtemp(prefix=os.path.basename(args.p)) - cmd = f"git clone {args.p} {git_clone_directory}".split() + if args.pkg_dir.startswith("https://"): + git_clone_directory = tempfile.mkdtemp(prefix=os.path.basename(args.pkg_dir)) + cmd = f"git clone {args.pkg_dir} {git_clone_directory}".split() subprocess.check_call(cmd) - args.p = git_clone_directory + args.pkg_dir = git_clone_directory else: git_clone_directory = "" - if not os.path.exists(args.p): - print("Project directory missing {0}.".format(args.p)) + if not os.path.exists(args.pkg_dir): + print(f"Project directory missing {args.pkg_dir}.") sys.exit(1) - # Try requirements.txt in the repo root, otherwise try requirements/requirements.txt - req_path = os.path.join(args.p, "requirements.txt") - - if not os.path.exists(req_path): - req_path = os.path.join(args.p, "requirements/requirements.txt") + req_path = os.path.join(args.pkg_dir, args.requirements, "requirements.txt") + local_wheels = os.path.join(args.project, "wheels") if not os.path.exists(req_path): print("requirements.txt missing at {0}.".format(req_path)) @@ -98,9 +98,6 @@ def main(): # Now we have all the source tarballs source_tar_balls = glob.glob(f"{tmpdir}/*.tar.gz") for source in source_tar_balls: - # I am getting umask issue for the below lines - # tar = tarfile.open(source) - # tar.extractall(WHEEL_BUILD_DIR) cmd = ["tar", "-xvf", source, "-C", WHEEL_BUILD_DIR] subprocess.check_call(cmd) # Now we have the all source tarballs extracted in WHEEL_BUILD_DIR @@ -114,23 +111,26 @@ def main(): subprocess.check_call(cmd) print(f"build command used: {' '.join(cmd)}") - # Now find the names names = os.listdir(tmpdir) - cachenames = os.listdir(args.cache) + if os.path.exists(local_wheels): + local_names = os.listdir(local_wheels) + else: + os.mkdir(local_wheels) + local_names = [] for name in names: - if name == "requirements.txt": # We don't need this in cache + if name == "requirements.txt": # We don't need this continue - if name in cachenames: # Means all ready in our cache + if name in local_names: # Means already there if not args.clobber: continue - # Else copy to cache + # Else copy to local wheels filepath = os.path.join(tmpdir, name) - shutil.copy(filepath, args.cache, follow_symlinks=True) - print("Copying {0} to cache {1}".format(name, args.cache)) + shutil.copy(filepath, local_wheels, follow_symlinks=True) + print(f"Copied {name} to {local_wheels}") if git_clone_directory: shutil.rmtree(git_clone_directory) diff --git a/scripts/install-deps b/scripts/install-deps index 3d172086..7ebea93f 100755 --- a/scripts/install-deps +++ b/scripts/install-deps @@ -1,7 +1,7 @@ #!/bin/bash set -euxo pipefail -# Installs required dependencies for building SecureDrop Worsktation packages. -# Assumes a Debian 10 machine, ideally a Qubes AppVM. +# Installs required dependencies for building SecureDrop Workstation packages. +# Assumes a Debian 11 machine, ideally a Qubes AppVM. VIRTUAL_ENV="${VIRTUAL_ENV:-}" @@ -26,7 +26,7 @@ sudo apt-get install \ # Inspect the wheel files present locally. If repo was cloned # without git-lfs, they'll be "text/plain", rather than "application/zip". -wheel_mime_types="$(find localwheels/ -type f -iname '*.whl' -exec file --mime-type {} + | perl -F':\s+' -lanE 'say $F[-1]' | sort -u)" +wheel_mime_types="$(find workstation-bootstrap/ -type f -iname '*.whl' -exec file --mime-type {} + | perl -F':\s+' -lanE 'say $F[-1]' | sort -u)" if [[ "$wheel_mime_types" != "application/zip" ]]; then echo "Re-fetching git-lfs assets..." git lfs install @@ -42,5 +42,7 @@ else echo "Virtualenv already activated, skipping creation..." fi -# Install the 'build' tool from previously prepared localwheels -pip install --require-hashes --no-index --no-deps --no-cache-dir -r build-requirements.txt --find-links ./bootstrap/ +# Install the 'build' tool from previously prepared bootstrap +pip install --require-hashes --no-index --no-deps --no-cache-dir \ + -r ./workstation-bootstrap/build-requirements.txt \ + --find-links ./workstation-bootstrap/wheels/ diff --git a/scripts/sync-sha256sums b/scripts/sync-sha256sums index bc86612f..50be76ae 100755 --- a/scripts/sync-sha256sums +++ b/scripts/sync-sha256sums @@ -2,24 +2,12 @@ # A script to update the sha256sums from localwheels directory -set -e -set -u -set -o pipefail -set -o nounset +set -euxo pipefail +directory=${1?"Usage: $0 [directory]"} -bootstrap=${BOOTSTRAP:-} +cd ./${directory}/wheels/ +sha256sum * > ../sha256sums.txt -if [ ! -z "$bootstrap" ]; then - cd ./bootstrap/ - sha256sum * > ../bootstrap-sha256sums.txt - - echo "Now you must sign the generated bootstrap-sha256sums.txt file:" - echo "gpg --armor --output bootstrap-sha256sums.txt.asc --detach-sig bootstrap-sha256sums.txt" -else - cd ./localwheels/ - sha256sum * > ../sha256sums.txt - - echo "Now you must sign the generated sha256sums.txt file:" - echo "gpg --armor --output sha256sums.txt.asc --detach-sig sha256sums.txt" -fi +echo "Now you must sign the generated sha256sums.txt file:" +echo "gpg --armor --output ${directory}/sha256sums.txt.asc --detach-sig ${directory}/sha256sums.txt" diff --git a/scripts/update-requirements b/scripts/update-requirements index 59c39d25..52742e45 100755 --- a/scripts/update-requirements +++ b/scripts/update-requirements @@ -2,87 +2,70 @@ # To update the requirements files with sha256sums from our local PyPI. +import argparse import os import sys -import glob -import hashlib import subprocess -from pprint import pprint +from pathlib import Path +from typing import List -def main(): - PKG_DIR = os.environ.get("PKG_DIR", "") - if os.environ.get("BOOTSTRAP", ""): - BOOTSTRAP = True - else: - BOOTSTRAP = False - - if not PKG_DIR: - print("Set PKG_DIR of the project") - sys.exit(1) +def parse_args(): + # For backwards-compat + if "PKG_DIR" in os.environ and \ + not any(arg.startswith("--pkg-dir") for arg in sys.argv): + sys.argv.extend(["--pkg-dir", os.environ["PKG_DIR"]]) + sys.argv.extend(["--project", os.path.basename(os.environ["PKG_DIR"])]) + parser = argparse.ArgumentParser(description="Update requirements files with sha256sums from our wheels") + parser.add_argument("--pkg-dir", help="Package directory", required=True) + parser.add_argument("--project", help="Project to update", required=True) + parser.add_argument("--requirements", help="Directory that contains requirements.txt inside the package directory", + default="requirements") + return parser.parse_args() + - requirements_file = os.path.join(PKG_DIR, "requirements.txt") - if not os.path.exists(requirements_file): - requirements_file = os.path.join(PKG_DIR, "requirements", "requirements.txt") - if not os.path.exists(requirements_file): - print("Cannot find requirements.txt") - sys.exit(1) +def main(): + args = parse_args() + pkg_dir = Path(args.pkg_dir) + requirements_file = pkg_dir / args.requirements / "requirements.txt" + project = Path(__file__).parent.parent / args.project # First remove index line and any PyQt or sip dependency cleaned_lines = cleanup(requirements_file) - verify_sha256sums_file(BOOTSTRAP) + verify_sha256sums_file(project) - build_requirements_file = os.path.join(PKG_DIR, "build-requirements.txt") - if not os.path.exists(build_requirements_file): - build_requirements_file = os.path.join(PKG_DIR, "requirements", "build-requirements.txt") - if not os.path.exists(build_requirements_file): - print("Cannot find build_requirements.txt") - sys.exit(1) + build_requirements_file = pkg_dir / args.requirements / "build-requirements.txt" - if BOOTSTRAP: - shasums_file = "bootstrap-sha256sums.txt" - else: - shasums_file = "sha256sums.txt" + shasums_file = project / "sha256sums.txt" # Now let us update the files along with the sha256sums from localwheels - add_sha256sums(build_requirements_file, cleaned_lines, shasums_file) - -def verify_sha256sums_file(bootstrap=False): - "Verifies the sha256sums.txt file with gpg signature" - - if bootstrap: - filename = "bootstrap-sha256sums.txt" - signature_filename = "bootstrap-sha256sums.txt.asc" - else: - filename = "sha256sums.txt" - signature_filename = "sha256sums.txt.asc" - if not os.path.exists(filename): + add_sha256sums(build_requirements_file, cleaned_lines, shasums_file, pkg_dir) + + +def verify_sha256sums_file(project: Path): + """Verifies the sha256sums.txt file with gpg signature""" + + filename = project / "sha256sums.txt" + signature_filename = project / "sha256sums.txt.asc" + if not filename.exists(): print(f"Missing {filename} file.") sys.exit(1) - if not os.path.exists(signature_filename): + if not signature_filename.exists(): print(f"Missing {signature_filename} file.") sys.exit(1) # Both file exists, we can now verify using gpg. # Using a wrapper script to ensure proper keyring. - cmd = ["./scripts/verify-sha256sum-signature"] - subprocess.check_call(cmd) + subprocess.check_call(["./scripts/verify-sha256sum-signature", project.name]) -def add_sha256sums(path: str, requirements_lines: list, shasums_file: str ="sha256sums.txt") -> None: - """Adds all the required sha256sums to the wheels - :param path: path to the requirements file. - :type path: str - :param requirements_lines: cleaned lines from the requirements file. - :type requirements_lines: list - :return: None - :rtype: None - """ +def add_sha256sums(path: Path, requirements_lines: List[str], + shasums_file: Path, pkg_dir: Path) -> None: + """Adds all the required sha256sums to the wheels""" files = [] - with open(shasums_file) as fobj: - lines = fobj.readlines() + lines = shasums_file.read_text().splitlines() for line in lines: line = line.strip() @@ -94,9 +77,6 @@ def add_sha256sums(path: str, requirements_lines: list, shasums_file: str ="sha2 newlines = [] missing_wheels = [] - if not isinstance(requirements_lines, list): - raise ValueError("requirements_lines must be a list") - # For each dependency in the requirements file for mainline in requirements_lines: package_name_and_version = mainline.strip().split()[0] @@ -135,7 +115,7 @@ def add_sha256sums(path: str, requirements_lines: list, shasums_file: str ="sha2 print("{}".format(missing_dep)) print("\nPlease build the wheel by using the following command:\n") - print("\tPKG_DIR={0} make build-wheels\n".format(os.environ["PKG_DIR"])) + print(f"\tPKG_DIR={pkg_dir} make build-wheels\n") print("Then add the newly built wheels and sources to ./localwheels/.") print("Also update the index HTML files accordingly commit your changes.") print("After these steps, please rerun the command again.") @@ -143,12 +123,11 @@ def add_sha256sums(path: str, requirements_lines: list, shasums_file: str ="sha2 sys.exit(1) # Now update the file - with open(path, "w") as fobj: - for line in newlines: - fobj.write(line) + path.write_text("".join(newlines)) + print(f"Updated {path}") -def cleanup(path: str) -> str: +def cleanup(path: Path) -> List[str]: """Cleans up requirement files :param path: The file to cleanup @@ -157,8 +136,7 @@ def cleanup(path: str) -> str: :rtype: None """ - with open(path) as fobj: - lines = fobj.readlines() + lines = path.read_text().splitlines() finallines = [] diff --git a/scripts/verify-sha256sum-signature b/scripts/verify-sha256sum-signature index 66bbe9ed..ec95192e 100755 --- a/scripts/verify-sha256sum-signature +++ b/scripts/verify-sha256sum-signature @@ -5,27 +5,17 @@ # We expect a valid signature to correspond to a SecureDrop Maintainer, # so we create a temporary keyring in order to force gpg to use *only* # authorized keys during the verification check. -set -e -set -u -set -o pipefail -set -o nounset +set -euo pipefail - -bootstrap=${BOOTSTRAP:-} +directory=${1?"Usage: $0 [directory]"} # Canonicalize path, since script may be called from different # locations within the repo. repo_root="$(git rev-parse --show-toplevel)" -if [ ! -z "$bootstrap" ]; then - sha256sums_sig="${repo_root}/bootstrap-sha256sums.txt.asc"; - sha256sums_file="${repo_root}/bootstrap-sha256sums.txt"; - localwheels="${repo_root}/bootstrap" -else - sha256sums_sig="${repo_root}/sha256sums.txt.asc"; - sha256sums_file="${repo_root}/sha256sums.txt"; - localwheels="${repo_root}/localwheels" -fi +sha256sums_sig="${repo_root}/${directory}/sha256sums.txt.asc"; +sha256sums_file="${repo_root}/${directory}/sha256sums.txt"; +localwheels="${repo_root}/${directory}/wheels" function verify_sha256sum_signature() { # Hardcode expected filepaths @@ -36,7 +26,7 @@ function verify_sha256sum_signature() { # Ensure temporary keyring is cleaned up afterward. trap 'rm -f "${temp_keyring}"' EXIT - # Import SecureDrop release key for verification. + # Import public keys for verification. gpg --batch --no-default-keyring --keyring "${temp_keyring}" \ --import "${repo_root}/pubkeys/"*.pub @@ -50,7 +40,7 @@ function verify_sha256sum_no_changes() { # We'll compare this to the signed file for validation. temp_sha256sum="$(mktemp)" if [[ ! -d "$localwheels" ]]; then - echo "$localwheels directory does not exist; run make fetch-wheels" + echo "$localwheels directory does not exist" exit 1 fi cd $localwheels From 57b8ed0c3f0e7351e2b2658458f2195ede9243bc Mon Sep 17 00:00:00 2001 From: Kunal Mehta Date: Mon, 26 Sep 2022 15:45:22 -0400 Subject: [PATCH 4/7] Move bootstrap to workstation-bootstrap and use new directory layout --- .../build-requirements.txt | 0 requirements.in => workstation-bootstrap/requirements.in | 2 +- requirements.txt => workstation-bootstrap/requirements.txt | 0 .../sha256sums.txt | 0 .../sha256sums.txt.asc | 0 .../wheels}/Cython-0.29.22-cp310-cp310-linux_x86_64.whl | 0 .../wheels}/Cython-0.29.22-cp37-cp37m-linux_x86_64.whl | 0 .../wheels}/Cython-0.29.22-cp39-cp39-linux_x86_64.whl | 0 .../wheels}/Cython-0.29.22.tar.gz | 0 .../wheels}/build-0.3.0-py2.py3-none-any.whl | 0 {bootstrap => workstation-bootstrap/wheels}/build-0.3.0.tar.gz | 0 .../wheels}/click-7.1.2-py2.py3-none-any.whl | 0 {bootstrap => workstation-bootstrap/wheels}/click-7.1.2.tar.gz | 0 .../wheels}/flit_core-2.3.0-py2.py3-none-any.whl | 0 .../wheels}/flit_core-2.3.0.tar.gz | 0 .../wheels}/importlib_metadata-3.7.0-py3-none-any.whl | 0 .../wheels}/importlib_metadata-3.7.0.tar.gz | 0 .../wheels}/packaging-20.9-py2.py3-none-any.whl | 0 .../wheels}/packaging-20.9.tar.gz | 0 .../wheels}/pep517-0.9.1-py2.py3-none-any.whl | 0 {bootstrap => workstation-bootstrap/wheels}/pep517-0.9.1.tar.gz | 0 .../wheels}/pip-21.0.1-py3-none-any.whl | 0 {bootstrap => workstation-bootstrap/wheels}/pip-21.0.1.tar.gz | 0 .../wheels}/pip-21.3.1-py3-none-any.whl | 0 {bootstrap => workstation-bootstrap/wheels}/pip-21.3.1.tar.gz | 0 .../wheels}/pip-tools-6.0.1.tar.gz | 0 .../wheels}/pip_tools-6.0.1-py3-none-any.whl | 0 .../wheels}/pyparsing-2.4.7-py2.py3-none-any.whl | 0 .../wheels}/pyparsing-2.4.7.tar.gz | 0 .../wheels}/pytest-runner-5.3.0.tar.gz | 0 .../wheels}/pytest_runner-5.3.0-py3-none-any.whl | 0 .../wheels}/pytoml-0.1.21-py2.py3-none-any.whl | 0 .../wheels}/pytoml-0.1.21.tar.gz | 0 .../wheels}/setuptools-54.0.0-py3-none-any.whl | 0 .../wheels}/setuptools-54.0.0.tar.gz | 0 .../wheels}/setuptools_scm-5.0.2-py2.py3-none-any.whl | 0 .../wheels}/setuptools_scm-5.0.2.tar.gz | 0 .../wheels}/toml-0.10.2-py2.py3-none-any.whl | 0 {bootstrap => workstation-bootstrap/wheels}/toml-0.10.2.tar.gz | 0 .../wheels}/typing_extensions-3.7.4.3-py3-none-any.whl | 0 .../wheels}/typing_extensions-3.7.4.3.tar.gz | 0 .../wheels}/wheel-0.36.2-py2.py3-none-any.whl | 0 {bootstrap => workstation-bootstrap/wheels}/wheel-0.36.2.tar.gz | 0 .../wheels}/zipp-3.4.1-py3-none-any.whl | 0 {bootstrap => workstation-bootstrap/wheels}/zipp-3.4.1.tar.gz | 0 45 files changed, 1 insertion(+), 1 deletion(-) rename build-requirements.txt => workstation-bootstrap/build-requirements.txt (100%) rename requirements.in => workstation-bootstrap/requirements.in (83%) rename requirements.txt => workstation-bootstrap/requirements.txt (100%) rename bootstrap-sha256sums.txt => workstation-bootstrap/sha256sums.txt (100%) rename bootstrap-sha256sums.txt.asc => workstation-bootstrap/sha256sums.txt.asc (100%) rename {bootstrap => workstation-bootstrap/wheels}/Cython-0.29.22-cp310-cp310-linux_x86_64.whl (100%) rename {bootstrap => workstation-bootstrap/wheels}/Cython-0.29.22-cp37-cp37m-linux_x86_64.whl (100%) rename {bootstrap => workstation-bootstrap/wheels}/Cython-0.29.22-cp39-cp39-linux_x86_64.whl (100%) rename {bootstrap => workstation-bootstrap/wheels}/Cython-0.29.22.tar.gz (100%) rename {bootstrap => workstation-bootstrap/wheels}/build-0.3.0-py2.py3-none-any.whl (100%) rename {bootstrap => workstation-bootstrap/wheels}/build-0.3.0.tar.gz (100%) rename {bootstrap => workstation-bootstrap/wheels}/click-7.1.2-py2.py3-none-any.whl (100%) rename {bootstrap => workstation-bootstrap/wheels}/click-7.1.2.tar.gz (100%) rename {bootstrap => workstation-bootstrap/wheels}/flit_core-2.3.0-py2.py3-none-any.whl (100%) rename {bootstrap => workstation-bootstrap/wheels}/flit_core-2.3.0.tar.gz (100%) rename {bootstrap => workstation-bootstrap/wheels}/importlib_metadata-3.7.0-py3-none-any.whl (100%) rename {bootstrap => workstation-bootstrap/wheels}/importlib_metadata-3.7.0.tar.gz (100%) rename {bootstrap => workstation-bootstrap/wheels}/packaging-20.9-py2.py3-none-any.whl (100%) rename {bootstrap => workstation-bootstrap/wheels}/packaging-20.9.tar.gz (100%) rename {bootstrap => workstation-bootstrap/wheels}/pep517-0.9.1-py2.py3-none-any.whl (100%) rename {bootstrap => workstation-bootstrap/wheels}/pep517-0.9.1.tar.gz (100%) rename {bootstrap => workstation-bootstrap/wheels}/pip-21.0.1-py3-none-any.whl (100%) rename {bootstrap => workstation-bootstrap/wheels}/pip-21.0.1.tar.gz (100%) rename {bootstrap => workstation-bootstrap/wheels}/pip-21.3.1-py3-none-any.whl (100%) rename {bootstrap => workstation-bootstrap/wheels}/pip-21.3.1.tar.gz (100%) rename {bootstrap => workstation-bootstrap/wheels}/pip-tools-6.0.1.tar.gz (100%) rename {bootstrap => workstation-bootstrap/wheels}/pip_tools-6.0.1-py3-none-any.whl (100%) rename {bootstrap => workstation-bootstrap/wheels}/pyparsing-2.4.7-py2.py3-none-any.whl (100%) rename {bootstrap => workstation-bootstrap/wheels}/pyparsing-2.4.7.tar.gz (100%) rename {bootstrap => workstation-bootstrap/wheels}/pytest-runner-5.3.0.tar.gz (100%) rename {bootstrap => workstation-bootstrap/wheels}/pytest_runner-5.3.0-py3-none-any.whl (100%) rename {bootstrap => workstation-bootstrap/wheels}/pytoml-0.1.21-py2.py3-none-any.whl (100%) rename {bootstrap => workstation-bootstrap/wheels}/pytoml-0.1.21.tar.gz (100%) rename {bootstrap => workstation-bootstrap/wheels}/setuptools-54.0.0-py3-none-any.whl (100%) rename {bootstrap => workstation-bootstrap/wheels}/setuptools-54.0.0.tar.gz (100%) rename {bootstrap => workstation-bootstrap/wheels}/setuptools_scm-5.0.2-py2.py3-none-any.whl (100%) rename {bootstrap => workstation-bootstrap/wheels}/setuptools_scm-5.0.2.tar.gz (100%) rename {bootstrap => workstation-bootstrap/wheels}/toml-0.10.2-py2.py3-none-any.whl (100%) rename {bootstrap => workstation-bootstrap/wheels}/toml-0.10.2.tar.gz (100%) rename {bootstrap => workstation-bootstrap/wheels}/typing_extensions-3.7.4.3-py3-none-any.whl (100%) rename {bootstrap => workstation-bootstrap/wheels}/typing_extensions-3.7.4.3.tar.gz (100%) rename {bootstrap => workstation-bootstrap/wheels}/wheel-0.36.2-py2.py3-none-any.whl (100%) rename {bootstrap => workstation-bootstrap/wheels}/wheel-0.36.2.tar.gz (100%) rename {bootstrap => workstation-bootstrap/wheels}/zipp-3.4.1-py3-none-any.whl (100%) rename {bootstrap => workstation-bootstrap/wheels}/zipp-3.4.1.tar.gz (100%) diff --git a/build-requirements.txt b/workstation-bootstrap/build-requirements.txt similarity index 100% rename from build-requirements.txt rename to workstation-bootstrap/build-requirements.txt diff --git a/requirements.in b/workstation-bootstrap/requirements.in similarity index 83% rename from requirements.in rename to workstation-bootstrap/requirements.in index ec2a5e35..5c6e9ef3 100644 --- a/requirements.in +++ b/workstation-bootstrap/requirements.in @@ -2,7 +2,7 @@ build==0.3.0 wheel==0.36.2 pip==21.3.1 -# For the build dependency of the our packages +# Build dependencies of workstation packages # For python-dateutil setuptools-scm>=5.0.2 diff --git a/requirements.txt b/workstation-bootstrap/requirements.txt similarity index 100% rename from requirements.txt rename to workstation-bootstrap/requirements.txt diff --git a/bootstrap-sha256sums.txt b/workstation-bootstrap/sha256sums.txt similarity index 100% rename from bootstrap-sha256sums.txt rename to workstation-bootstrap/sha256sums.txt diff --git a/bootstrap-sha256sums.txt.asc b/workstation-bootstrap/sha256sums.txt.asc similarity index 100% rename from bootstrap-sha256sums.txt.asc rename to workstation-bootstrap/sha256sums.txt.asc diff --git a/bootstrap/Cython-0.29.22-cp310-cp310-linux_x86_64.whl b/workstation-bootstrap/wheels/Cython-0.29.22-cp310-cp310-linux_x86_64.whl similarity index 100% rename from bootstrap/Cython-0.29.22-cp310-cp310-linux_x86_64.whl rename to workstation-bootstrap/wheels/Cython-0.29.22-cp310-cp310-linux_x86_64.whl diff --git a/bootstrap/Cython-0.29.22-cp37-cp37m-linux_x86_64.whl b/workstation-bootstrap/wheels/Cython-0.29.22-cp37-cp37m-linux_x86_64.whl similarity index 100% rename from bootstrap/Cython-0.29.22-cp37-cp37m-linux_x86_64.whl rename to workstation-bootstrap/wheels/Cython-0.29.22-cp37-cp37m-linux_x86_64.whl diff --git a/bootstrap/Cython-0.29.22-cp39-cp39-linux_x86_64.whl b/workstation-bootstrap/wheels/Cython-0.29.22-cp39-cp39-linux_x86_64.whl similarity index 100% rename from bootstrap/Cython-0.29.22-cp39-cp39-linux_x86_64.whl rename to workstation-bootstrap/wheels/Cython-0.29.22-cp39-cp39-linux_x86_64.whl diff --git a/bootstrap/Cython-0.29.22.tar.gz b/workstation-bootstrap/wheels/Cython-0.29.22.tar.gz similarity index 100% rename from bootstrap/Cython-0.29.22.tar.gz rename to workstation-bootstrap/wheels/Cython-0.29.22.tar.gz diff --git a/bootstrap/build-0.3.0-py2.py3-none-any.whl b/workstation-bootstrap/wheels/build-0.3.0-py2.py3-none-any.whl similarity index 100% rename from bootstrap/build-0.3.0-py2.py3-none-any.whl rename to workstation-bootstrap/wheels/build-0.3.0-py2.py3-none-any.whl diff --git a/bootstrap/build-0.3.0.tar.gz b/workstation-bootstrap/wheels/build-0.3.0.tar.gz similarity index 100% rename from bootstrap/build-0.3.0.tar.gz rename to workstation-bootstrap/wheels/build-0.3.0.tar.gz diff --git a/bootstrap/click-7.1.2-py2.py3-none-any.whl b/workstation-bootstrap/wheels/click-7.1.2-py2.py3-none-any.whl similarity index 100% rename from bootstrap/click-7.1.2-py2.py3-none-any.whl rename to workstation-bootstrap/wheels/click-7.1.2-py2.py3-none-any.whl diff --git a/bootstrap/click-7.1.2.tar.gz b/workstation-bootstrap/wheels/click-7.1.2.tar.gz similarity index 100% rename from bootstrap/click-7.1.2.tar.gz rename to workstation-bootstrap/wheels/click-7.1.2.tar.gz diff --git a/bootstrap/flit_core-2.3.0-py2.py3-none-any.whl b/workstation-bootstrap/wheels/flit_core-2.3.0-py2.py3-none-any.whl similarity index 100% rename from bootstrap/flit_core-2.3.0-py2.py3-none-any.whl rename to workstation-bootstrap/wheels/flit_core-2.3.0-py2.py3-none-any.whl diff --git a/bootstrap/flit_core-2.3.0.tar.gz b/workstation-bootstrap/wheels/flit_core-2.3.0.tar.gz similarity index 100% rename from bootstrap/flit_core-2.3.0.tar.gz rename to workstation-bootstrap/wheels/flit_core-2.3.0.tar.gz diff --git a/bootstrap/importlib_metadata-3.7.0-py3-none-any.whl b/workstation-bootstrap/wheels/importlib_metadata-3.7.0-py3-none-any.whl similarity index 100% rename from bootstrap/importlib_metadata-3.7.0-py3-none-any.whl rename to workstation-bootstrap/wheels/importlib_metadata-3.7.0-py3-none-any.whl diff --git a/bootstrap/importlib_metadata-3.7.0.tar.gz b/workstation-bootstrap/wheels/importlib_metadata-3.7.0.tar.gz similarity index 100% rename from bootstrap/importlib_metadata-3.7.0.tar.gz rename to workstation-bootstrap/wheels/importlib_metadata-3.7.0.tar.gz diff --git a/bootstrap/packaging-20.9-py2.py3-none-any.whl b/workstation-bootstrap/wheels/packaging-20.9-py2.py3-none-any.whl similarity index 100% rename from bootstrap/packaging-20.9-py2.py3-none-any.whl rename to workstation-bootstrap/wheels/packaging-20.9-py2.py3-none-any.whl diff --git a/bootstrap/packaging-20.9.tar.gz b/workstation-bootstrap/wheels/packaging-20.9.tar.gz similarity index 100% rename from bootstrap/packaging-20.9.tar.gz rename to workstation-bootstrap/wheels/packaging-20.9.tar.gz diff --git a/bootstrap/pep517-0.9.1-py2.py3-none-any.whl b/workstation-bootstrap/wheels/pep517-0.9.1-py2.py3-none-any.whl similarity index 100% rename from bootstrap/pep517-0.9.1-py2.py3-none-any.whl rename to workstation-bootstrap/wheels/pep517-0.9.1-py2.py3-none-any.whl diff --git a/bootstrap/pep517-0.9.1.tar.gz b/workstation-bootstrap/wheels/pep517-0.9.1.tar.gz similarity index 100% rename from bootstrap/pep517-0.9.1.tar.gz rename to workstation-bootstrap/wheels/pep517-0.9.1.tar.gz diff --git a/bootstrap/pip-21.0.1-py3-none-any.whl b/workstation-bootstrap/wheels/pip-21.0.1-py3-none-any.whl similarity index 100% rename from bootstrap/pip-21.0.1-py3-none-any.whl rename to workstation-bootstrap/wheels/pip-21.0.1-py3-none-any.whl diff --git a/bootstrap/pip-21.0.1.tar.gz b/workstation-bootstrap/wheels/pip-21.0.1.tar.gz similarity index 100% rename from bootstrap/pip-21.0.1.tar.gz rename to workstation-bootstrap/wheels/pip-21.0.1.tar.gz diff --git a/bootstrap/pip-21.3.1-py3-none-any.whl b/workstation-bootstrap/wheels/pip-21.3.1-py3-none-any.whl similarity index 100% rename from bootstrap/pip-21.3.1-py3-none-any.whl rename to workstation-bootstrap/wheels/pip-21.3.1-py3-none-any.whl diff --git a/bootstrap/pip-21.3.1.tar.gz b/workstation-bootstrap/wheels/pip-21.3.1.tar.gz similarity index 100% rename from bootstrap/pip-21.3.1.tar.gz rename to workstation-bootstrap/wheels/pip-21.3.1.tar.gz diff --git a/bootstrap/pip-tools-6.0.1.tar.gz b/workstation-bootstrap/wheels/pip-tools-6.0.1.tar.gz similarity index 100% rename from bootstrap/pip-tools-6.0.1.tar.gz rename to workstation-bootstrap/wheels/pip-tools-6.0.1.tar.gz diff --git a/bootstrap/pip_tools-6.0.1-py3-none-any.whl b/workstation-bootstrap/wheels/pip_tools-6.0.1-py3-none-any.whl similarity index 100% rename from bootstrap/pip_tools-6.0.1-py3-none-any.whl rename to workstation-bootstrap/wheels/pip_tools-6.0.1-py3-none-any.whl diff --git a/bootstrap/pyparsing-2.4.7-py2.py3-none-any.whl b/workstation-bootstrap/wheels/pyparsing-2.4.7-py2.py3-none-any.whl similarity index 100% rename from bootstrap/pyparsing-2.4.7-py2.py3-none-any.whl rename to workstation-bootstrap/wheels/pyparsing-2.4.7-py2.py3-none-any.whl diff --git a/bootstrap/pyparsing-2.4.7.tar.gz b/workstation-bootstrap/wheels/pyparsing-2.4.7.tar.gz similarity index 100% rename from bootstrap/pyparsing-2.4.7.tar.gz rename to workstation-bootstrap/wheels/pyparsing-2.4.7.tar.gz diff --git a/bootstrap/pytest-runner-5.3.0.tar.gz b/workstation-bootstrap/wheels/pytest-runner-5.3.0.tar.gz similarity index 100% rename from bootstrap/pytest-runner-5.3.0.tar.gz rename to workstation-bootstrap/wheels/pytest-runner-5.3.0.tar.gz diff --git a/bootstrap/pytest_runner-5.3.0-py3-none-any.whl b/workstation-bootstrap/wheels/pytest_runner-5.3.0-py3-none-any.whl similarity index 100% rename from bootstrap/pytest_runner-5.3.0-py3-none-any.whl rename to workstation-bootstrap/wheels/pytest_runner-5.3.0-py3-none-any.whl diff --git a/bootstrap/pytoml-0.1.21-py2.py3-none-any.whl b/workstation-bootstrap/wheels/pytoml-0.1.21-py2.py3-none-any.whl similarity index 100% rename from bootstrap/pytoml-0.1.21-py2.py3-none-any.whl rename to workstation-bootstrap/wheels/pytoml-0.1.21-py2.py3-none-any.whl diff --git a/bootstrap/pytoml-0.1.21.tar.gz b/workstation-bootstrap/wheels/pytoml-0.1.21.tar.gz similarity index 100% rename from bootstrap/pytoml-0.1.21.tar.gz rename to workstation-bootstrap/wheels/pytoml-0.1.21.tar.gz diff --git a/bootstrap/setuptools-54.0.0-py3-none-any.whl b/workstation-bootstrap/wheels/setuptools-54.0.0-py3-none-any.whl similarity index 100% rename from bootstrap/setuptools-54.0.0-py3-none-any.whl rename to workstation-bootstrap/wheels/setuptools-54.0.0-py3-none-any.whl diff --git a/bootstrap/setuptools-54.0.0.tar.gz b/workstation-bootstrap/wheels/setuptools-54.0.0.tar.gz similarity index 100% rename from bootstrap/setuptools-54.0.0.tar.gz rename to workstation-bootstrap/wheels/setuptools-54.0.0.tar.gz diff --git a/bootstrap/setuptools_scm-5.0.2-py2.py3-none-any.whl b/workstation-bootstrap/wheels/setuptools_scm-5.0.2-py2.py3-none-any.whl similarity index 100% rename from bootstrap/setuptools_scm-5.0.2-py2.py3-none-any.whl rename to workstation-bootstrap/wheels/setuptools_scm-5.0.2-py2.py3-none-any.whl diff --git a/bootstrap/setuptools_scm-5.0.2.tar.gz b/workstation-bootstrap/wheels/setuptools_scm-5.0.2.tar.gz similarity index 100% rename from bootstrap/setuptools_scm-5.0.2.tar.gz rename to workstation-bootstrap/wheels/setuptools_scm-5.0.2.tar.gz diff --git a/bootstrap/toml-0.10.2-py2.py3-none-any.whl b/workstation-bootstrap/wheels/toml-0.10.2-py2.py3-none-any.whl similarity index 100% rename from bootstrap/toml-0.10.2-py2.py3-none-any.whl rename to workstation-bootstrap/wheels/toml-0.10.2-py2.py3-none-any.whl diff --git a/bootstrap/toml-0.10.2.tar.gz b/workstation-bootstrap/wheels/toml-0.10.2.tar.gz similarity index 100% rename from bootstrap/toml-0.10.2.tar.gz rename to workstation-bootstrap/wheels/toml-0.10.2.tar.gz diff --git a/bootstrap/typing_extensions-3.7.4.3-py3-none-any.whl b/workstation-bootstrap/wheels/typing_extensions-3.7.4.3-py3-none-any.whl similarity index 100% rename from bootstrap/typing_extensions-3.7.4.3-py3-none-any.whl rename to workstation-bootstrap/wheels/typing_extensions-3.7.4.3-py3-none-any.whl diff --git a/bootstrap/typing_extensions-3.7.4.3.tar.gz b/workstation-bootstrap/wheels/typing_extensions-3.7.4.3.tar.gz similarity index 100% rename from bootstrap/typing_extensions-3.7.4.3.tar.gz rename to workstation-bootstrap/wheels/typing_extensions-3.7.4.3.tar.gz diff --git a/bootstrap/wheel-0.36.2-py2.py3-none-any.whl b/workstation-bootstrap/wheels/wheel-0.36.2-py2.py3-none-any.whl similarity index 100% rename from bootstrap/wheel-0.36.2-py2.py3-none-any.whl rename to workstation-bootstrap/wheels/wheel-0.36.2-py2.py3-none-any.whl diff --git a/bootstrap/wheel-0.36.2.tar.gz b/workstation-bootstrap/wheels/wheel-0.36.2.tar.gz similarity index 100% rename from bootstrap/wheel-0.36.2.tar.gz rename to workstation-bootstrap/wheels/wheel-0.36.2.tar.gz diff --git a/bootstrap/zipp-3.4.1-py3-none-any.whl b/workstation-bootstrap/wheels/zipp-3.4.1-py3-none-any.whl similarity index 100% rename from bootstrap/zipp-3.4.1-py3-none-any.whl rename to workstation-bootstrap/wheels/zipp-3.4.1-py3-none-any.whl diff --git a/bootstrap/zipp-3.4.1.tar.gz b/workstation-bootstrap/wheels/zipp-3.4.1.tar.gz similarity index 100% rename from bootstrap/zipp-3.4.1.tar.gz rename to workstation-bootstrap/wheels/zipp-3.4.1.tar.gz From 3ee076e571270dd37bb30e97f7335d0da0f3647c Mon Sep 17 00:00:00 2001 From: Kunal Mehta Date: Mon, 26 Sep 2022 16:27:17 -0400 Subject: [PATCH 5/7] Use new directory layout for wheels All wheels and tarballs are identical (they're reproducible!), just moved around. Also verified that `make requirements` matches what is already committed in each of the three component repositories. --- localwheels/MarkupSafe-1.0-py3-none-any.whl | 3 - localwheels/MarkupSafe-1.0.tar.gz | 3 - ...rkupSafe-1.1.1-cp37-cp37m-linux_x86_64.whl | 3 - localwheels/MarkupSafe-1.1.1-py3-none-any.whl | 3 - localwheels/MarkupSafe-1.1.1.tar.gz | 3 - .../PyYAML-5.1-cp37-cp37m-linux_x86_64.whl | 3 - localwheels/PyYAML-5.1.tar.gz | 3 - .../PyYAML-5.3.1-cp37-cp37m-linux_x86_64.whl | 3 - localwheels/PyYAML-5.3.1.tar.gz | 3 - .../Werkzeug-0.16.0-py2.py3-none-any.whl | 3 - localwheels/Werkzeug-0.16.0.tar.gz | 3 - .../certifi-2018.10.15-py2.py3-none-any.whl | 3 - localwheels/certifi-2018.10.15.tar.gz | 3 - .../chardet-3.0.4-py2.py3-none-any.whl | 3 - localwheels/chardet-3.0.4.tar.gz | 3 - localwheels/idna-2.7-py2.py3-none-any.whl | 3 - localwheels/idna-2.7.tar.gz | 3 - localwheels/idna-2.8-py2.py3-none-any.whl | 3 - localwheels/idna-2.8.tar.gz | 3 - .../requests-2.20.0-py2.py3-none-any.whl | 3 - localwheels/requests-2.20.0.tar.gz | 3 - .../requests-2.22.0-py2.py3-none-any.whl | 3 - localwheels/requests-2.22.0.tar.gz | 3 - localwheels/securedrop-sdk-0.0.12.tar.gz | 3 - localwheels/securedrop-sdk-0.0.13.tar.gz | 3 - localwheels/securedrop-sdk-0.1.0.tar.gz | 3 - localwheels/securedrop-sdk-0.1.1.tar.gz | 3 - localwheels/securedrop-sdk-0.2.0.tar.gz | 3 - localwheels/securedrop-sdk-0.3.0.tar.gz | 3 - localwheels/securedrop-sdk-0.3.1.tar.gz | 3 - localwheels/securedrop-sdk-0.3.2.tar.gz | 3 - .../securedrop_sdk-0.0.12-py3-none-any.whl | 3 - .../securedrop_sdk-0.0.13-py3-none-any.whl | 3 - .../securedrop_sdk-0.1.0-py3-none-any.whl | 3 - .../securedrop_sdk-0.1.1-py3-none-any.whl | 3 - .../securedrop_sdk-0.2.0-py3-none-any.whl | 3 - .../securedrop_sdk-0.3.0-py3-none-any.whl | 3 - .../securedrop_sdk-0.3.1-py3-none-any.whl | 3 - .../securedrop_sdk-0.3.2-py3-none-any.whl | 3 - .../urllib3-1.24.3-py2.py3-none-any.whl | 3 - localwheels/urllib3-1.24.3.tar.gz | 3 - .../urllib3-1.25.10-py2.py3-none-any.whl | 3 - localwheels/urllib3-1.25.10.tar.gz | 3 - securedrop-client/sha256sums.txt | 36 ++++++++ securedrop-client/sha256sums.txt.asc | 16 ++++ .../wheels}/Mako-1.0.7-py3-none-any.whl | 0 .../wheels}/Mako-1.0.7.tar.gz | 0 ...kupSafe-2.0.1-cp310-cp310-linux_x86_64.whl | 0 ...rkupSafe-2.0.1-cp37-cp37m-linux_x86_64.whl | 0 ...arkupSafe-2.0.1-cp39-cp39-linux_x86_64.whl | 0 .../wheels}/MarkupSafe-2.0.1.tar.gz | 0 ...Alchemy-1.3.3-cp310-cp310-linux_x86_64.whl | 0 ...LAlchemy-1.3.3-cp37-cp37m-linux_x86_64.whl | 0 ...QLAlchemy-1.3.3-cp39-cp39-linux_x86_64.whl | 0 .../wheels}/SQLAlchemy-1.3.3.tar.gz | 0 .../alembic-1.0.2-py2.py3-none-any.whl | 0 .../wheels}/alembic-1.0.2.tar.gz | 0 .../alembic-1.1.0-py2.py3-none-any.whl | 0 .../wheels}/alembic-1.1.0.tar.gz | 0 .../wheels}/arrow-0.12.1-py2.py3-none-any.whl | 0 .../wheels}/arrow-0.12.1.tar.gz | 0 .../certifi-2021.5.30-py2.py3-none-any.whl | 0 .../wheels}/certifi-2021.5.30.tar.gz | 0 .../wheels}/charset-normalizer-2.0.4.tar.gz | 0 .../charset_normalizer-2.0.4-py3-none-any.whl | 0 .../wheels}/idna-3.2-py3-none-any.whl | 0 .../wheels}/idna-3.2.tar.gz | 0 .../pathlib2-2.3.2-py2.py3-none-any.whl | 0 .../wheels}/pathlib2-2.3.2.tar.gz | 0 .../wheels}/python-dateutil-2.7.5.tar.gz | 0 .../wheels}/python-editor-1.0.3.tar.gz | 0 ...python_dateutil-2.7.5-py2.py3-none-any.whl | 0 .../python_editor-1.0.3-py3-none-any.whl | 0 .../requests-2.26.0-py2.py3-none-any.whl | 0 .../wheels}/requests-2.26.0.tar.gz | 0 .../wheels}/securedrop-sdk-0.4.0.tar.gz | 0 .../securedrop_sdk-0.4.0-py3-none-any.whl | 0 .../wheels}/six-1.11.0-py2.py3-none-any.whl | 0 .../wheels}/six-1.11.0.tar.gz | 0 .../urllib3-1.26.6-py2.py3-none-any.whl | 0 .../wheels}/urllib3-1.26.6.tar.gz | 0 securedrop-log/sha256sums.txt | 2 + securedrop-log/sha256sums.txt.asc | 16 ++++ .../wheels}/redis-3.3.11-py2.py3-none-any.whl | 0 .../wheels}/redis-3.3.11.tar.gz | 0 securedrop-proxy/sha256sums.txt | 22 +++++ securedrop-proxy/sha256sums.txt.asc | 16 ++++ .../PyYAML-5.4.1-cp310-cp310-linux_x86_64.whl | 0 .../PyYAML-5.4.1-cp37-cp37m-linux_x86_64.whl | 0 .../PyYAML-5.4.1-cp39-cp39-linux_x86_64.whl | 0 .../wheels}/PyYAML-5.4.1.tar.gz | 0 .../wheels}/Werkzeug-2.0.2-py3-none-any.whl | 0 .../wheels}/Werkzeug-2.0.2.tar.gz | 0 .../certifi-2021.5.30-py2.py3-none-any.whl | 3 + .../wheels/certifi-2021.5.30.tar.gz | 3 + .../wheels/charset-normalizer-2.0.4.tar.gz | 3 + .../charset_normalizer-2.0.4-py3-none-any.whl | 3 + .../wheels}/furl-2.0.0-py2.py3-none-any.whl | 0 .../wheels}/furl-2.0.0.tar.gz | 0 .../wheels/idna-3.2-py3-none-any.whl | 3 + securedrop-proxy/wheels/idna-3.2.tar.gz | 3 + .../orderedmultidict-1.0-py3-none-any.whl | 0 .../wheels}/orderedmultidict-1.0.tar.gz | 0 .../requests-2.26.0-py2.py3-none-any.whl | 3 + .../wheels/requests-2.26.0.tar.gz | 3 + .../wheels/six-1.11.0-py2.py3-none-any.whl | 3 + securedrop-proxy/wheels/six-1.11.0.tar.gz | 3 + .../urllib3-1.26.6-py2.py3-none-any.whl | 3 + securedrop-proxy/wheels/urllib3-1.26.6.tar.gz | 3 + sha256sums.txt | 91 ------------------- sha256sums.txt.asc | 16 ---- 111 files changed, 144 insertions(+), 236 deletions(-) delete mode 100644 localwheels/MarkupSafe-1.0-py3-none-any.whl delete mode 100644 localwheels/MarkupSafe-1.0.tar.gz delete mode 100644 localwheels/MarkupSafe-1.1.1-cp37-cp37m-linux_x86_64.whl delete mode 100644 localwheels/MarkupSafe-1.1.1-py3-none-any.whl delete mode 100644 localwheels/MarkupSafe-1.1.1.tar.gz delete mode 100644 localwheels/PyYAML-5.1-cp37-cp37m-linux_x86_64.whl delete mode 100644 localwheels/PyYAML-5.1.tar.gz delete mode 100644 localwheels/PyYAML-5.3.1-cp37-cp37m-linux_x86_64.whl delete mode 100644 localwheels/PyYAML-5.3.1.tar.gz delete mode 100644 localwheels/Werkzeug-0.16.0-py2.py3-none-any.whl delete mode 100644 localwheels/Werkzeug-0.16.0.tar.gz delete mode 100644 localwheels/certifi-2018.10.15-py2.py3-none-any.whl delete mode 100644 localwheels/certifi-2018.10.15.tar.gz delete mode 100644 localwheels/chardet-3.0.4-py2.py3-none-any.whl delete mode 100644 localwheels/chardet-3.0.4.tar.gz delete mode 100644 localwheels/idna-2.7-py2.py3-none-any.whl delete mode 100644 localwheels/idna-2.7.tar.gz delete mode 100644 localwheels/idna-2.8-py2.py3-none-any.whl delete mode 100644 localwheels/idna-2.8.tar.gz delete mode 100644 localwheels/requests-2.20.0-py2.py3-none-any.whl delete mode 100644 localwheels/requests-2.20.0.tar.gz delete mode 100644 localwheels/requests-2.22.0-py2.py3-none-any.whl delete mode 100644 localwheels/requests-2.22.0.tar.gz delete mode 100644 localwheels/securedrop-sdk-0.0.12.tar.gz delete mode 100644 localwheels/securedrop-sdk-0.0.13.tar.gz delete mode 100644 localwheels/securedrop-sdk-0.1.0.tar.gz delete mode 100644 localwheels/securedrop-sdk-0.1.1.tar.gz delete mode 100644 localwheels/securedrop-sdk-0.2.0.tar.gz delete mode 100644 localwheels/securedrop-sdk-0.3.0.tar.gz delete mode 100644 localwheels/securedrop-sdk-0.3.1.tar.gz delete mode 100644 localwheels/securedrop-sdk-0.3.2.tar.gz delete mode 100644 localwheels/securedrop_sdk-0.0.12-py3-none-any.whl delete mode 100644 localwheels/securedrop_sdk-0.0.13-py3-none-any.whl delete mode 100644 localwheels/securedrop_sdk-0.1.0-py3-none-any.whl delete mode 100644 localwheels/securedrop_sdk-0.1.1-py3-none-any.whl delete mode 100644 localwheels/securedrop_sdk-0.2.0-py3-none-any.whl delete mode 100644 localwheels/securedrop_sdk-0.3.0-py3-none-any.whl delete mode 100644 localwheels/securedrop_sdk-0.3.1-py3-none-any.whl delete mode 100644 localwheels/securedrop_sdk-0.3.2-py3-none-any.whl delete mode 100644 localwheels/urllib3-1.24.3-py2.py3-none-any.whl delete mode 100644 localwheels/urllib3-1.24.3.tar.gz delete mode 100644 localwheels/urllib3-1.25.10-py2.py3-none-any.whl delete mode 100644 localwheels/urllib3-1.25.10.tar.gz create mode 100644 securedrop-client/sha256sums.txt create mode 100644 securedrop-client/sha256sums.txt.asc rename {localwheels => securedrop-client/wheels}/Mako-1.0.7-py3-none-any.whl (100%) rename {localwheels => securedrop-client/wheels}/Mako-1.0.7.tar.gz (100%) rename {localwheels => securedrop-client/wheels}/MarkupSafe-2.0.1-cp310-cp310-linux_x86_64.whl (100%) rename {localwheels => securedrop-client/wheels}/MarkupSafe-2.0.1-cp37-cp37m-linux_x86_64.whl (100%) rename {localwheels => securedrop-client/wheels}/MarkupSafe-2.0.1-cp39-cp39-linux_x86_64.whl (100%) rename {localwheels => securedrop-client/wheels}/MarkupSafe-2.0.1.tar.gz (100%) rename {localwheels => securedrop-client/wheels}/SQLAlchemy-1.3.3-cp310-cp310-linux_x86_64.whl (100%) rename {localwheels => securedrop-client/wheels}/SQLAlchemy-1.3.3-cp37-cp37m-linux_x86_64.whl (100%) rename {localwheels => securedrop-client/wheels}/SQLAlchemy-1.3.3-cp39-cp39-linux_x86_64.whl (100%) rename {localwheels => securedrop-client/wheels}/SQLAlchemy-1.3.3.tar.gz (100%) rename {localwheels => securedrop-client/wheels}/alembic-1.0.2-py2.py3-none-any.whl (100%) rename {localwheels => securedrop-client/wheels}/alembic-1.0.2.tar.gz (100%) rename {localwheels => securedrop-client/wheels}/alembic-1.1.0-py2.py3-none-any.whl (100%) rename {localwheels => securedrop-client/wheels}/alembic-1.1.0.tar.gz (100%) rename {localwheels => securedrop-client/wheels}/arrow-0.12.1-py2.py3-none-any.whl (100%) rename {localwheels => securedrop-client/wheels}/arrow-0.12.1.tar.gz (100%) rename {localwheels => securedrop-client/wheels}/certifi-2021.5.30-py2.py3-none-any.whl (100%) rename {localwheels => securedrop-client/wheels}/certifi-2021.5.30.tar.gz (100%) rename {localwheels => securedrop-client/wheels}/charset-normalizer-2.0.4.tar.gz (100%) rename {localwheels => securedrop-client/wheels}/charset_normalizer-2.0.4-py3-none-any.whl (100%) rename {localwheels => securedrop-client/wheels}/idna-3.2-py3-none-any.whl (100%) rename {localwheels => securedrop-client/wheels}/idna-3.2.tar.gz (100%) rename {localwheels => securedrop-client/wheels}/pathlib2-2.3.2-py2.py3-none-any.whl (100%) rename {localwheels => securedrop-client/wheels}/pathlib2-2.3.2.tar.gz (100%) rename {localwheels => securedrop-client/wheels}/python-dateutil-2.7.5.tar.gz (100%) rename {localwheels => securedrop-client/wheels}/python-editor-1.0.3.tar.gz (100%) rename {localwheels => securedrop-client/wheels}/python_dateutil-2.7.5-py2.py3-none-any.whl (100%) rename {localwheels => securedrop-client/wheels}/python_editor-1.0.3-py3-none-any.whl (100%) rename {localwheels => securedrop-client/wheels}/requests-2.26.0-py2.py3-none-any.whl (100%) rename {localwheels => securedrop-client/wheels}/requests-2.26.0.tar.gz (100%) rename {localwheels => securedrop-client/wheels}/securedrop-sdk-0.4.0.tar.gz (100%) rename {localwheels => securedrop-client/wheels}/securedrop_sdk-0.4.0-py3-none-any.whl (100%) rename {localwheels => securedrop-client/wheels}/six-1.11.0-py2.py3-none-any.whl (100%) rename {localwheels => securedrop-client/wheels}/six-1.11.0.tar.gz (100%) rename {localwheels => securedrop-client/wheels}/urllib3-1.26.6-py2.py3-none-any.whl (100%) rename {localwheels => securedrop-client/wheels}/urllib3-1.26.6.tar.gz (100%) create mode 100644 securedrop-log/sha256sums.txt create mode 100644 securedrop-log/sha256sums.txt.asc rename {localwheels => securedrop-log/wheels}/redis-3.3.11-py2.py3-none-any.whl (100%) rename {localwheels => securedrop-log/wheels}/redis-3.3.11.tar.gz (100%) create mode 100644 securedrop-proxy/sha256sums.txt create mode 100644 securedrop-proxy/sha256sums.txt.asc rename {localwheels => securedrop-proxy/wheels}/PyYAML-5.4.1-cp310-cp310-linux_x86_64.whl (100%) rename {localwheels => securedrop-proxy/wheels}/PyYAML-5.4.1-cp37-cp37m-linux_x86_64.whl (100%) rename {localwheels => securedrop-proxy/wheels}/PyYAML-5.4.1-cp39-cp39-linux_x86_64.whl (100%) rename {localwheels => securedrop-proxy/wheels}/PyYAML-5.4.1.tar.gz (100%) rename {localwheels => securedrop-proxy/wheels}/Werkzeug-2.0.2-py3-none-any.whl (100%) rename {localwheels => securedrop-proxy/wheels}/Werkzeug-2.0.2.tar.gz (100%) create mode 100644 securedrop-proxy/wheels/certifi-2021.5.30-py2.py3-none-any.whl create mode 100644 securedrop-proxy/wheels/certifi-2021.5.30.tar.gz create mode 100644 securedrop-proxy/wheels/charset-normalizer-2.0.4.tar.gz create mode 100644 securedrop-proxy/wheels/charset_normalizer-2.0.4-py3-none-any.whl rename {localwheels => securedrop-proxy/wheels}/furl-2.0.0-py2.py3-none-any.whl (100%) rename {localwheels => securedrop-proxy/wheels}/furl-2.0.0.tar.gz (100%) create mode 100644 securedrop-proxy/wheels/idna-3.2-py3-none-any.whl create mode 100644 securedrop-proxy/wheels/idna-3.2.tar.gz rename {localwheels => securedrop-proxy/wheels}/orderedmultidict-1.0-py3-none-any.whl (100%) rename {localwheels => securedrop-proxy/wheels}/orderedmultidict-1.0.tar.gz (100%) create mode 100644 securedrop-proxy/wheels/requests-2.26.0-py2.py3-none-any.whl create mode 100644 securedrop-proxy/wheels/requests-2.26.0.tar.gz create mode 100644 securedrop-proxy/wheels/six-1.11.0-py2.py3-none-any.whl create mode 100644 securedrop-proxy/wheels/six-1.11.0.tar.gz create mode 100644 securedrop-proxy/wheels/urllib3-1.26.6-py2.py3-none-any.whl create mode 100644 securedrop-proxy/wheels/urllib3-1.26.6.tar.gz delete mode 100644 sha256sums.txt delete mode 100644 sha256sums.txt.asc diff --git a/localwheels/MarkupSafe-1.0-py3-none-any.whl b/localwheels/MarkupSafe-1.0-py3-none-any.whl deleted file mode 100644 index f4dbe98f..00000000 --- a/localwheels/MarkupSafe-1.0-py3-none-any.whl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c6b726d2e9d6300a044cf6a37627f10994268d6ac39464bc0d725126609311a5 -size 12398 diff --git a/localwheels/MarkupSafe-1.0.tar.gz b/localwheels/MarkupSafe-1.0.tar.gz deleted file mode 100644 index ff2bbcf6..00000000 --- a/localwheels/MarkupSafe-1.0.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a6be69091dac236ea9c6bc7d012beab42010fa914c459791d627dad4910eb665 -size 14356 diff --git a/localwheels/MarkupSafe-1.1.1-cp37-cp37m-linux_x86_64.whl b/localwheels/MarkupSafe-1.1.1-cp37-cp37m-linux_x86_64.whl deleted file mode 100644 index f5b07c19..00000000 --- a/localwheels/MarkupSafe-1.1.1-cp37-cp37m-linux_x86_64.whl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2cbead4fb0a1c34655c6e11505e6bc165cbaf2f0b7429bec57c3729e3b846a5b -size 33698 diff --git a/localwheels/MarkupSafe-1.1.1-py3-none-any.whl b/localwheels/MarkupSafe-1.1.1-py3-none-any.whl deleted file mode 100644 index 4472eba3..00000000 --- a/localwheels/MarkupSafe-1.1.1-py3-none-any.whl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:1733a3715d37d075d79b6fe1c2e1055e8cf471fd7da53cdd284de09782bf75d1 -size 12629 diff --git a/localwheels/MarkupSafe-1.1.1.tar.gz b/localwheels/MarkupSafe-1.1.1.tar.gz deleted file mode 100644 index f7ce8ece..00000000 --- a/localwheels/MarkupSafe-1.1.1.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:29872e92839765e546828bb7754a68c418d927cd064fd4708fab9fe9c8bb116b -size 19151 diff --git a/localwheels/PyYAML-5.1-cp37-cp37m-linux_x86_64.whl b/localwheels/PyYAML-5.1-cp37-cp37m-linux_x86_64.whl deleted file mode 100644 index 78a0bbfd..00000000 --- a/localwheels/PyYAML-5.1-cp37-cp37m-linux_x86_64.whl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:59ff9ed67bd8be210f91fd20f0ef844ee897d11eb4c19c611a77a37896c124b9 -size 44074 diff --git a/localwheels/PyYAML-5.1.tar.gz b/localwheels/PyYAML-5.1.tar.gz deleted file mode 100644 index 2bae4be2..00000000 --- a/localwheels/PyYAML-5.1.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:436bc774ecf7c103814098159fbb84c2715d25980175292c648f2da143909f95 -size 274244 diff --git a/localwheels/PyYAML-5.3.1-cp37-cp37m-linux_x86_64.whl b/localwheels/PyYAML-5.3.1-cp37-cp37m-linux_x86_64.whl deleted file mode 100644 index df294bdb..00000000 --- a/localwheels/PyYAML-5.3.1-cp37-cp37m-linux_x86_64.whl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ff021f812a5dbaeb10678462952bb447bf6b322ab54923f5591811056a827c15 -size 44620 diff --git a/localwheels/PyYAML-5.3.1.tar.gz b/localwheels/PyYAML-5.3.1.tar.gz deleted file mode 100644 index 3b2581a8..00000000 --- a/localwheels/PyYAML-5.3.1.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b8eac752c5e14d3eca0e6dd9199cd627518cb5ec06add0de9d32baeee6fe645d -size 269377 diff --git a/localwheels/Werkzeug-0.16.0-py2.py3-none-any.whl b/localwheels/Werkzeug-0.16.0-py2.py3-none-any.whl deleted file mode 100644 index fee64aae..00000000 --- a/localwheels/Werkzeug-0.16.0-py2.py3-none-any.whl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:bd05301a84a9bc3b33f178e53446181879744b74f098ed35850ba21125379be1 -size 327277 diff --git a/localwheels/Werkzeug-0.16.0.tar.gz b/localwheels/Werkzeug-0.16.0.tar.gz deleted file mode 100644 index 795a3777..00000000 --- a/localwheels/Werkzeug-0.16.0.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7280924747b5733b246fe23972186c6b348f9ae29724135a6dfc1e53cea433e7 -size 925717 diff --git a/localwheels/certifi-2018.10.15-py2.py3-none-any.whl b/localwheels/certifi-2018.10.15-py2.py3-none-any.whl deleted file mode 100644 index bd7814a6..00000000 --- a/localwheels/certifi-2018.10.15-py2.py3-none-any.whl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2d5538b9d89b3a9cb423b8f08417c657856cab733d560067e864157f71b1c5aa -size 144596 diff --git a/localwheels/certifi-2018.10.15.tar.gz b/localwheels/certifi-2018.10.15.tar.gz deleted file mode 100644 index 0ebc9aa9..00000000 --- a/localwheels/certifi-2018.10.15.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:6d58c986d22b038c8c0df30d639f23a3e6d172a05c3583e766f4c0b785c0986a -size 145887 diff --git a/localwheels/chardet-3.0.4-py2.py3-none-any.whl b/localwheels/chardet-3.0.4-py2.py3-none-any.whl deleted file mode 100644 index d2470714..00000000 --- a/localwheels/chardet-3.0.4-py2.py3-none-any.whl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e5cf39014befb85add77118fdc946f0a3387df7840235ba5d20fd6e3a672410a -size 140896 diff --git a/localwheels/chardet-3.0.4.tar.gz b/localwheels/chardet-3.0.4.tar.gz deleted file mode 100644 index b05e4d8e..00000000 --- a/localwheels/chardet-3.0.4.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:84ab92ed1c4d4f16916e05906b6b75a6c0fb5db821cc65e70cbd64a3e2a5eaae -size 1868453 diff --git a/localwheels/idna-2.7-py2.py3-none-any.whl b/localwheels/idna-2.7-py2.py3-none-any.whl deleted file mode 100644 index a11ba3d5..00000000 --- a/localwheels/idna-2.7-py2.py3-none-any.whl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:69bbcd9c42b0add994610a68202532e9b327992b61344cd76e743ee592725f50 -size 58211 diff --git a/localwheels/idna-2.7.tar.gz b/localwheels/idna-2.7.tar.gz deleted file mode 100644 index cab4123a..00000000 --- a/localwheels/idna-2.7.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:684a38a6f903c1d71d6d5fac066b58d7768af4de2b832e426ec79c30daa94a16 -size 172698 diff --git a/localwheels/idna-2.8-py2.py3-none-any.whl b/localwheels/idna-2.8-py2.py3-none-any.whl deleted file mode 100644 index 0e632bdc..00000000 --- a/localwheels/idna-2.8-py2.py3-none-any.whl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2ac4f96345f5f4fc6ebe59f6254d7bfdb943251ccd3ee7e40fe53739b7c6ef92 -size 58593 diff --git a/localwheels/idna-2.8.tar.gz b/localwheels/idna-2.8.tar.gz deleted file mode 100644 index 81775e7c..00000000 --- a/localwheels/idna-2.8.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c357b3f628cf53ae2c4c05627ecc484553142ca23264e593d327bcde5e9c3407 -size 174481 diff --git a/localwheels/requests-2.20.0-py2.py3-none-any.whl b/localwheels/requests-2.20.0-py2.py3-none-any.whl deleted file mode 100644 index 27f209aa..00000000 --- a/localwheels/requests-2.20.0-py2.py3-none-any.whl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d87b2085783d31d874ac7bc62660e287932aaee7059e80b41b76462eb18d35cc -size 57880 diff --git a/localwheels/requests-2.20.0.tar.gz b/localwheels/requests-2.20.0.tar.gz deleted file mode 100644 index dee9ffad..00000000 --- a/localwheels/requests-2.20.0.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:99dcfdaaeb17caf6e526f32b6a7b780461512ab3f1d992187801694cba42770c -size 111179 diff --git a/localwheels/requests-2.22.0-py2.py3-none-any.whl b/localwheels/requests-2.22.0-py2.py3-none-any.whl deleted file mode 100644 index 0b9ca993..00000000 --- a/localwheels/requests-2.22.0-py2.py3-none-any.whl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:83ddbb326afd5524e7fbca582fd9673103652ea3b0c6601ac5ba1a4501f077c9 -size 57952 diff --git a/localwheels/requests-2.22.0.tar.gz b/localwheels/requests-2.22.0.tar.gz deleted file mode 100644 index 623d0155..00000000 --- a/localwheels/requests-2.22.0.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:11e007a8a2aa0323f5a921e9e6a2d7e4e67d9877e85773fba9ba6419025cbeb4 -size 113406 diff --git a/localwheels/securedrop-sdk-0.0.12.tar.gz b/localwheels/securedrop-sdk-0.0.12.tar.gz deleted file mode 100644 index 374c1cc6..00000000 --- a/localwheels/securedrop-sdk-0.0.12.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b5ddca26ce87d4007db5d64fe77d44b4086a902c3f79e69fb9a81343c81ce278 -size 24089 diff --git a/localwheels/securedrop-sdk-0.0.13.tar.gz b/localwheels/securedrop-sdk-0.0.13.tar.gz deleted file mode 100644 index 39379e47..00000000 --- a/localwheels/securedrop-sdk-0.0.13.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7763bb44755bdfc387ab6c002cbe49eeec2611feb04a8787c3c9f2aa48a1ee5f -size 24067 diff --git a/localwheels/securedrop-sdk-0.1.0.tar.gz b/localwheels/securedrop-sdk-0.1.0.tar.gz deleted file mode 100644 index 766baec3..00000000 --- a/localwheels/securedrop-sdk-0.1.0.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:970fde25e6238e1808ac120951ee972549f4cd7952966dfe29f731bb308cc0d8 -size 24115 diff --git a/localwheels/securedrop-sdk-0.1.1.tar.gz b/localwheels/securedrop-sdk-0.1.1.tar.gz deleted file mode 100644 index 7711dc74..00000000 --- a/localwheels/securedrop-sdk-0.1.1.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:138ce7a717db519c3c8d19b9475d7660fb7095d7608e8802723e682a7415e677 -size 24059 diff --git a/localwheels/securedrop-sdk-0.2.0.tar.gz b/localwheels/securedrop-sdk-0.2.0.tar.gz deleted file mode 100644 index e3eb6df6..00000000 --- a/localwheels/securedrop-sdk-0.2.0.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c4a343077e8c0a38914e17f6369b830f1e361f9d66699b20803c07b39472357f -size 27224 diff --git a/localwheels/securedrop-sdk-0.3.0.tar.gz b/localwheels/securedrop-sdk-0.3.0.tar.gz deleted file mode 100644 index 506cd774..00000000 --- a/localwheels/securedrop-sdk-0.3.0.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:8ef2e66d828090cf0d31a8851ae412b71f69bc12f8d9f20d87359df835a07581 -size 26943 diff --git a/localwheels/securedrop-sdk-0.3.1.tar.gz b/localwheels/securedrop-sdk-0.3.1.tar.gz deleted file mode 100644 index d26a6d82..00000000 --- a/localwheels/securedrop-sdk-0.3.1.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ea9a35f99b90dbbbf49fd25019df49d37a41a57d316f2b5d9a412ee5814bbfc5 -size 27018 diff --git a/localwheels/securedrop-sdk-0.3.2.tar.gz b/localwheels/securedrop-sdk-0.3.2.tar.gz deleted file mode 100644 index 9a82158a..00000000 --- a/localwheels/securedrop-sdk-0.3.2.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:376a36a56c16a903663fc62b3441ba6799f406d3b7e25ecb17ef82f5a65b46b0 -size 27018 diff --git a/localwheels/securedrop_sdk-0.0.12-py3-none-any.whl b/localwheels/securedrop_sdk-0.0.12-py3-none-any.whl deleted file mode 100644 index a6c95d24..00000000 --- a/localwheels/securedrop_sdk-0.0.12-py3-none-any.whl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d05bb78652c8771e6aa1aefcd76ade1fef08c563d2641acbc5ac8e1d635e6a53 -size 21967 diff --git a/localwheels/securedrop_sdk-0.0.13-py3-none-any.whl b/localwheels/securedrop_sdk-0.0.13-py3-none-any.whl deleted file mode 100644 index 49208a30..00000000 --- a/localwheels/securedrop_sdk-0.0.13-py3-none-any.whl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c8d98208fb2074336c06be3fef0994a8a57fde7a765cead12bc36e9128d319e2 -size 22110 diff --git a/localwheels/securedrop_sdk-0.1.0-py3-none-any.whl b/localwheels/securedrop_sdk-0.1.0-py3-none-any.whl deleted file mode 100644 index 7ad83530..00000000 --- a/localwheels/securedrop_sdk-0.1.0-py3-none-any.whl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:488417f9f08e4c432c81348dfbd5da0e756ded1737ba58b2ffc8f0e703abc1cb -size 22110 diff --git a/localwheels/securedrop_sdk-0.1.1-py3-none-any.whl b/localwheels/securedrop_sdk-0.1.1-py3-none-any.whl deleted file mode 100644 index e2b5700c..00000000 --- a/localwheels/securedrop_sdk-0.1.1-py3-none-any.whl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a631495acd741ab568410287879c5a3af3ccd38e00a2f3a127cc6b27cba99392 -size 22085 diff --git a/localwheels/securedrop_sdk-0.2.0-py3-none-any.whl b/localwheels/securedrop_sdk-0.2.0-py3-none-any.whl deleted file mode 100644 index 61c3b212..00000000 --- a/localwheels/securedrop_sdk-0.2.0-py3-none-any.whl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:bb949ed7f13d88ae9e269d2c8d037ecf52d36d864fbeea61dd13f4049a978bc4 -size 23804 diff --git a/localwheels/securedrop_sdk-0.3.0-py3-none-any.whl b/localwheels/securedrop_sdk-0.3.0-py3-none-any.whl deleted file mode 100644 index 29c59ded..00000000 --- a/localwheels/securedrop_sdk-0.3.0-py3-none-any.whl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:6dec75eeb434e9b99fff6113cb29fa6c5f7bc5d618d1bb2d451384eaf9833c87 -size 23861 diff --git a/localwheels/securedrop_sdk-0.3.1-py3-none-any.whl b/localwheels/securedrop_sdk-0.3.1-py3-none-any.whl deleted file mode 100644 index b34caecc..00000000 --- a/localwheels/securedrop_sdk-0.3.1-py3-none-any.whl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:651cb73aea890795d8fb83fae849dde841199a964a2ecfde6ab16d63917d762a -size 23957 diff --git a/localwheels/securedrop_sdk-0.3.2-py3-none-any.whl b/localwheels/securedrop_sdk-0.3.2-py3-none-any.whl deleted file mode 100644 index b8cfac27..00000000 --- a/localwheels/securedrop_sdk-0.3.2-py3-none-any.whl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a9a3b548ba6cf0afc4dea4f63817cbe75647bf9b8ec399adff787d5e52e59b4d -size 23958 diff --git a/localwheels/urllib3-1.24.3-py2.py3-none-any.whl b/localwheels/urllib3-1.24.3-py2.py3-none-any.whl deleted file mode 100644 index 61016b90..00000000 --- a/localwheels/urllib3-1.24.3-py2.py3-none-any.whl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:3d440cbb168e2c963d5099232bdb3f7390bf031b6270dad1bc79751698a1399a -size 118798 diff --git a/localwheels/urllib3-1.24.3.tar.gz b/localwheels/urllib3-1.24.3.tar.gz deleted file mode 100644 index a4ae6de6..00000000 --- a/localwheels/urllib3-1.24.3.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2393a695cd12afedd0dcb26fe5d50d0cf248e5a66f75dbd89a3d4eb333a61af4 -size 232237 diff --git a/localwheels/urllib3-1.25.10-py2.py3-none-any.whl b/localwheels/urllib3-1.25.10-py2.py3-none-any.whl deleted file mode 100644 index dec8f7ea..00000000 --- a/localwheels/urllib3-1.25.10-py2.py3-none-any.whl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c78fdeffd1a01640ea99d35851539a4bc91e46a672989c4d96663e3808121389 -size 127631 diff --git a/localwheels/urllib3-1.25.10.tar.gz b/localwheels/urllib3-1.25.10.tar.gz deleted file mode 100644 index 89a887da..00000000 --- a/localwheels/urllib3-1.25.10.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:91056c15fa70756691db97756772bb1eb9678fa585d9184f24534b100dc60f4a -size 256875 diff --git a/securedrop-client/sha256sums.txt b/securedrop-client/sha256sums.txt new file mode 100644 index 00000000..5a0b28bb --- /dev/null +++ b/securedrop-client/sha256sums.txt @@ -0,0 +1,36 @@ +99d041a616a3655725dffe459916627b75640a7d045ed33f51ce158a168ca3ef Mako-1.0.7-py3-none-any.whl +4e02fde57bd4abb5ec400181e4c314f56ac3e49ba4fb8b0d50bba18cb27d25ae Mako-1.0.7.tar.gz +bb3e541812095075336bcd935bb58941aedc0a7cba3c73d301dfdfd4d66a4eec MarkupSafe-2.0.1-cp310-cp310-linux_x86_64.whl +7b12b29ae39060c29ed0d8cb1052fa1672832b5096f859fd35e896ca3b04ddd3 MarkupSafe-2.0.1-cp37-cp37m-linux_x86_64.whl +9a055a175f351a559937fb80ebb2885d005283577a016c0139817e261fb759eb MarkupSafe-2.0.1-cp39-cp39-linux_x86_64.whl +594c67807fb16238b30c44bdf74f36c02cdf22d1c8cda91ef8a0ed8dabf5620a MarkupSafe-2.0.1.tar.gz +0c8d85dc65838bdecf084f70d6168740a54039f039914753cd89fbe546282539 SQLAlchemy-1.3.3-cp310-cp310-linux_x86_64.whl +dc0eb75221aefc3bfd912c5e10630194728f8af5124619e898c9b22049c62ddc SQLAlchemy-1.3.3-cp37-cp37m-linux_x86_64.whl +86ed1e4985a9fd4f3c784da1fcefb89f4435c1c70815f43e5741c0c9f3c79be3 SQLAlchemy-1.3.3-cp39-cp39-linux_x86_64.whl +91c54ca8345008fceaec987e10924bf07dcab36c442925357e5a467b36a38319 SQLAlchemy-1.3.3.tar.gz +ad1e93816f37f8445bb12dfe412579d2237818c9bbf34054a06e00d5f430c700 alembic-1.0.2-py2.py3-none-any.whl +04bcb970ca8659c3607ddd8ffd86cc9d6a99661c9bc590955e8813c66bfa582b alembic-1.0.2.tar.gz +5908bd669bc67bd8ee143150fd9d21205d7f9c36e87587e06370639138af4d01 alembic-1.1.0-py2.py3-none-any.whl +4a4811119efbdc5259d1f4c8f6de977b36ad3bcc919f59a29c2960c5ef9149e4 alembic-1.1.0.tar.gz +e2742eb33011f7aff1d5f27501d802680b6627939f20ff2ef56f050c14af59fa arrow-0.12.1-py2.py3-none-any.whl +a558d3b7b6ce7ffc74206a86c147052de23d3d4ef0e17c210dd478c53575c4cd arrow-0.12.1.tar.gz +2dee87f82eab7a047280038bacb5bdbc4ee308ae39522ccd9da2ceefe7b6f84e certifi-2021.5.30-py2.py3-none-any.whl +2bbf76fd432960138b3ef6dda3dde0544f27cbf8546c458e60baf371917ba9ee certifi-2021.5.30.tar.gz +f23667ebe1084be45f6ae0538e4a5a865206544097e4e8bbcacf42cd02a348f3 charset-normalizer-2.0.4.tar.gz +cd9a4492eef4e5276c07f9c0dc1338e7be3e95f2a536bf2c5b620b1f27d03d74 charset_normalizer-2.0.4-py3-none-any.whl +691d9fc304505c65ea9ceb8eb7385d63988e344c065cacbbd2156ff9bdfcf0c1 idna-3.2-py3-none-any.whl +467fbad99067910785144ce333826c71fb0e63a425657295239737f7ecd125f3 idna-3.2.tar.gz +90173e12465846173da76c62892b238c14a2a0e17aae580933041004fc01b713 pathlib2-2.3.2-py2.py3-none-any.whl +8eb170f8d0d61825e09a95b38be068299ddeda82f35e96c3301a8a5e7604cb83 pathlib2-2.3.2.tar.gz +88f9287c0174266bb0d8cedd395cfba9c58e87e5ad86b2ce58859bc11be3cf02 python-dateutil-2.7.5.tar.gz +a3c066acee22a1c94f63938341d4fb374e3fdd69366ed6603d7b24bed1efc565 python-editor-1.0.3.tar.gz +2961735b604e5165d923a4e39b9bcbde6a4c363f257f5477b6339459fd7c1679 python_dateutil-2.7.5-py2.py3-none-any.whl +42e5b2a7583cd278dff00ae1fc6b8b735da0502ceeb0914991eaaf5f91ac84ac python_editor-1.0.3-py3-none-any.whl +7cec5239ce6ec4f6bf3d1b8c7e4d34ebe1b86d3896fe9657a8465ee4d7282bc8 requests-2.26.0-py2.py3-none-any.whl +b8aa58f8cf793ffd8782d3d8cb19e66ef36f7aba4353eec859e74678b01b07a7 requests-2.26.0.tar.gz +c08f77bae5f900b1fbcd3b5aae1c931dc877e7289d69aa5a8b1e3c3f4e0dc561 securedrop-sdk-0.4.0.tar.gz +54b870fd3566914c2ba13aeb5c7eaa0be8ac128be72b45613843c0b75040bd39 securedrop_sdk-0.4.0-py3-none-any.whl +eb52689b06ca7433c1cac3b91f320400bd3b358790b7ff4b6367cb1c81d37561 six-1.11.0-py2.py3-none-any.whl +70e8a77beed4562e7f14fe23a786b54f6296e34344c23bc42f07b15018ff98e9 six-1.11.0.tar.gz +7a2814749409a681ab58babe6539b02a2f84f6649904211f90fb649811ae7b36 urllib3-1.26.6-py2.py3-none-any.whl +f57b4c16c62fa2760b7e3d97c35b255512fb6b59a259730f36ba32ce9f8e342f urllib3-1.26.6.tar.gz diff --git a/securedrop-client/sha256sums.txt.asc b/securedrop-client/sha256sums.txt.asc new file mode 100644 index 00000000..48f79ccd --- /dev/null +++ b/securedrop-client/sha256sums.txt.asc @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +iQIzBAABCAAdFiEE2MtZ8F27ngU4xIGd8QX4EBsFJpsFAmMyDDYACgkQ8QX4EBsF +JpsS6w//Yf7PHYYnbjJUpqdjiRojJJVawux6bIkhMdipQucPGGIr7uy7HgqHH18j +8dHWubl9t7YcN/YYQSyLk97cS7SoIjE3b5D6jqyiPZfkAREzLX3132iou1dcaeMD +sPkLd3JAOYpvbg7tpzdSV7G4dkZaCBjQiX0zPYIDeQe2SFZm6pBglrmqaWX3hAl5 +Koxi+9R3tRY8R1j+0BPhogxo05zyAnHL+721S7TWbO5iARXB31Q2zcduH/lPXc3Y +8b3iqv+BcWBefRKk6LRfv2xZqy3GDpeltJOmIKt77B6oYgr+CWFbGLIByCLDx4/c +C4IyxpHtr41xWY3i0AVnTyDnSwj9EeTh0tFegGymNYuDdK/kChhmF91GaI71jS8p +1qMnTcv2JYewjPvlW2QYOulBPKCRtfc9zDnyuQ4Mv+IocQP/J9YWfHmVX8+PKlZv +R+n9CWbCJNw0HL1oH2HFj9rnG8615LmdsJZpAaJxYRbd+CmkKK25ZL7EBbkTIbUh +aGbuvwe6H5uL79TWEM73E5LE/QiclXZn7NJ1o2xbQkxcgLzf4OmWFMpzylE6zWga +a5LvNwyZt65e6a5/QGPjexit2kluw2FE//tey4C6DYw7Rc7WndtLySE6t79Lgqi1 +mxlnMHJbjGk7wGvZoWRdYZzfckA3IjoZXpnl9ixJM6geZ5hjGqE= +=ZVDI +-----END PGP SIGNATURE----- diff --git a/localwheels/Mako-1.0.7-py3-none-any.whl b/securedrop-client/wheels/Mako-1.0.7-py3-none-any.whl similarity index 100% rename from localwheels/Mako-1.0.7-py3-none-any.whl rename to securedrop-client/wheels/Mako-1.0.7-py3-none-any.whl diff --git a/localwheels/Mako-1.0.7.tar.gz b/securedrop-client/wheels/Mako-1.0.7.tar.gz similarity index 100% rename from localwheels/Mako-1.0.7.tar.gz rename to securedrop-client/wheels/Mako-1.0.7.tar.gz diff --git a/localwheels/MarkupSafe-2.0.1-cp310-cp310-linux_x86_64.whl b/securedrop-client/wheels/MarkupSafe-2.0.1-cp310-cp310-linux_x86_64.whl similarity index 100% rename from localwheels/MarkupSafe-2.0.1-cp310-cp310-linux_x86_64.whl rename to securedrop-client/wheels/MarkupSafe-2.0.1-cp310-cp310-linux_x86_64.whl diff --git a/localwheels/MarkupSafe-2.0.1-cp37-cp37m-linux_x86_64.whl b/securedrop-client/wheels/MarkupSafe-2.0.1-cp37-cp37m-linux_x86_64.whl similarity index 100% rename from localwheels/MarkupSafe-2.0.1-cp37-cp37m-linux_x86_64.whl rename to securedrop-client/wheels/MarkupSafe-2.0.1-cp37-cp37m-linux_x86_64.whl diff --git a/localwheels/MarkupSafe-2.0.1-cp39-cp39-linux_x86_64.whl b/securedrop-client/wheels/MarkupSafe-2.0.1-cp39-cp39-linux_x86_64.whl similarity index 100% rename from localwheels/MarkupSafe-2.0.1-cp39-cp39-linux_x86_64.whl rename to securedrop-client/wheels/MarkupSafe-2.0.1-cp39-cp39-linux_x86_64.whl diff --git a/localwheels/MarkupSafe-2.0.1.tar.gz b/securedrop-client/wheels/MarkupSafe-2.0.1.tar.gz similarity index 100% rename from localwheels/MarkupSafe-2.0.1.tar.gz rename to securedrop-client/wheels/MarkupSafe-2.0.1.tar.gz diff --git a/localwheels/SQLAlchemy-1.3.3-cp310-cp310-linux_x86_64.whl b/securedrop-client/wheels/SQLAlchemy-1.3.3-cp310-cp310-linux_x86_64.whl similarity index 100% rename from localwheels/SQLAlchemy-1.3.3-cp310-cp310-linux_x86_64.whl rename to securedrop-client/wheels/SQLAlchemy-1.3.3-cp310-cp310-linux_x86_64.whl diff --git a/localwheels/SQLAlchemy-1.3.3-cp37-cp37m-linux_x86_64.whl b/securedrop-client/wheels/SQLAlchemy-1.3.3-cp37-cp37m-linux_x86_64.whl similarity index 100% rename from localwheels/SQLAlchemy-1.3.3-cp37-cp37m-linux_x86_64.whl rename to securedrop-client/wheels/SQLAlchemy-1.3.3-cp37-cp37m-linux_x86_64.whl diff --git a/localwheels/SQLAlchemy-1.3.3-cp39-cp39-linux_x86_64.whl b/securedrop-client/wheels/SQLAlchemy-1.3.3-cp39-cp39-linux_x86_64.whl similarity index 100% rename from localwheels/SQLAlchemy-1.3.3-cp39-cp39-linux_x86_64.whl rename to securedrop-client/wheels/SQLAlchemy-1.3.3-cp39-cp39-linux_x86_64.whl diff --git a/localwheels/SQLAlchemy-1.3.3.tar.gz b/securedrop-client/wheels/SQLAlchemy-1.3.3.tar.gz similarity index 100% rename from localwheels/SQLAlchemy-1.3.3.tar.gz rename to securedrop-client/wheels/SQLAlchemy-1.3.3.tar.gz diff --git a/localwheels/alembic-1.0.2-py2.py3-none-any.whl b/securedrop-client/wheels/alembic-1.0.2-py2.py3-none-any.whl similarity index 100% rename from localwheels/alembic-1.0.2-py2.py3-none-any.whl rename to securedrop-client/wheels/alembic-1.0.2-py2.py3-none-any.whl diff --git a/localwheels/alembic-1.0.2.tar.gz b/securedrop-client/wheels/alembic-1.0.2.tar.gz similarity index 100% rename from localwheels/alembic-1.0.2.tar.gz rename to securedrop-client/wheels/alembic-1.0.2.tar.gz diff --git a/localwheels/alembic-1.1.0-py2.py3-none-any.whl b/securedrop-client/wheels/alembic-1.1.0-py2.py3-none-any.whl similarity index 100% rename from localwheels/alembic-1.1.0-py2.py3-none-any.whl rename to securedrop-client/wheels/alembic-1.1.0-py2.py3-none-any.whl diff --git a/localwheels/alembic-1.1.0.tar.gz b/securedrop-client/wheels/alembic-1.1.0.tar.gz similarity index 100% rename from localwheels/alembic-1.1.0.tar.gz rename to securedrop-client/wheels/alembic-1.1.0.tar.gz diff --git a/localwheels/arrow-0.12.1-py2.py3-none-any.whl b/securedrop-client/wheels/arrow-0.12.1-py2.py3-none-any.whl similarity index 100% rename from localwheels/arrow-0.12.1-py2.py3-none-any.whl rename to securedrop-client/wheels/arrow-0.12.1-py2.py3-none-any.whl diff --git a/localwheels/arrow-0.12.1.tar.gz b/securedrop-client/wheels/arrow-0.12.1.tar.gz similarity index 100% rename from localwheels/arrow-0.12.1.tar.gz rename to securedrop-client/wheels/arrow-0.12.1.tar.gz diff --git a/localwheels/certifi-2021.5.30-py2.py3-none-any.whl b/securedrop-client/wheels/certifi-2021.5.30-py2.py3-none-any.whl similarity index 100% rename from localwheels/certifi-2021.5.30-py2.py3-none-any.whl rename to securedrop-client/wheels/certifi-2021.5.30-py2.py3-none-any.whl diff --git a/localwheels/certifi-2021.5.30.tar.gz b/securedrop-client/wheels/certifi-2021.5.30.tar.gz similarity index 100% rename from localwheels/certifi-2021.5.30.tar.gz rename to securedrop-client/wheels/certifi-2021.5.30.tar.gz diff --git a/localwheels/charset-normalizer-2.0.4.tar.gz b/securedrop-client/wheels/charset-normalizer-2.0.4.tar.gz similarity index 100% rename from localwheels/charset-normalizer-2.0.4.tar.gz rename to securedrop-client/wheels/charset-normalizer-2.0.4.tar.gz diff --git a/localwheels/charset_normalizer-2.0.4-py3-none-any.whl b/securedrop-client/wheels/charset_normalizer-2.0.4-py3-none-any.whl similarity index 100% rename from localwheels/charset_normalizer-2.0.4-py3-none-any.whl rename to securedrop-client/wheels/charset_normalizer-2.0.4-py3-none-any.whl diff --git a/localwheels/idna-3.2-py3-none-any.whl b/securedrop-client/wheels/idna-3.2-py3-none-any.whl similarity index 100% rename from localwheels/idna-3.2-py3-none-any.whl rename to securedrop-client/wheels/idna-3.2-py3-none-any.whl diff --git a/localwheels/idna-3.2.tar.gz b/securedrop-client/wheels/idna-3.2.tar.gz similarity index 100% rename from localwheels/idna-3.2.tar.gz rename to securedrop-client/wheels/idna-3.2.tar.gz diff --git a/localwheels/pathlib2-2.3.2-py2.py3-none-any.whl b/securedrop-client/wheels/pathlib2-2.3.2-py2.py3-none-any.whl similarity index 100% rename from localwheels/pathlib2-2.3.2-py2.py3-none-any.whl rename to securedrop-client/wheels/pathlib2-2.3.2-py2.py3-none-any.whl diff --git a/localwheels/pathlib2-2.3.2.tar.gz b/securedrop-client/wheels/pathlib2-2.3.2.tar.gz similarity index 100% rename from localwheels/pathlib2-2.3.2.tar.gz rename to securedrop-client/wheels/pathlib2-2.3.2.tar.gz diff --git a/localwheels/python-dateutil-2.7.5.tar.gz b/securedrop-client/wheels/python-dateutil-2.7.5.tar.gz similarity index 100% rename from localwheels/python-dateutil-2.7.5.tar.gz rename to securedrop-client/wheels/python-dateutil-2.7.5.tar.gz diff --git a/localwheels/python-editor-1.0.3.tar.gz b/securedrop-client/wheels/python-editor-1.0.3.tar.gz similarity index 100% rename from localwheels/python-editor-1.0.3.tar.gz rename to securedrop-client/wheels/python-editor-1.0.3.tar.gz diff --git a/localwheels/python_dateutil-2.7.5-py2.py3-none-any.whl b/securedrop-client/wheels/python_dateutil-2.7.5-py2.py3-none-any.whl similarity index 100% rename from localwheels/python_dateutil-2.7.5-py2.py3-none-any.whl rename to securedrop-client/wheels/python_dateutil-2.7.5-py2.py3-none-any.whl diff --git a/localwheels/python_editor-1.0.3-py3-none-any.whl b/securedrop-client/wheels/python_editor-1.0.3-py3-none-any.whl similarity index 100% rename from localwheels/python_editor-1.0.3-py3-none-any.whl rename to securedrop-client/wheels/python_editor-1.0.3-py3-none-any.whl diff --git a/localwheels/requests-2.26.0-py2.py3-none-any.whl b/securedrop-client/wheels/requests-2.26.0-py2.py3-none-any.whl similarity index 100% rename from localwheels/requests-2.26.0-py2.py3-none-any.whl rename to securedrop-client/wheels/requests-2.26.0-py2.py3-none-any.whl diff --git a/localwheels/requests-2.26.0.tar.gz b/securedrop-client/wheels/requests-2.26.0.tar.gz similarity index 100% rename from localwheels/requests-2.26.0.tar.gz rename to securedrop-client/wheels/requests-2.26.0.tar.gz diff --git a/localwheels/securedrop-sdk-0.4.0.tar.gz b/securedrop-client/wheels/securedrop-sdk-0.4.0.tar.gz similarity index 100% rename from localwheels/securedrop-sdk-0.4.0.tar.gz rename to securedrop-client/wheels/securedrop-sdk-0.4.0.tar.gz diff --git a/localwheels/securedrop_sdk-0.4.0-py3-none-any.whl b/securedrop-client/wheels/securedrop_sdk-0.4.0-py3-none-any.whl similarity index 100% rename from localwheels/securedrop_sdk-0.4.0-py3-none-any.whl rename to securedrop-client/wheels/securedrop_sdk-0.4.0-py3-none-any.whl diff --git a/localwheels/six-1.11.0-py2.py3-none-any.whl b/securedrop-client/wheels/six-1.11.0-py2.py3-none-any.whl similarity index 100% rename from localwheels/six-1.11.0-py2.py3-none-any.whl rename to securedrop-client/wheels/six-1.11.0-py2.py3-none-any.whl diff --git a/localwheels/six-1.11.0.tar.gz b/securedrop-client/wheels/six-1.11.0.tar.gz similarity index 100% rename from localwheels/six-1.11.0.tar.gz rename to securedrop-client/wheels/six-1.11.0.tar.gz diff --git a/localwheels/urllib3-1.26.6-py2.py3-none-any.whl b/securedrop-client/wheels/urllib3-1.26.6-py2.py3-none-any.whl similarity index 100% rename from localwheels/urllib3-1.26.6-py2.py3-none-any.whl rename to securedrop-client/wheels/urllib3-1.26.6-py2.py3-none-any.whl diff --git a/localwheels/urllib3-1.26.6.tar.gz b/securedrop-client/wheels/urllib3-1.26.6.tar.gz similarity index 100% rename from localwheels/urllib3-1.26.6.tar.gz rename to securedrop-client/wheels/urllib3-1.26.6.tar.gz diff --git a/securedrop-log/sha256sums.txt b/securedrop-log/sha256sums.txt new file mode 100644 index 00000000..5bf6ad86 --- /dev/null +++ b/securedrop-log/sha256sums.txt @@ -0,0 +1,2 @@ +974926675d246ade47a101e305596a0f50282a405a03b7173a70d99c79e6370c redis-3.3.11-py2.py3-none-any.whl +8d0fc278d3f5e1249967cba2eb4a5632d19e45ce5c09442b8422d15ee2c22cc2 redis-3.3.11.tar.gz diff --git a/securedrop-log/sha256sums.txt.asc b/securedrop-log/sha256sums.txt.asc new file mode 100644 index 00000000..072ebc1d --- /dev/null +++ b/securedrop-log/sha256sums.txt.asc @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +iQIzBAABCAAdFiEE2MtZ8F27ngU4xIGd8QX4EBsFJpsFAmMyAzwACgkQ8QX4EBsF +Jpuu8A/9HaV6mgDLC4qekYYPiPgi+6DjM+xnd05Cg5tgUAmd9++zNGkn2REs2nPc +xwEkmR95TmLKzxrVg9ArWDfX35IgyJ+BNlJAHKjj1WB5R2rtuppDO3g3OnuLLH7Y +9yG7CBLNbClcv09LfF9165Z/4IWSzU13mzr22zxUHjmkxU4QXgYcyhZt1cDYCnPw +hEjZ1njtvGiDH79fplvtBctYJnoIB8tZcAcn5BDFGxZceif5HAMcA6CfxzQ0Z7Ty +WmBz5fkIRTqcPbyqIvMB0Rt0b3FoT/2wgO44sfdIyHGbyXgzESTLYu8riitirAPQ +iAIumIbnhmEmMxQoFKvA/l24a3ZCIGtBIV2VlZA+My6SVBqYeUnPwaJaDc6wIhhQ +jByOsR3COFAvWNPCbVO6IvU5O0AFxxzh90r5kdxfeQCcnT7C5vY5MWhh3ZabVPf3 +Rf7EOwi+75FSe2qwpgtxyqOYq5yrNdGEdyNLgZE2kuzfv3nW59zDotFifqek0Rcc +hqcI1BHtsOV+Gvfe1e4KtNb0wQ1XzoEAo6aW8rBrI75zOyRhq9wZ/QY+IeXMflN0 +1qsaj+PUdjJ6996IB0BHU8IIZBGeGNNtkP0A4njx1w6N+C634sg8Qf0VdkgY8yRi ++dKfaVUC3csoanXQuxwDvowhHML7JvLSLSRnEZQgxS8CW7TY55U= +=VjwK +-----END PGP SIGNATURE----- diff --git a/localwheels/redis-3.3.11-py2.py3-none-any.whl b/securedrop-log/wheels/redis-3.3.11-py2.py3-none-any.whl similarity index 100% rename from localwheels/redis-3.3.11-py2.py3-none-any.whl rename to securedrop-log/wheels/redis-3.3.11-py2.py3-none-any.whl diff --git a/localwheels/redis-3.3.11.tar.gz b/securedrop-log/wheels/redis-3.3.11.tar.gz similarity index 100% rename from localwheels/redis-3.3.11.tar.gz rename to securedrop-log/wheels/redis-3.3.11.tar.gz diff --git a/securedrop-proxy/sha256sums.txt b/securedrop-proxy/sha256sums.txt new file mode 100644 index 00000000..b200953e --- /dev/null +++ b/securedrop-proxy/sha256sums.txt @@ -0,0 +1,22 @@ +24ba69a7c05ba63fef9732bf26cc5d328b2089e525ee87fc9ec572c92f88dd46 PyYAML-5.4.1-cp310-cp310-linux_x86_64.whl +be111e40b3e32707b373b90ef490fa0908bf7769c77f8cf940004f0c957954f6 PyYAML-5.4.1-cp37-cp37m-linux_x86_64.whl +645773490bf785cd110b4a5e47635990c46219b7c4f01b424f0409cf01d12f2b PyYAML-5.4.1-cp39-cp39-linux_x86_64.whl +607774cbba28732bfa802b54baa7484215f530991055bb562efbed5b2f20a45e PyYAML-5.4.1.tar.gz +55e8ebd03bf69dc51cd986ba7bf3e25f549bb27a22de9d6bdd15c855ba8f1f99 Werkzeug-2.0.2-py3-none-any.whl +aa2bb6fc8dee8d6c504c0ac1e7f5f7dc5810a9903e793b6f715a9f015bdadb9a Werkzeug-2.0.2.tar.gz +2dee87f82eab7a047280038bacb5bdbc4ee308ae39522ccd9da2ceefe7b6f84e certifi-2021.5.30-py2.py3-none-any.whl +2bbf76fd432960138b3ef6dda3dde0544f27cbf8546c458e60baf371917ba9ee certifi-2021.5.30.tar.gz +f23667ebe1084be45f6ae0538e4a5a865206544097e4e8bbcacf42cd02a348f3 charset-normalizer-2.0.4.tar.gz +cd9a4492eef4e5276c07f9c0dc1338e7be3e95f2a536bf2c5b620b1f27d03d74 charset_normalizer-2.0.4-py3-none-any.whl +9f50360f6e4a0f1d0a35fb4997878e7186a73331f0fde5f6fc9b1bb9f006e6cc furl-2.0.0-py2.py3-none-any.whl +fdcaedc1fb19a63d7d875b0105b0a5b496dd0989330d454a42bcb401fa5454ec furl-2.0.0.tar.gz +691d9fc304505c65ea9ceb8eb7385d63988e344c065cacbbd2156ff9bdfcf0c1 idna-3.2-py3-none-any.whl +467fbad99067910785144ce333826c71fb0e63a425657295239737f7ecd125f3 idna-3.2.tar.gz +f6022beda2b3387c61e6eb7e0e1e3e2832fd9f55f3f64d4b4b226eea7487327f orderedmultidict-1.0-py3-none-any.whl +b89895ba6438038d0bdf88020ceff876cf3eae0d5c66a69b526fab31125db2c5 orderedmultidict-1.0.tar.gz +7cec5239ce6ec4f6bf3d1b8c7e4d34ebe1b86d3896fe9657a8465ee4d7282bc8 requests-2.26.0-py2.py3-none-any.whl +b8aa58f8cf793ffd8782d3d8cb19e66ef36f7aba4353eec859e74678b01b07a7 requests-2.26.0.tar.gz +eb52689b06ca7433c1cac3b91f320400bd3b358790b7ff4b6367cb1c81d37561 six-1.11.0-py2.py3-none-any.whl +70e8a77beed4562e7f14fe23a786b54f6296e34344c23bc42f07b15018ff98e9 six-1.11.0.tar.gz +7a2814749409a681ab58babe6539b02a2f84f6649904211f90fb649811ae7b36 urllib3-1.26.6-py2.py3-none-any.whl +f57b4c16c62fa2760b7e3d97c35b255512fb6b59a259730f36ba32ce9f8e342f urllib3-1.26.6.tar.gz diff --git a/securedrop-proxy/sha256sums.txt.asc b/securedrop-proxy/sha256sums.txt.asc new file mode 100644 index 00000000..adf9ce84 --- /dev/null +++ b/securedrop-proxy/sha256sums.txt.asc @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +iQIzBAABCAAdFiEE2MtZ8F27ngU4xIGd8QX4EBsFJpsFAmMyCa0ACgkQ8QX4EBsF +Jpu18Q//XmVCQ068zPQvDtrhe9QVriEAp34ytVjNv+XCwR2b5URvAF02aWyH5OlH +YYqmEva5wtLRK+YX2Zr2xaDoECVEdO9Nm+46cKbfgRiNKCnyoD7mmDI6gjd51dOr +IHX7GGlZO0LVgB7FLeS76gP75K5rVI3I0Ai0EVkasIpdqfgKQQL7uWsZ4Bsf0nmL +KOiz7PKGHEK9wkT89XDhQ/5l1BBVk+kTdh2qMWHvaxVd7LrwH4YcgO5Lv6Oy9x7J +QIwPMMMmTrNpqfv7m27B9HlDPvCSNRmHle2MQPCsKJhReSDSG3QvAyuq7xmKA9hs +eG+OWgkEazPr6INug5x5GSSyhNZ+lTWwsIDa57PomVqo1b30VM8ZN7PKUDoDqYZo +7cosrRgJUYxlfNYNupxkk4hM7k30Fm4G+Nye35GxRSzH+CXC4eB99CDsP+utsmrZ +UXtfHl5tyfRrc3m6hVUQfX9Nzi6juUjlV16bZLCEX02g6jJlYcMrpPuV68SE66Wj +hGjD5luF/nJXNL8OMWIk6ENM+fD0hIvtCmHmecLNK8IiommjrTu9mrPEigtubGbt +wZNM92kQj1nhu60RrbLx54MbzV07C2TS6ORfinXW8x+GavcudmYpEdaK1JSm9c0u +1liYH1kQZGP32uFIqr5T+Hw+5qlkNMGuUh+TsAuKzjfhTOi43d4= +=qe/9 +-----END PGP SIGNATURE----- diff --git a/localwheels/PyYAML-5.4.1-cp310-cp310-linux_x86_64.whl b/securedrop-proxy/wheels/PyYAML-5.4.1-cp310-cp310-linux_x86_64.whl similarity index 100% rename from localwheels/PyYAML-5.4.1-cp310-cp310-linux_x86_64.whl rename to securedrop-proxy/wheels/PyYAML-5.4.1-cp310-cp310-linux_x86_64.whl diff --git a/localwheels/PyYAML-5.4.1-cp37-cp37m-linux_x86_64.whl b/securedrop-proxy/wheels/PyYAML-5.4.1-cp37-cp37m-linux_x86_64.whl similarity index 100% rename from localwheels/PyYAML-5.4.1-cp37-cp37m-linux_x86_64.whl rename to securedrop-proxy/wheels/PyYAML-5.4.1-cp37-cp37m-linux_x86_64.whl diff --git a/localwheels/PyYAML-5.4.1-cp39-cp39-linux_x86_64.whl b/securedrop-proxy/wheels/PyYAML-5.4.1-cp39-cp39-linux_x86_64.whl similarity index 100% rename from localwheels/PyYAML-5.4.1-cp39-cp39-linux_x86_64.whl rename to securedrop-proxy/wheels/PyYAML-5.4.1-cp39-cp39-linux_x86_64.whl diff --git a/localwheels/PyYAML-5.4.1.tar.gz b/securedrop-proxy/wheels/PyYAML-5.4.1.tar.gz similarity index 100% rename from localwheels/PyYAML-5.4.1.tar.gz rename to securedrop-proxy/wheels/PyYAML-5.4.1.tar.gz diff --git a/localwheels/Werkzeug-2.0.2-py3-none-any.whl b/securedrop-proxy/wheels/Werkzeug-2.0.2-py3-none-any.whl similarity index 100% rename from localwheels/Werkzeug-2.0.2-py3-none-any.whl rename to securedrop-proxy/wheels/Werkzeug-2.0.2-py3-none-any.whl diff --git a/localwheels/Werkzeug-2.0.2.tar.gz b/securedrop-proxy/wheels/Werkzeug-2.0.2.tar.gz similarity index 100% rename from localwheels/Werkzeug-2.0.2.tar.gz rename to securedrop-proxy/wheels/Werkzeug-2.0.2.tar.gz diff --git a/securedrop-proxy/wheels/certifi-2021.5.30-py2.py3-none-any.whl b/securedrop-proxy/wheels/certifi-2021.5.30-py2.py3-none-any.whl new file mode 100644 index 00000000..8c33f88e --- /dev/null +++ b/securedrop-proxy/wheels/certifi-2021.5.30-py2.py3-none-any.whl @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2dee87f82eab7a047280038bacb5bdbc4ee308ae39522ccd9da2ceefe7b6f84e +size 145531 diff --git a/securedrop-proxy/wheels/certifi-2021.5.30.tar.gz b/securedrop-proxy/wheels/certifi-2021.5.30.tar.gz new file mode 100644 index 00000000..161f566e --- /dev/null +++ b/securedrop-proxy/wheels/certifi-2021.5.30.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2bbf76fd432960138b3ef6dda3dde0544f27cbf8546c458e60baf371917ba9ee +size 147455 diff --git a/securedrop-proxy/wheels/charset-normalizer-2.0.4.tar.gz b/securedrop-proxy/wheels/charset-normalizer-2.0.4.tar.gz new file mode 100644 index 00000000..9ec4ba93 --- /dev/null +++ b/securedrop-proxy/wheels/charset-normalizer-2.0.4.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f23667ebe1084be45f6ae0538e4a5a865206544097e4e8bbcacf42cd02a348f3 +size 345968 diff --git a/securedrop-proxy/wheels/charset_normalizer-2.0.4-py3-none-any.whl b/securedrop-proxy/wheels/charset_normalizer-2.0.4-py3-none-any.whl new file mode 100644 index 00000000..9bbf1570 --- /dev/null +++ b/securedrop-proxy/wheels/charset_normalizer-2.0.4-py3-none-any.whl @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cd9a4492eef4e5276c07f9c0dc1338e7be3e95f2a536bf2c5b620b1f27d03d74 +size 36415 diff --git a/localwheels/furl-2.0.0-py2.py3-none-any.whl b/securedrop-proxy/wheels/furl-2.0.0-py2.py3-none-any.whl similarity index 100% rename from localwheels/furl-2.0.0-py2.py3-none-any.whl rename to securedrop-proxy/wheels/furl-2.0.0-py2.py3-none-any.whl diff --git a/localwheels/furl-2.0.0.tar.gz b/securedrop-proxy/wheels/furl-2.0.0.tar.gz similarity index 100% rename from localwheels/furl-2.0.0.tar.gz rename to securedrop-proxy/wheels/furl-2.0.0.tar.gz diff --git a/securedrop-proxy/wheels/idna-3.2-py3-none-any.whl b/securedrop-proxy/wheels/idna-3.2-py3-none-any.whl new file mode 100644 index 00000000..89bbe3d5 --- /dev/null +++ b/securedrop-proxy/wheels/idna-3.2-py3-none-any.whl @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:691d9fc304505c65ea9ceb8eb7385d63988e344c065cacbbd2156ff9bdfcf0c1 +size 59633 diff --git a/securedrop-proxy/wheels/idna-3.2.tar.gz b/securedrop-proxy/wheels/idna-3.2.tar.gz new file mode 100644 index 00000000..9739687d --- /dev/null +++ b/securedrop-proxy/wheels/idna-3.2.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:467fbad99067910785144ce333826c71fb0e63a425657295239737f7ecd125f3 +size 243962 diff --git a/localwheels/orderedmultidict-1.0-py3-none-any.whl b/securedrop-proxy/wheels/orderedmultidict-1.0-py3-none-any.whl similarity index 100% rename from localwheels/orderedmultidict-1.0-py3-none-any.whl rename to securedrop-proxy/wheels/orderedmultidict-1.0-py3-none-any.whl diff --git a/localwheels/orderedmultidict-1.0.tar.gz b/securedrop-proxy/wheels/orderedmultidict-1.0.tar.gz similarity index 100% rename from localwheels/orderedmultidict-1.0.tar.gz rename to securedrop-proxy/wheels/orderedmultidict-1.0.tar.gz diff --git a/securedrop-proxy/wheels/requests-2.26.0-py2.py3-none-any.whl b/securedrop-proxy/wheels/requests-2.26.0-py2.py3-none-any.whl new file mode 100644 index 00000000..83f37efe --- /dev/null +++ b/securedrop-proxy/wheels/requests-2.26.0-py2.py3-none-any.whl @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7cec5239ce6ec4f6bf3d1b8c7e4d34ebe1b86d3896fe9657a8465ee4d7282bc8 +size 62251 diff --git a/securedrop-proxy/wheels/requests-2.26.0.tar.gz b/securedrop-proxy/wheels/requests-2.26.0.tar.gz new file mode 100644 index 00000000..a4d0a601 --- /dev/null +++ b/securedrop-proxy/wheels/requests-2.26.0.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b8aa58f8cf793ffd8782d3d8cb19e66ef36f7aba4353eec859e74678b01b07a7 +size 104433 diff --git a/securedrop-proxy/wheels/six-1.11.0-py2.py3-none-any.whl b/securedrop-proxy/wheels/six-1.11.0-py2.py3-none-any.whl new file mode 100644 index 00000000..8d2b2c8e --- /dev/null +++ b/securedrop-proxy/wheels/six-1.11.0-py2.py3-none-any.whl @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eb52689b06ca7433c1cac3b91f320400bd3b358790b7ff4b6367cb1c81d37561 +size 10173 diff --git a/securedrop-proxy/wheels/six-1.11.0.tar.gz b/securedrop-proxy/wheels/six-1.11.0.tar.gz new file mode 100644 index 00000000..ada21929 --- /dev/null +++ b/securedrop-proxy/wheels/six-1.11.0.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:70e8a77beed4562e7f14fe23a786b54f6296e34344c23bc42f07b15018ff98e9 +size 29860 diff --git a/securedrop-proxy/wheels/urllib3-1.26.6-py2.py3-none-any.whl b/securedrop-proxy/wheels/urllib3-1.26.6-py2.py3-none-any.whl new file mode 100644 index 00000000..e16b2337 --- /dev/null +++ b/securedrop-proxy/wheels/urllib3-1.26.6-py2.py3-none-any.whl @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7a2814749409a681ab58babe6539b02a2f84f6649904211f90fb649811ae7b36 +size 138477 diff --git a/securedrop-proxy/wheels/urllib3-1.26.6.tar.gz b/securedrop-proxy/wheels/urllib3-1.26.6.tar.gz new file mode 100644 index 00000000..5bb97e4e --- /dev/null +++ b/securedrop-proxy/wheels/urllib3-1.26.6.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f57b4c16c62fa2760b7e3d97c35b255512fb6b59a259730f36ba32ce9f8e342f +size 289927 diff --git a/sha256sums.txt b/sha256sums.txt deleted file mode 100644 index 38f05ceb..00000000 --- a/sha256sums.txt +++ /dev/null @@ -1,91 +0,0 @@ -ad1e93816f37f8445bb12dfe412579d2237818c9bbf34054a06e00d5f430c700 alembic-1.0.2-py2.py3-none-any.whl -04bcb970ca8659c3607ddd8ffd86cc9d6a99661c9bc590955e8813c66bfa582b alembic-1.0.2.tar.gz -5908bd669bc67bd8ee143150fd9d21205d7f9c36e87587e06370639138af4d01 alembic-1.1.0-py2.py3-none-any.whl -4a4811119efbdc5259d1f4c8f6de977b36ad3bcc919f59a29c2960c5ef9149e4 alembic-1.1.0.tar.gz -e2742eb33011f7aff1d5f27501d802680b6627939f20ff2ef56f050c14af59fa arrow-0.12.1-py2.py3-none-any.whl -a558d3b7b6ce7ffc74206a86c147052de23d3d4ef0e17c210dd478c53575c4cd arrow-0.12.1.tar.gz -2d5538b9d89b3a9cb423b8f08417c657856cab733d560067e864157f71b1c5aa certifi-2018.10.15-py2.py3-none-any.whl -6d58c986d22b038c8c0df30d639f23a3e6d172a05c3583e766f4c0b785c0986a certifi-2018.10.15.tar.gz -2dee87f82eab7a047280038bacb5bdbc4ee308ae39522ccd9da2ceefe7b6f84e certifi-2021.5.30-py2.py3-none-any.whl -2bbf76fd432960138b3ef6dda3dde0544f27cbf8546c458e60baf371917ba9ee certifi-2021.5.30.tar.gz -e5cf39014befb85add77118fdc946f0a3387df7840235ba5d20fd6e3a672410a chardet-3.0.4-py2.py3-none-any.whl -84ab92ed1c4d4f16916e05906b6b75a6c0fb5db821cc65e70cbd64a3e2a5eaae chardet-3.0.4.tar.gz -cd9a4492eef4e5276c07f9c0dc1338e7be3e95f2a536bf2c5b620b1f27d03d74 charset_normalizer-2.0.4-py3-none-any.whl -f23667ebe1084be45f6ae0538e4a5a865206544097e4e8bbcacf42cd02a348f3 charset-normalizer-2.0.4.tar.gz -9f50360f6e4a0f1d0a35fb4997878e7186a73331f0fde5f6fc9b1bb9f006e6cc furl-2.0.0-py2.py3-none-any.whl -fdcaedc1fb19a63d7d875b0105b0a5b496dd0989330d454a42bcb401fa5454ec furl-2.0.0.tar.gz -69bbcd9c42b0add994610a68202532e9b327992b61344cd76e743ee592725f50 idna-2.7-py2.py3-none-any.whl -684a38a6f903c1d71d6d5fac066b58d7768af4de2b832e426ec79c30daa94a16 idna-2.7.tar.gz -2ac4f96345f5f4fc6ebe59f6254d7bfdb943251ccd3ee7e40fe53739b7c6ef92 idna-2.8-py2.py3-none-any.whl -c357b3f628cf53ae2c4c05627ecc484553142ca23264e593d327bcde5e9c3407 idna-2.8.tar.gz -691d9fc304505c65ea9ceb8eb7385d63988e344c065cacbbd2156ff9bdfcf0c1 idna-3.2-py3-none-any.whl -467fbad99067910785144ce333826c71fb0e63a425657295239737f7ecd125f3 idna-3.2.tar.gz -99d041a616a3655725dffe459916627b75640a7d045ed33f51ce158a168ca3ef Mako-1.0.7-py3-none-any.whl -4e02fde57bd4abb5ec400181e4c314f56ac3e49ba4fb8b0d50bba18cb27d25ae Mako-1.0.7.tar.gz -c6b726d2e9d6300a044cf6a37627f10994268d6ac39464bc0d725126609311a5 MarkupSafe-1.0-py3-none-any.whl -a6be69091dac236ea9c6bc7d012beab42010fa914c459791d627dad4910eb665 MarkupSafe-1.0.tar.gz -2cbead4fb0a1c34655c6e11505e6bc165cbaf2f0b7429bec57c3729e3b846a5b MarkupSafe-1.1.1-cp37-cp37m-linux_x86_64.whl -1733a3715d37d075d79b6fe1c2e1055e8cf471fd7da53cdd284de09782bf75d1 MarkupSafe-1.1.1-py3-none-any.whl -29872e92839765e546828bb7754a68c418d927cd064fd4708fab9fe9c8bb116b MarkupSafe-1.1.1.tar.gz -bb3e541812095075336bcd935bb58941aedc0a7cba3c73d301dfdfd4d66a4eec MarkupSafe-2.0.1-cp310-cp310-linux_x86_64.whl -7b12b29ae39060c29ed0d8cb1052fa1672832b5096f859fd35e896ca3b04ddd3 MarkupSafe-2.0.1-cp37-cp37m-linux_x86_64.whl -9a055a175f351a559937fb80ebb2885d005283577a016c0139817e261fb759eb MarkupSafe-2.0.1-cp39-cp39-linux_x86_64.whl -594c67807fb16238b30c44bdf74f36c02cdf22d1c8cda91ef8a0ed8dabf5620a MarkupSafe-2.0.1.tar.gz -f6022beda2b3387c61e6eb7e0e1e3e2832fd9f55f3f64d4b4b226eea7487327f orderedmultidict-1.0-py3-none-any.whl -b89895ba6438038d0bdf88020ceff876cf3eae0d5c66a69b526fab31125db2c5 orderedmultidict-1.0.tar.gz -90173e12465846173da76c62892b238c14a2a0e17aae580933041004fc01b713 pathlib2-2.3.2-py2.py3-none-any.whl -8eb170f8d0d61825e09a95b38be068299ddeda82f35e96c3301a8a5e7604cb83 pathlib2-2.3.2.tar.gz -2961735b604e5165d923a4e39b9bcbde6a4c363f257f5477b6339459fd7c1679 python_dateutil-2.7.5-py2.py3-none-any.whl -88f9287c0174266bb0d8cedd395cfba9c58e87e5ad86b2ce58859bc11be3cf02 python-dateutil-2.7.5.tar.gz -42e5b2a7583cd278dff00ae1fc6b8b735da0502ceeb0914991eaaf5f91ac84ac python_editor-1.0.3-py3-none-any.whl -a3c066acee22a1c94f63938341d4fb374e3fdd69366ed6603d7b24bed1efc565 python-editor-1.0.3.tar.gz -59ff9ed67bd8be210f91fd20f0ef844ee897d11eb4c19c611a77a37896c124b9 PyYAML-5.1-cp37-cp37m-linux_x86_64.whl -436bc774ecf7c103814098159fbb84c2715d25980175292c648f2da143909f95 PyYAML-5.1.tar.gz -ff021f812a5dbaeb10678462952bb447bf6b322ab54923f5591811056a827c15 PyYAML-5.3.1-cp37-cp37m-linux_x86_64.whl -b8eac752c5e14d3eca0e6dd9199cd627518cb5ec06add0de9d32baeee6fe645d PyYAML-5.3.1.tar.gz -24ba69a7c05ba63fef9732bf26cc5d328b2089e525ee87fc9ec572c92f88dd46 PyYAML-5.4.1-cp310-cp310-linux_x86_64.whl -be111e40b3e32707b373b90ef490fa0908bf7769c77f8cf940004f0c957954f6 PyYAML-5.4.1-cp37-cp37m-linux_x86_64.whl -645773490bf785cd110b4a5e47635990c46219b7c4f01b424f0409cf01d12f2b PyYAML-5.4.1-cp39-cp39-linux_x86_64.whl -607774cbba28732bfa802b54baa7484215f530991055bb562efbed5b2f20a45e PyYAML-5.4.1.tar.gz -974926675d246ade47a101e305596a0f50282a405a03b7173a70d99c79e6370c redis-3.3.11-py2.py3-none-any.whl -8d0fc278d3f5e1249967cba2eb4a5632d19e45ce5c09442b8422d15ee2c22cc2 redis-3.3.11.tar.gz -d87b2085783d31d874ac7bc62660e287932aaee7059e80b41b76462eb18d35cc requests-2.20.0-py2.py3-none-any.whl -99dcfdaaeb17caf6e526f32b6a7b780461512ab3f1d992187801694cba42770c requests-2.20.0.tar.gz -83ddbb326afd5524e7fbca582fd9673103652ea3b0c6601ac5ba1a4501f077c9 requests-2.22.0-py2.py3-none-any.whl -11e007a8a2aa0323f5a921e9e6a2d7e4e67d9877e85773fba9ba6419025cbeb4 requests-2.22.0.tar.gz -7cec5239ce6ec4f6bf3d1b8c7e4d34ebe1b86d3896fe9657a8465ee4d7282bc8 requests-2.26.0-py2.py3-none-any.whl -b8aa58f8cf793ffd8782d3d8cb19e66ef36f7aba4353eec859e74678b01b07a7 requests-2.26.0.tar.gz -d05bb78652c8771e6aa1aefcd76ade1fef08c563d2641acbc5ac8e1d635e6a53 securedrop_sdk-0.0.12-py3-none-any.whl -b5ddca26ce87d4007db5d64fe77d44b4086a902c3f79e69fb9a81343c81ce278 securedrop-sdk-0.0.12.tar.gz -c8d98208fb2074336c06be3fef0994a8a57fde7a765cead12bc36e9128d319e2 securedrop_sdk-0.0.13-py3-none-any.whl -7763bb44755bdfc387ab6c002cbe49eeec2611feb04a8787c3c9f2aa48a1ee5f securedrop-sdk-0.0.13.tar.gz -488417f9f08e4c432c81348dfbd5da0e756ded1737ba58b2ffc8f0e703abc1cb securedrop_sdk-0.1.0-py3-none-any.whl -970fde25e6238e1808ac120951ee972549f4cd7952966dfe29f731bb308cc0d8 securedrop-sdk-0.1.0.tar.gz -a631495acd741ab568410287879c5a3af3ccd38e00a2f3a127cc6b27cba99392 securedrop_sdk-0.1.1-py3-none-any.whl -138ce7a717db519c3c8d19b9475d7660fb7095d7608e8802723e682a7415e677 securedrop-sdk-0.1.1.tar.gz -bb949ed7f13d88ae9e269d2c8d037ecf52d36d864fbeea61dd13f4049a978bc4 securedrop_sdk-0.2.0-py3-none-any.whl -c4a343077e8c0a38914e17f6369b830f1e361f9d66699b20803c07b39472357f securedrop-sdk-0.2.0.tar.gz -6dec75eeb434e9b99fff6113cb29fa6c5f7bc5d618d1bb2d451384eaf9833c87 securedrop_sdk-0.3.0-py3-none-any.whl -8ef2e66d828090cf0d31a8851ae412b71f69bc12f8d9f20d87359df835a07581 securedrop-sdk-0.3.0.tar.gz -651cb73aea890795d8fb83fae849dde841199a964a2ecfde6ab16d63917d762a securedrop_sdk-0.3.1-py3-none-any.whl -ea9a35f99b90dbbbf49fd25019df49d37a41a57d316f2b5d9a412ee5814bbfc5 securedrop-sdk-0.3.1.tar.gz -a9a3b548ba6cf0afc4dea4f63817cbe75647bf9b8ec399adff787d5e52e59b4d securedrop_sdk-0.3.2-py3-none-any.whl -376a36a56c16a903663fc62b3441ba6799f406d3b7e25ecb17ef82f5a65b46b0 securedrop-sdk-0.3.2.tar.gz -54b870fd3566914c2ba13aeb5c7eaa0be8ac128be72b45613843c0b75040bd39 securedrop_sdk-0.4.0-py3-none-any.whl -c08f77bae5f900b1fbcd3b5aae1c931dc877e7289d69aa5a8b1e3c3f4e0dc561 securedrop-sdk-0.4.0.tar.gz -eb52689b06ca7433c1cac3b91f320400bd3b358790b7ff4b6367cb1c81d37561 six-1.11.0-py2.py3-none-any.whl -70e8a77beed4562e7f14fe23a786b54f6296e34344c23bc42f07b15018ff98e9 six-1.11.0.tar.gz -0c8d85dc65838bdecf084f70d6168740a54039f039914753cd89fbe546282539 SQLAlchemy-1.3.3-cp310-cp310-linux_x86_64.whl -dc0eb75221aefc3bfd912c5e10630194728f8af5124619e898c9b22049c62ddc SQLAlchemy-1.3.3-cp37-cp37m-linux_x86_64.whl -86ed1e4985a9fd4f3c784da1fcefb89f4435c1c70815f43e5741c0c9f3c79be3 SQLAlchemy-1.3.3-cp39-cp39-linux_x86_64.whl -91c54ca8345008fceaec987e10924bf07dcab36c442925357e5a467b36a38319 SQLAlchemy-1.3.3.tar.gz -3d440cbb168e2c963d5099232bdb3f7390bf031b6270dad1bc79751698a1399a urllib3-1.24.3-py2.py3-none-any.whl -2393a695cd12afedd0dcb26fe5d50d0cf248e5a66f75dbd89a3d4eb333a61af4 urllib3-1.24.3.tar.gz -c78fdeffd1a01640ea99d35851539a4bc91e46a672989c4d96663e3808121389 urllib3-1.25.10-py2.py3-none-any.whl -91056c15fa70756691db97756772bb1eb9678fa585d9184f24534b100dc60f4a urllib3-1.25.10.tar.gz -7a2814749409a681ab58babe6539b02a2f84f6649904211f90fb649811ae7b36 urllib3-1.26.6-py2.py3-none-any.whl -f57b4c16c62fa2760b7e3d97c35b255512fb6b59a259730f36ba32ce9f8e342f urllib3-1.26.6.tar.gz -bd05301a84a9bc3b33f178e53446181879744b74f098ed35850ba21125379be1 Werkzeug-0.16.0-py2.py3-none-any.whl -7280924747b5733b246fe23972186c6b348f9ae29724135a6dfc1e53cea433e7 Werkzeug-0.16.0.tar.gz -55e8ebd03bf69dc51cd986ba7bf3e25f549bb27a22de9d6bdd15c855ba8f1f99 Werkzeug-2.0.2-py3-none-any.whl -aa2bb6fc8dee8d6c504c0ac1e7f5f7dc5810a9903e793b6f715a9f015bdadb9a Werkzeug-2.0.2.tar.gz diff --git a/sha256sums.txt.asc b/sha256sums.txt.asc deleted file mode 100644 index 18aae422..00000000 --- a/sha256sums.txt.asc +++ /dev/null @@ -1,16 +0,0 @@ ------BEGIN PGP SIGNATURE----- - -iQIzBAABCgAdFiEEXHeXRXpUl/yd8nfnv2B2QeXsADkFAmMqaKAACgkQv2B2QeXs -ADnT3A//fY10hCThKD7tvxdx/QafA+qGa2DyWYa/r/x5PMq55xPT3vHNCJmhsnRZ -hwXBEuM7WVqDJb/Z9P372OfCcIC2t/X23WO1R+wSgCx+at0o+uP3BMUZg/jy+FrB -jJQv3yDJTBckAQA8R+NI4tdEErGw7Pu5dYJR5QNn16OtTHlyq3C84qOsftI3lmnw -74TIKt+atLS3LMqutGA7EDEvGtekKDWuZCP9D48vVzMe0c3NQN2zixPVU08i43BQ -Dg8hu+cMbEn2SBSVj3U9YcUfAMDuI1lCHzedE0nspfekOyesqcvuIzr+ff/jl3y/ -y7qZUKNscU8RD8Ynz2/FVmnR+Kjl7siH3x1xBjijXSvH/BqT1qNxdiDUs57sSR7C -HbBxGM40btuXJwFOWryDUYC8to2BH7fjKE/WqHOzP/eGDn54pgVJ/Ntqc+OOr0S2 -LtBgoJ7QQbH7qN1ZzNT80bu6eFoVeM3ZdS/6Prat3Z3q8+lzog8GsZs1wDL/XG2w -h2ed/ZPEWDkvHRAUDdm22Y+21X56Sp8e+KYu5plRJlhZbSD2zTxLN/aUwuWkHfIY -SZc+6LbqdP+1oEYzrgNc3XPnGSxWUE76SkG06yO+W8Bj1DejHV9gVmHtrRUlPHXz -bNeDdUA5a0TcKh0xmT+hqIF9iLUBWWmoHRw4Lih+GHq9VaR9QYI= -=iHKe ------END PGP SIGNATURE----- From a3808c1fe06e381eea4f72b81af9e9958cf9e960 Mon Sep 17 00:00:00 2001 From: Kunal Mehta Date: Tue, 27 Sep 2022 01:52:53 -0400 Subject: [PATCH 6/7] Fix tests for script changes Notably remove test_wheel_builds_are_reproducible, which is always skipped. --- tests/test_reproducible_wheels.py | 40 +------------------------------ tests/test_update_requirements.py | 10 ++++---- 2 files changed, 6 insertions(+), 44 deletions(-) diff --git a/tests/test_reproducible_wheels.py b/tests/test_reproducible_wheels.py index 767cea8c..a494dda6 100644 --- a/tests/test_reproducible_wheels.py +++ b/tests/test_reproducible_wheels.py @@ -1,6 +1,5 @@ import pytest import subprocess -import os # These are the SDW repositories that we build wheels for. @@ -12,47 +11,10 @@ ] -def get_repo_root(): - cmd = "git rev-parse --show-toplevel".split() - top_level = subprocess.check_output(cmd).decode("utf-8").rstrip() - return top_level - - -@pytest.mark.skip(reason="Comparing to version control is sufficient") -@pytest.mark.parametrize("repo_name", REPOS_WITH_WHEELS) -def test_wheel_builds_are_reproducible(repo_name): - """ - Uses 'reprotest' to confirm that the wheel build process, per repo, - is deterministic, i.e. all .whl files are created with the same checksum - across multiple builds. - - Explanations of the excluded reproducibility checks: - - * user_group: As tar command will fail for random user/groups - * time: breaks HTTPS, so pip calls fail - * locales: some locales fail, would be nice to fix, but low priority - * kernel: x86_64 is the supported architecture, we don't ship others - """ - repo_url = f"https://github.com/freedomofpress/{repo_name}" - cmd_env = os.environ.copy() - cmd_env["TERM"] = "xterm-256color" - cmd = [ - "reprotest", - "-c", - f"./scripts/build-sync-wheels -p {repo_url} --clobber", - "--variations", - "-user_group, -time, -locales, -kernel", - ".", - "localwheels/*.whl", - ] - repo_root = get_repo_root() - subprocess.check_call(cmd, env=cmd_env, cwd=repo_root) - - @pytest.mark.parametrize("repo_name", REPOS_WITH_WHEELS) def test_wheel_builds_match_version_control(repo_name): repo_url = f"https://github.com/freedomofpress/{repo_name}" - build_cmd = f"./scripts/build-sync-wheels -p {repo_url} --clobber".split() + build_cmd = f"./scripts/build-sync-wheels --pkg-dir {repo_url} --project {repo_name} --clobber".split() subprocess.check_call(build_cmd) # Check for modified files (won't catch new, untracked files) subprocess.check_call("git diff --exit-code".split()) diff --git a/tests/test_update_requirements.py b/tests/test_update_requirements.py index f7a862f0..7d6e9af3 100644 --- a/tests/test_update_requirements.py +++ b/tests/test_update_requirements.py @@ -1,6 +1,7 @@ import imp import os import pytest +from pathlib import Path # This below stanza is necessary because the scripts are not @@ -20,7 +21,7 @@ def test_build_fails_if_sha256_sums_absent(tmpdir, mocker): mocker.patch('os.path.exists', return_value=False) with pytest.raises(SystemExit) as exc_info: - update_requirements.verify_sha256sums_file() + update_requirements.verify_sha256sums_file(Path("foo")) exit_code = exc_info.value.args[0] assert exit_code == 1 @@ -30,7 +31,7 @@ def test_build_fails_if_sha256_signature_absent(tmpdir, mocker): mocker.patch('os.path.exists', side_effect=[True, False]) with pytest.raises(SystemExit) as exc_info: - update_requirements.verify_sha256sums_file() + update_requirements.verify_sha256sums_file(Path("foo")) exit_code = exc_info.value.args[0] assert exit_code == 1 @@ -46,7 +47,7 @@ def test_shasums_skips_sources(tmpdir): requirements_lines = ["{}=={}".format(requirement_name, requirement_version)] path_result = os.path.join(tmpdir, "test-req.txt") - update_requirements.add_sha256sums(path_result, requirements_lines, path_test_shasums) + update_requirements.add_sha256sums(Path(path_result), requirements_lines, Path(path_test_shasums), Path("foo")) with open(path_result, 'r') as f: result = f.read() @@ -56,7 +57,6 @@ def test_shasums_skips_sources(tmpdir): def test_build_fails_if_missing_wheels(tmpdir): - os.environ["PKG_DIR"] = 'foo' path_test_shasums = os.path.join(tmpdir, 'test-shasums.txt') with open(path_test_shasums, 'w') as f: f.writelines([]) @@ -67,7 +67,7 @@ def test_build_fails_if_missing_wheels(tmpdir): path_result = os.path.join(tmpdir, "test-req.txt") with pytest.raises(SystemExit) as exc_info: - update_requirements.add_sha256sums(path_result, requirements_lines, path_test_shasums) + update_requirements.add_sha256sums(Path(path_result), requirements_lines, Path(path_test_shasums), Path("foo")) exit_code = exc_info.value.args[0] assert exit_code == 1 From bf55e6e3ec8a2a854112f5b2c8b016a08e710c8c Mon Sep 17 00:00:00 2001 From: Kunal Mehta Date: Fri, 30 Sep 2022 11:45:11 -0400 Subject: [PATCH 7/7] Make it clearer that we check against keys in pubkeys/ --- scripts/verify-sha256sum-signature | 1 + 1 file changed, 1 insertion(+) diff --git a/scripts/verify-sha256sum-signature b/scripts/verify-sha256sum-signature index ec95192e..8a9cab4d 100755 --- a/scripts/verify-sha256sum-signature +++ b/scripts/verify-sha256sum-signature @@ -48,6 +48,7 @@ function verify_sha256sum_no_changes() { diff <(sort "$sha256sums_file") <(sort "$temp_sha256sum") } +echo "Checking that SHA256SUMs signed by a key in pubkeys/..." verify_sha256sum_signature printf 'Checking that SHA256SUMs from mirror match signed file... ' verify_sha256sum_no_changes