Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Messages - ArtKZ

#1
Hi,

I have D'Link DGS-3612G, it's port numbering is single line from left to right.
#2
Я собирал NetXMS со следующими базами:
1. PostgreSQL 9.5.4 (https://ftp.postgresql.org/pub/binary/v9.5.4/solaris/solaris11/sparc/postgresql-9.5.4-S11.sparc-64.tar.bz2)
2. PostgreSQL 9.3.5 (https://www.opencsw.org/packages/CSWpostgresql93)
4. MySQL 5.6.31 (https://www.opencsw.org/packages/CSWmysql56)

Разумеется, при сборке NetXMS я использовал библиотеки из соответствующих дистрибутивов и устанавливал базу NetXMS на соответствующих версиях СУБД. При настройке NetXMS и каждой СУБД особое внимание обращал на параметры, задающие правильную работу с юникодом.

Проблема везде одна и та же: кракозябры вместо русских букв после перезагрузки netxmsd и ругань на значения в базе, которые содержат символ "\". У меня складывается впечатление, что NetXMS использует разные функции при первоначальной загрузки значений из базы и дальнейшей работы с ней, и что в первой некорректно обрабатывается символ "\", поэтому и ругань на него в скриптах, и символы юникода из \aabb превращаются в aabb, которые как кракозябры как раз и выглядят.
#3
Виктор,

Посоветуйте пожалуйста, как разобраться с моей проблемой?
#4
Заменил в сборке 8072 setModified(false); на setModified(); (п.1). Все собралось. Проверил. П.3 без положительных изменений. В п.2 стало ругаться на скрипт из другого темплейта.


root@xms:/opt/netxms/share/netxms/sql# /opt/netxms/bin/netxmsd
Using configuration file "/etc/netxmsd.conf"
[05-Aug-2016 03:03:07.506] [INFO ] Platform subagent "/opt/netxms/lib/netxms/sunos.nsm" successfully loaded
[05-Aug-2016 03:03:07.523] [INFO ] Database driver "/opt/netxms/lib/libnxddr_pgsql.so" loaded and initialized successfully
[05-Aug-2016 03:03:10.142] [INFO ] Network device driver "NETSCREEN" loaded successfully
[05-Aug-2016 03:03:10.145] [INFO ] Network device driver "CISCO-ESW" loaded successfully
[05-Aug-2016 03:03:10.149] [INFO ] Network device driver "AT" loaded successfully
[05-Aug-2016 03:03:10.153] [INFO ] Network device driver "SYMBOL-WS" loaded successfully
[05-Aug-2016 03:03:10.155] [INFO ] Network device driver "QTECH-OLT" loaded successfully
[05-Aug-2016 03:03:10.158] [INFO ] Network device driver "CISCO-SB" loaded successfully
[05-Aug-2016 03:03:10.161] [INFO ] Network device driver "UBNT" loaded successfully
[05-Aug-2016 03:03:10.165] [INFO ] Network device driver "CATALYST-2900XL" loaded successfully
[05-Aug-2016 03:03:10.168] [INFO ] Network device driver "PING3" loaded successfully
[05-Aug-2016 03:03:10.172] [INFO ] Network device driver "DLINK" loaded successfully
[05-Aug-2016 03:03:10.175] [INFO ] Network device driver "H3C" loaded successfully
[05-Aug-2016 03:03:10.179] [INFO ] Network device driver "MIKROTIK" loaded successfully
[05-Aug-2016 03:03:10.183] [INFO ] Network device driver "NTWS" loaded successfully
[05-Aug-2016 03:03:10.187] [INFO ] Network device driver "ERS8000" loaded successfully
[05-Aug-2016 03:03:10.190] [INFO ] Network device driver "HPSW" loaded successfully
[05-Aug-2016 03:03:10.193] [INFO ] Network device driver "AIRESPACE" loaded successfully
[05-Aug-2016 03:03:10.196] [INFO ] Network device driver "TB" loaded successfully
[05-Aug-2016 03:03:10.200] [INFO ] Network device driver "CATALYST-GENERIC" loaded successfully
[05-Aug-2016 03:03:10.203] [INFO ] Network device driver "DELL-PWC" loaded successfully
[05-Aug-2016 03:03:10.207] [INFO ] Network device driver "BAYSTACK" loaded successfully
[05-Aug-2016 03:03:10.210] [INFO ] Network device driver "PROCURVE" loaded successfully
[05-Aug-2016 03:03:10.780] [WARN ] Failed to compile filter script for template object 101 "Generic UNI": Error in line 1: syntax error, unexpected $end, expecting ';'
[05-Aug-2016 03:03:13.817] [WARN ] Failed to compile filter script for template object 101 "Generic UNI": Error in line 1: syntax error, unexpected '!', expecting ';'
[05-Aug-2016 03:03:13.822] [WARN ] Failed to compile instance filter script for DCI 7 "FileSystem.FreePerc({instance}" on 101 "Generic UNI": Error in line 1: syntax error, unexpected '/'
[05-Aug-2016 03:03:13.825] [WARN ] Failed to compile instance filter script for DCI 8 "FileSystem.UsedPerc({instance}" on 101 "Generic UNI": Error in line 1: syntax error, unexpected '/'
[05-Aug-2016 03:03:16.535] [WARN ] Failed to compile filter script for template object 101 "Generic UNI": Error in line 1: syntax error, unexpected T_IDENTIFIER, expecting ';'
[05-Aug-2016 03:03:21.892] [WARN ] Failed to compile filter script for template object 101 "Generic UNI": Error in line 1: syntax error, unexpected $end, expecting ';'
[05-Aug-2016 03:03:21.902] [WARN ] Failed to compile filter script for template object 101 "Generic UNI": Error in line 1: syntax error, unexpected $end, expecting ';'
[05-Aug-2016 03:03:21.905] [WARN ] Failed to compile filter script for template object 101 "Generic UNI": Error in line 1: syntax error, unexpected T_IDENTIFIER, expecting ')'
[05-Aug-2016 03:03:21.908] [WARN ] Failed to compile filter script for template object 101 "Generic UNI": Error in line 1: syntax error, unexpected '!', expecting ';'
[05-Aug-2016 03:03:21.910] [WARN ] Failed to compile filter script for template object 101 "Generic UNI": Error in line 1: syntax error, unexpected $end, expecting ';'
[05-Aug-2016 03:03:21.978] [INFO ] Listening for SNMP traps on UDP socket 0.0.0.0:162
[05-Aug-2016 03:03:22.000] [INFO ] Listening for client connections on TCP socket 0.0.0.0:4701
[05-Aug-2016 03:03:22.001] [INFO ] NetXMS Server started

NetXMS Server V2.0.5 Build 8072 (UNICODE) Ready
Enter "help" for command list or "down" for server shutdown
System Console

netxmsd: [05-Aug-2016 03:03:22.002] [INFO ] Listening for mobile device connections on TCP socket 0.0.0.0:4747
#5
Победные фанфары прозвучали преждевременно :)
Ниже небольшой и немного печальный отчет. "Немного" - потому, что Вашими усилиями, Виктор, "она все-таки крутится"! "Печальный" - потому что пока еще крутится немного не в ту сторону...

Итак, по порядку:

1. netxms-2.0.5-8072 по указанной выше ссылке не собирается.

root@xms:~/NetXMS/netxms-2.0.5-8072# CPPFLAGS=-I/usr/java/include/solaris ./configure --with-server --prefix=/opt/netxms --with-pgsql=/opt/postgres/9.5-pgdg --with-agent --with-openssl --with-snmp --enable-unicode --with-jdk=/usr/java
root@xms:~/NetXMS/netxms-2.0.5-8072# make
./tools/updatetag.sh
make  all-recursive
Making all in .
...
Making all in core
  CXX      libnxcore_la-template.lo
template.cpp: In member function 'bool Template::deleteDCObject(UINT32, bool)':
template.cpp:488:22: error: no matching function for call to 'Template::setModified(bool)'
     setModified(false);
                      ^
template.cpp:488:22: note: candidate is:
In file included from ../../../src/server/include/nms_core.h:101:0,
                 from nxcore.h:29,
                 from template.cpp:23:
../../../src/server/include/nms_objects.h:508:9: note: void NetObj::setModified()
    void setModified();                  // Used to mark object as modified
         ^
../../../src/server/include/nms_objects.h:508:9: note:   candidate expects 0 arguments, 1 provided
*** Error code 1
The following command caused the error:
echo "  CXX     " libnxcore_la-template.lo;/bin/sh ../../../libtool --silent --tag=CXX   --mode=compile g++ -DHAVE_CONFIG_H -I. -I../../..  -I../../../include -I../../../src/server/include -I/usr/java/include/solaris -D_THREAD_SAFE -DTRE_WCHAR=1 -I/usr/java/include -I/usr/java/include/solaris -I/opt/openssl/include -DUNICODE -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -D__EXTENSIONS__ -O2 -Wformat -Wno-unused-result -Werror=return-type -m64 -DPREFIX=L\"/opt/netxms\" -DDATADIR=L\"/opt/netxms/share/netxms\" -DBINDIR=L\"/opt/netxms/bin\" -DLIBDIR=L\"/opt/netxms/lib\" -DPKGLIBDIR=L\"/opt/netxms/lib/netxms\" -DSTATEDIR=L\"/opt/netxms/var/lib/netxms\" -DNDEBUG  -g -O2 -fno-rtti -fno-exceptions -MT libnxcore_la-template.lo -MD -MP -MF .deps/libnxcore_la-template.Tpo -c -o libnxcore_la-template.lo `test -f 'template.cpp' || echo './'`template.cpp
make: Fatal error: Command failed for target `libnxcore_la-template.lo'
Current working directory /root/NetXMS/netxms-2.0.5-8072/src/server/core
*** Error code 1
The following command caused the error:
fail=; \
if (target_option=k; case ${target_option-} in  ?) ;;  *) echo "am__make_running_with_option: internal error: invalid"  "target option '${target_option-}' specified" >&2;  exit 1;;  esac;  has_opt=no;  sane_makeflags=$MAKEFLAGS;  if test -n '' && test -n '3'; then  sane_makeflags=$MFLAGS;  else  case $MAKEFLAGS in  *\\[\ \    ]*)  bs=\\;  sane_makeflags=`printf '%s\n' "$MAKEFLAGS"  | sed "s/$bs$bs[$bs $bs        ]*//g"`;;  esac;  fi;  skip_next=no;  strip_trailopt ()  {  flg=`printf '%s\n' "$flg" | sed "s/$1.*$//"`;  };  for flg in $sane_makeflags; do  test $skip_next = yes && { skip_next=no; continue; };  case $flg in  *=*|--*) continue;;  -*I) strip_trailopt 'I'; skip_next=yes;;  -*I?*) strip_trailopt 'I';;  -*O) strip_trailopt 'O'; skip_next=yes;;  -*O?*) strip_trailopt 'O';;  -*l) strip_trailopt 'l'; skip_next=yes;;  -*l?*) strip_trailopt 'l';;  -[dEDm]) skip_next=yes;;  -[JT]) skip_next=yes;;  esac;  case $flg in  *$target_option*) has_opt=yes; break;;  esac;  done;  test $has_opt = yes); then \
  failcom='fail=yes'; \
else \
  failcom='exit 1'; \
fi; \
dot_seen=no; \
target=`echo all-recursive | sed s/-recursive//`; \
case "all-recursive" in \
  distclean-* | maintainer-clean-*) list='libnxsrv core netxmsd tools drivers hdlink pdsdrv' ;; \
  *) list='libnxsrv core netxmsd tools drivers hdlink pdsdrv' ;; \
