{"id":18422422,"url":"https://github.com/sri-csl/wholly","last_synced_at":"2025-08-28T22:17:09.710Z","repository":{"id":57477715,"uuid":"97148938","full_name":"SRI-CSL/Wholly","owner":"SRI-CSL","description":"Wholly!","archived":false,"fork":false,"pushed_at":"2017-10-24T18:14:12.000Z","size":35,"stargazers_count":9,"open_issues_count":0,"forks_count":4,"subscribers_count":16,"default_branch":"master","last_synced_at":"2025-03-22T19:46:00.556Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SRI-CSL.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-07-13T17:30:01.000Z","updated_at":"2023-12-11T11:06:53.000Z","dependencies_parsed_at":"2022-08-30T16:10:44.701Z","dependency_job_id":null,"html_url":"https://github.com/SRI-CSL/Wholly","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SRI-CSL%2FWholly","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SRI-CSL%2FWholly/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SRI-CSL%2FWholly/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SRI-CSL%2FWholly/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SRI-CSL","download_url":"https://codeload.github.com/SRI-CSL/Wholly/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247670204,"owners_count":20976525,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-06T04:29:39.906Z","updated_at":"2025-04-07T14:32:44.633Z","avatar_url":"https://github.com/SRI-CSL.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Wholly!\n\n[![PyPI version](https://badge.fury.io/py/wholly.svg)](https://badge.fury.io/py/wholly)\n\n## Overview\n\nThis project, *Wholly!*, provides a Python tool that can build clean packages in a traceable way from open-source code. We make use of Docker containers to provide a minimal and controlled build environment, clear and meaningful build \"recipes\" to describe precisely the dependencies and the build invocations, and fine-grained sub-packaging to release lightweight and usable images.\n\nTo achieve that, *Wholly!* provides the orchestration to build a package using a **recipe** that we try to keep as simple as possible. All the available recipies are to be stored in a local repository, or working directory.\n\nWe provide such an example working directory that is suitable to build packages for the `x86_64` architecture. Steps to use it are described below.\n\n## Usage\n\n### Requirements\n\n- Python 2.7.x with `pip`\n- Docker CE \u003e= 17.05: https://www.docker.com/community-edition\n\n\n### Install\n\nYou can install the latest published version via\n```\npip install wholly\n```\nor you can check out the repository and install local development version\n```\ngit clone https://github.com/SRI-CSL/Wholly.git\ncd Wholly\nmake develop\n```\nThis last step may require `sudo`.\n\n\n### Fetch the Recipes\n\nFetch the recipes:\n\n```\ngit clone https://github.com/SRI-CSL/WhollyRecipes.git\n```\n\n### Usage\n\nWe need to execute *Wholly!* from the working directory:\n```\ncd WhollyRecipes\n```\n\nMake sure that the Docker deamon is running by executing the Docker application. You can now build any package present into the working directory:\n\n```\nwholly build sqlite-3.18\n```\nThis will build `sqlite-3.18` along with its dependencies. In particular, it will generate sub-packages for `sqlite-3.18`, in the form of Docker images:\n\n```\n$ docker images | grep wholly-sqlite-3.18-\nwholly-sqlite-3.18-libs       latest        1.34MB\nwholly-sqlite-3.18-headers    latest        528kB\nwholly-sqlite-3.18-bin        latest        1.24MB\n```\n\n### Useful options\n\n- The `--no-cache` flag forces Docker to rebuild the packages.\n- The `--nb-cores` flag is useful for some packages that support concurrent builds. The command `../Wholly/wholly.py build libcxx-4.0 --nb-cores 4`, for example, will build the package `libcxx-4.0` using 4 cores. Of course, the number of cores that you specify cannot be greater than the number of cores that you allocated to your Docker machine.\n\n\n\n### Debugging\n\nWholly can show various levels of output to aid with debugging.\nTo show this output set the `WHOLLY_LOG_LEVEL` environment\nvariable to one of the following levels:\n\n * `ERROR`\n * `WARNING`\n * `INFO`\n * `DEBUG`\n\nFor example:\n```\n    export WHOLLY_LOG_LEVEL=DEBUG\n```\nOutput will be directed to the standard error stream, unless you specify the\npath of a logfile via the `WHOLLY_LOG_FILE` environment variable.\n\nFor example:\n```\n    export WHOLLY_LOG_FILE=/tmp/wholly.log\n```\n\nWhen the level is set to `DEBUG` the messages contain more locality information.\n\n\n###  Checksum Mismatches\n\nIf one is building a package and one discovers that the checksums do not match, you can either:\n\n- Use the `--commit-all` command switch, which will replace the old checksums by the new ones.\n\n- Use the `--ignore-checksums` command switch, which will simply ignore the mismatches (while still reporting them).\n\n---\n\nThis material is based upon work supported by the National Science Foundation under Grant [ACI-1440800](http://www.nsf.gov/awardsearch/showAward?AWD_ID=1440800) and Department of Homeland Security (DHS) Science and Technology Directorate. Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation, the Department of Homeland Security, or the US government.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsri-csl%2Fwholly","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsri-csl%2Fwholly","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsri-csl%2Fwholly/lists"}