mirror of
https://github.com/asterisk/asterisk.git
synced 2025-11-19 16:20:37 +00:00
Compare commits
2 Commits
16.25.1
...
developmen
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b7c6094e51 | ||
|
|
ee85895d88 |
@@ -1 +0,0 @@
|
||||
40
|
||||
50
CHANGES
50
CHANGES
@@ -12,56 +12,6 @@
|
||||
===
|
||||
==============================================================================
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
--- Functionality changes from Asterisk 16.24.0 to Asterisk 16.25.0 ----------
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
ami
|
||||
------------------
|
||||
* AMI events can now be globally disabled using
|
||||
the disabledevents [general] setting.
|
||||
|
||||
app_queue
|
||||
------------------
|
||||
* Load queues and members from Realtime for
|
||||
AMI actions: QueuePause, QueueStatus and QueueSummary,
|
||||
Applications: PauseQueueMember and UnpauseQueueMember.
|
||||
|
||||
* Added a new AMI action: QueueWithdrawCaller
|
||||
This AMI action makes it possible to withdraw a caller from a queue
|
||||
back to the dialplan. The call will be signaled to leave the queue
|
||||
whenever it can, hence, it not guaranteed that the call will leave
|
||||
the queue.
|
||||
|
||||
Optional custom data can be passed in the request, in the WithdrawInfo
|
||||
parameter. If the call successfully withdrawn the queue,
|
||||
it can be retrieved using the QUEUE_WITHDRAW_INFO variable.
|
||||
|
||||
This can be useful for certain uses, such as dispatching the call
|
||||
to a specific extension.
|
||||
|
||||
channel_internal_api
|
||||
------------------
|
||||
* CHANNEL(lastcontext) and CHANNEL(lastexten)
|
||||
are now available for use in the dialplan.
|
||||
|
||||
res_pjsip_pubsub
|
||||
------------------
|
||||
* A new resource_list option, resource_display_name, indicates
|
||||
whether display name of resource or the resource name being
|
||||
provided for RLS entries.
|
||||
If this option is enabled, the Display Name will be provided.
|
||||
This option is disabled by default to remain the previous behavior.
|
||||
If the 'event' set to 'presence' or 'dialog' the non-empty HINT name
|
||||
will be set as the Display Name.
|
||||
The 'message-summary' is not supported yet.
|
||||
|
||||
* The Resource List Subscriptions (RLS) is dynamic now.
|
||||
The asterisk now updates current subscriptions to reflect the changes
|
||||
to the list on subscription refresh. If list items are added,
|
||||
removed, updated or do not exist anymore, the asterisk regenerates
|
||||
the resource list.
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
--- Functionality changes from Asterisk 16.23.0 to Asterisk 16.24.0 ----------
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
9
Makefile
9
Makefile
@@ -101,11 +101,6 @@ export TAR
|
||||
export PATCH
|
||||
export SED
|
||||
export NM
|
||||
export FIND
|
||||
export BASENAME
|
||||
export DIRNAME
|
||||
export XMLLINT
|
||||
export XMLSTARLET
|
||||
|
||||
# makeopts is required unless the goal is just {dist{-}}clean
|
||||
ifeq ($(MAKECMDGOALS),clean)
|
||||
@@ -485,7 +480,7 @@ XML_core_en_US := $(shell build_tools/make_xml_documentation --command=print_dep
|
||||
# core-en_US.xml is the normal documentation created with asterisk builds.
|
||||
doc/core-en_US.xml: makeopts .lastclean $(XML_core_en_US)
|
||||
@build_tools/make_xml_documentation --command=create_xml --source-tree=. --mod-subdirs="$(DOC_MOD_SUBDIRS)" \
|
||||
--with-moduleinfo --output-file=$@
|
||||
--with-moduleinfo --validate --output-file=$@
|
||||
|
||||
# The full-en_US.xml target is only called by the wiki documentation generation process
|
||||
# and does special post-processing in preparation for uploading to the wiki.
|
||||
@@ -497,7 +492,7 @@ ifeq ($(PYTHON),:)
|
||||
@echo "--------------------------------------------------------------------------"
|
||||
else
|
||||
@build_tools/make_xml_documentation --command=create_xml --source-tree=. --mod-subdirs="$(DOC_MOD_SUBDIRS)" \
|
||||
--for-wiki --output-file=$@ --core-output-file=./doc/core-en_US.xml
|
||||
--for-wiki --validate --output-file=$@ --core-output-file=./doc/core-en_US.xml
|
||||
endif
|
||||
|
||||
validate-docs: doc/core-en_US.xml
|
||||
|
||||
13
UPGRADE.txt
13
UPGRADE.txt
@@ -18,19 +18,6 @@
|
||||
===
|
||||
===========================================================
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
--- Functionality changes from Asterisk 16.24.0 to Asterisk 16.25.0 ----------
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
AMI
|
||||
------------------
|
||||
* The XML Manager Event Interface (amxml) now generates attribute names
|
||||
that are compliant with the XML 1.1 specification. Previously, an
|
||||
attribute name that started with a digit would be rendered as-is, even
|
||||
though attribute names must not begin with a digit. We now prefix
|
||||
attribute names that start with a digit with an underscore ('_') to
|
||||
prevent XML validation failures.
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
--- Functionality changes from Asterisk 16.22.0 to Asterisk 16.23.0 ----------
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
146
apps/app_queue.c
146
apps/app_queue.c
@@ -290,7 +290,6 @@
|
||||
<value name="JOINUNAVAIL" />
|
||||
<value name="LEAVEUNAVAIL" />
|
||||
<value name="CONTINUE" />
|
||||
<value name="WITHDRAW" />
|
||||
</variable>
|
||||
<variable name="ABANDONED">
|
||||
<para>If the call was not answered by an agent this variable will be TRUE.</para>
|
||||
@@ -299,9 +298,6 @@
|
||||
<variable name="DIALEDPEERNUMBER">
|
||||
<para>Resource of the agent that was dialed set on the outbound channel.</para>
|
||||
</variable>
|
||||
<variable name="QUEUE_WITHDRAW_INFO">
|
||||
<para>If the call was successfully withdrawn from the queue, and the withdraw request was provided with optional withdraw info, the withdraw info will be stored in this variable.</para>
|
||||
</variable>
|
||||
</variablelist>
|
||||
</description>
|
||||
<see-also>
|
||||
@@ -1061,25 +1057,6 @@
|
||||
<description>
|
||||
</description>
|
||||
</manager>
|
||||
<manager name="QueueWithdrawCaller" language="en_US">
|
||||
<synopsis>
|
||||
Request to withdraw a caller from the queue back to the dialplan.
|
||||
</synopsis>
|
||||
<syntax>
|
||||
<xi:include xpointer="xpointer(/docs/manager[@name='Login']/syntax/parameter[@name='ActionID'])" />
|
||||
<parameter name="Queue" required="true">
|
||||
<para>The name of the queue to take action on.</para>
|
||||
</parameter>
|
||||
<parameter name="Caller" required="true">
|
||||
<para>The caller (channel) to withdraw from the queue.</para>
|
||||
</parameter>
|
||||
<parameter name="WithdrawInfo" required="false">
|
||||
<para>Optional info to store. If the call is successfully withdrawn from the queue, this information will be available in the QUEUE_WITHDRAW_INFO variable.</para>
|
||||
</parameter>
|
||||
</syntax>
|
||||
<description>
|
||||
</description>
|
||||
</manager>
|
||||
|
||||
<managerEvent language="en_US" name="QueueParams">
|
||||
<managerEventInstance class="EVENT_FLAG_AGENT">
|
||||
@@ -1628,7 +1605,6 @@ enum queue_result {
|
||||
QUEUE_LEAVEUNAVAIL = 5,
|
||||
QUEUE_FULL = 6,
|
||||
QUEUE_CONTINUE = 7,
|
||||
QUEUE_WITHDRAW = 8,
|
||||
};
|
||||
|
||||
static const struct {
|
||||
@@ -1643,7 +1619,6 @@ static const struct {
|
||||
{ QUEUE_LEAVEUNAVAIL, "LEAVEUNAVAIL" },
|
||||
{ QUEUE_FULL, "FULL" },
|
||||
{ QUEUE_CONTINUE, "CONTINUE" },
|
||||
{ QUEUE_WITHDRAW, "WITHDRAW" },
|
||||
};
|
||||
|
||||
enum queue_timeout_priority {
|
||||
@@ -1712,8 +1687,6 @@ struct queue_ent {
|
||||
time_t start; /*!< When we started holding */
|
||||
time_t expire; /*!< When this entry should expire (time out of queue) */
|
||||
int cancel_answered_elsewhere; /*!< Whether we should force the CAE flag on this call (C) option*/
|
||||
unsigned int withdraw:1; /*!< Should this call exit the queue at its next iteration? Used for QueueWithdrawCaller */
|
||||
char *withdraw_info; /*!< Optional info passed by the caller of QueueWithdrawCaller */
|
||||
struct ast_channel *chan; /*!< Our channel */
|
||||
AST_LIST_HEAD_NOLOCK(,penalty_rule) qe_rules; /*!< Local copy of the queue's penalty rules */
|
||||
struct penalty_rule *pr; /*!< Pointer to the next penalty rule to implement */
|
||||
@@ -5832,13 +5805,6 @@ static int wait_our_turn(struct queue_ent *qe, int ringing, enum queue_result *r
|
||||
/* This is the holding pen for callers 2 through maxlen */
|
||||
for (;;) {
|
||||
|
||||
/* A request to withdraw this call from the queue arrived */
|
||||
if (qe->withdraw) {
|
||||
*reason = QUEUE_WITHDRAW;
|
||||
res = 1;
|
||||
break;
|
||||
}
|
||||
|
||||
if (is_our_turn(qe)) {
|
||||
break;
|
||||
}
|
||||
@@ -7659,51 +7625,6 @@ static int change_priority_caller_on_queue(const char *queuename, const char *ca
|
||||
}
|
||||
|
||||
|
||||
/*! \brief Request to withdraw a caller from a queue
|
||||
* \retval RES_NOSUCHQUEUE queue does not exist
|
||||
* \retval RES_OKAY withdraw request sent
|
||||
* \retval RES_NOT_CALLER queue exists but no caller
|
||||
* \retval RES_EXISTS a withdraw request was already sent for this caller (channel) and queue
|
||||
*/
|
||||
static int request_withdraw_caller_from_queue(const char *queuename, const char *caller, const char *withdraw_info)
|
||||
{
|
||||
struct call_queue *q;
|
||||
struct queue_ent *qe;
|
||||
int res = RES_NOSUCHQUEUE;
|
||||
|
||||
/*! \note Ensure the appropriate realtime queue is loaded. Note that this
|
||||
* short-circuits if the queue is already in memory. */
|
||||
if (!(q = find_load_queue_rt_friendly(queuename))) {
|
||||
return res;
|
||||
}
|
||||
|
||||
ao2_lock(q);
|
||||
res = RES_NOT_CALLER;
|
||||
for (qe = q->head; qe; qe = qe->next) {
|
||||
if (!strcmp(ast_channel_name(qe->chan), caller)) {
|
||||
if (qe->withdraw) {
|
||||
ast_debug(1, "Ignoring duplicate withdraw request of caller %s from queue %s\n", caller, queuename);
|
||||
res = RES_EXISTS;
|
||||
} else {
|
||||
ast_debug(1, "Requested withdraw of caller %s from queue %s\n", caller, queuename);
|
||||
/* It is not possible to change the withdraw info by further withdraw requests for this caller (channel)
|
||||
in this queue, so we do not need to worry about a memory leak here. */
|
||||
if (withdraw_info) {
|
||||
qe->withdraw_info = ast_strdup(withdraw_info);
|
||||
}
|
||||
qe->withdraw = 1;
|
||||
res = RES_OKAY;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
ao2_unlock(q);
|
||||
queue_unref(q);
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
|
||||
static int publish_queue_member_pause(struct call_queue *q, struct member *member, const char *reason)
|
||||
{
|
||||
struct ast_json *json_blob = queue_member_blob_create(q, member);
|
||||
@@ -8655,13 +8576,6 @@ check_turns:
|
||||
/* they may dial a digit from the queue context; */
|
||||
/* or, they may timeout. */
|
||||
|
||||
/* A request to withdraw this call from the queue arrived */
|
||||
if (qe.withdraw) {
|
||||
reason = QUEUE_WITHDRAW;
|
||||
res = 1;
|
||||
break;
|
||||
}
|
||||
|
||||
/* Leave if we have exceeded our queuetimeout */
|
||||
if (qe.expire && (time(NULL) >= qe.expire)) {
|
||||
record_abandoned(&qe);
|
||||
@@ -8689,13 +8603,6 @@ check_turns:
|
||||
}
|
||||
}
|
||||
|
||||
/* A request to withdraw this call from the queue arrived */
|
||||
if (qe.withdraw) {
|
||||
reason = QUEUE_WITHDRAW;
|
||||
res = 1;
|
||||
break;
|
||||
}
|
||||
|
||||
/* Leave if we have exceeded our queuetimeout */
|
||||
if (qe.expire && (time(NULL) >= qe.expire)) {
|
||||
record_abandoned(&qe);
|
||||
@@ -8770,14 +8677,7 @@ check_turns:
|
||||
|
||||
stop:
|
||||
if (res) {
|
||||
if (reason == QUEUE_WITHDRAW) {
|
||||
record_abandoned(&qe);
|
||||
ast_queue_log(qe.parent->name, ast_channel_uniqueid(qe.chan), "NONE", "WITHDRAW", "%d|%d|%ld|%.40s", qe.pos, qe.opos, (long) (time(NULL) - qe.start), qe.withdraw_info ? qe.withdraw_info : "");
|
||||
if (qe.withdraw_info) {
|
||||
pbx_builtin_setvar_helper(qe.chan, "QUEUE_WITHDRAW_INFO", qe.withdraw_info);
|
||||
}
|
||||
res = 0;
|
||||
} else if (res < 0) {
|
||||
if (res < 0) {
|
||||
if (!qe.handled) {
|
||||
record_abandoned(&qe);
|
||||
ast_queue_log(args.queuename, ast_channel_uniqueid(chan), "NONE", "ABANDON",
|
||||
@@ -8797,13 +8697,6 @@ stop:
|
||||
}
|
||||
}
|
||||
|
||||
/* Free the optional withdraw info if present */
|
||||
/* This is done here to catch all cases. e.g. if the call eventually wasn't withdrawn, e.g. answered */
|
||||
if (qe.withdraw_info) {
|
||||
ast_free(qe.withdraw_info);
|
||||
qe.withdraw_info = NULL;
|
||||
}
|
||||
|
||||
/* Don't allow return code > 0 */
|
||||
if (res >= 0) {
|
||||
res = 0;
|
||||
@@ -10845,41 +10738,6 @@ static int manager_change_priority_caller_on_queue(struct mansession *s, const s
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int manager_request_withdraw_caller_from_queue(struct mansession *s, const struct message *m)
|
||||
{
|
||||
const char *queuename, *caller, *withdraw_info;
|
||||
|
||||
queuename = astman_get_header(m, "Queue");
|
||||
caller = astman_get_header(m, "Caller");
|
||||
withdraw_info = astman_get_header(m, "WithdrawInfo");
|
||||
|
||||
if (ast_strlen_zero(queuename)) {
|
||||
astman_send_error(s, m, "'Queue' not specified.");
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (ast_strlen_zero(caller)) {
|
||||
astman_send_error(s, m, "'Caller' not specified.");
|
||||
return 0;
|
||||
}
|
||||
|
||||
switch (request_withdraw_caller_from_queue(queuename, caller, withdraw_info)) {
|
||||
case RES_OKAY:
|
||||
astman_send_ack(s, m, "Withdraw requested successfully");
|
||||
break;
|
||||
case RES_NOSUCHQUEUE:
|
||||
astman_send_error(s, m, "Unable to request withdraw from queue: No such queue");
|
||||
break;
|
||||
case RES_NOT_CALLER:
|
||||
astman_send_error(s, m, "Unable to request withdraw from queue: No such caller");
|
||||
break;
|
||||
case RES_EXISTS:
|
||||
astman_send_error(s, m, "Unable to request withdraw from queue: Already requested");
|
||||
break;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
static char *handle_queue_add_member(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
|
||||
@@ -11609,7 +11467,6 @@ static int unload_module(void)
|
||||
ast_manager_unregister("QueueReset");
|
||||
ast_manager_unregister("QueueMemberRingInUse");
|
||||
ast_manager_unregister("QueueChangePriorityCaller");
|
||||
ast_manager_unregister("QueueWithdrawCaller");
|
||||
ast_unregister_application(app_aqm);
|
||||
ast_unregister_application(app_rqm);
|
||||
ast_unregister_application(app_pqm);
|
||||
@@ -11723,7 +11580,6 @@ static int load_module(void)
|
||||
err |= ast_manager_register_xml("QueueReload", 0, manager_queue_reload);
|
||||
err |= ast_manager_register_xml("QueueReset", 0, manager_queue_reset);
|
||||
err |= ast_manager_register_xml("QueueChangePriorityCaller", 0, manager_change_priority_caller_on_queue);
|
||||
err |= ast_manager_register_xml("QueueWithdrawCaller", 0, manager_request_withdraw_caller_from_queue);
|
||||
err |= ast_custom_function_register(&queuevar_function);
|
||||
err |= ast_custom_function_register(&queueexists_function);
|
||||
err |= ast_custom_function_register(&queuemembercount_function);
|
||||
|
||||
@@ -1,16 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><title>Release Summary - asterisk-16.25.1</title><h1 align="center"><a name="top">Release Summary</a></h1><h3 align="center">asterisk-16.25.1</h3><h3 align="center">Date: 2022-03-29</h3><h3 align="center"><asteriskteam@digium.com></h3><hr><h2 align="center">Table of Contents</h2><ol>
|
||||
<li><a href="#summary">Summary</a></li>
|
||||
<li><a href="#contributors">Contributors</a></li>
|
||||
<li><a href="#closed_issues">Closed Issues</a></li>
|
||||
<li><a href="#diffstat">Diffstat</a></li>
|
||||
</ol><hr><a name="summary"><h2 align="center">Summary</h2></a><center><a href="#top">[Back to Top]</a></center><p>This release is a point release of an existing major version. The changes included were made to address problems that have been identified in this release series, or are minor, backwards compatible new features or improvements. Users should be able to safely upgrade to this version if this release series is already in use. Users considering upgrading from a previous version are strongly encouraged to review the UPGRADE.txt document as well as the CHANGES document for information about upgrading to this release series.</p><p>The data in this summary reflects changes that have been made since the previous release, asterisk-16.25.0.</p><hr><a name="contributors"><h2 align="center">Contributors</h2></a><center><a href="#top">[Back to Top]</a></center><p>This table lists the people who have submitted code, those that have tested patches, as well as those that reported issues on the issue tracker that were resolved in this release. For coders, the number is how many of their patches (of any size) were committed into this release. For testers, the number is the number of times their name was listed as assisting with testing a patch. Finally, for reporters, the number is the number of issues that they reported that were affected by commits that went into this release.</p><table width="100%" border="0">
|
||||
<tr><th width="33%">Coders</th><th width="33%">Testers</th><th width="33%">Reporters</th></tr>
|
||||
<tr valign="top"><td width="33%">2 George Joseph <gjoseph@digium.com><br/></td><td width="33%"><td width="33%">1 Stefan Ruijsenaars <stefanr@wave.com><br/>1 Stefan Ruijsenaars<br/>1 George Joseph <gjoseph@digium.com><br/></td></tr>
|
||||
</table><hr><a name="closed_issues"><h2 align="center">Closed Issues</h2></a><center><a href="#top">[Back to Top]</a></center><p>This is a list of all issues from the issue tracker that were closed by changes that went into this release.</p><h3>Bug</h3><h4>Category: Core/BuildSystem</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-29988">ASTERISK-29988</a>: REGRESSION: The build process is requiring xmllint or xmlstarlet ro be installed when it shouldn't<br/>Reported by: George Joseph<ul>
|
||||
<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=2944d6834c2b5da62f8769218c02a3898e212a3b">[2944d6834c]</a> George Joseph -- Makefile: Disable XML doc validation</li>
|
||||
</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-29986">ASTERISK-29986</a>: build: Asterisk 18.11.0 doesn't compile when wget isn't available<br/>Reported by: Stefan Ruijsenaars<ul>
|
||||
<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=32ccd34191065fe17a25d93e86fbc6739e4e51e8">[32ccd34191]</a> George Joseph -- make_xml_documentation: Remove usage of get_sourceable_makeopts</li>
|
||||
</ul><br><hr><a name="diffstat"><h2 align="center">Diffstat Results</h2></a><center><a href="#top">[Back to Top]</a></center><p>This is a summary of the changes to the source code that went into this release that was generated using the diffstat utility.</p><pre>b/Makefile | 9 ++++-
|
||||
b/build_tools/make_xml_documentation | 14 ---------
|
||||
build_tools/get_sourceable_makeopts | 54 -----------------------------------
|
||||
3 files changed, 7 insertions(+), 70 deletions(-)</pre><br></html>
|
||||
@@ -1,91 +0,0 @@
|
||||
Release Summary
|
||||
|
||||
asterisk-16.25.1
|
||||
|
||||
Date: 2022-03-29
|
||||
|
||||
<asteriskteam@digium.com>
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
Table of Contents
|
||||
|
||||
1. Summary
|
||||
2. Contributors
|
||||
3. Closed Issues
|
||||
4. Diffstat
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
Summary
|
||||
|
||||
[Back to Top]
|
||||
|
||||
This release is a point release of an existing major version. The changes
|
||||
included were made to address problems that have been identified in this
|
||||
release series, or are minor, backwards compatible new features or
|
||||
improvements. Users should be able to safely upgrade to this version if
|
||||
this release series is already in use. Users considering upgrading from a
|
||||
previous version are strongly encouraged to review the UPGRADE.txt
|
||||
document as well as the CHANGES document for information about upgrading
|
||||
to this release series.
|
||||
|
||||
The data in this summary reflects changes that have been made since the
|
||||
previous release, asterisk-16.25.0.
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
Contributors
|
||||
|
||||
[Back to Top]
|
||||
|
||||
This table lists the people who have submitted code, those that have
|
||||
tested patches, as well as those that reported issues on the issue tracker
|
||||
that were resolved in this release. For coders, the number is how many of
|
||||
their patches (of any size) were committed into this release. For testers,
|
||||
the number is the number of times their name was listed as assisting with
|
||||
testing a patch. Finally, for reporters, the number is the number of
|
||||
issues that they reported that were affected by commits that went into
|
||||
this release.
|
||||
|
||||
Coders Testers Reporters
|
||||
2 George Joseph 1 Stefan Ruijsenaars
|
||||
1 Stefan Ruijsenaars
|
||||
1 George Joseph
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
Closed Issues
|
||||
|
||||
[Back to Top]
|
||||
|
||||
This is a list of all issues from the issue tracker that were closed by
|
||||
changes that went into this release.
|
||||
|
||||
Bug
|
||||
|
||||
Category: Core/BuildSystem
|
||||
|
||||
ASTERISK-29988: REGRESSION: The build process is requiring xmllint or
|
||||
xmlstarlet ro be installed when it shouldn't
|
||||
Reported by: George Joseph
|
||||
* [2944d6834c] George Joseph -- Makefile: Disable XML doc validation
|
||||
ASTERISK-29986: build: Asterisk 18.11.0 doesn't compile when wget isn't
|
||||
available
|
||||
Reported by: Stefan Ruijsenaars
|
||||
* [32ccd34191] George Joseph -- make_xml_documentation: Remove usage of
|
||||
get_sourceable_makeopts
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
Diffstat Results
|
||||
|
||||
[Back to Top]
|
||||
|
||||
This is a summary of the changes to the source code that went into this
|
||||
release that was generated using the diffstat utility.
|
||||
|
||||
b/Makefile | 9 ++++-
|
||||
b/build_tools/make_xml_documentation | 14 ---------
|
||||
build_tools/get_sourceable_makeopts | 54 -----------------------------------
|
||||
3 files changed, 7 insertions(+), 70 deletions(-)
|
||||
54
build_tools/get_sourceable_makeopts
Executable file
54
build_tools/get_sourceable_makeopts
Executable file
@@ -0,0 +1,54 @@
|
||||
#!/bin/sh
|
||||
PROGNAME="${0##*/}"
|
||||
|
||||
if [ "$1" = "-h" ] || [ "$1" = "--help" ] ; then
|
||||
cat <<-EOF
|
||||
Usage: ${PROGNAME}: [ <input_file> ] [ <output_file> ]
|
||||
|
||||
This script takes an Asterisk makeopts file, or any file containing
|
||||
"make" style variable assignments, and converts it into a format
|
||||
that can be directly 'sourced' by shell scripts.
|
||||
|
||||
* Any spaces around the equals sign are removed.
|
||||
* The variable value is quoted.
|
||||
* The "make" "or" command is evaluated.
|
||||
|
||||
Both input and output files are optional and will default to
|
||||
stdin and stdout respectively.
|
||||
|
||||
NOTE: This script relies on NO external commands and only POSIX
|
||||
constructs. It should be runnable by any shell.
|
||||
EOF
|
||||
exit 1
|
||||
fi
|
||||
|
||||
input_file="/dev/stdin"
|
||||
if [ "$1" != "" ] ; then
|
||||
input_file="$1"
|
||||
fi
|
||||
|
||||
output_file="/dev/stdout"
|
||||
if [ "$2" != "" ] ; then
|
||||
output_file="$2"
|
||||
fi
|
||||
|
||||
# orfunc is a code fragment to be added to the outp[ut file.
|
||||
# We don't WANT the variables evaluated.
|
||||
# shellcheck disable=SC2016
|
||||
orfunc='or (){ before="${1%,*}" ; after="${1#*,}" ; if [ "$before" = "" ] ; then echo "${after}" ; else echo "${before}" ; fi ; }'
|
||||
echo "${orfunc}" >"${output_file}"
|
||||
|
||||
while read -r LINE ; do
|
||||
var="${LINE%%=*}"
|
||||
if [ "${var}" != "" ] ; then
|
||||
val="${LINE#*=}"
|
||||
if [ "${val}" != "${var}" ] ; then
|
||||
if [ "${val%% *}" = "" ] ; then
|
||||
echo "${var% *}=\"${val#* }\""
|
||||
else
|
||||
echo "${var% *}=\"${val}\""
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
done <"${input_file}" >>"${output_file}"
|
||||
|
||||
@@ -1,7 +1,10 @@
|
||||
#!/bin/sh
|
||||
# The GREP, SED, FIND, etc variables are all set at run time from
|
||||
# makeopts.
|
||||
# shellcheck disable=SC2154
|
||||
|
||||
PROGNAME="${0##*/}"
|
||||
PROGDIR="${0%/*}"
|
||||
|
||||
# Fail on errors
|
||||
set -e
|
||||
@@ -108,25 +111,36 @@ if [ ! -d "${source_tree}" ] ; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ ! -f "${source_tree}/Makefile" ] ; then
|
||||
echo "There's no 'Makefile' in '${source_tree}'."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ ! -f "${source_tree}/makeopts" ] ; then
|
||||
echo "There's no 'makeopts' in '${source_tree}'. Maybe you need to run ./configure?"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# This script is normally run from the top-level Makefile which
|
||||
# will set the tools variables to actual paths, or ':' if
|
||||
# the tool isn't found. If this script is run from the
|
||||
# command line for testing purposes however, we'll need to
|
||||
# set some sane defaults.
|
||||
if [ "${GREP}" = "" ] ; then GREP="grep" ; fi
|
||||
if [ "${FIND}" = "" ] ; then FIND="find" ; fi
|
||||
if [ "${AWK}" = "" ] ; then AWK="awk" ; fi
|
||||
if [ "${DIRNAME}" = "" ] ; then DIRNAME="dirname" ; fi
|
||||
if [ "${BASENAME}" = "" ] ; then BASENAME="basename" ; fi
|
||||
if [ "${SED}" = "" ] ; then SED="sed" ; fi
|
||||
if [ "${CAT}" = "" ] ; then CAT="cat" ; fi
|
||||
if [ "${XMLLINT}" = "" ] ; then XMLLINT="xmllint" ; fi
|
||||
if [ "${XMLSTARLET}" = "" ] ; then XMLSTARLET="xmlstarlet" ; fi
|
||||
# This will get the paths to the utilities we need, all
|
||||
# of which will be in makeopts. We need to convert the
|
||||
# format so it's sourceable.
|
||||
tmpname="/tmp/ast_makeopts.$$.env"
|
||||
trap 'rm "$tmpname" >/dev/null 2>&1' INT QUIT TERM EXIT
|
||||
"${PROGDIR}/get_sourceable_makeopts" "${source_tree}/makeopts" >"${tmpname}"
|
||||
# The file to be sourced is generated at run time and can't be checked.
|
||||
# shellcheck disable=SC1090
|
||||
. "${tmpname}"
|
||||
rm "${tmpname}" > /dev/null 2>&1 || :
|
||||
trap - INT QUIT TERM EXIT
|
||||
|
||||
# Make sure we have everything we need.
|
||||
for c in GREP FIND AWK DIRNAME BASENAME SED CAT ; do
|
||||
bin=$(eval "echo \${${c}}")
|
||||
if [ "${bin}" = "" ] ; then
|
||||
echo "The '${c}' utility was not found."
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
|
||||
if [ "${for_wiki}" -eq "1" ] || [ "${validate}" -eq "1" ]; then
|
||||
if [ "${XMLLINT}${XMLSTARLET}" = "::" ] ; then
|
||||
|
||||
@@ -1,41 +0,0 @@
|
||||
CREATE TABLE alembic_version (
|
||||
version_num VARCHAR(32) NOT NULL,
|
||||
CONSTRAINT alembic_version_pkc PRIMARY KEY (version_num)
|
||||
);
|
||||
|
||||
-- Running upgrade -> 210693f3123d
|
||||
|
||||
CREATE TABLE cdr (
|
||||
accountcode VARCHAR(20),
|
||||
src VARCHAR(80),
|
||||
dst VARCHAR(80),
|
||||
dcontext VARCHAR(80),
|
||||
clid VARCHAR(80),
|
||||
channel VARCHAR(80),
|
||||
dstchannel VARCHAR(80),
|
||||
lastapp VARCHAR(80),
|
||||
lastdata VARCHAR(80),
|
||||
start DATETIME,
|
||||
answer DATETIME,
|
||||
end DATETIME,
|
||||
duration INTEGER,
|
||||
billsec INTEGER,
|
||||
disposition VARCHAR(45),
|
||||
amaflags VARCHAR(45),
|
||||
userfield VARCHAR(256),
|
||||
uniqueid VARCHAR(150),
|
||||
linkedid VARCHAR(150),
|
||||
peeraccount VARCHAR(20),
|
||||
sequence INTEGER
|
||||
);
|
||||
|
||||
INSERT INTO alembic_version (version_num) VALUES ('210693f3123d');
|
||||
|
||||
-- Running upgrade 210693f3123d -> 54cde9847798
|
||||
|
||||
ALTER TABLE cdr MODIFY accountcode VARCHAR(80) NULL;
|
||||
|
||||
ALTER TABLE cdr MODIFY peeraccount VARCHAR(80) NULL;
|
||||
|
||||
UPDATE alembic_version SET version_num='54cde9847798' WHERE alembic_version.version_num = '210693f3123d';
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,35 +0,0 @@
|
||||
CREATE TABLE alembic_version (
|
||||
version_num VARCHAR(32) NOT NULL,
|
||||
CONSTRAINT alembic_version_pkc PRIMARY KEY (version_num)
|
||||
);
|
||||
|
||||
-- Running upgrade -> a2e9769475e
|
||||
|
||||
CREATE TABLE voicemail_messages (
|
||||
dir VARCHAR(255) NOT NULL,
|
||||
msgnum INTEGER NOT NULL,
|
||||
context VARCHAR(80),
|
||||
macrocontext VARCHAR(80),
|
||||
callerid VARCHAR(80),
|
||||
origtime INTEGER,
|
||||
duration INTEGER,
|
||||
recording BLOB,
|
||||
flag VARCHAR(30),
|
||||
category VARCHAR(30),
|
||||
mailboxuser VARCHAR(30),
|
||||
mailboxcontext VARCHAR(30),
|
||||
msg_id VARCHAR(40)
|
||||
);
|
||||
|
||||
ALTER TABLE voicemail_messages ADD CONSTRAINT voicemail_messages_dir_msgnum PRIMARY KEY (dir, msgnum);
|
||||
|
||||
CREATE INDEX voicemail_messages_dir ON voicemail_messages (dir);
|
||||
|
||||
INSERT INTO alembic_version (version_num) VALUES ('a2e9769475e');
|
||||
|
||||
-- Running upgrade a2e9769475e -> 39428242f7f5
|
||||
|
||||
ALTER TABLE voicemail_messages MODIFY recording BLOB(4294967295) NULL;
|
||||
|
||||
UPDATE alembic_version SET version_num='39428242f7f5' WHERE alembic_version.version_num = 'a2e9769475e';
|
||||
|
||||
@@ -1,45 +0,0 @@
|
||||
BEGIN;
|
||||
|
||||
CREATE TABLE alembic_version (
|
||||
version_num VARCHAR(32) NOT NULL,
|
||||
CONSTRAINT alembic_version_pkc PRIMARY KEY (version_num)
|
||||
);
|
||||
|
||||
-- Running upgrade -> 210693f3123d
|
||||
|
||||
CREATE TABLE cdr (
|
||||
accountcode VARCHAR(20),
|
||||
src VARCHAR(80),
|
||||
dst VARCHAR(80),
|
||||
dcontext VARCHAR(80),
|
||||
clid VARCHAR(80),
|
||||
channel VARCHAR(80),
|
||||
dstchannel VARCHAR(80),
|
||||
lastapp VARCHAR(80),
|
||||
lastdata VARCHAR(80),
|
||||
start TIMESTAMP WITHOUT TIME ZONE,
|
||||
answer TIMESTAMP WITHOUT TIME ZONE,
|
||||
"end" TIMESTAMP WITHOUT TIME ZONE,
|
||||
duration INTEGER,
|
||||
billsec INTEGER,
|
||||
disposition VARCHAR(45),
|
||||
amaflags VARCHAR(45),
|
||||
userfield VARCHAR(256),
|
||||
uniqueid VARCHAR(150),
|
||||
linkedid VARCHAR(150),
|
||||
peeraccount VARCHAR(20),
|
||||
sequence INTEGER
|
||||
);
|
||||
|
||||
INSERT INTO alembic_version (version_num) VALUES ('210693f3123d');
|
||||
|
||||
-- Running upgrade 210693f3123d -> 54cde9847798
|
||||
|
||||
ALTER TABLE cdr ALTER COLUMN accountcode TYPE VARCHAR(80);
|
||||
|
||||
ALTER TABLE cdr ALTER COLUMN peeraccount TYPE VARCHAR(80);
|
||||
|
||||
UPDATE alembic_version SET version_num='54cde9847798' WHERE alembic_version.version_num = '210693f3123d';
|
||||
|
||||
COMMIT;
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,39 +0,0 @@
|
||||
BEGIN;
|
||||
|
||||
CREATE TABLE alembic_version (
|
||||
version_num VARCHAR(32) NOT NULL,
|
||||
CONSTRAINT alembic_version_pkc PRIMARY KEY (version_num)
|
||||
);
|
||||
|
||||
-- Running upgrade -> a2e9769475e
|
||||
|
||||
CREATE TABLE voicemail_messages (
|
||||
dir VARCHAR(255) NOT NULL,
|
||||
msgnum INTEGER NOT NULL,
|
||||
context VARCHAR(80),
|
||||
macrocontext VARCHAR(80),
|
||||
callerid VARCHAR(80),
|
||||
origtime INTEGER,
|
||||
duration INTEGER,
|
||||
recording BYTEA,
|
||||
flag VARCHAR(30),
|
||||
category VARCHAR(30),
|
||||
mailboxuser VARCHAR(30),
|
||||
mailboxcontext VARCHAR(30),
|
||||
msg_id VARCHAR(40)
|
||||
);
|
||||
|
||||
ALTER TABLE voicemail_messages ADD CONSTRAINT voicemail_messages_dir_msgnum PRIMARY KEY (dir, msgnum);
|
||||
|
||||
CREATE INDEX voicemail_messages_dir ON voicemail_messages (dir);
|
||||
|
||||
INSERT INTO alembic_version (version_num) VALUES ('a2e9769475e');
|
||||
|
||||
-- Running upgrade a2e9769475e -> 39428242f7f5
|
||||
|
||||
ALTER TABLE voicemail_messages ALTER COLUMN recording TYPE BYTEA;
|
||||
|
||||
UPDATE alembic_version SET version_num='39428242f7f5' WHERE alembic_version.version_num = 'a2e9769475e';
|
||||
|
||||
COMMIT;
|
||||
|
||||
4
doc/CHANGES-staging/channel_internal_api.txt
Normal file
4
doc/CHANGES-staging/channel_internal_api.txt
Normal file
@@ -0,0 +1,4 @@
|
||||
Subject: channel_internal_api
|
||||
|
||||
CHANNEL(lastcontext) and CHANNEL(lastexten)
|
||||
are now available for use in the dialplan.
|
||||
5
doc/CHANGES-staging/load_realtime_queues.txt
Normal file
5
doc/CHANGES-staging/load_realtime_queues.txt
Normal file
@@ -0,0 +1,5 @@
|
||||
Subject: app_queue
|
||||
|
||||
Load queues and members from Realtime for
|
||||
AMI actions: QueuePause, QueueStatus and QueueSummary,
|
||||
Applications: PauseQueueMember and UnpauseQueueMember.
|
||||
4
doc/CHANGES-staging/manager_disable.txt
Normal file
4
doc/CHANGES-staging/manager_disable.txt
Normal file
@@ -0,0 +1,4 @@
|
||||
Subject: ami
|
||||
|
||||
AMI events can now be globally disabled using
|
||||
the disabledevents [general] setting.
|
||||
10
doc/CHANGES-staging/rls_display_name.txt
Normal file
10
doc/CHANGES-staging/rls_display_name.txt
Normal file
@@ -0,0 +1,10 @@
|
||||
Subject: res_pjsip_pubsub
|
||||
|
||||
A new resource_list option, resource_display_name, indicates
|
||||
whether display name of resource or the resource name being
|
||||
provided for RLS entries.
|
||||
If this option is enabled, the Display Name will be provided.
|
||||
This option is disabled by default to remain the previous behavior.
|
||||
If the 'event' set to 'presence' or 'dialog' the non-empty HINT name
|
||||
will be set as the Display Name.
|
||||
The 'message-summary' is not supported yet.
|
||||
8
doc/UPGRADE-staging/manager_amxml_attribute_fix.txt
Normal file
8
doc/UPGRADE-staging/manager_amxml_attribute_fix.txt
Normal file
@@ -0,0 +1,8 @@
|
||||
Subject: AMI
|
||||
|
||||
The XML Manager Event Interface (amxml) now generates attribute names
|
||||
that are compliant with the XML 1.1 specification. Previously, an
|
||||
attribute name that started with a digit would be rendered as-is, even
|
||||
though attribute names must not begin with a digit. We now prefix
|
||||
attribute names that start with a digit with an underscore ('_') to
|
||||
prevent XML validation failures.
|
||||
@@ -54,7 +54,7 @@
|
||||
- \ref manager.c Main manager code file
|
||||
*/
|
||||
|
||||
#define AMI_VERSION "5.0.4"
|
||||
#define AMI_VERSION "5.0.3"
|
||||
#define DEFAULT_MANAGER_PORT 5038 /* Default port for Asterisk management via TCP */
|
||||
#define DEFAULT_MANAGER_TLS_PORT 5039 /* Default port for Asterisk management via TCP */
|
||||
|
||||
|
||||
@@ -1234,8 +1234,8 @@ static int require_pgsql(const char *database, const char *tablename, va_list ap
|
||||
AST_LIST_TRAVERSE(&table->columns, column, list) {
|
||||
if (strcmp(column->name, elm) == 0) {
|
||||
/* Char can hold anything, as long as it is large enough */
|
||||
if ((strncmp(column->type, "char", 4) == 0 || strncmp(column->type, "varchar", 7) == 0 || strcmp(column->type, "bpchar") == 0 || strncmp(column->type, "text", 4) == 0)) {
|
||||
if (column->len != -1 && (size > column->len)) {
|
||||
if ((strncmp(column->type, "char", 4) == 0 || strncmp(column->type, "varchar", 7) == 0 || strcmp(column->type, "bpchar") == 0)) {
|
||||
if ((size > column->len) && column->len != -1) {
|
||||
ast_log(LOG_WARNING, "Column '%s' should be at least %d long, but is only %d long.\n", column->name, size, column->len);
|
||||
res = -1;
|
||||
}
|
||||
|
||||
@@ -475,10 +475,6 @@ struct sip_subscription_tree {
|
||||
* Only used for reliable transports.
|
||||
*/
|
||||
pjsip_transport *transport;
|
||||
/*! Indicator if initial notify should be generated.
|
||||
* Used to refresh modified RLS.
|
||||
*/
|
||||
unsigned int generate_initial_notify;
|
||||
};
|
||||
|
||||
/*!
|
||||
@@ -3906,15 +3902,6 @@ static int pubsub_on_refresh_timeout(void *userdata)
|
||||
set_state_terminated(sub_tree->root);
|
||||
}
|
||||
|
||||
if (sub_tree->generate_initial_notify) {
|
||||
sub_tree->generate_initial_notify = 0;
|
||||
if (generate_initial_notify(sub_tree->root)) {
|
||||
pjsip_evsub_terminate(sub_tree->evsub, PJ_TRUE);
|
||||
pjsip_dlg_dec_lock(dlg);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
send_notify(sub_tree, 1);
|
||||
|
||||
ast_test_suite_event_notify(sub_tree->root->subscription_state == PJSIP_EVSUB_STATE_TERMINATED ?
|
||||
@@ -3939,52 +3926,6 @@ static int serialized_pubsub_on_refresh_timeout(void *userdata)
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*!
|
||||
* \brief Compare strings for equality checking for NULL.
|
||||
*
|
||||
* This function considers NULL values as empty strings.
|
||||
* This means NULL or empty strings are equal.
|
||||
*
|
||||
* \retval 0 The strings are equal
|
||||
* \retval 1 The strings are not equal
|
||||
*/
|
||||
static int cmp_strings(char *s1, char *s2)
|
||||
{
|
||||
if (!ast_strlen_zero(s1) && !ast_strlen_zero(s2)) {
|
||||
return strcmp(s1, s2);
|
||||
}
|
||||
|
||||
return ast_strlen_zero(s1) == ast_strlen_zero(s2) ? 0 : 1;
|
||||
}
|
||||
|
||||
/*!
|
||||
* \brief compares the childrens of two ast_sip_subscription s1 and s2
|
||||
*
|
||||
* \retval 0 The s1 childrens match the s2 childrens
|
||||
* \retval 1 The s1 childrens do not match the s2 childrens
|
||||
*/
|
||||
static int cmp_subscription_childrens(struct ast_sip_subscription *s1, struct ast_sip_subscription *s2)
|
||||
{
|
||||
int i;
|
||||
|
||||
if (AST_VECTOR_SIZE(&s1->children) != AST_VECTOR_SIZE(&s2->children)) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
for (i = 0; i < AST_VECTOR_SIZE(&s1->children); ++i) {
|
||||
struct ast_sip_subscription *c1 = AST_VECTOR_GET(&s1->children, i);
|
||||
struct ast_sip_subscription *c2 = AST_VECTOR_GET(&s2->children, i);
|
||||
|
||||
if (cmp_strings(c1->resource, c2->resource)
|
||||
|| cmp_strings(c1->display_name, c2->display_name)) {
|
||||
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*!
|
||||
* \brief Called whenever an in-dialog SUBSCRIBE is received
|
||||
*
|
||||
@@ -4025,48 +3966,6 @@ static void pubsub_on_rx_refresh(pjsip_evsub *evsub, pjsip_rx_data *rdata,
|
||||
sub_tree->state = SIP_SUB_TREE_TERMINATE_PENDING;
|
||||
}
|
||||
|
||||
if (sub_tree->state == SIP_SUB_TREE_NORMAL && sub_tree->is_list) {
|
||||
/* update RLS */
|
||||
const char *resource = sub_tree->root->resource;
|
||||
struct ast_sip_subscription *old_root = sub_tree->root;
|
||||
struct ast_sip_subscription *new_root = NULL;
|
||||
RAII_VAR(struct ast_sip_endpoint *, endpoint, NULL, ao2_cleanup);
|
||||
struct ast_sip_subscription_handler *handler = NULL;
|
||||
struct ast_sip_pubsub_body_generator *generator = NULL;
|
||||
|
||||
if ((endpoint = ast_pjsip_rdata_get_endpoint(rdata))
|
||||
&& (handler = subscription_get_handler_from_rdata(rdata, ast_sorcery_object_get_id(endpoint)))
|
||||
&& (generator = subscription_get_generator_from_rdata(rdata, handler))) {
|
||||
|
||||
struct resource_tree tree;
|
||||
int resp;
|
||||
|
||||
memset(&tree, 0, sizeof(tree));
|
||||
resp = build_resource_tree(endpoint, handler, resource, &tree,
|
||||
ast_sip_pubsub_has_eventlist_support(rdata));
|
||||
if (PJSIP_IS_STATUS_IN_CLASS(resp, 200)) {
|
||||
new_root = create_virtual_subscriptions(handler, resource, generator, sub_tree, tree.root);
|
||||
if (new_root) {
|
||||
if (cmp_subscription_childrens(old_root, new_root)) {
|
||||
ast_debug(1, "RLS '%s->%s' was modified, regenerate it\n", ast_sorcery_object_get_id(endpoint), old_root->resource);
|
||||
new_root->version = old_root->version;
|
||||
sub_tree->root = new_root;
|
||||
sub_tree->generate_initial_notify = 1;
|
||||
shutdown_subscriptions(old_root);
|
||||
destroy_subscriptions(old_root);
|
||||
} else {
|
||||
destroy_subscriptions(new_root);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
sub_tree->state = SIP_SUB_TREE_TERMINATE_PENDING;
|
||||
pjsip_evsub_terminate(sub_tree->evsub, PJ_TRUE);
|
||||
}
|
||||
|
||||
resource_tree_destroy(&tree);
|
||||
}
|
||||
}
|
||||
|
||||
subscription_persistence_update(sub_tree, rdata, SUBSCRIPTION_PERSISTENCE_REFRESHED);
|
||||
|
||||
if (ast_sip_push_task(sub_tree->serializer, serialized_pubsub_on_refresh_timeout, ao2_bump(sub_tree))) {
|
||||
|
||||
@@ -12,13 +12,34 @@ fi
|
||||
|
||||
pushd $TESTSUITE_DIR
|
||||
|
||||
if [[ "$VIRTUAL_ENV" != "" ]]
|
||||
then
|
||||
echo "Detected activated virtual environment:"
|
||||
echo $VIRTUAL_ENV
|
||||
echo "Skipping creation of new environment"
|
||||
else
|
||||
python3 -m venv ${TESTSUITE_DIR}/.venv
|
||||
source ${TESTSUITE_DIR}/.venv/bin/activate
|
||||
if [[ "$VIRTUAL_ENV" != "" ]]
|
||||
then
|
||||
echo "Successfully activated virtual environment:"
|
||||
echo $VIRTUAL_ENV
|
||||
python -m pip install --upgrade pip
|
||||
python -m pip install wheel setuptools build
|
||||
python -m pip install -r ./requirements.txt
|
||||
python -m pip install -r ./extras.txt
|
||||
else
|
||||
echo "Virtual environment failed, attempting fall-back method"
|
||||
export PYTHONPATH=./lib/python/
|
||||
fi
|
||||
fi
|
||||
|
||||
./cleanup-test-remnants.sh
|
||||
|
||||
if [ $REALTIME -eq 1 ] ; then
|
||||
$CIDIR/setupRealtime.sh --initialize-db=${INITIALIZE_DB:?0}
|
||||
fi
|
||||
|
||||
export PYTHONPATH=./lib/python/
|
||||
echo "Running tests ${TESTSUITE_COMMAND} ${AST_WORK_DIR:+with work directory ${AST_WORK_DIR}}"
|
||||
./runtests.py --cleanup --timeout=${TEST_TIMEOUT} ${TESTSUITE_COMMAND} | contrib/scripts/pretty_print --no-color --no-timer --term-width=120 --show-errors || :
|
||||
|
||||
|
||||
Reference in New Issue
Block a user