mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2026-02-04 01:20:35 +01:00
merge: branch 'ih/distros-update'
ci: update supported distros https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/2202
This commit is contained in:
commit
9e585b6cdc
15 changed files with 87 additions and 124 deletions
130
.gitlab-ci.yml
130
.gitlab-ci.yml
|
|
@ -60,11 +60,11 @@ variables:
|
|||
#
|
||||
# This is done by running `ci-fairy generate-template` and possibly bumping
|
||||
# ".default_tag".
|
||||
ALPINE_TAG: 'tag-57edf560bf4f'
|
||||
CENTOS_TAG: 'tag-7ea4f50c8578'
|
||||
DEBIAN_TAG: 'tag-1601ce2572c5'
|
||||
FEDORA_TAG: 'tag-7ea4f50c8578'
|
||||
UBUNTU_TAG: 'tag-1601ce2572c5'
|
||||
ALPINE_TAG: 'tag-da1ae96102c6'
|
||||
CENTOS_TAG: 'tag-c8df7d2b249f'
|
||||
DEBIAN_TAG: 'tag-e68f538711ec'
|
||||
FEDORA_TAG: 'tag-c8df7d2b249f'
|
||||
UBUNTU_TAG: 'tag-e68f538711ec'
|
||||
|
||||
ALPINE_EXEC: 'bash .gitlab-ci/alpine-install.sh'
|
||||
CENTOS_EXEC: 'bash .gitlab-ci/fedora-install.sh'
|
||||
|
|
@ -102,13 +102,13 @@ variables:
|
|||
# Build a container for each distribution + version. The ci-templates
|
||||
# will re-use the containers if the tag doesn't change.
|
||||
|
||||
tier1:fedora:41@prep:
|
||||
tier1:fedora:42@prep:
|
||||
extends:
|
||||
- .fdo.container-build@fedora
|
||||
stage: prep
|
||||
variables:
|
||||
GIT_STRATEGY: none
|
||||
FDO_DISTRIBUTION_VERSION: '41'
|
||||
FDO_DISTRIBUTION_VERSION: '42'
|
||||
FDO_DISTRIBUTION_TAG: $FEDORA_TAG
|
||||
FDO_DISTRIBUTION_EXEC: $FEDORA_EXEC
|
||||
rules:
|
||||
|
|
@ -198,13 +198,13 @@ tier2:alpine:edge@prep:
|
|||
when: manual
|
||||
allow_failure: true
|
||||
|
||||
tier3:fedora:40@prep:
|
||||
tier3:fedora:41@prep:
|
||||
extends:
|
||||
- .fdo.container-build@fedora
|
||||
stage: prep
|
||||
variables:
|
||||
GIT_STRATEGY: none
|
||||
FDO_DISTRIBUTION_VERSION: '40'
|
||||
FDO_DISTRIBUTION_VERSION: '41'
|
||||
FDO_DISTRIBUTION_TAG: $FEDORA_TAG
|
||||
FDO_DISTRIBUTION_EXEC: $FEDORA_EXEC
|
||||
rules:
|
||||
|
|
@ -212,6 +212,20 @@ tier3:fedora:40@prep:
|
|||
when: manual
|
||||
allow_failure: true
|
||||
|
||||
tier3:ubuntu:25.04@prep:
|
||||
extends:
|
||||
- .fdo.container-build@ubuntu
|
||||
stage: prep
|
||||
variables:
|
||||
GIT_STRATEGY: none
|
||||
FDO_DISTRIBUTION_VERSION: '25.04'
|
||||
FDO_DISTRIBUTION_TAG: $UBUNTU_TAG
|
||||
FDO_DISTRIBUTION_EXEC: $UBUNTU_EXEC
|
||||
rules:
|
||||
- if: $CI_PIPELINE_SOURCE != 'schedule'
|
||||
when: manual
|
||||
allow_failure: true
|
||||
|
||||
tier3:ubuntu:24.10@prep:
|
||||
extends:
|
||||
- .fdo.container-build@ubuntu
|
||||
|
|
@ -254,20 +268,6 @@ tier3:ubuntu:22.04@prep:
|
|||
when: manual
|
||||
allow_failure: true
|
||||
|
||||
tier3:ubuntu:20.04@prep:
|
||||
extends:
|
||||
- .fdo.container-build@ubuntu
|
||||
stage: prep
|
||||
variables:
|
||||
GIT_STRATEGY: none
|
||||
FDO_DISTRIBUTION_VERSION: '20.04'
|
||||
FDO_DISTRIBUTION_TAG: $UBUNTU_TAG
|
||||
FDO_DISTRIBUTION_EXEC: $UBUNTU_EXEC
|
||||
rules:
|
||||
- if: $CI_PIPELINE_SOURCE != 'schedule'
|
||||
when: manual
|
||||
allow_failure: true
|
||||
|
||||
tier3:debian:12@prep:
|
||||
extends:
|
||||
- .fdo.container-build@debian
|
||||
|
|
@ -324,20 +324,6 @@ tier3:alpine:3.19@prep:
|
|||
when: manual
|
||||
allow_failure: true
|
||||
|
||||
tier3:alpine:3.18@prep:
|
||||
extends:
|
||||
- .fdo.container-build@alpine
|
||||
stage: prep
|
||||
variables:
|
||||
GIT_STRATEGY: none
|
||||
FDO_DISTRIBUTION_VERSION: '3.18'
|
||||
FDO_DISTRIBUTION_TAG: $ALPINE_TAG
|
||||
FDO_DISTRIBUTION_EXEC: $ALPINE_EXEC
|
||||
rules:
|
||||
- if: $CI_PIPELINE_SOURCE != 'schedule'
|
||||
when: manual
|
||||
allow_failure: true
|
||||
|
||||
#################################################################
|
||||
# #
|
||||
# tierN stage #
|
||||
|
|
@ -354,7 +340,7 @@ tier3:alpine:3.18@prep:
|
|||
dependencies: []
|
||||
|
||||
|
||||
t_fedora:41:
|
||||
t_fedora:42:
|
||||
extends:
|
||||
- .build@template
|
||||
- .fdo.distribution-image@fedora
|
||||
|
|
@ -370,10 +356,10 @@ t_fedora:41:
|
|||
- tarball
|
||||
- subtree
|
||||
variables:
|
||||
FDO_DISTRIBUTION_VERSION: '41'
|
||||
FDO_DISTRIBUTION_VERSION: '42'
|
||||
FDO_DISTRIBUTION_TAG: $FEDORA_TAG
|
||||
needs:
|
||||
- "tier1:fedora:41@prep"
|
||||
- "tier1:fedora:42@prep"
|
||||
rules:
|
||||
- if: $CI_PIPELINE_SOURCE != 'schedule'
|
||||
|
||||
|
|
@ -461,17 +447,31 @@ t_alpine:edge:
|
|||
rules:
|
||||
- if: $CI_PIPELINE_SOURCE != 'schedule'
|
||||
|
||||
t_fedora:40:
|
||||
t_fedora:41:
|
||||
extends:
|
||||
- .build@template
|
||||
- .fdo.distribution-image@fedora
|
||||
- .nm_artifacts_debug
|
||||
stage: tier3
|
||||
variables:
|
||||
FDO_DISTRIBUTION_VERSION: '40'
|
||||
FDO_DISTRIBUTION_VERSION: '41'
|
||||
FDO_DISTRIBUTION_TAG: $FEDORA_TAG
|
||||
needs:
|
||||
- "tier3:fedora:40@prep"
|
||||
- "tier3:fedora:41@prep"
|
||||
rules:
|
||||
- if: $CI_PIPELINE_SOURCE != 'schedule'
|
||||
|
||||
t_ubuntu:25.04:
|
||||
extends:
|
||||
- .build@template
|
||||
- .fdo.distribution-image@ubuntu
|
||||
- .nm_artifacts_debug
|
||||
stage: tier3
|
||||
variables:
|
||||
FDO_DISTRIBUTION_VERSION: '25.04'
|
||||
FDO_DISTRIBUTION_TAG: $UBUNTU_TAG
|
||||
needs:
|
||||
- "tier3:ubuntu:25.04@prep"
|
||||
rules:
|
||||
- if: $CI_PIPELINE_SOURCE != 'schedule'
|
||||
|
||||
|
|
@ -517,20 +517,6 @@ t_ubuntu:22.04:
|
|||
rules:
|
||||
- if: $CI_PIPELINE_SOURCE != 'schedule'
|
||||
|
||||
t_ubuntu:20.04:
|
||||
extends:
|
||||
- .build@template
|
||||
- .fdo.distribution-image@ubuntu
|
||||
- .nm_artifacts_debug
|
||||
stage: tier3
|
||||
variables:
|
||||
FDO_DISTRIBUTION_VERSION: '20.04'
|
||||
FDO_DISTRIBUTION_TAG: $UBUNTU_TAG
|
||||
needs:
|
||||
- "tier3:ubuntu:20.04@prep"
|
||||
rules:
|
||||
- if: $CI_PIPELINE_SOURCE != 'schedule'
|
||||
|
||||
t_debian:12:
|
||||
extends:
|
||||
- .build@template
|
||||
|
|
@ -587,20 +573,6 @@ t_alpine:3.19:
|
|||
rules:
|
||||
- if: $CI_PIPELINE_SOURCE != 'schedule'
|
||||
|
||||
t_alpine:3.18:
|
||||
extends:
|
||||
- .build@template
|
||||
- .fdo.distribution-image@alpine
|
||||
- .nm_artifacts_debug
|
||||
stage: tier3
|
||||
variables:
|
||||
FDO_DISTRIBUTION_VERSION: '3.18'
|
||||
FDO_DISTRIBUTION_TAG: $ALPINE_TAG
|
||||
needs:
|
||||
- "tier3:alpine:3.18@prep"
|
||||
rules:
|
||||
- if: $CI_PIPELINE_SOURCE != 'schedule'
|
||||
|
||||
#################################################################
|
||||
# #
|
||||
# specific jobs #
|
||||
|
|
@ -611,10 +583,10 @@ check-patch:
|
|||
extends:
|
||||
- .fdo.distribution-image@fedora
|
||||
variables:
|
||||
FDO_DISTRIBUTION_VERSION: '41'
|
||||
FDO_DISTRIBUTION_VERSION: '42'
|
||||
FDO_DISTRIBUTION_TAG: $FEDORA_TAG
|
||||
needs:
|
||||
- "tier1:fedora:41@prep"
|
||||
- "tier1:fedora:42@prep"
|
||||
rules:
|
||||
- if: $CI_PIPELINE_SOURCE != 'schedule'
|
||||
stage: tier1
|
||||
|
|
@ -626,10 +598,10 @@ check-tree:
|
|||
extends:
|
||||
- .fdo.distribution-image@fedora
|
||||
variables:
|
||||
FDO_DISTRIBUTION_VERSION: '41'
|
||||
FDO_DISTRIBUTION_VERSION: '42'
|
||||
FDO_DISTRIBUTION_TAG: $FEDORA_TAG
|
||||
needs:
|
||||
- "tier1:fedora:41@prep"
|
||||
- "tier1:fedora:42@prep"
|
||||
rules:
|
||||
- if: $CI_PIPELINE_SOURCE == 'merge_request_event' && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME != $CI_DEFAULT_BRANCH
|
||||
allow_failure: true
|
||||
|
|
@ -659,9 +631,9 @@ pages:
|
|||
when: never
|
||||
- if: $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME == 'main'
|
||||
dependencies:
|
||||
- "t_fedora:41: [meson+gcc+docs+valgrind]"
|
||||
- "t_fedora:42: [meson+gcc+docs+valgrind]"
|
||||
needs:
|
||||
- "t_fedora:41: [meson+gcc+docs+valgrind]"
|
||||
- "t_fedora:42: [meson+gcc+docs+valgrind]"
|
||||
|
||||
triage:issues:
|
||||
stage: triage
|
||||
|
|
@ -678,11 +650,11 @@ coverity:
|
|||
extends:
|
||||
- .fdo.distribution-image@fedora
|
||||
variables:
|
||||
FDO_DISTRIBUTION_VERSION: '41'
|
||||
FDO_DISTRIBUTION_VERSION: '42'
|
||||
FDO_DISTRIBUTION_TAG: $FEDORA_TAG
|
||||
stage: coverity
|
||||
needs:
|
||||
- "tier1:fedora:41@prep"
|
||||
- "tier1:fedora:42@prep"
|
||||
rules:
|
||||
- if: $CI_PIPELINE_SOURCE == "schedule" && $SCHEDULED_PIPELINE_NAME == "weekly"
|
||||
script:
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ distributions:
|
|||
- name: fedora
|
||||
tier: 1
|
||||
versions:
|
||||
- '41'
|
||||
- '42'
|
||||
|
||||
# TIER 2: distribution versions that will or might use the current NM version.
|
||||
# Run when doing a release.
|
||||
|
|
@ -54,14 +54,14 @@ distributions:
|
|||
- name: fedora
|
||||
tier: 3
|
||||
versions:
|
||||
- '40'
|
||||
- '41'
|
||||
- name: ubuntu
|
||||
tier: 3
|
||||
versions:
|
||||
- '25.04'
|
||||
- '24.10'
|
||||
- '24.04'
|
||||
- '22.04'
|
||||
- '20.04'
|
||||
- name: debian
|
||||
tier: 3
|
||||
versions:
|
||||
|
|
@ -72,4 +72,3 @@ distributions:
|
|||
- '3.21'
|
||||
- '3.20'
|
||||
- '3.19'
|
||||
- '3.18'
|
||||
|
|
@ -8,13 +8,13 @@ fedora:
|
|||
- version: rawhide
|
||||
support: yes
|
||||
nm: main
|
||||
- version: 42
|
||||
support: 2026-05-13
|
||||
nm: 1.52
|
||||
tier1-default: yes
|
||||
- version: 41
|
||||
support: 2025-11-19
|
||||
nm: 1.50
|
||||
tier1-default: yes
|
||||
- version: 40
|
||||
support: 2025-05-13
|
||||
nm: 1.46
|
||||
|
||||
# CentOS Stream
|
||||
centos:
|
||||
|
|
@ -77,6 +77,10 @@ ubuntu:
|
|||
- version: devel
|
||||
support: yes
|
||||
nm: main
|
||||
- version: 25.04
|
||||
name: plucky
|
||||
support: 2026-01-15
|
||||
nm: 1.52
|
||||
- version: 24.10
|
||||
name: oracular
|
||||
support: 2025-07-10
|
||||
|
|
@ -91,11 +95,6 @@ ubuntu:
|
|||
support: 2027-06-01
|
||||
extended-support: 2032-04-21
|
||||
nm: 1.36
|
||||
- version: 20.04
|
||||
name: focal
|
||||
support: 2025-05-29
|
||||
extended-support: 2030-04-23
|
||||
nm: 1.22
|
||||
|
||||
# Debian:
|
||||
# cadence: every 2 years
|
||||
|
|
@ -140,6 +139,3 @@ alpine:
|
|||
- version: 3.19
|
||||
support: 2025-11-01
|
||||
nm: 1.44
|
||||
- version: 3.18
|
||||
support: 2025-05-09
|
||||
nm: 1.42
|
||||
|
|
|
|||
|
|
@ -117,7 +117,7 @@ ip6_address_delete(NMPlatform *platform, int ifindex, struct in6_addr addr, guin
|
|||
const int _dirfd = (dirfd); \
|
||||
const char *const _path = (path); \
|
||||
\
|
||||
g_assert(_path &&_path[0]); \
|
||||
g_assert(_path && _path[0]); \
|
||||
g_assert(!strstr(_path, "/../")); \
|
||||
if (_dirfd < 0) { \
|
||||
g_assert(!_pathid); \
|
||||
|
|
|
|||
|
|
@ -255,8 +255,8 @@ _assert_expected_content(NMConnection *connection, const char *filename, const c
|
|||
GError *_error = NULL; \
|
||||
gboolean _success; \
|
||||
\
|
||||
g_assert(_ifcfg_dir &&_ifcfg_dir[0]); \
|
||||
g_assert(_filename &&_filename[0]); \
|
||||
g_assert(_ifcfg_dir && _ifcfg_dir[0]); \
|
||||
g_assert(_filename && _filename[0]); \
|
||||
\
|
||||
_success = nms_ifcfg_rh_writer_write_connection(_connection, \
|
||||
_ifcfg_dir, \
|
||||
|
|
@ -9533,12 +9533,10 @@ test_svUnescape(void)
|
|||
.exp = v_expected, \
|
||||
.can_concat = !!v_expected, \
|
||||
}
|
||||
#define V2(v_value, v_expected) \
|
||||
{ \
|
||||
.val = "" v_value "", \
|
||||
.exp = v_expected, \
|
||||
.can_concat = TRUE, \
|
||||
.needs_ascii_separator = TRUE, \
|
||||
#define V2(v_value, v_expected) \
|
||||
{ \
|
||||
.val = "" v_value "", .exp = v_expected, .can_concat = TRUE, \
|
||||
.needs_ascii_separator = TRUE, \
|
||||
}
|
||||
const UnescapeTestData data_full[] = {
|
||||
V1("", ""),
|
||||
|
|
|
|||
|
|
@ -61,7 +61,7 @@ check_ip_route(NMSettingIPConfig *config,
|
|||
gs_free_error GError *_error = NULL; \
|
||||
NMConnection *_connection; \
|
||||
\
|
||||
g_assert(full_filename &&full_filename[0] == '/'); \
|
||||
g_assert(full_filename && full_filename[0] == '/'); \
|
||||
\
|
||||
_connection = \
|
||||
nms_keyfile_reader_from_file(full_filename, \
|
||||
|
|
|
|||
|
|
@ -8205,7 +8205,7 @@ const NMLDBusMetaIface _nml_dbus_meta_iface_nm_settings = NML_DBUS_META_IFACE_IN
|
|||
_priv.settings.connections,
|
||||
nm_remote_connection_get_type,
|
||||
.notify_changed_ao = _property_ao_notify_changed_connections_cb,
|
||||
.check_nmobj_visible_fcn = (gboolean(*)(GObject *)) nm_remote_connection_get_visible),
|
||||
.check_nmobj_visible_fcn = (gboolean (*)(GObject *)) nm_remote_connection_get_visible),
|
||||
NML_DBUS_META_PROPERTY_INIT_S("Hostname",
|
||||
PROP_HOSTNAME,
|
||||
NMClient,
|
||||
|
|
|
|||
|
|
@ -1684,7 +1684,7 @@ nm_keyfile_detect_unqualified_path_scheme(const char *base_dir,
|
|||
const char *const _bin = (bin); \
|
||||
const gsize _bin_len = (bin_len); \
|
||||
\
|
||||
nm_assert(_bin &&_bin_len > 0); \
|
||||
nm_assert(_bin && _bin_len > 0); \
|
||||
\
|
||||
(_bin_len > NM_STRLEN(scheme) + 1 && _bin[_bin_len - 1] == '\0' \
|
||||
&& memcmp(_bin, scheme, NM_STRLEN(scheme)) == 0); \
|
||||
|
|
|
|||
|
|
@ -8680,11 +8680,9 @@ test_nm_utils_ascii_str_to_int64(void)
|
|||
static void
|
||||
test_nm_utils_strstrdictkey(void)
|
||||
{
|
||||
#define _VALUES_STATIC(_v1, _v2) \
|
||||
{ \
|
||||
.v1 = _v1, \
|
||||
.v2 = _v2, \
|
||||
.v_static = _nm_utils_strstrdictkey_static(_v1, _v2), \
|
||||
#define _VALUES_STATIC(_v1, _v2) \
|
||||
{ \
|
||||
.v1 = _v1, .v2 = _v2, .v_static = _nm_utils_strstrdictkey_static(_v1, _v2), \
|
||||
}
|
||||
const struct {
|
||||
const char *v1;
|
||||
|
|
|
|||
|
|
@ -212,10 +212,10 @@ nm_hash_update_str(NMHashState *state, const char *str)
|
|||
/* Like nm_hash_update_str(), but restricted to arrays only. nm_hash_update_str() only works
|
||||
* with a @str argument that cannot be NULL. If you have a string pointer, that is never NULL, use
|
||||
* nm_hash_update() instead. */
|
||||
#define nm_hash_update_strarr(state, str) \
|
||||
(_Generic(&(str), \
|
||||
const char(*)[sizeof(str)]: nm_hash_update_str((state), (str)), \
|
||||
char(*)[sizeof(str)]: nm_hash_update_str((state), (str))))
|
||||
#define nm_hash_update_strarr(state, str) \
|
||||
(_Generic(&(str), \
|
||||
const char (*)[sizeof(str)]: nm_hash_update_str((state), (str)), \
|
||||
char (*)[sizeof(str)]: nm_hash_update_str((state), (str))))
|
||||
#else
|
||||
#define nm_hash_update_strarr(state, str) nm_hash_update_str((state), (str))
|
||||
#endif
|
||||
|
|
@ -224,7 +224,7 @@ guint nm_hash_ptr(gconstpointer ptr);
|
|||
#define nm_direct_hash nm_hash_ptr
|
||||
|
||||
guint nm_hash_str(const char *str);
|
||||
#define nm_str_hash ((guint(*)(gconstpointer str)) nm_hash_str)
|
||||
#define nm_str_hash ((guint (*)(gconstpointer str)) nm_hash_str)
|
||||
|
||||
#define nm_hash_vals(static_seed, ...) \
|
||||
({ \
|
||||
|
|
|
|||
|
|
@ -1504,7 +1504,7 @@ _nmtst_main_loop_quit_on_notify(GObject *object, GParamSpec *pspec, gpointer use
|
|||
(timeout_msec), \
|
||||
(poll_msec), \
|
||||
condition)) \
|
||||
g_assert(FALSE &&#condition); \
|
||||
g_assert(FALSE && #condition); \
|
||||
} \
|
||||
G_STMT_END
|
||||
|
||||
|
|
|
|||
|
|
@ -641,7 +641,7 @@ _nm_printf(3, 4) static void _iovec_set_format(struct iovec *iov,
|
|||
{ \
|
||||
const char *_str_arg = (str_arg); \
|
||||
\
|
||||
nm_assert(_str_arg &&strlen(_str_arg) < (max_str_len)); \
|
||||
nm_assert(_str_arg && strlen(_str_arg) < (max_str_len)); \
|
||||
_iovec_set_format_a((iov), (max_str_len), format, str_arg); \
|
||||
} \
|
||||
G_STMT_END
|
||||
|
|
|
|||
|
|
@ -6143,7 +6143,7 @@ nla_put_failure:
|
|||
const int _dirfd = (dirfd); \
|
||||
const char *const _path = (path); \
|
||||
\
|
||||
nm_assert(_path &&_path[0]); \
|
||||
nm_assert(_path && _path[0]); \
|
||||
g_assert(!strstr(_path, "/../")); \
|
||||
if (_dirfd < 0) { \
|
||||
nm_assert(!_pathid); \
|
||||
|
|
@ -6151,7 +6151,7 @@ nla_put_failure:
|
|||
nm_assert(NM_STR_HAS_PREFIX(_path, "/proc/sys/") || NM_STR_HAS_PREFIX(_path, "/sys/") \
|
||||
|| NM_STR_HAS_PREFIX(_path, "/proc/net")); \
|
||||
} else { \
|
||||
nm_assert(_pathid &&_pathid[0] && _pathid[0] != '/'); \
|
||||
nm_assert(_pathid && _pathid[0] && _pathid[0] != '/'); \
|
||||
nm_assert(_path[0] != '/'); \
|
||||
} \
|
||||
} \
|
||||
|
|
|
|||
|
|
@ -2007,8 +2007,8 @@ _vt_dedup_obj_clone(const NMDedupMultiObj *obj)
|
|||
.obj_destroy = _vt_dedup_obj_destroy, \
|
||||
.obj_full_hash_update = \
|
||||
(void (*)(const NMDedupMultiObj *obj, NMHashState *h)) nmp_object_hash_update, \
|
||||
.obj_full_equal = (gboolean(*)(const NMDedupMultiObj *obj_a, \
|
||||
const NMDedupMultiObj *obj_b)) nmp_object_equal, \
|
||||
.obj_full_equal = (gboolean (*)(const NMDedupMultiObj *obj_a, \
|
||||
const NMDedupMultiObj *obj_b)) nmp_object_equal, \
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
|
|
|||
|
|
@ -163,7 +163,7 @@ struct Request {
|
|||
const ScriptInfo *const _script = (x_script); \
|
||||
const Request *const _request = _script ? _script->request : NULL; \
|
||||
\
|
||||
nm_assert(_script &&_request); \
|
||||
nm_assert(_script && _request); \
|
||||
if (enabled_cmd) \
|
||||
__LOG_print_S(print_cmd, _request, _script, ": "__VA_ARGS__); \
|
||||
} \
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue