From OpenSCADAWiki
Jump to: navigation, search
(Updating to match new version of source page)
(Updating to match new version of source page)
Line 5: Line 5:
 
</div>
 
</div>
  
This update of the [[Special:MyLanguage/Documents/Release_0.9|0.9 LTS release]] fixes about 80 bugs and appends VERY MANY improvements with several of significant-conceptual ones, which you can read wholly in [http://oscada.org/svn/tags/openscada_0.9/ChangeLog?p=3010 the update ChangeLog].
+
This update of the [[Special:MyLanguage/Documents/Release_0.9|0.9 LTS release]] fixes about 70 bugs and appends MANY improvements with several of significant-conceptual ones, which you can read wholly in [http://oscada.org/svn/tags/openscada_0.9/ChangeLog?p=3010 the update ChangeLog].
  
...
+
{{CntHdr|[[Special:MyLanguage/Sub-projects/Automation_Linux_distributive|Automation Linux distributive of the project OpenSCADA]]}}
 +
* updating TDE to 14.1.3;
 +
* restoring of starting '''nm-applet''' in the system tray;
 +
* formalisation the partial TDE forking under the subproject — the [[Special:MyLanguage/Sub-projects/Automation_Linux_distributive#TDE|Automation Linux distributive of the project OpenSCADA]];
 +
* TDE > kaffeine-trinity: Appending support the WEBM media format;
 +
* TDE > tdelibs-trinity > MIME: Appending support the WEBM media format;
 +
* xine-lib: Switching display_queue.mutex in Video out to the recursive mode for preventing hangs in xine_new_framegrab_video_port();
 +
* TDE > tdemultimedia-trinity > XineThumbnails: Audio Disabled by xine_new_framegrab_audio_port() and HUE corrected. In addition to preventing dead locks in Xine.
 +
* TDE > tdelibs-trinity > TDE IO: Setting the slave connection timeout of SLAVE_CONNECTION_TIMEOUT_MIN from 2 to 10 for preventing errors of the FILE-slave missing on generally slow hardware and HDD/SSD with slow sectors.
 +
* TDE > tdeadmin-trinity > KPackage: Adding the menu "APT Specials" by items: "Clean (apt-get clean)", "Autoremove (apt-get autoremove)";
 +
* TDE > tqt3-trinity: Preventing hangs on rendering wrong char shapes in TQTextEngine, it was noticed in KCharSelect on page 15;
 +
* TDE > tdelibs-trinity: Fixing of substitution correct year in the kdatepicker corresponding to the selected Calendar System;
 +
* TDE > kdiff3-trinity: Switching URLs in the plugin's menu to the pretty view instead encoding UTF-8 chars of native locales;
 +
* TDE > tqt3-trinity: Softening an effect of high-whole CPU loading at flooding Pending events from the GLib interface to the X11 server, what is brightly appeared on digikam-showfoto, by appending short waiting on 1ms after the pending events processing;
 +
* TDE > amarok-trinity: Preventing of flooding with high CPU loading especially on old-slow systems during execution in the system tray and before opening the PlayList window, due to the analysers are wrongly started in the background at changing the animation period;
 +
* TDE > tdebase-trinity > MediaManager: Appending of switching the /etc/fstab using whether by a util of mounting like to udisks or the generic mount program. And that is suitable both for FD and CD/DVD/BLURAY due to udisks[2] doesn't mount them without an entry in /etc/fstab;
 +
* TDE > tdebase-trinity > MediaManager: Fixing nonconformity in icon names for CD-R and CD-RW in tdeioslave;
 +
* TDE > kaffeine-trinity: Fixing of playing DVD with XINE versions which misunderstand URM "dvd://", only "dvd:/";
 +
* TDE > tdebase-trinity > Kate: Reverting broken sessions from 14.0;
 +
* TDE > tdebase-trinity > MediaManager: Disabling of mount directly at fstab entry presence for that mounting by udisks, which treats such mount much correctly in the user space.
 +
 
 +
{{CntHdr|Main WWW-resources, documentation of the project and subprojects}}
 +
* appending the [[Special:MyLanguage/Libs/Devices|Industrial devices library page]] by description new templates;
 +
* appending the [[Special:MyLanguage/Libs/LowLevelDevices|Low level sensors and chips library page]] by description new templates;
 +
* appending the [[Special:MyLanguage/Libs/Main|Main library page]] by description new templates.
 +
 
 +
{{CntHdr|New and significantly updated parts}}
 +
* OpenSCADA Core: 3:14:0 => '''3:15:0'''
 +
* OpenSCADA "Transports" subsystem: 20 => '''21'''
 +
* DAQ.DAQGate: 2.13 => '''2.14'''
 +
* Archive.FSArch: 3.8 => '''3.9'''
 +
* Transport.SSL: 4.5 => <b style="color: red">5.0</b>
 +
: ([[#Upd8SSLSockAddrResolv|Unification and overriding the address resolving in different ways]])
 +
* Transport.Sockets: 4.8 => <b style="color: red">5.0</b>
 +
: ([[#Upd8SSLSockAddrResolv|Unification and overriding the address resolving in different ways]])
 +
* Protocol.OPC_UA: 2.2 => '''2.3'''
 +
* Protocol.HTTP: 3.8 => '''3.9'''
 +
* UI.QTCfg: 6.0 => '''6.1'''
 +
* UI.VCAEngine: 7.13 => '''7.15'''
 +
* UI.Vision: 9.1 => '''9.4'''
 +
* UI.WebUser: 1.6 => <b style="color: red">2.0</b>
 +
: ([[#Upd8WebUserExt|Expanding for support direct writing]])
 +
* UI.WebVision: 6.9 => '''6.13'''
 +
* LibsDB.OscadaLibs.base: 2.2 => '''2.3'''
 +
:* initRemCntr: <b style="color: red">1.0</b>
 +
:* fileServerHTTP: 1.0 => '''1.2'''
 +
* LibsDB.OscadaLibs.LowDevLib: 1.5 => '''1.6'''
 +
:* S1BP: <b style="color: red">1.0</b>
 +
:* 1W: <b style="color: red">1.0</b>
 +
:* UC96: 1.0 => '''1.2'''
 +
* LibsDB.OscadaLibs.DevLib: 3.0 => '''3.1'''
 +
:* ergomera125: <b style="color: red">1.0</b>
 +
:* mbBase: 1.2 => '''1.3'''
 +
* LibsDB.vcaBase.Main
 +
:* grph_panel: 1.5 => '''1.6'''
 +
:* doc_panel: 1.2 => '''1.3'''
 +
:* storeHouse: 1.4 => <b style="color: red">2.0</b>
 +
:: ([[#Upd8StoreHouse|Added file inclusion and image preview]])
 +
* LibsDB.vcaTest.test.docTestGasNodeDayRep: 1.0 => '''1.1'''
 +
 
 +
{{CntHdr|CONCEPTUAL > Implementing properties of the Control Objects}}
 +
* TCntrNode:
 +
** Appending of the object properties in groups by prefixes for different parts of OpenSCADA: system (sys), user (usr), connection (con), security (sec), ... .
 +
** Adding a User API function ''property()'' of accessing the object properties from user context in additional to the direct-natural way.
 +
* Transports: Moving the connection parameters to the object properties in group "con".
 +
* DAQ: Moving the TValue flags ''resB1()'' and ''resB2()'' to the object properties in group "DAQ", that is removing such functions.
 +
 
 +
{{CntHdr|CONCEPTUAL > Implementing the custom ACLs to the control nodes}}
 +
* SYS:
 +
** TCntrNode:
 +
*** new functions ''nodeAccess()'', ''nodeLoadACL()'', ''nodeLoadACLSnthHgl()'';
 +
*** moving from static with some improving and adaption to ACL with compatibility of the direct rules for the functions of the control interface: ''ctrMkNode()'', ''ctrMkNode2()'', ''_ctrMkNode()'', ''ctrChkNode()'';
 +
*** new functions of the control interface for ACL: ''ctrMkNode3()'', ''ctrChkNode2()'';
 +
*** ''_ctrMkNode()'' switched to no exception at missing container nodes, just don't create and return NULL.
 +
** TFld: ''cntrCmdMake()'' added by an argument ''cntrO'' for linking with the Control Node, and all code adapted to that.
 +
** TConfig: ''cntrCmdMake()'' and ''cntrCmdProc()'' added by an argument ''cntrO'' for linking with the Control Node, and all code adapted to that.
 +
* Transport: TTransportS: ''cntrCmdPrm()'' added by an argument ''cntrO'' for linking with the Control Node, and all code adapted to that.
 +
* DAQ: Initial adaptation to ACLs in the description fields of the Controller and Parameter Objects, default owner-permition for the DAQ subsystem set to "root:DAQ"-0775.
 +
* Protocol.OPC_UA: Using ACL in checking the access.
 +
 
 +
{{CntHdr|CONCEPTUAL > Expanding the project management}}
 +
* data/openscada-proj.in: Expanding by the commands '''snapshot''', '''crash''', '''cores''' with unification of preparing the crash reports also for the crashing processes from itself. Appending the crash-reports by "info thread" and "info sharedlibrary".
 +
** Refactoring the algorithm of processing the projects in the System and User directory, that is fixing of creation the project directory in the System directory at presence the System configuration file.
 +
* SYS: Enabled in processing the signals SIGFPE and SIGSEGV with call {{InLineCode|<nowiki>openscada-proj crash {ProjID}</nowiki>}} to prepare the crash report immediately for SIGFPE, SIGABRT and SIGSEGV.
 +
** The process return-exit result for success is forced to EXIT_SUCCESS and for fail to EXIT_FAILURE.
 +
 
 +
{{CntHdr|CONCEPTUAL > Messages Translation (fixes of the [[Special:MyLanguage/Documents/Release_0.9#MessTrFix|conceptual changes of the previous updates]]) }}
 +
* LibsDB.OscadaLibs: Automatic updating some translation.
 +
* FIX:LibsDB.vcaBase.wlb_Main.RootPgSo: The attribute "Procedure of the Demo play (demoPlayProc)" set to the type "Text (translate)".
 +
* LibsDB.vcaBase.wlb_Main: Appended of the dynamic messages with Ukrainian translation for main ones of DiskSMART and UPS during representing by "Object properties (objProps)".
 +
* FIX:DAQ.OPC_UA,Protocol.HTTP,UI.{QTCfg,Vision}: Fixing and improving some original messages.
 +
* FIX:DAQ: Fixing-finishing the dynamic translation for title of the controller and parameter object.
 +
** FIX: Templates fixed-adapted to the dynamic translation in using the IO names.
 +
** FIX:DAQGate: Some fixed in Ukrainian translation.
 +
** FIX:JavaLikeCalk: Some improved in the translation.
 +
* FIX:Protocol.OPC_UA: Adaption to the dynamic translation in data requests.
 +
* FIX:QTCfg,Vision: The messages "Load from DB" and "Save to DB" renamed to "Load" and "Save" and with "storage" instead "DB" in full messages.
 +
* FIX:UI.VCAEngine: The session User API function ''this.attr()'' fixed in checking the translation flag TFld::TransltText.
 +
** FIX: Templates fixed-adapted to the dynamic translation in using the configuration template of the attributes.
 +
 
 +
{{CntHdr|OpenSCADA libraries and projects}}
 +
* FIX:LibsDB.OscadaLibs:
 +
** tmplib_base: Appended by a template "Control the remote initiative connections (initRemCntr)".
 +
*** FIX:fileServerHTTP: Expanded of big data transferring in chunks by the direct writing function writeTo(), that performed for non video files. For that appended by the attributes: Transport (tr), Protocol (prt) and Sender (sender).
 +
** tmplib_DevLib: Appended by the template "Ergomera 125 (ergomera125)" with initial implementation the own protocol.
 +
*** mbBase: Expanded for support Input Registers by function 4.
 +
*** FIX:VSE002: Rewrote in the packages sequential reading mode, that is detection all packages with notifying unknown.
 +
*** FIX:Incubator: Fixing value of the 'Transport (transport)' field.
 +
** tmplib_LowDevLib: Appended by the template "BT: ATORCH S1BP (S1BP)".
 +
*** Appended by the template "1-Wire (1W)", which merged from 1W_DS9097 and 1W_DS9097U before appending I2C Drivers and expanded by an option "Only add attributes at scan".
 +
*** UC96: Expanded for support ATORCH UD24. Expanded by reading: Volts maximum (Vup), Volts minimum (Vdwn), Data+ (Dplus), Data- (Dminus).
 +
** FIX:flb_doc.diagram: Adding of drawing non periodic direct data like months. Implementing of rounding big interval points by the Besier Cubic Curves.
 +
* LibsDB.vcaBase:
 +
** wlb_Main:
 +
*** grph_panel,doc_panel: Moving in the size-depth field to the editable combobox with the digital number and human text multiplier, based on the new UserAPI function time2str() and str2time(), that is removing the type field here.
 +
*** docRepDay,docRepMonth,docUsersSet,docRepInstVals,docDin,docRep2WorkSh,docAlarmsRep,docMessRep: Adaptation to opening the document control panel after several seconds of starting-opening, that is for allowing the document control at displaying by QtWebengine.
 +
*** grpGraph,grpCadr,doc_panel,grph_panel,prescrEdit,prescrRun,prescrRunSimple,accept,treeSelect,calendar,userManager,alarmsStReport,docRepDay,docRepMonth,docRepYear},wlb_prescr.{prescrEdit,prescrRun,prescrRunSimple: The variable ''ev_cur'' renamed to ''evCur''.
 +
*** {{Anch|Upd8StoreHouse|storeHouse}}: Expanded by support of including files both to the MySQL LONGTEXT field and to FS. Appending preview the loaded images in the form and the item report.
 +
*** FIX:grpGraph10: Fixed in the geomZ for the extra elements "el9" and "el10".
 +
*** FIX:RootPgSo: Improved by pause the demo-procedures execution at no requests on WEB, so preventing of opening all pages before real close. Direct pages list append by checking the pages permission.
 +
*** FIX:grpGraph: Fixed in the geomZ for the "trnd1" and "arh" included widgets.
 +
*** FIX:weather: Appending by icons of representing different states. Fixed in guaranty receiving the hourly data at the connection problems.
 +
*** treeSelect: Updating icon of the frame with improving the name.
 +
** wlb_doc.docRepYear: Switching the direct data drawing on the diagram to the non periodic mode.
 +
* LibsDB.vcaTest.wlb_test.docTestGasNodeDayRep: Adaptation to opening the document control panel at setting the "pgOpen" attribute and not setting the "pgOpen" attribute in the document control panel, due to the document is archiving, that is for allowing the document control at displaying by QtWebengine.
 +
* ModelsDB.AGLKS:
 +
** wlb_doc.{docRepMonth,docRepDay}: Set to no process periodically.
 +
** wlb_test.docTestGasNodeDayRep: Set to process with period 10 seconds.
 +
 
 +
{{CntHdr|API}}
 +
''!!!!:Changes'':
 +
* SYS: Type of the limit variables "limUserFile_SZ", "limUserIts_N" changed to unsigned.
 +
** TCntrNode: Moving from static with renaming some arguments: ''ctrMkNode()'', ''ctrMkNode2()'', ''_ctrMkNode()'', ''ctrChkNode()''. Changing prototype of the ''objPropSet()'' function in the "val" argument.
 +
** TFld: ''cntrCmdMake()'' added by an argument "cntrO" with renaming some arguments.
 +
** TConfig: ''cntrCmdMake()'' and ''cntrCmdProc()'' added by an argument "cntrO" with renaming some arguments.
 +
* TSecurity: Renaming the function ''access()'' argument "access" to "perm", also for User API.
 +
* Transports: ''TTransportS::cntrCmdPrm()'' added by an argument "cntrO".
 +
* DAQ: Moving the TValue flags ''resB1()'' and ''resB2()'' to the object properties in group "DAQ", that is removing such functions.
 +
''Appends'':
 +
* SYS: Appending the ''sysTmJmp()'' function as a variant of ''sysTm()''.
 +
** Appended by the "DEF_HTaskPer" definition.
 +
** TCntrNode: New functions: ''nodeAccess()'', ''nodeLoadACL()'', ''nodeLoadACLSnthHgl()'', ''ctrMkNode3()'', ''ctrChkNode2()'', ''property()'', ''propertyClrGrp()''. Adding a User API function ''property()''.
 +
** Appended by the limiting option "limObjDscr_SZ" for the description configuration fields (DESCR).
 +
** Adding function ''str2time()'' with parsing the human time from ''time2str()'', which added also by the "inParts" argument.
 +
** Adding new User API functions with representing the system ones in the user space: ''time2str()'', ''cpct2str()'', ''str2time()''.
 +
** XMLNodeObj: ''getElementsBy()'' and its UserAPI variant expanded by arguments "limit" and "from".
 +
** Mess: Adding the global label functions ''labTime()'', ''labTimeSel()''.
 +
* Transports: TTransportOut appended by the function ''isFromInput()''.
 +
 
 +
{{CntHdr|SYS}}
 +
* Building:
 +
** configure.ac: Core library version risen to 3:15:0 and the program version risen to 0.9.8.
 +
** The module version of the subsystem "Transports" risen to 21.
 +
** acinclude.m4: The autoconf macro AX_LIB_MYSQL added of using PKG_CONFIG when presence the configuration file, to build together MySQL in cross-compiling environments with binary mysql_config or mariadb_config. Removing the spare macroses: AX_LIB_SQLITE3, BNV_HAVE_QT. Some improving the macro AX_LIB_POSTGRESQL.
 +
** data/{debian,debian_mod}: Appending openscada-server.service and openscada-plc.service, also as a commented entry dh_installsystemd in "rules", and that switched to use in Debian 12,11,10 and Ubuntu 24.04,22.04,20.04. Appending MySQL default dependency as default-libmysqlclient-dev.
 +
* FIX:LibsDB.OscadaLibs.tmplib_base.fileServerHTTP,UI.WebVision: Unified in processing the data transferring in the sequence: ranges of media in the head, big data by chunks, simple single package for small data.
 +
* Archive.{MessArchive,MessArchiver,ValArchive},DAQ: Moving in the size-depth field of the Control Interface to the editable combobox with the digital number and human text multiplier, based on the new function ''time2str()'' and ''str2time()''.
 +
* .,DAQ.{BlockCalc,JavaLikeCalc},Protocol.{ModBus,OPC_UA,UserProtocol},UI.{VCAEngine,WebUser}: Appended by the limiting option "limObjDscr_SZ" for the description configuration fields (DESCR) with default value 1000 and range [300...1000000].
 +
* FIX: The commandline options appended by getting default value from the environment variable "OSCADA_{cmd}", what enabled by the environment variable "OSCADA_CMD_EN".
 +
 
 +
{{CntHdr|DB}}
 +
* FIX:SQLite: The error code SQLITE_CORRUPT appended for reconnection the DB file, since this error can be appeared with changing the DB-file structure from an external source.
 +
 
 +
{{CntHdr|DAQ}}
 +
* FIX: Fixed in remote archives detection for temporarily empty ones, that is no source.
 +
* DAQGate: Improving algorithm of the archives detection with providing an information field with list of the archieving attributes.
 +
* FIX:ModBus: Fixed in complete processing strings with encoding, that is registering all registers. The data requesting improved in the TCP variant for waiting tail to any first package size, that is not only the MBAP header in 7 bytes size.
 +
 
 +
{{CntHdr|Archives-History}}
 +
* The value archives appended of detection the doubly links and their all removing.
 +
* FSArch: The archives unpacking function appended by the error message unification and a possibility to remove error archives, currently only at checking the value archive files.
 +
 
 +
{{CntHdr|Transports}}
 +
* The IO log items appended by whole package (or aggregation) size and the aggregation default time set to 1.
 +
* FIX: TTransportOut appended by the function ''isFromInput()'' to detect automatically created objects from the input transport. The external initiative connections of the OpenSCADA hosts prevented from stop.
 +
* {{Anch|Upd8SSLSockAddrResolv|Sockets,SSL}}: ''TTransSock::getAddr()'' renamed to ''TTransSock::addrGet()'' and the address resolving moved to a new function ''TTransSock::addrResolve()'' with direct resolving the static addresses and dynamic resolving by ''gethostbyname()'' due to ''getaddrinfo()'' has problems with reenteranting and global lock causes long hangs on all addresses at problems with DNS. Also appended a commandline option --getaddrinfo to enable it for yourself.
 +
** FIX: Fixing a hard-detected problem of substitution wrong addresses during the addresses resolving by ''getservbyname_r()'' from other thread, that is from GLibC 2.24 there forced using ''getaddrinfo()'' as more correct or ''inet_pton()'' + locked ''getservbyname_r()'' on old systems.
 +
* SSL: Appended of implementation ''TTransportIn::writeTo()'' with moving to map in holding the SSockIn structure. Input part of the transports switched to use unified ''TTransSock::addrResolve()'' for precursory resolving all dynamic addresses and pass ready static addresses to BIO_new_accept().
 +
 
 +
{{CntHdr|Transport Protocols}}
 +
* FIX:OPC_UA: Implementing the true authentication with checking permissions of the DAQ-Nodes corresponding to the user:
 +
** libOPC_UA: implementing the authentication through ''UA::Server::EP::sessActivate()'' and the property "identTkn", from which there is taken the user in the attribute "userAuthenticated" and that is written to "UA::Server::Sess::{user,idPolicyId}";
 +
** libOPC_UA: all data requests by ''reqData()'' appended in "req" by an attribute "sesTokId" with session identifier here and for accessing the user;
 +
** appending a configuration field "Anonymous user" for representing the anonymous authentication.
 +
* HTTP: Appended by the generic function of transition any methods to WEB-modules — HTTP().
 +
 
 +
{{CntHdr|User Interface}}
 +
* FIX:Vision,WebVision: Implementing of rounding big interval points by the Besier Cubic Curves. Fixing of calculating bottom border for vertical scale.
 +
* VCAEngine,Vision,WebVision: The type Image of the primitive Media appended by the attribute "Keep aspect ratio at fitting (keepAspect)".
 +
* FIX:VCAEngine,Vision: Adding an option in the "Processing" tab of the projects with control the writing to styles in the execution context. And the writing disabled on the project side.
 +
* FIX:WebVision: Requesting data of the resources added by support chunks for big data and conversion only for small images. The save type of the buttons appended by support the media ranges with storing the data in WebVision context for retries.
 +
* {{Anch|Upd8WebUserExt|WebUser}}: Switched to the generic function ''HTTP()'' of transition from Protocol.HTTP. Appended by an optional attribute "Transport (tr)" of the processing procedures and templates, taken from the protocol object. The attribute "Result (rez)" allowed in empty value to prevent sending any response meaning direct writing by TTransportIn::writeTo().
 +
* QTCfg: The back and forward buttons expanded by a menu of the direct items accessing.
 +
* FIX:Vision: Prevented fullscreen mode fault in some XOrg conditions, when the fullscreen Qt-flag occasionally cleared, that is the flag was doubled internally. Reproduced often with Qt6 on Debian 12.

Revision as of 18:19, 19 February 2025

Other languages:
  • State: preparing and building ...

The common releasing process for the users to estimate your expectations and for the developers to remind the tasks:
1. The preparing and building week:

  • Building the last Work SVN-revision for all environments of the irregular building to provide early and wide testing the coming LTS release.
  • Announcing the releasing process start:
  • Merging the Work branch changes or copying the whole Work branch tree to the LTS branch-tree.
  • Making some LTS specific changes about the version rise:
    • updating configure.ac for version of the release-update and core library;
    • updating data/*.spec and data/{debian,debian_mod}/changelog for the new version number and appending the files' changelog for new release-update entry.
  • Forming-appending the LTS ChangeLog by the changes from the Work ChangeLog, grouping the changes by the location and sorting them by the fixing status and the level, with combination new features under one item and without removing any different changes.
  • Copying the significant changes from the formed LTS ChangeLog to the related page of the release-update, taking the changes in the level more or even than "!!".
  • Translating the release-update page(s), updating the ToDo and RoadMap.
  • Generating the actual offline documentation using the service procedure "EXT: Off-line documentation".
  • Committing the LTS tree changes to the repository and building that.

2. The testing and post-building week(s):

  • Updating the Download page.
  • Announcing the release-update, also on FaceBook and LinkedIn.
  • Hot testing the release build.
  • Finishing and fixing the ChangeLog translating and the documentation.
  • Generating the actual offline documentation using the service procedure "EXT: Off-line documentation".
  • Committing the release fixes to the repository and building that for the second build, and for each week of appearing critical fixes — the first week without the critical fixes means the final of the LTS releasing, so, USERS — test closely the LTS release for do not complain to its final build!
  • Updating binary copies of standard OpenSCADA libraries: OscadaLibs.db, VcaBase.db, VcaElectroEls.db.

This update of the 0.9 LTS release fixes about 70 bugs and appends MANY improvements with several of significant-conceptual ones, which you can read wholly in the update ChangeLog.

Automation Linux distributive of the project OpenSCADA

  • updating TDE to 14.1.3;
  • restoring of starting nm-applet in the system tray;
  • formalisation the partial TDE forking under the subproject — the Automation Linux distributive of the project OpenSCADA;
  • TDE > kaffeine-trinity: Appending support the WEBM media format;
  • TDE > tdelibs-trinity > MIME: Appending support the WEBM media format;
  • xine-lib: Switching display_queue.mutex in Video out to the recursive mode for preventing hangs in xine_new_framegrab_video_port();
  • TDE > tdemultimedia-trinity > XineThumbnails: Audio Disabled by xine_new_framegrab_audio_port() and HUE corrected. In addition to preventing dead locks in Xine.
  • TDE > tdelibs-trinity > TDE IO: Setting the slave connection timeout of SLAVE_CONNECTION_TIMEOUT_MIN from 2 to 10 for preventing errors of the FILE-slave missing on generally slow hardware and HDD/SSD with slow sectors.
  • TDE > tdeadmin-trinity > KPackage: Adding the menu "APT Specials" by items: "Clean (apt-get clean)", "Autoremove (apt-get autoremove)";
  • TDE > tqt3-trinity: Preventing hangs on rendering wrong char shapes in TQTextEngine, it was noticed in KCharSelect on page 15;
  • TDE > tdelibs-trinity: Fixing of substitution correct year in the kdatepicker corresponding to the selected Calendar System;
  • TDE > kdiff3-trinity: Switching URLs in the plugin's menu to the pretty view instead encoding UTF-8 chars of native locales;
  • TDE > tqt3-trinity: Softening an effect of high-whole CPU loading at flooding Pending events from the GLib interface to the X11 server, what is brightly appeared on digikam-showfoto, by appending short waiting on 1ms after the pending events processing;
  • TDE > amarok-trinity: Preventing of flooding with high CPU loading especially on old-slow systems during execution in the system tray and before opening the PlayList window, due to the analysers are wrongly started in the background at changing the animation period;
  • TDE > tdebase-trinity > MediaManager: Appending of switching the /etc/fstab using whether by a util of mounting like to udisks or the generic mount program. And that is suitable both for FD and CD/DVD/BLURAY due to udisks[2] doesn't mount them without an entry in /etc/fstab;
  • TDE > tdebase-trinity > MediaManager: Fixing nonconformity in icon names for CD-R and CD-RW in tdeioslave;
  • TDE > kaffeine-trinity: Fixing of playing DVD with XINE versions which misunderstand URM "dvd://", only "dvd:/";
  • TDE > tdebase-trinity > Kate: Reverting broken sessions from 14.0;
  • TDE > tdebase-trinity > MediaManager: Disabling of mount directly at fstab entry presence for that mounting by udisks, which treats such mount much correctly in the user space.

Main WWW-resources, documentation of the project and subprojects

New and significantly updated parts

  • OpenSCADA Core: 3:14:0 => 3:15:0
  • OpenSCADA "Transports" subsystem: 20 => 21
  • DAQ.DAQGate: 2.13 => 2.14
  • Archive.FSArch: 3.8 => 3.9
  • Transport.SSL: 4.5 => 5.0
(Unification and overriding the address resolving in different ways)
  • Transport.Sockets: 4.8 => 5.0
(Unification and overriding the address resolving in different ways)
  • Protocol.OPC_UA: 2.2 => 2.3
  • Protocol.HTTP: 3.8 => 3.9
  • UI.QTCfg: 6.0 => 6.1
  • UI.VCAEngine: 7.13 => 7.15
  • UI.Vision: 9.1 => 9.4
  • UI.WebUser: 1.6 => 2.0
(Expanding for support direct writing)
  • UI.WebVision: 6.9 => 6.13
  • LibsDB.OscadaLibs.base: 2.2 => 2.3
  • initRemCntr: 1.0
  • fileServerHTTP: 1.0 => 1.2
  • LibsDB.OscadaLibs.LowDevLib: 1.5 => 1.6
  • S1BP: 1.0
  • 1W: 1.0
  • UC96: 1.0 => 1.2
  • LibsDB.OscadaLibs.DevLib: 3.0 => 3.1
  • ergomera125: 1.0
  • mbBase: 1.2 => 1.3
  • LibsDB.vcaBase.Main
  • grph_panel: 1.5 => 1.6
  • doc_panel: 1.2 => 1.3
  • storeHouse: 1.4 => 2.0
(Added file inclusion and image preview)
  • LibsDB.vcaTest.test.docTestGasNodeDayRep: 1.0 => 1.1

CONCEPTUAL > Implementing properties of the Control Objects

  • TCntrNode:
    • Appending of the object properties in groups by prefixes for different parts of OpenSCADA: system (sys), user (usr), connection (con), security (sec), ... .
    • Adding a User API function property() of accessing the object properties from user context in additional to the direct-natural way.
  • Transports: Moving the connection parameters to the object properties in group "con".
  • DAQ: Moving the TValue flags resB1() and resB2() to the object properties in group "DAQ", that is removing such functions.

CONCEPTUAL > Implementing the custom ACLs to the control nodes

  • SYS:
    • TCntrNode:
      • new functions nodeAccess(), nodeLoadACL(), nodeLoadACLSnthHgl();
      • moving from static with some improving and adaption to ACL with compatibility of the direct rules for the functions of the control interface: ctrMkNode(), ctrMkNode2(), _ctrMkNode(), ctrChkNode();
      • new functions of the control interface for ACL: ctrMkNode3(), ctrChkNode2();
      • _ctrMkNode() switched to no exception at missing container nodes, just don't create and return NULL.
    • TFld: cntrCmdMake() added by an argument cntrO for linking with the Control Node, and all code adapted to that.
    • TConfig: cntrCmdMake() and cntrCmdProc() added by an argument cntrO for linking with the Control Node, and all code adapted to that.
  • Transport: TTransportS: cntrCmdPrm() added by an argument cntrO for linking with the Control Node, and all code adapted to that.
  • DAQ: Initial adaptation to ACLs in the description fields of the Controller and Parameter Objects, default owner-permition for the DAQ subsystem set to "root:DAQ"-0775.
  • Protocol.OPC_UA: Using ACL in checking the access.

CONCEPTUAL > Expanding the project management

  • data/openscada-proj.in: Expanding by the commands snapshot, crash, cores with unification of preparing the crash reports also for the crashing processes from itself. Appending the crash-reports by "info thread" and "info sharedlibrary".
    • Refactoring the algorithm of processing the projects in the System and User directory, that is fixing of creation the project directory in the System directory at presence the System configuration file.
  • SYS: Enabled in processing the signals SIGFPE and SIGSEGV with call openscada-proj crash {ProjID} to prepare the crash report immediately for SIGFPE, SIGABRT and SIGSEGV.
    • The process return-exit result for success is forced to EXIT_SUCCESS and for fail to EXIT_FAILURE.

CONCEPTUAL > Messages Translation (fixes of the conceptual changes of the previous updates)

  • LibsDB.OscadaLibs: Automatic updating some translation.
  • FIX:LibsDB.vcaBase.wlb_Main.RootPgSo: The attribute "Procedure of the Demo play (demoPlayProc)" set to the type "Text (translate)".
  • LibsDB.vcaBase.wlb_Main: Appended of the dynamic messages with Ukrainian translation for main ones of DiskSMART and UPS during representing by "Object properties (objProps)".
  • FIX:DAQ.OPC_UA,Protocol.HTTP,UI.{QTCfg,Vision}: Fixing and improving some original messages.
  • FIX:DAQ: Fixing-finishing the dynamic translation for title of the controller and parameter object.
    • FIX: Templates fixed-adapted to the dynamic translation in using the IO names.
    • FIX:DAQGate: Some fixed in Ukrainian translation.
    • FIX:JavaLikeCalk: Some improved in the translation.
  • FIX:Protocol.OPC_UA: Adaption to the dynamic translation in data requests.
  • FIX:QTCfg,Vision: The messages "Load from DB" and "Save to DB" renamed to "Load" and "Save" and with "storage" instead "DB" in full messages.
  • FIX:UI.VCAEngine: The session User API function this.attr() fixed in checking the translation flag TFld::TransltText.
    • FIX: Templates fixed-adapted to the dynamic translation in using the configuration template of the attributes.

OpenSCADA libraries and projects

  • FIX:LibsDB.OscadaLibs:
    • tmplib_base: Appended by a template "Control the remote initiative connections (initRemCntr)".
      • FIX:fileServerHTTP: Expanded of big data transferring in chunks by the direct writing function writeTo(), that performed for non video files. For that appended by the attributes: Transport (tr), Protocol (prt) and Sender (sender).
    • tmplib_DevLib: Appended by the template "Ergomera 125 (ergomera125)" with initial implementation the own protocol.
      • mbBase: Expanded for support Input Registers by function 4.
      • FIX:VSE002: Rewrote in the packages sequential reading mode, that is detection all packages with notifying unknown.
      • FIX:Incubator: Fixing value of the 'Transport (transport)' field.
    • tmplib_LowDevLib: Appended by the template "BT: ATORCH S1BP (S1BP)".
      • Appended by the template "1-Wire (1W)", which merged from 1W_DS9097 and 1W_DS9097U before appending I2C Drivers and expanded by an option "Only add attributes at scan".
      • UC96: Expanded for support ATORCH UD24. Expanded by reading: Volts maximum (Vup), Volts minimum (Vdwn), Data+ (Dplus), Data- (Dminus).
    • FIX:flb_doc.diagram: Adding of drawing non periodic direct data like months. Implementing of rounding big interval points by the Besier Cubic Curves.
  • LibsDB.vcaBase:
    • wlb_Main:
      • grph_panel,doc_panel: Moving in the size-depth field to the editable combobox with the digital number and human text multiplier, based on the new UserAPI function time2str() and str2time(), that is removing the type field here.
      • docRepDay,docRepMonth,docUsersSet,docRepInstVals,docDin,docRep2WorkSh,docAlarmsRep,docMessRep: Adaptation to opening the document control panel after several seconds of starting-opening, that is for allowing the document control at displaying by QtWebengine.
      • grpGraph,grpCadr,doc_panel,grph_panel,prescrEdit,prescrRun,prescrRunSimple,accept,treeSelect,calendar,userManager,alarmsStReport,docRepDay,docRepMonth,docRepYear},wlb_prescr.{prescrEdit,prescrRun,prescrRunSimple: The variable ev_cur renamed to evCur.
      • storeHouse: Expanded by support of including files both to the MySQL LONGTEXT field and to FS. Appending preview the loaded images in the form and the item report.
      • FIX:grpGraph10: Fixed in the geomZ for the extra elements "el9" and "el10".
      • FIX:RootPgSo: Improved by pause the demo-procedures execution at no requests on WEB, so preventing of opening all pages before real close. Direct pages list append by checking the pages permission.
      • FIX:grpGraph: Fixed in the geomZ for the "trnd1" and "arh" included widgets.
      • FIX:weather: Appending by icons of representing different states. Fixed in guaranty receiving the hourly data at the connection problems.
      • treeSelect: Updating icon of the frame with improving the name.
    • wlb_doc.docRepYear: Switching the direct data drawing on the diagram to the non periodic mode.
  • LibsDB.vcaTest.wlb_test.docTestGasNodeDayRep: Adaptation to opening the document control panel at setting the "pgOpen" attribute and not setting the "pgOpen" attribute in the document control panel, due to the document is archiving, that is for allowing the document control at displaying by QtWebengine.
  • ModelsDB.AGLKS:
    • wlb_doc.{docRepMonth,docRepDay}: Set to no process periodically.
    • wlb_test.docTestGasNodeDayRep: Set to process with period 10 seconds.

API
!!!!:Changes:

  • SYS: Type of the limit variables "limUserFile_SZ", "limUserIts_N" changed to unsigned.
    • TCntrNode: Moving from static with renaming some arguments: ctrMkNode(), ctrMkNode2(), _ctrMkNode(), ctrChkNode(). Changing prototype of the objPropSet() function in the "val" argument.
    • TFld: cntrCmdMake() added by an argument "cntrO" with renaming some arguments.
    • TConfig: cntrCmdMake() and cntrCmdProc() added by an argument "cntrO" with renaming some arguments.
  • TSecurity: Renaming the function access() argument "access" to "perm", also for User API.
  • Transports: TTransportS::cntrCmdPrm() added by an argument "cntrO".
  • DAQ: Moving the TValue flags resB1() and resB2() to the object properties in group "DAQ", that is removing such functions.

Appends:

  • SYS: Appending the sysTmJmp() function as a variant of sysTm().
    • Appended by the "DEF_HTaskPer" definition.
    • TCntrNode: New functions: nodeAccess(), nodeLoadACL(), nodeLoadACLSnthHgl(), ctrMkNode3(), ctrChkNode2(), property(), propertyClrGrp(). Adding a User API function property().
    • Appended by the limiting option "limObjDscr_SZ" for the description configuration fields (DESCR).
    • Adding function str2time() with parsing the human time from time2str(), which added also by the "inParts" argument.
    • Adding new User API functions with representing the system ones in the user space: time2str(), cpct2str(), str2time().
    • XMLNodeObj: getElementsBy() and its UserAPI variant expanded by arguments "limit" and "from".
    • Mess: Adding the global label functions labTime(), labTimeSel().
  • Transports: TTransportOut appended by the function isFromInput().

SYS

  • Building:
    • configure.ac: Core library version risen to 3:15:0 and the program version risen to 0.9.8.
    • The module version of the subsystem "Transports" risen to 21.
    • acinclude.m4: The autoconf macro AX_LIB_MYSQL added of using PKG_CONFIG when presence the configuration file, to build together MySQL in cross-compiling environments with binary mysql_config or mariadb_config. Removing the spare macroses: AX_LIB_SQLITE3, BNV_HAVE_QT. Some improving the macro AX_LIB_POSTGRESQL.
    • data/{debian,debian_mod}: Appending openscada-server.service and openscada-plc.service, also as a commented entry dh_installsystemd in "rules", and that switched to use in Debian 12,11,10 and Ubuntu 24.04,22.04,20.04. Appending MySQL default dependency as default-libmysqlclient-dev.
  • FIX:LibsDB.OscadaLibs.tmplib_base.fileServerHTTP,UI.WebVision: Unified in processing the data transferring in the sequence: ranges of media in the head, big data by chunks, simple single package for small data.
  • Archive.{MessArchive,MessArchiver,ValArchive},DAQ: Moving in the size-depth field of the Control Interface to the editable combobox with the digital number and human text multiplier, based on the new function time2str() and str2time().
  • .,DAQ.{BlockCalc,JavaLikeCalc},Protocol.{ModBus,OPC_UA,UserProtocol},UI.{VCAEngine,WebUser}: Appended by the limiting option "limObjDscr_SZ" for the description configuration fields (DESCR) with default value 1000 and range [300...1000000].
  • FIX: The commandline options appended by getting default value from the environment variable "OSCADA_{cmd}", what enabled by the environment variable "OSCADA_CMD_EN".

DB

  • FIX:SQLite: The error code SQLITE_CORRUPT appended for reconnection the DB file, since this error can be appeared with changing the DB-file structure from an external source.

DAQ

  • FIX: Fixed in remote archives detection for temporarily empty ones, that is no source.
  • DAQGate: Improving algorithm of the archives detection with providing an information field with list of the archieving attributes.
  • FIX:ModBus: Fixed in complete processing strings with encoding, that is registering all registers. The data requesting improved in the TCP variant for waiting tail to any first package size, that is not only the MBAP header in 7 bytes size.

Archives-History

  • The value archives appended of detection the doubly links and their all removing.
  • FSArch: The archives unpacking function appended by the error message unification and a possibility to remove error archives, currently only at checking the value archive files.

Transports

  • The IO log items appended by whole package (or aggregation) size and the aggregation default time set to 1.
  • FIX: TTransportOut appended by the function isFromInput() to detect automatically created objects from the input transport. The external initiative connections of the OpenSCADA hosts prevented from stop.
  • Sockets,SSL: TTransSock::getAddr() renamed to TTransSock::addrGet() and the address resolving moved to a new function TTransSock::addrResolve() with direct resolving the static addresses and dynamic resolving by gethostbyname() due to getaddrinfo() has problems with reenteranting and global lock causes long hangs on all addresses at problems with DNS. Also appended a commandline option --getaddrinfo to enable it for yourself.
    • FIX: Fixing a hard-detected problem of substitution wrong addresses during the addresses resolving by getservbyname_r() from other thread, that is from GLibC 2.24 there forced using getaddrinfo() as more correct or inet_pton() + locked getservbyname_r() on old systems.
  • SSL: Appended of implementation TTransportIn::writeTo() with moving to map in holding the SSockIn structure. Input part of the transports switched to use unified TTransSock::addrResolve() for precursory resolving all dynamic addresses and pass ready static addresses to BIO_new_accept().

Transport Protocols

  • FIX:OPC_UA: Implementing the true authentication with checking permissions of the DAQ-Nodes corresponding to the user:
    • libOPC_UA: implementing the authentication through UA::Server::EP::sessActivate() and the property "identTkn", from which there is taken the user in the attribute "userAuthenticated" and that is written to "UA::Server::Sess::{user,idPolicyId}";
    • libOPC_UA: all data requests by reqData() appended in "req" by an attribute "sesTokId" with session identifier here and for accessing the user;
    • appending a configuration field "Anonymous user" for representing the anonymous authentication.
  • HTTP: Appended by the generic function of transition any methods to WEB-modules — HTTP().

User Interface

  • FIX:Vision,WebVision: Implementing of rounding big interval points by the Besier Cubic Curves. Fixing of calculating bottom border for vertical scale.
  • VCAEngine,Vision,WebVision: The type Image of the primitive Media appended by the attribute "Keep aspect ratio at fitting (keepAspect)".
  • FIX:VCAEngine,Vision: Adding an option in the "Processing" tab of the projects with control the writing to styles in the execution context. And the writing disabled on the project side.
  • FIX:WebVision: Requesting data of the resources added by support chunks for big data and conversion only for small images. The save type of the buttons appended by support the media ranges with storing the data in WebVision context for retries.
  • WebUser: Switched to the generic function HTTP() of transition from Protocol.HTTP. Appended by an optional attribute "Transport (tr)" of the processing procedures and templates, taken from the protocol object. The attribute "Result (rez)" allowed in empty value to prevent sending any response meaning direct writing by TTransportIn::writeTo().
  • QTCfg: The back and forward buttons expanded by a menu of the direct items accessing.
  • FIX:Vision: Prevented fullscreen mode fault in some XOrg conditions, when the fullscreen Qt-flag occasionally cleared, that is the flag was doubled internally. Reproduced often with Qt6 on Debian 12.