esac; \
for subdir in $list; do \
  echo "Making $target in $subdir"; \
  if test "$subdir" = "."; then \
    dot_seen=yes; \
    local_target="$target-am"; \
  else \
    local_target="$target"; \
  fi; \
  (CDPATH="${ZSH_VERSION+.}:" && cd $subdir && make  $local_target) \
  || eval $failcom; \
done; \
if test "$dot_seen" = "no"; then \
  make  "$target-am" || exit 1; \
fi; test -z "$fail"
make: Fatal error: Command failed for target `all-recursive'
Current working directory /root/NetXMS/netxms-2.0.5-8072/src/server
*** Error code 1
The following command caused the error:
fail=; \
if (target_option=k; case ${target_option-} in  ?) ;;  *) echo "am__make_running_with_option: internal error: invalid"  "target option '${target_option-}' specified" >&2;  exit 1;;  esac;  has_opt=no;  sane_makeflags=$MAKEFLAGS;  if test -n '' && test -n '2'; then  sane_makeflags=$MFLAGS;  else  case $MAKEFLAGS in  *\\[\ \    ]*)  bs=\\;  sane_makeflags=`printf '%s\n' "$MAKEFLAGS"  | sed "s/$bs$bs[$bs $bs        ]*//g"`;;  esac;  fi;  skip_next=no;  strip_trailopt ()  {  flg=`printf '%s\n' "$flg" | sed "s/$1.*$//"`;  };  for flg in $sane_makeflags; do  test $skip_next = yes && { skip_next=no; continue; };  case $flg in  *=*|--*) continue;;  -*I) strip_trailopt 'I'; skip_next=yes;;  -*I?*) strip_trailopt 'I';;  -*O) strip_trailopt 'O'; skip_next=yes;;  -*O?*) strip_trailopt 'O';;  -*l) strip_trailopt 'l'; skip_next=yes;;  -*l?*) strip_trailopt 'l';;  -[dEDm]) skip_next=yes;;  -[JT]) skip_next=yes;;  esac;  case $flg in  *$target_option*) has_opt=yes; break;;  esac;  done;  test $has_opt = yes); then \
  failcom='fail=yes'; \
else \
  failcom='exit 1'; \
fi; \
dot_seen=no; \
target=`echo all-recursive | sed s/-recursive//`; \
case "all-recursive" in \
  distclean-* | maintainer-clean-*) list='libtre libstrophe libnetxms tools install snmp appagent libnxlp db agent libnxmap libnxsl libnxcc server smsdrv nxscript' ;; \
  *) list='libtre libstrophe libnetxms tools install snmp appagent libnxlp db agent libnxmap libnxsl libnxcc server smsdrv nxscript' ;; \
esac; \
for subdir in $list; do \
  echo "Making $target in $subdir"; \
  if test "$subdir" = "."; then \
    dot_seen=yes; \
    local_target="$target-am"; \
  else \
    local_target="$target"; \
  fi; \
  (CDPATH="${ZSH_VERSION+.}:" && cd $subdir && make  $local_target) \
  || eval $failcom; \
