Summary:ASTERISK-27189: Make --with-pjproject-bundled the default for Asterisk 15
Reporter:George Joseph (gjoseph)Labels:
Date Opened:2017-08-08 13:34:36Date Closed:2017-08-16 06:41:21
Versions:15.0.0 Frequency of
Description:It's time.
Comments:By: cloos (cloos) 2017-08-08 13:48:07.314-0500

You should optimize this.

Include pjproject in the asterisk tar, and the relevant pj src in a git submodule or git subtree.

One should not require internet access to build from src, and two tar(5)s make less sense than one.

(And, incidentally, the sounds download makerule should look for the files in $(TOPDIR)/.. before fetch(1)ing or wget(1)ing them.)

By: George Joseph (gjoseph) 2017-08-08 14:05:17.888-0500

Licensing issues make it complicated for us to distribute pjproject as part of the asterisk tarball (if that's what you were asking).

Unfortunately, pjproject is still subversion based so maintaining an intermediate repository to pull a submodule from is an issue.  Besides, you'd need internet access for the submodule anyway.  We actually have a pjproject mirror in the asterisk github repo that's out of date.  In fact, Teluu has a mirror of pjproject on github that's also out of date because they have to update it manually.

You don't have to download to build from source.  You can download the stock pjproject tarball that matches the version specified in third-party/versions.mak and place it in a known, static location.  The when you configure asterisk, you can use the --with-externals-cache option to set the path for that directory.  Same for the precompiled codecs and DPMA.

You know you can do the same thing for sounds with --with-sounds-cache right?

By: George Joseph (gjoseph) 2017-08-08 14:15:20.488-0500

Oh yeah, you can also use the PJPROJECT_URL environment variable to change the downlaod URL to a file:/// URL that points to the directory where the tarball and checksum are.

By: cloos (cloos) 2017-08-08 14:22:54.505-0500

If I knew about the --...-cache options, I’d forgotten about them….

Perhaps a single --option to default the caches would help.  Something like:


would be easier.

As for licenses, as long as the doc files (README, LICENSE and the like) note that the sub-project has a different license no other project has any such worries.  Asterisk shouldn't either.

Even if it isn’t in git, it still should be in the tar.

By: George Joseph (gjoseph) 2017-08-08 14:42:35.537-0500

We can do the single --cache option and leave the existing ones in place for backwards compatibility.

We had lots of discussions about what was a "safe" inclusion mechanism but, well, lawyers.  Go figure. :)