<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<p>Hi Joshua,<br>
<br>
My 5c below.<br>
</p>
On 2023/05/04 11:59, Joshua C. Colp wrote:<br>
<blockquote type="cite"
cite="mid:CAM0A2Z2A3aqbug6+Y214y-sEaCAP_CmxHUC_z=ob=25F=K0nrw@mail.gmail.com">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<div dir="ltr">
<div dir="ltr">On Thu, May 4, 2023 at 6:45 AM Dennis Buteyn <<a
href="mailto:dennis.buteyn@xorcom.com"
moz-do-not-send="true" class="moz-txt-link-freetext">dennis.buteyn@xorcom.com</a>>
wrote:<br>
</div>
<div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0px 0px 0px
0.8ex;border-left:1px solid
rgb(204,204,204);padding-left:1ex">
<div>
<div>On 5/3/23 22:48, Joshua C. Colp wrote:<br>
</div>
<blockquote type="cite">
<div dir="ltr">Greetings all,
<div><br>
</div>
<div>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:</div>
<div><br>
</div>
<div>1. To regenerate configure if <a
href="http://configure.ac" target="_blank"
moz-do-not-send="true">configure.ac</a> has been
changed, so that developers don't have a stale
configure</div>
<div>2. To provide instructions if configure is not
present and "make" is run, I'm on the fence on
automatically running it</div>
<div>3. Releases (and tags) would need to have a
generated configure in them</div>
<div><br>
</div>
<div>Thoughts?</div>
</div>
</blockquote>
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.</div>
</blockquote>
<div><br>
</div>
<div>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.</div>
</div>
</div>
</blockquote>
<p>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 ...).<br>
</p>
<blockquote type="cite"
cite="mid:CAM0A2Z2A3aqbug6+Y214y-sEaCAP_CmxHUC_z=ob=25F=K0nrw@mail.gmail.com">
<div dir="ltr">
<div class="gmail_quote">
<div><br>
</div>
<div>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?</div>
</div>
</div>
</blockquote>
Please no.<br>
<blockquote type="cite"
cite="mid:CAM0A2Z2A3aqbug6+Y214y-sEaCAP_CmxHUC_z=ob=25F=K0nrw@mail.gmail.com">
<div dir="ltr">
<div class="gmail_quote">
<div><br>
</div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px
0.8ex;border-left:1px solid
rgb(204,204,204);padding-left:1ex">
<div>
<p>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.<br>
</p>
<p>Many Automake/Autotools projects provide some bootstrap
script to generate configure from <a
href="http://configure.ac" target="_blank"
moz-do-not-send="true">configure.ac</a>, with
step-by-step instructions on how to build (bootstrap,
configure, make).<br>
</p>
<p>To make building as simple as possible, instructions
for building from a branch, tag or any other source
should be identical.</p>
</div>
</blockquote>
<div>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?</div>
</div>
</div>
</blockquote>
The norm for many/most projects seem to be:<br>
<br>
<p>1. No generated files in git, ever, even for tags/release
branches. In this case configure.ac yes, configure no.</p>
<p>2. Generated files in archives, ie, in the downloadable
asterisk-x.y.z.tar.gz file there should be a ./configure.<br>
<br>
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.</p>
<p>For developers (checking out from git), surely running an extra
./bootstrap.sh prior to ./configure isn't too much to ask?</p>
<p>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.<br>
</p>
<p>Kind Regards,<br>
Jaco<br>
</p>
</body>
</html>