done; \
if test "$dot_seen" = "no"; then \
  make  "$target-am" || exit 1; \
fi; test -z "$fail"
make: Fatal error: Command failed for target `all-recursive'
Current working directory /root/NetXMS/netxms-2.0.5-8072/src
*** Error code 1
The following command caused the error:
fail=; \
if (target_option=k; case ${target_option-} in  ?) ;;  *) echo "am__make_running_with_option: internal error: invalid"  "target option '${target_option-}' specified" >&2;  exit 1;;  esac;  has_opt=no;  sane_makeflags=$MAKEFLAGS;  if test -n '' && test -n '1'; then  sane_makeflags=$MFLAGS;  else  case $MAKEFLAGS in  *\\[\ \    ]*)  bs=\\;  sane_makeflags=`printf '%s\n' "$MAKEFLAGS"  | sed "s/$bs$bs[$bs $bs        ]*//g"`;;  esac;  fi;  skip_next=no;  strip_trailopt ()  {  flg=`printf '%s\n' "$flg" | sed "s/$1.*$//"`;  };  for flg in $sane_makeflags; do  test $skip_next = yes && { skip_next=no; continue; };  case $flg in  *=*|--*) continue;;  -*I) strip_trailopt 'I'; skip_next=yes;;  -*I?*) strip_trailopt 'I';;  -*O) strip_trailopt 'O'; skip_next=yes;;  -*O?*) strip_trailopt 'O';;  -*l) strip_trailopt 'l'; skip_next=yes;;  -*l?*) strip_trailopt 'l';;  -[dEDm]) skip_next=yes;;  -[JT]) skip_next=yes;;  esac;  case $flg in  *$target_option*) has_opt=yes; break;;  esac;  done;  test $has_opt = yes); then \
  failcom='fail=yes'; \
else \
  failcom='exit 1'; \
fi; \
dot_seen=no; \
target=`echo all-recursive | sed s/-recursive//`; \
case "all-recursive" in \
  distclean-* | maintainer-clean-*) list='. m4 src doc tools contrib  sql images' ;; \
  *) list='. m4 src doc tools contrib  sql images' ;; \
esac; \
for subdir in $list; do \
  echo "Making $target in $subdir"; \
  if test "$subdir" = "."; then \
    dot_seen=yes; \
    local_target="$target-am"; \
  else \
    local_target="$target"; \
  fi; \
  (CDPATH="${ZSH_VERSION+.}:" && cd $subdir && make  $local_target) \
  || eval $failcom; \
done; \
if test "$dot_seen" = "no"; then \
  make  "$target-am" || exit 1; \
fi; test -z "$fail"
make: Fatal error: Command failed for target `all-recursive'
Current working directory /root/NetXMS/netxms-2.0.5-8072
*** Error code 1
make: Fatal error: Command failed for target `all'


Теперь все, что ниже, касается сборки netxms-2.0.5, которую Вы правили непосредственно у меня на сервере, она собирается нормально.

2. При загрузке в консоли видим следующее:

root@xms:/etc# /opt/netxms/bin/netxmsd
Using configuration file "/etc/netxmsd.conf"
[05-Aug-2016 01:24:57.182] [INFO ] Platform subagent "/opt/netxms/lib/netxms/sunos.nsm" successfully loaded
[05-Aug-2016 01:24:57.199] [INFO ] Database driver "/opt/netxms/lib/libnxddr_pgsql.so" loaded and initialized successfully
[05-Aug-2016 01:24:59.805] [INFO ] Network device driver "UBNT" loaded successfully
[05-Aug-2016 01:24:59.809] [INFO ] Network device driver "AIRESPACE" loaded successfully
[05-Aug-2016 01:24:59.812] [INFO ] Network device driver "MIKROTIK" loaded successfully
[05-Aug-2016 01:24:59.817] [INFO ] Network device driver "BAYSTACK" loaded successfully
[05-Aug-2016 01:24:59.820] [INFO ] Network device driver "PROCURVE" loaded successfully
[05-Aug-2016 01:24:59.823] [INFO ] Network device driver "DELL-PWC" loaded successfully
[05-Aug-2016 01:24:59.827] [INFO ] Network device driver "CATALYST-GENERIC" loaded successfully
[05-Aug-2016 01:24:59.830] [INFO ] Network device driver "AT" loaded successfully
[05-Aug-2016 01:24:59.833] [INFO ] Network device driver "DLINK" loaded successfully
[05-Aug-2016 01:24:59.837] [INFO ] Network device driver "CATALYST-2900XL" loaded successfully
[05-Aug-2016 01:24:59.840] [INFO ] Network device driver "PING3" loaded successfully
[05-Aug-2016 01:24:59.844] [INFO ] Network device driver "NTWS" loaded successfully
[05-Aug-2016 01:24:59.847] [INFO ] Network device driver "ERS8000" loaded successfully
[05-Aug-2016 01:24:59.850] [INFO ] Network device driver "HPSW" loaded successfully
[05-Aug-2016 01:24:59.853] [INFO ] Network device driver "TB" loaded successfully
[05-Aug-2016 01:24:59.856] [INFO ] Network device driver "CISCO-SB" loaded successfully
[05-Aug-2016 01:24:59.859] [INFO ] Network device driver "H3C" loaded successfully
[05-Aug-2016 01:24:59.862] [INFO ] Network device driver "SYMBOL-WS" loaded successfully
[05-Aug-2016 01:24:59.866] [INFO ] Network device driver "QTECH-OLT" loaded successfully
[05-Aug-2016 01:24:59.869] [INFO ] Network device driver "NETSCREEN" loaded successfully
[05-Aug-2016 01:24:59.873] [INFO ] Network device driver "CISCO-ESW" loaded successfully
[05-Aug-2016 01:25:00.752] [WARN ] Failed to compile filter script for template object 101 "AI": Error in line 1: syntax error, unexpected '!', expecting ';'
[05-Aug-2016 01:25:03.616] [WARN ] Failed to compile filter script for template object 101 "AI": Error in line 1: syntax error, unexpected T_IDENTIFIER, expecting ';'
[05-Aug-2016 01:25:08.967] [WARN ] Failed to compile filter script for template object 101 "AI": Error in line 1: syntax error, unexpected $end, expecting ';'
[05-Aug-2016 01:25:08.977] [WARN ] Failed to compile filter script for template object 101 "AI": Error in line 1: syntax error, unexpected $end, expecting ';'
[05-Aug-2016 01:25:08.981] [WARN ] Failed to compile filter script for template object 101 "AI": Error in line 1: syntax error, unexpected T_IDENTIFIER, expecting ')'
[05-Aug-2016 01:25:08.983] [WARN ] Failed to compile filter script for template object 101 "AI": Error in line 1: syntax error, unexpected '!', expecting ';'
[05-Aug-2016 01:25:08.986] [WARN ] Failed to compile filter script for template object 101 "AI": Error in line 1: syntax error, unexpected $end, expecting ';'
[05-Aug-2016 01:25:11.911] [WARN ] Failed to compile filter script for template object 101 "AI": Error in line 1: syntax error, unexpected '!', expecting ';'
[05-Aug-2016 01:25:11.916] [WARN ] Failed to compile instance filter script for DCI 48 "FileSystem.FreePerc({instance}" on 101 "AI": Error in line 1: syntax error, unexpected '/'
[05-Aug-2016 01:25:11.918] [WARN ] Failed to compile instance filter script for DCI 49 "FileSystem.UsedPerc({instance}" on 101 "AI": Error in line 1: syntax error, unexpected '/'
[05-Aug-2016 01:25:11.986] [INFO ] Listening for SNMP traps on UDP socket 0.0.0.0:162
[05-Aug-2016 01:25:12.006] [INFO ] Listening for client connections on TCP socket 0.0.0.0:4701
[05-Aug-2016 01:25:12.008] [INFO ] NetXMS Server started

