From e1d12847bdea445e3f655022c4b6637d279c2ec7 Mon Sep 17 00:00:00 2001 From: Sean Bright Date: Fri, 22 May 2026 19:16:40 +0000 Subject: [PATCH 1/2] Code-Contribution: Add "Run `bootstrap.sh`" instruction When `configure` is removed from the repository, developers will need to run `bootstrap.sh` in order to generate build scripts on their own system. --- .../Code-Contribution/index.md | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/docs/Development/Policies-and-Procedures/Code-Contribution/index.md b/docs/Development/Policies-and-Procedures/Code-Contribution/index.md index 0ecee004fe..98ea2b04c8 100644 --- a/docs/Development/Policies-and-Procedures/Code-Contribution/index.md +++ b/docs/Development/Policies-and-Procedures/Code-Contribution/index.md @@ -44,6 +44,35 @@ Git Remotes will automatically be created for both your fork and the upstream re In each of the clones, run `gh repo set-default`. Select either asterisk/asterisk or asterisk/testsuite as appropriate. They should be the defaults but check anyway. Also run `git config user.email` and `git config user.name` in each of the repos to make sure they're correct. At a minimum, user.email should match one of the emails you've added to your GitHub account. +### Run `bootstrap.sh` + +Asterisk uses the [GNU Autotools](https://en.wikipedia.org/wiki/GNU_Autotools) +to configure its build system. Historically, project maintainers would +include the `configure` script (along with other generated artifacts) +when making changes to `configure.ac`. That practice is being phased +out, so your clone of the repository may not include `configure`. If +that is the case, you should run the `bootstrap.sh` script to invoke +`autoconf` (and `automake`, etc.) which will generate `configure` +along with its support files: + +```sh +$ ./bootstrap.sh +``` + +/// tip | Keep an eye on `configure.ac` +You will need to re-run `bootstrap.sh` any time changes to the build +system configuration files (like `configure.ac`) are pulled from the +upstream repository. +/// + +If you encounter any errors, the `install_prereq` script +[included in the repository](https://github.com/asterisk/asterisk/blob/master/contrib/scripts/install_prereq) +can be invoked to install any missing packages: + +```sh +$ sudo ./contrib/scripts/install_prereq minimal +``` + ### Do Work New work should never be based on a branch other than "master" so unless you have some special circumstance, start by checking out the "master" branch and syncing it to your fork. From de29b0977ff27857e198e3184949d55dba4b5922 Mon Sep 17 00:00:00 2001 From: Sean Bright Date: Fri, 22 May 2026 23:37:13 +0000 Subject: [PATCH 2/2] Code-Contribution: Note that changing branches can also update `configure.ac` --- .../Policies-and-Procedures/Code-Contribution/index.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/Development/Policies-and-Procedures/Code-Contribution/index.md b/docs/Development/Policies-and-Procedures/Code-Contribution/index.md index 98ea2b04c8..65a881f772 100644 --- a/docs/Development/Policies-and-Procedures/Code-Contribution/index.md +++ b/docs/Development/Policies-and-Procedures/Code-Contribution/index.md @@ -63,6 +63,10 @@ $ ./bootstrap.sh You will need to re-run `bootstrap.sh` any time changes to the build system configuration files (like `configure.ac`) are pulled from the upstream repository. +//// warning | Branches +The contents of `configure.ac` can also change when switching between +branches. +//// /// If you encounter any errors, the `install_prereq` script