Skip to content

opsi-script aka. opsi-winst and other various tools.

License

Notifications You must be signed in to change notification settings

opsi-org/lazarus

Folders and files

NameName
Last commit message
Last commit date

Latest commit

68fea60 · Apr 28, 2025
Feb 20, 2020
Mar 20, 2025
Apr 25, 2018
Jul 6, 2023
Jun 13, 2024
Mar 29, 2018
Apr 4, 2025
May 12, 2020
Apr 25, 2025
Apr 28, 2025
Apr 3, 2018
Dec 6, 2016
Feb 17, 2020
Aug 31, 2023
Apr 23, 2025
Oct 17, 2023
Aug 31, 2023
Apr 5, 2019
Oct 29, 2018
Feb 20, 2020

Repository files navigation

The Opsi Lazarus Projects

Table of Contents

  1. General Info
  2. Projects
  3. Shared libraries/pascal units
  4. Technologies
  5. Installation

General Info

The Lazarus Projects are part of opsi(open-pc-server-integration, https://www.opsi.org/).

Projects

  • opsi-script (former opsi-winst). The opsi script interpreter.
  • opsi-client-systray. Systray to trigger installations on demand.
  • opsi-client-kiosk. Software kiosk allows the user on the client to chose the desired software. Trigger installations on demand
  • opsi-script-beautifier. Increase the readability of opsi scripts by nicely formatting them.
  • opsi-wmi-test. Helper tool for testing wmi commands
  • opsi-laz-gui-test. Tool to detect if the OS supports a GUI or not
  • opsi-regxepr-tester Helper tool to test regular expressions
  • ...

Shared libraries/pascal units

Webservice (Unit osWebservice)

The unit osWebservice is the core component to establish a https connection to the opsi-server and to perform json-rpc requests and other networking tasks. Dependencies: package/library synapse and compiled ssl libraries Note: The synapse libray is modified (unit ssl_openssl_lib, see function InitSSLInterface and search for SetSSLPath). Therefor ssl libraries can be stored in the same folder as the executable is located independent of the OS (Windows, Linux, MacOS) except for MacOS in the context of an app bundle. In this case the ssl libraries had to be stored in the Frameworks folder. These are the recommended locations for the ssl libraries. However other locations are also checked for ssl libraries for backward compatibility. At last try the ssl libraries are searched in the standard search path(s) of the OS. The opsi search paths are given in the unit osSSLPaths.

The ssl libraries (or symlinks) had to be named as follows:

  • WINDOWS: libeay32.dll, ssleay32.dll
  • LINUX: libssl.so, libcrypto.so (Linux)
  • MACOS: libssl.dylib, libcrypto.dylib (MacOS)

Compilation There are two compiler switches which affect the search paths and names for the ssl libraries.

  • SSLPATH: if not defined the libraries had to be located in the standard search paths of the OS and had to be named as given by the synapse library (original synapse behaviour), except for MacOS here the name of the ssl library is set to the ssl library found in /usr/local/lib
  • APP_BUNDLE: if defined the search path is the Frameworks folder in the application bundle, otherwise the ssl librariess are searched first in the same folder as the executable is located and then will try several fallback options (see source code of unit osSSLPaths for more details).

Technologies

A list of technologies used within the projects:

Installation

Source code

The source code is available from github.com or gitlab.uib.gmbh (only for stuff) and can be cloned with git.

For example:

$ git clone https://github.uib.gmbh/uib/lazarus.git

External libaries (if needed)

Windows

Copy the listed libaries to your project folder:

  • [openssl] libeay32.dll, ssleay32.dll
  • [sqlite] sqlite3.dll

Linux

Copy the listed libaries to your project folder or system search path:

  • [openssl] libssl.so, libcrypto.so
  • [sqlite] libsqlite3-0.so

MacOS

Copy the listed libaries to your project folder or system search path:

  • [openssl] libssl.dylib, libcrypto.dylib
  • [sqlite] libsqlite3-0.dylib