NetXMS Server V2.0.5 Build 8070 (UNICODE) Ready
Enter "help" for command list or "down" for server shutdown
System Console

netxmsd: [05-Aug-2016 01:25:12.008] [INFO ] Listening for mobile device connections on TCP socket 0.0.0.0:4747


3. Запускаем клиента, создаем объект с названием на кириллице. Закрываем клиента, открываем заново - все отлично!


А вот если перезапускаем сервер, то получаем вот такие кракозябры:


База, разумеется, создана в UTF-8.

netxms=> \l
                                  List of databases
   Name    |  Owner   | Encoding |   Collate   |    Ctype    |   Access privileges
-----------+----------+----------+-------------+-------------+-----------------------
netxms    | netxms   | UTF8     | ru_RU.UTF-8 | ru_RU.UTF-8 |

netxms=> select * from object_properties;
object_id |                 guid                 |          name           | status | is_deleted | is_system | last_modified | inherit_access_rights | status_calc_alg | status_prop_alg | status_fixed_val | status_shift | status_translation | status_single_threshold | status_thresholds | comments | location_type | latitude | longitude | location_accuracy | location_timestamp |                image                 | submap_id | country | city | street_address | postcode | maint_mode | maint_event_id
-----------+--------------------------------------+-------------------------+--------+------------+-----------+---------------+-----------------------+-----------------+-----------------+------------------+--------------+--------------------+-------------------------+-------------------+----------+---------------+----------+-----------+-------------------+--------------------+--------------------------------------+-----------+---------+------+----------------+----------+------------+----------------
       112 | 2b5f1acd-3162-4348-adb1-392e0c4c3ad5 | Контейнер               |      0 |          0 |         0 |    1470340352 |                     1 |               0 |               0 |                1 |            0 | 01020304           |                      75 | 503C2814          |          |             0 | 0.000000 | 0.000000  |                 0 |                  0 | 00000000-0000-0000-0000-000000000000 |         0 |         |      |                |          | 0          |              0

#6
Виктор,

Я приятно поражен Вашей оперативностью :) Огромное спасибо, буду тестировать!
#7
Виктор,

Я отправил реквизиты доступа ЛС.

Также не получается собрать с опцией --with-jdk, ругается на отсутствие jni.h, хотя файл присутствует и находится на своем месте. Вот здесь https://www.netxms.org/forum/installation/configure-error-***-cannot-find-jni-h-check-your-jdk-installation-***/ товарищ испытывал аналогичную проблему, но смог ее решить установкой пакетов (под линуксом) java-gcj-compat-headless и java-gcj-compat-dev. К сожалению, в Solaris подобные пакеты отсутствуют :(


root@xms:~/NetXMS/netxms-2.0.5# ./configure --with-server --prefix=/opt/netxms --with-pgsql=/opt/postgres/9.5-pgdg --with-agent --with-openssl --with-snmp --enable-unicode --with-jdk=/usr/java
checking for a BSD-compatible install... /usr/bin/ginstall -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /usr/bin/gmkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether make supports nested variables... (cached) yes
checking for cc... no
checking for CC... no
checking for gcc... gcc
checking whether the C compiler works... yes
...
checking for libpq-fe.h... yes
checking whether PGRES_SINGLE_TUPLE is declared... yes
checking for floor in -lm... yes
checking for PQconnectdb in -lpq... yes
checking jni.h usability... no
checking jni.h presence... no
checking for jni.h... no
configure: error: *** Cannot find jni.h - check your JDK installation ***


root@xms:~/NetXMS/netxms-2.0.5# ls -l /usr/java/include/
total 117
-rw-r--r--   1 root     bin        20128 авг.  2 22:54 classfile_constants.h
-rw-r--r--   1 root     bin         8690 авг.  2 22:54 jawt.h
-rw-r--r--   1 root     bin         6209 авг.  2 22:54 jdwpTransport.h
-rw-r--r--   1 root     bin        73701 авг.  2 22:54 jni.h
-rw-r--r--   1 root     bin        77428 авг.  2 22:54 jvmti.h
-rw-r--r--   1 root     bin         3774 авг.  2 22:54 jvmticmlr.h
drwxr-xr-x   2 root     bin            4 авг.  2 22:54 solaris

#8

Сборка с поддержкой Unicode:

root@xms:~/NetXMS/netxms-2.0.5# ./configure --with-server --prefix=/opt/netxms --with-pgsql=/opt/postgres/9.5-pgdg --with-agent --with-openssl --with-snmp --enable-unicode
checking for a BSD-compatible install... /usr/bin/ginstall -c
...
checking wchar.h usability... yes
checking wchar.h presence... yes
checking for wchar.h... yes
checking wctype.h usability... yes
checking wctype.h presence... yes
checking for wctype.h... yes
checking iconv.h usability... yes
checking iconv.h presence... yes
checking for iconv.h... yes
checking widec.h usability... yes
checking widec.h presence... yes
checking for widec.h... yes
checking for wchar_t... yes
checking for wint_t... yes
checking size of wchar_t... 4
checking for wcslen... yes
checking for wcsdup... yes
checking for wcsncpy... yes
checking for wcstoll... yes
checking for wcstoull... yes
checking for towupper... yes
checking for towlower... yes
checking for wcslwr... no
checking for wcserror... no
checking for wcserror_r... no
checking for wfopen... no
checking for wfopen64... no
checking for fputws... yes
checking for putws... yes
checking for wopen... no
checking for wstat... no
checking for waccess... no
checking for wgetenv... no
checking for wrename... no
checking for wunlink... no
checking for wremove... no
checking for wchdir... no
checking for wmkdir... no
checking for wrmdir... no
checking for wsystem... no
checking for wmkstemp... no
checking for wpopen... no
checking for wctime... no
checking for wchmod... no
checking for vwscanf... yes
checking for vswscanf... yes
checking for vfwscanf... yes
checking for wcscasecmp... yes
checking for wcsncasecmp... yes
checking for wcstombs... yes
checking for wcsrtombs... yes
checking for mbstowcs... yes
checking for mbsrtowcs... yes
checking for itow... no
checking for _itow... no
checking for wcsftime... yes
checking for wcstok... yes
checking whether putws is declared... no
checking whether wcsftime is working correctly... yes
checking for libiconv_open in -liconv... no
checking for iconv in -liconv... no
checking for iconv... yes
checking whether fgetws can be used with popen... yes
checking whether iconv supports UCS-2-INTERNAL... no
checking whether iconv supports UCS-2... yes
checking whether iconv supports UCS2... yes
checking whether iconv supports UCS-2BE... yes
checking whether iconv supports UCS-2LE... yes
checking whether iconv supports UTF-16... yes
checking whether iconv supports UCS-4-INTERNAL... no
checking whether iconv supports UCS-4... yes
checking whether iconv supports UCS4... yes
checking whether iconv supports UCS-4BE... yes
checking whether iconv supports UCS-4LE... yes
checking whether iconv supports UTF-32... yes
checking whether iconv supports //IGNORE... yes
checking whether iconv supports state reset... yes
checking whether iconv descriptor cache is needed... yes
checking for iconv declaration... const
checking libpq-fe.h usability... yes
checking libpq-fe.h presence... yes
checking for libpq-fe.h... yes
checking whether PGRES_SINGLE_TUPLE is declared... yes
checking for floor in -lm... yes
checking for PQconnectdb in -lpq... yes
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
...
config.status: executing libtool commands
Updating libtool



