<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>