From OpenSCADAWiki
Jump to: navigation, search

CONCEPTUAL > Unification the building with adaption to Debian 12, Qt6, QtWebEngine, QtMultimediaEngine, OpenSSL3, MIPS

  • FIX: Finished in true building with the core library only in static:
    • configure.ac: the configuration option --enable-CoreLibStatic expanded for definition the AM_CONDITIONAL(CoreLibStatic) and the environment variable LIB_MOD;
    • moduls/*/*/Makefile.am: appended by the option --tag=disable-shared and expanded by using the environment variable LIB_MOD;
    • src_call/Makefile.am: expanded by the AM_CONDITIONAL(CoreLibStatic) specific processing for static linking the core library with all included modules.
  • configure.ac,acinclude.m4: Cleaned from the deprecated macroses in AutoConf 2.70:
    • AC_HELP_STRING renamed to AS_HELP_STRING;
    • AM_CONFIG_HEADER renamed to AC_CONFIG_HEADER;
    • AC_LIBTOOL_DLOPEN replaced by LT_INIT([dlopen]);
    • AX_PTHREAD replaced by AC_SEARCH_LIBS(pthread, [pthread_create])
    • commented for AC_PROG_LIBTOOL, AM_PROG_LIBTOOL, AC_HEADER_STDC, AC_HEADER_TIME, AC_TYPE_SIGNAL, AC_ISC_POSIX.
  • acinclude.m4,DAQ.OPC_UA.libOPC_UA,Transport.SSL,Special.FLibSYS: Cleaned from deprecated functions in OpenSSL 1.1 (API 3.0):
    • acinclude.m4: testing function of the macro AX_LIB_OpenSSL() and AX_LIB_OpenSSL_opt() for libcrypto replaced from MD5_Init() to BIO_new(); testing function of the macro AX_LIB_OpenSSL() for libssl replaced from SSL_free() to SSL_new();
    • OPC_UA.libOPC_UA: UA::symmetricEncrypt() and UA::symmetricDecrypt() merged to UA::symmetricCrypt() and switched for using EVP_CipherInit() and EVP_CipherUpdate() instead AES_cbc_encrypt() for new versions;
      • using RSA_public_encrypt() moved to EVP_PKEY_encrypt() and RSA_private_decrypt() moved to EVP_PKEY_decrypt() for new versions.
    • Transport.SSL,Special.FLibSYS: using of MD5() moved to EVP_DigestInit_ex(), EVP_DigestUpdate(), EVP_DigestFinal_ex() for new versions.
  • configure.ac: In appending Qt6 that is appended by Qt6Sensors, Qt6WebEngineWidgets, Qt6MultimediaWidgets.
    • Appended by checking Qt5WebEngineWidgets and Qt5MultimediaWidgets for support in UI.Vision.
    • Appended by checking the declarations-functions clock_nanosleep, pthread_rwlock_timedwrlock, newlocale for very pure environments of MIPS with UCLibC.
    • The parameters --disable-WebKit and --disable-Phonon renamed to --disable-QtWebEngine and --disable-QtMultimediaEngine respectively.
    • The generic variables QtWebKit_{CFLAGS,LIBS} and phonon_{CFLAGS,LIBS} renamed to QtWebEngine_{CFLAGS,LIBS} and QtMultimediaEngine_{CFLAGS,LIBS} respectively.
    • Most of the corresponding messages were improved.
    • Appended by checking the header pthread.h.
  • acinclude.m4: The AutoConf macro AX_LIB_Qt expanded by Qt6 support and improved in MOC and RCC detection for Qt5.
    • Some messages improved.
  • data/{debian,debian_mod}/compat: The level was risen up to 7 for default building at modern Debian distributives.
  • data/{debian,debian_mod}/control: Appended by the dependency variants qt6-base-dev, qt6-webengine-dev, qt6-multimedia-dev and qtwebengine5-dev, qtmultimedia5-dev.
  • ResRW::{resRequestW,resRequestR}(): Appended of using the timed version at the definition HAVE_DECL_PTHREAD_RWLOCK_TIMEDWRLOCK.
  • TSYS::atime2str(),SYS.strftime(): Appended of using the localized data at the definition HAVE_DECL_NEWLOCALE.
  • TSYS::{sysSleep,taskSleep}(): Appended of using the clocked sleep at the definition HAVE_DECL_CLOCK_NANOSLEEP.
  • Control Interface of the main page appended by hiding the tab "Translations" and the language fields at missing the internationalisation in whole.
  • TMess,TModule: The HAVE_LIBINTL_H checking replaced by "#if HAVE_LIBINTL_H", that is checking for 1.
  • Transports.SSL: Adapted to new functions of OpenSSL 1.1 (API 3.0) with treating deprecated ones.
  • UI.{QTStarter,QTCfg,Vision}: Adapting for building with Qt6, including adapting to Qt6WebEngine and Qt6Multimedia:
    • QLayout::{setMargin,margin}() replaced by QLayout::{setContentsMargins,getContentsMargins}();
    • QVariant(char*) replaced by QVariant(QString);
    • the QMouseEvent constructor replaced by one with the global position;
    • QRegExp replaced by the OpenSCADA's variant TRegExp for functions of replacing and testing or by the direct checking;
    • the QComboBox signal activated(const QString&), currentIndexChanged(const QString&) replaced by activated(int), currentIndexChanged(int) respectively;
    • the QSignalMapper signal mapped(QWidget*) replaced by mappedObject(QObject*);
    • QPalette::Background replaced by QPalette::Window and Qt::MidButton by Qt::MiddleButton;
    • QFileDialog::setReadOnly() replaced by setOption();
    • QApplication::desktop() replaced by QScreen;
    • QAction::parentWidget() replaced by parent();
    • QVariant::type() renamed to typeId(), QMouseEvent::{pos,globalPos}() renamed to {position,globalPosition}(), QDateTime::{setTime_t,fromTime_t,toTime_t}() renamed to {setSecsSinceEpoch,fromSecsSinceEpoch,toSecsSinceEpoch}();
    • appended by renaming functions for different Qt versions with help the macro-definitions in different files and for: typeId() to type(), position() to pos(), globalPosition() to globalPos(), setSecsSinceEpoch() to setTime_t(), fromSecsSinceEpoch() to fromTime_t(), toSecsSinceEpoch() to toTime_t(), mappedObject() to mapped(), setSource() to setMedia(), setVolume() to audioOutput()->setVolume(), setMedia() to setSource(), state() to playbackState();
    • appended for support QRegularExpression instead QRegExp in Qt6;
    • the QMouseEvent property mouseBtHold splitted on two QPointF: mouseBtHoldPos, mouseBtHoldPosG;
    • the keyboard combination separator "+" replaced by "|", that is "Qt::SHIFT|Qt::Key_F1";
    • the event QEvent::KeyRelease in LineEdit apply replaced by QEvent::KeyPress;
    • QTStarter: the generic library lib_qtgen appended by the function winFit() of specific windows fitting on mobile systems in common; appended by the attribute Qt::AA_ShareOpenGLContexts before the Qt application object for QtWebEngine work on Qt6;
    • Vision: adaption to Qt WebEngineWidgets instead WebKit and to Qt MultimediaWidgets instead Phonon, and the primitive Document split for force using QTextBrowser in the development mode. Restored in new action items of the library widgets appearance by placing the new actions to Menu before ToolBar.