---------------------------------------------------------------------
                         Configure results
---------------------------------------------------------------------

Prefix                  : /opt/netxms
Platform                : SunOS
Shared library suffix   : .so
IPv6 support            : NO
Build Server            : YES
Server libs             : -lldap -llber  -ltermcap
LDAP support            : YES
XMPP support            : YES
ZeroMQ support          : YES
Encryption enabled      : YES
Build DB-Drivers        : pgsql sqlite
Build Clients           : NO
Build Agent             : YES
Subagents list          : sunos netsvc
Build Static Agent      : NO
UNICODE build           : YES
Use internal libexpat   : NO
Use internal libtre     : YES
Use internal libjansson : NO
Use internal sqlite     : NO
Use internal zlib       : NO
Force 32bit build       : NO
C compiler              : gcc
C++ compiler            : g++
CPPFLAGS                :  -D_THREAD_SAFE -DTRE_WCHAR=1 -I/opt/openssl/include -DUNICODE -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -D__EXTENSIONS__ -O2 -Wformat -Wno-unused-result -Werror=return-type -m64 -DPREFIX=L\"${prefix}\" -DDATADIR=L\"${pkgdatadir}\" -DBINDIR=L\"${bindir}\" -DLIBDIR=L\"${libdir}\" -DPKGLIBDIR=L\"${pkglibdir}\" -DSTATEDIR=L\"${localstatedir}/lib/netxms\" -DNDEBUG
CXXFLAGS                : -g -O2 -fno-rtti -fno-exceptions
CFLAGS                  : -g -O2
LDFLAGS                 :  -m64  -L/usr/local/lib -L/opt/openssl/lib
LIBS                    : -lm -lkvm -lexpat -lz -lresolv -lkstat -ldl -lsocket -lxnet  -lpthread -lssl -lcrypto
PostgreSQL CPPFLAGS     : -I/opt/postgres/9.5-pgdg/include
PostgreSQL LDFLAGS      : -L/opt/postgres/9.5-pgdg/lib
PostgreSQL LIBS         : -lpq
root@xms:~/NetXMS/netxms-2.0.5# make
./tools/updatetag.sh
make  all-recursive
Making all in .
...
Making all in libnetxms
  CXX      libnetxms_la-array.lo
In file included from libnetxms.h:28:0,
                 from array.cpp:24:
../../include/nms_util.h: In function 'wchar_t* _tcsdup_ex(const wchar_t*)':
../../include/nms_util.h:204:34: error: 'wcsdup' was not declared in this scope
    return (s != NULL) ? _tcsdup(s) : NULL;
                                  ^
../../include/nms_util.h:204:34: note: suggested alternative:
In file included from ../../include/unicode.h:121:0,
                 from ../../include/nms_common.h:72,
                 from libnetxms.h:27,
                 from array.cpp:24:
/usr/include/wchar.h:135:17: note:   'std::wcsdup'
extern wchar_t *wcsdup(const wchar_t *);
                 ^
In file included from libnetxms.h:28:0,
                 from array.cpp:24:
../../include/nms_util.h: In member function 'void StringMap::set(const wchar_t*, const wchar_t*)':
../../include/nms_util.h:593:88: error: 'wcsdup' was not declared in this scope
  void set(const TCHAR *key, const TCHAR *value) { setObject((TCHAR *)key, _tcsdup(value), false); }
                                                                                        ^
../../include/nms_util.h:593:88: note: suggested alternative:
In file included from ../../include/unicode.h:121:0,
                 from ../../include/nms_common.h:72,
                 from libnetxms.h:27,
                 from array.cpp:24:
/usr/include/wchar.h:135:17: note:   'std::wcsdup'
extern wchar_t *wcsdup(const wchar_t *);
                 ^
In file included from libnetxms.h:28:0,
                 from array.cpp:24:
../../include/nms_util.h: In member function 'void TableColumnDefinition::setDisplayName(const wchar_t*)':
../../include/nms_util.h:954:114: error: 'wcsdup' was not declared in this scope
    void setDisplayName(const TCHAR *name) { safe_free(m_displayName); m_displayName = _tcsdup(CHECK_NULL_EX(name)); }
                                                                                                                  ^
../../include/nms_util.h:954:114: note: suggested alternative:
In file included from ../../include/unicode.h:121:0,
                 from ../../include/nms_common.h:72,
                 from libnetxms.h:27,
                 from array.cpp:24:
/usr/include/wchar.h:135:17: note:   'std::wcsdup'
extern wchar_t *wcsdup(const wchar_t *);
                 ^
*** Error code 1
The following command caused the error:
echo "  CXX     " libnetxms_la-array.lo;/bin/sh ../../libtool --silent --tag=CXX   --mode=compile g++ -DHAVE_CONFIG_H -I. -I../..  -I../../include  -D_THREAD_SAFE -DTRE_WCHAR=1 -I/opt/openssl/include -DUNICODE -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -D__EXTENSIONS__ -O2 -Wformat -Wno-unused-result -Werror=return-type -m64 -DPREFIX=L\"/opt/netxms\" -DDATADIR=L\"/opt/netxms/share/netxms\" -DBINDIR=L\"/opt/netxms/bin\" -DLIBDIR=L\"/opt/netxms/lib\" -DPKGLIBDIR=L\"/opt/netxms/lib/netxms\" -DSTATEDIR=L\"/opt/netxms/var/lib/netxms\" -DNDEBUG  -g -O2 -fno-rtti -fno-exceptions -MT libnetxms_la-array.lo -MD -MP -MF .deps/libnetxms_la-array.Tpo -c -o libnetxms_la-array.lo `test -f 'array.cpp' || echo './'`array.cpp
make: Fatal error: Command failed for target `libnetxms_la-array.lo'
Current working directory /root/NetXMS/netxms-2.0.5/src/libnetxms
*** Error code 1
The following command caused the error:
fail=; \
if (target_option=k; case ${target_option-} in  ?) ;;  *) echo "am__make_running_with_option: internal error: invalid"  "target option '${target_option-}' specified" >&2;  exit 1;;  esac;  has_opt=no;  sane_makeflags=$MAKEFLAGS;  if test -n '' && test -n '2'; then  sane_makeflags=$MFLAGS;  else  case $MAKEFLAGS in  *\\[\ \    ]*)  bs=\\;  sane_makeflags=`printf '%s\n' "$MAKEFLAGS"  | sed "s/$bs$bs[$bs $bs        ]*//g"`;;  esac;  fi;  skip_next=no;  strip_trailopt ()  {  flg=`printf '%s\n' "$flg" | sed "s/$1.*$//"`;  };  for flg in $sane_makeflags; do  test $skip_next = yes && { skip_next=no; continue; };  case $flg in  *=*|--*) continue;;  -*I) strip_trailopt 'I'; skip_next=yes;;  -*I?*) strip_trailopt 'I';;  -*O) strip_trailopt 'O'; skip_next=yes;;  -*O?*) strip_trailopt 'O';;  -*l) strip_trailopt 'l'; skip_next=yes;;  -*l?*) strip_trailopt 'l';;  -[dEDm]) skip_next=yes;;  -[JT]) skip_next=yes;;  esac;  case $flg in  *$target_option*) has_opt=yes; break;;  esac;  done;  test $has_opt = yes); then \
  failcom='fail=yes'; \
else \
  failcom='exit 1'; \
fi; \
dot_seen=no; \
target=`echo all-recursive | sed s/-recursive//`; \
case "all-recursive" in \
  distclean-* | maintainer-clean-*) list='libtre libstrophe libnetxms tools install snmp appagent libnxlp db agent libnxmap libnxsl libnxcc server smsdrv nxscript' ;; \
  *) list='libtre libstrophe libnetxms tools install snmp appagent libnxlp db agent libnxmap libnxsl libnxcc server smsdrv nxscript' ;; \
