Hi Joshua,

My 5c below.

On 2023/05/04 11:59, Joshua C. Colp wrote:
On Thu, May 4, 2023 at 6:45 AM Dennis Buteyn <dennis.but...@xorcom.com> wrote:

    On 5/3/23 22:48, Joshua C. Colp wrote:
    Greetings all,

    Sean Bright brought up on IRC the removal of configure from git.
    This may be impactful since some users (not necessarily
    developers) may not understand the build system when building
    from branches (not tags or releases) and become confused when
    configure is not present which is why I disagreed with doing so
    on IRC. I'm curious though what others think of such a change. I
    think to be acceptable it would need:

    1. To regenerate configure if configure.ac <http://configure.ac>
    has been changed, so that developers don't have a stale configure
    2. To provide instructions if configure is not present and "make"
    is run, I'm on the fence on automatically running it
    3. Releases (and tags) would need to have a generated configure
    in them

    Thoughts?
    Sean is correct that configure should not be present in the source
    tree because it contains build-environment specific parameters.
    For the same reason, Makefile should also not be present in the
    source tree.


I'm not sure what build-environment specific parameters you are referring to, unless you mean the version of autoconf on the system. The issue Sean saw was that if developers generated the configure using different autoconf versions, the output would be different and could result in large reviews. From an actual non-developer people who use Asterisk perspective, to the best of my knowledge we've never seen any issues with either the checked in configure. The logic certainly, but that's not the result of the process of producing the configure script but the backing autoconf logic that was written by someone.

Spot on.  The generated configure should be posix-shell compliant and thus not care which shell is being used, and basically from that determine everything else (ie, is openssl available or not, do we use pjsip etc ...).


As for Makefiles, the Asterisk ones are not generated. They're written manually. Are you also proposing changing the build system so those are now generated?
Please no.

    Running make without configure being present would mean Makefile
    is also not present. As make is (fortunately) not sentient and
    does not know that Makefile is to be generated, it would
    reasonably state that no Makefile has been found. I'm not sure how
    one would convey additional instructions to users in such a case.

    Many Automake/Autotools projects provide some bootstrap script to
    generate configure from configure.ac <http://configure.ac>, with
    step-by-step instructions on how to build (bootstrap, configure,
    make).

    To make building as simple as possible, instructions for building
    from a branch, tag or any other source should be identical.

That's a fundamentally breaking change if tags and releases do not contain a configure already. The benefit would need to be large enough to justify it. What additional benefits are there?
The norm for many/most projects seem to be:

1.  No generated files in git, ever, even for tags/release branches.  In this case configure.ac yes, configure no.

2.  Generated files in archives, ie, in the downloadable asterisk-x.y.z.tar.gz file there should be a ./configure.

For me this makes sense since MOST users will simply download the tgz and move on with their lives, thus no change to their workflow.

For developers (checking out from git), surely running an extra ./bootstrap.sh prior to ./configure isn't too much to ask?

Thus there is a change required to the release process for generating the archive (which is where github seems to have a pitfall in that automated download archives won't work as expected unless there is an option to first run a script on the checked out tree) to first run ./bootstrap.sh prior to creating the archive.

Kind Regards,
Jaco
-- 
_____________________________________________________________________
-- Bandwidth and Colocation Provided by http://www.api-digital.com --

asterisk-dev mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/asterisk-dev

Reply via email to