{"id":20358077,"url":"https://github.com/irods/externals","last_synced_at":"2025-09-01T03:33:52.870Z","repository":{"id":42174031,"uuid":"43574508","full_name":"irods/externals","owner":"irods","description":"Dependencies for the building and installation of iRODS","archived":false,"fork":false,"pushed_at":"2025-08-07T18:00:58.000Z","size":306,"stargazers_count":2,"open_issues_count":30,"forks_count":20,"subscribers_count":16,"default_branch":"main","last_synced_at":"2025-08-07T20:18:14.898Z","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":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/irods.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2015-10-02T20:22:40.000Z","updated_at":"2025-08-07T18:01:04.000Z","dependencies_parsed_at":"2024-02-26T23:45:13.072Z","dependency_job_id":"f02ac378-1e16-40b6-987b-17b2673e3269","html_url":"https://github.com/irods/externals","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/irods/externals","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/irods%2Fexternals","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/irods%2Fexternals/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/irods%2Fexternals/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/irods%2Fexternals/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/irods","download_url":"https://codeload.github.com/irods/externals/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/irods%2Fexternals/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273069663,"owners_count":25040093,"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","status":"online","status_checked_at":"2025-09-01T02:00:09.058Z","response_time":120,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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-14T23:25:16.567Z","updated_at":"2025-09-01T03:33:52.834Z","avatar_url":"https://github.com/irods.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# External dependencies for the building and installation of iRODS\n\nCurrently tested on:\n\n- Ubuntu 22.04\n- Ubuntu 24.04\n- Rocky Linux 9\n- Rocky Linux 10\n- Debian 12\n- Debian 13\n\n# Assumptions\n\nThis repository is expected to build in a VM or container environment that is isolated from other software or build environments. Pre-written dockerfiles can be found in the [development environment repository](https://github.com/irods/irods_development_environment/).\n\nThe automated scripts update system libraries and compilers, etc. `install_prerequisites.py` requires permission to use the system package manager and install system packages, so may need to be run as root (via `sudo` or other means).\n\n`build.py` uses [nFPM](https://nfpm.goreleaser.com/) to create the packages once the software has been built. We recommend using at least version [2.41.3](https://github.com/goreleaser/nfpm/releases/tag/v2.41.3). `install_prerequisites.py` will install the latest version if it doesn't find `nfpm` in `$PATH`.\n\nIn a new container, run the following:\n\n## Ubuntu 22.04, Ubuntu 24.04, Debian 12, Debian 13\n\n```bash\napt-get update\napt-get install -y git python3 python3-distro python3-setuptools\n./install_prerequisites.py\n\nmake # or \"make server\" for packages specific to building the iRODS server.\n```\n\n## RHEL / AlmaLinux / Rocky Linux 9, RHEL / AlmaLinux / Rocky Linux 10\n\n```bash\ndnf install -y git python3 python3-distro python3-setuptools\n./install_prerequisites.py\nmake # or \"make server\" for packages specific to building the iRODS server.\n```\n\n# FAQ\n\n### Q. Can I build an externals package using a different repository?\nYes. Open `versions.json`, find the package of interest, and set the `\"git_repository\"` property to the URL of the repository to clone. If this property is not present, it means the build will clone the forked repository under https://github.com/irods. The build expects that the clone will have a directory name matching the name of the forked project under https://github.com/irods.\n\nDefining a different git repository to use for an external normally means a change in the version. For that reason, it is important to remember that `\"commitish\"` is required to match a **branch name** or **tag**. If you want to use a **SHA** for the `\"commitish\"`, you'll need to set `\"enable_sha\"` to `true`. This instructs the build system to separate the fetching/checking-out of a commit from the cloning of the repository. To better explain what this means, see below.\n\nIf `\"enable_sha\"` is set to `false` or isn't defined for a package, the build system will do the following:\n```bash\n$ git clone --depth 1 --branch \u003cbranch_name_or_tag\u003e --recurse-submodules \u003cgit_repository\u003e\n```\nIf `\"enable_sha\"` is set to `true`, the build system will do this instead:\n```bash\n$ git clone --recurse-submodules \u003cgit_repository\u003e\n$ cd \u003cgit_repository\u003e\n$ git fetch\n$ git checkout \u003csha\u003e # Or branch name, or tag.\n```\n\n### Q. What are `consortium_build_number` and `package_revision` in `versions.json`?\nThese fields allow for changes to the packaging and build process of a package without having to change the version of the software being packaged. `consortium_build_number` affects the package *name* and `package_revision` affects the package *version*.\n\nHere's a quick guide on when these fields should be incremented or reset:  \n- When bumping `consortium_build_number`, `package_revision` should be reset to `0`.\n- When bumping the version of the software being packaged, both `consortium_build_number` and `package_revision` should be reset to `0`, and `consortium_build_number` of any dependant packages should be incremented, unless they are also being updated.\n- When making a change to the packaging or build process of a package without changing the version of the software being packaged, consider whether the updated package should *replace* the previous version, or if it should be installable *alongside* the previous version of the package.\n    - If the updated package should replace the previous version of the package, increment `package_revision`. If any dependant packages are affected by the change, increment their `package_revision` as well.\n    - If the updated package should be installable alongside the previous version of the package, increment `consortium_build_number`. The `consortium_build_number` of any dependant packages will need to be incremented as well.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Firods%2Fexternals","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Firods%2Fexternals","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Firods%2Fexternals/lists"}