esac; \
for subdir in $list; do \
  echo "Making $target in $subdir"; \
  if test "$subdir" = "."; then \
    dot_seen=yes; \
    local_target="$target-am"; \
  else \
    local_target="$target"; \
  fi; \
  (CDPATH="${ZSH_VERSION+.}:" && cd $subdir && make  $local_target) \
  || eval $failcom; \
done; \
if test "$dot_seen" = "no"; then \
  make  "$target-am" || exit 1; \
fi; test -z "$fail"
make: Fatal error: Command failed for target `all-recursive'
Current working directory /root/NetXMS/netxms-2.0.5/src
*** Error code 1
The following command caused the error:
fail=; \
if (target_option=k; case ${target_option-} in  ?) ;;  *) echo "am__make_running_with_option: internal error: invalid"  "target option '${target_option-}' specified" >&2;  exit 1;;  esac;  has_opt=no;  sane_makeflags=$MAKEFLAGS;  if test -n '' && test -n '1'; then  sane_makeflags=$MFLAGS;  else  case $MAKEFLAGS in  *\\[\ \    ]*)  bs=\\;  sane_makeflags=`printf '%s\n' "$MAKEFLAGS"  | sed "s/$bs$bs[$bs $bs        ]*//g"`;;  esac;  fi;  skip_next=no;  strip_trailopt ()  {  flg=`printf '%s\n' "$flg" | sed "s/$1.*$//"`;  };  for flg in $sane_makeflags; do  test $skip_next = yes && { skip_next=no; continue; };  case $flg in  *=*|--*) continue;;  -*I) strip_trailopt 'I'; skip_next=yes;;  -*I?*) strip_trailopt 'I';;  -*O) strip_trailopt 'O'; skip_next=yes;;  -*O?*) strip_trailopt 'O';;  -*l) strip_trailopt 'l'; skip_next=yes;;  -*l?*) strip_trailopt 'l';;  -[dEDm]) skip_next=yes;;  -[JT]) skip_next=yes;;  esac;  case $flg in  *$target_option*) has_opt=yes; break;;  esac;  done;  test $has_opt = yes); then \
  failcom='fail=yes'; \
else \
  failcom='exit 1'; \
fi; \
dot_seen=no; \
target=`echo all-recursive | sed s/-recursive//`; \
case "all-recursive" in \
  distclean-* | maintainer-clean-*) list='. m4 src doc tools contrib  sql images' ;; \
  *) list='. m4 src doc tools contrib  sql images' ;; \
esac; \
for subdir in $list; do \
  echo "Making $target in $subdir"; \
  if test "$subdir" = "."; then \
    dot_seen=yes; \
    local_target="$target-am"; \
  else \
    local_target="$target"; \
  fi; \
  (CDPATH="${ZSH_VERSION+.}:" && cd $subdir && make  $local_target) \
  || eval $failcom; \
done; \
if test "$dot_seen" = "no"; then \
  make  "$target-am" || exit 1; \
fi; test -z "$fail"
make: Fatal error: Command failed for target `all-recursive'
Current working directory /root/NetXMS/netxms-2.0.5
*** Error code 1
make: Fatal error: Command failed for target `all'
root@xms:~/NetXMS/netxms-2.0.5#


Учитывая некоторую экзотичность используемой мною системы, при необходимости готов предоставить доступ для тестирования.
#9
Уважаемые разработчики!

По прошествии нескольких лет опять испытываю проблемы со сборкой NetXMS 2.0.5 на Solaris 11.3 SPARC. Проблемы, аналогичные описанным здесь https://www.netxms.org/forum/oe-oo/oem-o-oko-1-2-8-a-solaris-10-113-sparc/, только теперь не собирается как с поддержкой Unicode, так и без.

Сборка без поддержки Unicode:

root@xms:~/NetXMS/netxms-2.0.5# ./configure --with-server --prefix=/opt/netxms --with-pgsql=/opt/postgres/9.5-pgdg --with-agent --with-openssl --with-snmp
checking for a BSD-compatible install... /usr/bin/ginstall -c
...
checking for iconv.h... yes
checking widec.h usability... yes
checking widec.h presence... yes
checking for widec.h... yes
checking for wchar_t... yes
checking for wint_t... yes
checking size of wchar_t... 4
checking for wcslen... yes
checking for wcsdup... yes
checking for wcsncpy... yes
checking for wcstoll... yes
checking for wcstoull... yes
checking for towupper... yes
checking for towlower... yes
checking for wcslwr... no
checking for wcserror... no
checking for wcserror_r... no
checking for wfopen... no
checking for wfopen64... no
checking for fputws... yes
checking for putws... yes
checking for wopen... no
checking for wstat... no
checking for waccess... no
checking for wgetenv... no
checking for wrename... no
checking for wunlink... no
checking for wremove... no
checking for wchdir... no
checking for wmkdir... no
checking for wrmdir... no
checking for wsystem... no
checking for wmkstemp... no
checking for wpopen... no
checking for wctime... no
checking for wchmod... no
checking for vwscanf... yes
checking for vswscanf... yes
checking for vfwscanf... yes
checking for wcscasecmp... yes
checking for wcsncasecmp... yes
checking for wcstombs... yes
checking for wcsrtombs... yes
checking for mbstowcs... yes
checking for mbsrtowcs... yes
checking for itow... no
checking for _itow... no
checking for wcsftime... yes
checking for wcstok... yes
checking whether putws is declared... no
checking whether wcsftime is working correctly... yes
checking for libiconv_open in -liconv... no
checking for iconv in -liconv... no
checking for iconv... yes
checking whether fgetws can be used with popen... yes
checking whether iconv supports UCS-2-INTERNAL... no
checking whether iconv supports UCS-2... yes
checking whether iconv supports UCS2... yes
checking whether iconv supports UCS-2BE... yes
checking whether iconv supports UCS-2LE... yes
checking whether iconv supports UTF-16... yes
checking whether iconv supports UCS-4-INTERNAL... no
checking whether iconv supports UCS-4... yes
checking whether iconv supports UCS4... yes
checking whether iconv supports UCS-4BE... yes
checking whether iconv supports UCS-4LE... yes
checking whether iconv supports UTF-32... yes
checking whether iconv supports //IGNORE... yes
checking whether iconv supports state reset... yes
checking whether iconv descriptor cache is needed... yes
checking for iconv declaration... const
checking libpq-fe.h usability... yes
checking libpq-fe.h presence... yes
checking for libpq-fe.h... yes
checking whether PGRES_SINGLE_TUPLE is declared... yes
checking for floor in -lm... yes
checking for PQconnectdb in -lpq... yes
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
...
config.status: executing libtool commands
Updating libtool



---------------------------------------------------------------------
                         Configure results
---------------------------------------------------------------------

Prefix                  : /opt/netxms
Platform                : SunOS
Shared library suffix   : .so
IPv6 support            : NO
Build Server            : YES
Server libs             : -lldap -llber  -ltermcap
LDAP support            : YES
XMPP support            : YES
ZeroMQ support          : YES
Encryption enabled      : YES
Build DB-Drivers        : pgsql sqlite
Build Clients           : NO
Build Agent             : YES
Subagents list          : sunos netsvc
Build Static Agent      : NO
UNICODE build           : NO
Use internal libexpat   : NO
Use internal libtre     : YES
Use internal libjansson : NO
Use internal sqlite     : NO
Use internal zlib       : NO
Force 32bit build       : NO
C compiler              : gcc
C++ compiler            : g++
CPPFLAGS                :  -D_THREAD_SAFE -DTRE_WCHAR=1 -I/opt/openssl/include -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -D__EXTENSIONS__ -O2 -Wformat -Wno-unused-result -Werror=return-type -m64 -DPREFIX=\"${prefix}\" -DDATADIR=\"${pkgdatadir}\" -DBINDIR=\"${bindir}\" -DLIBDIR=\"${libdir}\" -DPKGLIBDIR=\"${pkglibdir}\" -DSTATEDIR=\"${localstatedir}/lib/netxms\" -DNDEBUG
CXXFLAGS                : -g -O2 -fno-rtti -fno-exceptions
CFLAGS                  : -g -O2
LDFLAGS                 :  -m64  -L/usr/local/lib -L/opt/openssl/lib
LIBS                    : -lm -lkvm -lexpat -lz -lresolv -lkstat -ldl -lsocket -lxnet  -lpthread -lssl -lcrypto
PostgreSQL CPPFLAGS     : -I/opt/postgres/9.5-pgdg/include
PostgreSQL LDFLAGS      : -L/opt/postgres/9.5-pgdg/lib
PostgreSQL LIBS         : -lpq
root@xms:~/NetXMS/netxms-2.0.5# make
./tools/updatetag.sh
make  all-recursive
Making all in .
...
Making all in libnetxms
  CXX      libnetxms_la-array.lo
...
  CXX      libnetxms_la-tools.lo
tools.cpp: In function 'bool ExtractNamedOptionValueW(const wchar_t*, const wchar_t*, wchar_t*, int)':
tools.cpp:1635:31: error: 'wcscasecmp' was not declared in this scope
      if (!wcsicmp(option, temp))
                               ^
tools.cpp:1635:31: note: suggested alternative:
In file included from ../../include/unicode.h:121:0,
                 from ../../include/nms_common.h:72,
                 from libnetxms.h:27,
                 from tools.cpp:23:
/usr/include/wchar.h:140:12: note:   'std::wcscasecmp'
extern int wcscasecmp(const wchar_t *, const wchar_t *);
            ^
tools.cpp: In function 'bool ExtractNamedOptionValueAsBoolW(const wchar_t*, const wchar_t*, bool)':
tools.cpp:1725:33: error: 'wcscasecmp' was not declared in this scope
   return !wcsicmp(buffer, L"yes") || !wcsicmp(buffer, L"true");
                                 ^
tools.cpp:1725:33: note: suggested alternative:
In file included from ../../include/unicode.h:121:0,
                 from ../../include/nms_common.h:72,
                 from libnetxms.h:27,
                 from tools.cpp:23:
/usr/include/wchar.h:140:12: note:   'std::wcscasecmp'
extern int wcscasecmp(const wchar_t *, const wchar_t *);
            ^
*** Error code 1
The following command caused the error:
echo "  CXX     " libnetxms_la-tools.lo;/bin/sh ../../libtool --silent --tag=CXX   --mode=compile g++ -DHAVE_CONFIG_H -I. -I../..  -I../../include  -D_THREAD_SAFE -DTRE_WCHAR=1 -I/opt/openssl/include -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -D__EXTENSIONS__ -O2 -Wformat -Wno-unused-result -Werror=return-type -m64 -DPREFIX=\"/opt/netxms\" -DDATADIR=\"/opt/netxms/share/netxms\" -DBINDIR=\"/opt/netxms/bin\" -DLIBDIR=\"/opt/netxms/lib\" -DPKGLIBDIR=\"/opt/netxms/lib/netxms\" -DSTATEDIR=\"/opt/netxms/var/lib/netxms\" -DNDEBUG  -g -O2 -fno-rtti -fno-exceptions -MT libnetxms_la-tools.lo -MD -MP -MF .deps/libnetxms_la-tools.Tpo -c -o libnetxms_la-tools.lo `test -f 'tools.cpp' || echo './'`tools.cpp
make: Fatal error: Command failed for target `libnetxms_la-tools.lo'
Current working directory /root/NetXMS/netxms-2.0.5/src/libnetxms
*** Error code 1
The following command caused the error:
fail=; \
if (target_option=k; case ${target_option-} in  ?) ;;  *) echo "am__make_running_with_option: internal error: invalid"  "target option '${target_option-}' specified" >&2;  exit 1;;  esac;  has_opt=no;  sane_makeflags=$MAKEFLAGS;  if test -n '' && test -n '2'; then  sane_makeflags=$MFLAGS;  else  case $MAKEFLAGS in  *\\[\ \    ]*)  bs=\\;  sane_makeflags=`printf '%s\n' "$MAKEFLAGS"  | sed "s/$bs$bs[$bs $bs        ]*//g"`;;  esac;  fi;  skip_next=no;  strip_trailopt ()  {  flg=`printf '%s\n' "$flg" | sed "s/$1.*$//"`;  };  for flg in $sane_makeflags; do  test $skip_next = yes && { skip_next=no; continue; };  case $flg in  *=*|--*) continue;;  -*I) strip_trailopt 'I'; skip_next=yes;;  -*I?*) strip_trailopt 'I';;  -*O) strip_trailopt 'O'; skip_next=yes;;  -*O?*) strip_trailopt 'O';;  -*l) strip_trailopt 'l'; skip_next=yes;;  -*l?*) strip_trailopt 'l';;  -[dEDm]) skip_next=yes;;  -[JT]) skip_next=yes;;  esac;  case $flg in  *$target_option*) has_opt=yes; break;;  esac;  done;  test $has_opt = yes); then \
  failcom='fail=yes'; \
else \
  failcom='exit 1'; \
fi; \
dot_seen=no; \
target=`echo all-recursive | sed s/-recursive//`; \
case "all-recursive" in \
  distclean-* | maintainer-clean-*) list='libtre libstrophe libnetxms tools install snmp appagent libnxlp db agent libnxmap libnxsl libnxcc server smsdrv nxscript' ;; \
  *) list='libtre libstrophe libnetxms tools install snmp appagent libnxlp db agent libnxmap libnxsl libnxcc server smsdrv nxscript' ;; \
esac; \
for subdir in $list; do \
  echo "Making $target in $subdir"; \
  if test "$subdir" = "."; then \
    dot_seen=yes; \
    local_target="$target-am"; \
  else \
    local_target="$target"; \
  fi; \
  (CDPATH="${ZSH_VERSION+.}:" && cd $subdir && make  $local_target) \
  || eval $failcom; \
done; \
if test "$dot_seen" = "no"; then \
  make  "$target-am" || exit 1; \
fi; test -z "$fail"
make: Fatal error: Command failed for target `all-recursive'
Current working directory /root/NetXMS/netxms-2.0.5/src
*** Error code 1
The following command caused the error:
fail=; \
if (target_option=k; case ${target_option-} in  ?) ;;  *) echo "am__make_running_with_option: internal error: invalid"  "target option '${target_option-}' specified" >&2;  exit 1;;  esac;  has_opt=no;  sane_makeflags=$MAKEFLAGS;  if test -n '' && test -n '1'; then  sane_makeflags=$MFLAGS;  else  case $MAKEFLAGS in  *\\[\ \    ]*)  bs=\\;  sane_makeflags=`printf '%s\n' "$MAKEFLAGS"  | sed "s/$bs$bs[$bs $bs        ]*//g"`;;  esac;  fi;  skip_next=no;  strip_trailopt ()  {  flg=`printf '%s\n' "$flg" | sed "s/$1.*$//"`;  };  for flg in $sane_makeflags; do  test $skip_next = yes && { skip_next=no; continue; };  case $flg in  *=*|--*) continue;;  -*I) strip_trailopt 'I'; skip_next=yes;;  -*I?*) strip_trailopt 'I';;  -*O) strip_trailopt 'O'; skip_next=yes;;  -*O?*) strip_trailopt 'O';;  -*l) strip_trailopt 'l'; skip_next=yes;;  -*l?*) strip_trailopt 'l';;  -[dEDm]) skip_next=yes;;  -[JT]) skip_next=yes;;  esac;  case $flg in  *$target_option*) has_opt=yes; break;;  esac;  done;  test $has_opt = yes); then \
  failcom='fail=yes'; \
else \
  failcom='exit 1'; \
fi; \
dot_seen=no; \
target=`echo all-recursive | sed s/-recursive//`; \
case "all-recursive" in \
  distclean-* | maintainer-clean-*) list='. m4 src doc tools contrib  sql images' ;; \
  *) list='. m4 src doc tools contrib  sql images' ;; \
esac; \
for subdir in $list; do \
  echo "Making $target in $subdir"; \
  if test "$subdir" = "."; then \
    dot_seen=yes; \
    local_target="$target-am"; \
  else \
    local_target="$target"; \
  fi; \
  (CDPATH="${ZSH_VERSION+.}:" && cd $subdir && make  $local_target) \
  || eval $failcom; \
done; \
if test "$dot_seen" = "no"; then \
  make  "$target-am" || exit 1; \
fi; test -z "$fail"
make: Fatal error: Command failed for target `all-recursive'
Current working directory /root/NetXMS/netxms-2.0.5
*** Error code 1
make: Fatal error: Command failed for target `all'

#10
Алекс, а можно эту возможность сделать в будущем более расширенной? Чтобы к к компонентам, указанным в JiraProjectComponent добавлялись значения, указанные, к примеру, в custom attributes объектов и контейнеров, в которых находятся эти объекты?
#11
В библиотеке скриптов имеется скрипт, который вызывается из transformation script и которому передаются в качестве аргументов custom attributes объекта. Захотел использовать новую возможность, указал этот скрипт как параметр метрики в виде DCI::NumOfLearnedMAC($node->node,$node->vlan,$node->port). Скрипт завершается со значением -1, говорящим о том, что ему не передаются аргументы.... может их как-то по другому надо указывать?

Ниже сам скрипт

// Count MAC adresses, learned on port of vlan on node
// Arguments: node, vlan, port
// Return number of learned MAC address

sub main() {
return NumOfLearnedMAC($1,$2,$3);
}

sub NumOfLearnedMAC() {
node = FindObject($1);
vlan = $2;
port = $3;

if (node == null)
{
    println "ERROR: Node not found";
    return -1;
}

transport = CreateSNMPTransport(node);    // Create SNMP transport for node
if (transport == null)
{
    println "Failed to create SNMP transport, exit";
    return -1;
}

vars = SNMPWalk(transport, ".1.3.6.1.2.1.17.7.1.2.2.1.2.".vlan);
if (vars == null)
{
    println "Failed to issue SNMP WALK request";
    return -2;
}

ret = 0;
foreach (v: vars) {
  if (v->value == port)
  {
    ++ret;
  }
}

return ret;
}


... и transformation script

use DCI::NumOfLearnedMAC;

sub main() {
return NumOfLearnedMAC($node->node,$node->vlan,$node->port);
}

#12
Quote from: Victor Kirhenshtein on August 26, 2014, 12:42:11 PM
Кстати в следующем релизе появится возможность менять статус таких устройств - например выставлять статус неуправляемого коммутатора на основе статуса порта управляемого коммутатора.

Виктор, я правильно понимаю, что настройка для DCI "Use this DCI for node status calculation" в Other options в версии 1.2.17 как раз и отвечает за эту возможность? Если да, то что должен возвращать данный DCI? Значение, соответствующее статусу? Или мы с помощью пороговых значений (или иным образом) должны генерировать событие на основании возвращаемых значений DCI? А что будет, если мы нескольким метрикам разрешим устанавливать статус объекта? А как будет взаимодействовать устанавливаемый в зависимости от метрики статус с, к примеру, установленным вручную статусом объекта Unmanaged?

Вопрос снят, ответ уже есть в https://www.netxms.org/forum/configuration/node-with-question-mark-on-the-icon-of-object-browser/msg15093/#msg15093 и в документации.
#13
Подскажите пожалуйста, в каком виде должны перечисляться компоненты в JiraProjectComponent?
#14
Премного благодарствую, сейчас начну заниматься с ним любовью...
#15
Да, именно здесь.

Вот мой аналогичный пример (работоспособность не проверял!):
Есть сервер fjpw2.ic.kz, на котором живут 2 виртуальные системы - bacula.ic.kz и e164.ic.kz. Мы хотим, чтобы при падении сервера fjpw2.ic.kz, тревоги от bacula.ic.kz и e164.ic.kz не приходили.

Quote1. В менеджере ситуаций создать Ситуацию с именем NodeStatus


Quote2. В Менеджере политик обработки событий создать правило, которое, при получении SYS_NODE_DOWN от узла fjpw2.ic.kz, выставляет атрибут "status" в "down" для instance fjpw2.ic.kz.

Это правило мы назовем "Show alarm when node is down for Parent node"

Quote3. В Менеджере политик обработки событий создать правило, которое, при получении SYS_NODE_UP от узла fjpw2.ic.kz, выставляет атрибут "status" в "up" для instance fjpw2.ic.kz.

Это правило мы назовем "Terminate node down alarms when node is up for Parent node"


Quote4. В Менеджере политик обработки событий создать правило, которое, при получении SYS_NODE_DOWN от узла bacula.ic.kz и e164.ic.kz, выполняет скрипт

Это правило мы назовем "Show alarm when node is down for Child node"

5. Аналогичные правила создаем для SYS_NODE_UP (не уверен, что это надо)

6. Создаваемые правила должны располагаться выше, чем стандартные "Show alarm when node is down" и "Terminate node down alarms when node is up"